2015-09-16

OpenMSX Git (2015/09/16)

EmuCR:OpenMSX OpenMSX Git (2015/09/16) 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:
* Updates with lessons learned from 0.12.0 release
* Back to development mode
* Fix clang-warning / tweak VLM5030 sound generation
clang-3.7 produced the following warning:
src/sound/VLM5030.cc:330:31: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
bufs[0][buf_count] = -511 << 6; You could argue about the usefulness of this warning. Strictly according to the c++ standard, left shifting a negative values is indeed undefined. Though for these particular values and for all the platforms openMSX runs on, this operation has the intended effect. See here for references to the c++ standard and a bit more background info: http://stackoverflow.com/questions/3784996/why-does-left-shift-operation-invoke-undefined-behaviour-when-the-left-side-oper It's easy enough to rewrite the expression to avoid the warning (e.g. replace '-512 << 6' with '-512 * (1 << 6)'). Though in this specific case there was a better solution: avoid the shift operation altogether. The VLM5030 chip produces a 10 bit output signal (9 bits + sign). The '<< 6' operation transforms this to -32768..32767 so that it's suited for 16-bit sound output. In openMSX we have per-sound-device volume knobs. That means the output of the VLM5030 still gets multiplied by some factor. So it's more efficient to fold that '<< 6' into the later multiplication. There already exists a mechanism to do exactly this: the SoundDevice::getAmplificationFactor method. * Fixed latent bug in ColorTexture move-assignment clang-3.7 produced the following warning: src/video/GLUtil.hh:110:48: warning: all paths through this function will call itself [-Winfinite-recursion] ColorTexture& operator=(ColorTexture&& other) { Fortunately the current code only calls the move-constructor but not the move-assigment operator of the ColorTexture class (otherwise the code would indeed hang). So this is (only) a latent bug. * Accept GCC5 preprocessor output in macro expander function Unlike GCC4 and Clang, GCC5's preprocessor can expand "A B" into separate output lines if "B" is a macro. The expander function was not designed to handle that and therefore returned the empty string as the expansion of "A". * Add a proper short description of this release. * set release mode / update date in release-notes / copy to release-history * Investigate CALL instruction on R800 I did some measurements on R800 for the CALL (and related) instructions. This was triggered by Grauw's findings some time ago (see http://map.grauw.nl/resources/z80instr.php for his results). This patch only adds the description/results of the measurements. It doesn't make any changes in the emulation yet (so that openMSX matches these results). That's something for after the 0.12 release. Download: OpenMSX Git (2015/09/16) x86
Download: OpenMSX Git (2015/09/16) x64
Source: Here

0 Comments

Post a Comment