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

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
I will retry tonight, can you please tell me if you keep skipframe = ON or OFF and sound settings from your last build ?
I'm running with Frameskip On (but not "agressive" which can miss some collision detection at the trade-off for more speed).

In theory frameskip On/Off should make no difference. It doesn't affect frame-to-frame timing - it just doesn't render to the NDS display every other cycle to save CPU time. The inter-frame timing should still be the exact same.

I've played a ton of Buzz Bombers, He-Man and Astrosmash as a kid and those timings on Nintellivision seems spot-on to me. I'm going to run some A-B comparisons on Burgertime from NINTV-DS and a real system soon.

But we'll get to the bottom of it! And we can fix Nintellivision :)
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Okay... round 1 of experiments.

Press RESET on Burgertime and when the egg (3 frames of animation) crosses the lower-case 'p' in (presents) at the top of the screen start timing... watch the egg go completely around the screen and back to the same lower-case 'p'.

Real System: 32 seconds (give or take a fraction of a second as my hand on the stopwatch isn't perfect).
Nostalgia running on fast pc: 32 seconds.
INTV-DS running in DSi mode with all defaults: 32 seconds.

I did a search for 'FreeIntv' (never heard of it before!) and apparently people complain that it's 15-20% faster than the real intellivision.

"Nice to see a new Intellivision emulator. I tested it on Windows 7 and have some comments. It runs too fast. It's about 15% fast which is a ..."

So I think FreeIntv is overclocking... this probably makes games feel smoother - the Intellivision was a rather slower rendering machine for many games. I'll continue to ensure NINTV-DS is running as close to a real system as possible but will give some options in the future to over-clock. In theory you should get comparable performance right now if you change FPS to "Turbo" and it will run 15% faster right now (though the music will sound wrong).

Also - be sure to press the d-pad to start the game at the fastest speed.

Edit#1: More research shows that freeIntv seems to get the pal/ntsc timing wrong. The 15% is very likely coming from rendering an NTSC game at 50Hz (18% speed difference). The sound will be too high pitched as well.

Edit#2: I'm also looking at the color palette. I don't see anything obviously wrong between NINTV-DS and a real system. But color palettes are easy to change (or have multiple versions of - user selectable).
 
Last edited by wavemotion,

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
299
Trophies
0
Age
38
XP
1,222
Country
France
Thanks, so Freeintv is not reflecting real hardware. I will check if there are some options in Retroarch to solve this.

Please look at this video, it feels like freeintv :


IMHO, I prefer when it looks like the real thing.

EDIT : Just checked the manual of Burger Time and I did not know that game speed can be changed on the main title screen :wacko: . Maybe FreeIntv has different mapping buttons so I change the speed without knowing it. I will do the same test you've done.
 
Last edited by CrashMidnick,

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.9 : 06-Sep-2021 by wavemotion-dave
* Major sound improvement (finally!)
* High Score Support added

Still the occasional sound glitch but this is MUCH improved. It's the first version of sound I'm not embarrassed by :)
High Score support added... up to 10 scores per game saved.
Time to rest and play AD&D Treasure of Tarmin!
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
528
Trophies
0
XP
1,740
Country
Algeria
Not ready for a new build, but significant sound improvement with the current check-in! If someone could load it and try it and convince me that it's majorly improved (but not perfect... still the occasional glitch) I'd be most grateful :)

Dave, I only know you from your posts on this Board, but having seen what you've done in the past several months, I smirked after reading your post about having to accept sub-optimal sound for Nintellivision. I thought to myself, "I give it three days." I gave you too little credit. Next time, I'll only give you a day.
 

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
299
Trophies
0
Age
38
XP
1,222
Country
France
Dave, I only know you from your posts on this Board, but having seen what you've done in the past several months, I smirked after reading your post about having to accept sub-optimal sound for Nintellivision. I thought to myself, "I give it three days." I gave you too little credit. Next time, I'll only give you a day.

