Homebrew A7800DS - Improved

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
That's a great picture Dave. Is that the same machine featured in King of Kong?
Good eye - that is, in fact, the same arcade that Steve Weibe visited in King of Kong, however they have several backup machines stored in case they need to make repairs (they just swap out a working version from the "back room"). So it's 50/50 whether that's the exact same Donkey Kong machine featured in King of Kong (highly recommended documentary of classic arcade goodness you can watch on most streaming services...)
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
The Sound is way off in the current version or I have to tweak something
Can you be a bit more specific? I've got a 7800 but only a half-dozen games. When I play Asteroids on my 7800/TV and then on my emulator, the sounds seem nearly identical.

The pitch is a little off in spots... especially for the few voice games (like Frenzy/Berzerk homebrew). That's going to be harder to fix as it's more cycle timing and the baseline emulator I'm using (ProSystem) "cheated" a bit to get the cycle timing semi-correct (but it's not 100% perfect).
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
My least popular emulator lives on :)

Version 2.8 has been released: https://github.com/wavemotion-dave/A7800DS

V2.8 : 02-Nov-2021 by wavemotion-dave
  • 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.

@RocketRobz you will notice that there is no longer a DS-LITE version. I know more now than I did before... and was able to separate out the DSi and DS-LITE stuff into the same binary (features now determined at run-time). It's still a far cry from full speed on the older DS hardware... but at least we don't have to support 2 builds anymore.

You're free to continue to distribute the older 2.0-LITE version or you can streamline down to just the one binary as you like.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
You're welcome DJ.

However, 2.8 had a bug with loading large SUPER CART roms... the big ones - like EXO and other cool homebrews.

I've just loaded V2.9 with this fix. Sorry about that guys.

Version 2.9 has been released: https://github.com/wavemotion-dave/A7800DS

I will say that A7800DS has the lowest combability of the 5 emulators I've worked on. It's playable - and a lot of fun to be had on the system ... but the old ProSystem emulator base is just not all that accurate in terms of timing. The 7800 does some really funky things - it's capable of halting the CPU to "stall" it when rendering more complex screens and this causes the older ProSystem lots of fits. There are better 7800 emulators out there for compatibility - but this system is not one of my beloved systems from childhood and so I'm not keen on starting over on it. 90% of games will play fine - with the very occasional graphical glitch or sound issue ... but good enough that you can really get a feel for the system and the games it supports.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
Version 3.0 has been released: https://github.com/wavemotion-dave/A7800DS

V3.0 : 06-Nov-2021 by wavemotion-dave
  • Reworked sound output core so it's now zinger-free!
  • Refresh of bottom screen - improved font and button debounce.

That took a while! The sound core for the 7800 was... unique. Some games have just the TIA (2 channel). Some have Pokey (4 channel). Some use both (6 channels). And there's the DS-LITE vs DSi update frequency... So it wasn't easy to use the new Zinger-free output handling I discovered in Nintellivision. But it's done. I also took this opportunity to refresh the main bottom screen so it's a bit more legible and the debounce on the keys is better.

That should be the last of the zingers in the 5 emulators I've worked on. If I never hear another sound glitch, it will be too soon :)

1636203425140.png
 
Last edited by wavemotion,

Cris1997XX

Well-Known Member
Member
Joined
Oct 31, 2021
Messages
470
Trophies
0
Age
23
XP
1,262
Country
Italy
Does the emulator support XM homebrew games? I assume emulating a Yamaha FM chip on top of all this would be pretty difficult lmao
 

Cris1997XX

Well-Known Member
Member
Joined
Oct 31, 2021
Messages
470
Trophies
0
Age
23
XP
1,262
Country
Italy
Will we ever see those Atari consoles emulators or Nintellivision ported on 3DS by you? Maybe just to increase the resolution for better visuals (Since some games like Pac-Man suffer from tiny looking dots, including the power pellets). But I know that console requires much better programming skills :rofl2:
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
Of the six emulators I've worked on for the DS, the A7800DS is best suited for the 3DS screen resolution - at least the bottom screen is a pretty close match at 320 x 240. When in "hi-res" mode, the A7800 renders out at 320x240 (and in lower res mode it's 160x240). So on a DS/DSi it's compressed in both directions which sucks. Most of the other 8-bit consoles are actually best suited to the 256x192 resolution of the DS/DSi and would need to be stretched out (in non-integer multiples so the aspect ratio gets weird) on the 3DS.

In any event, I don't own a 3DS and so the exercise of porting these is left to the intrepid reader. I've commented the code base as much as possible - feel free to dig in!
 

MatioMania

Well-Known Member
Member
Joined
Apr 18, 2011
Messages
249
Trophies
1
XP
630
Country
United States
Just downloaded V3.0

