A7800DS Phoenix Edition

From GameBrew
A7800DS Phoenix Edition
A7800dswav2.png
General
AuthorDave Bernazzani (wavemotion)
TypeConsole
Version4.5
LicenseMixed
Last Updated2022/11/18
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 MAME/MESS. 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.
  • Games greater than 1MB (1024K + 128b header) are not supported.
  • Only one Pokey is supported at 4000h, 800h and 450h (no Dual Pokey).
  • XM is not supported (beyond HSC and Pokey).

Changelog

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: