From GameBrew

AuthorAkop Karapetyan, DelayedQuasar
Last Updated2018/12/31

fMSX PSP is an an emulator for the MSX Home Computer on Sony PSP. It is written in C and uses GU (Graphical Utility toolkit) for rendering by Akop Karapetyan (aka Uberjack).

It is a port of fMSX emulator to the Sony PlayStation Portable platform. Originally by Akop Karapetyan and updated to the latest fMSX version 5.4 by DelayedQuasar.


  • Load rom from ZIP files.
  • Virtual keyboard.
  • Custom key mappings.
  • Screen size adjustment.
  • CPU clock frequency adjustment.
  • Show FPS.
  • Screenshots.
  • Save states.
  • Turbo mode.
  • Other miscellaneous options.


Unzip into /PSP/GAME/ folder on the Memory Stick.

fMSX PSP supports cartridge and disk loading from ZIP files. System ROM’s may reside in a SYSTEM.ZIP file in the same folder as EBOOT.PBP. PAINTER.ROM, or MSXDOS2.ROM may also be zipped, but must reside in separate ZIP files (FMPAC.ZIP, MSXDOS2.ZIP, etc).

fMSX PSP will attempt to load the three automatically if free cartridge slots are available. All other game ROM files must reside in separate ZIP files.

User guide

Virtual keyboard

When the virtual keyboard is on, you can toggle the sticky keys feature (specifically for Shift and Ctrl).

This allows Shift and Ctrl all to be held down at the same time while the user presses another virtual button.

Tap the Circle button and the selected virtual button remains held down and press again will release the virtual button.

Button configuration

By default, changes are not retained after button mapping is modified.

Please make sure to save (with Circle button) after desired mapping is configured.

Disk Writing

Since v3.3.25, reads/writes to the MSX disk need to be explicitly committed to Memory Stick.

This can either be done by loading a new disk in the same slot via the System tab (not the Game tab), or by ejecting the disk.

Either way, you will be asked if you want to commit the changes to the image before ejecting or loading another image.

This only applies to uncompressed disk images, ZIP compressed files cannot be updated.

Note that before committing changes to storage, make sure the MSX floppy drive is not in use, otherwise you may damage the disk image.


fMSX PSP uses the PSG, SCC and MSXMUSIC sound emulation engine by Mitsutaka Okazaki and MSXAUDIO emulation engine by Tatsuyuki Satoh.

While PSG and SCC emulation is always enabled, MSXMUSIC and MSXAUDIO are disabled by default, as they tax the PSP and are not used by most MSX programs/games.

The emulator can run at full speed (at 333MHz, without V-Sync) with only one of MSXAUDIO or MSXMUSIC enabled.

With both enabled, emulator performance is significantly reduced. It is recommended keeping MSXAUDIO and MSXMUSIC emulation disabled, enabling it only when necessary.


It is suggested to keep the hi-res rendering engine disabled, unless you really need more detail.

To see the actual image, set Display Size in options to Actual size, though this will only show the first 480 pixels, due to the PSP screen limitation.

Multi-Volume Disk Images

fMSX PSP can load multi-volume games (like Snatcher) from a single ZIP file.

To load such a game, store all files in the same ZIP. It is important that the archived files are numbered 1-0, with 0 representing the 10th volume (archiving sequence is not important).

fMSX PSP will attempt to load the first disk in the sequence. As an example, a ZIP file could contain the following disk images


To switch disks mid-game, go to control menu and assign buttons for the Special: Previous volume or Special: Next volume actions.

When a Volume Switch button is pressed, and the next disk image in the sequence is found, an icon will appear with the number of the volume loaded.

Multi-volume files do not have to be ZIP-compressed for the Volume Switch feature to work, you can use uncompressed DSK files, as long as they’re named as described above.

Note that changes to the disk image will not be saved when using this feature.


Q. Why do I not hear MSX Music/MSX Audio sound? Why is there no music in Aleste/FMPAC-based games?

