A7800DS Phoenix Edition: Difference between revisions

From GameBrew
(Created page with "{{Infobox DS Homebrews}} {{Infobox DS Homebrews |title=XEGS-DS |image= |description=An Atari 8-bit computer emulator, specifically designed around the XE gaming system. |a...")
 
No edit summary
 
(27 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Infobox DS Homebrews}}
{{Infobox DS Homebrews
{{Infobox DS Homebrews
|title=XEGS-DS
|title=A7800DS Phoenix Edition
|image=
|image=A7800dswav2.png
|description=An Atari 8-bit computer emulator, specifically designed around the XE gaming system.
|description=Atari 7800 DS emulator updated from Alekmaul's original.
|author=Dave Bernazzani (wavemotion)
|author=Dave Bernazzani (wavemotion)
|lastupdated=2021/12/13
|lastupdated=2024/05/11
|type=Computer
|type=Console
|version=2.9
|version=4.7
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/dshomebrew/xegsds.7z
|download=https://dlhb.gamebrew.org/dshomebrew/a7800dswav.7z
|website=https://github.com/wavemotion-dave/XEGS-DS
|website=https://github.com/wavemotion-dave/A7800DS
|source=https://github.com/wavemotion-dave/XEGS-DS
|source=https://github.com/wavemotion-dave/A7800DS
}}
}}
XEGS-DS is an Atari 8-bit computer emulator.  Specifically, it's designed around the XE gaming system which is the 8-bit console version of Atari's venerable computer line.  
a7800DS is an Atari ProSystem 7800 console emulator, based on [[A7800DS_1_%26_2|a7800DS]] by Alekmaul.


The stock XEGS had 64KB of RAM and was generally not upgradable unless you really knew the insides of the machine. But thanks to emulation, XEGS-DS comes equipped with 128KB of RAM which will run the larger programs. This is, essentially, the same as a 130XE machine. XEGS-DS goes beyond the normal XL/XE 128K machine and provides two alternative configurations: the XE 320K (RAMBO) and 1088K for a few large games and demos and an older Atari 800 48K machine for backwards compatibility with some older games that don't play nice with a more modern XL/XE setup.
The goal for this particular emulator is to get as many games as close to perfectly playable as possible. Nothing else matters if the game won't run at near full speed with all the gameplay in-tact. Minor screen glitches or minor sound issues are secondary to making sure the game will actually run.  


As such, it's really grown to be more capable than a stock XEGS machine but the purpose of this emulator is to allow someone to play nearly the entire 8-bit line up of games on their Nitendo DS/DSi handhelds.
If you're looking for a highly accurate emulator for the 7800 ProSystem, try A7800 or JS7800. But if you're looking to enjoy some classic 7800 console goodness on your DS/DSi then look no further.


