ATENÇÃO!!! Esta página é um espelho da página original.
Ela esta aqui somente para fins de registros históricos.

Espelho mantido por www.msxpro.com

 


BRMSX

THE BRAZILIAN MSX EMULATOR
by Ricardo Bittencourt

Introduction
Requirements
Features
What's new
Known Bugs
Links
Credits


Last update: 10/5/2000 Current version: 2.6


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:
brmsx206.zip [281kb, full version]
light206.zip [130kb, upgrade from 2.5]
brsrc206.zip [278kb, source code]


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.6]

  • Some VDP commands have now the correct timing. This means some games that previously ran too fast will now run at the correct speed, including the intro of "SD-Snatcher" and intro of "Space Manbow" !! If you want to disable this feature, just use the new switch "-novdptiming". Thanks to Alex Wulms for the idea and to Takamichi Suzukawa for providing me a machine where I could perform my timing tests.

  • Support to the horizontal scroll of the MSX2+. With this feature, "F1 Spirit 3D Special" runs without bugs, "Laydock 2" is playable and even the MSX 2+ intro works! (is this cool or what? :) Thanks to Leonard Oliveira for th chats about this topic.

  • Now the VRAM is emulated as two separate 64kb banks instead of one 128kb bank. With this change, now "Breaker" runs without any bug! Thanks to Isaac Solorzano for pointing me this bug, to Ademir Carchano for explaning what happens with MSX hardware in this mode, and to BGA for keep asking me about Breaker :)

  • Fixed the support to bit 7 of VDP[9], this fixes a small bug in the intro of "Space Manbow"

  • Added support to sprites in SCREEN 8, which is required by "Breaker". Thanks to Maarten ter Huurne for the correct palette.

  • Added support to 8x8 sprites in SCREEN 5 (to be used in "GEM"). Thanks to Patriek Lesparre and Laurens Holst for the suggestion.

  • Added support to the high resolution timer at I/O ports E6 and E7. Use the switch "-trtimer" to enable it. This is a Turbo-R-only feature but I thought it might be useful for MSX developers. Thanks to Stefan Boer for a document describing this timer (I had to learn Dutch to read this doc :)


    STUFF part 2

    Most copies of Breaker on the net are broken. Download the correct one at the BrMSX Download Page. Be sure to download this game, because it is the best Arkanoid clone I ever saw, and it has a great opening music :)

    To fully use all MSX2+ features, you need to enable the "-res 12" resolution (512x384x15), which is not present on some of the most recent videocards. Don't worry because the next version of BrMSX will add some new resolutions to solve this problem.


    [2.5]

  • Added a new switch "-ciel" to double the speed of emulated CPU, going from 3.57 MHz to 7.14 MHz. This works in all modes (MSX-1, MSX-2, MSX-2+)

  • Added a new switch "-advram" to enable emulation of the brazilian hardware ADVRAM.

  • Now the VDP command LMMM has support to DIX. This fixes "Fbout".

  • Now the VDP command LMMC has support to DIX/DIY. This fixes the BASIC two-liner "Nemesis Dawn".

  • Fixed small bugs in the VDP commands LMCM and LMMC.

  • Added the VDP command POINT (used by the BASIC command POINT)


    STUFF

    Check out the many BASIC two-liners I made for MSX, including the ray-tracer "Nemesis Dawn" and many games,
    in the Two Liners Art Gallery  (offline)

    If you don't know what is ADVRAM, then check out the ADVRAM Page


    How to enable MSX2+ emulation

    Use the following command line:

    brmsx -msx2+ -res 12

    Not much will work in this version. You can see the intro of Nyancle Racing, you can load SCREEN 12 pictures in basic, you can even see the intro of Golvellius 2. But you cannot run F1-Spirit 3D Special and Laydock 2 - Last Attack due to the lack of horizontal scroll.


    Random Chat

  • I know many of you cannot hear any sound in BrMSX due to the lack of PCI soundcard support. There are only four options left:
    1. You can donate such a card for me, so I can implement the driver
    2. You can download the source code, write the driver and send me the patch
    3. You can use other emulator
    4. You can buy a real MSX and use it instead
    By far the fourth option is the best!

  • Many people asked me to write a program to read real MSX tapes using a Sound Blaster. But Martin (author of NO$MSX) already wrote such a program!! If you have tapes still undumped, go visit his page!

  • We are moving to a faster, bigger and better server soon. Stay tuned!

  • I do not answer emulator-related e-mail anymore. If you want to talk with me, then try the #msxzone channel of irc.sti.com.br:6667, from 23:00 to 0:00 (brazilian time).


    [source code released]

    Takamichi Suzukawa donated an MSX Turbo-R to the BrMSX project. This will help a lot in future developments. In order to improve even more the development speed, I decided to release BrMSX source code, so everyone can send patches and improvements.

    There are two versions of the source code available. The first one is from version 1.155 (msx-1 only), this source is released in preparation to the full source release (soon). Do not send patches for this version. Instead, study it and try to understand it. The other one is the historic 1.0, the first BrMSX version, previously seen by only four people. This version is released to beginners, who want to know how to program an assembly emulator from scratch.

    The source code is released in the GNU General Public License, so this means you can use parts of this code in your projects, as long as your projects have the source code available too.

    BrMSX 1.0 source code

    BrMSX 1.155 source code


    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


    Some common questions about BrMSX 2.x:

  • 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.


    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

  • Mode-2 sprites will only work fully in SCREENs 4, 5 and 8. 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.

  • There is no support to MSX Turbo-R. There will be no support to MSX Turbo-R in the near future.

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


    How to connect a SNES joypad to your computer (offline)


    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.


    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 (offline)

    BrMSX Message Board


    Scitech Soft: (web archive) you need the Display Doctor to enable TV emulation!!!


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


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


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


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


    Brazilian MSX scene:

    The Brazilian MSX Software Page (offline), 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 (web archive), 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 (web archive), by Werner Kai
    (all about MSX in Brazil, including reports on all brazilian meetings).

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

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

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


    CREDITS

    BRMSX was all written from scratch by Ricardo Bittencourt (offline).

    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.

    Since September 1997 MSX Rating