I am pretty sure he can port Flycast, fullspeed on NDS in less than an hour :P
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
...I smirked after reading your post about having to accept sub-optimal sound for Nintellivision. I thought to myself, "I give it three days." I gave you too little credit. Next time, I'll only give you a day.
I appreciate the faith :)

Well... yeah, it was really bugging me that I'd worked so hard to get this running and it sounded like crap. Plus 8 hours of no real improvements and I was feeling down. But then I remembered I'm an AmeriCAN, not an AmericCANT :D More importantly, I also remembered that the sound buffer was 16-bits and not 8-bits and I had the wrong buffer sizes!
 

avery217

Member
Newcomer
Joined
Jun 26, 2021
Messages
13
Trophies
0
Age
66
XP
45
Country
United States
Thank you Wavemotion for this non-Atari release. I need help, I can't get NINTV-DS.nds to launch any Intellivsion games. I'm using version 8 of NINTV-DS.nds + the knowncarts.cfg files. Also using latest version of TWiLight Menu++ on my DSi. All my ROMS are in .int format. My grom.bin and exec.bin are in the Intellivion ROMs folder along with the knowncarts.cfg file. When I hit Load I navigate to the Intellivision ROMs folder and press the A button.......then nothing happens. Do I need a certain version of grom.bin + exec.bin??? Any help would be appreciated.....Thanks
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Hi Avery,

grom.bin and exec.bin should be pretty standard - never seen more than one version of those.

the .bin and .int (basically the same - these are raw binaries) should load as long as the CRC is found in knowncarts.cfg. There are some bad roms floating around out there... search for "Ghostware" pack - those are known good. If you use .rom files, those have built into them the memory offsets and those should run even without knowncarts.cfg.
 

avery217

Member
Newcomer
Joined
Jun 26, 2021
Messages
13
Trophies
0
Age
66
XP
45
Country
United States
Thanks for your quick response. As you suggested, I tried the "Ghostware" pack and it still does not load any ROMS. I also tried running this on my 3DS and I'm getting the same negative results. I use these files (ROMS + BIOS) on my Raspberry Pie setup and they work fine on that. Do you have to go into the Config menu to start a game? Or will it start when you Load, select ROM, then hit the "A" button??
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
528
Trophies
0
XP
1,740
Country
Algeria
It's as straight forward as navigating to the folder that you have your ROMs in and selecting the one you want to load. If you are having problems, you probably don't have the knowncarts.cfg file in the right spot or with the right name + extension.
 
  • Like
Reactions: wavemotion

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
299
Trophies
0
Age
38
XP
1,222
Country
France
Okay... round 1 of experiments.

Press RESET on Burgertime and when the egg (3 frames of animation) crosses the lower-case 'p' in (presents) at the top of the screen start timing... watch the egg go completely around the screen and back to the same lower-case 'p'.