==Features==
==Features==
* Most things you should expect from an emulator.  
* Most things you should expect from an emulator.  
* Supports multi-disk games.  
* ROM Support:
* Built-in Altirra BASIC 1.55.
** Up to 1024K (1MB!) ROM size.
** 128-byte .a78 header supported.
** All popular bank-switching schemes.
** Additional 16K of RAM at 4000h.
** Pokey support at 4000h, 800h, and 450h (configurable).
* (V4.3+) Fully supports the new Banksets scheme. See [http://7800.8bitdev.org/index.php/Bankset_Bankswitching Atari 7800 Development Wiki] for more details.
* Add highscore.rom for 7800 High Score saving.


==Installation==
==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.
To use this emulator, you must use compatibles rom with a78/bin format.  


XEGS-DS supports 3 optional Atari BIOS and BASIC files as follows:
Place the .nds file on your SD card and launch with Twilight Menu++ or Unlaunch.
*  atarixl.rom  - This is the 16k XL/XE version of the Atari BIOS for XL/XE Machines.
*  atariosb.rom - This is the 12k Atari 800 OS-B revision BIOS for older games.
*  ataribas.rom - 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 XEGS-DS.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 want to run on a flash cart, it might work (recommend HBMENU to launch).
 
'''Note:''' It is strongly recommend you use NTSC roms. PAL ones have more scanlines and will render more slowly and since the sound core is tied to scanlines, the sound will be wrong.  


==User guide==
==User guide==
===Supported formats===
When the emulator starts, click on the cartridge slot to choose a file.  
The emulator comes equipped with the ability to run executable images or disk images which are the two most popular types. It does not support cart types (despite the cart slot as the on-screen mechanism for choosing a game).  


Virtually everything that can be run on an 8-bit system has been converted into an Executable image (.xex) or a Disk image (.atr) and, unlike cart ROM images, there is no complicated setup to pick the right banking setup.  
===High Score Saving===
High Score Saving works if you have highscore.rom (exact name and case). This can be in /roms/bios/, /data/bios/ or in the same directory as the emulator.


===Multi-disk games===
Note that you must press the HSC button if you want to snap the Saved Scores out to the flash card. The high scores will also auto-save if you quit the emulator or select a new game.
When you need to load a subsequent disk for a game, just use the Y button to disable Boot-Load which will simply just 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.
===Configuration===
Generally you would use this to select a bankswitching scheme if the proper type wasn't auto-detected. The following schemes are supported:


===BASIC interpreter===
*NORMAL - Anything 48K or less... fits into memory (0xffff downwards) without switching.
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 be present and you can toggle this with the START button when you load a game.  
*SUPERCART - Games that are 128+K in size with nothing mapped in at 0x4000.
*SUPERCART_LARGE - Games that are 144+K in size with the extra 16K bank 0 fixed at 0x4000.
*SUPERCART_RAM - Games that are 128+K in size with extra 16K of RAM at 0x4000.
*SUPERCART_ROM - Games that are 128+K in size with bank 6 fixed at 0x4000.
*SUPERCART_RAMX2 - Games that are 128+K in size with extra 32K of RAM at 0x4000 (bankswitched in 16K chunks).
*FLAT WITH RAM - Games that are 16K or 32K in size and utilize 16K of RAM at 0x4000.
*BANKSETS - Games that use the new Banksets handling (2x32, 2x48, 2x52, 2x128, 2x256 and 2x512 supported).
*BANKSETS RAM - Games that use the new Banksets handling with 16K of RAM at 0x4000 (same RAM for Maria and Sally).
*BANKSETS HALT RAM - Games that use the new Banksets handling with 16K of RAM at 0x4000 (Maria and Sally see different 16K RAM).
*ACTIVISION - Mostly for Double Dragon and Rampage by Activision.
*ABSOLETE - Only for the F-18 Hornet game by Absolete Entertainment.
*FRACTALUS - Only for the Rescue on Fractalus prototype (not a complete game but neat to see). This is EXRAM/A8.


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.  
The X/Y screen settings can be tweaked to position the 7800 emulated screen on the DS screen as best you can. Unfortunately the 7800 screen resolution isn't a perfect match for the DS 256x192 so you'll have to stretch and offset a bit. Most games have defaults that look good enough. Some games will cut off a few pixel lines at the top and bottom - but they will still be perfectly playalbe. Such is life with only 192 vertical pixels to play with on the DS.


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.
Frame Skipping can be OFF (show all frames), Moderate (Show 3/4 frames) or Agressive (only show 1/2 frames). The latter is only really needed for the DS-Lite/Phat where the faster DSi CPU isn't available.


===Frameskipping===
Don't touch the DMA Cycle Adjustment unless you understand them.
In order to get proper speed on the older hardwares, Frame Skip option is default to ON for DS Lite and DS Phat (and OFF for DSi or above). Though some games do not run properly with Fram Skip ON. Notably: Caverns of Mars, Jumpman and Buried Bucks.  


If a game is particularlly struggling to keep up on older hardawre, there is an experimental Agressive frameskip option which should help, but use with caution.
Press START to save off your configuration - if you made changes you should re-load the game to ensure all settings are applied.


===Troubleshooting===
==Controls==
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.
Up/Down - Select a file


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:
A - Load file
* 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.
'''A7800:'''


==Controls==
D-Pad - Joystick
D-Pad - Joystick


A - Fire button
A - Fire button 1


B - Alternate Fire button
B - Fire button 2


X - Space Bar
Select - Select Button


R/L+X - Return/Escape key (useful to start a few games)
Start - Pause Button


R+D-Pad - Shift Screen Up/Down (necessary to center screen)
X - Fire button 2


L+D-Pad - Scale Screen Up/Down (generally try not to shrink the screen too much as pixel rows disappear)
Y - Fire Button 1


L+R+A - Swap Screens
L/R+D-Pad - Used to Shift Offsets and Scale Screen to desired ratio


Y - Option console button
Use stylus on buttons for other actions on bottom screen.


Start - Start console button
The new SNES2Atari adaptor is supported as a controller type for the few new games that utilize it. This allows all of the DS buttons to map into the game - exactly as labeled (D-Pad/ABXY/L/R/Start/Select).


Select - Select console button
==Screenshots==
https://dlhb.gamebrew.org/dshomebrew/a7800dswav3.png
Tap the XEX icon or the Disk Drive to load a new game.
https://dlhb.gamebrew.org/dshomebrew/a7800dswav4.png


==Screenshots==
==Compatibility==
https://dlhb.gamebrew.org/dshomebrew/xegsds3.png
Speed is excellent on the DSi and a little less great on the older DS-LITE. For the DS-LITE you can expect full speed on a very large chunk of the 7800 library. The more traditional games (think: Asteroids, Astro Blaster, Robotron, Food Fight, Centipede, Pac-Man Collection, etc) will all run great. The really big bankswitched games may struggle on the older DS-LITE/PHAT hardware - try the game and see
 
==Known issues==
*Lightgun is not supported.
*Paddles are not supported.
*PAL is not supported - use NTSC instead.
*Artifacting is not supported which means Tower Toppler is unplayable.
*Souper mapper (Ricky & Vicky) is not supported.
*Keystone Koppers and ARTI have slight sound issues as Pokey emulation is not perfect.
*Games greater than 1MB (1024K + 128b header) are not supported.
*Only one Pokey is supported at 4000h, 800h or 450h (no Dual Pokey).
*XM is not supported (beyond HSC and Pokey).


==Changelog==
==Changelog==
'''V2.9 2021/12/12'''
'''V4.7 2024/05/11'''
* Reverted back to ARM7 SoundLib (a few games missing key sounds).
* X and Y buttons now shift the screen down/up by 16 pixels so you can position the score off-screen and use these to pan up/down to see it.
 
* Fix for Supercarts so that they start in bank 0 (Legend of Silverpeak should now load)
'''V2.8 2021/11/30'''
* Internal database tweaks for the latest homebrews and ports.
* Switched to maxmod audio library for improved sound.
* Other minor tweaks and improvements as time permitted.
* Try to start in /roms or /roms/a800 if possible.
'''V4.6 2024/05/06'''
* Each game that utilizes a High Score Cart (HSC) gets its own 2K .hsc file
* Improved High Score Cart (HSC) emulation - improved initialization of the SRAM contents.
* Sanity checks added so that carts marked as 'NORMAL' (or selected as such) but are larger than 48K will not corrupt memory.
* New magnifying glass icon to ZOOM (and center) the display 1:1 with real 7800 output. This will crop on a DS/DSi since it only has 256x192 but very useful to toggle the 1:1 zoom for High Score Entries, etc.
* Support for .a78 V4 headers (will fall back to V3 if not available)
'''V4.5 2022/11/18'''
* SNES2Atari adaptor supported.
* Improved display output to smooth over the fonts a bit.
* Small tweaks to internal database to ensure everything looks as good as possible.
 
'''V4.4 2022/11/14'''
* New palette options from the Trebor 'Pro Pack' of colors. COOL, WARM (default), and HOT allow you to shift the color temperature slightly on a per-game basis.
* Improved sound channel mixing so as not to halve the volume when mixing POKEY + TIA.
 
'''V4.3 2022/11/11'''
* Full support for the new Banksets scheme including the upcoming Attack of the Petscii Robots game!
* Added the stable "illegal" opcode support for the 6502 CPU to ensure all games run properly.
* New Maria cycle handling is more accurate than it's been in any previous version. More games run closer to perfect.
* Improved rendering and a bit more optmization to make almost every game playable on the older DS-Lite.
 
'''V4.2 2022/11/06'''
* Added support for bankswitched RAM (32K of RAM switched in 16K chunks). This makes the Ex version of 1942 playable.
* Added alternate way of handling bankswitched RAM the same way as the DragonFly cart or SN board: via writes to 0xFFFF.
* Fix graphical glitch for Ballblazer (just hiding it off screen).
* Numerous small updates to the internal cart database to ensure game run with the proper settings (mostly High Scores)
* New 8x density on the High Score Cart - transparent to the user but provides more slots so the HSC won't fill up.
* Flat 32K plus RAM cart type supported.
* Pokey @800 supported for upcoming homebrews.
 
'''V4.1 2022/11/02'''
* Overhaul Maria cycle stealing - all games now use the proper cycle stealing with much closer to accurate timing. This fixes games like One-on-One and Kung Fu Master.
* Other minor cleanups and tweaks as time permitted.
 
'''V4.0 2022/11/01'''
* Overhaul the audio system to use the MAXMOD streaming library to eliminate sound 'zingers'
* Other minor cleanup and tweaks as time permitted.
 
'''V3.9 2022/10/29'''
* More optmization and more games playable on the DS-Lite.
* Highscore A7800.SRAM file moved to /data (move yours manually) - this allows the same high score file even if your roms are in different directories.
* Fix for One-on-One.
* Fix for voices in Jinx.
* Cleanup of code - removed unused functions and vars. Switched to a memory-lite sprintf().
 
'''V3.8 2022/10/26'''
* Massive optmization of the Maria rendering to help the DS-Lite run more games.
* Fix for Rampage
* Fix for Rescue on Fractalus
* Fix for F-18 Hornet
* Fix for Double Dragon
* Fix for Basketbrawl
* Fix for Jinx voice
* Better A78 header parsing for improved game detection
* New Moderate Frameskip to show 3/4 frames (not as aggressive as the old 1/2 frameskip)
* Support for 1024K (+128 byte header) games. Only a few tech demos available so far.
* Removed most of the old hacks for DS-Lite as the speed is good enough to render those games properly.
 
'''V3.7a 2022/10/23'''
* Fix for 320 modes.
* Optmization across the board for faster and smoother performance.
* Gained enough speed that we have restored full HQ sound for the DS-Lite.
* bonQ fixed graphical glitches.
* Keystone Koppers fixed graphical glitches.
* Latest homebrews added to the internal database.
* New configuration menu so you can tweak settings - new homebrews won't need a new A7800DS.
* Better A78 v3 header support so more games run right.
 
'''V3.6 2022/06/04
* Fix for XM detection so the newest Pac-Man Collection (PMC-XM) works!
* Minor database cleanups so all the more recent games run.
 
'''V3.5 2022/02/12'''
* Across the board cleanup of code. Copyright notice added.
* Fixed High-Score save on Time Salvo
* Slight memory optimization for reduced memory footprint.
 
'''V3.4 2022/02/06'''
* Frameskip rendering improved by more than 10% - making more DS-LITE games playable!
* Minor improvements to touch-screen key handling and other code cleanups.
 
'''V3.3 2022/02/04'''
* Squeezed out another frame of performance.
* Super Skateboardin' graphics fixed.
* DSi eliminates frameskip on 80% of the library.
* Updated 50 entries in the internal database - more new homebrews run.
 
'''V3.2 2022/02/01'''
* A 5-8% speedup across the board through a number of small optimizations in core areas.
 
'''V3.1 2022/01/31'''
* Now using more VRAM for bank swapping and partial DMA transfer to speed up large games.
* Reverted part of the sound core to improve sound quality.
* File selection cleanups to scroll less fast and be generally easier to see.
 
'''V3.0 2021/11/06'''
* Reworked sound output core so it's now zinger-free.
* Refresh of bottom screen - improved font and button debounce.
 
'''V2.9 2021/11/03'''
* Fixed loading of large SUPER CART roms.
 
'''V2.8 2021/11/02'''
* A bit of speed - enough to eliminate the old DS-LITE version.
* A few new homebrews added to the internal database.
* Optimized sound buffers for (very) slightly better performance.
* highscore.rom can now bin in /roms/bios or /data/bios.
* Cleanup code as time permitted.
 
'''V2.7 2021/04/02'''
* New support for the latest homebrews: Galaxian final.
* Added ability to swap screens using L+R+A.
 
'''V2.6 2021/04/02'''
* Faster directory/file listing.
* Support for the latest homebrews: Galaxian and Popeye.
* Improved scaling and offset handling using L/R + Arrow Keys to match other emulators.


'''V2.7 2021/11/04'''
'''V2.5 2021/01/15'''
* New sound output processing to eliminate Zingers.
* Added .A78 header naming search and as a backup filename search to help properly identify the game being loaded so that the right settings can be applied.
* 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'''
'''V2.4 2021/01/08'''
* Reduced down to one screen buffer - this cleans up ghosting visible sometimes on dark backgrounds.
* Improvement in bank switching allowing most games to run 60FPS.
* 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'''
'''V2.3 2021/01/06'''
* Major cleanup of unused code to get down to a small but efficient code base.
* Fixed large cart support so 512kb games run fine.
* Added LCD swap using L+R+A (hold for half second to toggle screens).
* Fixed voice in Frenzy/Berzerk.
* Cleanup of text-on-screen handling and other minor bug fixes.
* Fixed graphical glitches in Alien Brigade.
* Optimized bank switching so more big games run smoothly.
* Added default difficulty switches for the few games that need them.
* Lots of cleanups as time permitted.


'''V2.4 2021/04/02'''
'''V2.2 2021/01/05'''
* 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).
* More memory tweaks - faster processing of memory for another 5% speedup.
* ATX format now supported for copy protected disk images.


'''V2.3 2021/03/31'''
'''V2.1 2021/01/03'''
* Added Atari 800 (48K) mode with OS-B for compatiblity with older games.
* Now using DTCM and VRAM for some key memory areas to speed up the emulator almost 10%.
* 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'''
'''V2.0 2021/01/01'''
* Added simplified keyboard option for easy use on Text Adventures, etc.
* Pokey and TIA sound core reworked to provide sound that is worth listening to.
* Please run on a DSi, DSi-XL/LL or 3DS. You won't be happy with the performance on a DS-LITE/PHAT.


'''V2.1 2021/03/21'''
[https://github.com/wavemotion-dave/A7800DS/releases Release notes.]
* 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'''
==Credits==
* Major overhaul of UI.
Thanks to:
* Added second disk drive.
* Wintermute for [http://www.devkitpro.org devkitpro and libnds].
* [https://home.comcast.net/~gscottstanton Greg Stanton] for ProSystem source code an Atari 7800 emulator.
* [http://zx81.zx81.free.fr/serendipity_fr zx81] for PSP A7800 version.
* raz0red for [http://www.twitchasylum.com/forum/viewtopic.php?t=519 WII7800].


[https://github.com/wavemotion-dave/XEGS-DS/releases Release notes.]
A7800DS:
* Original by [http://www.portabledev.com Alekmaul].
* Updates by [https://github.com/wavemotion-dave/A7800DS wavemotion-dave].


==External links==
==External links==
* GitHub - https://github.com/wavemotion-dave/XEGS-DS
* GitHub - https://github.com/wavemotion-dave/A7800DS
* GBAtemp - https://gbatemp.net/threads/xegs-ds-yeah-its-a-thing.581949
* GBAtemp - https://gbatemp.net/threads/a7800ds-improved.578534


[[Category:DS homebrew emulators]]
[[Category:Console Emulators on DS]]
[[Category:Homebrew computer emulators on DS]]

Latest revision as of 07:20, 12 May 2024

A7800DS Phoenix Edition
A7800dswav2.png
General
AuthorDave Bernazzani (wavemotion)
TypeConsole
Version4.7
LicenseMixed
Last Updated2024/05/11
Links
Download
Website
Source

a7800DS is an Atari ProSystem 7800 console emulator, based on a7800DS by Alekmaul.

The goal for this particular emulator is to get as many games as close to perfectly playable as possible. Nothing else matters if the game won't run at near full speed with all the gameplay in-tact. Minor screen glitches or minor sound issues are secondary to making sure the game will actually run.

If you're looking for a highly accurate emulator for the 7800 ProSystem, try A7800 or JS7800. But if you're looking to enjoy some classic 7800 console goodness on your DS/DSi then look no further.

Features

  • Most things you should expect from an emulator.
  • ROM Support:
    • Up to 1024K (1MB!) ROM size.
    • 128-byte .a78 header supported.
    • All popular bank-switching schemes.
    • Additional 16K of RAM at 4000h.
    • Pokey support at 4000h, 800h, and 450h (configurable).
  • (V4.3+) Fully supports the new Banksets scheme. See Atari 7800 Development Wiki for more details.
  • Add highscore.rom for 7800 High Score saving.

Installation

To use this emulator, you must use compatibles rom with a78/bin format.

Place the .nds file on your SD card and launch with Twilight Menu++ or Unlaunch.

If you want to run on a flash cart, it might work (recommend HBMENU to launch).

Note: It is strongly recommend you use NTSC roms. PAL ones have more scanlines and will render more slowly and since the sound core is tied to scanlines, the sound will be wrong.

User guide

When the emulator starts, click on the cartridge slot to choose a file.

High Score Saving

High Score Saving works if you have highscore.rom (exact name and case). This can be in /roms/bios/, /data/bios/ or in the same directory as the emulator.

Note that you must press the HSC button if you want to snap the Saved Scores out to the flash card. The high scores will also auto-save if you quit the emulator or select a new game.

Configuration

Generally you would use this to select a bankswitching scheme if the proper type wasn't auto-detected. The following schemes are supported:

  • NORMAL - Anything 48K or less... fits into memory (0xffff downwards) without switching.
  • SUPERCART - Games that are 128+K in size with nothing mapped in at 0x4000.
  • SUPERCART_LARGE - Games that are 144+K in size with the extra 16K bank 0 fixed at 0x4000.
  • SUPERCART_RAM - Games that are 128+K in size with extra 16K of RAM at 0x4000.
  • SUPERCART_ROM - Games that are 128+K in size with bank 6 fixed at 0x4000.
  • SUPERCART_RAMX2 - Games that are 128+K in size with extra 32K of RAM at 0x4000 (bankswitched in 16K chunks).
  • FLAT WITH RAM - Games that are 16K or 32K in size and utilize 16K of RAM at 0x4000.
  • BANKSETS - Games that use the new Banksets handling (2x32, 2x48, 2x52, 2x128, 2x256 and 2x512 supported).
  • BANKSETS RAM - Games that use the new Banksets handling with 16K of RAM at 0x4000 (same RAM for Maria and Sally).
  • BANKSETS HALT RAM - Games that use the new Banksets handling with 16K of RAM at 0x4000 (Maria and Sally see different 16K RAM).
  • ACTIVISION - Mostly for Double Dragon and Rampage by Activision.
  • ABSOLETE - Only for the F-18 Hornet game by Absolete Entertainment.
  • FRACTALUS - Only for the Rescue on Fractalus prototype (not a complete game but neat to see). This is EXRAM/A8.

The X/Y screen settings can be tweaked to position the 7800 emulated screen on the DS screen as best you can. Unfortunately the 7800 screen resolution isn't a perfect match for the DS 256x192 so you'll have to stretch and offset a bit. Most games have defaults that look good enough. Some games will cut off a few pixel lines at the top and bottom - but they will still be perfectly playalbe. Such is life with only 192 vertical pixels to play with on the DS.

Frame Skipping can be OFF (show all frames), Moderate (Show 3/4 frames) or Agressive (only show 1/2 frames). The latter is only really needed for the DS-Lite/Phat where the faster DSi CPU isn't available.

Don't touch the DMA Cycle Adjustment unless you understand them.

Press START to save off your configuration - if you made changes you should re-load the game to ensure all settings are applied.

Controls

Up/Down - Select a file

A - Load file

A7800:

D-Pad - Joystick

A - Fire button 1

B - Fire button 2

Select - Select Button

Start - Pause Button

X - Fire button 2

Y - Fire Button 1

L/R+D-Pad - Used to Shift Offsets and Scale Screen to desired ratio

Use stylus on buttons for other actions on bottom screen.

The new SNES2Atari adaptor is supported as a controller type for the few new games that utilize it. This allows all of the DS buttons to map into the game - exactly as labeled (D-Pad/ABXY/L/R/Start/Select).

Screenshots

a7800dswav3.pnga7800dswav4.png

Compatibility

Speed is excellent on the DSi and a little less great on the older DS-LITE. For the DS-LITE you can expect full speed on a very large chunk of the 7800 library. The more traditional games (think: Asteroids, Astro Blaster, Robotron, Food Fight, Centipede, Pac-Man Collection, etc) will all run great. The really big bankswitched games may struggle on the older DS-LITE/PHAT hardware - try the game and see

Known issues

  • Lightgun is not supported.
  • Paddles are not supported.
  • PAL is not supported - use NTSC instead.
  • Artifacting is not supported which means Tower Toppler is unplayable.
  • Souper mapper (Ricky & Vicky) is not supported.
  • Keystone Koppers and ARTI have slight sound issues as Pokey emulation is not perfect.
  • Games greater than 1MB (1024K + 128b header) are not supported.
  • Only one Pokey is supported at 4000h, 800h or 450h (no Dual Pokey).
  • XM is not supported (beyond HSC and Pokey).

Changelog

V4.7 2024/05/11

  • X and Y buttons now shift the screen down/up by 16 pixels so you can position the score off-screen and use these to pan up/down to see it.
  • Fix for Supercarts so that they start in bank 0 (Legend of Silverpeak should now load)
  • Internal database tweaks for the latest homebrews and ports.
  • Other minor tweaks and improvements as time permitted.

V4.6 2024/05/06

  • Each game that utilizes a High Score Cart (HSC) gets its own 2K .hsc file
  • Improved High Score Cart (HSC) emulation - improved initialization of the SRAM contents.
  • Sanity checks added so that carts marked as 'NORMAL' (or selected as such) but are larger than 48K will not corrupt memory.
  • New magnifying glass icon to ZOOM (and center) the display 1:1 with real 7800 output. This will crop on a DS/DSi since it only has 256x192 but very useful to toggle the 1:1 zoom for High Score Entries, etc.
  • Support for .a78 V4 headers (will fall back to V3 if not available)

V4.5 2022/11/18

  • SNES2Atari adaptor supported.
  • Improved display output to smooth over the fonts a bit.
  • Small tweaks to internal database to ensure everything looks as good as possible.

V4.4 2022/11/14

  • New palette options from the Trebor 'Pro Pack' of colors. COOL, WARM (default), and HOT allow you to shift the color temperature slightly on a per-game basis.
  • Improved sound channel mixing so as not to halve the volume when mixing POKEY + TIA.

V4.3 2022/11/11

  • Full support for the new Banksets scheme including the upcoming Attack of the Petscii Robots game!
  • Added the stable "illegal" opcode support for the 6502 CPU to ensure all games run properly.
  • New Maria cycle handling is more accurate than it's been in any previous version. More games run closer to perfect.
  • Improved rendering and a bit more optmization to make almost every game playable on the older DS-Lite.

V4.2 2022/11/06

  • Added support for bankswitched RAM (32K of RAM switched in 16K chunks). This makes the Ex version of 1942 playable.
  • Added alternate way of handling bankswitched RAM the same way as the DragonFly cart or SN board: via writes to 0xFFFF.
  • Fix graphical glitch for Ballblazer (just hiding it off screen).
  • Numerous small updates to the internal cart database to ensure game run with the proper settings (mostly High Scores)
  • New 8x density on the High Score Cart - transparent to the user but provides more slots so the HSC won't fill up.
  • Flat 32K plus RAM cart type supported.
  • Pokey @800 supported for upcoming homebrews.

V4.1 2022/11/02

  • Overhaul Maria cycle stealing - all games now use the proper cycle stealing with much closer to accurate timing. This fixes games like One-on-One and Kung Fu Master.
  • Other minor cleanups and tweaks as time permitted.

V4.0 2022/11/01

  • Overhaul the audio system to use the MAXMOD streaming library to eliminate sound 'zingers'
  • Other minor cleanup and tweaks as time permitted.

V3.9 2022/10/29

  • More optmization and more games playable on the DS-Lite.
  • Highscore A7800.SRAM file moved to /data (move yours manually) - this allows the same high score file even if your roms are in different directories.
  • Fix for One-on-One.
  • Fix for voices in Jinx.
  • Cleanup of code - removed unused functions and vars. Switched to a memory-lite sprintf().

V3.8 2022/10/26

  • Massive optmization of the Maria rendering to help the DS-Lite run more games.
  • Fix for Rampage
  • Fix for Rescue on Fractalus
  • Fix for F-18 Hornet
  • Fix for Double Dragon
  • Fix for Basketbrawl
  • Fix for Jinx voice
  • Better A78 header parsing for improved game detection
  • New Moderate Frameskip to show 3/4 frames (not as aggressive as the old 1/2 frameskip)
  • Support for 1024K (+128 byte header) games. Only a few tech demos available so far.
  • Removed most of the old hacks for DS-Lite as the speed is good enough to render those games properly.

V3.7a 2022/10/23

  • Fix for 320 modes.
  • Optmization across the board for faster and smoother performance.
  • Gained enough speed that we have restored full HQ sound for the DS-Lite.
  • bonQ fixed graphical glitches.
  • Keystone Koppers fixed graphical glitches.
  • Latest homebrews added to the internal database.
  • New configuration menu so you can tweak settings - new homebrews won't need a new A7800DS.
  • Better A78 v3 header support so more games run right.

V3.6 2022/06/04

  • Fix for XM detection so the newest Pac-Man Collection (PMC-XM) works!
  • Minor database cleanups so all the more recent games run.

V3.5 2022/02/12

  • Across the board cleanup of code. Copyright notice added.
  • Fixed High-Score save on Time Salvo
  • Slight memory optimization for reduced memory footprint.

V3.4 2022/02/06

  • Frameskip rendering improved by more than 10% - making more DS-LITE games playable!
  • Minor improvements to touch-screen key handling and other code cleanups.

V3.3 2022/02/04

  • Squeezed out another frame of performance.
  • Super Skateboardin' graphics fixed.
  • DSi eliminates frameskip on 80% of the library.
  • Updated 50 entries in the internal database - more new homebrews run.

V3.2 2022/02/01

  • A 5-8% speedup across the board through a number of small optimizations in core areas.

V3.1 2022/01/31

  • Now using more VRAM for bank swapping and partial DMA transfer to speed up large games.
  • Reverted part of the sound core to improve sound quality.
  • File selection cleanups to scroll less fast and be generally easier to see.

V3.0 2021/11/06

  • Reworked sound output core so it's now zinger-free.
  • Refresh of bottom screen - improved font and button debounce.

V2.9 2021/11/03

  • Fixed loading of large SUPER CART roms.

V2.8 2021/11/02

  • A bit of speed - enough to eliminate the old DS-LITE version.
  • A few new homebrews added to the internal database.
  • Optimized sound buffers for (very) slightly better performance.
  • highscore.rom can now bin in /roms/bios or /data/bios.
  • Cleanup code as time permitted.

V2.7 2021/04/02

  • New support for the latest homebrews: Galaxian final.
  • Added ability to swap screens using L+R+A.

V2.6 2021/04/02

  • Faster directory/file listing.
  • Support for the latest homebrews: Galaxian and Popeye.
  • Improved scaling and offset handling using L/R + Arrow Keys to match other emulators.

V2.5 2021/01/15

  • Added .A78 header naming search and as a backup filename search to help properly identify the game being loaded so that the right settings can be applied.

V2.4 2021/01/08

  • Improvement in bank switching allowing most games to run 60FPS.

V2.3 2021/01/06

  • Fixed large cart support so 512kb games run fine.
  • Fixed voice in Frenzy/Berzerk.
  • Fixed graphical glitches in Alien Brigade.
  • Optimized bank switching so more big games run smoothly.
  • Added default difficulty switches for the few games that need them.
  • Lots of cleanups as time permitted.

V2.2 2021/01/05

  • More memory tweaks - faster processing of memory for another 5% speedup.

V2.1 2021/01/03

  • Now using DTCM and VRAM for some key memory areas to speed up the emulator almost 10%.

V2.0 2021/01/01

  • Pokey and TIA sound core reworked to provide sound that is worth listening to.
  • Please run on a DSi, DSi-XL/LL or 3DS. You won't be happy with the performance on a DS-LITE/PHAT.

Release notes.

Credits

Thanks to:

A7800DS:

External links

Advertising: