Copying cartridge software
This page was last modified 16:02, 12 May 2019 by NYYRIKKI. Based on work by Rderooy.

Contents

The problem

This article introduces methods of reading the content of a ROM cartridge. Typically the major problem with copying software on cartridge is that the cartridge software starts automatically on boot, which prevents running a dumping tool. Sometimes there is a key that you can hold down during boot to prevent the software from starting (look in the manual), but this applies mostly to hardware extensions. Games don't normally have this kind of mechanism built in, so you need to look for another method. Typical methods are introduced below.

When cartridge software is copied the result is usually called a ROM-file. Usually this is a RAW dump of the ROM chip content, but there are a lot of ROM-files out there that are not exactly correct dumps due to way they are dumped. ie. a 32kB MSX ROM is usually mapped to the memory area #4000-#BFFF, and when it is copied this memory area is saved to disk. However the 32kB ROM chip has memory area #0000-#7FFF. This means that MSX memory range #4000-#7FFF is usually connected to the ROM chip as is, but #8000-#BFFF is actually connected to ROM chip memory range #0000-#3FFF. Practically this means that if the memory area is just saved as a ROM-file the upper and lower part of the file are swapped with each other. How the ROM chip is connected to the MSX is not standardized in any way, so in theory even address and data lines can be in mixed order. This means that although it is possible to backup the content of a ROM using software for emulation purposes, it is sometimes not enough for preservation purposes (e.g. Using it as a replacement ROM on a failed device).

Using EPROM programmer

Picture of MSX cartridge to ROM adapter

Sometimes the software on cartridge is mounted on socket so that the actual ROM chip can be removed and placed in to EPROM programmer for reading. This is anyway rare as ROM socket is usually too big to mount in to standard size cartridge. How ever for example Phillips Music-Module is an example of device where this approach can be used. This method is used usually to make sure the content is dumped in exact correct order.

It is also possible to build an adapter to attach MSX cartridge directly to EPROM programmer, but this method is rarely used as it is pretty complex and has same problems as "software dump". If this is done then user must provide /CSx signals. In case the cartridge has some MegaROM mapper this approach requires special manual procedure or maybe even custom made software depending of the programmer device used.

Using slot expander

Picture of Modulon switches

Many of the MSX slot expanders such as Sunrise slot expander or Supersoniqs Modulon have build in switches to enable or disable a slot. These can be used to prevent cartridge from booting. Although this is most of the time perfectly fine and easy method for dumping, sometimes the cartridges don't work in expanded slots. The fact that the cartridge does not start from the expanded slot does not automatically mean that it can't be dumped as the problem may be in software as well as in hardware. The timings on an expanded slot are a bit different from unexpanded slot (Please see MSX Cartridge slot) and this may sometimes cause the data to be read incorrectly. ie. Daewoo version of Contra or Zemmix version of Magical Tree are good examples of cartridges that can't be read from expanded slot. It should be noted also that some modern cartridges include slot expander inside and as slot expanders can't be daisy chained, this method does not work for these cartridges either.

Custom Switches

Usually a switch is build so that /SLTSL line is cut. Cartridge side of the signal is attached to middle pin of switch. One of the side pins is connected trough pull-up resistor to +5v and the other side is connected to computer side of signal. The idea is that cartridge is switched "off" during the MSX boot and then back "on" before running actual dump tool.

Switch in cartridge

You may see that someone has attached an on/off switch to cartridge in past. When Konami started making SCC enabled games it was quite common habit to build a switch to the cartridge to prevent it from booting and use it only as sound extension. This also makes it possible to copy the cartridge content, but naturally this approach makes no sense only for copying it.

Switch in computer

If you think you will copy lot of cartridges building a switch to a computer it self may be an option if the computer does not hold much collector value. The benefit is that this is very fast and easy to implement.

Switch in between

Picture of MSX cartridge extension with a switch

If you build an extension cable / card between computer and cartridge you can put a switch in to it. This has the benefit that neither computer or cartridge needs modification.

Using Flash/SRAM cartridges

If you have a computer with two cartridge slots and a cartridge that can hold a custom program while computer is powered off, you may use the custom program in lower slot to prevent booting of cartridge in higher slot. Usually this kind of program is enough to prevent booting from second slot:

	; This program prevents execution of cartridge INIT
	; between execution slot and slot 3
	; Made By: NYYRIKKI
 
        OUTPUT "SKIP2.ROM"
        ORG #8000
        DW #4241,INIT,0,0,0,0,0,0
 
INIT:
        LD A,#40
        CP H
        RET Z
        LD IX,(#F674)
        LD (IX-6),#C3
        LD (IX-8),#EB
        LD (IX-12),2
        RET
 
        DS #C000-$

If you have MegaFlashROM SCC+SD interface, it has a build in option to skip booting cartridge from slot 2. This can be used by entering recovery menu (hold cursor up during boot) and then pressing "S"-key.

BIOS/BASIC update

Some people have modified their computers ROMs so that they can prevent cartridge from booting by holding down a key in keyboard. This however requires quite advanced knowledge of MSX programming & burning new system ROM. The routine that is responsible for starting cartridges is located in main BIOS/BASIC ROM in address #7D75

Plugging cartridge in while MSX is powered on

This method has also been used to dump cartridges, but it can't be recommended. This causes relatively big risk to both cartridge and the computer health. The real risk depends quite a lot from the computer model and cartridge in question.

Dumping tools

Some MSX software for dumping cartridges. You should try the tools pretty much in the order they are mentioned here:

Related Links