NLMSX User Manual
NLMSX User Manual NLMSX User Manual

Welcome:

Hello and welcome to this user manual. It is divided into several sections:
  • Overview: general information about NLMSX,
  • Getting Started: if you haven't installed the emulator yet, there's described on how to do it,
  • Usage: information on how to use NLMSX,
  • Troubleshooting: a FAQ section.


Here you can find some general information about NLMSX. Also be sure to read the disclaimer before using the emulator.

NLMSX
Disclaimer

NLMSX:

NLMSX is a piece of software that can emulate any MSX computer (MSX1, MSX2, MSX2+, Turbo-R) on a PC. This program mimics the MSX hardware and can therefore run any software designed for the MSX. In short, this is called an MSX emulator. Its name is derived from the country code where this program is being developed: The Netherlands (NL), and the computer it emulates: the MSX.

This emulator is constantly in a beta stage. Therefore it will never be free of any inconsistencies and bugs, although it gets better with every frequent release. This is not a commercial product, it is a hobby project where no money is being made. A lot of hard work, research, and programming has been done to progress to the state NLMSX is in now.

NLMSX has been created and is being maintained by Frits Hilderink, with help from many people.

Disclaimer:

As was mentioned above, NLMSX is freeware. It can be distributed freely as long as no modifications have been made (*). It cannot be sold. The author cannot be held responsible for any loss or damage caused by this program. By default, this emulator comes with several ROMs. Although being very old, these are still copyrighted by their respective owners.

The MSX trademark and logo are copyrighted by the MSX Association, of which NLMSX is not affiliated with in any way.

* You are allowed to remove the copyrighted ROMs for distribution.


You can read here about the capabilities of NLMSX. Some of the features are not yet complete but will be in future versions. On the left of the table you can see the implemented part and its key features, and on the right you can see a progressbar and what's left to do on that part. Even though there's still a lot of work to do, NLMSX' compatibility rate is over 99%.

If you have any detailed specifications to complete emulation, please email about it.

What is emulated ?
Other features

What is emulated:

NLMSX currently emulates the following:

Part / Features Progress / Todo
Z80A CPU:
  • overclocking support.
98%
Todo:
  • "The Undocumented Z80 Documented" from Sean Young,
  • support for multiple t-state tables (Z80 and R800).
Turbo-R R800 CPU.
10%
Todo:
  • support for R800 DRAM,
  • Currently, the R800 is emulated as an overclocked Z80. Almost everything works fine but a whole new R800 core would make emulation perfect.
VDP Engine:
  • emulation of the following video processors: MSX 1 TMS99x8A (NTSC) and TMS9929A (PAL), MSX 2 V9938, MSX 2+ / Turbo-R V9958,
  • line interrupts,
  • horizontal scrolling in screens 4-12,
  • full-colour support,
  • sprite collision detection.
