[iNES Header/Format Information File]
[Version 2.2 Compiled on 1/4/99]
[VmprHntrD - New Nick & Email address withheld]
NOTE: This document is on the iNES/FWNES98 format and is almost totally done.
I still need to add some little tidbits as the iNES format is updated. Please
do not modify this document in any way without MY prior consent. If you wish
to add to this please talk to me through e-mail, or in the evenings on the IRC
- EFnet, in the channel #emu. [I'm an OP in there.] I use a new nick now,
and don't wish to give it out, ask for me under my old nick I may respond, or
someone there will point me out if I'm away. Sorry but I just don't like to
do some of what I used to and what got tied to that old name. PLEASE IF YOU
DO FIGURE IT OUT DON'T POST IT ON WEBPAGES, ETC. USE THE OLD NAME AT THE TOP
OF THIS DOCUMENT, THANK YOU. There's a hint though in this text somewhere to
who I now am, so if you like play my guessing game and figure it out. =)
<Personal thanks goes to:>
* Conjurer which for some reason with a related request inspired me to not to
discontinue this list with v2.1.
* Zophar for help with some math and errors.
* FanWen for the greater extension of the iNES Extended Header format and all
the associated work along with it, and especially for NES Emulator called
FWNES98. It's a next to perfect NES Emulator, keep up the great work!
* Groups like Damaged Cybernetics, GitM, NPS, Vertigo 2099 and more that have
in one way or the other brought us the games this guide pertains to.
* Anyone who has ever e-mailed and/or talked to me in IRC that assisted in the
fixes and upkeep of this guide.
* And thanks to all the loyal readers that actually care about this document
and what I have to say here.
[Table of Contents]___________________________________________________________
Section 1 .Known HEXidecimal Values of the First 8 Bytes of the NES/FDS Header
Section 2 ................... The Seventh and Eighth Bytes' HEXidecimal Values
Section 3 .........................Those Many Mysterious Mappers Now Supported
Section 4 .................................. HEXidecimal Values of the PRG/CHR
Section 5 ........................ Miscellaneous Information on the NES Format
Section 6 ......... Let's Get Cracking on Prepping Your RAW/FFE/PasoFami Image
Section 7 ......... Information (Recommended Tools for Converting iNES Images)
Section 8 ...... UPDATES (The History of the iNES Header/Format Documentation)
[Sect.1 - Known HEXidecimal Values of the First 8 Bytes of the NES/FDS Header]
...Those FIRST (8) bytes of your NES, or to be a NES file...
(Bytes 0->3 MUST BE What is stated below.)
0 = 4E (N)
1 = 45 (E)
2 = 53 (S)
3 = 1A (Character Break, necessary!)
(Bytes 4->8-15 Can BE MODIFIED!)
4 = PRG (Hex number depends on size of PRG file)-/-- (See Sect. 4)
5 = CHR (Hex number depends on size of CHR file)/
6 = Mapper 0-15/ V or H Mirroring, Battery, 4 Screen VRAM, Trainer Switches
Also is used as the "Ones" place holder digit for the extended iNES Header
format. (See Sect. 2)
7 = Mappers 16-?, the extended iNES Header format "Tens" place holder digit.
Again (See Sect. 2 for details on how this is set up.)
8->15 = Not used at this tume but MUST BE ALL ZEROS or games will not work.
NOTE: Now that there is a fully established Extened iNES Header Format set up
gracefully by FanWen and Marat Fayzullin ALWAYS leave in games that do
not use over mapper 15 blank in bytes 8->15 or the games WILL NOT WORK!
* FWNESS FDS Support NOTE *
As of FWNES98 v.300+ there has been Famicom Disk System support. To make sure
that it works right for bytes 6->15 of the game header leave it all 00's or it
will NOT WORK. All that is needed is a Famicom Disk System BIOS file, which
is NOT included, and I can't give you it either.
(The .FDS Header Contents)
0 = 46 (F)
1 = 44 (D)
2 = 53 (S)
3 = 1A (Character Break, necessary!)
(Byte 4) - Number of Sides to FDS Disk(s)
4 = 04 (4 Sided disk) The 04 changes per amount of disk(s) side(s).
Above the example being used is Super Mario Bros. 2(Known as Super Mario Bros.
the Lost Levels to Americans in the SNES game Super Mario Allstars)
(For Easy Conversion purposes, one side of a FDS disk is 65500 bytes of data!)
The correct file sizes for FWNES's .FDS support then is as follows:
1 sided game = 16+65500 = 65516
2 sided game = 16+65500 X 2 = 131016
4 sided game = 16+65550 X 4 = 262016
* If you wish you can convert .DKA(Pasofami), .FAM(Famicom), and .FF3(Far
Front East) files to the .FDS(FWNES) format with a tool included in it named
2FDS.EXE.
Use it, but use it wisely as the real file will give life, the other will
take it away. (Indiana Jones and the Last Crusade plug/pun intended.) =)
(Bytes 5->8-15 CAN NOT BE MODIFIED!) <-- Reserved leave as 00's
[Sect. 2: - The Seventh and Eighth Bytes' HEXidecimal Values]_________________
Byte 6 in a hexeditor will look something like this:
59 <---This is for CastleVania III: Dracula's Curse
(The "5" is the mapper number, the "9" stands for Vertical Mirroring AND 4
Screen VRAM ON!) -- See below for all the possible values!
Byte 7 in a hexeditor will look a little different, something like this:
* 1->F/0<---Only the first part is used in coorilation with the first
part of byte 6 above. *READ BELOW FOR EXAMPLE!*
*Famicom Disk System Format Design*
This has got to be the easiest setup yet for a Nintendo/Famicom file yet. In
this setup contributed by Fanwen for FWNES98 v.300+ there are simple single
files with the extension of .FDS, and unlike the Pasofami with its .DKA, etc
system the files are all in one. The header for these is quite simple as well
which just consists bytes 0-3 reading (FDS Character Break) and the rest as
00's the emulator itself will handle the rest with no more information needed.
Also unlike Marat's format as you are probably thinking about since it's on
Mapper 20, Fanwen's has NO mapper, less fuss, no muss.
*Extended iNES Header Format Design*
Basically in this extended design the 7th byte is used to implement mappers of
16 and higher designed by FanWen, thought Marat likes to think he made it up.
It does this through a hexidecimal conversion of the actual mapper number. In
my example I'll use Mapper 69 with a vertical switch(1).
Example: Mapper 69 = 4E in hexidecimal...
Therefore in the new iNES Extended Header format this is how bytes 6 and 7
would look in hex and work together.
Example:
Bytes=> 0 1 2 3 4 5 6 7
N E S ^Z PRG CHR MAP/SW MAP/0(always)
4E 45 53 1A 10 20 E1 40
* See above that the ONES DIGIT (E) is in the 6th byte, and the TENS DIGIT (4)
is the first half of the 7th byte. But be advised that the second half of
the 7th byte in hex HAS TO ALWAYS BE 0 (zero)!
*AND NOW FOR THE BAD NEWS FOR "YOU"*
Considering iNES has set the standard for "Mapper Compatibility" we are faced
with a new problem ...CONVERSION. We must convert the current games to the
new format which is very TIME CONSUMING because of the iNES Header Editors out
there that insert extra garbage into the header. Therefore let's get to
FIXING YOUR GAMES for the new "Extended iNES Header Format":
* First get out your hexeditor and move over to the eighth byte. For example
lets use the NESimage(an old NES header editing tool) tag of: "DiskDude!"
* On the 7th byte it will be covered by the "D", to make your game a "clean"
image you must on the hexidecimal side put a double zero "00" through bytes
7-15, then save it.
* Be very careful doing so, if you hit the first byte of the game, its DEAD if
you aren't paying attention and save it...you've been warned.
* If you can find a program on the internet called "NESFIX.EXE" this will do
all the tasks above in a fraction of the time of doing it manually. Ask
around a few people will be able to get it to you.
* NOW your games will work in FWNES98 and iNES v0.7+
[Below are the current possibilities for the second figure of the 6th byte.]
This part of the byte is the place you setup the game to use, or not use
Horizontal or Vertical mirroring, Battery Backup, 4 Screen VRAM, and a built
in Trainer. Below are the different combinations of all the listed options
in HEXidecimal format.
0 = H (Horizontal Mirroring ONLY)
1 = V (Vertical Mirroring ONLY)
2 = H + Bat. (Horizontal Mirroring + Battery ON)
3 = V + Bat. (Vertical Mirroring + Battery ON)
4 = H + Train. (Horizontal Mirroring + Trainer ON)
5 = V + Train. (Vertical Mirroring + Trainer ON)
6 = H + Bat. + Train. (Horizontal Mirroring + Battery and Trainer ON)
7 = V + Bat. + Train. (Vertical Mirroring + Battery and Trainer ON)
8 = H + 4scr. (Horizontal Mirroring + 4 Screen VRAM ON)
9 = V + 4scr. (Vertical Mirroring + 4 Screen VRAM ON)
A = H + Bat. + 4scr. (Horizontal Mirroring + Battery and 4 Screen VRAM ON)
B = V + Bat. + 4scr. (Vertical Mirroring + Battery and 4 Screen VRAM ON)
C = H + 4scr. + Train. (Horizontal Mirroring + 4 Screen VRAM and Trainer ON)
D = V + 4scr. + Train. (Vertical Mirroring + 4 Screen VRAM and Trainer ON)
E = H + Bat. + 4scr. + Train. (Horizontal Mirroring + Battery, 4 Screen VRAM,
and Trainer ON)
F = V + Bat. + 4scr. + Train. (Vertical Mirroring + Battery, 4 Screen VRAM,
and Trainer ON)
[Sect. 3: - Those Many Mysterious Mappers Now Supported]______________________
Below is the current possibilities for the all the supported mappers.
NOTE: The format for this graph is taken from the FWNES98 doc to give you a
better example of what each mapper is and runs... I would personally
like to thank Marat Fayzullin, Yang FanWen, Y0SHi, and anybody else I
left out that assisted in the adding of these new MAPPERS!
NOTE: As of FWNES98 v.300+ there was full Famicom Disk System support added,
#2 which is for the games, extra sound, microphone, etc. Anyways FWNES98
uses the extension .FDS for these games and does NOT use Mapper 20. It
uses a standard header with 00's through the mapper, the program itself
will handle the FDS emulation.
* 74 * Mappers now supported thanks to FanWen and FWNES98 as of v.302!
Mapper Name Examples (Game Names, etc.)
______________________________________________________________________________
0 No Mapper All 32kb ROM + 8kb VROM games like Super
Mario Bros, Balloon Fight, Slalom, etc.
1 Nintendo MMC1 Chipset 1942, Bomberman II, Mega Man II, etc.
2 ROM (PRG) Switch Konami games like CastleVania and Stinger.
3 VROM (CHR) Switch Twin Bee, Q*Bert, and many japanese games.
4 Nintendo MMC3 Chipset Super Mario Bros 2 & 3, Silver Surfer, etc.
5 Nintendo MMC5 Chipset CastleVania III: Dracula's Curse
6 FFE F4XXX Games F4XXX Games off the FFE CD-ROM
7 32kb ROM (PRG) Switch Wizards & Warriors, Marble Madness, etc.
8 FFE F3XXX Games F3XXX Games off the FFE CD-ROM
9 Nintendo MMC2 Chipset Mike Tyson's Punch-Out!!, and Punch-Out!!
10 Nintendo MMC4 Chipset Japanese Punch-Out!!, and japanese games.
11 Color Dreams Chipset Crystal Mines, Tagin' Dragon, Babyboom, etc.
12 FFE F6XXX Games F6XXX Games off the FFE CD-ROM
15 100-in-1 Cart Switch 100-in-1 Multicart Switch
Below are all the Extened iNES Header Format Mappers which is included in the
FWNES98 NES Emulator which supports way beyond iNES v0.7+.
* Read above in Section 2 on how to implement Mappers 16 and up in FWNES/iNES.
16 Ban Dai Chipset Japanese: Dragon Ball Z, Gaiden etc.
17 FFE F8XXX Games F8XXX Games off the FFE CD-ROM
18 Jaleco SS8806 Chipset Japanese: Jaleco's Sport Series
19 Namcot 106 Chipset Japanese: Famista 90-92, Megami Teisen 1-2
*20*-> Famicom Disk System(iNES) Reserved for the Disk System, DON'T USE IT!
21 Konami VRC4 2a Chipset Japanese: Wai Wai World2, Goemon Gaiden 2
22 Konami VRC4 1b Chipset Japanese: Twinbee 3, etc.
23 Konami VRC2b Chipset Japanese: Wai Wai World, Kid Dracula, etc.
24 Konami VRC6 Chipset Japanese: CastleVania 3j, MADAKAJ, etc.
25 Konami VRC4 Chipset Japanese: Konami Baseball, Gradius 2, etc.
26 Konami VRC6V Chipset Japanese: Madara and Esper Dream.
32 Irem G-101 Chipset Japanese: Image Fighter 2, etc.
33 Taito TC0190/TC0350 Japanese: PonDoKoPon, Bubble Bobble 2j, etc.
34 Nina 1 (PRG) Switch Japanese: Impossible Mission, Deadly Towers
48 Taito TC1090/RC0350 Japanese: Flintstones
64 Tengen Rambo-1 Klax, Shinobi, Skull and Crossbones
65 Irem H3001 Chipset Japanese: Mr. Love, Mr. Big Hammer, P-Man2
66 74161/32 Chipset Japanese: Dragonball 1, BioWarrior DAN
67 Sunsoft Mapper 3 Japanese: Fantasy Zone 2J
68 Sunsoft Mapper 4 Japanese: Afterburner 2
69 Sunsoft Mapper 5 Japanese: Batman Return of the Joker J
70 74161/32 Chipset Japanese: Kamen Rider Club, Saint Seiya, etc
71 Camerica Mapper Firehawk
72 Jaleco Early Mapper #0 Japanese: Jaleco TennisJ, Pinball Quest J
73 Konami VRC3 Japanese: Salamander
74 Taiwan MMC3 -Varient Japanese: Kid Niki 3J(Hacked)
75 Jaleco SS805/Konami VRC1 Japanese: Jaleco BaseballJ, Ganbare Goemon1J
76 Namco 109 Chipset Japanese: Megami TenshiJ
77 Irem Early Mapper #0 Japanese: Naporeon Senki, Holy Diver
78 74161/32 Chipset Cosmos Carrier
79 Amer. Video Entertainment F-15 City War, Krazy Kreatures, Trolls
80 Taito X-005 Chipset Japanese: Demon Sword
81 Taito C075 Chipset Japanese: Unknown
82 Taito X1-17 Chipset Japanese: Unknown
83 Cony Mapper Japanese: Garbo Dentsu
84 PasoFami Mapper! Japanese: (.500 .MOD) Supported
85 Konami VRC7 Japanese: Tiny Toon Adv2J, Lagrange Point
86 Jaleco Early Mapper #2 Japanese: More Pro Baseball
87 74161/32 Chipset Japanese: Hyper Sport MT
88 Namco 118 Chipset Japanese: Devil Man J
89 SunSoft Early Mapper Japanese: MitoKuomon
90 HK-TK2(Pirate Cart Switch) Japanese: Samurai Spirits 2, MK3, Tekken 2
91 KH-SF3(Pirate Cart Switch) Japanese: Street Fighter II Pro
92 Jaleco Early Mapper #1 Japanese: Moe Pro Soccer, Moe Pro Baseball88
93 74161/32 Japanese: Fantasy Zone
94 74161/32 Japanese: Senjono Okami
95 Namco 1?? Japanese: Dragon Buster
96 74161/32 Japanese: Anpanman no Hiragana Daisuki
97 Irem 74161/32 Japanese: Kaiketsu Yanchamaru, Crazy Climber
100 MMC3/Trainer/Buggy Mode USED FOR HACKED ROMS!!
112 PC-Asder Haung-Di
113 PC-Sachen/Hacker Majong Champion, Metal Fighter, etc
114 PC-Supergames Lion King
115 PC-CartSaint Yuuyuu
116 PC-Reserved AV Beauty Fighting
117 PC-Future Sangokushi 4 (clone of "Warrior of Fate")
118 ????? Alumagiko J
119 TQROM High Speed, Pinbot
122 74161/32 Madoola No Tsubasa
225 58/64-in-1 Cart Switch 58/64-in-1 Multicart Switch
226 72-in-1 Cart Switch 72-in-1 Multicart Switch
227 1200-in-1 Cart Switch 1200-in-1 Multicart Switch
228 Action 54 Cart Switch Action 54 Multicart Switch
[Sect. 4: - HEXidecimal Values of the PRG/CHR]________________________________
[PRG - (Range 1 x 16kb pages -> 64 x 16kb pages)]
-There is a BARE MINIMUM required for PRG which is 1 x 16kb pages!
* NOTE: To figure out the exact size in bytes each of these pages are worth
just start at 1 x 16kb pages (aka: 16384 bytes) and just keep adding
16384 more for each "page" higher.
(1 x 16kb pages) = 01 (2 x 16kb pages) = 02 (3 x 16kb pages) = 03
(4 x 16kb pages) = 04 (5 x 16kb pages) = 05 (6 x 16kb pages) = 06
(7 x 16kb pages) = 07 (8 x 16kb pages) = 08 (9 x 16kb pages) = 09
(10 x 16kb pages) = 0A (11 x 16kb pages) = 0B (12 x 16kb pages) = 0C
(13 x 16kb pages) = 0D (14 x 16kb pages) = 0E (15 x 16kb pages) = 0F
(16 x 16kb pages) = 10 (17 x 16kb pages) = 11 (18 x 16kb pages) = 12
(19 x 16kb pages) = 13 (20 x 16kb pages) = 14 (21 x 16kb pages) = 15
(22 x 16kb pages) = 16 (23 x 16kb pages) = 17 (24 x 16kb pages) = 18
(25 x 16kb pages) = 19 (26 x 16kb pages) = 1A (27 x 16kb pages) = 1B
(28 x 16kb pages) = 1C (29 x 16kb pages) = 1D (30 x 16kb pages) = 1E
(31 x 16kb pages) = 1F (32 x 16kb pages) = 20 (33 x 16kb pages) = 21
(34 x 16kb pages) = 22 (35 x 16kb pages) = 23 (36 x 16kb pages) = 24
(37 x 16kb pages) = 25 (38 x 16kb pages) = 26 (39 x 16kb pages) = 27
(40 x 16kb pages) = 28 (41 x 16kb pages) = 29 (42 x 16kb pages) = 2A
(43 x 16kb pages) = 2B (44 x 16kb pages) = 2C (45 x 16kb pages) = 2D
(46 x 16kb pages) = 2E (47 x 16kb pages) = 2F (48 x 16kb pages) = 30
(49 x 16kb pages) = 31 (50 x 16kb pages) = 32 (51 x 16kb pages) = 33
(52 x 16kb pages) = 34 (53 x 16kb pages) = 35 (54 x 16kb pages) = 36
(55 x 16kb pages) = 37 (56 x 16kb pages) = 38 (57 x 16kb pages) = 39
(58 x 16kb pages) = 3A (59 x 16kb pages) = 3B (60 x 16kb pages) = 3C
(61 x 16kb pages) = 3D (62 x 16kb pages) = 3E (63 x 16kb pages) = 3F
(64 x 16kb pages) = 40
** SPECIAL NOTICE ** There is now DUAL MMC1 Chipset handling avaliable which
pushes the total PRG banking up to 32kb pages via 2 16kb pages PRG chips.
This was quite a feat performed with the work of imid, EFX, star69, and Marat
Fayzullin to get it to run, and because of this DRAGON WARRIOR III, and other
"like" games now work! This game for instance uses a 32kb banking mode
between two MMC1 chips, and to make them work together they communicate with
each other on the "4th" byte of the game image(not including the iNES header.)
[CHR - (Range 1 x 8kb pages -> 64 x 8kb pages)]
-There is NO MINIMUM required for CHR data because some games have the CHR
data imbedded into the PRG info.
* NOTE: To figure out the exact size in bytes each of these pages are worth
just start at 1 x 8kb pages (aka: 8192 bytes) and just keep adding
8192 bytes more for each "page" higher.
(1 x 8kb pages) = 01 (2 x 8kb pages) = 02 (3 x 8kb pages) = 03
(4 x 8kb pages) = 04 (5 x 8kb pages) = 05 (6 x 8kb pages) = 06
(7 x 8kb pages) = 07 (8 x 8kb pages) = 08 (9 x 8kb pages) = 09
(10 x 8kb pages) = 0A (11 x 8kb pages) = 0B (12 x 8kb pages) = 0C
(13 x 8kb pages) = 0D (14 x 8kb pages) = 0E (15 x 8kb pages) = 0F
(16 x 8kb pages) = 10 (17 x 8kb pages) = 11 (18 x 8kb pages) = 12
(19 x 8kb pages) = 13 (20 x 8kb pages) = 14 (21 x 8kb pages) = 15
(22 x 8kb pages) = 16 (23 x 8kb pages) = 17 (24 x 8kb pages) = 18
(25 x 8kb pages) = 19 (26 x 8kb pages) = 1A (27 x 8kb pages) = 1B
(28 x 8kb pages) = 1C (29 x 8kb pages) = 1D (30 x 8kb pages) = 1E
(31 x 8kb pages) = 1F (32 x 8kb pages) = 20 (33 x 8kb pages) = 21
(34 x 8kb pages) = 22 (35 x 8kb pages) = 23 (36 x 8kb pages) = 24
(37 x 8kb pages) = 25 (38 x 8kb pages) = 26 (39 x 8kb pages) = 27
(40 x 8kb pages) = 28 (41 x 8kb pages) = 29 (42 x 8kb pages) = 2A
(43 x 8kb pages) = 2B (44 x 8kb pages) = 2C (45 x 8kb pages) = 2D
(46 x 8kb pages) = 2E (47 x 8kb pages) = 2F (48 x 8kb pages) = 30
(49 x 8kb pages) = 31 (50 x 8kb pages) = 32 (51 x 8kb pages) = 33
(52 x 8kb pages) = 34 (53 x 8kb pages) = 35 (54 x 8kb pages) = 36
(55 x 8kb pages) = 37 (56 x 8kb pages) = 38 (57 x 8kb pages) = 39
(58 x 8kb pages) = 3A (59 x 8kb pages) = 3B (60 x 8kb pages) = 3C
(61 x 8kb pages) = 3D (62 x 8kb pages) = 3E (63 x 8kb pages) = 3F
(64 x 8kb pages) = 40
[Sect. 5: - Miscellaneous Information on the NES Format]______________________
* The End of the CART.NES file ...the Title]
If you wish you can add a title to your NES ROM and below shows you how to
do that manually, and the size limits for that title.
1) First at the very end of the ROM you will eventually ADD 128 bytes to the
ROM. But first, which is part of this 128 bytes, is the addition of the
NES Title. Starting at the first added byte type in the name normally in
the character part of the hexeditor.
2) Next, to finish this is successfully, go over to the HEXidecimal part of
the HEXeditor and add in double zeros (00) until you have added in a
a TOTAL OF 128 BYTES (which includes the the Title you added yourself.)
(So subtract the total bytes of the title from 128 so you do it right.)
3) If you did it right you now have successfully added a title to your NES
ROM and it will show in the title bar in the ROM checkers like NESImage.
[Sect. 6: - Let's Get Cracking on Prepping Your RAW/FFE/PasoFami Image]_______
* "RAW" Image Conversion to iNES
1) For starters check and see if that RAW NES rom image you got is or is not
interleaved. (See #3 if it's interleaved.)
2) Great! It's not interleaved so what you need to do is to just add 16
bytes onto the beginning of this ROM image. Then just add the standard
NES header to the ROM as stated in Section 1, and then toy around with
the mappers until you can or can't get the game to work or do something.
3) Crap, it's interleaved, don't worry it's fixable. What you need to do is
to write or find a program that will UN-interleave your ROM. This is the
process of seperating all the even and odd bytes. The even bytes are the
ROM (or PRG) data, and the odd bytes are the VROM (or CHR) data if that
exists.
4) Next, in MS-DOS, re-join the PRG and CHR data in the proper order. (Which
is PRG data before CHR data) First take the split ROM and VROM files and
name them something like PARODIUS.PRG(ROM) and PARODIUS.CHR(VROM)...
(Parodius is a Japanese side shooter game I'm using for this description)
5) Now type: copy /B PARODIUS.PRG+PARODIUS.CHR PARODIUS.NES
(This is a BINARY copy mode in DOS which will glue the two files together
where the PRG ends and the CHR begins.)
6) Now do as it says in Step #2 and just add the 16byte header to the top of
the NES rom, and then add the NES header as stated in Section 1.
* "FFE" Image Conversion to iNES
1) To start check and see if the rom is in a standard file format as shown
in Section 3. If it isn't check to see if it is 512 bytes larger than
normal. If so, this is most likely a FFE header.
2) To remove this get into your HEXidecimal editor and just have it delete
the first 512 bytes from your NES rom.
3) Then just add a 16byte header to the top of the NES rom, and then add the
NES header as stated in Section 1.
NOTE: If this rom ends up being interleaved as well just follow the guidelines
set above in the RAW rom format section for UN-interleaving a ROM.
BE ADVISED that Some NES roms maybe seem to be 512 or 1024 bytes larger than
normal. This is because it either has a trainer, or a combination of a
trainer and a FFE header. My best advice to you is that if its a trainer
leave it, if its a FFE header remove it. If the rom is 1024 bytes its a combo
of both, just remove the first 512 bytes and you'll be ok.
* "PasoFami (*.PRG/*.CHR -ONLY-)" Image Conversion
1) Start by deleting that annoying PRM file. This file is used by the
PasoFami emulator just as the 16byte header that iNES uses.
2) Next is the easy part, a simple binary copy (again I'll use Parodius as
the example.) Type: copy /B PARODIUS.PRG+PARODIUS.CHR PARODIUS.NES
(This is a BINARY copy mode in DOS which will glue the two files together
where the PRG ends and the CHR begins.)
3) Now do as it says in Step #2 in the RAW section and just add the 16byte
header to the top of the NES rom, and then add the NES header.
NOTE: Some PasoFami images such as Super Mario Bros. 2 for example are in the
Famicom Disk System format (EX: SMB2J.DKA) and can't be converted. When
they can be, I'll add that info here.
[Sect. 7: - Information (Recommended Tools for Converting iNES Images)]_______
* RECOMMENDED TOOLS FOR USE IN THE ABOVE SECTIONS:
HEXeditor(BEDIT.EXE) - (ie: Norton Diskedit or BEDIT) -I use BEDIT, it's tiny
with lots of commands, and very efficient. Using BEDIT you can just use the
arrows to move around across the top line with the first sixteen bytes (0->15)
where your header work is done.
CHRUTIL.EXE - This tool shows you the CHR data in a RAW, FFE, PasoFami, and
NES file as PCX picture to view in MS Paint, etc. With this you can determine
the correct sizes of the CHR pages. Also you discover if an image is in an
interleaved format by seeing the PSX boxes scrambled with spaces between the
CHR(sprite/character tiles).
UNLACE.EXE - This tool is something I had custom made for me. What this does
is uninterleaves NES roms from the RAW, FFE (removes the trainer by use of
command), and iNES format. What that means is that it splits up to rom and
puts all the PRG data in one file called (ROM) and all the CHR data in a file
called (VROM). And as my manual says above you just got to binary copy them
back into one file ROM+VROM = NES rom. Then add the iNES header and you just
tinker with it until it works, that's if its supported yet.
Also to save time, I do recommend the use of DiskDude's NESimage from version
3.30+ because it can show you in its menu all the PRG and CHR sizes, as well
as all the other options avaliable to you. This is just for people that don't
want to hexedit their rom and just want to get it working right away...
impacient aren't you? :)
NESFIX.EXE - If you do use a crummy editor like DiskDude's NES Image remember
to clean out bytes 8->15 so games will work in Exteneded iNES Header format
compatible emulators. To do this find and use NESFIX, and just run it like
so... NESFIX CART.NES and it will clean out the extra data. Not only that
this will save time in that it takes a fraction of the time to do it one by
one manually.
2FDS.EXE - This excellent little program will convert a Pasofami (.DKA) Split
Cart, Famicom (.FAM), and (.FF3) Far Front East Famicom Disk System image into
a .FDS image for FWNES 98 v.300+ to use with its complete Famicom Disk System
support. To get the instructions just type the filename in once to get the
commandlines for it.
And finally I recommend you have a NES emulator that is as far along in
development, or farther, than iNES, and a few smaller sized games to study
with in conjunction with my text.
[Sect. 8: - UPDATES (The History of the iNES Header/Format Documentation)]____
* UPDATE INFORMATION:
[2.2] - I Mask myself with a promise to myself to quit doing this list, but
the information says otherwise below...so much for that.
- In Section 1 I added a section on the Famicom Disk System format established
by Yang Fanwen for FWNES95 v.300+ (.FDS). This section explains how the
file it setup, and so on.
- In Sections 2 and 3 added notes on the FWNES FDS format as it was needed.
- In Section 7 added a new recommended tool of 2FDS.EXE to convert those ugly
.DKA and .FAM files to the .FDS format for complete support in FWNES v.300+.
- Added 2FDS.EXE to the ZIP to make things easier on all of us who care.
- Added and removed a few quotes and bits of humor.
- And who wouldn't have guessed, more fixes and changes to old information.
- Also to save my sanity and file size the History is cut to three updates.
[2.1] - Great merciful crap an overhaul and addition! ...Need rest...zombie.
- Removed the old Section 3 which were valid game ROM sizes.
- NEW Section 3 - Those Many Mysterious Mappers Now Supported section. Here
I set aside the growing list of mapper support thanks to FanWen and FWNES98.
- FWNES98 acknowledged as the #1 NES Emulator, as it should be so check it out
video and audio is superb. CastleVania III is an excellent test of that.
- Options for the use of the second half of byte 6 moved to Section 2.
- Section 7 overhaul; now BEDIT and CHRUTIL explained and how to use them.
- This list is NOW PKZIPED with BEDIT, CHRUTIL, UNLACE, and NESFIX so now you
can fix all your own things with the tools I use.
- Cut the Update List because it got way too long pushing 100 lines. I bet
you could care less and don't even read this stuff.
- And as always I've updated and fixed grammar and spelling bugs I usually do
not catch due to pulling late nights (usually) writing this.
[2.0] - Wow v2.0! "SHOW ME THE MUSHROOM!" - Toad McGuire ...More mappers! =)
- In Sections 1-8 I reformatted some text and removed useless info.
- In Section 1 added a snipit on what byte 7 does in conjunction with byte 6
and explained that 7 = Tens digit and 6 = ones digit for the 16+ mappers.
And fixed the chart so that 0 is the beginning digit, not 1. Stupid error.
- In Section 2 I added a notice about NESFIX so people can easily repair there
polluted headers so they will work in Extened iNES Header format players.
- Added in Section 2 the all important further extension to the Extended iNES
Header format created by FanWen. Mappers 66-70 80-84 are now added, and a
rename to the Konami VRC 2 1a and 1b to VRC 1b and 1a.
- Reformatted the CHR and PRG cart size lists to fit into 1 screen in Section
2 as well.
- And in Section 7 I added the recommended tool of NESFIX.EXE to remove that
nasty garbage out of iNES headers.
- More BS errors in grammar and spelling fixed again. Common occurance is it
not? >:) Maybe I need to buy Hookt awn Fawniks and Lurn too Reed. =)
- In this Section 8 it got to damned big so now I'm limiting the list to the
three most current revisions for now on. (Like anyone really looks back to
read that stuff anyways, the important stuff is above.)
[End Of File] -Enjoy!