The sound still is messed up, I'm on the DSi

Tried it on my 3DS, Samething

Donkey Kong
Pac-Man Collection
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
Strange. Both those games sound fine for me with 3.0.

I don't have a real Pac-Man Collection to compare but DK sounds pretty close to a real 7800. And I've played enough Pac-Man over the years that PMC sounds pretty solid as well.

Can you be more specific than "messed up"? Pitch too fast? Too slow? Raspy output? High frequencies missing? Sounds like Kermit the Frog singing in a swamp?

Edit: it's possible that somehow you're not in DSi CPU mode (133MHz) and stuck in DS mode (67MHz). Turn on Frame Rate by pressing X while the game is playing - it should be rock solid 60FPS - any dips and you're not launching the game correctly and the older DS mode will really struggle with the A7800DS (only a few smaller games will run right on the slower CPU). Based on one of your other posts in these forums, I'm guessing you're running and R4 card and whatever launcher you're using might not be configured to run the emulator in the faster DSi (or 3DS) mode.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
Yeah, that's DS mode... you're only running at 67MHz and not taking advantage of the DSi nor 3DS. The sound can't keep up with the older/slower CPU mode.

There are, quite literally, more than two dozen "R4" cards. Most of them will not run in DSi mode... but I'm no expert. The 3 R4 cards I have (all different) will only run in older DS compatibility mode with the Kernel loaded on them.

My recommendation is to use the SD card and either Unlaunch Custom Firmware or TWL++ -- both of which will allow you to run in the faster CPU modes. There are probably more experienced “R4” users here.
 
Last edited by wavemotion,

Pk11

A catgirl with a DSi
Member
Joined
Jun 26, 2019
Messages
1,285
Trophies
1
Age
22
Location
米国
Website
pk11.us
XP
3,895
Country
United States
There's exactly 1 flashcard that natively supports DSi Mode, the CycloDS iEvolution (and it wasn't even very good). You can get DSi Mode on more or less any flashcard by installing TWiLight Menu++ and Unlaunch on the SD, then install TWiLight Menu++ on your flashcard and when your flashcard is loaded from SD TWiLight it'll be able to use DSi Mode.

As TWiLight being on the SD is a requirement for that though, the easiest way to run DSi Mode homebrew is just to use it from the DSi SD.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
915
Trophies
1
XP
7,334
Country
United States
Version 3.1 has been released: https://github.com/wavemotion-dave/A7800DS

V3.1 : 31-Jan-2022 by wavemotion-dave
  • Now using up to 256K of 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 read.
The A7800DS.nds will run on both DSi and DS-LITE/PHAT but may be a little slow on the older DS hardware.

I spent some time this weekend revising an old friend - the Atari 7800. I wasn't happy with the sound quality and decided to revert some of the zinger-free changes I made to improve sound (but zingers - rare as they are - can happen). I also took the opportunity to port over some knowledge I gained in the past 6 months to use VRAM as a staging area for bank switching memory - this gives a nice 10% speedup for large bankswitched 7800 games. Ninja Golf, Spire of the Ancients and similar big games now run at 60FPS. I think the only games that aren't able to get close to 60FPS are Alien Syndrome (51-53FPS) and Realsports Baseball (52FPS).
 
Last edited by wavemotion,

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
725
Trophies
0
Age
41
XP
2,832
Country
France
Version 3.1 has been released: https://github.com/wavemotion-dave/A7800DS

V3.1 : 31-Jan-2022 by wavemotion-dave
  • Now using up to 256K of 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 read.
The A7800DS.nds will run on both DSi and DS-LITE/PHAT but may be a little slow on the older DS hardware.
The A7800DS-LITE.nds will run faster on DS-LITE but is not as full featured.

I spent some time this weekend revising an old friend - the Atari 7800. I wasn't happy with the sound quality and decided to revert some of the zinger-free changes I made to improve sound (but zingers - rare as they are - can happen). I also took the opportunity to port over some knowledge I gained in the past 6 months to use VRAM as a staging area for bank switching memory - this gives a nice 10% speedup for large bankswitched 7800 games. Ninja Golf, Spire of the Ancients and similar big games now run at 60FPS. I think the only games that aren't able to get close to 60FPS are Alien Syndrome (51-53FPS) and Realsports Baseball (52FPS).

Dave, is it too much to ask you to add frameskip to help the DS-Lite ? Many games run at around 30-40 fps like Commando/Donkey Kong Jr...
Unfortunately, Alekmaul did a dirty port for DSTWO and the sound is really bad (no smooth scrolling too). You are the only hope to have this console running on older HW :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Least they got head in the end