Jump to content
IGNORED

Motocross and Bliss32


Shannon

Recommended Posts

Got a question that maybe you programming types that are more familar with how the 'ol INTV works.

 

In Bliss when I try to run motocross it brings up this screen after you start a game and select a track.

 

post-3211-0-54308400-1445664765_thumb.png

 

I'm just curious about what "aspect" of the emulation is causing this?

 

In other words what part of the INTV hardware is most likely not being emulated properly.

 

Yeah I know it works in Jzintv just fine. But I'm just curious. Maybe it is something that a little emu code lookover can fix.

 

Thanks

 

Link to comment
Share on other sites

According to this post... http://atariage.com/forums/topic/169337-how-to-detect-pal-or-ntsc-consoles/?do=findComment&comment=2094337

 

He has not added the option.

 

When I use --pal it assumes I'm doing "-p" for ROM path.

 

That post was 5 years ago :)

 

What version of jzintv are you running? The --pal flag works for me in jzintv 1.0-beta 4.

 

I tested Motocross, and with the defaults it runs fine. With --pal set, it crashes after you select the course (right before it displays the track). It doesn't do what Bliss does, but that's not surprising. It's undefined behaviour. jzintv tends to lean on the side of halting if it has major problems - Bliss looks like it's just spinning off into the weeds.

  • Like 1
Link to comment
Share on other sites

The --pal code is still a bit of a hack though in Beta4. If you download the latest stable build ( http://spatula-city.org/~im14u2c/intv/), it's more accurate.

 

In any case, it sounds like Motocross has a race condition that's sensitive to exact CPU vs. STIC timing.

 

This might be a fun one to come back and diagnose (after LTO Flash! goes out, natch). It seems similar to the Dreadnaught Factor race condition that shows up on PAL.

Link to comment
Share on other sites

BTW... I have two different Motocross ROMs. I just tried both with the --pal switch. One crashes and the other does not.

 

I'm not entirely sure where I got the second version; I went on a ROM-dumping spree long ago with my cart dumper. It seems there was a running change at some point.

Edited by intvnut
Link to comment
Share on other sites

 

That post was 5 years ago :)

 

What version of jzintv are you running? The --pal flag works for me in jzintv 1.0-beta 4.

 

I tested Motocross, and with the defaults it runs fine. With --pal set, it crashes after you select the course (right before it displays the track). It doesn't do what Bliss does, but that's not surprising. It's undefined behaviour. jzintv tends to lean on the side of halting if it has major problems - Bliss looks like it's just spinning off into the weeds.

 

Whoops I think I know what I did... more info soon..

 

Stupid me... I forgot to move the system ROM's over to the beta directory.... :P

 

The PAL switch works for me now.

 

In this post by intvnut http://atariage.com/forums/topic/169337-how-to-detect-pal-or-ntsc-consoles/?do=findComment&comment=2094337

 

he has a program that counts the cycles between interrupts. Is there a way to take that code and create a binary that will display the result? It might be helpful in determining what bliss32 is doing wrong?

Edited by Shannon
Link to comment
Share on other sites

No idea... :P

 

Looks like it has not been touched since 2005...

 

Just think of it as a mental exercise... ;)

 

:)

 

To actually answer your question, yeah, there's a way to write a program to tell you a little about what's going on. I just don't see anyone going to the trouble for an emulator that is pretty much DOA.

 

IIRC Kyle released the source code, so someone COULD fix Bliss, if they were so inclined.

Link to comment
Share on other sites

Well that was kinda why I was asking... I already have the source code on my computer.

 

No biggy.... I'm sure people have better things to do with their time if they don't want to be bothered with a no longer supported emulator. But I'd prefer they make that decision themselves.

Link to comment
Share on other sites

I had posted something awhile back on INTVPROG. Lemme see if I can find it. It tried to measure the interrupt period, the amount of time the STIC and GRAM were accessible, etc.

 

EDIT: Found it! This will measure a number of parameters, giving you a couple screens that look like this:

 

post-14113-0-39264800-1445813201_thumb.gif post-14113-0-81615700-1445813209_thumb.gif

 

The first screen graphically illustrates how long GRAM is accessible by filling GRAM with a value that changes every frame. You should see a similar number of checkered squares filled. The last checker may only be partially filled. You can actually compute how many writes succeeded by counting up the filled checkers and multiplying by 8.

 

