Homebrew Emulation Introducing Nintellivision - an Emulator for the DS/DSi

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,346
Country
United States
Okay... 4.5b daily build checked in at: https://github.com/wavemotion-dave/NINTV-DS

This will run all of the newest homebrews on the DS-Lite/Phat.

Generally speed is good (about 5% improved from all previous builds) but some of the latest homebrews are really complex. I've discovered what's really killing emulation on the older DS hardware is when we have two or three sound processors running. Some of the latest homebrews take advantage of 6-channel sound + voice. This is just a bit too much for the older DS hardware (but fine for DSi and above). So my recommendation with these games is to run with the minimum hardware if you're not running at the full framerate. Generally, for a game like Sorrow of Gadhlan Thur, you would just run with JLP only and not the ECS (which does provide 3 more channels of sound but the older DS hardware can't process it all - such games are designed to work with or without the extra sound channels).

Instead of pressing A to load the game, press X and you will get options. Sorrow plays fine with JLP only. A game like Hovver Bovver plays best with JLP+IVoice (the sounds are critical fun for that game). Experiment.

Speaking of experiment... this build has a lot of changes under the hood. I had to reset the save states (sorry!) and I'm not 100% convinced I got everything right - so if you do use 4.5b, please do let me know if things seem to be running right. I can't test all 250+ games myself!

1705239546688.png
 
Last edited by wavemotion,

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
727
Trophies
0
Age
41
XP
2,836
Country
France
Hi Dave,
Which games use the extra sound processors and are free to test ? I think Sorrow of Gadhlan Thur is still for sale.

EDIT : tested about 50 games and no problem detected (I used V4.5C). This emulator became full speed on older hardware for regular games (no FS and best sound settings 12) and ECS games (no FS and good settings 16). Impressive.
 
Last edited by CrashMidnick,
  • Like
Reactions: wavemotion

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,346
Country
United States
Hi Dave,
Which games use the extra sound processors and are free to test ? I think Sorrow of Gadhlan Thur is still for sale.

EDIT : tested about 50 games and no problem detected (I used V4.5C). This emulator became full speed on older hardware for regular games (no FS and best sound settings 12) and ECS games (no FS and good settings 16). Impressive.
Woot! Thanks for trying it. Yeah, speed is way up across the board - but you still can't turn on no frameskip on Intellivoice games (B-17 Bomber, Space Spartans, Bomb Squad, etc). Each audio processor that has to be emulated is another 10% hit on the emulation. The DSi, however, is running just about everything now without frameskip even if I have 3 audio processors emulated!

Onion and Bad Apple are two of the biggest Intellivision games with multiple sound cores. I’m still working on optimizing for Onion and haven’t tried Bad Apple (a tech demo) yet. Both are free and require both the bin and cfg to run. I think Bad Apple is almost a half megabyte - but it should load on older DS units now.
 
Last edited by wavemotion,

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
727
Trophies
0
Age
41
XP
2,836
Country
France
Woot! Thanks for trying it.

Onion and Bad Apple are huge. I’m still working on optimizing for Onion and haven’t tried Bad Apple (a tech demo) yet. Both are free and require both the bin and cfg to run. I think Bad Apple is almost a half megabyte - but it should load on older DS units now.
Bad Apple is full speed (no FS and best sound settings), Onion is fullspeed but with FS (a least for the 2 first rooms).

EDIT : yes I saw for Intellivoice but to be honest except TRON, the other games are playing very well. TRON is almost fullspeed with FS and lowest sound quality which is not that bad :)
 
  • Love
Reactions: wavemotion

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,346
Country
United States
Version 4.6 released: https://github.com/wavemotion-dave/NINTV-DS

V4.6 : 15-Jan-2024 by wavemotion-dave

  • Massive overhaul to the core emulation to reduce memory footprint. The older DS-Lite/Phat (with 4MB of memory) can now load all of the newest homebrew games!
  • Optmizations in Video, Audio and CPU cores providese 10% speed up across the board.
  • Improved sound quality for the DSi including a new "BEST" option (not enabled by default) that will render the sound as good as I can make it on the handheld.
  • A few small fixes for the CPU core to improve the cycle accuracy.
  • With the improved speed, the DSi largely disables frameskip for the best visual experience.
This is a big one! If you installed the beta (4.5b or 4.5c) your config will be wiped out - sorry. Hard to make an omelet without breaking a few eggs!

Previously, only the DSi with the expanded 2x CPU and 4x RAM was able to run the latest homebrews - most of which use JLP accelerated functions and ample bank swapping.

I've spent about 40 hours optimizing the memory and CPU core such that the older DS-Lite/Phat (when running from an R4 card or similar) will now load and run the largest bankswitching homebrews. All of the JLP features are available including all the accelerated functions, extra memory and flash (save) support. In addition, with the improved speed and efficiency, I've been able eliminate almost all frameskipping on the faster DSi and improve the audio quality slightly (the older DS units will still employ frameskip though it should be reasonably transparent to the player). I've also added a new 'BEST' sound quality option (not enabled by default as it slows the emulation down slightly) that is really only useful for the DSi and above and probably only for the less complex games that are already running with quite a bit of emulated-CPU margin (e.g. Astrosmash, Beauty and the Beast, Treasure of Tarmin, etc.). But it does sound nice
:)
 
