Skip navigation
NintendoAge
Welcome, Guest! Please Login or Join
Loading...

Tech Talk famiROM, the .nes rom splitter I made update 2019-01-13

Jan 25, 2012 at 2:46:44 PM
Lincoln (138)
avatar
(Frank W. Doom) < Bowser >
Posts: 5976 - Joined: 12/19/2008
California
Profile
download latest version from here: frank's nes patches
old versions here download famiROM  

new version 01/13/2019
implemented a lot of newly defined NES 2.0 properties (the format is still in development so that's all subject to change). the rom editor received a heavy revamp to support this, plus a bunch of original iNES stuff that wasn't well supported.

new version 09/09/2018
two new features of note: 

1. bin swapping for mmc5 roms. if you're splitting a rom and targeting an 8mb chip there's a separate selection that will swap the bin address lines around to make it easier to install. a swapped chip can be installed by just rewiring pins 24<->31. this is true for both prg and chr. ony for 8mb chips, and on mmc5 boards. but it does work if you're padding out a shorter rom.

2. prg/chr sub-splitting. this lets you split say a 2mb prg bin into two 1mb chips. this is useful for situations like akira boards with 2 prg chips if you want to install an english patch, or split out action 52 prg into individual chips.

let me know if you have any issues or suggestions

new version 12/03/17
add some tools to generate ips patches with a file diff, and examine/compare ips patches (eg compare 2 patches for overlaps). available under ips tools in the top left menu (...). this part of the program is still kinda rough. let me know if you have any issues with anything.

also I'm gonna put new versions up on my page with my rom hacks (see dl link above). also i have a page with rom hacks now  

update: new version 6/12/16
Added IPS patching! Figured that would be helpful to not have to use a separate tool to apply a patch. Load a rom, load a patch, and the app will save the new file and load it automatically. You can also drag and drop both files together and it'll sort them out. Let me know if you have any trouble files.

update: new version 3/24
revamped the editor and made some other tweeks and probably broke stuff, I dunno. let me know!

update: new version 2/8
support for iNES 2.0 roms, simple donor identification, editor to assemble roms from bins

The editor is available from the button in the upper left. It only does iNES 1.0 for now. 

Lots of stuff has been rewritten (a few times). If anyone has any issues with anything please post here or email [email protected] If you can include problem roms that will help too. Suggestions welcome too. If you have a problem rom you can drop it in the roms folder from this link only.


Howdy everyone. I wrote a rom splitter. 

windows app (requires .net)
open a file - supports drag on drop
pick target eprom sizes
split

files will be written to same directory. if you pick a bigger eprom it will repeat the data to fill.

there is some error checking but not much reporting of problems to the user. if you get split files it probably worked. I'll improve that later.

if you have any issues post here.

props to 3gen for posting his console tool and source. that got me interested in how the format works and writing my own tool.

thanks for looking.

quick demo: I dropped my nes file on the famicom and this is what it looks like.



so key info here: we have a prg rom, chr rom, mapper 4 (mmc3 chip), and the battery flag is set (fyi mmc3 + battery = TKROM donor most of the time)

i'm planning for 27C512 chips for my repro, which hold 512 kilobits of data.
The prg data is 512 kb, so that's the chp it defaults to. 
chr data is only 128 kb, a fourth the size of the eprom I have. So i change the chr selection to 512 kb ( 27C512 ) (use your imagination for that step)
then you can click split and let it work.

These are the output files, next to the original nes rom file. the two binaries are labeled chr and prg.
the chr filename has the x4 in the title to let you know that the data was repeated four times to pad the file. 
the prg is an exact fit so there you go.



so now I have the two files I need, sized for the chips I have, and I'm ready to program, which I'm doing right after this

-------------------------
ebay auctionsrunning FS thread famiROM thread for .nes info and splitting / rom hacks link/discussion


Edited: 01/14/2019 at 01:05 AM by Lincoln

Jan 25, 2012 at 3:32:54 PM
bunnyboy (81)
avatar
(Funktastic B) < Master Higgins >
Posts: 7704 - Joined: 02/28/2007
California
Profile
Would probably be helpful to add a mapper number/name, and even a donor board name (tho that would require looking at the wram setting too).

Jan 25, 2012 at 3:34:20 PM
snarf2888 (0)

(Kevin Selwyn) < Cherub >
Posts: 5 - Joined: 08/16/2011
Maryland
Profile
Looks good, Broseph!

I made one a while ago based on Raphael Assenat's ReadNES. I just rewrote it for online use in PHP, HTML, CSS, and jQuery.

Check it: http://www.kevinselwyn.com/ReadNES

I'm getting back into some homebrew stuff, so maybe I'll actually be able to use it and write the parts to some EEPROMs!

Keep up the good work!

Jan 25, 2012 at 3:37:23 PM
Lincoln (138)
avatar
(Frank W. Doom) < Bowser >
Posts: 5976 - Joined: 12/19/2008
California
Profile
Originally posted by: bunnyboy

Would probably be helpful to add a mapper number/name, and even a donor board name (tho that would require looking at the wram setting too).

there's a dialog window that pops up on the side that spits out header info, including mapper. I had considered a donor lookup but so far I've focused on parsing the file correctly and splitting it, and the fancy pants graphics

-------------------------
ebay auctionsrunning FS thread famiROM thread for .nes info and splitting / rom hacks link/discussion

Jan 25, 2012 at 5:28:22 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
Cool beans! Sorry I didn't comment ReadNES3 well (or at all), heh. But good job writing your own!


Edited: 01/25/2012 at 05:32 PM by removed04092017

Jan 25, 2012 at 8:37:27 PM
marvelus10 (46)

( . ) Boobies ( . ) < King Solomon >
Posts: 3282 - Joined: 06/05/2007
British Columbia
Profile
This is nice, a simple route to go when you have tons of blank eproms all the same size.

-------------------------




 

Jan 25, 2012 at 9:57:58 PM
Drakon (0)
This user has been banned -- click for more information.
(Dra kon) < Meka Chicken >
Posts: 599 - Joined: 10/27/2010
Ontario
Profile
Cool! Does splitting the rom help with hacking it or burning or both?

Jan 25, 2012 at 10:41:27 PM
Lincoln (138)
avatar
(Frank W. Doom) < Bowser >
Posts: 5976 - Joined: 12/19/2008
California
Profile
Originally posted by: Drakon

Cool! Does splitting the rom help with hacking it or burning or both?

It's prep for writing to eproms.

nes carts generally have the two rom chips with game data. When people dump carts and put together a rom for emulation, the binaries from the two chips are written  end to end in a single file, and a header is added that defines the boundaries for each binary within the file. in order to write the game data to eproms, you need a separate binary file for each rom. so this tool (and the others like it) reads the header information and writes the binaries out to individual files, which can then be written to a chip. in addition, if your binary is not exactly as big as your eprom, this tool will automatically repeat the data to fill the eprom size you select.

you can also use this to read other info stored in the header, such as mapper number, battery required, etc.

-------------------------
ebay auctionsrunning FS thread famiROM thread for .nes info and splitting / rom hacks link/discussion


Edited: 01/25/2012 at 10:42 PM by Lincoln

Jan 25, 2012 at 10:56:46 PM
Drakon (0)
This user has been banned -- click for more information.
(Dra kon) < Meka Chicken >
Posts: 599 - Joined: 10/27/2010
Ontario
Profile
pretty useful. What makes yours better than other ones out there? Easier to use?

Jan 25, 2012 at 11:05:46 PM
Lincoln (138)
avatar
(Frank W. Doom) < Bowser >
Posts: 5976 - Joined: 12/19/2008
California
Profile
Originally posted by: Drakon

pretty useful. What makes yours better than other ones out there? Easier to use?

yeah pretty much. it's windows, where as the other apps I've use are command line. I like command line but it's usually slower and dealing with long filenames can be tedious. I also have the fit-to-eprom thing, which I haven't seen elsewhere. 

-------------------------
ebay auctionsrunning FS thread famiROM thread for .nes info and splitting / rom hacks link/discussion

Jan 26, 2012 at 9:21:04 AM
Drakon (0)
This user has been banned -- click for more information.
(Dra kon) < Meka Chicken >
Posts: 599 - Joined: 10/27/2010
Ontario
Profile
Originally posted by: Lincoln

Originally posted by: Drakon

pretty useful. What makes yours better than other ones out there? Easier to use?

yeah pretty much. it's windows, where as the other apps I've use are command line. I like command line but it's usually slower and dealing with long filenames can be tedious. I also have the fit-to-eprom thing, which I haven't seen elsewhere. 


wtf seriously you're the first person to make a windows app for this?  Command line based stuff is so annoying.

Jan 26, 2012 at 7:49:20 PM
marvelus10 (46)

( . ) Boobies ( . ) < King Solomon >
Posts: 3282 - Joined: 06/05/2007
British Columbia
Profile
Originally posted by: Drakon

Originally posted by: Lincoln

Originally posted by: Drakon

pretty useful. What makes yours better than other ones out there? Easier to use?

yeah pretty much. it's windows, where as the other apps I've use are command line. I like command line but it's usually slower and dealing with long filenames can be tedious. I also have the fit-to-eprom thing, which I haven't seen elsewhere. 


wtf seriously you're the first person to make a windows app for this?  Command line based stuff is so annoying.

Yes this is definitly the tool to use if you are not to savvy with command line stuff.


-------------------------




 

Feb 4, 2012 at 11:43:31 PM
Drakon (0)
This user has been banned -- click for more information.
(Dra kon) < Meka Chicken >
Posts: 599 - Joined: 10/27/2010
Ontario
Profile
*bump*

I'm looking for something to fill a snes rom to 8mbit for burning (turns out it's a rare 4mbit rom). can you help me with that?


