Homebrew Seeking Help... Nintellivision - an Emulator for the DS/DSi

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
299
Trophies
0
Age
38
XP
1,222
Country
France
Tested and approved ! Many thanks. 40 FPS is not that bad for a 1st release on DS ;)

int.jpg


I will test on 3DS + TWL++ tomorrow to get the extra FPS :)
 
Last edited by CrashMidnick,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Nice Crash! Yeah, needs more speed and sound needs improving but it's not bad!

I just added in .ROM support. Apparently intellivision .rom files contain the loading information (different from .bin or .int) and many of the newer homebrew games use that format so this will let some newer games like Copper Command or DK Arcade load up.
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
528
Trophies
0
XP
1,740
Country
Algeria
Got a chance to check out your first release. Hugely impressive performance on a 3DS. Haven’t had a chance to try it on a DSi yet but would imagine performance is identical. Sound is definitely a bit rough. But for how fast this came together it’s remarkable.

would love to see the ability to save per game control configs given how unusual some schemes are in certain games.
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
528
Trophies
0
XP
1,740
Country
Algeria
Well Dave, I just beat Adventures Dungeons & Dragons for the first time in five decades thanks to your work. I know this isn't the first Intellivision emulator ever built, but there's something about using the number pad on the bottom screen (the Intellivision had a very goofy control system) that makes it more fulfilling to complete than mapping it all to an Xbox controller or something.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Well Dave, I just beat Adventures Dungeons & Dragons for the first time in five decades thanks to your work. I know this isn't the first Intellivision emulator ever built, but there's something about using the number pad on the bottom screen (the Intellivision had a very goofy control system) that makes it more fulfilling to complete than mapping it all to an Xbox controller or something.
That warms my heart, MKF!

Yeah, we will soon be able to save options for each game individually so you get back your exact settings when you load up a game. And I'd like to provide some indication on the main overlay which buttons are mapped... visually helping the player remember the map.

I just added support for controller #2 and will soon add the "dual action" controller. One quirk of the original Intellivision is that Disc press and Keypad presses mess with eachother - so in AD&D Cloudy Mountain (aka "Adventure") you can't easily keep running and shoot at the same time. But that's fixed with the dual-action (uses Disc from player 1 controller and Keypad from player 2 controller which is how we used to play with my buddy double-teaming these 1 player games).

I'm also going to add custom overlays on the main screen for all the stock games... but that will take a bit longer. You can bet I'll be starting with my favorites :)

Re: sound... yeah, it's rough. Some games (Astrosmash) sound great. Other games have way too much distortion in spots. Sound engineering is not my strength - really need help in that department but I'll do my best to debug and clean up. Even if I could just knock down the low-rumble distortion it would help. I'm just happy there is sound at this point!

Lastly - you can grab the nightly check-in (not ready for a new build yet). I added frameskip options and sound options so you can tweak the sound. If you set sound quality lower (higher value) you can get almost 50FPS on the older DS units. I also added .ROM support for the newer homebrew games - been enjoying some Copper Command last night!

Thanks for the encouraging words all - it helps when that's your only compensation :D
 
Last edited by wavemotion,

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
528
Trophies
0
XP
1,740
Country
Algeria
I found a good speedup for the Intellivoice games that gets me 10% improvement... that will help.

I also added the first overlay for AD&D Treasure of Tarmin (aka Minotaur). Not pretty but functional - I'm no artist :)

View attachment 274744


Most of the overlays have been archived as PNG files on some Intellivision sites. Would be cool if they could eventually be added. Saves you having to make custom ones too.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Yeah, I'm trying to stay away from anything with a copyright symbol on it. So the original overlays will probably not happen - though maybe I can find a way to add them externally (meaning the end-user supplies them and puts them into the same directory as the ROMs). I'm trying to stick to all open-source or hand-done stuff here.
 
  • Like
Reactions: Indy13 and banjo2

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
New release. https://github.com/wavemotion-dave/NINTV-DS

V0.6 : 03-Sep-2021 by wavemotion-dave

  • More speedup and polish - especially for intellivoice games.
  • New config options for frameskip, sound quality
  • Intv .ROM file support (for newer homebrews)
  • New overlays for MINOTAUR and ADVENTURE (in Config settings)
  • New dual-action controller support (in Config settings)
  • Can now map START and SELECT buttons