Last edited by wavemotion,

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
727
Trophies
0
Age
41
XP
2,836
Country
France
Thank you for your hard work Dave ! I repeat myself once again but the fact that you spend countless of hours to improve your emus in a way that FAT/DS-Lite users can enjoy them almost the same way as DSi users is just amazing. Thanks for that, mate.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,346
Country
United States
Thank you for your hard work Dave ! I repeat myself once again but the fact that you spend countless of hours to improve your emus in a way that FAT/DS-Lite users can enjoy them almost the same way as DSi users is just amazing. Thanks for that, mate.
You're quite welcome. I just checked in a daily build 4.6c with a video rendering speedup for the more complicated games. Instead of writing one pixel at a time (one 8-bit value), I now write two pixels at a time (one 16-bit value) which is a 10% speedup on games that use scrolling (Tron Solar Sailor, Sorrow, AD&D Cloudy Mountain, Space Spartans, etc). If I start on an off pixel, I just do one pixel output which then puts me on an even byte boundary and then I can blast 16-bits at a time. This was a major improvement for many games - and Tron is now running 60fps with just the occasional dip to 59 when voice and sounds are both playing. It's not even perceptible anymore (with 4.6 you could hear the speech slur a bit).

I think all games will now play at (or near enough to) full speed even on older hardware. Still testing...
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,346
Country
United States
https://github.com/wavemotion-dave/NINTV-DS

V4.7 : 19-Jan-2024 by wavemotion-dave
  • Major refactor of the audio processor for a big speedup in rendering especially with more than one audio processor (i.e. ECS or Intellivoice)
  • Switched from individual pixel output to 16-bit (two pixel) output when dealing with scrolling games (big speedup for games like Tron Solar Sailor, Space Spartans, Sorrow, TNT Cowboy, etc).
  • The DSi now defaults to NO frameskip on any game and the 'Best' sound quality.
  • The DS-Lite/Phat gets a 15% improvement in sound quality and many of the classic games now run without frameskip.
  • Aggressive frameskip has been removed - it's not needed on even the oldest hardware anymore.
  • With the many updates, the config format changed and will be wiped back to defaults - sorry!

Virtual parity between DS-Lite/Phat and DSi now. It's hard to tell the difference playing on the two systems side-by-side. I think Tron and Space Spartans will drop down to 58 or 59 fps when there is sound, voice and scrolling happening but you can't tell as a player that it's happening anymore. The DS-Lite gets a big boost in sound quality (even though it's still set to the lowest of the 3 sound settings).

For the DS-Lite/Phat, many of the classic games (Astrosmash, Beauty and the Beast, Treasure of Tarmin, etc.) will now automatically default to no frameskip as there is plenty of speed to make that a reality at 60fps. The later games and newer homebrews will still utilize some frameskip to help keep them running at full speed.

For the DSi, all frameskip has been eliminated and the sound quality is set as high as possible on every game. Everything runs at 60fps.

It turns out there is one more level of audio quality I can enable but it's CPU expensive - only the DSi has the possibility to run that way. I tried this new hypothetical 'Ultimate' sound quality setting side-by-side with the current best/high quality setting in Nintellivision 4.7 and my ears (not perfect by any stretch!) couldn't tell the difference in audio quality. So I've decided to not include this as it really consumes a massive amount of the CPU for what appears to be no significant benefit.

For fun, I went back to my first 0.5 release (I didn't keep alpha versions earlier than this) just to see how far we've come here. I'm pleased with how this one turned out! I'm hopeful that 4.7 will be a stable version for quite some time.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,346
Country
United States
https://github.com/wavemotion-dave/NINTV-DS

A cleanup release - I went after the last few outstanding issues with the emulation and I think every game (commercial or homebrew) will run just about perfect on any DS hardware. Huge thanks to Joe Zbiciak's JZINTV for the clue as to why the SameGame and Robots Intellivoice was producing garbage at the end of every spoken line (when switching from iVoice rom fetch to FIFO - or the reverse - a real SP256 will clear out any partially fetched bits).

V4.8 : 24-Jan-2024 by wavemotion-dave
  • .int files are now auto-detected as either .bin(+cfg) or .rom files. This allows you to rename .rom files or .bin files to .int and let Twilight Menu++ auto-launch Nintellivision.
  • Slight improvement to the Intellivoice driver to give a minor boost in performance (mostly for DS-Lite/Phat).
  • Added new keyclick enable option in Configuration (page 2) that produces the typical Intellivision keyclick when you press the 12-button keypad (on the DS lower screen).
  • Added a new level of sound quality 'Ultimate'. The default for the DSi and above is still 'High' as 'Ultimate' consumes significant CPU time but you can enable it on a per-game basis for some of the more simple games (e.g. Astrosmash, Beauty and the Beast, AD&D Tarmin, etc)
  • DS-Lite now enables Intellivoice on World Series Major League Baseball - sound quality is a bit rough on the older handheld but very playable.
  • Fixed save/restore state including when backtab latched is TRUE (Stampede, Masters of the Universe)
  • Fix for intellivoice games so there are no more glitches on the updated version of Same Game and Robots.
  • Fix for ecs games so they don't inadvertently write over the last graphics card in memory (causing minor graphics corruption on some games)
  • Correction of one Intellivoice coefficient value (thanks to documentation in JZINTV) so voice games sound their best.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,346
Country
United States
https://github.com/wavemotion-dave/NINTV-DS

V5.0 : 06-Mar-2024 by wavemotion-dave
  • New splash screen jingle.
  • Boosted audio output by almost 25% so you don't have to max out your DS volume.
  • New audio ramp down/up to help soften (and partially eliminate) audio pops/clicks when transitioning in and out of a game to the menus.
  • Minor cleanup and tweaks as time permitted.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: I did use a bot for Diablo III though but no ban there lol