There are four parts of a game file for PCjr : 1. Header 200h byte definition: a. 01h--07h byte : 'FC GAMES'. b. 08h byte : no. of 8k bytes of CPU program ROM. Max 40h for 4M bit (512K byte). c. 09h byte : no. of 8k bytes of PPU CG ROM. Max 40h for 4M bit (512K byte). d. 0ah byte : the page no. of start address of additional routine. Range in 60h--7fh for 6000h--7f00h. e. 0bh--0ch : word of entry address of pre-called routine before jump to reset of the game to start the game. f. 0dh byte : no. of sector (512 byte per sector) of additional routine. Max 10h=8k byte. g. 0eh byte : game mode byte for early CARTRIDGE GAME (old game mode,NOT MMC1,MMC3 or new game mode). H. 0Fh byte : d7=1 for pre-call a routine before jump to reset of the game to start the game. i. 11h byte : d7=1 specially for the game 'Punch Out' CG mode, d7=0 for others. d5d4=00,01,10,11 for old game mode, new game mode, mmc1 mode and mmc3 mode. d3d2=00,01,10 for 8k,16k,32k byte per bank for program ROM bank switching of new game mode. d1d0=00,01,10,11 for 1k,2k,4k,8k byte per bank for CG ROM bank switching of new game mode. j. 12h byte : for new game mode only. d7=0 for CG ROM, d7=1 for CG RAM. d6d5d4=000,001,010,011,100,101,110 for PPU feedback pin equal to fix '0', fix '1', fix 'H', fix 'V', '0/1' enable, 'H/V' enable, '0/1/H/V' enable. d3d2=00,01,10 for no PPU VRAM mapping, 2 pages PPU VRAM mapping, 4 pages PPU VRAM mapping. d1d0=00,01,10,11 for no programable IRQ counter, PPU line up counter, CPU clock up coutner, CPU clock down counter. k. 13h byte : d7d6d5d4 is the mask bit for CPU program ROM's A18--A15 ADDRESS (ALL '0' FOR 256K BIT, ALL '1' FOR 4M BIT). d3d2d1d0 is the mask bit for PPU CG ROM's A18--A15 ADDRESS (ALL '0' FOR 256K BIT, ALL '1' FOR 4M BIT). l. 20h--23h byte : four CPU program ROM bank registers in PCjr address 4190h--4193h. Some games needs to preset data in these registers. m. 24h--27h byte : four PPU VRAM mapping registers in PCjr address 4194h--4197h. n. 28h--2fh byte : eight PPU CG ROM bank registers in PCjr address 4198h--419fh. o. 35h byte : d0=1 to enable 8k byte SRAM in CPU address range 6000h--7fffh, d0=0 disable. p. other bytes in header would be set to '00h'. Remark: 41a0h--41a4h in PCjr address are specially for IRQ : line counter register, low byte of CPU clock counter, high byte of CPU clock counter, COUNTER ENABLE(D0). 2. Routine (option) 3. CPU Progame ROM Data. Min 8K byte, Max 512k byte. 4. PPU CG ROM Data (option). Min 8K byte, Max 512k byte. Old game mode byte definitions: D4=1 for ppu feedback 'V', D4=0 for 'H'. D7D6D5=000,001,010,011,100,101,110,111 for 8 different game mode : 000: program ROM max 128k byte (1M bit), CG RAM fixed in 8K byte (64k bit), c000h--ffffh fixed in last bank,switchable program bank in 8000h--bfffh, write D2D1D0 in 8000h--ffffh area to switch 8 program ROM banks. 001: program ROM max 128k byte (1M bit), CG ROM max 32k byte (256k bit), c000h--ffffh fixed in last bank,switchable program bank in 8000h--bfffh, write D4D3D2 in 8000h--ffffh area to switch 8 program banks, write D1D0 in 8000h--ffffh area to switch 4 CG ROM banks(8k byte per bank). 010: program ROM max 256k byte (2M bit), CG RAM fixed in 8K byte (64k bit), c000h--ffffh fixed in last bank,switchable program bank in 8000h--bfffh, write D3D2D1D0 in 8000h--ffffh area to switch 16 program ROM banks. 011: program ROM max 256k byte (2M bit), CG ROM max 32k byte (256k bit), 8000h--bfffh fixed in last bank,switchable program bank in c000h--ffffh, write D3D2D1D0 in 8000h--ffffh area to switch 16 program ROM banks, write D5D4 in 8000h--ffffh area to switch 4 CG ROM banks(8k byte per bank). 100: program ROM max 128k byte (1M bit), CG ROM max 32k byte (256k bit), switchable program bank in 8000h--ffffh, write D5D4 in 8000h--ffffh area to switch 4 program banks, write D1D0 in 8000h--ffffh area to switch 4 CG ROM banks(8k byte per bank). 101: program ROM max 32k byte (256k bit), CG ROM max 32k byte (256k bit),write D1D0 in 8000h--ffffh area to switch 4 CG ROM banks(8k byte per bank). 110: program ROM max 32k byte (256k bit), CG ROM max 16k byte (128k bit),write D0 in 8000h--ffffh area to switch 2 CG ROM banks(8k byte per bank). 111: program ROM max 32k byte (256k bit), CG ROM max 8k byte (64k bit), no switchable bank. Header samples : (old game mode, ppu feedback='V', program 8K + CG 8K rom) 4000:0000 46 43 20 47 41 4D 45 53-01 01 00 00 00 00 F0 00 FC GAMES........ 4000:0010 00 00 50 00 00 00 00 00-00 00 00 00 00 00 00 00 ..P............. 4000:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0030 00 00 00 00 00 01 00 00-00 00 00 00 00 00 00 00 ................ 4000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ (old game mode, ppu feedback='V', 16k bank in 8000h--bfffh, program 128K ROM + CG 8K RAM) 4000:0000 46 43 20 47 41 4D 45 53-10 00 00 00 00 00 <10> 00 FC GAMES........ (<00> for ppu feedback='H') 4000:0010 00 00 50 00 00 00 00 00-00 00 00 00 00 00 00 00 ..P............. 4000:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0030 00 00 00 00 00 01 00 00-00 00 00 00 00 00 00 00 ................ 4000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ (128K+128K MMC1) 4000:0000 46 43 20 47 41 4D 45 53-10 10 00 00 00 00 00 00 FC GAMES........ 4000:0010 00 20 60 33 00 00 00 00-00 00 00 00 00 00 00 00 . `3............ 4000:0020 FF 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0030 00 00 00 00 00 01 00 00-00 00 00 00 00 00 00 00 ................ 4000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ (128K+128K MMC3) 4000:0000 46 43 20 47 41 4D 45 53-10 10 00 00 00 00 00 00 FC GAMES........ 4000:0010 00 30 50 33 00 00 00 00-00 00 00 00 00 00 00 00 .0P3............ 4000:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0030 00 00 00 00 00 01 00 00-00 00 00 00 00 00 00 00 ................ 4000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ (Punch Out 128K+128K RD387-1) 4000:0000 46 43 20 47 41 4D 45 53-10 10 00 00 00 00 00 00 FC GAMES........ 4000:0010 00 92 50 33 00 00 00 00-00 00 00 00 00 00 00 00 ..P3............ 4000:0020 00 0D 0E 0F 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0030 00 00 00 00 00 01 00 00-00 00 00 00 00 00 00 00 ................ 4000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 4000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ (Super Mario 3 : 256K+128K MMC3) 2000:0000 46 43 20 47 41 4D 45 53-20 10 00 00 00 00 00 00 FC GAMES ....... 2000:0010 00 30 50 73 00 00 00 00-00 00 00 00 00 00 00 00 .0Ps............ 2000:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 2000:0030 00 00 00 00 00 01 00 00-00 00 00 00 00 00 00 00 ................ 2000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 2000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 2000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 2000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ (After Burner 128K+256K Sunsoft-4) 2000:0000 46 43 20 47 41 4D 45 53-10 20 70 00 00 01 00 00 FC GAMES. p..... 2000:0010 00 15 64 37 00 00 00 00-00 00 00 00 00 00 00 00 ..d7............ 2000:0020 00 00 07 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 2000:0030 00 00 00 00 00 01 00 00-00 00 00 00 00 00 00 00 ................ 2000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 2000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 2000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 2000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................