- What does this package do?
- This is alternative software to LittleWriter for
accessing your XROM cable. The primary purpose is for
testing the XROM cable and XROM cart. As such, many
options that might be expected in full-featured
packages are absent. However, it is Command Line
Interface (CLI) software so it is a little bit more
difficult to use than LittleWriter.
Here are the various files and their purpose:
USBCable.exe - This allows allows you to read
and write your flash cart, as well as test that your USB
drivers are installed correctly. For a complete list
of its capabilities, run this program without specifying
any options.
MRTool.exe - This is allows you to generate a
file that contains a menu and several ROMs, that can
then be written to the cart using USBCable. It also
has options for patching, trimming, suppressing intros,
etc. If you supply only one ROM image to this program
then no menu will be included in the generated file.
This allows you to patch, and otherwise modify, a single
ROM. For a complete list of its capabilities, run this
program without specifying any options.
USBC.gui - This is a BETA (i.e. may contain bugs)
Graphical User Interface (GUI) for USBCable. It is a
script file that you can edit with windows Notepad if
you wish to change how the interface works or appears.
It requires the program from http://www.GUI4CLI.com to run and uses
the included tips.dll and sh.dll libraries.
SRAM.exe - An SRAM test program from the
LittleWriter author.
MakeMR.bat - This is a script file program that
can be placed on your desktop. When you double click on
it, it will read all ROMs from c:\roms directory and
make a multirom using MRTool. If no errors are encountered,
it will then write the multirom to the cart using USBCable.
You can modify this script file with windows Notepad to
customize it to include trimming, patching, etc.
RTC.mb - This is a program that is written to
GBA RAM using USBCable. It will then execute and allow
you to view / change the Real Time Clock settings on the
XROM cart.
**** IMPORTANT ****: IF YOU ARE USING LITTLEWRITER, SRAM.EXE,
RTC.MB AND USBCABLE SOFTWARE, YOU MUST POWER DOWN / POWER
UP THE GBA WHEN YOU SWITCH BETWEEN THESE APPLICATIONS.
THIS IS BECAUSE THEY EACH LOAD A DIFFERENT OPERATING
SYSTEM INTO GBA RAM IN ORDER TO RUN OPERATIONS. IF YOU
DO NOT YOU WILL GET "ERROR: Gba not ready" MESSAGE
- How do I install it?
- Extract all of the files from the XROM testing software package
to the hard disk in the folder c:\Windows (Win98 or WinXP upgrade)
or c:\WINNT (WinXP or Win2000), which ever directory you have.
Then make a copy of MakeMR.bat (right click on it and select copy) and
then right click somewhere on your desktop and select paste.
If you wish to try out the BETA (still might have bugs) Graphical User
Interface (GUI) you need to
do the following as well. Make a copy of USBC.gui and paste it on the
desktop. Go to http://www.GUI4CLI.com and install the GUI4CLI application.
When you are done installing that, copy the sh.dll and tips.dll
files that came with the testing software package to the "Program Files
\ GUI4CLI \ DLL directory". Double click on the USBC icon on your desktop
to launch the GUI application.
Click on the Setup tab and then Set the location for usbcable.exe.
You can now click on the Operate tab to try out the GUI if you'd like.
(The GBA must be on, and connected to XROM cable, & USB port before trying it.)
- How do I verify the USB drivers are installed & working?
- 1. Open a DOS window.
To do this on Windows 98, select Start / Run and
type in COMMAND and then click OK.
To do this on Windows 2000 or XP, select Start / Run
and type in CMD and then click OK.
2. Insert some game cart into the GBA, preferably not
the XROM cart or some other flash cart. Connect the XROM
cable to GBA, and turn on the GBA while holding down both
the Start and Select buttons for 5 seconds.
3. In the DOS box type the following:
usbcable -u
[ Press the Enter key when you are done. ]
- How do I verify my XROM cable and cart are working?
- 1. Install the XROM USB drivers first.
2. Plug in your XROM cable to the USB port. You must now
wait at least 10 seconds for the computer to recognize
the device. If you get any 'new hardware' or similar
messages during this time then go to the last step below.
3. Open the Windows Device Manager and verify that
'XROM GBA Link Port Cable' is listed under
'Universal Serial Bus Controllers'. If you don't
see it listed there then unplug the USB cable and
plug it back in. Wait 10 seconds. Click on the Refresh
button. If you don't see it listed there then continue
with the following steps, but instead of typing 'usbcable -d'
in step 7, type 'usbcable -u' instead. However, since
there appears to be a problem you also need to visit the
the last step below after doing step 7.
To do this on Windows 98, select Start / Settings /
Control Panel / System / Device Manager.
To do this on Windows 2000, select Start / Settings /
Control Panel / System / Hardware / Device Manager.
To do this on Windows XP, select Start / Control Panel /
Performance and Maintenance / System / Hardware /
Device Manager.
4. Save the file 'usbcable.exe','mrtool.exe',and 'makemr.bat'
to the hard disk at c:\windows (Win98 or WinXP upgrade) or
c:\WINNT (WinXP or Win2000), which ever directory you have.
5. Open a DOS window.
To do this on Windows 98, select Start / Run and
type in COMMAND and then click OK.
To do this on Windows 2000 or XP, select Start / Run
and type in CMD and then click OK.
6. Insert some game cart into the GBA, preferably not
the XROM cart or some other flash cart. Connect the XROM
cable to GBA, and turn on the GBA while holding down both
the Start and Select buttons for 5 seconds.
7. In the DOS box type the following:
usbcable -d
Press the Enter key when you are done. You should now
see something like the following:
SWVER: v1.4, OS: XP, HW: ~2400MHz AMD processor
LINKER: EasyBuy cable [FW:30701]
STATUS: Fastloader installed
STATUS: XROM OS detected
CART: Standard ROM [0x2e]
CSIZE: 32
000 - 2e 00 00 ea 24 ff ae 51 69 9a a2 21 3d 84 82 0a ....$..Qi..!=...
010 - 84 e4 09 ad 11 24 8b 98 c0 81 7f 21 a3 52 be 19 .....$.....!.R..
020 - 93 09 ce 20 10 46 4a 4a f8 27 31 ec 58 c7 e8 33 ... .FJJ.'1.X..3
030 - 82 e3 ce bf 85 f4 df 94 ce 4b 09 c1 94 56 8a c0 .........K...V..
040 - 13 72 a7 fc 9f 84 4d 73 a3 ca 9a 61 58 97 a3 27 .r....Ms...aX..'
050 - fc 03 98 76 23 1d c7 61 03 04 ae 56 bf 38 84 00 ...v#..a...V.8..
060 - 40 a7 0e fd ff 52 fe 03 6f 95 30 f1 97 fb c0 85 @....R..o.0.....
070 - 60 d6 80 25 a9 63 be 03 01 4e 38 e2 f9 a2 34 ff `..%.c...N8...4.
080 - bb 3e 03 44 78 00 90 cb 88 11 3a 94 65 c0 7c 63 .>.Dx.....:.e.|c
090 - 87 f0 3c af d6 25 e4 8b 38 0a ac 72 21 d4 f8 07 ..<..%..8..r!...
0a0 - 47 54 2d 43 48 41 4d 50 00 00 00 00 41 47 54 4a GT-CHAMP....AGTJ
0b0 - 32 38 96 00 00 00 00 00 00 00 00 00 00 90 00 00 28..............
0c0 - 12 00 a0 e3 00 f0 29 e1 28 d0 9f e5 1f 00 a0 e3 ......).(.......
0d0 - 00 f0 29 e1 18 d0 9f e5 e4 10 9f e5 18 00 8f e2 ..).............
0e0 - 00 00 81 e5 dc 10 9f e5 0f e0 a0 e1 11 ff 2f e1 ............../.
0f0 - f2 ff ff ea 00 7b 00 03 00 7f 00 03 01 33 a0 e3 .....{.......3..
DONE: Pass
CHECK OUT SECTION 'USBCABLE DUMP' TO INTERPRET THE RESULTS THAT **YOU** GET.
8. You are now dhe following one. Ignore step 9 as it doesn't apply to you.
9. One of the following problems exist:
1. USB drivers were not installed properly.
2. XROM cable was not connected to USB port for at least
10 seconds before running this software.
3. The PC USB port is in a state that requires
a reboot to restore it to normal.
4. You are using a problematic USB hub.
5. USB device is defective.
- [-b] Backup game save
- This option displays a section of cart flash memory.
Here are the options:
-b o s file Backup game save SRAM or Flash to file
(o = Bank Number [1-8])
(s=0 - Backup 64K bits / 8K bytes to file.)
(s=1 - Backup 256K bits / 32K bytes to file.)
(s=2 - Backup 512K bits / 64K bytes to file.)
(s=3 - Backup 1M bits / 128K bytes to file.)
(s=4 - Backup 2M bits / 256K bytes to file.)
If you are using just a single ROM (not a multirom) on a
flash cart, then you first need to determine the size of the
game save that is used by your particular game. You can do
this by going to the following link and looking it up with
the search function: http://releases.pocketheaven.com
Lets save for example you are backing up Pokemon. You would
then do the following:
usbcable -b 1 3 pokemon.sav
You could then restore the game later with:
usbcable -r 1 pokemon.sav
If you are using a multirom on a flash cart, then you will
need to turn on your GBA and look at the menu screen. In the
far right column, on the same line as your game name, you will
see a letter and two numbers. (For example "S 2 1") The letter
indicates the save type. (S=SRAM,F=FLASH,E=EEPROM) You need to
enter these two numbers when using the backup (-b) option. Example:
usbcable -b 2 1 rom.sav
To restore a game, you only need to use the first number shown
on the screen above. Example:
usbcable -r 2 rom.sav
If you wanted to backup the entire save game area (for all games
in a multirom), and later restore the entire area. Do this:
usbcable -b 1 4 rom.sav
usbcable -r 1 rom.sav
- [-c] Specify cart size
- This option, when used with -s, allows you to specify the cart size
to save to disk:
-c n Specify cart size in mbits (16,32,64,128,256) (default=auto detect)
If you don't use this option, the cart size will be autodetected.
Example use for saving 32mbits:
usbcable -c 32 -s rom.gba
- [-d] Dump
- This option displays a section of cart flash memory.
Here is a step by step of what appears on the screen
and it's meaning:
1. You will see:
Base address : 0
or
SWVER: v?.?, OS: ??, HW: ~?MHz ? processor
Just ignore the Base address. This means you are doing a raw data dump
of the start of the ROM. This info was removed in v1.4 software.
SWVER tells you the version of usbcable software you are using.
OS tells which operating system you're using. HW tells the
processor speed (if you are using something later than Win98)
and the processor type. You obviously know the OS & HW type
you are running, but when you post your results if you have
a problem, it may help others to know what you are running. SWVER
and OS reporting was added with v1.4 software. HW reporting
was added with v1.5 software.
2. You will now see:
LINKER: ??????? [FW:??????]
or
ERROR: No USB backup device found....
If you see the LINKER message then that means that USB drivers
installed OK and that communication with the USB device is fine.
If [FW:??????] is displayed as well, this tells the version
of firmware that is being run by the computer chip on the XROM
cable. An intelligent conversation between the PC and the cable
had to take place to get this information so this is another
verification that USB drivers are working perfectly.
The firmware for the computer chip on the USB cable is install
each time you connect the USB cable. This capability allows
upgrades and improvements to be easily installed.
If the software prints out "LINKER: XROM cable [" and then just
hangs, then you need to do the following:
1) Press Ctrl-C to stop the program execution.
2) Unplug then replug cable to PC USB port.
3) Power down / power up GBA with Select + Start held down.
4) Run software again. If it hangs again, you need to do step
1-3 again in addition to rebooting your PC to reset your
PC USB port.
If you see the ERROR message, look at step 9 above for possible causes.
3. You will now see:
STATUS: Fastloader installed
or
STATUS: XROM OS detected
or
ERROR: GBA not ready
or
ERROR: Fast transfer mode fail
or
ERROR: Problem with GBA communication
or
ERROR: CRC Bad from GBA multiboot attempt
a) The PC will attempt to communicate with the GBA.
If communication is made with the GBA, then you will
get the "STATUS: XROM OS detected". This means that
the "XROM OS" in the GBA RAM memory is still there
from when you last accessed it with the xrom cable.
b) If no intelligent communication can take place with the
GBA, the PC will check to see if the GBA is in power up
boot mode, and if so, will attempt to send a small
fastloader program to the GBA. If this attempt is
successful then you will see the message "STATUS:
Fastloader installed" and you will see a black screen
with a single white line across the middle to let you
know that the fastloader is working.
c) Once the fastloader is running, the XROM cable will switch
to hardware data acceleration mode (2mbits/sec) and the
PC will send the XROM OS over the GBA link port at this
high rate of speed. When this is complete, you will see
XROM OS on the GBA screen. The PC will again attempt
an intelligent conversation, like it tried in step a)
above and display "XROM OS detected" if successful.
Go to step 4 if you do not get an ERROR message.
If the attempt to install the fastloader fails then you
will get the "ERROR: GBA not ready" message. This means
that you have one of the following problems:
1. You have run LittleWriter software but didn't power
down/power up the GBA when switching to this software.
LW & usbcable each load a different OS into GBA RAM
and they are not compatible.
2. You have run sram.exe software but didn't power
down/power up the GBA when switching to this software.
sram.exe & usbcable.exe each load a different OS into
GBA RAM and they are not compatible.
3. Corrupted data was somehow sent over the GBA link
port, probably when connecting or disconnecting
XROM cable to GBA link port. Power down / power up
to fix the problem.
4. GBA batteries are low. Try fresh batteries or a power adapter.
5. Bad connection to GBA. Unplug the device and reconnect
it to the GBA and retry.
6. You forgot to hold down Start and Select IMMEDIATELY
after turning the GBA on, and continue to hold them
down for 5 seconds so that GBA will enter link port
communications mode.
7. Faulty GBA link port. Try another GBA if possible.
8. Faulty USB cable.
If there are communication problems during the install
of the fastloader then you will get "ERROR: Problem with
GBA communication" or "ERROR: Bad CRC from GBA multiboot
attempt".
If there is a communication problem while the fastloader
is running, you will get the message "ERROR: Fast transfer
mode fail". This probably indicates an XROM cable hardware
failure, related to the data acceleration hardware.
4. You will now see:
CART: Standard ROM [????]
or
CART: XROM 512M [????]
or
CART: Unknown [????]
or
CART: ...something else...
The GBA attempted to figure out what is plugged into
the cart slot. You should see 'Standard ROM' if it is a
regular Nintendo GBA game. Various brands of flash cart
may be detected as well. SOME of these brands may be
programmed with this software, but possibly not all.
If you see 'Unknown' then it means you have one of the
following problems:
1. Card is not well seated in the slot. Turn off power
and unplug it and reseat the card. You may have to
try this several times, especially with a very new
or very old cart, in order to get a good connection.
2. You have some sort of custom or new design cart that
is not yet recognized by the software.
3. You have a flash cart that is faulty.
5. You will now see:
CSIZE: ????
The GBA has attempted to figure out the size of the
cart. This value is reported in megabits.
6. You will now see:
000 - ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
...
...
0a0 - 47 54 2d 43 48 41 4d 50 00 00 00 00 41 47 54 4a GT-CHAMP....AGTJ
...
...
This is a dump of the raw bytes of the start of the ROM
or flash cart. If the flash cart was never programmed,
this data may be just random data. On the line that starts
with 0a0, you will see the name of the game cart at the
end of the line, assuming it's a standard game cart or a
properly programmed flash cart. (NOTE: Some unofficial
coders/developers will write ROMs that do not contain
a valid name here.) If the game name is too long, often
you will just see an abbreviation of the game name here.
7. You will see:
DONE: Pass
or
DONE: Fail
If you see DONE: Fail, the software encountered some sort of
problem. If you see DONE: Pass, then there probably was no
problem. However, it will report "Pass" even when it reports
the cart as CART: Unknown.
- [-f] Format flash cart
- This will erase the entire flash memory as well
as game save memory. Example:
usbcable -f
Usually, this option is not needed, since -p will
erase just enough blocks needed before programming.
However, it may be useful for cases where LittleWriter
requires a "clean" cart to restore proper operation.
If you wish to program right after formatting, then
do the following. This will save time and the -p
option will remember that the cart is erased and
won't attempt to erase blocks as well:
usbcable -f -p test.gba
- [-g] Disable save erase
- This will prevent -p from erasing game save area when it is
used along with the -p option. Example:
usbcable -g -p rom.gba
- [-m] Send multiboot image
- Example usage:
usbcable -m rtc.mb
Multiboot images are GBA code that are designed to run in
GBA RAM instead of ROM. This allows software authors to
quickly test code on a GBA, instead of having to erase and
program a flash cart. There is more info on multiboot images
on various GBA software developer websites.
- [-p] Program Flash
- This option allows you to program your flash cart.
To use usbcable -p, you must have some sort of ROM image that you
can burn to the cart. For testing purposes, you can obtain a ROM
image by inserting a standard ROM cart into the GBA and doing:
usbcable -s test.gba
Make sure that you then do the following to guarantee that the
ROM image is OK:
usbcable -v test.gba
You can then use this ROM file for testing with the XROM cart:
usbcable -p test.gba
- [-r] Restore game save
- This allows you to restore a game save. Here are the options:
-r o file Restore game save SRAM from file (No save flash support)
(o = Starting bank number [1-8])
Please check the -b option for examples of using -r.
- [-s] Save Flash
- This option allows you to backup a cart. Example:
usbcable -s rom.gba
If you only wish to backup some of the cart, instead of the
whole thing, then refer to the notes for the -c option.
- [-S] Save Flash using unusual offset & size
- This option is an alternate to option -s/-c and is for ADVANCED USERS ONLY.
It allows you to specify the cart starting offset & size (in bytes) to
save to disk. Example:
usbcable -S 131072 4194304 data.bin
In this example, starting at byte offset 131072 in the cart,
4194304 bytes are saved to the file 'data.bin'. NOTE:
Reads which cross ROM bank boundaries must have a starting
offset that is 32kbyte aligned (i.e. (StartAddress
& 0x7fff) == 0 ) or else the saved data will be invalid.
- [-u] Display USB Info
- This option will list all of the partially and totally installed
USB drivers in your system. This info is helpful in cases where
installation failed for some reason.
usbcable -u
Here is an example print out using -u. Your results will
be different, since this shows info on ALL USB devices
that you have installed, or have attempted to install:
The Vendor/Product ID is info that may be helpful in
helping to understand any problem that may arise. A
correctly working linker will report correct vid/pid
information. When sharing this data with others, it
is okay to remove some of the data (scanners, cameras,
etc.) but PLEASE do not remove lines that give a
USB Device name like "Unknown Device" or similar
words. This information is VERY important for debugging.
How Windows USB works: When you plug in a new USB device
windows will immediately read the VID/PID to see if there
is any installed driver for it. If there are no installed
drivers, Windows will usually throw up a "New Hardware"
menu to allow you to select drivers for it. If the USB
device is putting out an invalid VID/PID, Windows will
never find a driver for it, even if you point it to the
correct driver, because the VID/PID from the device does
not match the VID/PID that is found in the device driver.
For example, if the CPU on the XROM cable quits working
and you plug it into the USB port, Windows will read a
"VID=0000 PID=0000 Unknown Device" from the cable.
SWVER: v1.4, OS: XP
List of fully and partially installed USB drivers:
Vendor/Product ID USB Device (* = Supported USB Linkers)
vid=04a5 pid=2060 Acer Color Flatbed Scanner 640U(WIN98)
vid=5655 pid=4149 *VXL Visoly USB Linker Init Driver
vid=084e pid=0001 KB JamC@m
vid=0416 pid=0961 USB Client Driver
vid=0694 pid=0001 LEGO USB Tower
vid=05e3 pid=0100 EZF Advance Cable
vid=4542 pid=4149 *XRC XROM LP Init Driver
vid=4542 pid=4144 *XRC XROM LP Final Driver
vid=05e3 pid=0604 Generic USB Hub
USB Linkers found:
XROM Cable (XRC) appears completely installed.
Visoly Xtreme Linker (VXL) appears partially installed.
- [-v] Verify
- This option allows you to verify that the the ROM image that
you wrote with -p is a valid image. Example:
usbcable -v test.gba
- General use
- The general form for using MRTool is the following:
mrtool [options] romfile1 [romfile2 [romfile3 [...]]]
You can use one or more .gba, .agb, or .zip file. (Only these
file types are recognized inside of a .zip file as well.) Here are some examples:
mrtool -p -t mario.gba [Patch & trim a single game.]
mrtool -p mario.gba pokemon.gba shrek.zip [Patch 3 games & make a multirom.]
The output file from operations using MRTool will be named out.bin
by default. You can change that name using -o option.
The multirom loader allows you to put up to 13 ROMs on an
XROM cart. However, if you only supply one ROM name, the
resulting output file will not contain a menu. This is
useful for cases in which you wanted to extract a ROM
from a .zip file, and/or remove the intro, but you want
a resulting standard ROM, instead of a multirom.
- [-d] Directory
- This allows you to include every ROM from a given directory. Example:
mrtool -d "\roms" -p -t
This will locate all of the .gba, .agb, & .zip files on the default
drive in folder \roms (i.e. c:\roms), patch, trim, and put the result
into a multirom, assuming the directory contains more than one ROM.
You can leave off the ""'s if the full directory path does not contain spaces.
Other examples:
mrtool -d . [Include all .gba and .zip ROMs from current directory]
mrtool -d .\roms [Include all .gba and .zip ROMs from roms subdirectory]
mrtool -d "c:\my roms" [Use a directory that contains spaces in name]
- [-g] Output Individual ROMs
- This outputs individual ROMs instead of a multirom. Example:
mrtool -g "\pogoshell" -p -d "\roms"
This is useful in cases where you might just want to patch
a whole batch of ROMs but don't wish to make a multirom,
for example when using pogoshell.
You can leave off the ""'s if the full directory path does not contain spaces.
Other examples:
mrtool -g . -p -d \roms [Output ROMs to current directory]
mrtool -g .\output -p -d \roms [Output ROMs to output subdirectory]
mrtool -g "c:\out roms" -p -d \roms [Use a directory that contains spaces in name]
- [-i] Information
- Show information on .gba(s), .zip(s), or current cart. Example:
mrtool -i gta.gba
Getting ROM info...
MRTool: v1.8
RTYPE: Single
GTITL: 'GT-CHAMP'
GCODE: 'AGTJ'
FSIZE: 4194304 bytes (32 Mbits)
INTRO: None detected
CRC32: d320a965
STYPE: FLASH_V121
RAMRQ: 65536 bytes (512 Kbits)
RAMBN: 1 2 (Used by usbcable -b o s)
If 'mrtool -i' alone is specified without giving a file name, then
MRTool will communicate directly with the usbcable program and
attempt to read the header of the cart to give information on
a multirom in the GBA. To get information on a single ROM in the
GBA, you will need to first read the game with 'usbcable -c ?? -s file.gba'
and then use 'mrtool -i file.gba'.
- [-n] Suppress Intros
- This allows you to suppress introductions on games that have been hacked. Example:
mrtool -n gta.gba
Note that this may not remove intros in cases where they
are disguised.
- [-o] Set output name
- This changes the default 'out.bin' name to your own name. Example:
mrtool -o patched.gba -p mario.gba pokemon.gba
- [-p] Patch games
- Patch games with EEPROM & FLASH to use SRAM backup instead. Example:
mrtool -p mario.gba
- [-t] Trim FF's & 00's
- This removes empty space from the end of a ROM, which allows
you to sometimes put more games in a multirom image. Example:
mrtool -t mario.gba pokemon.gba tetris.gba
This will not work if a ROM has already been trimmed. (i.e. File size
is not a multple of 4194304 bytes.) The Trim routine works by looking
at the value of the last byte in the ROM. If it is 0xFF, it will remove
all of those from the end of the ROM. If it is 0x00, it will instead
remove all of those from the end of ROM. It won't do both on any one
given ROM because that sometimes causes important data to be removed.
- Real Time Clock Set/View
- rtc.mb is provided to test/set the clock on the XROM 512 cart.
To run it do the following:
1) Plug in cable to PC and GBA.
2) Turn GBA on with Start + Select held down.
3) Release these buttons after about 5 seconds.
4) Type this: usbcable -m rtc.mb
5) Nintendo logo will start pulsating for 20 or so seconds.
6) Clock settings & instructions will appear on GBA.
Note: The first time you set the clock, the current time may
not show when you press the A button. Power off the GBA and
follow all of the steps above again and you should now see
the current time, and time changes should update when pressing A.
NOTE: YOU MUST POWER DOWN / POWER UP GBA AFTER USING THIS TO ALLOW RELOAD OF XROM OS.
- SRAM Testing
- Sram.exe is provided to test the game save SRAM on the XROM 512 cart.
To run it do the following:
1) Plug in cable to PC and GBA.
2) Turn GBA on with Start + Select held down.
3) Release these buttons after about 5 seconds.
4) Run sram from a DOS prompt.
NOTE: YOU MUST POWER DOWN / POWER UP GBA AFTER USING THIS TO ALLOW RELOAD OF XROM OS.
- Why do I get the following message with MRTool...?
-
"Warning: The output ROM is now patched for ROM bank 1 & RAM bank 1.
It will only work on XROM carts. It is currently not possible to
make a multirom from this output ROM with either MRTool or LittleWriter.
To make a multirom, you need to use the original, unpatched ROM."
Short Answer: Because the ROM uses game save bankswitching.
Long Answer: Read "How does Save Game patching work?" question.
- How does Save Game patching work?
- Nintendo GBA game carts are available in two general configurations.
That is, those that come with a separate chip to save game progress,
and those that don't. Those do not have such a storage area often will
give you a password instead. You would then use that password to return
to the previous game level that you were on in a previous game. Passwords
have the disadvantage that you have to complete the level before you can
get one.
Games that come with a game save chip have one of the following:
EEPROM (4 Kbit/512 bytes)
EEPROM (64 Kbit / 8 Kbytes)
SRAM (256 Kbit / 32 Kbytes)
FLASH (512 Kbit / 64 Kbytes)
FLASH (1 Mbit / 128 Kbytes)
Various GBA flash carts that are available all directly support games
with SRAM backup. Some have the ability to emulate EEPROM and/or FLASH
as well. However, flash carts that do not emulate EEPROM and FLASH (such
as the XROM 512 cart) require a "save patch" to convert the game to save
and load game progress data to/from SRAM instead of EEPROM and/or FLASH.
There are various save patch programs available on the internet, such as;
DadyCool's srampatch, Costis' FAT v8, GBAUtil, GBATemp, etc. These could be
referred to as generic patch programs that will apply patches where the
resulting ROM will work on a variety of flash carts. These programs often
assume that the flash cart has 64K bytes of SRAM backup space available. The
GBA can directly access up to 64 K bytes of game save area. Games that
require more storage area, such as Pokemon, Super Mario Advance 4, etc,
must do bankswitching to access the extra storage area they need. If
you are unfamiliar with the term bankswitching then you can dig up info
on it on the net using google.com
If a game requires 64 K bytes of game save area or less, then you can
easily use the ROM, alone on a flash cart, or include it as part of a
multirom with no problems. The multirom menu will set up the proper
ROM bank and RAM bank and then launch the game in such cases.
However, games that need to access more game save area than 64 Kbytes
must do bankswitching, as well, while the game is running. Lets take
for example a game that requires 128 K bytes of backup. It needs to know
the RAM bank numbers (and ROM bank number, in the case of the XROM)
that has been assigned to it so that when it needs to switch RAM banks,
it knows what bank number to switch to.
If you wish to run a single ROM on a flash cart, then the solution isn't
very difficult. You just make a patch for the ROM where it uses RAM banks
starting from RAM bank 1. (In the case of the XROM 512, you automatically
set the ROM bank at the same time you set the RAM bank, so you would
set the ROM bank to 1 as well.)
This works fine except now the ROM is "flash cart specific." i.e. If you
patch such a ROM, it will only work on an XROM 512, or Flash Advance, or
whatever, but not on all. You have to custom tailor the patch to a
specific flash cart since many brands use different techniques for
setting RAM & ROM banks.
This also means that you can't use the patched ROM along with a generic
multirom tool. That generic tool won't realize that the ROM has been
patched to only work at RAM Bank 1 (and ROM bank 1 in the case of XROM 512)
and the resulting multirom will crash when you try to execute that ROM.
A multirom tool, MRTool for example, will have to generate a ROM list
and then patch the ROM to use SRAM instead of Flash, and finally patch
the patch to set the starting RAM bank (& ROM bank number) so the game
will operate correctly.
- Is there an easier way to use this program?
- Yes! Copy the file MakeMR.bat and paste it onto
your windows desktop. Then create a folder named
c:\roms. Drag and drop ROMs into this folder. Every
ROM in this folder will be written to the cart.
Then double click on the MakeMR icon on your desktop.
That will create a multirom and then program the cart. :-)
- Are all game save methods supported by patches?
- MRTool supports patching of all current save types
except for EEPROM_V111. So, you can basically patch
about every GBA game available, except Rayman Advance
and Tony Hawk Pro Skater 2.
You will need to locate some other patcher program
for these. Here are some places to check:
http://releases.pocketheaven.com/?section=faq
http://mapage.noos.fr/dadywriter/
(srampatch v2.2 doesn't appear to support EEPROM_V111 either.)
- Can trimmed or stripped ROMs be used?
- Yes
- If I disable the intros, does that save space?
- No, they are not removed, only disabled. Some
intro authors stuff their intro in the middle
of ROMs. So it's difficult to find & remove
some without damaging the game ROM.
- Can I change the ROMs folder name for MakeMR.bat?
- Yes. The default folder name is \roms (which
usually means c:\roms on most systems) but you
can change this to anything you want.
Click on Start and then Run. Then type notepad
and then hit the Enter key. Open the MakeMR.bat
file. Change the \roms to any folder name you
want. Then, click on File / Save. All done...
- Can I read and/or write backup of a commercial cart?
- If it has SRAM or 64K byte FLASH then you can read
the cart using "usbcable -b 1 1" for SRAM, and
"usbcable -b 1 2" for flash. There is no current
support for reading FLASH1M (128k bytes).
If it has SRAM then you can write to the cart using
"usbcable -r 1". EEPROM and FLASH writing are not
currently supported.
- 'LINKER: XROM cable [' and then computer just hangs
- Follow the steps listed for Error 23 listed below.
- [Error 23 trying to write BlockIO data]
- This results from a USB communication problem. Sometimes it happens
because the USB is waiting on data from the linker that it never
gets, because the linker is waiting on the GBA, the GBA is waiting
on the cart, and some write error occured talking to the cart.
However, to recover once you see this error message you must do
all of the following:
1. Press Ctrl-C on keyboard to abort usbcable program.
2. Unplug USB cable and reconnect it.
3. Turn off GBA and turn it back on, with Start & Select held down.
If this error immediately happens again when you rerun the usbcable
software then it means the USB port has become hopelessly confused
and you will need to reboot your PC, as well as cycle power on the GBA.
- v2.0.3
- MRTool v1.9 - Added support for: FLASH_V123, FLASH_V124, FLASH_V125, & FLASH_V126
- Patching now supports all FLASH & EEPROM types, except EEPROM_V111.
- Added SRAM support for PocketNES,Goomba, & PCEAdvance
- Search for EEPROM_V120, EEPROM_V121, & EEPROM_V122 is now improved
and now will patch Bruce Lee and others.
USBCable v2.0.2 - Clear game save SRAM after programming cart, instead of before
- v2.1.0
- MRTool v2.0 - Option -i with no files gives current cart info by communicating
directly with USBCable.exe to read the cart header. This reports the numbers that
are needed by usbcable -b as well as other info.
USBCable v2.1 - -s option now can backup up to 512mbits - Added -S option
USBCGui v1.0.1 - Fixed "Write Save" button effectively not doing anything.
- v2.2.0
- USBCable v2.2 - Now will detect when flash chip #2 is bad when detecting cart type.
- v2.2.1
- MRTool v2.1 - Option -g added to generate individual files instead of multirom
to support pogoshell.