1993 Super 50 in 1 Game
From NESdev Wiki
Jump to navigationJump to search
Description
The cartridge is a multigames cartridge dated from 1993.
Versions known :
- 1993 Super 50 in 1 Game : NES version (72-pin)
Hardware
NES PCB (Front mirrored picture) | NES PCB (Bottom picture) |
---|---|
Datas chips | |
---|---|
Chips | Description |
Blob | PRG-ROM |
Blob | CHR-ROM |
Usual fonctionnal chips | |
Chips | Description |
74LS161A - 6.70 | BCD Decade counters / 4-bit binary counters |
GD74LS00 - 9223 - GoldStar | NAND Gate, LS Series, 4-Func, 2-Input, TTL, PDIP14 |
Software
The 50 in 1 rom contains 64 KB of PRG and 32 KB of CHR.
The rom has been dumped and assigned to the INES Mapper 200.
It contains 4 different games that can be beginned at different levels.
Dumping method
This script can dump the cartridge with the INLretro-prog dumper (Device firmware version: 2.3.x) :
dumpMG109.lua |
---|
File:DumpMG109.lua.txt |
-- create the module's table local dumpmg109 = {} -- import required modules local dict = require "scripts.app.dict" local nes = require "scripts.app.nes" local dump = require "scripts.app.dump" local flash = require "scripts.app.flash" local time = require "scripts.app.time" local files = require "scripts.app.files" local swim = require "scripts.app.swim" local buffers = require "scripts.app.buffers" -- local functions local function create_header( file, prgKB, chrKB ) -- Mapper : 200 ; Mirroring : 0 (Horizontal) nes.write_header( file, prgKB, chrKB, 200, 0) end --dump the PRG ROM local function dump_prgrom( file, rom_size_KB, debug ) --PRG-ROM dump 16KB at a time local KB_per_read = 16 local num_reads = rom_size_KB / KB_per_read local read_count = 0 local addr_base = 0x80 -- $8000 print("CPU dump :") while ( read_count < num_reads ) do if debug then print( "dump PRG part ", read_count, " of ", num_reads) end -- pause of 1 second to take care about the chips local time=os.clock()+1 while time>os.clock() do end local nobusconflicts = dict.nes("NES_CPU_RD", 0x8000 | read_count); dict.nes("NES_CPU_WR", 0x8000 | read_count , nobusconflicts) dump.dumptofile( file, KB_per_read, addr_base, "NESCPU_PAGE", false ) read_count = read_count + 1 end end --dump the CHR ROM local function dump_chrrom( file, rom_size_KB, debug ) local KB_per_read = 8 --dump both PT at once local num_reads = rom_size_KB / KB_per_read local read_count = 0 local addr_base = 0x00 -- $0000 print("PPU dump :") while ( read_count < num_reads ) do if debug then print( "dump CHR part ", read_count, " of ", num_reads) end local time=os.clock()+1 while time>os.clock() do end local nobusconflicts = dict.nes("NES_CPU_RD", 0x8000 | read_count); dict.nes("NES_CPU_WR", 0x8000 | read_count , nobusconflicts) dump.dumptofile( file, KB_per_read, addr_base, "NESPPU_PAGE", false ) read_count = read_count + 1 end end --Cart should be in reset state upon calling this function --this function processes all user requests for this specific board/mapper --local function process( test, read, erase, program, verify, dumpfile, flashfile, verifyfile) local function process(process_opts, console_opts) local test = process_opts["test"] local read = process_opts["read"] local erase = process_opts["erase"] local program = process_opts["program"] local verify = process_opts["verify"] local dumpfile = process_opts["dump_filename"] local flashfile = process_opts["flash_filename"] local verifyfile = process_opts["verify_filename"] local rv = nil local file local prg_size = console_opts["prg_rom_size_kb"] local chr_size = console_opts["chr_rom_size_kb"] local wram_size = console_opts["wram_size_kb"] --initialize device i/o for NES dict.io("IO_RESET") dict.io("NES_INIT") print("\nRunning dumpMG109.lua") --dump the cart to dumpfile if read then print("\nDumping ROM...") file = assert(io.open(dumpfile, "wb")) --create header: pass open & empty file & rom sizes create_header(file, prg_size, chr_size) --TODO find bank table to avoid bus conflicts! --dump cart into file time.start() --dump cart into file dump_prgrom(file, prg_size, false) dump_chrrom(file, chr_size, false) time.report(prg_size) --close file assert(file:close()) print("DONE Dumping ROM") end dict.io("IO_RESET") end -- functions other modules are able to call dumpmg109.process = process -- return the module's table return dumpmg109 |
Under UNIX, the commands to run are :
./inlretro -s scripts/inlretro3.lua -c NES -m dumpmg109 -x 64 -y 32 -d 50in1-1993.nes
The NES header of the rom is to set to
Games Menu
There are 13 unique games and the same games at different levels :
- 1942
- Arkanoid
- B-Wings
- Battle City
- Bomber Man 1
- Contra
- Dig Dug
- Field Combat
- Galaxian
- Ninja-Kun
- Super Mario Bros 1 (Platforms / 1986)
- Tetris (Tengen)
- TwinBee
Cartridge Menu | |||
---|---|---|---|
N° | Game Name | Original Game Name | Level |
001 | CONTRA | Contra | Stage 1 |
002 | TETRIS 2 | Tetris (Tengen) | |
003 | SUPER MARIO | Super Mario Bros 1 (Platforms / 1986) | World 1-1 |
004 | ARKANOID | Arkanoid | Round 1 |
005 | ASUIT CONTRA | Contra | Stage 1 |
006 | TANK | Battle City | Stage 1 |
007 | GALAXIAN | Galaxian | Flag 1 |
008 | FIAME CONTRA | Contra | Stage 1 |
009 | DIG DUG | Dig Dug | Round 1 |
010 | TWIN BEE | TwinBee | |
011 | SHOTE CONTRA | Contra | Stage 1 |
012 | 1942 | 1942 | |
013 | BOMBER MAN | Bomber Man 1 | Stage 1 |
014 | CONTRA 30 | Contra | Stage 1 |
015 | TANK USA | Battle City | Stage 4 |
016 | B-WINGS | B-Wings | Stage 1 |
017 | ASUIT CONTRA 30 | Contra | Stage 1 |
018 | SPEED MARIO | Super Mario Bros 1 (Platforms / 1986) | World 1-1 |
019 | NINJA | Ninja-Kun | Scene 1 |
020 | FIAME CONTRA 30 | Contra | Stage 1 |
021 | ARKANOID 2 | Arkanoid | Round 4 |
022 | DIG DUG 2 | Dig Dug | Round 2 |
023 | SHOTE CONTRA 30 | Contra | Stage 1 |
024 | TANK CHN | Battle City | Stage 7 |
025 | B-WINGS WID | B-Wings | Stage 1 |
026 | BASE1 | Contra | Stage 2 – Base 1 |
027 | NINJA 2 | Ninja-Kun | Scene 2 |
028 | BOMBER MAN OT | Bomber Man 1 | Stage 1 |
029 | WATERFALL | Contra | Stage 3 |
030 | GALAXIAN 2 | Galaxian | Flag 2 |
031 | COMBAT | Field Combat | |
032 | BASE2 | Contra | Stage 4 – Base 2 |
033 | SUPER MARIO 2 | Super Mario Bros 1 (Platforms / 1986) | World 2-1 |
034 | TANK JPN | Battle City | Stage 10 |
035 | SNOW FIELD | Contra | Stage 5 |
036 | DIG DUG 3 | Dig Dug | Round 3 |
037 | ARKANOID 3 | Arkanoid | Round 7 |
038 | ENERGY ZONE | Contra | Stage 6 |
039 | NINJA 3 | Ninja-Kun | Scene 3 |
040 | B-WINGS MT | B-Wings | Stage 1 |
041 | HENGAR | Contra | Stage 7 |
042 | TANK IRN | Battle City | Stage 13 |
043 | NINJA 4 | Ninja-Kun | Scene 4 |
044 | ALIEN LAIR | Contra | Stage 8 |
045 | DIG DUG 4 | Dig Dug | Round 4 |
046 | GALAXIAN 3 | Galaxian | Flag 3 |
047 | BASE1 ASU | Contra | Stage 2 – Base 1 |
048 | SUPER MARIO 3 | Super Mario Bros 1 (Platforms / 1986) | World 3-1 |
049 | TANK ISR | Battle City | Stage 16 |
050 | WATERFALL ASU | Contra | Stage 3 |
051 | B-WINGS VAN | B-Wings | Stage 1 |
052 | ARKANOID 4 | Arkanoid | Round A |
053 | BASE2 ASU | Contra | Stage 4 – Base 2 |
054 | COMBAT AX | Field Combat | |
055 | BOMBER MAN NS | Bomber Man 1 | Stage 1 |
056 | SNOW FIELD ASU | Contra | Stage 5 |
057 | TANK-I | Battle City | Stage 19 |
058 | NINJA 5 | Ninja-Kun | Scene 5 |
059 | ENERGY ZONE ASU | Contra | Stage 6 |
060 | BOMBER MAN RP | Bomber Man 1 | Stage 1 |
061 | DIG DUG 5 | Dig Dug | Round 5 |
062 | HENGAR ASU | Contra | Stage 7 |
063 | SUPER MARIO 4 | Super Mario Bros 1 (Platforms / 1986) | World 4-1 |
064 | TANK JOR | Battle City | Stage 22 |
065 | ALIEN LAIR ASU | Contra | Stage 8 |
066 | B-WINGS SID | B-Wings | Stage 1 |
067 | ARKANOID 5 | Arkanoid | Round D |
068 | BASE1 FIA | Contra | Stage 2 – Base 1 |
069 | NINJA 6 | Ninja-Kun | Scene 6 |
070 | COMBAT BX | Field Combat | |
071 | WATERFALL FIA | Contra | Stage 3 |
072 | TANK 2C | Battle City | Stage 25 |
073 | GALAXIAN 4 | Galaxian | Flag 4 |
074 | BASE2 FIA | Contra | Stage 4 – Base 2 |
075 | BOMBER MAN TW | Bomber Man 1 | Stage 1 |
076 | DIG DUG 6 | Dig Dug | Round 6 |
077 | SNOW FIELD FIA | Contra | Stage 5 |
078 | SUPER MARIO 5 | Super Mario Bros 1 (Platforms / 1986) | World 5-1 |
079 | B-WINGS AT | B-Wings | Stage 1 |
080 | ENERGY ZONE FIA | Contra | Stage 6 |
081 | TANK LEB | Battle City | Stage 28 |
082 | ARKANOID 6 | Arkanoid | Round G |
083 | HENGAR FIA | Contra | Stage 7 |
084 | B-WINGS HAM | B-Wings | Stage 1 |
085 | NINJA 7 | Ninja-Kun | Scene 7 |
086 | ALIAN LAIR FIA | Contra | Stage 8 |
087 | BOMBER MAN DF | Bomber Man 1 | Stage 1 |
088 | DIG DUG 7 | Dig Dug | Round 7 |
089 | BASE1 SHO | Contra | Stage 2 – Base 1 |
090 | TANK USR | Battle City | Stage 31 |
091 | COMBAT CX | Field Combat | |
092 | WATERFALL SHO | Contra | Stage 3 |
093 | SUPER MARIO 6 | Super Mario Bros 1 (Platforms / 1986) | World 6-1 |
094 | B-WINGS JMP | B-Wings | Stage 1 |
095 | BASE2 SHO | Contra | Stage 4 – Base 2 |
096 | NINJA 8 | Ninja-Kun | Scene 8 |
097 | ARKANOID 7 | Arkanoid | Round J |
098 | SNOW FIELD SHO | Contra | Stage 5 |
099 | DIG DUG 8 | Dig Dug | Round 8 |
100 | GALAXIAN 5 | Galaxian | Flag 5 |
101 | COMBAT DX | Field Combat | |
102 | DIG DUG 9 | Dig Dug | Round 9 |
103 | TANK IRI | Battle City | Stage 34 |
104 | ENERGY ZONE SHO | Contra | Stage 6 |
105 | B-WINGS DY | B-Wings | Stage 1 |
106 | NINJA 9 | Ninja-Kun | Scene 9 |
107 | HENGAR SHO | Contra | Stage 7 |
108 | SUPER MARIO 7 | Super Mario Bros 1 (Platforms / 1986) | World 7-1 |
109 | SUPER 1942 | 1942 | |
110 | BOMBER MAN AN | Bomber Man 1 | Stage 1 |
111 | TANK-II | Battle City | Stage 1 |
112 | ARKANOID 8 | Arkanoid | Round L |
113 | ALIEN LAIR SHO | Contra | Stage 8 |
114 | GALAXIAN 6 | Galaxian | Flag 6 |
115 | SUPER TWIN BEE | TwinBee | |
116 | COMBAT EX | Field Combat | |
117 | TANK FRE | Battle City | Stage 18 |
118 | B-WINGS FIR | B-Wings | Stage 1 |
119 | DIG DUG 10 | Dig Dug | Round 10 |
120 | SUPER MARIO 8 | Super Mario Bros 1 (Platforms / 1986) | World 8-1 |