By tweaking the new frame skip to "aggressive" (not recommended for DSi users) and dropping sound quality divisor to 16 (or 32 if you're really trying to squeeze frames)... you should be able to get into the mid 50s of frames on the older DS devices.
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
528
Trophies
0
XP
1,740
Country
Algeria
Just wanted to throw this out there. For folks with a 3DS it’s worth downloading this and Stella DS also by Dave. Create a home screen forwarder if you want. We have awesome options through Retroarch but the QOL on these emus is really top notch and it provides an experience that in a lot of ways is much closer to what we had in the early 1980s.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
New release. https://github.com/wavemotion-dave/NINTV-DS

V0.7 : 03-Sep-2021 by wavemotion-dave
* Ability to save configuration on a per-game basis (START button in Config)
* Minor sound improvements
* Moved FPS and Turbo mode to Config
* More homebrews added to "knowncarts.cfg"

Big change is per-game config settings which are saved out to the SD card. I got tired of having to re-map the keys and overlays for the games I'm playing :)

I allow up to 600 custom config saves - that's more than twice as many Intellivision games that current exist (even including Homebrews) and I added 10 spare fields for future expansion so this should be good forever!

upload_2021-9-4_9-37-45.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Not ready for another build (tomorrow most likely) but the latest checkin on the main GitHub page has some sound improvements as I streamline the audio core and you can now disable sound if you want to be able to play games full-speed on the older DS hardware.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Guys... I spent a full 8 hours today trying to understand and rework the sound engine ... it's improved only because it's got less crap causing timing issues but I wasn't able to solve it. I think the main problem is that the audio buffers written by the underlying BLISS emulator engine are not consistent - the Processor Bus emulation mixes and matches all of the different CPU and peripheral chips that are clocked - and so some scanlines the sound buffer is filled with inconsistent timing due to how much emulated CPU is being utilized by the program running (this is why some games like Astrosmash sound perfect but Beauty and the Beast has a lot of low rumble tones). Meanwhile the ARM7 processor is just chugging along reading samples and outputting sound... and it wants those sounds to be available at the right times.

I tried a double-buffer scheme where I copy the sound into a staging area and then feed the staging buffer into the ARM7 sound buffer and it almost works... but it's really too slow to be usable.

Short of a complete re-write of the CPU/Sound core or a switch to a different emulator baseline (say, JINTZ which is really good but I ruled it out as Bliss was easier to port and I'm already 40+ hours into this project).

So I may move on to more useful pursuits such as more overlays, better options, highscore support and other things to make the emulator more enjoyable to use. I feel kinda bummed out that I can't get the sound perfect - but such is life. Maybe a sound-engineering knight-in-shining-pocket-protectors will come to the rescue :)

But I'm on the verge of sound-burn-out right now and I don't want to dampen the otherwise good progress we're making here.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
New release. https://github.com/wavemotion-dave/NINTV-DS

V0.8 : 05-Sep-2021 by wavemotion-dave
* Two types of Dual-Action controllers supported (A=Standard, B=buttons on Controller #2)
* More overlays added (Astrosmash, B-17 Bomber, Atlantis, Space Spartans)
* Switched to a retro-green font for Game Select/Options
* More new homebrews supported.
* Minor sound improvements.
 

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
299
Trophies
0
Age
38
XP
1,222
Country
France
Hi Dave,
Are you sure the FPS counter is working well ? I have done those tests yesterday :

A- DS lite, downgrade the sound to reach 50FPS, game : Burger time
B- N3DS with TWL++ in DSI mode for extra CPU power, default sound option, 60 FPS, game : Burger time
C- N3DS, Retroarch FreeIntv, standard options, 60 FPS, Burger time

What I have noticed :

1) In terms of game speed, A and B are very similar when they are side by side, if the sound was not downgraded it would be difficult to see the difference
2) Even if in DSi mode 60FPS, FreeInt is faster and smoother at the same framerate, it is running at the "true" speed.The guy in Burger Time is moving really faster.
3) Nintellivision has got washed out colours compared to FreeIntv

I will check this again tonight after work to be sure that I did not miss something, mainly with the frameskip option.
 
Last edited by CrashMidnick,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Thanks for the testing Crash!

Ok... so I pulled out my old Intellivision and an almost-as-old tube TV to try this. Took me a bit of time to find my Burgertime cart - was loose on the bottom of a pile of cords and crap. I ran through Burgertime and about 10 other games - it all seemed to run reasonably the same as on my Nintellivision (and I'm working on a sound fix so it's starting to sound similar too!!)

I'm going to try some timing experiments at the title screen where the egg makes a lap around the screen on both a real system and on NINTV-DS. Maybe you could do the same on FreeIntv.


239812976_10226870435130688_3315999843399810134_n.jpg
 

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
299
Trophies
0
Age
38
XP
1,222
Country
France
Beautiful setup you've got here !
I will retry tonight, can you please tell me if you keep frameskip = ON or OFF and sound settings from your last build ?

Unfortunately I cannot compare with real hardware, I grew up with 3rd gen consoles/computers but I will try my best for the testing.

Freeintv was about 10-20% faster than Nintellivision. There is some kind of slutter if I can say on Nintellivision even capped at 60.
 
General chit-chat
Help Users
    gudenau @ gudenau: This source file is now valid C, C++, Java and Scala.