Real System: 32 seconds (give or take a fraction of a second as my hand on the stopwatch isn't perfect).
Nostalgia running on fast pc: 32 seconds.
INTV-DS running in DSi mode with all defaults: 32 seconds.

I did a search for 'FreeIntv' (never heard of it before!) and apparently people complain that it's 15-20% faster than the real intellivision.

"Nice to see a new Intellivision emulator. I tested it on Windows 7 and have some comments. It runs too fast. It's about 15% fast which is a ..."

So I think FreeIntv is overclocking... this probably makes games feel smoother - the Intellivision was a rather slower rendering machine for many games. I'll continue to ensure NINTV-DS is running as close to a real system as possible but will give some options in the future to over-clock. In theory you should get comparable performance right now if you change FPS to "Turbo" and it will run 15% faster right now (though the music will sound wrong).

Also - be sure to press the d-pad to start the game at the fastest speed.

Edit#1: More research shows that freeIntv seems to get the pal/ntsc timing wrong. The 15% is very likely coming from rendering an NTSC game at 50Hz (18% speed difference). The sound will be too high pitched as well.

Edit#2: I'm also looking at the color palette. I don't see anything obviously wrong between NINTV-DS and a real system. But color palettes are easy to change (or have multiple versions of - user selectable).

As expected, this was the game difficulty : slowest VS fastest.... FACEPALM to me... Sorry about that mate. It took 32.3s to the egg to go around the screen using freeintv.

Sound improves a lot with the last version ! This is really nice. Thanks for your work.
 
Last edited by CrashMidnick,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
Ok... I think I got the last of the sound issues worked out. Just the very occasional and short "zinger" but it's miles better than it was. I'm interrupt driven on filling the sound buffer which means that even on the older DS with slower performance, the sound will basically sound right (it might sound slow but it will be proportionally slower rather than "glitchy").

I also changed the sound quality settings to range from 8 (high quality) to 24 (low quality) in smaller increments to give finer control. I'll eventually replace the numbers with more meaningful terms (low, medium, high, etc).

Unfortunately it comes at a cost of 10% CPU speed to keep the ARM7 and ARM9 cores in sync. On the DSi we just barely had about that much to spare...On the older DS we had nothing to spare. But I have faith that I can optimize the rest of the emulator to make up this ground ... and more!

No new build yet... but you can grab the nightly check-in if you so desire.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
And with two cups of coffee, I managed to get back most of the 10% CPU lost to fixing the sound :)

I broke something with the older DS where you can't load up a 2nd game (you have to restart the emulator) but I will find and fix that before too long.

With these emulators it's all about playability - so I can live with a little glitch here and there provided the game plays reasonably smoothly and retains the fun of an original experience. But it's the quality of life improvements that make a real difference - being able to map keypad keys to the main DS buttons makes playing AD&D Cloudy Mountain a joy as you can walk/run in one direction and fire in the opposite direction. With Intellivision Lives-DS I had to stick to the easiest level (3) to compensate for the laggy and non-optimal control scheme. With NINTV-DS I've been able to beat hard (1) and soon with try my hand at "hero" level (disc/dpad to start).
 

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
299
Trophies
0
Age
38
XP
1,222
Country
France
With these emulators it's all about playability - so I can live with a little glitch here and there provided the game plays reasonably smoothly and retains the fun of an original experience.

I cannot agree more than this. And if your are looking for accuracy on NDS, first thing you need to do is to provide a 20 frameskip option.
Back in the time, I would not imagine how great homebrews would be on this system.
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,768
Trophies
0
XP
1,831
Country
Chile
And with two cups of coffee, I managed to get back most of the 10% CPU lost to fixing the sound :)

I broke something with the older DS where you can't load up a 2nd game (you have to restart the emulator) but I will find and fix that before too long.

With these emulators it's all about playability - so I can live with a little glitch here and there provided the game plays reasonably smoothly and retains the fun of an original experience. But it's the quality of life improvements that make a real difference - being able to map keypad keys to the main DS buttons makes playing AD&D Cloudy Mountain a joy as you can walk/run in one direction and fire in the opposite direction. With Intellivision Lives-DS I had to stick to the easiest level (3) to compensate for the laggy and non-optimal control scheme. With NINTV-DS I've been able to beat hard (1) and soon with try my hand at "hero" level (disc/dpad to start).

coffee does wonders that's why
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
430
Trophies
1
XP
2,908
Country
United States
coffee does wonders that's why
:D

I managed to get all the speed back... and a little more besides!

And I found out why it's crashing on the DS. I'm out of memory :(

This is an emulator designed on the PC and they have huge look-up tables... and it doesn't take long for the 4MB to get swallowed up.

On the DSi there's no problem as it's got 4x the memory (16MB vs 4MB).

I'll optimize the memory and get it back to running...
 
General chit-chat
Help Users
    gudenau @ gudenau: This source file is now valid C, C++, Java and Scala.