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
2015-09-16
Random Related Topic
0 Comments
Post a Comment