Muramasa TxROM Advanced – TLROM

This guide covers building a TLROM game using the TxROM Advanced by Muramasa Entertainment. In this case we’ll be building a Rampart cart for the NES. For additional information about the cart visit the NES Directory.

This guide will use a Linux workstation and command line utilities. There are probably windows GUI tools for each of the utilities covered so please use them if you are using a Windows workstation.

The ROM file used in this example can be dumped from an actual cart, or found on some sites on the Internet. It’s up to the reader to obtain their own ROMs.

Get the ROM

Fisrt thing to do once you’ve downloaded/dumped the game is to split the .nes file into a .prg and .chr file. The readnes utility from is great for this. See the section below to install the nesutils.

Using the readnes utility extract the ROM images:

readnes Rampart\ \(U\).nes

You should see output similar to:

 File length :262160 Bytes
NES PRG: 08 CHR: 10 MAPPER: 41 00
Nintendo MMC3
Flags: 01
PRG 8 pages of 16kb (131072 bytes) 
CHR 16 pages of 8kb (131072 bytes)
End at 262160
Remaining bytes: 0

Writing Rampart (U).prg
Writing Rampart (U).chr

As you can see the cart uses Mapper 41 (MMC3), the size of the PRG and CHR ROMs, etc.

Because I’m using a pair of AM27C020 EPROM chips the size of the ROM file needs to be 256K. This meand doubling the CHR and PRG ROM files. This works because the cart will use either the first 128K or the last 128K which won’t matter because it’ll be the same data.

To create a 256K ROM file use the cat utility:

cat Rampart\ \(U\).prg >> rampart_256.prg
cat Rampart\ \(U\).prg >> rampart_256.prg

The first command createds a copy of the .prg file and the second appends the same thing to the end of the file doubling the file size. Do the same for the .chr file:

cat Rampart\ \(U\).chr >> rampart_256.chr
cat Rampart\ \(U\).chr >> rampart_256.chr

You can name the output file whatever you want, but I like adding the size in there so I can tell at a glance which files are which. Also, to see the exact size of a file in bytes use the ls -l (or ll) utility.

Burn The EPROMs

Now that the .prg and .chr files are created we can burn them to a pair of AM27C020 chips. To do this I’m going to sue a TL866II Plus writer. There are several different models of this burner and they should all be able to write the data to the chips. There is a very useful Windows GUI application that comes with the writer, but you should probably look online for an updated version.

Since we’re using Linux this guide will detail using the minipro utility. See the guide for instructions on installing minipro.

Insert one of the EPROMs into the TL866II Plus and plug it into the computer (making sure that the chip is oriented correctly). Open a terminal and test reading the chip:

sudo minipro -p "AM27C020@DIP32" -r test.bin -y

If all goes will this will create a test.bin file in the current directory. To see the output of the file use the xxd utility:

xxd test.bin | less

If the EPROM is blank the output should all FF.

Next, write the .prg file:

sudo minipro -p "AM27C020@DIP32" -y -w rampart_256.prg

There should be some output showing the percent written and a success message. And finally, write the .chr file:

 sudo minipro -p "AM27C020@DIP32" -y -w rampart_256.chr

Note: you may or may not have to use the sudo command infront of the minipro command depending on your system. If you get a Error opening device message try using sudo.

With the chips written it’s time to build the cart PCB.

Build The Cart PCB

  • Solder in the 0.1uf capacitors in all three positions.
  • Solder the 22uf capacitors in both positions.
  • Solder in the CIC, AX5202P (MMC), and EPROMs.
  • On the front solder the ROM and 256K jumper.
  • On the back solder PRG28, CHR28, and ROM jumpers.

All other components and jumpers can be left off for a TLROM cart.

To ensure a good write to the ERPOMs it’s a good idea to make a dev board and use sockets for the chips. That way it’s easy to remove an EPROM if you get a bad write.

It is also handy to cut away part of a replacement cart shell to accomodate a PCB with sockets.

TxROM Advanced TLROM example.

Install nesutils on Ubuntu Linux

Install the build-essential package to get a C compiler, Make, etc.

sudo apt install build-essential

Download nesutils-1.0.tar.gz from and extract the nesutils-1.0.tar.gz file:

tar -xzvf nesutils-1.0.targ.gz

Build the utility:

cd nesutils-1.0

Optionally you can copy the newly created readnes executable to /usr/local/bin so it will be in the default path:

sudo cp readnes /usr/local/bin

You should now be able set to extract ROM images from .nes files. These instructions should be similar on other Linux distributions. The main things needed are a C compiler and the make utiltiy.

Party on!