# What is the Circuit for a 16K or 32K MSX computer cartridge?

This question is about the old MSX-1 computers. I have a game I wrote, as a ROM file, and I now want to play it on a real MSX computer by putting the game into cartridge form. The game has been tested on an MSX emulator and it works. So my question is what is the simplest circuit for building an MSX-1 16K ROM cartridge or 32K ROM cartridge (using modern easy to get components)?. I have an Atmel AT28C256 EEPROM available to use. I am asking for a 16K and 32K circuit because there are two versions of the game.

Diagram below is part of a reply to answer by Anonymous (sourced from rs.gr8bit.ru). Note you could also use the 27c256 in the 16K cartridge, but I realised after more thought, it is cheaper and easier to use the 27c128 (a related similar chip) instead of 27c256. Optionally a capacitor can be put across the power lines to the EEPROM to smooth the voltage to it.

The 27c256 is powered by 5v this can be obtained by using pin 45 or 47 (which are both a +5v power source) and using pin 41 or 43 (which are both ground). The +12v pin, which supplies a maximum of 50ma, can also be uses to obtain a +5v power source after using a suitable circuit to reduce the voltage to +5v (though I do not know what a suitable voltage reduction circuit will be here).

Aternatively-as shown in the Alternative circuit diagram below- (as anonymous mentions in its answer)

CE is connected to SLSTL.

OE can be connected to CS12 for a 32K cartridge

or

OE can be connected to CS2 for a 16K cartridge

A pull down resistor (of value 5000 ohms or more) needs to be simultaneously connected (from OE to ground) to the MSX ground.

So the OE pin is shared between ground and CS12 for the 32k cartridge , or the OE pin is shared between ground and CS2 for the 16k cartridge

The two ground wires on the MSX cartridge slot (pins 41 and 43) can be wired together to create a single ground; the two VCC wires on the MSX cartridge slot (pins 45 and 47) can be wired together to create a single Vcc; and so the circuit can be powered by these four wires (41,43,45,47) used as the two power wires that deliver 5v (at up to 300 ma).

While the circuit can likely work theoretically without the capacitor and resistor -it is preferred to use it with a capacitor and resistor so it works 100% of the time. Thus the preferred circuit is the alternative circuit diagram above. The value of the capacitor in the above circuit is between 0.05uf and 0.2 uf.

The AT28C256 flash EEPROM has a similar enough pinout compared to the 27c256 EPROM (as far as I am aware these EPROMs do not have a direct flash equivalent), except that a few of the pins are different, so it can be used instead of the 27c256 in the both circuits above. Thus an AT28C256 can be used in place of the 27c256, in both circuits above, to make a flash based cartridge (this avoids the inconvenient possibility of using UV light to bring some 27c256 into a programmable state). So using the AT28C256, in this way, would mean wiring Vcc and WE together.

Update: the pull down resistor is not required (see updated answer by anonymous)

• Releasing two versions of a MSX game kinda goes against the philosophy of the MSX platform. If the full version needs 32k RAM and you want to be able to play the game on a 16k computer, perhaps you could slap 16k of RAM in the cartridge. Commented Nov 7, 2019 at 8:33
• github.com/apoloval/msx-cartridge ("Schematics and PCB designs of cartridges for MSX systems") doesn't seem to go below 64kb, but is it nevertheless helpful? Commented Nov 7, 2019 at 18:35
• @Dampmaskin If I'm understanding correctly the two versions just require different amounts of ROM (16k vs 32k), not RAM.
– mnem
Commented Nov 7, 2019 at 19:27
• Oh, it's ROM not RAM. Ok, but what I still don't get is the purpose of having two versions of the circuit. Are there MSX machines out there that are unable to run a 32k ROM? Sorry if I'm being dense. Commented Nov 8, 2019 at 23:24
• Maybe have a look at github.com/apoloval/msx-cartridge (can't say if it's good though) Commented Nov 11, 2019 at 17:30

16 KB cartridge does not require any additional components, you connect `OE` to the `/CS1`, and `CE` to the `/SLTSL` signal.

32KB cartridge also does not require any additional components, you connect OE to the `/CS12` signal, and `CE` to `/SLTSL` signal.

And of course all address and data pins must be connected to the bus.

All above mentioned signals are present on the slot connector.

The design is very simple.

Update:

You have EEPROM/flash chip, and you have slot connector, you need to wire them properly so that bus can read contents of the chip (and possibly be able to write to chip if it supports this operation).

