2016-04-13

OpenMSX Git (2016/04/13)

EmuCR:OpenMSX OpenMSX Git (2016/04/13) 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:
* Calculate gap4b from other values, given fixed track length.
* Fix bug#1019 cmdtiming=broken only has marginal speed gain
Actually the command would execute infinitely fast (meaning without taking any
MSX time). But the VDP status flag that indicates whether the command is done
still indicated a busy command for some time.
A typical scenario is this:
- some VDP command is started
- soon after, the Z80 queries the VDP cmd busy flag in a tight loop
Each time that flag is queried we have to execute part of the command because
perhaps it's finished now. Emulating many small parts of a command is less
efficient than emulating fewer larger chunks. Because of this we have an
optimization that tries to avoid chopping the command in too many small pieces.
The optimization goes like this: for a block command we make an estimation for
when the command will finish. This is always an underestimation, so we assume
VRAM access slots are always available as soon as we need them and there's no
extra overhead from going from one line in a block to the next. If the status
flag is queried before our estimated finish time, we don't bother executing the
partial command. (Right before rendering the screen or before reading from
VRAM via the Z80, we of course do execute the partial command).
The bug was that when cmdtiming=broken we still used the same estimate for the
finish time (now it's an overestimation). So the command would actually run
infinitely fast, but the Z80 would not start a new command because the
command-busy-flag was still set for a while. To fix this, the estimate now
takes cmdtiming=broken into account.

Download: OpenMSX Git (2016/04/13) x86
Download: OpenMSX Git (2016/04/13) x64
Source: Here

0 Comments

Post a Comment