OpenMSX Git (2016/08/03) is complie. OpenMSX is an open source MSX emulator which is free according to the Debian Free Software Guidelines, available under the GNU General Public License.For copyright reasons the emulator cannot be distributed with original BIOS ROM images. OpenMSX includes C-BIOS a minimal implementation of the MSX BIOS, allowing to play quite some games without the need to have an original MSX BIOS ROM image. You can also use your own BIOS ROM image if you please.
OpenMSX Git Changelog:
* Don't schedule stuff at time=infinity
We discovered an assert right after the 0.13 release. Luckily the assert is
harmless, that is in a non-assert build everything will work just fine.
The problem triggered when we try to schedule something at time=infinity. This
happened in the WD2793 code when (soon after) a read/write-track command is
started the drive motor is turned off. This command first waits for the index
pulse of the drive (it waits for the 'start' of the track). But if the drive
isn't rotating (anymore) this pulse will never come.
In our emulation the method getTimeTillIndexPulse() returns EmuTime::infinity
for a non-rotating drive. We then scheduled the 'continuation' of the
read/write track command at that point, but when that's infinity we trigger an
assertion.
I'm not sure how a real WD2793 reacts to this situation. When the drive already
isn't rotating when the read/write-track command is given the command
immediately stops with an error. In the above scenario the drive is stopped
soon after the command is started. MSX drives spin at 300rpm, so the window to
trigger this scenario is at most 0.2s long. Probably in real life, because of
inertia, even after the drive motor is stopped it might keep spinning for a
little while and you might still see an index pulse. So this scenario might be
hard or impossible to trigger in real life.
Download: OpenMSX Git (2016/08/03) x86
Download: OpenMSX Git (2016/08/03) x64
Source: Here
0 Comments
Post a Comment