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

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
Still not ready for a new build... but 2.1c is up in the nightly check-in. I got back some speed... and there were a few other graphical glitches introduced on other games due to the fix for Stampede and Masters of the Universe. Those are all fixed now.

I'm working hard on the D1K and D2K glitch. I've reached out to the smart programmers over on Atariage for help... I got confirmation that the MiSTer FPGA implementation of the Intellivision (hardware based emulation) has the same ape-climbing glitch. That makes me feel better that even hardware emulation can have this problem. I've done an exhaustive test on the sprite priority, background handling and collision detection and I think Nintellivision is getting it all correct... the programmer for D1K and D2K is doing something tricky that may be non-standard (but that real hardware works with). I'll keep working at it.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
Version 2.2 is released! https://github.com/wavemotion-dave/NINTV-DS

V2.2 : 07-Oct-2021 by wavemotion-dave
* Stampede graphics fixed.
* Minor artifacts in Masters of the Universe fixed.
* Centipede working again.
* Improved speed across the board.

I got back all of the lost speed with the improved compatibility - and a bit more besides. This is the fastest rendering version yet. On the DS, games like Ms Pac Man and AD&D Cloudy Mountain now run full speed and even the mighty DK Arcade is up around 57 or 58 and very playable. Most of the classic games play full speed on the DS-LITE/PHAT though voice games are still too slow to play.

On the DSi, of course, everything is running smooth and full-speed across the board. Enjoy!
 

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
725
Trophies
0
Age
41
XP
2,825
Country
France
Version 2.2 is released! https://github.com/wavemotion-dave/NINTV-DS

V2.2 : 07-Oct-2021 by wavemotion-dave
* Stampede graphics fixed.
* Minor artifacts in Masters of the Universe fixed.
* Centipede working again.
* Improved speed across the board.

I got back all of the lost speed with the improved compatibility - and a bit more besides. This is the fastest rendering version yet. On the DS, games like Ms Pac Man and AD&D Cloudy Mountain now run full speed and even the mighty DK Arcade is up around 57 or 58 and very playable. Most of the classic games play full speed on the DS-LITE/PHAT though voice games are still too slow to play.

On the DSi, of course, everything is running smooth and full-speed across the board. Enjoy!

I can't thank you enough for what you have done ! This emu is amazing !
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
You're quite welcome, Crash! Thanks - as always - for the kind words.

Since some people like technical details or interesting "under the hood" stuff...

On this emulator, I'm running out of memory on the older DS consoles (the DSi has 16MB of memory compared to 4MB for the older DS-LITE/PHAT). Interestingly enough, the system has almost 750Kb (a quarter of a megabyte) of Video Memory. We only need about half that to render the emulator screen and the custom overlays/configuration stuff... so I stole the other half and re-purpose it for the emulator. If you were to get a peek at the internal memory, you would see code for the game you loaded sitting out in video memory in buffers that I disable for video output. Since the Intellivision uses a 16-bit CPU (CP1610), this 16-bit video memory is a good fit for storing game instructions being emulated.

We're utilizing everything the original DS has to make this work :D
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
Plays great!

How come it fills the whole screen? Seems to be a bit squished or unevenly scaled?

I don’t know if I’ll have time to do an overlay for Chip Shot, but it would be nice to have one.
The Intellivision video chip (STIC) renders 192 vertical pixel lines... and the Intellivision DS/DSi has 192 vertical pixels. Therefore it should be pixel perfect vertically... it has to stretch a bit horizontally but it should be in the right ratio.

If you're playing on a 2/3DS, then it will scale up to fill that screen and it may look a bit out of sorts... just like any original NDS game would scale I guess.
 
  • Like
Reactions: Tarmfot and banjo2

matt!

Well-Known Member
Member
Joined
Nov 20, 2009
Messages
633
Trophies
1
Age
47
Website
www.gingerbeardman.com
XP
1,346
Country
United Kingdom
I'm playing on my yellow DSi XL. This is hands down the best INTV emulator I've used.

Is the output width increased or reduced horizontally?

In screenshots and on other emulators the golf club is a pefect diagonal. But here it's uneven. The change in horizontal resolution means judging diagonal shots is difficult. Round things aren't round (the graphics on this game are made of many ellipses/circles), cursor changes shape and becomes thin and difficult to see at times, and so on.

I've never played an original hardware so forgive me if this is all how it should be.

Photos
 
Last edited by matt!,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
Yeah, so I think I can see what's happening.

The Intellivision STIC video chip renders at 160x192 ... the vertical is prefect for the DS/DSi but the horizontal is not. That would produce a massively squished picture with black borders on the sides. So the horizontal is scaled from160 to 256. As you can see, that's not an even multiple so that means that some pixels render 1:1 and some pixels render 1:2 (twice as wide) to get the stretching to work (since you can't render half-pixels). That's why you don't get the perfect diagonal here. On a PC/Windows/Linux/Mac emulator you would have a much higher screen resolution and the stretching would not show such obvious artifacts.