For FMPAC/MSX Music, enable MSX Music emulation in System Settings.

For MSX Audio, enable MSX Audio emulation. This will slow down emulation noticeably, so you may also need to increase CPU frequency and disable vertical sync.

Alternatively, you can recompile the emulator with the custom engines disabled, to use Marat’s faster (though less accurate) FMPAC emulation engine. Check fMSX.mak for instructions.

Q. Why does the emulator refuse to load a saved game?

Possibly due to either one of the following:

  • Save state format has changed between versions.
  • Currently set RAM/VRAM sizes do not match with RAM/VRAM settings set when the state was saved.
  • System model (MSX1/2/2+) currently set does not match the system model set when the state was saved.
  • System ROM’s currently in use do not match to those used when the state was saved (e.g. save state was made with Yamaha YIS ROM’s, while the system ROM’s currently in use are Phillips).

It can also be any combination of the above. For all but the first reason, resetting the configuration so that it matches the configuration when state was saved will do the trick.



Analog - Joystick Up/Down/Left/Right

D-Pad - Keyboard Up/Down/Left/Right

Square - Joystick button A

Cross - Joystick button B

Circle - Spacebar

R - Displays the virtual keyboard, for as long as the button is held

L+R - Return to emulator menu

Select+L - Selects previous disk volume (for multi-volume disk sets)

Select+R - Selects next disk volume (for multi-volume disk sets)

Start - F1

Virtual keyboard:

D-Pad - Select virtual button

Square - Press a virtual button

Circle - Hold/release sticky virtual button (e.g. Shift and Ctrl)

Triangle - Unstick all stuck virtual buttons

Button configuration:

Circle - Save changes

Square - Set mapping as the default mapping

Triangle - Load the default mappings






v5.4.2 2018/12/31 (by DelayedQuasar)

  • Updated to fMSX version 5.4 (support for MX1, MX2 roms, ...).
  • Fixed bugs (zip loading, CARTS.SHA file loading, screen glitches, ...).

v3.5.41 2010/03/17

  • Fixed ‘Button Mode’ (US/JP) switch, so that it will correctly initialize on startup.

v3.5.40 2010/03/01

  • Improved saved state format – will automatically switch to appropriate system settings.
  • PSPLIB updated to latest version.
  • Images are now saved under PSP/PHOTOS/fMSX PSP.
  • Virtual keyboard updated, option for “toggle display” mode.
  • Screenshot previews in file browser.

v3.5.35 2008/06/29

  • Bugfix – many games, especially MegaROM games did not load correctly in the previous version (thanks Victor).
  • Added Fast Forward button mapping – while disabled by default, you can map any button to fast-forward emulation in the Controls menu.
  • Custom mapper types can now be embedded in source code. This version includes built-in support for Zanac Ex and Mon Mon Monster. Contact me if you’d like to add additional mappings.

v3.5.3 2008/06/22

  • Games/applications that require MSX Audio/MSX Music will no longer crash the emulator if either is disabled in System settings – there will simply be no Y2413/YM8950 audio (PSG and SCC will still render as usual, however).
  • ROM type settings are now saved between sessions – up to 500 different ROM’s can be tracked by CRC32 value. This adds a slight loading delay when the emulator starts up, as well as a saving delay when the emulator exits (if any changes are made during the session).

v3.5.2 2008/05/30

  • FMPAC/MSX Music bugfix — corrected MSX Music/MSX Audio labeling in System settings – MSX Music now correctly refers to FMPAC/YM2413 chip; MSX Audio refers to Y8950 chip. If the emulator was previously freezing with FMPAC audio, double-check to make sure MSX Music is enabled (disable MSX Audio to gain some extra speed) and try again.

v3.5.1 2008/02/29

  • PSP version brought up to par with Marat’s official version.
  • Sound should now function correctly following a state load (in previous versions, sound would often stop).
  • MSX MUSIC bug – FMPAC ROM is loaded correctly (though still functions incorrectly, see next release).
  • When switching games, latest save state will be automatically highlighted.