The second screen measures the number of CPU cycles that are available between interrupts with the screen on (S-ON) and the screen off (SOFF), as well as the number of cycles the System RAM remains in bus-copy mode (COPY) and bus-isolation mode (ISOL). It measures these values 8 times, once for each of the 8 settings of the vertical delay register.

 

 

irq_per.zip

Edited by intvnut
Link to comment
Share on other sites

I had posted something awhile back on INTVPROG. Lemme see if I can find it. It tried to measure the interrupt period, the amount of time the STIC and GRAM were accessible, etc.

 

EDIT: Found it! This will measure a number of parameters, giving you a couple screens that look like this:

 

Unfortunately, it's not quite so easy to run such a ROM on Bliss. It has a built-in ROM database and simply ignores ROM files that are not included in there. At least, it was working this way the last time I checked. (A long, long time ago.) That means you have to edit 'intellivision/cartridge/IntellivisionRecognitionDatabase.cpp' and re-build it. Either that or apply a patch that would make it accept all ROM files.

Link to comment
Share on other sites

 

Unfortunately, it's not quite so easy to run such a ROM on Bliss. It has a built-in ROM database and simply ignores ROM files that are not included in there. At least, it was working this way the last time I checked. (A long, long time ago.) That means you have to edit 'intellivision/cartridge/IntellivisionRecognitionDatabase.cpp' and re-build it. Either that or apply a patch that would make it accept all ROM files.

 

Is that true for .ROM files, or just .BIN files to avoid needing a .CFG parser?

Link to comment
Share on other sites

 

I don't think Bliss provides support for the .ROM format at all.

 

Ok, I believe that changed at some point, because I remember Kyle working with me on that. Later, he came up with yet another ROM format. I don't have a copy handy to fiddle around with, unfortunately. For some reason, my work laptop has suspiciously fewer personal files on it lately. :D

Link to comment
Share on other sites

 

Ok, I believe that changed at some point, because I remember Kyle working with me on that. Later, he came up with yet another ROM format. I don't have a copy handy to fiddle around with, unfortunately. For some reason, my work laptop has suspiciously fewer personal files on it lately. :D

 

Ok, I found Bliss32 1.9c source out there on the web, and sure enough, no ROM support. Maybe one of the other incarnations of Bliss supported .ROM. It went through a few programming languages over time. :)

Link to comment
Share on other sites

In the last Bliss32 v2.04 .bin and .int files rely on a text file named knowncarts.cfg in order to load properly.

.rom files should load correctly (with some limitations).

 

Look here...

 

http://blissemu.cvs.sourceforge.net/viewvc/blissemu/bliss2/

 

On another note... I don't know how "up-to-date" nostalgia is. But it also has a similar issue with MotoCross.

Edited by Shannon
Link to comment
Share on other sites

In the last Bliss32 v2.04 .bin and .int files rely on a text file named knowncarts.cfg in order to load properly.

.rom files should load correctly (with some limitations).

 

Look here...

 

http://blissemu.cvs.sourceforge.net/viewvc/blissemu/bliss2/

 

On another note... I don't know how "up-to-date" nostalgia is. But it also has a similar issue with MotoCross.

 

 

Gotcha. I didn't know what the latest version was; I just looked at the first couple hits for "bliss32 intellivision" in Google while bored in a meeting. :)

 

Anyway, I think the irq_per.zip test I posted above is pretty much exactly what you need, at least for the first round of calibration.

Link to comment
Share on other sites

 

 

Gotcha. I didn't know what the latest version was; I just looked at the first couple hits for "bliss32 intellivision" in Google while bored in a meeting. :)

 

Anyway, I think the irq_per.zip test I posted above is pretty much exactly what you need, at least for the first round of calibration.

Those meetings are probably getting even more boringer than usual now, too. ;)

Edited by intvsteve
  • Like 1
Link to comment
Share on other sites

Those meetings are probably getting even more boringer than usual now, too. ;)

 

Most of them, yes. ;)

 

The notable exception was a meeting I had with my supervisor earlier this afternoon regarding the next 2 weeks. That one packed more excitement in 30 minutes than the rest of the meetings I'll have all week. (Thankfully, it remained polite and constructive.) :)

Edited by intvnut
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...