README: Update link.
README: Clean up, remove BitBucket links.
openmsx: Set max frameskip to speed up boot time.
neonlib: Update.
neonlib: Update to latest.
Math: Small shift loop improvement. Does not actually improve execution time on R800, but a bit easier to read.
OPLLTone: Make half the octave keys have fnum < 256 for key scaling. The key scaling offset (0..15) is composed of the block number and fnum MSB. Without this adjustment, the LSB of the key scaling offset would always be 1. Comes at the cost of losing a bit of precision for half of the keys, but ’s ok.
PitchBend: Implement pitch bend support on all channels.
And: Correct name.
PSGTone/Noise/Envelope: Reduce the number of shifts done in Math_Pow2.
modules: Replace period / frequency lookup tables with calculations. Based on a single base-2 exponentiation table. This allows binary fractions for key values, for pitch bends and such.
README: There’s no MIDI file playback support. Maybe later.
README: More BitBucket-friendly markdown.
README: Put key off velocity on one line.
README: Add MIDI control information.
README: Say MSX-MUSIC in the introductory one-liner rather than OPLL.
README: No leading spaces for markdown lists.
README: Adjust system requirement to Turbo R only. May change later but for now this is required.
VBlankHandler: Prevent buffer overruns. The previous commit’s measure was not sufficient to prevent buffer overruns, it seems that the standard ISR itself (and the interslot call to it) takes too long to process MIDI interrupts in time. So we resort to implementing a minimal VBlank interrupt handler, replacing the BIOS one. Oddly enough this is not reproducible in openMSX…
MSXMidi: Prevent buffer overruns. The MSX-MIDI documentation warns not to use interslot calls in the hook because this will make it not fast enough to handle the interrupts, and although we do not do this ourselves, the DOS ISR always does an interslot call to the BIOS. To avoid this, we hook directly on 38H. We also still hook KEYI, so that it continues to work during BIOS calls (e.g. when interrupt occurs during the ISR). Oddly enough this is not reproducible in openMSX…