Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
    About
    Library
    Manuals
    Options
    Photos
    Projects
    Repairs
    Software
    Tools
      Development
          Dev. Corner
          EXEROM
          Resources
          SDCC
          Z88DK
      Web Tools
    User Groups
    Video Wall
Memotech CP/M
Atari ST
Commodore Amiga
PDAs
DEC 3000 AXP
OpenVMS
Raspberry Pi

 

 
 
 

The Memotech MTX Series

Memotech Software Development

EXEROM - MSX Games ROM Loader

by Timo Soilamaa

 

Timo Soilamaa has developed EXEROM - a loader that allows unmodified MSX Games ROM to run on the MTX !

EXEROM started life as a MSX ROM loader for Spectravideo computers, including the SV-328. You can read Timo's (Nyytikki's) decryption of what the loader does and some details of its inner workings in this thread on the msx.org website.

Despite being a very interesting and novel approach to porting software from one platform to another, the latest version of the loader didn't get much attention from the Spectravideo community, so Timo took his code and ported it to the MTX - influenced no doubt by the higher class of user to be found in the MTX community !

In Timo's words. . . .

"At the heart of this project there is custom version of the open source C-BIOS that implements MSX BIOS calls. Naturally some of them like keyboard input etc. I have completely rewritten for MTX.

On top of that there is this home made "self aware, self modifying artificial intelligence". The AI is used to find the correct places to patch the program. The idea is that the AI is pretty much emulating my own thoughts about Z80 code running on the MSX platform.

For example, if the code in memory looks like this:

LD BC,#387
LD DE,#4421
LD B,A

The AI thinks "hmm... this looks suspicious... The B-register is loaded even though it already had an unused value" By itself, this is not a strong statement against the code validity, but the AI uses fuzzy logic and evaluates the "big picture", so once it has a pile of similar small thoughts, it combines them to form a complete on opinion whether or not the routine should be patched. This is done to avoid patching of graphics, music and other type of data that can be present in games.

The AI has also another level that then evaluates how the routines should be patched. You can't always tell what the routine is used for and for that reason it may add some "break points" to interrupt the routine in execution time for further evaluation & repatching. In general there are quite a few tricks used to make the end result to what it is... "

The loader is currently a "work in progress", but, so far, looks absolutely fantastic. At the moment, MEMU is required to run the loader and MSX games, but, ultimately, the loader should run on a real MTX computer.

From Timo's posting in the Facebook MTX 500 Group . . .

"First very early, unsupported version of MSX ROM-loader for Memotech MTX that is meant for "early adopters"...

This version does not yet have joystick support, but it lets you play maybe about 50% of MSX ROM games that fit in to 32KB size and do not require MSX-BASIC.

This version still also lacks a loader, so you can mainly test it on MEMU

Starting: "memu -v -s -diag-bad-port -iobyte 0x80 -mem exerom -addr 0x4000 -mem MSXGAME.ROM -addr 0x3ff0"

Note: some 8/16K games may use "-addr 0x8000" as load address instead...

 

Downloads

  Version Date Comments
0.5 03/08/2017 Development - sound optimisation (Zip includes a test music ROM file)
0.4.1 01/08/2017 Development - now runs on MTX hardware
0.4 23/04/2017 Includes noise support - runs in MEMU only
0.3 23/04/2017 More realistic sounds, noise & some support routines missing
0.2 23/04/2017 Initial Version - limited sound support

 

A selection of MSX ROMs that have been tested with MEMU are included below. A large selection of MSX ROMs can be found on the web with a quick "Google", though not all are in the public domain or freely distributable. I believe that the ROMs available below are free to distribute, but if you know better, please let me know and I will remove them.

Note: many of these ROMs came from the msxabandonware website, it should be noted that the term "abandonware" has no legal meaning, the ROMs are almost certainly still under copyright, but the original manufacturer or distributor does not appear to actively enforce their rights. Should the copyright owner wish to assert those rights, I will, of course, remove the offending ROM.

 

MSX ROMs

  Game Publisher Year Source LA 0x Comments
Bird & Chairs NI 2017 ni.x0.com 4000  
Glider Zap ???? msxabandonware 8000 Unknown keys
Super Cobra Konami 1983 msxabandonware 4000 Unknown keys
Tales of Popolon v1.3 Santi Ontanon 2017 Github 4000  
Zanac A.I. Pony 1986 msxabandonware 4000 Nice shoot 'em up
Zaxxon Sega 1985 msxabandonware 4000  
Zexas Limited dB-Soft 1985 msxabandonware 4000 Space shoot 'em up

 

Title Alpha Squadron
Publisher Sony
Year 1984
Genre Space flight simulator / shoot 'em up
Source doperoms
Comments

Impossibly hard - for me at least.

I can't take off without crashing.
  0x4000
Title F16 Fighting Falcon
Publisher Nexa
Year 1984
Genre Space flight simulator / shoot 'em up
Source doperoms
Comments

 
  0x8000
Title Galaga
Publisher Namco
Year 1984
Genre Space shoot 'em up
Source msxabandonware
Comments

 
  0x4000
Title Galaxians
Publisher Namco
Year 1984
Genre Space shoot 'em up
Source msxabandonware
Comments

 
  0x4000
Title GP World
Publisher Sega
Year 1984
Genre Car racing
Source msxabandonware
Comments

"Turbo" for MSX?  :-)
  0x4000
Title Jump Coaster
Publisher Nippon Columbia / Colpax
Year 1984
Genre Platform game
Source msxabandonware
Comments

 
  0x8000
Title Jump Land
Publisher Nippon Columbia / Colpax
Year 1985
Genre Platform game
Source planetemulation
Comments

 
  0x8000
Title Red Zone
Publisher Yellow Horn
Year 1985
Genre Space shoot 'em up
Source doperoms
Comments

 
  0x8000
Title Road Fighter
Publisher Konami
Year 1985
Genre Car racing
Source msxabandonware
Comments

 
  0x4000
Title Shmup!
Publisher David Fernández
Year 2013
Genre Space shoot 'em up
Source imanok
Comments

 
  0x4000
Title Space Invaders
Publisher Taito Corp
Year 1985
Genre Space shoot 'em up
Source msxabandonware
Comments

 
  0x4000
   

The games in the table below have been tested with the results shown, but are not made available for download here due to either copyright restrictions (again, a quick "Google" should help you find them on the 'net), or that fact that they don't run under EXERUN.

The biggest cause of failure so far is with 128k ROMs, as explained by Timo, "they are ctually 128KB ROMs that are divided in to 8KB blocks in order to make them fit to Z80 address space. Any ROMs that are bigger than 32KB are not supported and also ROMs that require BASIC or that are coded to work in memory area #0000-#3FFF are not supported."

Please e-mail me your test results with other games and I will include them here.

Incompatible MSX ROMs

  Game (Links to info) Publisher Source Comments
Χ Gradius Konami n/a 128k ROM
Χ Nemesis Konami n/a 128k ROM
Χ Zanac Ex Pony n/a 128k ROM

 

 

 

 

mailto: Webmaster

 Terms & Conditions