Edited: 02/04/2012 at 11:47 PM by Drakon

Feb 4, 2012 at 11:48:07 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
Batch file copy command, it'd go like this:

copy /b ROM.ext+ROM.ext ROMDoubled.ext
pause

Feb 4, 2012 at 11:52:26 PM
Drakon (0)
This user has been banned -- click for more information.
(Dra kon) < Meka Chicken >
Posts: 599 - Joined: 10/27/2010
Ontario
Profile
Originally posted by: 3GenGames

Batch file copy command, it'd go like this:

copy /b ROM.ext+ROM.ext ROMDoubled.ext
pause

Cool beans that's all it takes for it to run right on an eprom?  Wonder why I didn't find a utility that does that.

*edit*

Runs fine in an emulator with no header and 2x filesize so I hope it's safe in an eprom


Edited: 02/04/2012 at 11:55 PM by Drakon

Feb 4, 2012 at 11:54:22 PM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
Normally ROMS have headers, but as far as I know the SNES regulations for ROMS from Nintendo pretty much made them build in a header into the ROM, so that should work. Or just tying the highest data line of the 8mb eprom low should would work too for the 4mb program.


Edited: 02/04/2012 at 11:56 PM by removed04092017

Feb 4, 2012 at 11:56:30 PM
Drakon (0)
This user has been banned -- click for more information.
(Dra kon) < Meka Chicken >
Posts: 599 - Joined: 10/27/2010
Ontario
Profile
Originally posted by: 3GenGames

