MSX compatibility problems
This page was last modified 09:46, 6 January 2012 by NYYRIKKI. Based on work by RetroTechie.

MSX computers are compatible with more recent versions if programs are made according to standard. Unfortunately this is not always the case.

The main reason why we see compatibility problems is that companies that produced software and games made stuff like they had used to do on C64 and other platforms of that time. The whole concept of "Home computer standard" was a new thing to game coders, so they usually completely ignored the MSX standard definitions because in many parts of the world there were only a few different MSX1 machines for sale. If the game worked on those then it was fine. It might have been that they were not even aware of MSX2, disk drive etc... or those kind of things just sounded like "not interesting abnormal peculiarity in business means"

The most common reasons why games don't start are usually that RAM is in a different slot than in machine the program was developed on, or that the game does not understand that a slot can be expanded. Fortunately these problems are usually easy to fix, but it requires some knowledge of programming and MSX internals.

When trying to make a program work, you should first try POKE -1,(15-PEEK(-1)\16)*17 before loading the program. If this does not work, see if there is some POKE -1,XXX in the loader and replace it with this POKE -1,(15-PEEK(-1)\16)*17 if found.

Another common problem is MSX1 software that uses more BASIC memory than available on floppy-equipped MSX models. This is often solved by holding [CTRL] key pressed while booting the MSX. That way only 1 drive is initialized, which frees up some memory. If that is not enough (like the case with many cassette games) the whole disk drive needs to be disabled. This can be done by holding [SHIFT] key pressed while booting the MSX.

If these tips don't help, then some more debugging is needed.

Here we have collected some known problems and their fixes for different games, please feel free to expand the list, if you have good tips

Contents

Gauntlet

PROGRAM NAME: Gauntlet

PROGRAM VERSION: Cassette

COMPATIBILITY PROBLEM DESCRIPTION: This game does not work on machines that have slot 0 expanded.

VISUAL EFFECT: Game hangs when selecting player.

PROBLEM CAUSE: RAM search routine does not switch BIOS back. (RAM support on slot 0 does not work anyway)

SOLUTION / WORK AROUND: Patch game to skip RAM search on slot 0: Search for string #3D, #21,#00,#00,#3C,#D3 and replace the first #3D with #00 This code is two times on the tape.

Miner Machine

PROGRAM NAME: Miner Machine

PROGRAM VERSION: Cassette

COMPATIBILITY PROBLEM DESCRIPTION: This program does not work on MSX2 and up.

VISUAL EFFECT: Program does not start

PROBLEM CAUSE: Non standard BIOS entry point #0849 has been used to clear the screen to avoid Z-flag clearing

SOLUTION / WORK AROUND: - Replace all calls to that address with standard entrypoint #00C3 instead - Download fixed freeware version from http://www.msx.org/Miner-Machine-freeware.newspost3662.html

Highway Encounterer

PROGRAM NAME: Highway Encounterer

PROGRAM VERSION: Cassette

COMPATIBILITY PROBLEM DESCRIPTION: This game does not work on machines that have slot 0 expanded.

VISUAL EFFECT: Program hangs to loading screen.

PROBLEM CAUSE: Vortex Software guys forgot to insert LD A,(#F933) to address #95A2 on 3rd file on the tape.

SOLUTION / WORK AROUND: (Expect that BASIC is in slot 0) LOAD"CAS: 45 POKE &H95A2,&HAF: POKE &HF95A3,&h26 RUN

Zaxxon

PROGRAM NAME:Zaxxon

PROGRAM VERSION: Cassette

COMPATIBILITY PROBLEM DESCRIPTION: don't work on RMSX VISUAL EFFECT: don't scroll and sound loop

PROBLEM CAUSE: register 0 not correct initialize

SOLUTION / WORK AROUND: pacth cas:

replace 42 59 20 50 2E 48 2E 20 26 20 54 2e in 00A0

by this AF D3 99 3E 8F D3 99 C3 09 EC 00 00

replace C3 09 EC in 6D20

by this C3 24 80

( for MSX2 cas version don't start with this patch because zone system variable required a copy of MSX1 zone)

Auf Wiedersehen Monty

PROGRAM NAME: Auf Wiedersehen Monty

PROGRAM VERSION: Cassette

COMPATIBILITY PROBLEM DESCRIPTION: This game does not work on machines that have slot 0 expanded.

VISUAL EFFECT: Game hangs while loading.

PROBLEM CAUSE: RAM search routine does not switch BIOS back. (RAM support on slot 0 does not work anyway)

SOLUTION / WORK AROUND: (routine identical to Gauntlet) Patch game to skip RAM search on slot 0: Search for string #3D, #21,#00,#00,#3C,#D3 and replace the first #3D with #00

You also need to fix XOR checksum byte, that is last byte of the block (=right before header) Original byte = #C, so #C XOR #3D XOR #00 = #31)