80%
Todo:
  • initializing all available registers with the correct values,
  • adding screen 3 support,
  • adding expansion VRAM support (extra 64 KByte),
  • checking the influence of register #23 (display line) for screen 1, 2 and 3,
  • adding sprite collision coordinate support in Sprite Mode 2,
  • adding sprite transparency enable / disable bit support for sprite mode 2 in screen 6,
  • better support for timing between Z80 TStates and VDP clock speed,
  • better parallel executing of VDP commands,
  • better support for exact speeds of VDP commands,
  • support for VDP colour bus operations (digitising, etc.),
  • adding interlacing support, with timing using register #13,
  • adding vertical adjustment support (register #18),
  • better VDP command performance,
  • adding support for the overscan trick as used in demos like Unknown Reality,
  • adding horizontal scroll support for screen 4,
  • adding command extension support, bit 6 of register #25,
  • adding wait function support, bit 2 of register #25,
  • adding the TMS9928A fixed palette.
S3527 / S1990 MSX Engine (memory and I/O management, I8255):
  • support for allocating memory types to any mainslot or subslot anywhere in the Z80 addressing space,
  • many ROM formats, including MegaROMs, ASCII SRAM, FM PAC SRAM, Kanji (JIS 1 & 2), MSX-DOS2, Panasonic mappers, and several unique ROM types like Super Lode Runner, R-Type, Cross Blaim,
  • support for the PSG,
  • support for multiple memory mappers,
  • support for multiple RAM area's,
  • support for switching from Z80 mode to R800 (Turbo-R) mode,
  • support for the 1 bit PPI sound.
85%
Todo:
  • adding support for the following ROM types: Konami Gamemaster 2 + 8kb SRAM, Panasonic / Philips / Toshiba MSX-Audio, National (Matsushita) Megarom Mapper support (MSX 2 FS-4600F), MSX Bunsetsu Henkan Jisyo ROM (FS-SR021 for MSX1 FS-4000/MSX2 FS-4500/4700F), MSX Word Processor II with SRAM (MSX2 FS-4500/4700F), Sony MSX-JE for HB-F1XDJ / HB-F1XV, HALNOTE (8 Megabit ROM with Special Mapper),
  • support for MegaRAM.
RP5C01 RTC (clockchip):
  • support for CMOS.
99%
Todo:
  • The PC clockchip emulates the RP5C01, so you can't change the time or date from within the emulator. It will probably stay this way though it's no perfect emulation.
AY-3-8910 / YM2149 sound chip (PSG).
99%
Todo:
  • A DAC would have to be emulated to make the wave output the same as on the original MSX, but this is, if not, barely audible.
YM2413 OPLL sound chip (MSX Music / FM PAC).
  • 2 different YM2413 cores are included.
100%
Y8950 OPL1 sound chip (MSX Audio):
  • support for 256KB samples.
100%
YMF278B OPL4 sound chip (Sunrise MoonSound):
  • support for 512KB SRAM.
75%
Todo:
  • support for a configurable SRAM size,
  • emulation of several special effects, like reverberation,
  • fixing several other bugs.
SCC and SCC+ (Konami's Sound Creative Chip):
  • support for multiple SCCs.
99%
Todo:
  • When comparing NLMSX with a real SCC, you can hear tiny differences, especially with highpitched tones.
Disk controller:
  • emulation of the following disk controller types: TMS279x / WD279x, TC8566AF, MB8877A,
  • support for all disk formats (DS DD, SS DD, DS SD, ...),
  • support for multiple disk controllers.
40%
Todo:
  • adding support for Read Address command,
  • adding support for Read Track command,
  • adding support for Write Track command, to make disk formatting possible,
  • adding support for correct CRC calculation,
  • adding disk support through port based I/O,
  • adding SCSI support through memory mapped I/O or port based I/O (specs anyone ?),
  • adding IDE support through memory mapped I/O or port based I/O (specs anyone ?),
  • real MSX floppy disks support.
Devices:
  • keyboard, with emulation of the numeric keypad,
  • multiple joysticks,
  • mouse.
60%
Todo:
  • TMT_net support,
  • RS232 support,
  • printer support.
  • The MSX mouse is emulated by the Windows mouse driver. The inheritance of its speed and acceleration is incorrect but it will stay this way.
Other.
0%
Todo:
  • MSX Midi,
  • Turbo-R PCM,
  • Cassette.

Other features:

Here's a quick overview of other features:

Part / Features Progress / Todo
GUI:
  • MSX configuration to build any MSX computer,
  • joystick ports configuration,
  • fullscreen,
  • scanlines,
  • frameskipping,
  • create snapshots.
30%
Todo:
  • better menu,
  • support for save states,
  • Windows interface for general settings,
  • complete interface for editing MSX I/O configurations,
  • Windows Interface for complete editing of the keyboard settings/keys etc.,
  • Windows interface for Display Settings.
Debugging.
20%
Todo:
  • single stepping,
  • breakpoints on Z80, VDP and other devices,
  • different view of the VRAM.
Commandline parameters.
100%


NLMSX should run on any system that roughly follows these requirements. Full speed is aquired by running it on a system similar to, or faster than the one described in the recommended requirements. If your system is slower, you might have to do some tricks, like frameskipping.

Turbo-R emulation requires a little more processing power.

 | Minimum | Recommended
OS | Windows 95/98/ME/NT4/2000/XP, DirectX 7 or higher | Windows 95/98/ME/2000/XP, newest version of DirectX
CPU | Pentium II 350 Mhz or AMD K6-2 400 Mhz | Pentium III 700 Mhz or AMD Athlon 700 Mhz
RAM | 32 MB | 64 MB
Video | any, capable of at least 16 bit colours | any, capable of at least 16 bit colours
Sound | any | any
Other | none | joypad


Here's a list of changes of the current, and all previous releases of NLMSX. Dates are in dd-mm-yyyy format.

12-06-2003 - NLMSX v0.48
02-06-2003 - NLMSX v0.47
12-03-2003 - NLMSX v0.46
21-11-2002 - NLMSX v0.45
13-11-2002 - NLMSX v0.44
29-07-2002 - NLMSX v0.43
09-07-2002 - NLMSX v0.42
17-05-2002 - NLMSX v0.41
20-04-2002 - NLMSX v0.40
26-03-2002 - NLMSX v0.39
16-02-2002 - NLMSX v0.38.1
16-02-2002 - NLMSX v0.38
05-02-2002 - NLMSX v0.37
11-01-2002 - NLMSX v0.36.2
10-01-2002 - NLMSX v0.36.1
10-01-2002 - NLMSX v0.36
12-11-2001 - NLMSX v0.35
22-02-2001 - NLMSX v0.34
26-01-2001 - NLMSX v0.33
22-01-2001 - NLMSX v0.32.1
21-01-2001 - NLMSX v0.32
04-01-2001 - NLMSX v0.31
13-10-2000 - NLMSX v0.30
14-09-2000 - NLMSX v0.29
17-08-2000 - NLMSX v0.28
20-07-2000 - NLMSX v0.27
07-06-2000 - NLMSX v0.26
26-04-2000 - NLMSX v0.25
17-04-2000 - NLMSX v0.24
02-04-2000 - NLMSX v0.23
04-03-2000 - NLMSX v0.22
12-02-2000 - NLMSX v0.21
22-01-2000 - NLMSX v0.21 beta 4
18-10-1999 - NLMSX v0.20
31-08-1999 - NLMSX v0.10
17-08-1999 - NLMSX v0.09
10-08-1999 - NLMSX v0.08
27-07-1999 - NLMSX v0.07
19-07-1999 - NLMSX v0.06
08-07-1999 - NLMSX v0.05
15-06-1999 - MSX2 Emulator v0.04
14-06-1999 - MSX2 Emulator v0.03
05-06-1999 - MSX2 Emulator v0.02
31-05-1999 - MSX2 Emulator v0.01

Versions:

to version list 12-06-2003 - NLMSX v0.48 changes:

  • solved a crash when sound is disabled,
  • updated the GUI, eg. inserting cartridges is much easier now,
  • fixed some problems with the MoonSound, thanks to Herman Oudejans and Arjan Bakker.

to version list 02-06-2003 - NLMSX v0.47 changes:

  • sprite colour table fix (xmas demo 2002 works perfect now),
  • removed disk logging,
  • some game controls refused to work with the mouse in port 1, fixed,
  • fixed a bug with ASCII MegaROM mappers, games like Animal Land, Ikari, Hole in 1 Special, Eggerland 2, and several others are working now,
  • support for several unique memory types: Cross Blaim, Harry Fox Yki No Maoh, R-Type, Super Lode Runner, Holy Qu'ran, and the pirate Korean multigame ROMs (thanks to Saeba, Martos and Sean Young),
  • the default configuration set was updated a little bit: removed several subslotted slots,
  • from now on, NLMSX is released with a ROM database, located in the 'DB' directory. Known ROMs will be auto detected to their specific mapper type,
  • Sunrise MoonSound support. As this is the first version of NLMSX with MoonSound, it is not yet as good as on a real MSX. You can get the wavetable ROM from the plugin section of the NLMSX website, put it in the 'ROMS' directory for it to work.

to version list 12-03-2003 - NLMSX v0.46 changes:

  • Added Jarek Burczynski's YM2413 core. You can switch to the one you prefer in the Preferences window.
  • Name table address line blocking is now supported, which makes Ice King, Can of Worms, Dr. Archie, and several demos work better.
  • The last ROM and Disk location are now remembered. However, drivea.dsk and driveb.dsk are not loaded by default anymore, you can change this by using the commandline switches /drivea and /driveb.
  • Added '64 KByte Mirrored' memory type
  • Sprites can now be enabled/disabled in screen 1 and 2
  • Fixed a bug with the Z80 I register, which in turn fixed the MSX Audio
  • Fixed a bug when handling a 'disk not ready', cracked versions of Psycho Soldier, Zoo, and possibly others are working correctly now
  • Better memory mapper port handling when reading ports FC-FF
  • Fixed problem with the MSX Mania Collection disks
  • Better cleanup of DirectInput and DirectSound devices
  • Better VRAM initialisation
  • Much better refresh register handling (Z80 register R)

to version list 21-11-2002 - NLMSX v0.45 changes:

  • Fixed a problem with the cursor keys if a mouse is connected on port 1
  • Fixed a problem with joysticks that do not needed polling
  • The pause key can now be used to pause the emulator

to version list 13-11-2002 - NLMSX v0.44 changes:

  • Support for the mouse
  • Support to configure a mouse or joystick on a joystick port. The buttons or directions of a mouse or joystick are not yet configurable
  • Added CTRL+ALT key combination to disable/enable a configured mouse. This is needed since the mouse is exclusively used by NLMSX if it is enabled
  • Added a scheduler to make the emulator timing better
  • Added an R800 frequency selector. During turbo-r emulation when the R800 is enabled, this frequency will be used
  • Added better disk size detection
  • Added cpu usage indicator. This is not always accurate
  • Added better secondary slot selector handling
  • Added PPI 1-bit sound
  • Added support for the MB8877A disk controller

to version list 29-07-2002 - NLMSX v0.43 changes:

  • Support for the Turbo R (MSX-View, Illusion City etc work perfectly). Many thanks to Jirou Kaneda and Albert Beevendorp for this. Timing isn't good yet, the emulated R800 is too fast.
  • Support for the TC8566AF disk controller (also used in the Turbo R)
  • Fixed a problem with accessing drive b on the commandline
  • Removed nlmsx.txt and added a user-manual, thanks to Jonemaan

to version list 09-07-2002 - NLMSX v0.42 changes:

  • Fixed some problems related to accessing the joystick
  • Fixed a joystick performance problem (especially on higher CPU frequencies)
  • Fixed a mouse cursor problem with disk selection in fullscreen
  • Better disk support (also for the msx1mania disks)
  • Added a Z80 frequency indicator on the statusbar
  • Added a Z80 frequency selector in the configuration editor
  • Added a VDP type selector (not fully used yet)
  • Added 5th/9th sprite indication
  • Added new default configuration set (thanks go to Jonemaan)

to version list 17-05-2002 - NLMSX v0.41 changes:

  • added sprite collision support for sprite mode 1 and 2
  • added support for clockchip data. You can now use set screen and set password to save the current settings.
  • added numeric keyboard support
  • changed some keyboard settings (see nlmsx.txt)

to version list 20-04-2002 - NLMSX v0.40 changes:

  • more stable sound support
  • added ASCII 8/16KB SRAM support
  • accurate VDP line command

to version list 26-03-2002 - NLMSX v0.39 changes:

  • added smooth display support
  • added full fmpac support with sram. FMPAC data is stored sram\fmpac.dat
  • added better kanji support. The kanji.rom is now also loaded/reloaded when an other configuration is started.
  • added a commandline parameter to change the name of the screenshots (see nlmsx.txt)
  • fixed a bug with sprites when using the adjust register (reg#18)

to version list 16-02-2002 - NLMSX v0.38.1 changes:

  • fixed a bug in the joystick support. The triggers are always pressed when there is no joystick
  • fixed a bug in the configuration editor when checking for overlapped memory areas

to version list 16-02-2002 - NLMSX v0.38 changes:

  • fixed a lot of palet problems with certain games
  • fixed palet problems when switching from 32 bit to fullscreen
  • fixed problems with adding new slots in the configuration editor
  • fixed a bug in the 256 kbyte sample support for the Y8950. Thanks go to Vincent van Dam.
  • added joystick support on port 1 (not yet configurable)
  • added sprite magnifying for Sprite Mode 1

to version list 05-02-2002 - NLMSX v0.37 changes:

  • added support for 'Normal RAM'.
  • added 256 kbyte sample support for the Y8950. Thanks go to Vincent van Dam.
  • added support for two disk drives. Use F7 to select the diskimage for drive B.
  • added frame skipping support to the preferences dialog
  • added '-fullscreen' commandline parameter
  • fixed some reset problems with the MSX2+ configuration

to version list 11-01-2002 - NLMSX v0.36.2 changes:

  • solved a bug in the windows API call GetPrivateProfileSection which caused problems when loading configurations on older windows systems
  • the arabic and matsushita configurations have been removed and are available in the Plugins section on the site along with a lot of other configurations

to version list 10-01-2002 - NLMSX v0.36.1 changes:

  • solved a color bug when switching to fullscreen with 32 bit colors
  • solved a couple of ROM naming problems in the configuration files

to version list 10-01-2002 - NLMSX v0.36 changes:

  • More stable VDP Command emulation
  • Existing screenshots will not be overwriten anymore
  • Added an extra address column in the configuration editor
  • 32 bit color support
  • Added more common roms to support the soon to release extra configurations

to version list 12-11-2001 - NLMSX v0.35 changes:

  • Fullscreen support. Use ALT+ENTER to switch between windowed and fullscreen mode.
  • Changed the configuration file (config.ini) format.

to version list 22-02-2001 - NLMSX v0.34 changes:

  • Added performance enhanced version of the EMU2413 made by Mitsutaka Okazaki.
  • Some enhancements regarding the VDP interrupt system.
  • Solved a crash that occurred when the sound had been disabled.

to version list 26-01-2001 - NLMSX v0.33 changes:

  • Added support for the YM2413 (FM-PAC) Thanks go to Mitsutaka Okazaki for the excellent YM2413 emulation
  • Changed MSX2 and MSX2PLUS configurations. Both configurations now support the FM-PAC in slot 3-0.

to version list 22-01-2001 - NLMSX v0.32.1 changes:

  • Solved a huge bug when the window is moved

to version list 21-01-2001 - NLMSX v0.32 changes:

  • Some performance improvements
  • Added a preferences dialog with switches to disable or enable scanlines, synchronization and sound. Changing the sound settings requires to restart NLMSX.
  • Solved a crash when sound was disabled.

to version list 04-01-2001 - NLMSX v0.31 changes:

  • Added support for ASCII 8Kbyte and ASCII 16Kbyte MEGAROMs.
  • Rewrote a lot of code regarding the configuration management.

to version list 13-10-2000 - NLMSX v0.30 changes:

  • Solved a few bugs in the SCC emulation.
  • Solved a major bug that caused a lot of stability problems.
  • Solved some major bugs regarding the online changing of cartridges.
  • Solved frequency problems in the PSG emulation. (Thanks to Samor)
  • Added browsing functionality for disk images and rom images.

to version list 14-09-2000 - NLMSX v0.29 changes:

  • Added full support for a normal SCC.
  • Added full support for a SCC+ with 128kbyte ram.
  • Added a SCC+ memory type.
  • Multiple SCC/SCC+ cartridge combinations are possible.
  • Changed the arabic configuration. Memory mapper in slot 3-2 and the disk rom in slot 3-3. Thanks to Husni Lutfi.
  • Rewrote sound mixing to fully use DirectSound's own mixing algorithms.
  • Scanlines are removed, but this may give performance problems.

to version list 17-08-2000 - NLMSX v0.28 changes:

  • Solved a bug with SCC channel 1.
  • Made some enhancements to the SCC emulation.
  • Reworked the sound synchronisation. Framerates should be 50 or 60 on both windows 98/2000. Just Send me an e-mail if that is not the case. Emulation is not as smooth as it was before, but the sound should be fine. I will correct this in future versions.
  • Added a working arabic painter rom (thanks to Husni Lutfi).

to version list 20-07-2000 - NLMSX v0.27 changes:

  • Solved a bug in the horizontal scrolling.
  • Reworking the switching between 192/212 lines.
  • Resized the window to fit the emulation screen.
  • Added some support for a normal SCC. Just select a konami cartridge of type 5 and a SCC will be added. The sound isn't very good, but you can hear it.

to version list 07-06-2000 - NLMSX v0.26 changes:

  • Revised background color handling
  • Minor performance improvements
  • Restored 50/60 herz display frequenties when sound is enabled
  • Solved a color problem in screen 10/11 causing black dots to appear
  • Solved a major problem when using multiple expanded slots
  • Added support to make screenshots, using the F9 key

to version list 26-04-2000 - NLMSX v0.25 changes:

  • More stable window system. Still not as good as I want it to be.
  • Accurate PSG emulation. A very old game called Oh Shit! which uses the PSG to playback recorded samples works as it should.
  • Slowed down the VDP emulation. But exact timing is still an issue that I have to address.

to version list 17-04-2000 - NLMSX v0.24 changes:

  • PSG support. This time everything should be very stable, no more timing issues.

to version list 02-04-2000 - NLMSX v0.23 changes:

  • Added correct synchronisation for 50/60 herz display modes.
  • Solved a problem with interrupt mode 2 handling, UZIX runs just fine now.
  • A few minor performance improvements

to version list 04-03-2000 - NLMSX v0.22 changes:

  • Added support for kanji, JIS 1st and JIS 2nd standards.
  • Fixed a minor problem with the commandline parameters.

to version list 12-02-2000 - NLMSX v0.21 changes:

New in this version since the latest beta:

  • Fixed some problems with video cards with less than 2 megabyte of memory.
  • Some performance increasements in the memory mapper code.
  • Resetting with the system with F12 would sometimes not work.
  • Added a MSX-1 configuration.
  • Added nlmsx.txt help document.
  • Added some special keys, see nlmsx.txt document.
  • Fixed a general protection error when a ROM file was not present.

to version list 22-01-2000 - NLMSX v0.21 beta 4 changes:

  • Konami MEGAROM's are supported again !
  • All configurable devices can now be added and removed online.

to version list 18-10-1999 - NLMSX v0.20 changes:

  • Rewrote complete memory system and I/O system. Multiple memory mapper configuration with different mapper sizes are now possible.
  • Added memory mapped version of the TMS279x diskcontroller, only reading and writing of sectors is currently supported. This means that a disk cannot be formatted inside the emulator until the write track command is implemented.
  • Single Density and Double Density disk images.
  • Read-Only disk images are now opened with write protection enabled.
  • MSXDOS 2.x support added. MSXDOS2.ROM file will be loaded if it is present. Beware that it might seem that a program isn t working because of the presence of DOS2. Try disabling DOS2 support by renaming the file MSXDOS2.ROM. DOS2 is disabled by default. Configuration with or without DOS2 can be made when the GUI is ready.
  • Solved a problem with sprites in MSX 1 screen modes.

to version list 31-08-1999 - NLMSX v0.10 changes:

  • Rewrote interrupt handling, thanks to Laurens Holst and Sean Young.
  • Sunrise Magazine#8, Sunrise Special #1, #2, #3 and the game Megadoom work just fine now.
  • Use F12 to reset the emulator.
  • Added sprite transparency enable/disable bit support for sprite mode 2, Ikari Warrior plays like it should now.

to version list 17-08-1999 - NLMSX v0.09 changes:

  • Added horizontal scroll support in screen 6, 7, 10, 11, 12.
  • Added screen masking support, bit 1 of register#25.
  • Added sprite support for screen 8, with the correct palette
  • Added sprite support for screen 1.
  • Added correct behaviour of register#27, which is part of the horizontal scrolling capability, in all present screen modes.
  • Fixed another bug in the interrupt handling, the demo Turnix and Sunrise Magazine #8 work fine now

to version list 10-08-1999 - NLMSX v0.08 changes:

  • Sprite support for screen 6 added.
  • Optimised sprite magnification in Sprite Mode 2.
  • Fixed a bug in screen 12 handling that occurred in Psy-O-Blade from T&E Soft.
  • Added filter for diskimages *.di1 and *.di2.
  • Fixed a bug in the horizontal scroll in screen 5, I rewrote the original source.
  • Added horizontal scroll support in screen 8.
  • Use F7 to switch from between full screen updates, every second screen, every third screen and every fourth screen. This should give a big performance increase on low-end systems.

to version list 27-07-1999 - NLMSX v0.07 changes:

  • Fixed a bug in the VDP command LMMC. Dynamic publisher runs just fine now.
  • Adding disk change support. Use the function key F6 to select a disk image for drive A.
  • Added the correct ID for a V9958 chip, solved problems with the golvellius 2 demo.
  • The GRAPH key is now available under the F8 key.

to version list 19-07-1999 - NLMSX v0.06 changes:

  • Support for screen 10 and screen 11 added. Including sprites.
  • Sprites for screen 12 added.
  • Emulation now runs within a window, no menus available yet.
  • Performance has been a problem lately and will be addressed within the next releases.

to version list 08-07-1999 - NLMSX v0.05 changes:

  • Support for screen 12 added. No sprites yet.
  • Changed name from MSX2 Emulator into NLMSX

to version list 15-06-1999 - MSX2 Emulator v0.04 changes:

  • Major bug fixes in VDP emulation.

to version list 14-06-1999 - MSX2 Emulator v0.03 changes:

  • Major bug fixes in VDP emulation.
  • Better Vram handling (You can play Big Strategy now)
  • Better disk-change (Disk will only be offline during the changing)
  • You can play F1-spirit 3D now, although the screen is completely garbled..
  • Fixed a bug in interrupt handling. The EI instruction should enable interrupts after the next instruction.

to version list 05-06-1999 - MSX2 Emulator v0.02 changes:

  • Major bug fixes in VDP emulation.
  • Fixed a bug in boot sector interpretation code when running games where boot sector information was corrupted.

to version list 31-05-1999 - MSX2 Emulator v0.01 changes:

  • First Release


If you haven't found what you were looking for in this user manual, found a new bug, or just want to get in touch, there are currently 2 ways to contact the author:

  • post on the official site's forum. Anonymous postings are allowed,
  • send a mail to hilderink@home.nl. No ROMs- or other rude requests/demands please.

NLMSX also has a mailinglist, so if you want to be notified after every new release, or have questions, send a blank mail to nlmsx-subscribe@generation-msx.nl to subscribe. More information about this can be found on the official site.


NLMSX and this user manual have been made possible thanks to many people. If you think you have been forgotten to be added to either one of these lists, please get in touch.

NLMSX
User Manual

NLMSX:

The emulator is being developed by Frits Hilderink, a former member of MSX Computer Club Enschede in the Netherlands. The author of NLMSX shouts out his thanks to the following people for helping him with the emulator:

  • Marat Fayzullin, for core emulation of the Z80 CPU,
  • Sandy Pleyte, for the website, for ideas and a lot more,
  • Arnaud de Klerk, for ideas and lot of other things,
  • Thijs v.d. Veen,
  • Hans Otten,
  • Remco Seesink,
  • Daniel González, for testing,
  • Sean Young, for interrupt handling ideas,
  • Laurens Holst, for interrupt handling ideas,
  • Khaled, for the Arabic MSX-2 ROMs,
  • Husni Lutfi, for testing, and for providing a working Arabic PAINTER.ROM,
  • Mitsutaka Okazaki, for his excellent YM2413 emulation,
  • Tatsuyuki Satoh, for his Y8950 emulation,
  • Vincent van Dam, for his add-on regarding the loading of sound samples in the Y8950 emulation,
  • Johan Veenstra, for testing FM-PAC emulation, and for testing Y8950 emulation and sending the code,
  • Jonemaan, for ideas, testing, this user manual, and a lot of other things,
  • Jirou Kaneda, alias Atarulum,
  • Ciro Alfredo Consentino,
  • Albert Beevendorp,
  • Jarek Burczynski, for the other YM2413 core, and the YMF262 (FM synthesizer unit of the MoonSound),
  • R. Belmont and Olivier Galibert, for the PCM emulation of the YMF278B,

and all the MSX people who support or use this emulator !

User manual:

On another note, this user manual has some information and images that were found on the internet. Respect goes to the people who created those in the first place. Most of these were bits and pieces taken from various and mostly anonymous sources. The creator and maintainer of this user manual is Jonemaan, who's got help from the following people:

  • Tobias Keizer, for the Spanish translation,
  • Ciro Alfredo Consentino, for the Portuguese translation,
  • Samor, for the Dutch translation (initially translated by Samor and Jonemaan).

We are still looking for people who would want to be the maintainer of other NLMSX user manual translations. So if you think you're up to it, help is always appreciated.


Underneath is a collection of links related to the MSX. Most of these are links to other MSX emulators; if you don't like NLMSX, try those. If you do like NLMSX, still try other emulators, they are good too. If you're looking for games, visit the Funet MSX archive.

NLMSX (get System ROMs from the plugin section),
fMSX, an open source MSX emulator by Marat Fayzullin,
paraMSX, a Windows port of fMSX by Yeongman Seo,
fMSX-SDL, an SDL port of fMSX by Vincent van Dam,
BRMSX, an MSX emulator by Ricardo Bittencourt, (dead link, you can still get it at emulation related sites like Zophar's Domain)
RuMSX, an MSX emulator by Rudolf Lechleitner,
openMSX, an open source MSX emulator for Linux, mainly developed by David Heremans, Wouter Vermaelen, Maarten ter Huurne, Manuel Bilderbeek, Herman Oudejans,
Visual MSX, an open source front-end for NLMSX by Ciro Alfredo Consentino,
Funet, an MSX archive,
MSX Resource Center,
The Ultimate MSX FAQ.


Installation of NLMSX is easy. Unzip the archive to any directory you wish. System ROMs are placed in the 'ROMS' directory.

Doubleclick on NLMSX.EXE to run the emulator.

System ROMs

System ROMs:

If the system ROMs are not already in the specified directory, you need to download the ROMs that are listed underneath to make the default configurations work correctly (get them at the plugin section of the NLMSX website). If the CRC32 checksum is different, it shouldn't always have a negative effect, but the filenames must be the same.

Filename | Size (KB) | CRC32 | Description
DISK.ROM | 16 | 721F61DF | International TMS279x Disk ROM.
DISKM.ROM | 16 | 5FA517DF | MB8877A Disk ROM.
FMPAC.ROM | 64 | 0E84505D | FM PAC ROM (MSX Music Basic + SRAM).
KANJI.ROM | 256 | 1F6406FB | Kanji font (JIS 1 and JIS 2).
MSX.ROM | 32 | 94EE12F3 | Dutch MSX1 Bios ROM.
MSX2.ROM | 32 | 6CDAF3A5 | Dutch MSX2 Bios ROM v2.1.
MSX2EXT.ROM | 16 | 66237ECF | Dutch MSX2 Extended Basic ROM v2.1.
MSX2EXTJ.ROM | 16 | 43E7A7FC | Japanese MSX2 Extended Basic ROM.
MSX2EXTKR.ROM | 32 | 2BA104A3 | Korean MSX2 Extended Basic + Hangul ROM.
MSX2HAN.ROM | 32 | A8EAD5E3 | Korean MSX2 Hangul Input ROM.
MSX2J.ROM | 32 | 9B3E7B97 | Japanese MSX2 Bios ROM.
MSX2KR.ROM | 32 | 53850907 | Korean MSX2 Bios ROM.
MSX2P.ROM | 32 | 358EC547 | MSX2+ Bios ROM.
MSX2PEXT.ROM | 16 | B8BA44D3 | MSX2+ Extended Basic ROM.
MSX2PMUS.ROM | 16 | 456E494E | MSX2+ Music Basic ROM.
MSXBR.ROM | 32 | EFB4B972 | Brazilian MSX Bios ROM.
MSXDOS23.ROM | 64 | D25FC001 | MSX-DOS 2.31 ROM.
MSXHAN.ROM | 8 | 938DB440 | Korean MSX1 Hangul Input ROM.
MSXJ.ROM | 32 | 071135E0 | Japanese MSX1 Bios ROM.
MSXKANJI.ROM | 32 | B4FC574D | Kanji Basic ROM.
MSXKR.ROM | 32 | 3AB0CD3B | Korean MSX1 Bios ROM.
MSXTR.ROM | 32 | 937C8DBB | MSX Turbo-R (FSA1GT) Bios ROM.
MSXTREXT.ROM | 16 | 70AEA0FE | MSX Turbo-R (FSA1GT) Extended Basic ROM.
MSXTRMUS.ROM | 16 | F5F93437 | MSX Turbo-R (FSA1GT) Music Basic ROM.
MSXTROPT.ROM | 16 | 50D11F60 | FSA1GT Logo ROM.
XBASIC2.ROM | 16 | 2825B1A0 | Kun Basic ROM v2.0.
YRW801-M.ROM | 2048 | 2A9D8D43 | MoonSound wavetable.


NLMSX has many functions. The most common functions are described here, with links to the upcoming chapters where the usage of NLMSX is documented in depth.

Building an MSX computer
Changing controls
Changing disks
Changing ROMs
Changing the MSX computer
Debugging
Exiting the emulator
Frameskipping
Overclocking
Pausing the emulator
Resetting the MSX
Taking screenshots
Toggle full screen
Toggle scanlines
Toggle sound

to function list Building an MSX computer:

You can build an MSX computer with the Configuration Editor.

to function list Changing controls:

You can change the controls in the Ports dialog.

to function list Changing disks:

NLMSX doesn't support real disks, but, like in many other emulators, a binary image of the original disk. All disk formats are supported. Provided that the currently emulated MSX has a disk controller, you can insert disks by using the menu, the F6 or F7 keys, or the command line parameter /drivex.

The default disk directory will be the directory in which the last disk was opened.

to function list Changing ROMs:

Use the menu, the Shift + F6 or Shift + F7 key combinations, or the command line parameter /cartx or <file> to open a ROM image. If you manually want to change the ROM details, eg. to specify an empty SCC cartridge, click the Cancel button in the ROM open dialog. The same dialog will also be shown when the ROM is unknown to NLMSX:

The parameters will have to be manually specified.

The default ROM directory will be the directory in which the last ROM was loaded.

to function list Changing the MSX computer:

Use the configuration editor to change the MSX computer. A quick list of how to do it:
  • Open the configuration editor from the menu: Edit -> Configurations,
  • select a configuration in the treeview on the left,
  • press the 'Run This Configuration' button.

You can also use the command line parameter /config to start NLMSX with the specified configuration.

to function list Debugging:

While not a spectacular feature, NLMSX' automatic logging is quite handy for resolving bugs. You can find these logs in the 'LOG' directory. The files are recreated every time you run NLMSX, so they can't grow to huge filesizes.

to function list Exiting the emulator:

You can exit the emulator from the menu, or with the F11 key.

to function list Frameskipping:

To enable frameskipping, check the preferences dialog.

to function list Overclocking:

You can overclock the Z80 or R800 in the configuration editor.

to function list Pausing the emulator:

If you press the Pause key on your keyboard, NLMSX will pause. Press it again to resume. This can also be done from the menu.

to function list Resetting the MSX:

Reset the MSX with the F12 key, or from the menu. This is a soft reset, so some memory contents might not be destroyed.

to function list Taking screenshots:

Take screenshots with the F9 key. Screenshots are saved in .BMP format in the 'ScreenShots' directory.

to function list Toggle full screen:

To toggle between windowed-mode and full-screen, press the F8 key. You can also use the command line parameter /fullscreen to start NLMSX with a full screen.

to function list Toggle scanlines:

You can enable scanlines in the preferences dialog.

to function list Toggle sound:

To toggle sound, check the preferences dialog.


Here you can read how to control the general functions in NLMSX.

GUI
Keyboard Shortcuts

GUI:

Each part of the GUI is described here in detail. The numbers represent the parts that are documented underneath the screenshot. After reading about each part, you will understand the GUI.

to GUI - Menu:

File:
  • Preferences: This will pop up a dialog in which you can change the following:
    • Enable scanlines: If this option is checked, scanlines will be enabled. This will speed up emulation because less lines have to be drawn on screen.
    • Enable display synchronisation: If this option is unchecked, NLMSX will run as fast as it can. You can use this option as a fast forward feature. If it is checked, NLMSX will run at the same speed as a real MSX. Note: this is not vsync.
    • Enable sound: This will enable or disable sound. For the changes to take effect you'll need to restart NLMSX. No sound will result in faster emulation.
    • Start with MSX-View: When this option is checked, the intern Panasonic software will be enabled, eg. MSX-View for the Panasonic FS A1-GT.
    • Frame skipping: Here you can enable frameskipping, which results in faster emulation, eg. frameskip 1 skips 1 out of 2 frames, frameskip 3 skips 3 out of 4 frames.
    • YM2413 core: You can change the MSX Music emulation core on the fly to the one that you prefer, Mitsutaka Okazaki's core, or Jarek Burczynski's core. Compared to a real MSX, Mitsutaka Okazaki's core is more accurate.
  • Pause: Pause or unpause the emulator.
  • Reset: Reset the emulated MSX.
  • Exit: This will exit NLMSX.

Edit:
  • Configurations: See Edit Configurations.
  • Ports: See Controls.
  • Cartridge 1: This will pop up a dialog where you can load a ROM image for slot 1. The memory type must be specified if the ROM is unknown or Cancel has been clicked.
  • Cartridge 2: As above, but for Cartridge 2.
  • Disk Drive A: This will pop up a dialog where you can load a disk image for drive A. To eject a disk, simply click on the Cancel button in this dialog.
  • Disk Drive B: As above, but for drive B.

Help:
  • Help: This User Manual.
  • About NLMSX: This will show general information about NLMSX.

to GUI - Titlebar:

On the left of the titlebar you can see the version number of NLMSX, and the configuration that is currently running. On the right are the common minimize and close buttons. You can't resize or maximize the screen. To switch to full screen mode, check the keyboard shortcuts.

If you paused the emulator, you can see a [Paused] message next to the current configuration.

to GUI - Output screen:

This part of the window is the output screen what you would normally see on your tv or MSX monitor.

to GUI - CPU speed:

On the left of the status bar you can see the frequency of the currently used processor.

to GUI - Screen number:

The current screen mode. Screen modes 0 and 1 are text modes, 2 to 8 are graphic modes, and 10, 11 and 12 are MSX+ / Turbo-R graphic modes. If you see 2 numbers, it means that the MSX is in split-screen mode.

to GUI - Frames per second:

The number of times per second the screen is updated, the first number being the current fps (frames per second), the second being the wanted fps. The current fps should have an accuracy of a maximum of 2 frames difference from the wanted fps. If this is constantly lower, your computer might be too slow. If it is higher, you're running NLMSX without synchronising the display. If it is too low, or fluctuating, check the FAQ on how to resolve it.

If you have frameskipping enabled, you will also see it here.

to GUI - CPU usage:

Next to the frames per second, you can see the current CPU usage. The lower this percentage is, the less CPU power NLMSX uses. If this is 99%, you might want to try to speed it up, read the FAQ to get to know how to do that.

to GUI - Soundchip:

If the MSX Music, MSX Audio, or Moonsound soundchip is being used, it will be displayed here.

Keyboard shortcuts:

Some emulator functions can be accessed with keys. Here's a quick list of the functions and the keys to access them. If you want to read about each of these functions in more detail, go one chapter back.

Function | Key
change disk for drive A: | F6
change disk for drive B: | F7
change cartridge for slot 1: | Shift + F6
change cartridge for slot 2: | Shift + F7
toggle between full screen mode and windowed mode | F8
make a screenshot | F9
exit NLMSX | F11
reset the emulated MSX | F12
toggle mouse capture | Ctrl + Alt
toggle pause | Pause


NLMSX can be started from the command prompt, which is useful for front-end creators, or for users who want to customise shortcuts. Most of these options are also possible to control from the GUI.

Parameter | Description
<File> | Open a disk image in drive A, or a ROM image in cartridge slot 1. The user will still have to specify the memory type if this is a ROM. Put the filename between quotes if it contains spaces. You can use this parameter to open a ROM- or disk file by doubleclicking on it from the Windows Explorer, or by dragging and dropping a file in NLMSX.EXE.
/config <Configuration> | Run the specified configuration instead of the default one. This should be a configuration in the same directory as the default configuration. Put the configuration name between quotes if it contains spaces.
/drivea <Disk Image>, [/driveb <Disk Image> .. /driveh <Disk Image>] | Open a disk image for the specified drive. Put the filename between quotes if it contains spaces.
/carta <x>, [/cartb <x> .. /cartp <x>] or /cart1 <x>, [/cart2 <x> .. /cart16 <x>] | The memory type parameters (/mt, /ri, /is, /il, /sa, /ms, /rs) can be followed after the specified cartridge number.
/mt <Memory Type> | See here.
/ri <ROM Image> | See here.
/is <Image Start> | See here.
/il <Image Length> | See here.
/sa <Start Address> | See here.
/ms <Mapper Size> | See here.
/rs <RAM Size> | See here.
/fullscreen | Start NLMSX in fullscreen.
/picname <prefix> | Specifies that NLMSX is to create screenshots that begin with <prefix>. The default prefix is 'scr', followed by a 2-digit number with a leading zero.

Examples:

; A Konami MegaROM cartridge without SCC, with a long filename.
C:\EMU\MSX\NLMSX> nlmsx /config "MSX2 Japanese" /carta /mt 6 /ri "c:\emu\msx\megaroms\Vampire Killer.rom"

; A Konami MegaROM cartridge with SCC.
C:\EMU\MSX\NLMSX> nlmsx /carta /mt 7 /ri ..\megaroms\mgear2.rom

; A combination that brings up special possibilities in Nemesis 2 !
C:\EMU\MSX\NLMSX> nlmsx /carta /mt 7 /ri ..\megaroms\nemesis2.rom /cartb /mt 6 /ri ..\megaroms\usas.rom

; A 4 megabyte memory mapper with an extra disk rom. This configuration will have a total of four diskdrives.
C:\EMU\MSX\NLMSX> nlmsx /carta /mt 3 /ms 6 /cartb /mt 4 /ri roms\disk.rom

; A normal RAM block of 16 KB at address 0x4000-0x7fff
C:\EMU\MSX\NLMSX> nlmsx /carta /mt 2 /sa 0x4000 /rs 0x4000


In this chapter you can read how to control the emulated MSX with your PC keyboard and other PC devices. If you want to read about how to control the MSX keyboard in the built-in editor, go one chapter further.

The MSX keyboard
Other MSX input devices

The MSX keyboard:

As you can see from the picture underneath, the MSX keyboard is very similar to the common PC keyboard; the typewriter keys, the numeric keypad, and the arrow keys are all there. Some exceptions must be kept in mind though:

Philips NMS 8250

Some keys on the MSX keyboard are different, or in a worse case, not available on the PC keyboard. These have been marked and numbered on the picture.

1 The MSX only has 5 Function keys, which can be controlled with the first 5 PC Function keys. However, the MSX has a special way to allow the user to access Function keys 6 to 10. This is possible, as on a real MSX by pressing Shift + any of the 5 Function keys. Examples: Shift + F1 makes F6, Shift + F5 makes F10.
Just keep in mind not to press the other Function keys as these have a special function.

The other MSX keys are unavailable on the PC keyboard and have been summarised in this table:

 | MSX key | PC key
2 | Select | End
3 | Stop | Page Up
4 | Clr Home | Home
5 | Graph | Left Alt
6 | Code or Kana or Hangul * | Right Alt
7 | Accent Mark or [_] or [/] *² | Right Ctrl
8 | Comma (on numeric pad) | Page Down

* | Code, Kana, and Hangul have the same scancode and are therefore exclusively available on different keyboard layouts: the Code key is available on non-Asian MSX computers, the Kana key is only available on Japanese MSX computers, and the Hangul key is only available on Korean MSX computers.
*² | The Accent Mark key, [_] (underscore), and [/] (slash) also have the same scancode, the Accent Mark key is only available on Dutch MSX computers, [_] on Japanese MSX computers, and [/] on Brazilian MSX computers.

The keyboard layout is not yet configurable but it will be in the future.

Other MSX input devices:

STC The Arcade joystick | The MSX 8-way, 2 button joystick is emulated. It is controllable with any connected joystick. Buttons 0 and 1 control the MSX joystick buttons. Joystick buttons are not yet redefineable. Almost all MSX games support the joystick.
Philips SBC-3810 mouse | The MSX mouse can be controlled with your mouse (duh!). Keep in mind that you have to capture it by pressing Ctrl + Alt before being able to control it. Press Ctrl + Alt to see your Windows mouse cursor again.

More other input devices have not yet been emulated.

Before you can use these input devices, you must activate them in the Ports dialog (access it in the Edit menu):

Here you can virtually plug a device in either one of the MSX joystick ports. Simply choose a device and press the OK button. These settings cannot yet be saved.


The MSX has many special key combinations for special characters or functions. This information is fully applicable with the built-in Basic editor, it's untested in MSX-DOS or other applications, though most of this should be applicable there too.

MSX keyboard layout
Special keys

MSX keyboard layout:

You can type many characters with the MSX, comparable to the PC ALT+[numpad-code] characters. The MSX has 4 keys that function as a control key; the Shift key, the Caps key, the Graph key, and the Code/Kana/Hangul key. Special characters can be typed with a combination of these keys.

The layout that is described here only applies to the MSX regions which are included by default: Dutch, Brazilian, Japanese, and Korean. Arabic, Russian, and other regions have a different keyboard layout. This layout is not the actual MSX keyboard layout: the [`] key and [\] key have been moved to the upper row to meet with PC standards. Some keys are empty; these combinations have no function or are the same as their parent.

The tables underneath show you how to generate special characters with key-combinations:

Dutch Brazilian Japanese Korean

Dutch MSX:

The Caps key toggles bigger sized alphabet characters.
The key on the bottom right, the Accent Mark key, is used to put an accent mark on a vowel. Hold an optional control key, press the Accent Mark and then press (optional Shift key and) a vowel key:
  • No control key: accent grave (`). Example: à.
  • Shift: accent acute (´). Example: á.
  • Code: accent circumflex (^). Example: â.
  • Shift + Code: umlaut / accent diæresis (¨). Example: ä

No key combination | Shift
Graph | Shift + Graph
Code | Shift + Code

Japanese MSX:

The Caps key toggles bigger sized alphabet characters in normal mode. The Kana key toggles between Japanese and normal mode; if the Caps key is OFF the MSX will be in Hiragana mode, otherwise it will be in Katakana mode.
The key on the bottom right is the MSX underscore key.

To be able to type in Kanji, you'll have to enter the Basic command CALL KANJI (doesn't work in MSX1 mode).

Normal mode | Normal mode & Shift
Hiragana mode | Hiragana mode & Shift
Katakana mode | Katakana mode & Shift
Graph

Brazilian MSX:

The Caps key toggles bigger sized alphabet characters.
The key on the bottom right is the MSX slash key ([/]).
You can put accent marks on characters by pressing a key combination followed by (optional Shift key and) an alphabet character:
  • Key to the right of [P] or Code + [/]: accent acute (´). Example: á.
  • Shift + key to the right of [P] or Shift + Code + [/]: accent grave (`). Example: à.
  • Key to the right of [L]: tilde (~). Example: ã.
  • Shift + key to the right of [L]: accent circumflex (^). Example: â.

No key combination | Shift
Graph | Shift + Graph
Code | Shift + Code

Korean MSX:

The Caps key toggles bigger sized alphabet characters in normal mode. The Hangul key toggles between Korean and normal mode.
The key on the bottom right is the MSX underscore key.

To be able to type in a bigger Hangul font, you'll have to enter the Basic command SCREEN 9 (doesn't work in MSX1 mode).

Normal mode | Normal mode & Shift
Hangul mode | Hangul mode & Shift
Graph

Special keys:

Some MSX keys have a special purpose, these are described here:

  • The Stop key is used to pause and resume a task. Example: if you use the dir command in MSX-DOS you can pause and resume the scrolling. When you press this key while holding the Ctrl key, the current task will be abruptly broken.
  • The Clr Home key is used to move the cursor to the top/left of the screen. If you press Shift + Clr Home the screen will be cleared.
  • The Ctrl key can be used to boot the MSX with only 1 diskdrive enabled. This will free some memory. To do this you need to hold this key while the MSX is booting, and release it after you hear the beep.
  • The Shift key can be used to boot the MSX with its diskdrives disabled. Use it in the same way as the Ctrl key.
  • The [1] key or the Ins key can be used to boot the MSX with MSX-DOS2 disabled. Use it in the same way as the Ctrl key. Use the [1] key for MSX-DOS 2.3 and up, and the Ins key for earlier versions.

Other special keys are the Caps key, the Tab key, the Ins key, the Del key, and the Backspace key, which have the same function as on a standard PC. The Select key, and the Escape key are used by various applications.


With NLMSX, you have the ability to build any MSX computer you like by editing the memory layout and its general hardware specifications. These settings as a whole is called a 'configuration'. Underneath you can see the configuration editor, with numbers on each part of the dialog. These are described underneath the picture. If you read those thoroughly, you should understand how to edit and build your own configurations.

to Edit Configurations - Available configurations:

A treeview of all available configurations. The whole directory structure starting from the 'Config' directory is searched for directories containing files named 'config.ini'. Each file represents a full configuration and the directory name serves as a group name or the configuration name. The top one is the configuration that is currently running.

To make a new configuration, you should make an empty file called 'config.ini' in a directory within the 'Config' directory. You can then edit the slots in NLMSX. This will be simplified in a future release of NLMSX.

The '_Default' group of configurations is the group that is released with NLMSX. Detailed information about those can be found in the Default Configurations section. You can study these too if you want to understand the MSX architecture more. If you want more configurations, you can download them at the plugins section at the NLMSX site, or be creative and create some, eg. a configuration called 'Zanac' that will start that game if you run it.

to Edit Configurations - Set as default configuration:

If you click on this button after choosing a non-current configuration, this will become the default configuration: NLMSX will start this when you run the executable.

to Edit Configurations - Slot editor:

The memory layout of the selected configuration can be seen here, with the following columns:
  • Crt: The cartridge number. You can insert a cartridge in the row where the 'Crt' column is not empty.
  • Slot: The mainslot or subslot number. An MSX can have up to 16 slots where memory types can be allocated. 2 or more of the same slot number can also be used to make multiple memory types per slot possible. It's not possible to have a subslot with the same number of a mainslot, or vice versa, eg. mainslot 3 and subslot 3-1.
  • Address: The location and size of where the memory type has been allocated in the Z80 addressing space. This can also be the result of the combination of the start address, image length, and image start parameters. A memory type can't exceed the 64KB addressing space, and it can't overlap a memory area if 2 or more slots with the same number are being used.
  • Type: The memory type.
  • Name: Parameter information about that memory type is listed here: The ROM filename, or the RAM size.

There are 3 buttons at the top-right of the slot editor:

New:
This will pop up a dialog:

Here you can add any slot to the current memory layout. To be able to make a series of subslot from a mainslot, you'll have to delete the mainslot first. The same applies to changing a group of subslots to a mainslot.

Edit:
To be able to edit the details of a selected slot, press this button. This can also be done by double clicking on the slot you want to edit. A dialog will pop up:

Here you specify the memory type. Parameters are described in the memory types section. The 'Cartridge Slot' checkbox means, when checked, that the selected slot is a cartridge slot. This will also fill the 'Crt' column.

Delete:
This will delete the selected slot.

to Edit Configurations - Z80 speed:

Change the Z80 speed. It can be overclocked with steps, to 2Ghz. Overclocking the Z80 will make disk-loading faster, but it can cause instabilities with some applications.

to Edit Configurations - R800 speed:

Change the R800 speed, which is 28.6Mhz by default. Like the Z80, it can also be clocked to other values.

to Edit Configurations - Videochip:

Change the videochip. Use the TMS9929A for a 50hz (PAL) MSX1, the TMS99x8A for a 60hz (NTSC) MSX2, the V9938 for any MSX2, and the V9958 for any MSX2+ or Turbo-R. You can switch the MSX1 on the fly from 50hz to 60hz and back too.

to Edit Configurations - Control buttons:

On the right of the main dialog you can see the following buttons:

OK:
Continues emulation if nothing has been changed to the selected configuration. Otherwise it asks to discard the changes and then continues emulation.

Cancel:
Discards all changes and closes the dialog without asking.

Save:
Saves all changes to the corresponding configuration file. This button is only available in a non-current configuration.

Apply To Emulation:
Applies all changes to the currently running emulation process. Changing or removing slots that are in use will most likely reset the MSX. Don't change RAM slots. This button is only available in the current configuration.

Run This Configuration:
Starts the selected configuration immediately if nothing has been changed to it. Otherwise it asks to discard the changes and then starts the selected configuration. This button is only available in a non-current configuration.


NLMSX is released with several default configurations comprising all classes of MSX computers in the most popular regions. These are custom built MSX computers with a lot of add-on ROMs and memory. Underneath are their general hardware specifications and memory layouts.

MSX (Dutch):

This configuration is based on the common Dutch MSX1 computers.

General specifications:
  • CPU: 3.58 Mhz,
  • Video: TMS9929A, PAL (50hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | - | Dutch MSX1 Bios ROM | Dutch MSX1 Basic ROM |  |
1 | - | Cart. A | Cart. A | Cart. A | Cart. A
2 | - | Cart. B | Cart. B / TMS279x Disk ROM | Cart. B / TMS279x Disk ROM | Cart. B
3 | - | RAM | RAM | RAM | RAM

MSX Korean:

This configuration is based on the Daewoo DPC-200.

General specifications:
  • CPU: 3.58 Mhz,
  • Video: TMS99x8A, NTSC (60hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | - | Kor. MSX1 Bios ROM | Kor. MSX1 Basic ROM | MSX1 Hangul Input ROM (8KB) |
1 | - | Cart. A | Cart. A | Cart. A | Cart. A
2 | - | RAM | RAM | RAM | RAM
3 | - | Cart. B | Cart. B / TMS279x Disk ROM | Cart. B / TMS279x Disk ROM | Cart. B

MSX Japanese:

This configuration is based on the National CF-3000.

General specifications:
  • CPU: 3.58 Mhz,
  • Video: TMS99x8A, NTSC (60hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | - | Jap. MSX1 Bios ROM | Jap. MSX1 Basic ROM |  |
1 | - | RAM | RAM | RAM | RAM
2 | - | Cart. A | Cart. A | Cart. A | Cart. A
3 | - | Cart. B | Cart. B / TMS279x Disk ROM | Cart. B / TMS279x Disk ROM | Cart. B

MSX Brazilian:

This configuration is based on the Gradiente Expert v1.1. A port based diskcontroller has not yet been emulated, so the international disk ROM is being used.

General specifications:
  • CPU: 3.58 Mhz,
  • Video: TMS99x8A, NTSC (60hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | - | Br. MSX1 Bios ROM v1.1 | Br. MSX1 Basic ROM v1.1 |  |
1 | - | Cart. A | Cart. A | Cart. A | Cart. A
2 | - | Cart. B | Cart. B / TMS279x Disk ROM | Cart. B / TMS279x Disk ROM | Cart. B
3 | - | RAM | RAM | RAM | RAM

MSX2 (Dutch):

This configuration is based on the newest Dutch MSX2 computers.

General specifications:
  • CPU: 3.58 Mhz,
  • Video: V9938, standard PAL (50hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | - | Dutch MSX2 Bios ROM v2.1 | Dutch MSX2 Basic ROM v2.1 |  |
1 | - | Cart. A | Cart. A | Cart. A | Cart. A
2 | - | Cart. B | Cart. B / FM PAC ROM (MSX Music Basic + SRAM) | Cart. B | Cart. B
3 | 0 | Dutch MSX2 ext. Basic ROM v2.1 |  |  |
 | 2 | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total)
 | 3 |  | TMS279x Disk ROM | TMS279x Disk ROM |

MSX2 Korean:

This configuration is based on the Daewoo CPC-400.

General specifications:
  • CPU: 3.58 Mhz,
  • Video: V9938, standard NTSC (60hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | 0 | Kor. MSX2 Bios ROM | Kor. MSX2 Basic ROM |  |
 | 1 |  | MSX2 Hangul Input ROM | MSX2 Hangul Input ROM |
 | 2 | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total)
 | 3 | Kor. MSX2 ext. Basic ROM | Hangul BIOS ROM |  |
1 | - | Cart. A | Cart. A | Cart. A | Cart. A
2 | - |  | MB8877A Disk ROM | MB8877A Disk ROM |
3 | - | Cart. B | Cart. B / FM PAC ROM (MSX Music Basic + SRAM) | Cart. B | Cart. B

MSX2 Japanese:

This configuration is based on the common Japanese MSX2 computers.

General specifications:
  • CPU: 3.58 Mhz,
  • Video: V9938, standard NTSC (60hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | - | Jap. MSX2 Bios ROM | Jap. MSX2 Basic ROM |  |
1 | - | Cart. A | Cart. A | Cart. A | Cart. A
2 | - | Cart. B | Cart. B / FM PAC ROM (MSX Music Basic + SRAM) | Cart. B | Cart. B
3 | 0 | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total)
 | 1 | Jap. MSX2 ext. Basic ROM | Kanji Basic ROM | Kanji Basic ROM |
 | 2 |  | TMS279x Disk ROM | TMS279x Disk ROM |

MSX2+ (Japanese):

This configuration is based on the Panasonic FS-A1WSX / Sony HB-F1XV.

General specifications:
  • CPU: 3.58 Mhz,
  • Video: V9958, standard NTSC (60hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | 0 | Jap. MSX2+ Bios ROM | Jap. MSX2+ Basic ROM |  |
 | 2 |  | Jap. MSX2+ Music Basic ROM. |  |
1 | - | Cart. A | Cart. A | Cart. A | Cart. A
2 | - | Cart. B | Cart. B / PAC cart. (SRAM only) | Cart. B | Cart. B
3 | 0 | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total)
 | 1 | Jap. MSX2+ ext. Basic ROM | Kanji Basic ROM | Kanji Basic ROM |
 | 2 |  | TMS279x Disk ROM | TMS279x Disk ROM |
 | 3 |  | Kun Basic ROM v2.0 |  |

Turbo-R (Japanese):

This configuration is based on the Panasonic FS-A1GT.

General specifications:
  • CPU: 3.58 Mhz, 28.64 Mhz in Turbo mode,
  • Video: V9958, standard NTSC (60hz).

Memory Layout:

page > |  | 0000-3FFF | 4000-7FFF | 8000-BFFF | C000-FFFF
Slot v | Ext. slot v | 0 | 1 | 2 | 3
0 | 0 | FSA1GT Bios ROM v4.1 | FSA1GT Basic ROM v4.1 |  |
 | 2 |  | FSA1GT Music Basic ROM v4.1 |  |
 | 3 |  | FSA1GT logo ROM |  |
1 | - | Cart. A | Cart. A | Cart. A | Cart. A
2 | - | Cart. B | Cart. B / PAC cart. (SRAM only) | Cart. B | Cart. B
3 | 0 | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total) | Memory Mapper (2MB total)
 | 1 | FSA1GT ext. Basic ROM v4.1 | Kanji Basic ROM | Kanji Basic ROM |
 | 2 | TC8566AF MSX-DOS v2.31 ROM | TC8566AF MSX-DOS v2.31 ROM | TC8566AF MSX-DOS v2.31 ROM | TC8566AF MSX-DOS v2.31 ROM


Here you can read all about the memory types supported by NLMSX. Information with an orange background colour implies that it's meant for the command line.

Memory Types
Parameters

Memory Types:

Unfortunately, MSX ROMs don't have any header that could provide emulators with vital information. To make life easier, NLMSX is released with a ROM database, located in the 'DB' directory. It covers many common ROMs that are known to be correct. If the loaded ROM has the same checksum as one in the database, NLMSX will automatically pick the memory type for that ROM. If a ROM is not in this database, the user has to specify the memory type for it. Small ROMs are defaulted to 64 KByte Mirrored, and others are defaulted to Konami5 SCC.

Underneath are the memory types supported by NLMSX. Some of these have extra hardware that will be emulated once it gets inserted in a slot, eg. the SCC, or a diskcontroller. Each memory type has parameters which optionally can be specified.

If you want to load a game ROM, the most common ones to use are 64 KByte Mirrored for small ROMs, and Konami4 no SCC, Konami5 SCC, ASCII 8KByte, or ASCII 16KByte for MegaROMs (sized 128KB or larger).

Memory Type | /mt | Description
Undefined (0) | 0 | An empty slot.
Normal ROM (1) 1 A normal ROM; this covers almost all ROMs equal to or smaller than 64KB. The most common start addresses are (in order of popularity) 0x4000, 0x8000, and 0x0000.
Parameters:
  • ROM Image
  • Image Start
  • Image Length
  • Start Address
Normal RAM (2) 2 A non memory mapped RAM area. Expansion RAM is emulated too.
Parameters:
  • Start Address
  • RAM Size
Memory Mapper (3) 3 A memory mapped RAM area. Memory mapper expansions are emulated too.
Parameters:
  • Mapper Size
Disk Controller for TMS279x (4) 4 Use this type for the international Sanyo / Philips disk ROM. Multiple controllers can be emulated to support more than 2 diskdrives.
Parameters:
  • ROM Image
  • Image Start
  • Image Length
MSX-DOS2 ROM (5) 5 The old MSX-DOS2 ROM mapper which only supports MSX-DOS2 ROMs with a switch address of 0x6000. It has still been included for legacy configurations. Use the Disk Controller for TC8566AF for other ones.
Parameters:
  • ROM Image
Konami4 no SCC (6) 6 A Konami MegaROM cartridge with memory mapped I/O at the addresses 0x4000, 0x6000, 0x8000 and 0xA000. This type is used for Konami MegaROMs that don't have an SCC. Some bad dumped ASCII MegaROMs might also work with this type.
Parameters:
  • ROM Image
Konami5 SCC (7) 7 A Konami MegaROM cartridge with memory mapped I/O at the addresses 0x5000, 0x7000, 0x9000 and 0xB000. This type is used for Konami MegaROMs that do have an SCC. If no ROM image is given, the SCC will still be emulated and can be used for other applications, like Martos' SCC disk. Multiple SCCs can be emulated too.
Parameters:
  • ROM Image
Konami5 SCC+ (8) 8 This type is the same as Konami5 SCC, except that it emulates an SCC+, and above that, a 128KB RAM extension. It is used for eg. The Snatcher, SD Snatcher, and the Konami Game Collections.
Parameters:
  • ROM Image
ASCII 8 KByte (9) 9 An ASCII MegaROM cartridge with memory mapped I/O at the addresses 0x6000, 0x6800, 0x7000, and 0x7800. This type is used for many non Konami MegaROMs.
Parameters:
  • ROM Image
ASCII 16 KByte (a) 10 An ASCII MegaROM cartridge with memory mapped I/O at the addresses 0x6000 and 0x7000. This type is used for some non Konami MegaROMs.
Parameters:
  • ROM Image
FMPAC (SRAM) (b) 11 The FM PAC ROM (MSX-Music + SRAM), supporting 8KB SRAM. If no ROM image is given, only the SRAM part will work, similar to the PAC cartridge. The SRAM is saved as 'fmpac.dat' in the SRAM directory.
Parameters:
  • ROM Image
ASCII 8 KByte with SRAM (c) 12 This type is the same as ASCII 8 KByte, except that the cartridge uses SRAM. Use it for eg. Xanadu. The SRAM is saved as the gamename in the SRAM directory.
Parameters:
  • ROM Image
ASCII 16 KByte with SRAM (d) 13 This type is the same as ASCII 16 KByte, except that the cartridge uses SRAM. Use it for eg. Hydlide 2. The SRAM is saved as the gamename in the SRAM directory.
Parameters:
  • ROM Image
Panasonic 8 KByte with SRAM (e) 14 A Panasonic 8 Kbyte ROM, used as firmware ROM in many newer Panasonic MSX computers, eg. the FSA1GT. The SRAM is saved in the directory of the configuration which uses such a ROM.
Parameters:
  • ROM Image
Disk Controller for TC8566AF (f) 15 Use this type for the later Panasonic disk ROMs and all the MSX-DOS2 ROM types. Multiple controllers can be emulated to support more than 2 diskdrives.
Parameters:
  • ROM Image
Disk Controller for MB8877A (10) 16 Use this type for the less common MB8877A disk ROM. Multiple controllers can be emulated to support more than 2 diskdrives.
Parameters:
  • ROM Image
64 KByte Mirrored (11) 17 This type covers the same memory area as with the Normal ROM type, only the ROM contents is mirrored all over the 64KB space. All normal game ROMs sized smaller than or equal to 64KB should work with this memory type, without having to experiment with start addresses. Some ROMs (Beamrider, Crazy Train, River Raid) that expect to be mirrored, require this memory type.
Parameters:
  • ROM Image
Cross Blaim (12) 18 Use this type for the game Cross Blaim.
Parameters:
  • ROM Image
Harry Fox Yki No Maoh (13) 19 Use this type for the game Harry Fox Yki No Maoh.
Parameters:
  • ROM Image
R-Type (14) 20 Use this type for the original (not cracked) version of R-Type.
Parameters:
  • ROM Image
Super Lode Runner (15) 21 Use this type for the original (not cracked) version of Super Lode Runner.
Parameters:
  • ROM Image
Korean 64/80 in 1 (16) 22 This type can be used for the pirate ROMs Korean 64 in 1 and Korean 80 in 1.
Parameters:
  • ROM Image
Korean 90 in 1 (17) 23 This type can be used for the pirate ROM Korean 90 in 1.
Parameters:
  • ROM Image
Korean 126 in 1 (18) 24 This type can be used for the pirate ROM Korean 126 in 1.
Parameters:
  • ROM Image
Holy Qu'ran (19) 25 Use this type for the Holy Qu'ran application. It will only work on an Arabic MSX2 configuration.
Parameters:
  • ROM Image

Parameters:

These are the parameters that can be specified with the memory type. Just to clarify, '0x', followed by a number, means that this number is hexadecimal. Decimal numbers can also be used by omitting the '0x', eg. 0x4000=16384.

Parameter | Description
ROM Image | /ri | The path and filename of the image. If it contains spaces, put it between quotes ("). If there is no absolute pathname, then the position is relative to the position of the NLMSX directory.
Start Address | /sa | The start address within the Z80 addressing space. This can be any value from 0x0000 to 0xffff, but most common is the start of one of the 16KB pages: 0x0000, 0x4000, 0x8000, or 0xc000. If this parameter is omitted, its value will be read as 0x0.
Image Start | /is | The starting position of the first byte of the file to be read. If you use this together with the Image Length parameter, you can make NLMSX read any byte block from a file. Leave this value at 0x0 when loading normal ROM games, for 'BSAVE' games use 0x7. If this parameter is omitted, its value will be read as 0x0.
Image Length | /il | The number of bytes of the file to be read. If this value is 0x0, all bytes starting from the optionally specified image start byte will be read. If this parameter is omitted, its value will be read as 0x0.
Mapper Size /ms The size of the memory mapper.
Possible sizes:
  • 64KB
  • 128KB
  • 256KB
  • 512KB
  • 1MB
  • 2MB
  • 4MB
 0
1
2
3
4
5
6
RAM Size /rs The size of the RAM area.
Possible sizes:
  • 8KB
  • 16KB
  • 32KB
  • 48KB
  • 64KB
 0x2000
0x4000
0x8000
0xc000
0x10000


These frequently asked questions may help you find the solution to your problem.

Questions:

1. When will the next version come out ?
2. Can I please have the source code ?
3. The framerate is constant, but NLMSX is too slow / too fast.
4. NLMSX runs too slow on my computer. How do I speed it up ?
5. Turbo-R emulation is slow. Please fix it.
6. NLMSX has speed jumps and the sound crackles sometimes.
7. [insert game name] doesn't work (correctly) on the emulator.
8. Many disks don't work with the Turbo-R. What's wrong ?
9. Will you implement [insert feature] ? Please fix [insert bug].
10. What is the action button in [insert game name] ?
11. Sometimes the action button in [insert game name] doesn't work.
12. How do I load a ROM ?
13. How do I load a disk ?
14. How do I run a .BAS / .LDR / .BIN / .COM file ?
15. This disk image doesn't work with NLMSX, it does work in other emulators.
16. I'm lazy. How can I run games fast and easy ?
17. Where can I download games ?
18. The command line parameters for cartridges have no effect.
19. Where are DriveA.dsk and DriveB.dsk ?
20. I'm having problems running NLMSX under NT4.
21. I don't speak English (well), but I want to know more about NLMSX.
22. This FAQ hasn't helped me. What do I do now ?

Answers:

to questions 1. When will the next version come out ?

The next version will come out when it's ready. Releases are usually on intervals of several weeks. If you want to test a beta version, send a mail.

to questions 2. Can I please have the source code ?

No. The source code of NLMSX will not be released when the emulator is still actively being worked on.

to questions 3. The framerate is constant, but NLMSX is too slow / too fast.

A few things could be the cause of it:
  • When running an MSX1 configuration without sound, the framerate will be 30fps. This is a bug and can be avoided by running an MSX2, MSX2+ or Turbo-R configuration without sound, or by enabling the sound.
  • If the framerate is 50fps and you think NLMSX runs too slow, run it on a 60hz (NTSC) MSX. If the framerate is 60fps and you think NLMSX runs too fast, run it on a 50hz (PAL) MSX.
  • Some games seem really fast, or suffer from slowdowns. Examples are Aleste and Arsene Lupin. Its speed is true to the real MSX, as it has been tested.
  • Disk emulation is slow, its speed is true to the real MSX. To speed this up, overclock the Z80.

to questions 4. NLMSX runs too slow on my computer. How do I speed it up ?

There are several ways to speed up NLMSX. Enabling all of these will run NLMSX as fast as it can:
  • Turn on scanlines (File -> Preferences).
  • Enable frameskipping (File -> Preferences).
  • Turn off sound (File -> Preferences).
  • Disconnect all devices from the joystick ports (Edit -> Ports).
  • Set your colour depth to 16 bit in the Windows display preferences.

to questions 5. Turbo-R emulation is slow. Please fix it.

Turbo-R emulation is indeed slow. Optimalisations are planned to fix this. You can always try to speed up NLMSX as stated in answer 4. You can also try to underclock the R800 to any value you wish. This may make some Turbo-R applications run slower, but it makes NLMSX run faster.

to questions 6. NLMSX has speed jumps and the sound crackles sometimes.

A few things could be the cause of this problem:
  • If you have disabled display synchronisation, enable it.
  • Your computer might be too slow, check answer 4 on how to speed it up.
  • NLMSX is very sensitive to background processes, such as seti@home. Disable them.
  • If you're using Windows XP or Windows 2000, try first to get the newest drivers for your soundcard. If that doesn't fix it, try reducing the hardware acceleration to Basic. Go to the 'Control Panel -> Sounds and Multimedia -> Audio -> Advanced' to change this.

to questions 7. [insert game name] doesn't work (correctly) on the emulator.

To reassure that the game you can't get working is indeed a game that doesn't work correctly in NLMSX, check these points:
  • Run MSX1 games in an MSX1 configuration, MSX2 games in an MSX2 configuration, etc. Don't run every game in the most powerful configuration. If you're sure that the game is an MSX1 game, and it doesn't work in an MSX1 configuration, try it in an MSX2 configuration. Maybe the game is using some MSX2 functions.
  • If it's a ROM game, make sure that you're running it with the correct memory type, with the correct parameters.
  • Several disk games require the MSX to be in a specific status at startup (eg. more available memory). This can be done by holding a certain key during bootup.
  • If the game controls don't work, disconnect all joystick port devices. Usually, disconnecting the mouse is sufficient.
  • Some games refuse to run when the RAM area is in a subslot, eg. Devil's Heaven, Galaxian, Hustle Chummy. Run these in a configuration without subslots.

Some games do have issues with NLMSX. Some can be fixed, some can't:
  • Some ROM types are not yet correctly emulated, eg. Konami Game Master 2, Playball.
  • Games like Eindeloos, and many demo's (Unknown Reality, Anma, etc.) don't work correctly because special VDP tricks are being used. They will work fine after these get implemented in NLMSX.
  • Some games have problems with the refresh rate. Run Gakuen Monogatari - High School Story, Hacker, Hang On, Super Cooks, Undeadline on a 50hz (PAL) MSX, and run Vampire Killer on a 60hz (NTSC) MSX.
  • Hype, Sorcery, Labyrinth, Mirai The Future, Predator, crash or lock up for an unknown reason.
  • Rune Master 2 locks up at the titlescreen. To prevent this, press the spacebar twice at that screen.
  • Screen 3 doesn't work. This affects eg. the Bandwagon demo's.
  • Some games have timing problems, which can be fixed by changing the Z80/R800 speed. Run Alpha Roid, Space Manbow, Eindeloos at 14Mhz. Run Illusion City at 3.58Mhz to fix the glitches (eg. no graphics at the start of the intro), but this will cause the game to run really slow.
  • Some VDP commands run at the incorrect speed. This results in Space Manbow and SD Snatcher intro music to stop too early.

to questions 8. Many disks don't work with the Turbo-R. What's wrong ?

Hold the 1 key before booting the Turbo-R, and release it after the beep. This will disable DOS2, and will make eg. Illusion City work. Also note this point.

Or if you're trying to run .COM files from DOS1 formatted disks, which will give a 'wrong version of MSX-DOS' error, try to set the 'expert' variable: type 'SET EXPERT ON' from the DOS2 command promt. This implies that DOS 2.31 now knows you're an expert user who doesn't switch disks during reading- or writing operations. If you do that anyway, your disk image may break.

to questions 9. Will you implement [insert feature] ? Please fix [insert bug].

NLMSX is constantly in development, so bugs will be fixed, and features will be added with every release. Check the todo list, if it's not there, you can suggest it on the forum.

to questions 10. What is the action button in [insert game name] ?

First try to use the joypad or mouse. Then try the common game keys: arrow keys for moving around, and spacebar or Graph as action buttons. The function keys and Select and Return are also often used.

Some game manufacturers assigned their own keys as default action buttons:
  • Compile games (Zanac, Aleste, Rune Master): Shift, Z, or spacebar.
  • Konami games (Nemesis, Metal Gear): spacebar, N or M (ducking in Metal Gear 2 is spacebar+N).
  • Falcom games (Ys, Dragon Slayer): X, C, or Shift, spacebar in older games.
  • Microcabin games (Xak, Illusion City): X, C.

to questions 11. Sometimes the action button in [insert game name] doesn't work.

Many PC keyboards don't allow you to press some key combinations, eg. pressing 2 arrow keys and the spacebar at the same time.

to questions 12. How do I load a ROM ?

Go here.

to questions 13. How do I load a disk ?

Go here.

to questions 14. How do I run a .BAS / .LDR / .BIN / .COM file ?

You'll have to put those files on a disk image. There are several tools that can do it for you, eg. Disk Manager by Rudolf Lechleitner (author of RuMSX). After you finished that, you can run those files with the emulated MSX. Visit The Ultimate MSX FAQ to read how to do that.

to questions 15. This disk image doesn't work with NLMSX, it does work in other emulators.

It might be that the disk header is broken. Open the disk image with a hex editor, and look at byte 0x15. If it's 0xF9, it means that the disk is double sided, if it's 0xF8, it means that the disk is single sided. Set it to the correct value if eg. the header says it's a double sided disk, but you know for sure that it's a single sided disk.

to questions 16. I'm lazy. How can I run games fast and easy ?

Either use a frontend, there's a great frontend called Visual MSX, created by Ciro Alfredo Consentino. Or use the command line <file> parameter. To do this easily, just doubleclick on a ROM image from the Windows Explorer, browse to the NLMSX executable, and check that it should always run that program for that filetype. You can do the same with disk images.

to questions 17. Where can I download games ?

Check the links.

to questions 18. The command line parameters for cartridges have no effect.

Make sure that the configuration that you're trying to run has a cartridge slot.

to questions 19. Where are DriveA.dsk and DriveB.dsk ?

They have been removed since NLMSX 0.46. If you want them back, unzip dsks.zip to the NLMSX directory, and create a Windows shortcut for NLMSX with the commandline parameters /drivea and /driveb to insert the disks at startup.

to questions 20. I'm having problems running NLMSX under NT4.

If the sound doesn't work, try to use the DSOUND.DLL from Windows 2000.

Currently, the inputs are not functional. This will be fixed in a later release.

to questions 21. I don't speak English (well), but I want to know more about NLMSX.

The user manual has been translated to Spanish, Portuguese, and Dutch. You can download translations at the NLMSX website.

And if you're French speaking, check Benoît Delvaux' site.

to questions 22. This FAQ hasn't helped me. What do I do now ?

You cry.

Alternatively, visit The Ultimate MSX FAQ. If the information you're looking for isn't there either, and you are SURE that it's not in this user manual, post your problem on the forum.


 u-m-m, y-o-u-'-r-e n-o-t s-u-p-p-o-s-e-d t-o b-e h-e-r-e :-P

a


Set as default configuration


Frames per second