BRMSX

THE BRAZILIAN MSX EMULATOR
by Ricardo Bittencourt

Introduction
Requirements
Features
What's new
Known Bugs
Links
Credits


Last update: 5/8/99 Current version: 2.2


INTRODUCTION

Why would anyone make another MSX emulator? The reason is that all current MSX emulators are not 100% accurate and have too high requirements.

BRMSX will be the fastest and most accurate MSX emulator ever. To assure that, BRMSX is all written in 32-bit assembly. There will be not a single line of C code in this emulator.

BRMSX will also have support to special brazilian hardware, like MEGARAM and low-level, port-based floppy disk support. It will be modeled after the "Expert 1.0", a brazilian MSX clone.

And BRMSX is not only for the gamers. The built-in debugger will help the MSX programmers, since it has many features that can't be found on native debuggers, like true breakpoints, step-by-step execution, and facilities to read all the MSX hardware information.

This emulator is current under development. A beta version can be obtained from this page.

Download now:
brmsx202.zip [212kb, full version]
light202.zip [87kb, light version, without the ROMs]


REQUIREMENTS

I really don't know what is the minimum configuration to run BRMSX.

The slowest machine I have access is a 486SX25, and BRMSX runs at full framerate on this one. One user reported full framerate in a 386-40, with a fast video board.

Things I know for sure are that BRMSX requires a VGA monitor with 256kb of VRAM, and since is uses 32-bit assembly, it will not run on anything below a 386. Some advanced options require a Pentium, but these options do not affect the emulation. Also, the special 256x200 resolution may not work on older monitors.

Sound requires a 8-bit Sound Blaster compatible card, capable of auto-init DMA at 45455 Hz. The BLASTER environment string must be set.

TV emulation requires a VESA 2.0 driver capable of 512x384 resolution in 8-bit color. Get the Scitech Display Doctor to enable this resolution. A link to Scitech can be found at links section.

The GUI requires a mouse driver loaded.

The reason BRMSX is so fast is because it emulates the latest advances on hardware development. BRMSX has many features like prefetch, data cache, and superscalar execution (it can execute up to four Z80 instructions at a time).


FEATURES

BrMSX has many features never seen in MSX emulation:

- Near perfect Z80 emulation. BRMSX is the first (and only) MSX emulator to pass in all ZEXALL tests. BRMSX has perfect emulation of the flags registers, including undocumented flags.

- Save and load state at any time. You can save games without Game Master, at any time, and even non-Konami Games.

- Multiplayer game through a serial cable. Connect two computers and play games like Salamander and Super Laydock in cooperative mode.

- Support to the Brazilian memory expansion cartridge "MegaRAM".

- Support to voice in games likes "Super Laydock" and "Star Wars".

- An easy to use GUI (graphic user interface)

- Native support for port-based DISK.ROM, without patches

- LED emulation (including Caps Lock LED and Drive LED)

- TV emulation, with scanlines and low-pass filter.

- optional support for MMX technology and Pentium extensions. Even without these extensions, the built-in dynamic CPU optimizer gives full framerate in a 486SX-25.

- software video cache, to make emulation fast even on systems with slow video boards


WHAT'S NEW


