===================================== cajoNES version 0.2 the only NES ROM tool with balls (c) 1997 matt 'the drip' conte ------------------------------------- http://www.netcom.com/~itsbroke/ ===================================== news ==== v0.2 7/20 added (flakey) iNES -> pasofami conversion. v0.1 7/13 oi! what? ===== this is cajoNES, a little proggie that lets you poke around with the headers on iNES format Nintendo Entertainment System ROMS, and a couple of other things... why? ==== "woo-hoo. another NES ROM tool. i'm so excited i could just shit." yeah, it's about as fun as lighting your toes on fire, but there's a couple of things this tool can do that other tools can't... first of all, seeing as i like my roms tidy, i've built a feature into cajoNES that will let you clear out those unsightly taglines that "other" tools casually insert into the reserved space in the iNES header whenever you use them. take a look at the first 16 bytes of any widely distributed NES rom and you'll most likely find the string "DiskDude!" or "aster" or some such trash embedded in the header, where it shouldn't be. just press F1 from the main menu of cajoNES and those nasty tags will be obliterated. *the biggie* -- well, i had another tool called NEStoFAM which allowed you to transformutate (huh?) .NES roms to .FAM files that the famicom emulator (not pasofami!) can use. well, i've added NES -> FAM support to cajoNES. what's the big tomato about that, you say? well, until now seil's oddball image format has prevented the conversion of images greater than 64k in size... with cajoNES, you can convert all less than 64k images, PLUS 128k and 256k MMC#2 games! a partial list: Final Fantasy 2J, Dragon Quest 3J, Rygar, Commando, Rambo, Ghosts 'n Goblins, Blades of Steel, Megaman, Rush 'n Attack... well, you get the picture. how? ==== it's 'wicked easy'... first, _make your life easier_ and put cajoNES.exe in your ROM directory. this is so cajoNES can list all of your roms, if need be. next, type cajoNES. it prompts you to enter the filename, or press to get a directory listing (of the CURRENT directory, only *.NES roms are masked), or press 'q' to exit the program. everything should be self-explanatory. if not, i'm dumb. the only thing that should need explanation is what to do with an output .FAM file. say you have a file loaded up in cajoNES called mario.nes. press F8 to output the file, and type mario.fam (or whatever). the output file will be created in the current (ROM) directory. then you need to go into famicom itself, File->Open the .FAM file. next Edit->Reset the virtual NES hardware. then Edit->Resume and the title screen/whatever should come up. if the mirroring is off (i.e. weird backgrounds, 0's everywhere) you have to go into Control->Memory and twiddle the Horizonal and Vertical mirroring options under Video RAM. generally, if a game is a side-scroller, it's horizontal mirroring... you can figure the rest out... finally, if you don't want to waste your time doing that every time you open your rom up, Edit->Pause the game, Edit->Reset it, then File->Save it... when you open it up again, it will automagically start up, and it will have saved your corrected mirroring settings. there are some roms that don't transfer very well, namely <= 64k roms with 16 or 32k vROM... i assume this is because of memory mappers, and i'll try to mess around with the image format in the future... the conversion techniques for 64k and under roms were taken from the output of the FAMCONV program. 128 and 256k iNES mapper #2 roms are a whole different thing. these roms can be converted because mapper #2 is quite simple... you'll notice that the converted ROMs are a little more than twice as big as the source file. so far as i can tell, this is necessary: the PRG banks are stored in an interleaved format. For 8 banks, they are stored in this order: 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7, 8, 8, 8. why? who knows... i'm trying to see if there's a simpler way, but until that time, you're FAMs will be a little on the bloated side... =) also 128k PRG, 0k CHR ROMs that use MMC# 1 don't work right... (i.e. Zelda, Metroid)... why? more complicated mapper, and famicom don't support that yet... huh? ==== if there's anyone out there who has some more insight on the ghastly .FAM format (i.e. how in sam hell do you get other ROMs to work on it?), drop me a line at . ask me for ROMs and i'll beat you with a short length of hose. late/matt. july 20th.