home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / programs / emulaton / utilities / neditor / !Neditor / HdrFormat < prev    next >
Windows Setup INFormation  |  1998-08-18  |  30KB  |  672 lines

  1. [iNES Header/Format Information File]
  2. [Version 2.0 Compiled on 1/31/98]
  3. [VmprHntrD - kennedy5@flash.net]
  4.  
  5.  
  6. NOTE: This document is on the iNES format is almost totally complete.  I still
  7. need to add some little tidbits as the iNES format is updated.  Please do not
  8. modify this document in any way without MY prior consent.  If you wish to add
  9. to this please talk to me through e-mail, or in the evenings on the IRC -
  10. EFnet, in the channel #emu.  [I'm an OP in there.] :P
  11.  
  12. BE ADVISED: Any emails sent to me about ROM requests will be ignored and most
  13. likely forwarded to the SPA at piracy@spa.org.  You get one warning and this
  14. is it, sorry to be harsh but I have to.  ...Am I a nice guy or what?
  15.  
  16. <"In"Famous Quotes:>
  17. "Power TENDS to corrupt; Absolute power corrupts absolutely." - I forget :)
  18. "Escape is impossible and obedience is imperative!" - Cmdr. Yurak from Voltron
  19. "I'm surrounded by fools and imbusiles!" - King Zarkon from Voltron
  20.  
  21. <Personal thanks goes to:>
  22. * Zophar for help with some math and errors.
  23. * FanWen for the greater extension of the iNES Extended Header format and all
  24.   the associated work along with it.
  25. * Groups like Damaged Cybernetics, GitM, NPS, Vertigo 2099 and more that have
  26.   in one way or the other brought us the games this guide pertains to.
  27. * Anyone who has ever e-mailed and/or talked to me in IRC that assisted in the
  28.   fixes and upkeep of this guide.
  29. * And thanks to all the loyal readers that actually care about this document
  30.   and what I have to say here.
  31.  
  32.  
  33. [Table of Contents]___________________________________________________________
  34.  
  35. Section 1 .... Known HEXidecimal Values of the First 8 Bytes of the NES Header
  36. Section 2 ................... The Seventh and Eighth Bytes' HEXidecimal Values
  37. Section 3 ........... Common iNES File Sizes & What They Are Made Of (PRG/CHR)
  38. Section 4 .................................. HEXidecimal Values of the PRG/CHR
  39. Section 5 ........................ Miscellaneous Information on the NES Format
  40. Section 6 ......... Let's Get Cracking on Prepping Your RAW/FFE/PasoFami Image
  41. Section 7 ......... Information (Recommended Tools for Converting iNES Images)
  42. Section 8 ...... UPDATES (The History of the iNES Header/Format Documentation)
  43.  
  44.  
  45. [Sect.1: - Known HEXidecimal Values of the First 8 Bytes of the NES Header]___
  46.  
  47. ...Those FIRST (8) bytes of your NES, or to be a NES file...
  48.  
  49. (Bytes 0->3 MUST BE What is stated below.)
  50.  
  51. 0 = 4E (N)
  52. 1 = 45 (E)
  53. 2 = 53 (S)
  54. 3 = 1A (Character Break, necessary!)
  55.  
  56. (Bytes 4->8-15 Can BE MODIFIED!)
  57.  
  58. 4 = PRG (Hex number depends on size of PRG file)-/-- (See Sect. 4)
  59. 5 = CHR (Hex number depends on size of CHR file)/
  60. 6 = Mapper 0-15/ V or H Mirroring, Battery, 4 Screen VRAM, Trainer Switches
  61.     Also is used as the "Ones" place holder digit for the extended iNES Header
  62.     format. (See Sect. 2)
  63. 7 = Mappers 16-?, the extended iNES Header format "Tens" place holder digit.
  64.     Again (See Sect. 2 for details on how this is set up.)
  65.  
  66. 8->15 = Not used at this tume but MUST BE ALL ZEROS or games will not work.
  67.  
  68. NOTE: Now that there is a fully established Extened iNES Header Format set up
  69.       gracefully by FanWen and Marat Fayzullin ALWAYS leave in games that do
  70.       not use over mapper 15 blank in bytes 8->15 or games WILL NOT WORK!
  71.  
  72. [Sect.2: - The Seventh and Eighth Bytes' HEXidecimal Values]__________________
  73.  
  74. Byte 6 in a hexeditor will look something like this:
  75.  
  76.         59 <---This is for CastleVania III: Dracula's Curse
  77.  
  78. (The "5" is the mapper number, the "9" stands for Vertical Mirroring AND 4
  79. Screen VRAM ON!) -- See below for all the possible values!
  80.  
  81. Byte 7 in a hexeditor will look a little different, something like this:
  82.  
  83.         * 1->F/0<---Only the first part is used in coorilation with the first
  84.                     part of byte 6 above. *READ BELOW FOR EXAMPLE!*
  85.  
  86. *Extended iNES Header Format Design*
  87.  
  88. Basically in this extended design the 7th byte is used to implement mappers of
  89. 16 and higher.  It does this through a hexidecimal conversion of the actual
  90. mapper number.  In my example I'll use Mapper 69 with a vertical switch(1).
  91.  
  92. Example: Mapper 69 = 4E in hexidecimal...
  93.  
  94. Therefore in the new iNES Extended Header format this is how bytes 6 and 7
  95. would look in hex and work together.
  96.  
  97. Example:
  98. Bytes=> 0       1       2       3       4       5       6       7
  99.         N       E       S       ^Z      PRG     CHR     MAP/SW  MAP/0(always)
  100.         4E      45      53      1A      10      20      E1      40
  101.  
  102. * See above that the ONES DIGIT (E) is in the 6th byte, and the TENS DIGIT (4)
  103.   is the first half of the 7th byte.  But be advised that the second half of
  104.   the 7th byte in hex HAS TO ALWAYS BE 0 (zero)!
  105.  
  106. IMPORTANT AMENDMENT (added by DavidSharp@ThePentagon.com 18/8/98)
  107. ===================
  108.  
  109. In light of VS System ROMs being emulated, Marat has amended the iNES format so that:
  110. Header[7]&0x01    1 = VS System ROM
  111.  
  112.  
  113. *AND NOW FOR THE BAD NEWS FOR "YOU"*
  114.  
  115. Considering iNES has always set the standard for "Mapper Compatibility" we are
  116. now faced with a new problem ...CONVERSION.  We must convert the current games
  117. we have to the new format which is very TIME CONSUMING because of the iNES
  118. Header Editors out there that insert extra garbage into the header.  Therefore
  119. let's get to FIXING YOUR GAMES for the new "Extended iNES Header Format":
  120.  
  121. * First get out your hexeditor and move over to the eighth byte.  For example
  122.   lets use the NESimage tag of: "DiskDude!"
  123. * On the 7th byte it will be covered by the "D", to make your game a "clean"
  124.   image you must on the hexidecimal side put a double zero "00" through bytes
  125.   7-15, then save it.
  126. * Be very careful doing so, if you hit the first byte of the game, its DEAD if
  127.   you aren't paying attention and save it...you've been warned.
  128. * If you can find a program on the internet called "NESFIX.EXE" this will do
  129.   all the tasks above in a fraction of the time of doing it manually.  Ask
  130.   around a few people will be able to get it to you.
  131.  
  132.  
  133. [Below is the current possibilities for the all the supported mappers]
  134.  
  135. NOTE: The format for this graph is taken from the iNES 0.7 doc to give you a
  136.       better example of what each mapper is and runs...  I would personally
  137.       like to thank Marat Fayzullin, Yang FanWen, Y0SHi, and anybody else I
  138.       left out that assisted in the adding of these new MAPPERS!
  139.  
  140.  
  141. Mapper #  Name                    Examples (Game Names, etc.)
  142. ______________________________________________________________________________
  143.  
  144. 0         No Mapper               All 32kb ROM + 8kb VROM games like Super
  145.                                   Mario Bros, Balloon Fight, Slalom, etc.
  146. 1(fixed)  Nintendo MMC1 Chipset   1942, Bomberman II, Mega Man II, etc.
  147. 2         ROM (PRG) Switch        Konami games like CastleVania and Stinger.
  148. 3         VROM (CHR) Switch       Twin Bee, Q*Bert, and many japanese games.
  149. 4(fixed)  Nintendo MMC3 Chipset   Super Mario Bros 2 & 3, Silver Surfer, etc.
  150. 5(100%!)  Nintendo MMC5 Chipset   CastleVania III: Dracula's Curse
  151. 6         FFE F4XXX Games         F4XXX Games off the FFE CD-ROM
  152. 7         32kb ROM (PRG) Switch   Wizards & Warriors, Marble Madness, etc.
  153. 8         FFE F3XXX Games         F3XXX Games off the FFE CD-ROM
  154. 9         Nintendo MMC2 Chipset   Mike Tyson's Punch-Out!!, and Punch-Out!!
  155. 10        Nintendo MMC4 Chipset   Japanese Punch-Out!!, and japanese games.
  156. 11        Color Dreams Chipset    Crystal Mines, Tagin' Dragon, Babyboom, etc.
  157. 12        FFE F6XXX Games         F6XXX Games off the FFE CD-ROM
  158. 15        100-in-1 Cart Switch    100-in-1 Multicart Switch
  159.  
  160. Below are all the Extened iNES Header Format Mappers which are now, or will be
  161. in the near future added into another emulator yet to be publicly released.
  162. * Read above in Section 2 on how to implement Mappers 16 and up in iNES.
  163.  
  164. 16        Ban Dai Chipset         Japanese: Dragon Ball Z, Gaiden etc.
  165. 17        FFE F8XXX Games         F8XXX Games off the FFE CD-ROM
  166. 18        Jaleco SS8806 Chipset   Japanese: Jaleco's Sport Series
  167. 19        Namcot 106 Chipset      Japanese: Famista 90-92, Megami Teisen 1-2
  168. 20        Famicom Disk System     Reserved for the Disk System, DON'T USE IT!
  169. 21        Konami VRC4 2a Chipset  Japanese: Wai Wai World2, Goemon Gaiden 2
  170. 22        Konami VRC4 1b Chipset  Japanese: Twinbee 3, etc.
  171. 23        Konami VRC4 1a Chipset  Japanese: Wai Wai World, Kid Dracula, etc.
  172. 24        Konami VRC6 Chipset     Japanese: CastleVania 3j, MADAKAJ, etc.
  173. 25        Konami VRC4 Chipset     Japanese: Konami Baseball, Gradius 2, etc.
  174. 32        Irem G-101 Chipset      Japanese: Image Fighter 2, etc.
  175. 33        Taito TC0190/TC0350     Japanese: PonDoKoPon, Bubble Bobble 2j, etc.
  176. 34        32kb ROM (PRG) Switch   Japanese: Impossible Mission, Deadly Towers
  177. 65        Irem H3001 Chipset      Japanese: Mr. Love, Mr. Big Hammer, P-Man2
  178. 66        74161/32 Chipset        Japanese: Dragonball 1, BioWarrior DAN
  179. 67        Sunsoft Mapper 3        Japanese: Unknown
  180. 69        Sunsoft Mapper 4        Japanese: Afterburner 2
  181. 70        74161/32 Chipset        Japanese: Unknown variant
  182. 80        X-005 Chipset           Japanese: Demon Sword
  183. 81        C075 Chipset            Japanese: Unknown
  184. 82        X1-17 Chipset           Japanese: Unknown
  185. 83        Cony Mapper             Japanese: Garbo Dentsu
  186. 84        PasoFami Mapper!        Japanese: (.500 .MOD) Supported       
  187.  
  188.  
  189. [Below is the current possibilities for the second figure of the 7th byte.]
  190.  
  191. This part of the byte is the place you setup the game to use, or not use
  192. Horizontal or Vertical mirroring, Battery Backup, 4 Screen VRAM, and a built
  193. in Trainer.  Below are the different combinations of all the listed options
  194. in HEXidecimal format.
  195.  
  196. 0 = H (Horizontal Mirroring ONLY)
  197. 1 = V (Vertical Mirroring ONLY)
  198. 2 = H + Bat. (Horizontal Mirroring + Battery ON)
  199. 3 = V + Bat. (Vertical Mirroring + Battery ON)
  200. 4 = H + Train. (Horizontal Mirroring + Trainer ON)
  201. 5 = V + Train. (Vertical Mirroring + Trainer ON)
  202. 6 = H + Bat. + Train. (Horizontal Mirroring + Battery and Trainer ON)
  203. 7 = V + Bat. + Train. (Vertical Mirroring + Battery and Trainer ON)
  204. 8 = H + 4scr. (Horizontal Mirroring + 4 Screen VRAM ON)
  205. 9 = V + 4scr. (Vertical Mirroring + 4 Screen VRAM ON)
  206. A = H + Bat. + 4scr. (Horizontal Mirroring + Battery and 4 Screen VRAM ON)
  207. B = V + Bat. + 4scr. (Vertical Mirroring + Battery and 4 Screen VRAM ON)
  208. C = H + 4scr. + Train. (Horizontal Mirroring + 4 Screen VRAM and Trainer ON)
  209. D = V + 4scr. + Train. (Vertical Mirroring + 4 Screen VRAM and Trainer ON)
  210. E = H + Bat. + 4scr. + Train. (Horizontal Mirroring + Battery, 4 Screen VRAM,
  211.     and Trainer ON)
  212. F = V + Bat. + 4scr. + Train. (Vertical Mirroring + Battery, 4 Screen VRAM,
  213.     and Trainer ON)
  214.  
  215.  
  216. [Sect. 3: - Common iNES File Sizes & What They Are Made of (PRG/CHR)]_________
  217.  
  218. These are the "known" formats TO ME for the iNES format NES Players!  Be
  219. advised that "ROM" and "VROM" were the names of the chips that the "PRG" and
  220. "CHR" data were stored on.  [ROM = PRG   VROM = CHR]
  221.  
  222. [24K - 24576 bytes]
  223. (EX: Donkey Kong - 131Kbit ROM + 65Kbit VROM)
  224.  
  225. PRG => 16384 bytes (1 x 16kb pages)
  226. CHR => 8192 bytes (1 x 8kb pages)
  227.  
  228.  
  229. [40K - 40960 bytes]
  230. (EX: Super Mario Bros. - 262Kbit ROM + 65Kbit VROM)
  231.  
  232. PRG => 32768 bytes (2 x 16kb pages)
  233. CHR => 8192 bytes (1 x 8kb pages)
  234.  
  235.  
  236. [48K - 49152 bytes]
  237. (EX: Twin-Bee - 262Kbit ROM + 131Kbit VROM)
  238.  
  239. PRG => 32768 bytes (2 x 16kb pages)
  240. CHR => 16384 bytes (2 x 8kb pages)
  241.  
  242.  
  243. [64K - 65536 bytes]
  244. (EX: Spy Hunter - 262Kbit ROM + 262Kbit VROM)
  245.  
  246. PRG => 32768 bytes (2 x 16kb pages)
  247. CHR => 32768 bytes (4 x 8kb pages)
  248.  
  249.  
  250. [80K - 81936 bytes]
  251. (EX: Dragon Warrior - 512 Kbit ROM + 131Kbit VROM)
  252.  
  253. PRG => 65532 bytes (4 x 16kb pages)
  254. CHR => 16384 bytes (2 x 8kb pages)
  255.  
  256.  
  257. [128K - 131088 bytes]
  258. (EX: Legend of Zelda - 1MBit ROM)
  259.  
  260. PRG => 131088 bytes (8 x 16kb pages)
  261. CHR => (NONE - "imbedded")
  262.  
  263.  
  264. [132K - 139280 bytes]
  265. (EX: Stinger (Twin Bee 2 USA - 1MBit ROM + 65Kbit "imbedded" VROM)
  266.  
  267. PRG => 131088 bytes (8 x 18kb pages)
  268. CHR => (8192 bytes ="imbedded")
  269.  
  270.  
  271. [160K - 163840 bytes]
  272. (EX: Mappy Land: 1MBit ROM + 262Kbit VROM)
  273.  
  274. PRG => 131088 bytes (8 x 18kb pages)
  275. CHR => 32768 bytes (4 x 8kb pages)
  276.  
  277.  
  278. [192K - 196608 bytes]
  279. (EX: CastleVania II: Simon's Quest - 1MBit ROM + 512Kbit VROM)
  280.  
  281. PRG => 131072 bytes (8 x 16kb pages)
  282. CHR => 65536 bytes (8 x 8kb pages)
  283.  
  284.  
  285. [192K - 196608 bytes]
  286. (EX: Wall Street Kid - 1MBit ROM + 512Kbit "imbedded" VROM)
  287.  
  288. PRG => 131072 bytes (8 x 16kb pages)
  289. CHR => (65536 bytes - "imbedded")
  290.  
  291.  
  292. [224K - 229392 bytes]
  293. (EX: Mad Max - 1MBit ROM + 785Kbit VROM]
  294.  
  295. PRG => 131072 bytes (8 x 16kb pages)
  296. CHR => 98304 bytes (12 x 8kb pages)
  297.  
  298.  
  299. [232K - 237584 bytes]
  300. (EX: Tetris 2 - 1MBit ROM + 851Kbit VROM)
  301.  
  302. PRG => 131072 bytes (8 x 16kb pages)
  303. CHR => 106496 bytes (13 x 8kb pages)
  304.  
  305.  
  306. [240K = 245760 bytes]
  307. (EX: Legend of Zelda 2 - 1MBit ROM + 917Kbit VROM)
  308.  
  309. PRG => 131072 bytes (8 x 16kb pages)
  310. CHR => 114688 bytes (14 x 8kb pages)
  311.  
  312.  
  313. [248K - 253468 bytes]
  314. (EX: Super Contra - 1Mbit ROM + 925Kbit VROM)
  315.  
  316. PRG => 131072 bytes (8 x 16kb pages)
  317. CHR => 122880 bytes (15 x 8kb pages)
  318.  
  319.  
  320. [256K - 262144 bytes]
  321. (EX: Final Fantasy - 2MBit ROM)
  322.  
  323. PRG => 262144 bytes (16 x 16kb pages)
  324. CHR => (NONE - "imbedded")
  325.  
  326.  
  327. [256K - 262144 bytes]
  328. (EX: Super Mario Bros. 2 - 1MBit ROM + 1MBbit VROM)
  329.  
  330. PRG => 131072 bytes (8 x 16kb pages)
  331. CHR => 131072 bytes (16 x 8kb pages)
  332.  
  333.  
  334. [312K - 319488 bytes]
  335. (EX: Bo Jackson Baseball - 1MBit ROM + 1458Kbit VROM)
  336.  
  337. PRG => 131072 bytes (8 x 16kb pages)
  338. CHR => 188416 bytes (23 x 8kb pages)
  339.  
  340.  
  341. [336K - 344064 bytes]
  342. (EX: Spiderman and the Sinister Six - 1MBit ROM + 2048Kbit VROM)
  343.  
  344. PRG => 131072 bytes (8 x 16kb pages)
  345. CHR => 212992 bytes (26 x 8kb pages)
  346.  
  347.  
  348. [384K - 393216 bytes]
  349. (EX: Ikari Warriors 2 - 2MBit ROM + 1MBit "imbedded" VROM)
  350.  
  351. PRG => 262144 bytes (16 x 16kb pages)
  352. CHR => (131072 bytes - "imbedded")
  353.  
  354.  
  355. [384K - 393216 bytes]
  356. (EX: Super Mario Bros. 3 - 2MBit ROM + 1MBit VROM)
  357.  
  358. PRG => 262144 bytes (16 x 16kb pages)
  359. CHR => 131072 bytes (16 x 8kb pages)
  360.  
  361.  
  362. [384K - 393216 bytes]
  363. (EX: Gremlins 2: the New Batch = 1 MBit ROM + 2MBit VROM)
  364.  
  365. PRG => 131072 bytes (8 x 16kb pages)
  366. CHR => 262144 bytes (32 x 8kb pages)
  367.  
  368.  
  369. [512K - 524288 bytes]
  370. (EX: CastleVania III: Dracula's Curse - 2MBit ROM + 2MBit VROM)
  371.  
  372. PRG => 262144 bytes (16 x 16kb pages)
  373. CHR => 262144 bytes (32 x 8kb pages)
  374.  
  375.  
  376. [768K - 786432 bytes] - 1st and ONLY 6MBit NES GAME!
  377. (EX: Kirby's Adventure - 4MBit ROM + 2MBit VROM)
  378.  
  379. PRG => 524288 bytes (32 x 16kb pages)
  380. CHR => 262144 bytes (32 x 8kb pages)
  381.  
  382.  
  383. [1024K - 1048576 bytes]
  384. (EX: Forget Name (Japanese) - 4MBit ROM + 4MBit VROM)
  385.  
  386. PRG => 524288 bytes (32 x 16kb pages)
  387. CHR => 524288 bytes (64 x 8kb pages)
  388.  
  389.  
  390. [1024K - 1048576 bytes]
  391. (EX: 100-in-1 illegal cart - 8Mbit ROM)
  392.  
  393. PRG => 1048576 bytes (64 x 16kb pages)
  394. CHR => (NONE - "imbedded")
  395.  
  396.  
  397. * NOTE: 8MBit (Megabit) is equal to 1 MB (Megabyte).  As far as I know from
  398.         reading NES technical data the 8MBit/1MB game is the largest game size
  399.         supported by the NES as of when it was discontinued in Summer 1994
  400.         with its final game Wario's Woods in the United States.
  401.  
  402.  
  403. [Sect. 4: - HEXidecimal Values of the PRG/CHR]________________________________
  404.  
  405. [PRG - (Range 1 x 16kb pages -> 64 x 16kb pages)]
  406. -There is a BARE MINIMUM required for PRG which is 1 x 16kb pages!
  407.  
  408. * NOTE: To figure out the exact size in bytes each of these pages are worth
  409.         just start at 1 x 16kb pages (aka: 16384 bytes) and just keep adding
  410.         16384 more for each "page" higher.
  411.  
  412. (1 x 16kb pages)  = 01     (2 x 16kb pages)  = 02     (3 x 16kb pages)  = 03
  413. (4 x 16kb pages)  = 04     (5 x 16kb pages)  = 05     (6 x 16kb pages)  = 06
  414. (7 x 16kb pages)  = 07     (8 x 16kb pages)  = 08     (9 x 16kb pages)  = 09
  415. (10 x 16kb pages) = 0A     (11 x 16kb pages) = 0B     (12 x 16kb pages) = 0C
  416. (13 x 16kb pages) = 0D     (14 x 16kb pages) = 0E     (15 x 16kb pages) = 0F
  417. (16 x 16kb pages) = 10     (17 x 16kb pages) = 11     (18 x 16kb pages) = 12
  418. (19 x 16kb pages) = 13     (20 x 16kb pages) = 14     (21 x 16kb pages) = 15
  419. (22 x 16kb pages) = 16     (23 x 16kb pages) = 17     (24 x 16kb pages) = 18
  420. (25 x 16kb pages) = 19     (26 x 16kb pages) = 1A     (27 x 16kb pages) = 1B
  421. (28 x 16kb pages) = 1C     (29 x 16kb pages) = 1D     (30 x 16kb pages) = 1E
  422. (31 x 16kb pages) = 1F     (32 x 16kb pages) = 20     (33 x 16kb pages) = 21
  423. (34 x 16kb pages) = 22     (35 x 16kb pages) = 23     (36 x 16kb pages) = 24
  424. (37 x 16kb pages) = 25     (38 x 16kb pages) = 26     (39 x 16kb pages) = 27
  425. (40 x 16kb pages) = 28     (41 x 16kb pages) = 29     (42 x 16kb pages) = 2A
  426. (43 x 16kb pages) = 2B     (44 x 16kb pages) = 2C     (45 x 16kb pages) = 2D
  427. (46 x 16kb pages) = 2E     (47 x 16kb pages) = 2F     (48 x 16kb pages) = 30 
  428. (49 x 16kb pages) = 31     (50 x 16kb pages) = 32     (51 x 16kb pages) = 33
  429. (52 x 16kb pages) = 34     (53 x 16kb pages) = 35     (54 x 16kb pages) = 36
  430. (55 x 16kb pages) = 37     (56 x 16kb pages) = 38     (57 x 16kb pages) = 39
  431. (58 x 16kb pages) = 3A     (59 x 16kb pages) = 3B     (60 x 16kb pages) = 3C
  432. (61 x 16kb pages) = 3D     (62 x 16kb pages) = 3E     (63 x 16kb pages) = 3F
  433. (64 x 16kb pages) = 40
  434.  
  435. ** SPECIAL NOTICE ** There is now DUAL MMC1 Chipset handling avaliable which
  436. pushes the total PRG banking up to 32kb pages via 2 16kb pages PRG chips.
  437.  
  438. This was quite a feat performed with the work of imid, EFX, star69, and Marat
  439. Fayzullin to get it to run, and because of this DRAGON WARRIOR III, and other
  440. "like" games now work!  This game for instance uses a 32kb banking mode
  441. between two MMC1 chips, and to make them work together they communicate with
  442. each other on the "4th" byte of the game image(not including the iNES header.)
  443.  
  444.  
  445. [CHR - (Range 1 x 8kb pages -> 64 x 8kb pages)]
  446. -There is NO MINIMUM required for CHR data because some games have the CHR
  447.  data imbedded into the PRG info.
  448.  
  449. * NOTE: To figure out the exact size in bytes each of these pages are worth
  450.         just start at 1 x 8kb pages (aka: 8192 bytes) and just keep adding
  451.         8192 bytes more for each "page" higher.
  452.  
  453. (1 x 8kb pages)  = 01       (2 x 8kb pages)  = 02       (3 x 8kb pages)  = 03
  454. (4 x 8kb pages)  = 04       (5 x 8kb pages)  = 05       (6 x 8kb pages)  = 06
  455. (7 x 8kb pages)  = 07       (8 x 8kb pages)  = 08       (9 x 8kb pages)  = 09
  456. (10 x 8kb pages) = 0A       (11 x 8kb pages) = 0B       (12 x 8kb pages) = 0C
  457. (13 x 8kb pages) = 0D       (14 x 8kb pages) = 0E       (15 x 8kb pages) = 0F
  458. (16 x 8kb pages) = 10       (17 x 8kb pages) = 11       (18 x 8kb pages) = 12
  459. (19 x 8kb pages) = 13       (20 x 8kb pages) = 14       (21 x 8kb pages) = 15
  460. (22 x 8kb pages) = 16       (23 x 8kb pages) = 17       (24 x 8kb pages) = 18
  461. (25 x 8kb pages) = 19       (26 x 8kb pages) = 1A       (27 x 8kb pages) = 1B
  462. (28 x 8kb pages) = 1C       (29 x 8kb pages) = 1D       (30 x 8kb pages) = 1E
  463. (31 x 8kb pages) = 1F       (32 x 8kb pages) = 20       (33 x 8kb pages) = 21
  464. (34 x 8kb pages) = 22       (35 x 8kb pages) = 23       (36 x 8kb pages) = 24
  465. (37 x 8kb pages) = 25       (38 x 8kb pages) = 26       (39 x 8kb pages) = 27
  466. (40 x 8kb pages) = 28       (41 x 8kb pages) = 29       (42 x 8kb pages) = 2A
  467. (43 x 8kb pages) = 2B       (44 x 8kb pages) = 2C       (45 x 8kb pages) = 2D
  468. (46 x 8kb pages) = 2E       (47 x 8kb pages) = 2F       (48 x 8kb pages) = 30
  469. (49 x 8kb pages) = 31       (50 x 8kb pages) = 32       (51 x 8kb pages) = 33
  470. (52 x 8kb pages) = 34       (53 x 8kb pages) = 35       (54 x 8kb pages) = 36
  471. (55 x 8kb pages) = 37       (56 x 8kb pages) = 38       (57 x 8kb pages) = 39
  472. (58 x 8kb pages) = 3A       (59 x 8kb pages) = 3B       (60 x 8kb pages) = 3C
  473. (61 x 8kb pages) = 3D       (62 x 8kb pages) = 3E       (63 x 8kb pages) = 3F
  474. (64 x 8kb pages) = 40
  475.  
  476.  
  477. [Sect. 5: - Miscellaneous Information on the NES Format]______________________
  478.  
  479. * The End of the CART.NES file ...the Title]
  480.   If you wish you can add a title to your NES ROM and below shows you how to
  481.   do that manually, and the size limits for that title.
  482.  
  483.   1) First at the very end of the ROM you will eventually ADD 128 bytes to the
  484.      ROM.  But first, which is part of this 128 bytes, is the addition of the
  485.      NES Title.  Starting at the first added byte type in the name normally in
  486.      the character part of the hexeditor.
  487.  
  488.   2) Next, to finish this is successfully, go over to the HEXidecimal part of
  489.      the HEXeditor and add in double zeros (00) until you have added in a
  490.      a TOTAL OF 128 BYTES (which includes the the Title you added yourself.)
  491.      (So subtract the total bytes of the title from 128 so you do it right.)
  492.  
  493.   3) If you did it right you now have successfully added a title to your NES
  494.      ROM and it will show in the title bar in the ROM checkers like NESImage.
  495.  
  496.  
  497. [Sect. 6: - Let's Get Cracking on Prepping Your RAW/FFE/PasoFami Image]_______
  498.  
  499. * "RAW" Image Conversion to iNES
  500.  
  501.   1) For starters check and see if that RAW NES rom image you got is or is not
  502.      interleaved.  (See #3 if it's interleaved.)
  503.  
  504.   2) Great!  It's not interleaved so what you need to do is to just add 16
  505.      bytes onto the beginning of this ROM image.  Then just add the standard
  506.      NES header to the ROM as stated in Section 1, and then toy around with
  507.      the mappers until you can or can't get the game to work or do something.
  508.  
  509.   3) Crap, it's interleaved, don't worry it's fixable.  What you need to do is
  510.      to write or find a program that will UN-interleave your ROM.  This is the
  511.      process of seperating all the even and odd bytes.  The even bytes are the
  512.      ROM (or PRG) data, and the odd bytes are the VROM (or CHR) data if that
  513.      exists.
  514.  
  515.   4) Next, in MS-DOS, re-join the PRG and CHR data in the proper order. (Which
  516.      is PRG data before CHR data.)  First take the split ROM and VROM files and
  517.      name them something like PARODIUS.PRG(ROM) and PARODIUS.CHR(VROM)...
  518.      (Parodius is a japanese side shooter game I'm using for this description.)
  519.  
  520.   5) Now type: copy /B PARODIUS.PRG+PARODIUS.CHR PARODIUS.NES
  521.      (This is a BINARY copy mode in DOS which will glue the two files together
  522.      where the PRG ends and the CHR begins.)
  523.  
  524.   6) Now do as it says in Step #2 and just add the 16byte header to the top of
  525.      the NES rom, and then add the NES header as stated in Section 1.
  526.  
  527.  
  528. * "FFE" Image Conversion to iNES
  529.  
  530.   1) To start check and see if the rom is in a standard file format as shown
  531.      in Section 3.  If it isn't check to see if it is 512 bytes larger than
  532.      normal.  If so, this is most likely a FFE header.
  533.  
  534.   2) To remove this get into your HEXidecimal editor and just have it delete
  535.      the first 512 bytes from your NES rom.
  536.  
  537.   3) Then just add a 16byte header to the top of the NES rom, and then add the
  538.      NES header as stated in Section 1.
  539.  
  540.  
  541. NOTE: If this rom ends up being interleaved as well just follow the guidelines
  542.       set above in the RAW rom format section for UN-interleaving a ROM.
  543.  
  544. BE ADVISED that Some NES roms maybe seem to be 512 or 1024 bytes larger than
  545. normal.  This is because it either has a trainer, or a combination of a
  546. trainer and a FFE header.  My best advice to you is that if its a trainer
  547. leave it, if its a FFE header remove it.  If the rom is 1024 bytes its a combo
  548. of both, just remove the first 512 bytes and you'll be ok.
  549.  
  550.  
  551. * "PasoFami (*.PRG/*.CHR -ONLY-)" Image Conversion
  552.  
  553.   1) Start by deleting that annoying PRM file.  This file is used by the
  554.      PasoFami emulator just as the 16byte header that iNES uses.
  555.  
  556.   2) Next is the easy part, a simple binary copy (again I'll use Parodius as
  557.      the example.)  Type: copy /B PARODIUS.PRG+PARODIUS.CHR PARODIUS.NES
  558.      (This is a BINARY copy mode in DOS which will glue the two files together
  559.      where the PRG ends and the CHR begins.)
  560.  
  561.   3) Now do as it says in Step #2 in the RAW section and just add the 16byte
  562.      header to the top of the NES rom, and then add the NES header.
  563.  
  564. NOTE: Some PasoFami images such as Super Mario Bros. 2 for example are in the
  565.       Famicom Disk System format (EX: SMB2J.DKA) and can't be converted.  When
  566.       they can be, I'll add that info here.
  567.  
  568.  
  569. [Sect. 7: - Information (Recommended Tools for Converting iNES Images)]_______
  570.  
  571. * RECOMMENDED TOOLS FOR USE IN THE ABOVE SECTIONS:
  572.  
  573. HEXeditor - (ie: Norton Diskedit or Bedit) -I use bedit, it's tiny with lots
  574. of commands, and very efficient.
  575.  
  576. READCHAR.EXE - This tool shows you the PRG and CHR data in a RAW, FFE,
  577. PasoFami, and NES file.  With this you can determine the correct sizes of the
  578. yet to be determined PRG and CHR pages.  Also if you notice that things are
  579. out of order (in a PRG, CHR, PRG, etc) format this will show you that the game
  580. is most likely interleaved.
  581.  
  582. UNLACE.EXE - This tool is something I had custom made for me.  What this does
  583. is uninterleaves NES roms from the RAW, FFE (removes the trainer by use of
  584. command), and iNES format.  What that means is that it splits up to rom and
  585. puts all the PRG data in one file called (ROM) and all the CHR data in a file
  586. called (VROM).  And as my manual says above you just got to binary copy them
  587. back into one file ROM+VROM = NES rom.  Then add the iNES header and you just
  588. tinker with it until it works, that's if its supported yet.
  589.  
  590. Also to save time, I do recommend the use of DiskDude's NESimage from version
  591. 3.30+ because it can show you in its menu all the PRG and CHR sizes, as well
  592. as all the other options avaliable to you.  This is just for people that don't
  593. want to hexedit their rom and just want to get it working right away...
  594. impacient aren't you? :)
  595.  
  596. NESFIX.EXE - If you do use a crummy editor like DiskDude's NES Image remember
  597. to clean out bytes 8->15 so games will work in Exteneded iNES Header format
  598. compatible emulators.  To do this find and use NESFIX, and just run it like
  599. so... NESFIX CART.NES and it will clean out the extra data.  Not only that
  600. this will save time in that it takes a fraction of the time to do it one by
  601. one manually.
  602.  
  603. And finally I recommend you have a NES emulator that is as far along in
  604. development, or farther, than iNES, and a few smaller sized games to study
  605. with in conjunction with my text.
  606.  
  607.  
  608. [Sect. 8: - UPDATES (The History of the iNES Header/Format Documentation)]____
  609.  
  610. * UPDATE INFORMATION:
  611.  
  612. [2.0] - Wow v2.0! "SHOW ME THE MUSHROOM!" - Toad McGuire  ...More mappers! =)
  613.  
  614. - In Sections 1-8 I reformatted some text and removed useless info.
  615. - In Section 1 added a snipit on what byte 7 does in conjunction with byte 6
  616.   and explained that 7 = Tens digit and 6 = ones digit for the 16+ mappers.
  617.   And fixed the chart so that 0 is the beginning digit, not 1.  Stupid error.
  618. - In Section 2 I added a notice about NESFIX so people can easily repair there
  619.   polluted headers so they will work in Extened iNES Header format players.
  620. - Added in Section 2 the all important further extension to the Extended iNES
  621.   Header format created by FanWen.  Mappers 66-70 80-84 are now added, and a
  622.   rename to the Konami VRC 2 1a and 1b to VRC 1b and 1a.
  623. - Reformatted the CHR and PRG cart size lists to fit into 1 screen in Section
  624.   2 as well.
  625. - And in Section 7 I added the recommended tool of NESFIX.EXE to remove that
  626.   nasty garbage out of iNES headers.
  627. - More BS errors in grammar and spelling fixed again.  Common occurance is it
  628.   not? >:)  Maybe I need to buy Hookt awn Fawniks and Lurn too Reed. =)
  629. - In this Section 8 it got to damned big so now I'm limiting the list to the
  630.   three most current revisions for now on.  (Like anyone really looks back to
  631.   read that stuff anyways, the important stuff is above.)
  632.  
  633. [1.9] - *SMB Fanfare please..doo doo doo, dee doo, doo, doo ..iNES 0.7 is out!
  634.  
  635. - Added to Section 1 notice of basically where the new Extended iNES format is
  636.   layed out and called from, and an "I TODL YOU SO NOTICE." >:]
  637. - Added to Section 2 a new MAPPER chart for all the new iNES mappers that are
  638.   in iNES v0.7.
  639. - Added to Section 2 the explanation and example of how the new iNES Extended
  640.   Header format works and is used.
  641. - Added to Section 2 new MAPPER chart notice that the MMC5 chipset is now
  642.   emulated 100%, I checked CastleVania III and it ran perfectly!  Also the
  643.   MAPPERs 1 and 4 work near 100% now, the bugs are fixed!
  644. - Added to Section 2 new MAPPER chart notice that the MMC1 and MMC3 chipset
  645.   emulation has been bugfixed, therefore more games run that didn't before.
  646. - Added to Section 2 Instructions on how to "clean" up games that won't work
  647.   in the new "Extended iNES v0.7 Format" because some people felt it smart to
  648.   litter the games with there name, etc. into the header, thanks jerkoffs.
  649. - Added to Section 3 for "Stinger aka: Twin Bee 2", yet another cart size.
  650. - Added to Section 3 a little more info to the cart sizes with imbedded CHR.
  651. - Added to Section 4 sketchy info on why Dragon Warrior III and other 32kb
  652.   banking mode games are now playable in iNES v0.7 format.
  653. - Changed out two quotes, added two more appropriate ones.
  654. - Fixed a few text errors again, sorry I usually type this late at night.
  655.  
  656. [1.8] - A new attitude... Another addition/fix again!  Screw iNES NESticle me!
  657.  
  658. - Added to Section 1 a warning about filling up the 8th through 16th byte in
  659.   an iNES compatible ROM set.
  660. - Added to Section 2 NEW Mapper info which is that Mapper 7 and the long
  661.   awaited Mapper 9(MMC2 chip for Punch-Out!! is now functional.
  662. - Added and rewrote Section 2's working mappers list for the latest players.
  663. - Added to Section 3 a few new cart sizes so look up Dragon Warrior, Tetris 2,
  664.   and Mad Max.
  665. - Fixed this list to no longer support iNES, now all compatibility for all the
  666.   latest players is dated. (IE: June 12, 1997)
  667. - A small personal thanks section at the top of the list.
  668. - Again I have fixed a few grammatical/spelling errors, yah I know not again.
  669.  
  670. [End Of File]  -Enjoy!
  671.  
  672.