• you connect address lines of the slot connector to the address input of the chip, number of address inputs of the chips defines number of wires from the connector;
• you connect 8 data lines between bus connector and chip;
• you connect /SLTSL to the chip's /CE;
• you connect /CS1 or /CS12 to the chip's /OE;
• you connect /WR to the chip's /WE (if this chip has this input);
• you connect pins 45 and 47 together, and connect them to the Vcc pin of the chip;
• you connect pins 41 and 43 together, and connect them to the GND pin of the chip;
• you put power decoupling capacitor of 0.1 uf between Vcc ad GND pins of the chip, closer to these pins is the better.

Some ROM/flash chips may have some more inputs (like PGM) and you must read the datasheet and connect them as instructed by the datasheet.

Now to yor question and assumptions.

• you do not need a pull down resistor on the /OE line unless you are obsessed with electircal termination, but if you are - this possible one-fix-all termination solution is wrong;
• you should connect /SLTSL to /CE and /CSxx to /OE and not vice versa. You can do other way around, and it will work, but it is practically wrong in terms of power consumption;
• you must not have +5V and /WR signals of the connector connected together;
• you can connect +5V to the /WE input of the EEPROM/flash, but then you will not be able to update chip contents in circuit programmatically through the machine;
• Also the diagram connects SLTSL to OE, but I think it can be connected to OE or CE ; as you state SLTSL connects to CE. Commented Nov 18, 2019 at 12:44
• Using CS1 means the start of the program code is put into the adresses 4000-7FFF (16K of code space between these addresses) in the EEPROM . Using CS12 means the start of the program code is put into the adresses 8000-7FFF (32K of code space between these addresses) in the EEPROM . Right? Commented Nov 18, 2019 at 13:24
• Also I am not 100% sure about is what two MSX cartridge pins power the EEPROM from (e.g. maybe you can use pins 43-gnd and 45-VCC to power the EEPROM?). Commented Nov 18, 2019 at 13:25
• Yes. You also must consult datasheet (e.g. bg-electronics.de/datenblaetter/Schaltkreise/AT27C256.pdf) to ensure you connect other input pins (e.g. WR/Vpp) for proper chip operation. Commented Nov 19, 2019 at 7:37
• Added a second circuit. You mention a write pin above; so I made a mention of the write pin in the answer, and I added a resistor for proper chip operation. Commented Nov 25, 2019 at 3:19

So my question is what is the simplest circuit for building an MSX-1 16K ROM cartridge or 32K ROM cartridge (using modern easy to get components)?.

As described in this answer, there is no need for any additional circuitry (*1). This is true for up to 64 KiB (512 KiBit) in size. Only such larger as 64 KiB (often dubbed as Megabit cartridges) do need mapper logic/chips.

These Boards are quite simple:

I have an Atmel AT28C256 EEPROM available to use. I am asking for a 16K and 32K circuit because there are two versions of the game.

You may use the same board/circuit for both. MSX design was made with lowering cartridge cost in mind - at least for sizes imaginable in the early 80s :) Next to all boards available today (and even several from original games) are configurable.

Since MSX is well supported by new developments, several companies offer simple cartridge boards (and housings) like you need. RC.SE does not favour any such, thus use the engine of your choice and search for 'MSX Cartridge Kit' or 'Empty MSX Cartridge' or 'MSX cartridge PCB'. you'll be surprised about the offers available. Some already include Flash chips like yours.

Now, if you really want to go all the length, several comments on the question have recommended this Githup repository which, on first sight, seams quite adequate. They are made using KiCad. If KiCad isn't your thing, there's a project for a similar PCB up on EasyEDA.

*1 - A buffer capacitor to ease power issues is always welcome.

• So to make a cartridge is it as simple as the following? So if I write by game onto an at27c256 chip and solder, with the capacitor, it into the cartridge PCB, given in the photo, in your answer, and IGNORE the modifications explained by the red lines, then will the constructed cartridge work when plugged into an MSX-1 machine? Commented Nov 15, 2019 at 1:01
• @Rosemary Yes, basically it is. Except, it depends on the card you use. So pleast consider its description if one or two bridges need to be soldered as well. Commented Nov 16, 2019 at 23:05

Have you looked at https://hackaday.io/project/8473-msx-protocard? Based on all the information already provided, you may be able to expand the project and do a lot more with it. Check it out! Keep us posted.