I can improve this by offering the ability to tweak your horizontal stretch. It means you can stretch a bit more or less and lose a few pixels on either side of the screen but perhaps find a sweet spot where the pixels are all rendering 1:1 or 1:2 so that the diagonal looks perfect again.

Emulation is rarely perfect... and with a limited screen resolution output of the DS (that doesn't match 1:1 the Intellivision), it's even less so.
 

matt!

Well-Known Member
Member
Joined
Nov 20, 2009
Messages
633
Trophies
1
Age
47
Website
www.gingerbeardman.com
XP
1,346
Country
United Kingdom
OK, custom overlays are not what I had in mind or what I would use.

What I wanted to do was create a custom image for the button panel that is already on screen. Basically, a way to use the overlay artwork that is usually placed on the button panel. Or like the bundled button panels.

For Chip Shot that is 1,2,C,0,E and I would add the table of club distances as detailed in the manual. I mean, I have them committed to memory but new players would benefit from that info being on hand.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
Custom overlays is exactly what you want. You can create any screen layout you want including the exact keypad you see now only with images or text where the buttons are. Or you can design something awesome of your own imagination. Or you can stretch out an existing overlay with hot spots anywhere. There is nothing you can’t create with custom overlays.

Here is my custom overlay for Treasure of Tarmin. I have access to every button on the original overlay.
2F081C89-41C5-44B9-8F98-826A2844ECD3.jpeg
 

ts-x

Member
Newcomer
Joined
Oct 7, 2021
Messages
14
Trophies
0
XP
395
Country
United States
Yeah, so I think I can see what's happening.

The Intellivision STIC video chip renders at 160x192 ... the vertical is prefect for the DS/DSi but the horizontal is not. That would produce a massively squished picture with black borders on the sides. So the horizontal is scaled from160 to 256. As you can see, that's not an even multiple so that means that some pixels render 1:1 and some pixels render 1:2 (twice as wide) to get the stretching to work (since you can't render half-pixels). That's why you don't get the perfect diagonal here. On a PC/Windows/Linux/Mac emulator you would have a much higher screen resolution and the stretching would not show such obvious artifacts.

I can improve this by offering the ability to tweak your horizontal stretch. It means you can stretch a bit more or less and lose a few pixels on either side of the screen but perhaps find a sweet spot where the pixels are all rendering 1:1 or 1:2 so that the diagonal looks perfect again.

Emulation is rarely perfect... and with a limited screen resolution output of the DS (that doesn't match 1:1 the Intellivision), it's even less so.

Hey Dave, followed you over from AtariAge. Just installed this on my new (used) 2DS XL and it's working great! The custom overlay capability is just too cool to ignore, and in fact I hope to create overlays for a number of other games to add to this thread.

I would also agree that an option to adjust the horizontal stretch would be very helpful. Games like Loco-Motion kind of suffer from that "squished" feel with the compressed horizontal resolution. This might not be possible, but could an option be added that would allow the horizontal stretch to take advantage of the wider display available on the 2DS/3DS? I think that would really allow for pixel perfect aspect ratios on those displays. Thanks again for your work on this, it's really impressive.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
Great to see you here Ts-x! Be sure to also check out the four (4) Atari emulators I’ve worked on if those are of interest. And s8ds will play colecovision games nearly flawlessly.

If you want a copy of the overlays I’ve done for myself, let me know (just send me a PM). I don’t openly distribute them as they use a lot of images from real overlays. And, of course you can create your own.

As for the 2/3DS… I don’t have one nor do I know how to develop for it. While I’m told my emulator will run on those, but it doesn’t use the full resolution. Some retro systems are ideal for the DS… MSX and Coleco and ZX are 256x192 and are pixel perfect. Intellivision is at least right in one dimension. Atari tends to use more than 192 scan lines and so has minor artifacts in both directions. A 3DS screen resolution might help. It’s 400x240 but that’s not ideal for these systems either as doing, say, 320x192 for intellivision will look really stretched due to pixel aspect ratio. Nothing here is perfect - but man a $70 DSi XL makes a hell of a retro console 🤓
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
If you don't want to change the button positions - that's even easier.

Here is something I threw together in 10 minutes using the custom overlay. It's crude, it's not polished but it works. Someone with a bit more care can do much better - adding all the other club distances, etc. I could give this to you but for the 10 minutes of extra effort, it's probably better to teach someone how to fish :)

1633776450208.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
914
Trophies
1
XP
7,318
Country
United States
Just FYI... I'm working on expanding the JLP support for full coverage of flash writes. To my knowledge, this will be only the 2nd Intellivision emulator to support this (jzintv - the gold standard for Intellivision emulators - obviously supports it).

For those that don't know... JLP offers programmers more RAM, accelerated multiply/divide routines and some other nice features like "hardware assisted" CRC16 generation and random number generation. Previous versions of Nintellivision offered partial support - mostly for the RAM which some games need (Missile Domination, Grail of the Gods, etc).

Unfortunately, other than the test cart, there aren't too many free homebrew games that support utilizing the built-in flash support of JLP (for example: to save high scores or game states to flash memory which would be great for long dungeon crawls). Some of the homebrew games that come on carts using the JLP boards do support it - but it's not many at this point. I think it just hasn't gained much traction - though it's now supported fully in INTYBASIC and hopefully more programmers will utilize it in the future. In the meantime, Nintellivision will be ready for it :)

1633783673028.png
 

matt!

Well-Known Member
Member
Joined
Nov 20, 2009
Messages
633
Trophies
1
Age
47
Website
www.gingerbeardman.com
XP
1,346
Country
United Kingdom
There are some amazing Homebrews on the Intellivision that will mostly run fine under Nintellivision. Unfortunately some great looking games are not free for the ROMs and with the new LTO flash-cart these ROMs are often sold and tied to a specific personalized flash cart - so you can't even buy a normal .BIN rom for play on emulators for those games.

However, there are some great freely released games. Some you have to really hunt for - some were made free for a year or two before going commercial so you may need to pull some tricks like using the wayback machine to restore a website before it was changed to get the free stuff (assuming you missed out during the periods of it being free).

I'd recommend playing DK ARCADE (DKINTY.ROM) as an absolutely stellar version of Donkey Kong with all the screens and really enjoyable playability. COPER COMMAND as an intellivision spin on Chopper Command. Pumpkin is a fun little galaga/space-shooter. Aardvark is always worth a play. Burger Time 2 (BT2) - Master Chef is an improvement on the original. Mystic Castle is a faster and highly enjoyable hack of Thunder Castle. MS-Pac-Man gets everything right as much as possible on the classic system. Stonix is as close to Arkanoid as you can get on the system. Exidy's Sydney Hunter and the Sacred Tribe is a great little platformer. And XMAX Carol is worth a play any time of the year!
Thanks for this list, for anybody else wanting to try them out the majority of them can be found in this handy reddit post!
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • The Real Jdbye @ The Real Jdbye:
    cyberpunk at 4k without DLSS/fidelityfx *might* exceed 12gb
    +1
  • The Real Jdbye @ The Real Jdbye:
    but that game barely runs at native 4k
  • Psionic Roshambo @ Psionic Roshambo:
    I think it was some newer games and probably poorly optimized PS4 or PS5 ports
  • The Real Jdbye @ The Real Jdbye:
    they definitely will age better but i feel dlss might outweigh that since it looks about as good as native resolution and much less demanding
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    When I played Cyberpunk on my old 2080 Ti it sucked lol
  • The Real Jdbye @ The Real Jdbye:
    AMD could introduce something comparable to DLSS but nvidia's got a lot more experience with that
  • The Real Jdbye @ The Real Jdbye:
    least amd 7xxx has tensor cores which the previous generations didn't so there is the potential for AI upscaling
  • Psionic Roshambo @ Psionic Roshambo:
    They have FSR or whatever it's called and yeah it's still not great
  • The Real Jdbye @ The Real Jdbye:
    so AMD seem to finally be starting to take AI seriously
  • Psionic Roshambo @ Psionic Roshambo:
    Oh yeah those new 8000 CPUs have AI cores built in that's interesting
  • Psionic Roshambo @ Psionic Roshambo:
    Maybe they plan on offloading to the CPU?
  • Psionic Roshambo @ Psionic Roshambo:
    Would be kinda cool to have the CPU and GPU working in random more
  • Psionic Roshambo @ Psionic Roshambo:
    Tandem even
  • The Real Jdbye @ The Real Jdbye:
    i think i heard of that, it's a good idea, shouldn't need a dedicated GPU just to run a LLM or video upscaling
  • The Real Jdbye @ The Real Jdbye:
    even the nvidia shield tv has AI video upscaling
  • The Real Jdbye @ The Real Jdbye:
    LLMs can be run on cpu anyway but it's quite slow
  • BakerMan @ BakerMan:
    Have you ever been beaten by a wet spaghetti noodle by your girlfriend because she has a twin sister, and you got confused and fucked her dad?
  • Psionic Roshambo @ Psionic Roshambo:
    I had a girlfriend who had a twin sister and they would mess with me constantly.... Until one chipped a tooth then finally I could tell them apart.... Lol
  • Psionic Roshambo @ Psionic Roshambo:
    They would have the same hair style the same clothes everything... Really messed with my head lol
  • Psionic Roshambo @ Psionic Roshambo:
    @The Real Jdbye, I could see AMD trying to pull off the CPU GPU tandem thing, would be a way to maybe close the gap a bit with Nvidia. Plus it would kinda put Nvidia at a future disadvantage since Nvidia can't make X86/64 CPUs? Intel and AMD licensing issues... I wonder how much that has held back innovation.
  • The Real Jdbye @ The Real Jdbye:
    i don't think nvidia wants to get in the x64 cpu market anyways
  • The Real Jdbye @ The Real Jdbye:
    you've seen how much intel is struggling getting into the gpu market
  • The Real Jdbye @ The Real Jdbye:
    and nvidia is already doing ARM
  • The Real Jdbye @ The Real Jdbye:
    i don't think they want to take more focus away from their gpus
    The Real Jdbye @ The Real Jdbye: i don't think they want to take more focus away from their gpus