A8DS

From GameBrew
A8DS
Xegsds2.png
General
AuthorDave Bernazzani (wavemotion)
TypeComputer
Version3.8a
LicenseMixed
Last Updated2024/01/13
Links
Download
Website
Source

A8DS (formerly XEGS-DS) is an Atari 8-bit computer emulator for the Nintendo DS/DSi. Specifically, 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.

A8DS goes beyond the normal XL/XE 128K machine and provides three alternative configurations: the 320K (RAMBO) and 1088K for a few large games and demos plus an Atari 800 (non-XL) 48K machine for backwards compatibility with some older games that don't play nice with a more "modern" XL/XE setup. As such, it's really grown to be a full-featured 8-bit emulator to run nearly the entire 8-bit line up of games on their Nintendo DS/DSi handhelds.

The emulator comes "equipped" with the ability to run executable images or disk images which are the two most popular types. Recent versions add support for cart types (CAR or ROM files). The goal here is to make this as simple as possible - point to the executable 8-bit Atari image 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).
  • NTSC and PAL support.
  • Virtual keyboard in various Atari 800/XL/XE stylings.
  • R-Time8 Real-Time Clock support (mostly for SpartaDOS X).
  • Built in Altirra OS (3.33) 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 compatibile 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).
  • 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 (recommend Rev C).

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. 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 A8DS machine. If a game crashes, you will get a message at the bottom of the screen after loading - a crash usually means that the game requires the BASIC cart to be inserted and you can toggle that when loading a game (or using the GEAR icon). Not every game runs with this emulator - but 90% will.

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).

The emulator has the built-in Altirra BASIC 1.55 which is a drop-in replacement for the Atari Basic Rev C (only more full-featured). Normally you can leave this disabled but a few games require the BASIC cart to be present and you can toggle this with the START button when you load a game. If you try to load a game and it crashes, most likely you need to have BASIC enabled. Most games don't want it enabled so that's the default. If you want to play around with BASIC, enable the BASIC cart and pick a DOS disk of some kind to get drive support and you can have fun writing programs. 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.

Cartridge support was added with A8DS 3.1 and later. You can load .CAR and .ROM files (using the XEX button).

The following cartridge layouts are supported:

  • Standard 8 KB and 16KB
  • OSS two chip 16KB
  • Williams 32K and 64K
  • 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
  • Bounty Bob Strikes Back 40K
  • SIC 128K, 256K and 512K
  • Turbosoft 128K and 256K

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

xegsds3.png

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

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.

Release notes.

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.

External links

Advertising: