More actions
A8DS | |
---|---|
![]() | |
General | |
Author | Dave Bernazzani (wavemotion) |
Type | Computer |
Version | 4.2 |
License | Mixed |
Last Updated | 2025/02/01 |
Links | |
Download | |
Website | |
Source | |
A8DS (formerly XEGS-DS) is an Atari 8-bit computer emulator for the DS/DSi. It targets the 800XL / 130XE systems and various hardware extensions to increase the memory. The stock 800XL had 64KB of RAM. The default A8DS configuration is an XL/XE machine with 128KB of RAM which will run most of the 8-bit library. Other memory configurations are available from 48K up to 1088K which is enough to run nearly the entire 8-bit line up of games on the DS/DSi.
The emulator runs cart dumps (ROM or CAR types), executable images (XEX) or disk images (ATR or ATX) which are the most popular "ROM" types for emulators. The goal here is to make this as simple as possible - point to the 8-bit Atari game/program you want to run and off it goes!
Features
- Memory configurations including 48K (base ATARI400/800), 64K XL/XE, 128K XE, 320K RAMBO, 576K COMPY and 1088K RAMBO.
- CAR and ROM cartridge-based games up to 1MB in size.
- XEX Atari 8-bit Executable images of any size provided they fit into the chosen Memory Configuration.
- ATR and ATX disk-based games (two emulated drives supported as D1 and D2).
- Atari 5200 cartridge based games (up to 128K Super Carts).
- NTSC and PAL support with proper palettes.
- Virtual keyboard in various Atari 800/XL/XE stylings.
- R-Time8 Real-Time Clock support (mostly for SpartaDOS X).
- Built in Altirra OS (3.41) and BASIC (1.58) but optional external BIOS/BASIC support to use the real Atari firmware.
- High Score support for 10 scores per game.
- Full configuration of DS keys to any Atari 8-bit joystick/key/button.
- Save and Restore state so you can snap out the memory/CPU and restore it to pick back up exactly where you left off.
Installation
There is a built-in Altirra BIOS (thanks to Avery Lee) which is fairly compatible with many games. However, a few games will require the original ATARI BIOS - and, unfortunately, there were many variations of those BIOS over the years to support various Atari computer models released over a decade.
A8DS supports 3 optional Atari BIOS and BASIC files as follows (with their CRC32):
- atarixl.rom (0x1f9cd270) - this is the 16k XL/XE version of the Atari BIOS for XL/XE Machines (NTSC Rev 02 - BB 01.02, 10.May.1983)
- atariosb.rom (0x3e28a1fe) - this is the 12k Atari 800 OS-B revision BIOS for older games (NTSC OS-B version 2)
- ataribas.rom (0x7d684184) - this is the 8k Atari BASIC cartridge (Rev C)
- a5200.rom (0x4248d3e3) - this is the 2k Atari 5200 BIOS ROM (Rev 1)
You can install zero, one or more of these files and if you want to use these real ROMs. They must reside in the same folder as the A8DS.NDS emulator (or, optionally, you can place your BIOS files in /roms/bios/ or /data/bios/) and these files must be exactly so named as shown above.
If you don't have a real BIOS, a generic but excellent one is provided from the good folks who made Altirra (Avery Lee) which is released as open-source software. Also optional is ataribas.rom for the 8K basic program (Rev C is recommended). If not supplied, the built-in Altirra BASIC 1.55 is supplied.
A8DS readme is located here.
User guide
Games generally run full-speed with just a handful of exceptions - most notably on the older DS hardware or when running from a flash cart (R4 or similar) which won't give you access to a DSi 2X CPU mode. If you load a game and it doesn't load properly or you get a message at the bottom of the screen after loading - it usually means that the game requires some other hardware configuration to run. See the Troubleshooting guide further below for more tips to try and get a game running. I'll try to improve compatibility as time permits. Not every game runs with this emulator - but 90% will given a little elbow-grease to configure things right.
The emulator supports multi-disk games. When you need to load a subsequent disk for a game, just use the Y button to disable Boot-Load which will simply insert the new disk and you can continue to run. Not all games will utilize a 2nd disk drive but D2: is available for those games that do. It's handy to have a few blank 90K single-sided disks available on your setup which you can find easily online - these can be used as save disks.
The .ATR disk support handles up to 360K disks (it will probably work with larger disks, but has not been extensively tested beyond 360K). Generally you should stick to more standard disk sizes on this emulator - these are either 90K, 130K and sometimes 180K. Whenever possible, use a blank disk to save your game progress - by default, disks mount in the drives as READ-ONLY and you must toggle this (via the X button on loading) if you want to write to a disk. Use caution!
The emulator has the built-in Altirra BASIC 1.58 which is a drop-in replacement for the Atari Basic Rev C. Normally you can leave this disabled but a few games do require the BASIC cart to be present and you can toggle this with the START button when you load a game. Be aware that the Altirra BASIC is faster than normal ATARI BASIC and so games might run at the wrong speed unless you're using the actual ATARI REV C rom.
A8DS emulates a Real-Time clock mostly used for SpartaDOS X.
You can load .CAR and .ROM cartridge files (using the XEX/CAR button on the main screen).
The following cartridge layouts are supported:
- Standard 2K, 4K, 8K and 16K
- OSS two chip 16KB, OSS 8K
- Williams 16K, 32K and 64K
- Blizzard 4K, 16K and 32K
- XEGS/SwXEGS 32K up to 1MB
- MegaCart 16K up to 1MB
- Atarimax 128K and 1MB
- SpartaDOS X 64K and 128K
- Atrax 128K
- Diamond 64K
- Express 64K
- AST 32K
- Ultracart 32K
- Lowbank 8K
- Bounty Bob Strikes Back 40K
- SIC 128K, 256K and 512K
- Turbosoft 128K and 256K
- J(Atari) 8K to 1024K
- aDawliah 32K and 64K
- JRC64
- DCART
- Corina 1MB+EE and 512K + SRAM + EE
- MIO 8K
- Right-side 4K and 8K
- XE Multicarts
Atari 5200 Carts from 4K up to 128K (rename your 5200 carts to .a52 for easy loading) If you're using cartridge files, it is suggested you use .CAR files which contain type information to properly load up the cartirdge. Bare .ROM files have ambiguities that are not always auto-detected by the emulator and as such will not always load correctly. You can go into the GEAR/Options menu to force a cartridge type and save it for that game.
Troubleshooting
Most games run as-is. Pick game, load game, play game, enjoy game. If you load a game and it doesn't load properly, just load it again or hit the RESET button which will re-initialize the XEGS machine.
If a game crashes (crash message shows at bottom of screen or game does not otherwise run properly), check these in the order they are shown:
- Try turning BASIC ON - some games (even a handful of well-known commercial games) require the BASIC cartridge be enabled.
- If the game runs but is too fast with BASIC on, use the Atari Rev C Basic (slower but should run at proper speed).
- If BASIC ON didn't do the trick, turn it back off and switch from the ALTIRRA OS to the real ATARI XL OS (you will need atarixl.rom in the same directory as the emulator).
- Some games don't play nice unless you have the original Atari BIOS.
- Next try switching from NTSC to PAL or vice-versa and restart the game.
- A few older games require the older Atari 800 48k machine and Atari OS-B. If you have atariosb.rom where your emulator is located, you can try selecting this as the OS of choice.
- Lastly, try switching the DISKS SPEEDUP option to OFF to slow down I/O. Some games check this as a form of basic copy-protection to ensure you're running from a legit disk.
With those tips, you should be able to get 99% of all games running. There are still a few odd games of little or no consequence (i.e. not major titles) that will not run with the emulator.
Controls
D-Pad - Joystick (can be set to be Joystick 1 or Joystick 2)
A - Fire button
B - Alternate Fire button
X - Space Bar
R/L+X - Return/Escape key (useful to start a few games)
R+D-Pad - Shift Screen Up/Down (necessary to center screen)
L+D-Pad - Scale Screen Up/Down (generally try not to shrink the screen too much as pixel rows disappear)
L+R+A - Swap Screens
Y - Option console button
Start - Start console button
Select - Select console button
Tap the XEX icon or the Disk Drive to load a new game.
Screenshots
Compatibility
The original DS-Lite or DS-Phat require an R4 card to run homebrews. With this setup you will be running in DS compatibility mode and emulator will default to a moderate level of frameskip.
DSi or DSi XL/LL can run just about everything full speed without frameskip. The XL/LL has a slightly slower decay on the LCD and it more closely mimics the phosphor fade of a TV. This helps with games that use small bullets - something like Centipede can be a little harder to see on the original DSi as the thin pixel shot fades quickly as it moves. You can somewhat compensate for this by increasing your screen brightness. For the DSi,
Screen resolution on a DS/DSi/XL/LL is always fixed at 256x192 pixels. The Atari 8-bit resolution tends to be larger - usually 320 horizontally and they often utilize a few more pixels vertically depending on the game. Use the Left/Right shoulder buttons along with the D-Pad to shift/scale the screen to your liking. Once you get the screen where you want - go into the GEAR icon and press START to save the options (including the screen position/scaling) on a per-game basis.
Known issues
Refer to the readme for limitations and known issues.
Changelog
V4.2 2025/02/01
- Fixed Turbo 128K cart type so it doesn't inadvertently disable the cartridge port.
- Added Right-Side cart support for Atari800 (fixing a few A800 emulation issues as well).
- Added Atari 5200 cart support for carts of 128K or less (rename your 5200 carts to ".a52" for easy loading)
- Added new key maps for SHIFT and CONTROL to NDS keys.
- Massive simplification of the configuration handling for machine type.
- New NTSC and PAL color palettes from the awesome Trebor Pro Pack.
- New Caps Lock LED added to all virtual keyboards.
- Added new cart types for SIC+ (1MB), Corina (1MB+EE and 512K+512K+EE), Telelink II and MIO_8, XE Multicart and more.
V4.1 2025/01/25
- Refactor the OS Enable/Disable on XL/XE emulation to avoid moving large blocks of memory. Speeds up many games that swap the OS in/out.
- Improved SIO/Disk handling - sound effects reduced in volume and now configurable (default is OFF).
- Improved cart/disk loading and all disks are left mounted when RESET is pressed allowing you to load up a system the way you want.
- A dozen new .CAR cartridge types supported including DCART (Bubble Bobble homebrew).
- Tweak to the TWL++ icon for A8DS to make it look a bit more classic.
- Many small cleanups and improvements and a few bug fixes as well.
V4.0 2025/01/20
- Major overhaul to add "Cycle Exact" Antic and GTIA which fixes many glitches and artifacts.
- There are now two builds... one for the older DS-Phat/Lite and one for the DSi (or XL/LL) which brings in a higher level of compatibility with the "Cycle Exact" timing.
- Improved keyboard overlays - added alphanumeric keyboard with text-adventure macros.
- Improved memory handling - using more memory but in an efficient way for the new features.
- Improved sound handling - new SIO sounds, new opening jingle.
- Improved CPU handling to fix one more Acid800 test (25 pass now).
- Fixed keyboard handling so games like Scorch will register keypresses (broken as of V3.0).
- Added some of the more obscure missing .CAR cartridge types.
- So much changed under the hood that old config files will be wiped and old save states will not work. Sorry!
V3.9 2025/01/13
- Altirra OS updated to 3.41 (Altirra BASIC still at 1.58)
- Touch-up on the keyboard graphics to make the smaller font bolder / more readable on DS screen
- Fixed one Acid800 test - we now comply with the JMP indirect bug on the 6502.
- PIA emulation improvements to match latest Atari800 core.
V3.8a 2024/01/12
- Optimization of CPU core for a 3% speedup across the board.
- New Star Raiders keypad overlay integrated into the emulator.
- Minor tweaks, fixes and cleanup as time permitted.
- Version 3.8a optimizes the sound core a bit to improve scratchy sounds.
V3.8 2024/01/03
- Optimization of CPU core for a 3% speedup across the board.
- New Star Raiders keypad overlay integrated into the emulator.
- Minor tweaks, fixes and cleanup as time permitted.
V3.7 2023/06/04
- Update to Screen Blur to have just 3 settings: NONE, LIGHT and HEAVY. Default is LIGHT.
- Improvements to memory layout to gain back additional resources.
- Fix for 576K COMPY RAM so that it properly handles separate ANTIC memory access.
- Minor fixes and cleanup as time permitted.
V3.6a 2023/05/30
- Hotfix for state save/restore. Sorry!
- Added ability to map Joystick 2 so you can play twin-stick games like Robotron and Space Dungeon.
- Added 64K memory option and put all memory options in the correct order.
V3.6 2023/05/29
- Added the ability to save and restore state - use the DOWN/UP icons on the main screen.
- Minor memory optimization to squeeze out another frame or two of performance.
V3.5 2023/05/22
- Added 576K COMPY SHOP RAM type (with separate ANTIC access just like the 128K XE).
- More cleanup and minor bug fixes across the board.
V3.4 2023/05/16
- Default to using ATARI OS if bios files found.
- Altirra OS updated to 3.33 and Altirra BASIC to 1.58
- High Score saving added - save 10 scores per game.
- Improved PAL vs NTSC color palette
- Several config bugs that necessitated another quick release. Sorry!
V3.3 2023/05/15
- Switched to CRC32 (from md5sum) to save space and now allow 2500 game settings to be stored.
- Added additional cartridge banking schemes so more games run.
- Added ability to change/save a cartridge type in settings.
- Tweak of VERTICAL+ and VERTICAL- to offset by 16 pixels (was 10).
- Reduced memory footprint to allow for better future expansion.
V3.2 2023/05/13
- Enhanced configuration - unfortunately your old config save will be wiped to make way for the new method.
- Global options - use the GEAR icon before a game is loaded and you can save out defaults for newly loaded games.
- Key maps - set any of the DS keys to map into various joystick, console buttons, keyboard keys, etc.
- Screenshot capability - press and hold L+R for ~1 second to take a .bmp snapshot (saved to a time-date.bmp file)
- New Smooth Scroll handling so you can set your scale/offset and then map any button to shift vertical/horizontal pixels (set keys to VERTICAL++, HORIZONTAL--, etc). The game will automatically smooth-scroll back into place when you let go of the pixel-shift button.
- Improved cart banking so that it's as fast as normal memory swaps. This should eliminate slowdown in Cart-based games.
- A few bug fixes as time permitted.
V3.1 2023/05/08
- Added CAR and ROM support for the more popular cartridge types up to 1MB.
- Added new D-Pad options to support joystick 2 (for games like Wizard of Wor) and diagonals (Q-Bert like games).
- Improved keyboard handling so CTRL key is now sticky.
- Improved menu transitions to reduce audio 'pops' as much as possible.
- Auto-rename of XEGS-DS.DAT to A8DS.DAT to match new branding.
- Squeezed as much into fast ITCM_CODE as possible with almost no bytes left to spare.
- Other cleanups and minor bug fixes as time allowed.
V3.0 2023/05/05
- Rebranding to A8DS with new 800XL stylized keyboard and minor cleanups across the board.
V2.9 2021/12/12
- Reverted back to ARM7 SoundLib (a few games missing key sounds).
V2.8 2021/11/30
- Switched to maxmod audio library for improved sound.
- Try to start in /roms or /roms/a800 if possible.
V2.7 2021/11/04
- New sound output processing to eliminate Zingers.
- bios files can now optionally be in /roms/bios or /data/bios.
- Left/Right now selects the next/previous option (rather than A button to only cycle forward).
- Other cleanups as time permitted.
V2.6 2021/07/11
- Reduced down to one screen buffer - this cleans up ghosting visible sometimes on dark backgrounds.
- If atarixl.rom exists, it is used by default (previously had still been defaulting to Altirra rom).
- Minor cleanups as time permitted.
V2.5 2021/04/08
- Major cleanup of unused code to get down to a small but efficient code base.
- Added LCD swap using L+R+A (hold for half second to toggle screens).
- Cleanup of text-on-screen handling and other minor bug fixes.
V2.4 2021/04/02
- New bank switching handling that is much faster (in some cases 10x faster) to support all of the larger 128K, 320K and even the 1088K games (AtariBlast).
- ATX format now supported for copy protected disk images.
V2.3 2021/03/31
- Added Atari 800 (48K) mode with OS-B for compatiblity with older games.
- L+X and R+X shortcuts for keys '1' and '2' which are useful to start some games.
- Cleanup of options and main screen for better display of current emulator settings.
V2.2 2021/03/25
- Added simplified keyboard option for easy use on Text Adventures, etc.
V2.1 2021/03/21
- Cleanup of the big 2.0 release.
- Allow .XEX and D1 to both be loaded for XEX games that allow save/restore.
- Fixed long-standing file select offset bug.
V2.0 2021/03/19
- Major overhaul of UI.
- Added second disk drive.
Credits
A8DS - Atari 8-bit Emulator designed to run on the Nintendo DS/DSi is Copyright (c) 2021-2023 Dave Bernazzani (wavemotion-dave)
Credits:
- Atari800 team for source code (http://atari800.sourceforge.net/).
- Altirra and Avery Lee for a kick-ass substitute BIOS, the Altirra Hardware Manual (a must read) and generally being awesome.
- Wintermute for devkitpro and libnds (http://www.devkitpro.org).
- Alekmaul for porting the original A5200DS of which this is heavily based.
- Darryl Hirschler for the awesome Atari 8-bit Keyboard Graphics.
- The good folks over on GBATemp and AtariAge for their support.