Jump to content
IGNORED

A7800DS - An Emulator for the DS/DSi/XL/LL


wavemotion

Recommended Posts

Welcome to the official A7800DS release thread.  

 

The latest versions can always be downloaded at my github page: https://github.com/wavemotion-dave/A7800DS

 

A7800DS is an emulator for our beloved ProSystem on the DS/DSi/XL/LL (and yes, it runs on the 2DS and 3DS but won't take advantage of any of the upgraded features of those handhelds).

 

 

image.png.8d3add96aefaebbd9bdeedcc297e7e8d.png    image.png.144be9cb96fae73eefd1043851e26b3b.png  

 

Although A7800DS is one of my least downloaded emulators - I'm always happy to continue to provide support for the system which I enjoy. Part of that enjoyment comes from the community here which has been nothing short of outstanding in terms of their love for the system and, beyond that, a love for sharing information about the system. Most of the accuracy and improvements over the last couple of years have come as a result of awesome folks here who have answered endless series of questions and helped me grok the inner workings of the system. Any remaining errors, omissions and shortcomings of the emulator are on me.


The emulator has the following features:

  • All known cart mappers are supported up to 1MB (1024K + 128 byte header) with the exception of the SOUPER (Ricky & Vicky). Yes, this includes Banksets in its full glory.
  • TIA and POKEY audio are supported - though only one Pokey at this time (no dual-pokey).
  • Version 3 and Version 4 header support - prioritizing V4 and falling back to V3 as needed.
  • Various controller mappings including traditional 2-button 'Proline' and also Twin Sticks (for Robotron - utilizing ABXY for the other stick) and the SNES2Atari Joypad.
  • High Score Cart support with each game getting its own private 2K SRAM for HSC use - these are backed and preserved to your SD card.
  • Everything runs full-speed and full-frame-rate on the DSi or above (with the faster 2x CPU) and most of the classics play perfectly on the older DS-Lite/Phat (a few of the complex homebrews and later banking games might slow down slightly on the older DS hardware)

 

This has been a labor of love - if you have any feedback, please do share (even a thumbs up is encouraging!) 

  • Like 9
  • Thanks 1
Link to comment
Share on other sites

V4.6 : 06-May-2024 by wavemotion-dave

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

 

For the new V4 header support, although I parse and interpret all V4 fields, there are some bits that the emulator does not yet support. For example, there is no dual-pokey support - for that designation in the V4 header, I'll simply enable Pokey @450 which gives you half the sound :)  If there are any combinations that the emulation deems invalid (e.g. Banksets with EXRAM/A8 as the option), I'll fall back to the V3 interpretation and/or some sensical defaults. You can always override any of these settings in the configuration on a per-game basis because occasionally the bits are not set correctly (they are generally spot-on once they get into @Trebor's ProPack... but early forum releases are sometimes hit-or-miss).

 

I've also made the hard decision to move away from a single high-score backed file to having each game separate. Some games don't play as nice with the HSC SRAM and it's safer to have each game get their own private 2K of SRAM for the high score (you must provide the HSC rom for the emulation to enable High Score support - and obviously only for those games that utilize it... see the readme file for details). I realize that a dedicated group of A7800DS players have built up their current high scores on A7800DS using the HSC feature... and this will force them to start achieving high scores from scratch again. Sorry guys! It's hard to make an omelet without breaking a few eggs.

  • Like 4
Link to comment
Share on other sites

14 minutes ago, Philsan said:

Thanks for the update! Do you plan to add Rikki & Vikki compatibility eventually?

I started to look at it over the weekend (thanks to a post here on AA and some assembly code headers that describe the banking and separate Maria/Sally handling of memory).  It reminds of Banksets in some ways... but just confusing enough that I didn't try to tackle it for 4.6.  To be honest, Banksets would have been above my paygrade without @RevEng's handholding on some of the concepts and even providing me with some custom test programs to weed out a few bugs. I might be on my own with R&V and the last time I was on my own, I made a quadruple batch of cookie batter and although all of it got consumed, non of it actually got cooked... 

 

 

But yeah... it's on "the list".

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

Cookie batter is delicious, even if it doesn't turn into cookies ;)

 

@raz0red implemented souper support in js7800 not that long ago. I know both of your projects have drifted from the original prosystem source, but having access to a similar reference implementation might help you work things out.

  • Like 5
Link to comment
Share on other sites

I tested a bunch of my projects on my 3DS XL and everything played really nicely. HSC works lovely once initialised. A.R.T.I. supports SNES2Atari and that worked great too.

 

I did notice some quirky notes on POKEY - A.R.T.I world 2 and a most E.X.O. tunes stood out as sounding a bit out of key / bit wonky. Most POKEY tunes also seemed a bit quiet and E.X.O. & A.R.T.I. seemed to also drop a channel intermittently (not ruling out my old device or the fact that funky POKEY modes were used on those tunes).

 

The latest build of Bernie and the Tower of Doom worked without issue and music seemed perfect (uses RMT).

 

I will test some more on my DSi later this week to compare.

 

image.thumb.png.7ba11010c148c67ec9c6fe8e51817ca3.png

 

 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Very cool, Lewis!

 

Re: POKEY - I'm sure the issues you have are on me. The emulation in that area is probably not perfect - especially given that I'm currently "sampling" the pokey registers and generating an output sample at the end of every scanline and that has to be synced up with a background ISR that fires off to push those samples to a sub-processor for output (and if it doesn't have enough samples, it will generate new ones - likely just repeating the last tone briefly). You don't tend to hear any problems with just TIA since it's already not that sophisticated -- but with Pokey at four channels (+2 TIA channels)... I can imagine things getting wonky.

 

Are you running from a flash cart? If so, even on the 2DS/3DS, you will be in compatibility mode running at 67MHz which will not help the situation (fine for non POKEY and less complex games... but your latest offerings need another gear!). For the DSi and above (XL/LL/2DS/3DS) and running from something like Twilight Menu++ or Unlaunch (from an SD card) you would unlock the full 134MHz mode which obviously helps keep the pipeline moving.

 

Anyway... awesome feedback and thanks!

  • Like 1
Link to comment
Share on other sites

Thanks Dave, you are doing great work with the emulator :)

 

47 minutes ago, wavemotion said:

Are you running from a flash cart? If so, even on the 2DS/3DS, you will be in compatibility mode running at 67MHz which will not help the situation (fine for non POKEY and less complex games... but your latest offerings need another gear!). For the DSi and above (XL/LL/2DS/3DS) and running from something like Twilight Menu++ or Unlaunch (from an SD card) you would unlock the full 134MHz mode which obviously helps keep the pipeline moving.

 

Yep, I'm running from SD card and I'm running from twilight menu ++, so should be full speed I think. 

 

 

 

 

 

  • Like 2
Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...