S3 Trio based emulation may crash 86Box #98

Closed
artyom-tarasenko opened this Issue Feb 24, 2017 · 4 comments

Comments

Projects
None yet
2 participants
@artyom-tarasenko

artyom-tarasenko commented Feb 24, 2017

The attached floppy works on a physical S3 Trio card. Under 86Box it works with a "Diamond Stealth" cards, but with "Number nine" and "Phoenix" S3 cards it crashes the emulator when accessing the frame buffer.

So there is obviously a bug in 86Box, but also it would be good to know why does the test program crash it. Maybe it works on the physical card just accidentally?

The test has to be executed with Award 440 FX, 32 MiB RAM and a 1.44 Floppy.zip. Select "Diamond Stealth" to see how it's supposed to work, select "Phoenix S3 Trio 64" to see it crash.

@OBattler

This comment has been minimized.

Show comment
Hide comment
@OBattler

OBattler Feb 24, 2017

Collaborator

It seems to be a video BIOS bug. The emulator's code for Paradise Bahamas 64 and Diamond Stealth 64 is identical (it's literally the same code!) so the BIOS difference can be the only possible explanation for why this doesn't work on the former but work on the latter.

It would be nice if you could provide us the BIOS of your physical S3 Trio card, then I could attempt to add that to 86Box.

Collaborator

OBattler commented Feb 24, 2017

It seems to be a video BIOS bug. The emulator's code for Paradise Bahamas 64 and Diamond Stealth 64 is identical (it's literally the same code!) so the BIOS difference can be the only possible explanation for why this doesn't work on the former but work on the latter.

It would be nice if you could provide us the BIOS of your physical S3 Trio card, then I could attempt to add that to 86Box.

@artyom-tarasenko

This comment has been minimized.

Show comment
Hide comment
@artyom-tarasenko

artyom-tarasenko Feb 24, 2017

They may share the code, but still identify them differently, so the floppy goes a different path. But my "Hercules Terminator" s3 card is also identified by the test the same way as Phoenix or Paradise Bahamas 64, and works. I will extract the ROM (btw, is the DOS debug.exe is the easiest way to do it?), but doubt it would change anything.

Do you see why 86Box crashes? I mean, I see it's a null pointer, but what does it try to do? Maybe I should initialize some register, which is initialized on my card by power-on, or video-bios?

They may share the code, but still identify them differently, so the floppy goes a different path. But my "Hercules Terminator" s3 card is also identified by the test the same way as Phoenix or Paradise Bahamas 64, and works. I will extract the ROM (btw, is the DOS debug.exe is the easiest way to do it?), but doubt it would change anything.

Do you see why 86Box crashes? I mean, I see it's a null pointer, but what does it try to do? Maybe I should initialize some register, which is initialized on my card by power-on, or video-bios?

@artyom-tarasenko

This comment has been minimized.

Show comment
Hide comment
@artyom-tarasenko

artyom-tarasenko Feb 24, 2017

The Hercules Terminator 64 (S3 Trio 64 V+) ROM
Hercules-Terminator.zip

The Hercules Terminator 64 (S3 Trio 64 V+) ROM
Hercules-Terminator.zip

@OBattler

This comment has been minimized.

Show comment
Hide comment
@OBattler

OBattler Oct 27, 2017

Collaborator

The emulated card is S3 Trio 64, not Trio 64 V+. The two have completely different chips.

Collaborator

OBattler commented Oct 27, 2017

The emulated card is S3 Trio 64, not Trio 64 V+. The two have completely different chips.

@OBattler OBattler closed this Oct 27, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment