BrMSX

BrMSX was an MSX emulator for DOS, written by Ricardo Bittencourt. It was first released in 1997, and at the time was regarded as the fastest, most accurate MSX emulator.

History
In 1997, MSX emulation was still preliminary. The only MSX emulators available were fMSX and CJS MSX. Neither were very accurate at the time, nor were they fast enough to run all MSX software at full speed, on computers of that era.

BrMSX aimed to solve these two problems. In order to improve accuracy, the Z80 core was tested using ZEXALL, emulating every aspect of the CPU, down to the undocumented flags. Fast emulation was achieved by coding the emulator entirely in Assembly, and by using a number of hacks, the most successful being a dirty rectangles implementation known as the video cache.

Development of BrMSX started in September 1997, and the first public release was in November of the same year. The name itself, BrMSX has a double meaning. The Br in the name is an allusion to Brazil, the country where it was coded, but the characters also are the initials of the author, Ricardo Bittencourt. The logo, created by Raul Tabajara, reflects both the MSX imagery (by using a font similar to the logo of the MSX game Aleste) and the Brazilian flag (by using the round shield with the Brazilian sky). The mouse icon used in the GUI was a rendition of the keyboard of Expert (one of the Brazilian MSX models).

Eventually, interest in BrMSX faded, as fewer people used DOS-compatible systems. A Windows port came out later, but the last release (v3.0.16) was in Dec of 2003, and included the source code is dated as Mar of 2005. The DOS version stopped at Feb of 2003 (v2.10).

In 2017, the author rescued some of the history of the project with release granularity and published it on a git repository.

A number of features now common in MSX emulation were first seen in BrMSX:


 * Z80 core fully compliant with ZEXALL
 * Support to MegaRAM
 * Support to samples generated by the PSG, PPI, and Konami Majutsushi
 * MSX2+ cross-lines animation
 * Disk drive emulation through I/O ports
 * Dir as Disk, mount directories in the host machine
 * ADVRAM, a hardware prototype that was never released commercially
 * Interactive debugger
 * Multiplayer games (using a serial cable)
 * Fast forward button, to skip game introductions
 * Save states
 * TV emulation (blur filters and scanlines)
 * Green monitor emulation
 * Emulation of the LEDs (Caps Lock, Kana and the Disk Drive)