[2.2]

  • Support to the rebimboca of parafuseta. This fixes MANY new games, such as "Zanac EX", "Aleste 2", "Space Manbow", "Fire Hawk" and the great "Super Cooks". Thanks to Jorge Vidal Wulff for the report.

  • Now HMMC has support to DIX and DIY. This fixes "Aleste" and "Out Run".

  • Now LMMM has support to DIY. This fixes "Fray". Thanks to Avatar for the report.

  • Improved set adjust support, now the scrolling in the intro of "Burai" is ok. Thanks to Daniel Caetano for the info.

  • Support to raster Display Enable effects, this fixes the "Lenam" intro of Disk Station #9a.

  • Added "-truevsync". This option turn off all internal counters and sync the emulation with the vertical retrace of the PC monitor, making the smoothest scroll you ever saw on a MSX emulator!! You must set your monitor to refresh at 60Hz to use this option.

  • Now the fast forward key will not erase the breakpoints previously set. Thanks to Adriano Cunha for the report.

  • Added a new debug screen: "6", with V9938 information. This is not finished yet.

  • Support to "-fast" mode has been removed from MSX-2 emulation. It will be re-added later.


    How to set your monitor to 60Hz refresh

    If you, like me, are using the Scitech Display Doctor v5.3a, then you just need to go to SDD directory and type:

    uvconfig /e60

    This will set all the low res modes to 60Hz refresh.
    Now you just need to start BrMSX with:

    brmsx game.rom -msx2 -res 11 -truevsync


    [2.1]

  • Now HMMM has support to DIX and DIY. This fixed "Columns" and "Peach Up Special #2-4". Thanks to Daniel Caetano for the report.

  • Now YMMM has support to DIY. This fixed the intro of "Emerald Dragon". Thanks to Raul Tabajara for the report.

  • Now all the SCREENs have correct palette and support to set adjust.

  • The palette is now always restored when exiting the GUI and the debugger. Thanks to Daniel Caetano for the report.

  • Fudebug: now the command "E nnnn xx" can be used in debug screen 4 to change the VRAM contents. Thanks to Mauricio Braga for the request.


    It has become a tradition: the LSI web site always goes down hours after an BrMSX release...

    Anyway, now you can download a great compatibility list made by Daniel Moreira. This list only cover the .ROM files.

    Some common questions about BrMSX 2.0:

  • I can't load a disk with the "LOAD DSK" option of the gui: Yes I know it. The LOAD DSK option can only be used to CHANGE disks during emulation. You still have to load the first disk with "-diska".

  • I can't use the "LOAD ROM" option of the gui in MSX-2 mode: Yes I know it too. This option was disabled in MSX-2 emulation. Wait for the next versions.

    This version of BrMSX is full of bugs. I was going to call it just a beta release, but in fact this looks like more an omega release. However, it can run SD-Snatcher...


    [2.0]

  • MSX-2 emulation. Still not perfect, still not optimized, but at least it can run SD-Snatcher. Use the "-msx2" switch to enable it. Many thanks to Isaac Santaolalla, Daniel Caetano, Adriano Cunha and other beta-testers!!

  • Added four new videomodes, exclusive to MSX-2: "-res 7", 320x200x8 (the fastest one), "-res 8", 512x384x8, "-res 9", 512x384x8 with black scanlines and "-res 11", 640x480x8 with black scanlines. The only one who can display the entire MSX screen is "-res 11", but you will need a fast machine for that.

  • DOS-2 emulation. Use the "-dos2" switch to enable it. DOS-2 emulation works in both MSX-1 and MSX-2 models. Thanks to Giovanni Nunes for the idea and Werner Kai for sample programs.

  • Fixed a bug in Mapper #2, now "Solid Snake" is fully playable. Thanks to Sean Young for the info.

  • Added support to Mapper #1 (used by the MSX-DOS 2 cartridge). Thanks to Sean Young for the info.

  • Added support to Mapper #9 (Konami 8kb with 8-bit DAC). This mapper is used by the original version of Konami's Mahjong 2. The DAC is emulated, so you can hear the voices and special sfx inside the game. Many thanks to Sean Young for the mapper info and for the cartridge dump.

  • Added a symbolic debugger to Fudebug. You will need a .PRN listing file generated by M80. Use the switch "-prn file.prn" to enable it, and press "5" in the Fudebug to use it. It's a lot better to see CALL BDOS than CALL 5...

  • Added a new option in the GUI: "Load DSK", to change the disk image inside emulation.

  • Some internal tables are now compressed inside the .EXE. This means BrMSX will now require few low memory available. Thanks to nocash for the idea.


    Things you should know about MSX-2 emulation:

  • Always run MSX-1 games in MSX-1 mode. It will be faster and more accurate.

  • There are still lots of bugs and unimplemented features. Don't expect it to run all your programs.

  • There is no manual yet. If I updated the manual, the release would be only on the next week...

  • In MSX-2 emulation, the following GUI options are disabled: RESET, TURN OFF, LOAD ROM, SAVE STATE, LOAD STATE.

  • Not all VDP-commands are implemented, and the ones who are will only work in forward mode (DIX=0 DIY=0).

  • There are no support to HIRQs and screen-splits.

  • There is support to set adjust but it's very pig (as we say here in Brazil...)

  • VDP timings are all wrong. Some demos/intros may be too fast.

  • Mode-2 sprites will only work fully in SCREENs 4 and 5. They will also work in SCREEN 7, but only in "-res 7".

  • There is no support to sprite cropping. Sprites getting near the borders of the screen will disappear. There is no support to EC attribute too, so sprites scrolling towards the left edge of screen may be wrong.

  • Games that are working: SD-Snatcher, SD-Snatcher, SD-Snatcher, SD-Snatcher, Solid Snake, Hinotori, The Treasure of Usas, Contra, YS-3.

  • Games that are not working: the others.

  • There is no support to MSX2+ and MSX Turbo-R. There will be no support to MSX2+ and MSX Turbo-R in the near future. If you want to play MSX2+ games, then download MSKISS.

    Send bug reports to ricardo@lsi.usp.br!!!!!!!!


    How to connect a SNES joypad to your computer


    You can read the online user's manual in :

    english (1.160)
    dutch (1.160)
    spanish (1.160)
    portuguese (1.155)
    italian (1.145)
    french (1.136)


  • KNOWN BUGS

    Since BRMSX is not finished yet, it still have some bugs. I'm working to remove them all, but if a bug is really annoying you, please drop an e-mail to me. This way I can give high priority to this bug and it will be killed faster.

    - 256x200 mode has bugs when border color is changed to anything different than black. I'm not going to fix this. Use "-res 2" or "-res 3" instead.


    LINKS

    The BRMSX Save-State page: you can find many BRMSX save states here.

    The BRMSX Download page: you can find rare .ROMs and .DSKs here.

    BrMSX - Site officiel français

    BrMSX Message Board


    Scitech Soft: you need the Display Doctor to enable TV emulation!!!


    Mirrors of BRMSX:
    brmsx202.zip, mirror at MEP - MSX Emulator Page
    light202.zip, mirror at MEP - MSX Emulator Page
    brmsx160.zip, mirror at www.salleURL.edu (Barcelona, Spain)
    brmsx155.zip, mirror at EmuCamp
    (contact me if you have a mirror of BRMSX)


    Other Brazilian emulators:
    BrSMS - a Master System emulator, by Ricardo Bittencourt
    Java Phoenix arcade emulator, by Muriloq
    Java Pleiads arcade emulator, by Muriloq
    Java MSX emulator, by Arnon Goncalves Cardoso


    Other MSX emulators:
    fmsx homepage, by Marat Fayzullin
    fmsx-dos homepage, by Marcel DeKogel
    CJS-MSX emulator, by Compujunks
    Virtual MSX, by Sean Young
    Java MSX emulator, by Arnon Cardoso (under construction)
    MSKISS, by ISS'98 (under construction)
    RuMSX, by Rudolf Lechleitner


    Brazilian game sites (lots of roms can be found at these sites):
    http://www.nh.conex.net/user/msx/, by Poderoso


    Brazilian MSX scene:

    The Brazilian MSX Software Page, by Ricardo Bittencourt
    (new software for MSX, like the RBC compiler and the PSG Player)

    The MSX Page, by Adriano Cunha
    (info on current Brazilian MSX projects, new versions of classic softs)

    MSX Broadcast, by Aleck Zander
    (home of msxbr-l, the most active MSX discussion list on the world)

    The MSX Corner, by Cyberknight
    (lots of MSX trivia, home of the projects "Yawara" and "Gremlin").

    MSX Core Club homepage, by Werner Kai
    (all about MSX in Brazil, including reports on all brazilian meetings).

    MSX Underground Group, by Mario Lima Cavalcanti
    (home of MUG-DISK, a new MSX disk magazine)

    MSX Brazilian Team, by Marco Heidtmann
    (you can buy here MSX hardware and software, also has a MSX magazine)

    Cobra Software, by Cobra
    (classic Brazilian softhouse, home of Infonet online magazine)


    CREDITS

    BRMSX was all written from scratch by Ricardo Bittencourt.

    It uses the wonderful PMODE 2.51 library to enter protected mode and get linear memory access. PMODE 2.51 was made by Tran (aka Thomas Pytel) and can be found at x2ftp.oulu.fi/pub/msdos/programming.

    The 256x192 resolution uses code contributed by Enrique Sanchez.

    The logo of BRMSX and all internal graphics were made by Raul Tabajara.

    Bugs, comments and suggestions can be sent to ricardo@lsi.usp.br.


    Since September 1997
    MSX Rating