v3.4.5 2007/11/05

  • MSXMUSIC and MSXAUDIO emulation can now be toggled on and off at any time.
  • FDD (Floppy Disk Drive) activity indicator – displays an icon whenever the virtual floppy drive is busy.
  • Optional (and discouraged) hi-resolution renderer for screen modes 6, 7 and text-80.

v3.4.1 2007/10/01

  • fMSX upgraded to version 3.4.
  • Changes include fixes to the Z80 CPU emulation.

v3.3.25 2007/08/23

  • This update adds the ability to write changes to (uncompressed) disk images (see section on Disk Writing in the documentation for details and warnings).

v3.3.2 2007/07/24

  • 60% increase in rendering speed—MSX2 titles run at 100% speed at 222MHz.
  • Fixed buffer overflow error affecting units without a battery (thanks to Alpha Beta for tracking it down).

v3.3.1 2007/06/17

  • Virtual keyboard improvements. The virtual keyboard now requires an external file – ‘msx.lyt’ in the emulator directory—the file contains keyboard layout information.
  • fMSX updated to version 3.3.
  • Lots of minor bug fixes.

v3.2.1 2007/06/04

  • Added menu navigation options – select from US PSP navigation (X confirms, O cancels) or Japanese PSP navigation (O confirms, X cancels—also used by most homebrew emulators).
  • Added RAM/VRAM adjustment options.
  • Added HBlank/VBlank period selection (PAL/NTSC).
  • Added MSX model selection (MSX1, MSX2, MSX2+).
  • Improved accuracy of frames-per-second counter.
  • User interface improvements.
  • fMSX updated to version 3.2.
  • Rendering speed increase, switched to 15bit color (these mostly affect menu rendering).
  • Various bug fixes.

v3.1.3 2007/05/05

  • Support for multi-volume disk images – multiple disk images per ZIP file and in-game volume switching.
  • Improved virtual keyboard navigation, rendering speed increase.
  • System ROM’s can be stored in a single ZIP file in the application’s directory.
  • Integrated zipped ROM and DSK file support (fast loading from ZIP files).
  • PSG/SCC sound emulation engine by Mitsutaka Okazaki.
  • Approximately 18% gain in rendering speed.
  • Frames-per-second counter.
  • PAL (50Hz) timing.
  • Various small improvements and bugfixes.

v3.1.2 2007/04/24

  • Added support for cartridge type selection in the System menu. This adds support for games like Zanac Ex, which are not detected correctly.
  • Preliminary ZIP file support. Emulator will load ROM or DSK files from a ZIP file, provided there’s only a single compressed file per ZIP. System ROMs must still be uncompressed (or GZip compressed).
  • GZip file support – emulator will load cartridges and disk images from .gz compressed files. Save states are also much smaller in size.
  • GUI changes, wording changes.

v3.1.1 2007/04/20

  • Initial release.


  • Marat Fayzullin - fMSX.
  • Simon Tatham - fixed.fd font on which the emulator’s font is based.
  • Gilles Vollant - Minizip library.
  • Vincent van Dam - fMSX SDL (code dealing with sound emulation and high-resolution rendering).
  • Mitsutaka Okazaki - PSG/SCC/MSXMUSIC sound emulation engine.
  • Tatsuyuki Satoh - MSXAUDIO sound emulation engine.
  • Ruka - PNG saving/loading code.


  • fMSX SDL - Vincent van Dam.
  • PSPMSX - zx81.
  • NesterJ - Ruka.
  • Snes9XTYL - YoyoFR, Thunder, Laxer.
  • (CPS1/CPS2/MVS)PSP - NJ.
  • PSPSDK examples.

Special Thanks:

  • Marat Fayzullin for his prompt responses.
  • Authors of SNES9XTYL, DGEN for PSP and [CPSx|MVS]PSP emulators.
  • jburton of forums for the helpful feedback.

External links