Normally they have headers, but as far as I know the SNES regulations for ROMS pretty much made them build in a header into the ROM, so that should work. Or just tying the highest data line of the 8mb eprom low should would work too for the 4mb program.

Huh?  I thought snes roms need no header to run right on an eprom.  Or am I not getting what you're saying?

Feb 5, 2012 at 12:00:42 AM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
Nintendo made them build a header into the ROM from the get go basically (I believe), so there's no extra unnecessary data, so there technically is no "header" in the way of more data, as the game already has that info inside it.

Feb 5, 2012 at 12:14:08 AM
Drakon (0)
This user has been banned -- click for more information.
(Dra kon) < Meka Chicken >
Posts: 599 - Joined: 10/27/2010
Ontario
Profile
Originally posted by: 3GenGames

Nintendo made them build a header into the ROM from the get go basically (I believe), so there's no extra unnecessary data, so there technically is no "header" in the way of more data, as the game already has that info inside it.
 

I didn't know consoles even used game headers.

Feb 5, 2012 at 12:20:31 AM
removed04092017 (0)
This user has been banned -- click for more information.
< Bowser >
Posts: 7316 - Joined: 12/04/2010
Other
Profile
They're more of just thinking into the future, sega genesis had them too and made you write SEGA to a port on the genny or else it wouldn't work basically. The games don't use the headers, they just put them in there just to.

Mar 7, 2012 at 1:40:00 PM
Lincoln (138)
avatar
(Frank W. Doom) < Bowser >
Posts: 5976 - Joined: 12/19/2008
California
Profile
bump, new version. now includes support for UNIF. I only have one UNIF file handy to run through the splitter as I post this, so give it a whirl and let me know how it goes.

-------------------------
ebay auctionsrunning FS thread famiROM thread for .nes info and splitting / rom hacks link/discussion

Mar 7, 2012 at 1:50:05 PM
NESHomebrew (21)
avatar
(Brad Bateman - Strange Brew Games) < King Solomon >
Posts: 4264 - Joined: 04/28/2008
Saskatchewan
Profile
booo unif

Mar 7, 2012 at 1:53:33 PM
Lincoln (138)
avatar
(Frank W. Doom) < Bowser >
Posts: 5976 - Joined: 12/19/2008
California
Profile
Originally posted by: WhatULive4

booo unif

ha, yeah I'm about the same. but I have a unif rom that I don't think is readily available in nes format. some future version will add a unif -> ines conversion option. I had to build the reader part first though, and that part can be used right away.


-------------------------
ebay auctionsrunning FS thread famiROM thread for .nes info and splitting / rom hacks link/discussion


Edited: 03/07/2012 at 01:54 PM by Lincoln

Feb 8, 2013 at 6:54:43 PM
Lincoln (138)
avatar
(Frank W. Doom) < Bowser >
Posts: 5976 - Joined: 12/19/2008
California
Profile
well it's only been a year. i guess i should post an update. sorry for being lazy.

-------------------------
ebay auctionsrunning FS thread famiROM thread for .nes info and splitting / rom hacks link/discussion

Jul 25, 2014 at 3:07:31 PM
aupton (11)
avatar
(aupton aupton) < Eggplant Wizard >
Posts: 260 - Joined: 03/17/2011
New Jersey
Profile
Hi Lincoln,

I know this is an old thread, but I've found a game that famiROM doesn't suggest a board type for, Spartan X 2 (Translated to english as Kung Fu 2). http://bootgod.dyndns.org:7777/pr...

famiROM does split the prg/chr to 128kb / 27c010, but does this mean that there's no compatible USA NES board to use ?

Thanks!