Difference between revisions of "Spice86"
(Created page with "Stunts works well under many emulators. ===DOSBox=== * '''Vanilla DOSBox''' supports it without particular problems * '''DOSBox Staging''' no reports, but this emulator is u...") |
|||
Line 3: | Line 3: | ||
===DOSBox=== | ===DOSBox=== | ||
− | * '''Vanilla DOSBox''' supports | + | * '''Vanilla DOSBox''' supports the game without particular problems. |
− | * '''DOSBox Staging''' | + | * '''DOSBox Staging''' No problems are to be expected, since this emulator is used by one of [[Restunts]]' main contributors. |
− | * '''Dosbox-X''' also works but tends to allocate less conventional memory, which has led to | + | * '''Dosbox-X''' also works but tends to allocate less conventional memory, which has led to issues when using demanding car models. The problem can be prevented by disabling <code>xms</code> and set <code>minimum mcb free</code> to 1. |
Line 11: | Line 11: | ||
'''Spice86''' is an experimental emulator, whose support for Stunts is being worked on as of 2025. At present (2025-03-01) it can start the game, but no sound is played (start with <code>-a ns</code> to avoid wasting cycles on that) | '''Spice86''' is an experimental emulator, whose support for Stunts is being worked on as of 2025. At present (2025-03-01) it can start the game, but no sound is played (start with <code>-a ns</code> to avoid wasting cycles on that) | ||
− | Additionally, one must give the parameter --InstructionsPerSecond 5000000. The reason for this workaround is that Stunts activates interrupts in the middle of the int 8 handler (see [https://github.com/4d-stunts/restunts/blob/89400488cf40086447a13afb19722225ee0ad094/src/restunts/asmorig/seg012.asm#L3727 here]), so another int 8 can could be triggered in between. This interrupt corresponds to the programmable interrupt timer, which Stunts [https://github.com/4d-stunts/restunts/blob/89400488cf40086447a13afb19722225ee0ad094/src/restunts/asmorig/seg012.asm#L3514 sets at 100 Hz]. | + | Additionally, one must give the parameter <code>--InstructionsPerSecond 5000000</code>. |
+ | |||
+ | <small>The reason for this workaround is that Stunts activates interrupts in the middle of the int 8 handler (see [https://github.com/4d-stunts/restunts/blob/89400488cf40086447a13afb19722225ee0ad094/src/restunts/asmorig/seg012.asm#L3727 here]), so another int 8 can could be triggered in between. This interrupt corresponds to the programmable interrupt timer, which Stunts [https://github.com/4d-stunts/restunts/blob/89400488cf40086447a13afb19722225ee0ad094/src/restunts/asmorig/seg012.asm#L3514 sets at 100 Hz]. So if the int 8 handler needs more than 1/100 seconds to run, disaster ensues. This probably never happens on real CPUs, but might occur if the emulator's simulated CPU is too slow with respect to the simulated PIT.</small> |
Revision as of 02:09, 1 March 2025
Stunts works well under many emulators.
DOSBox
- Vanilla DOSBox supports the game without particular problems.
- DOSBox Staging No problems are to be expected, since this emulator is used by one of Restunts' main contributors.
- Dosbox-X also works but tends to allocate less conventional memory, which has led to issues when using demanding car models. The problem can be prevented by disabling
xms
and setminimum mcb free
to 1.
Spice86
Spice86 is an experimental emulator, whose support for Stunts is being worked on as of 2025. At present (2025-03-01) it can start the game, but no sound is played (start with -a ns
to avoid wasting cycles on that)
Additionally, one must give the parameter --InstructionsPerSecond 5000000
.
The reason for this workaround is that Stunts activates interrupts in the middle of the int 8 handler (see here), so another int 8 can could be triggered in between. This interrupt corresponds to the programmable interrupt timer, which Stunts sets at 100 Hz. So if the int 8 handler needs more than 1/100 seconds to run, disaster ensues. This probably never happens on real CPUs, but might occur if the emulator's simulated CPU is too slow with respect to the simulated PIT.