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

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
521
Trophies
1
XP
3,532
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
521
Trophies
1
XP
3,532
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
323
Trophies
0
Age
39
XP
1,346
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
521
Trophies
1
XP
3,532
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
521
Trophies
1
XP
3,532
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
591
Trophies
0
Age
44
Website
www.gingerbeardman.com
XP
1,081
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
Green Joy-Con D-Pad Shells for Nintendo Switch
 
Last edited by matt!,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
521
Trophies
1
XP
3,532
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
591
Trophies
0
Age
44
Website
www.gingerbeardman.com
XP
1,081
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
521
Trophies
1
XP
3,532
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
9
Trophies
0
XP
138
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
521
Trophies
1
XP
3,532
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
521
Trophies
1
XP
3,532
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
521
Trophies
1
XP
3,532
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
591
Trophies
0
Age
44
Website
www.gingerbeardman.com
XP
1,081
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! https://www.reddit.com/r/intellivision/comments/5nlhvg
 
General chit-chat
Help Users
    Julie_Pilgrim @ Julie_Pilgrim: yep i was right the switch's os is freebsd...