1993 Super 50 in 1 Game: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
 
(3 intermediate revisions by the same user not shown)
Line 52: Line 52:
!colspan="1"| dumpMG109.lua
!colspan="1"| dumpMG109.lua
|-
|-
| [[File:dumpMG109.lua.txt|frame|center|dumpMG109.lua]]
| [[File:DumpMG109.lua.txt|frame|center|dumpMG109.lua]]
|-
|-
|<pre>-- create the module's table
|<pre>-- create the module's table
Line 119: Line 119:
if debug then print( "dump CHR part ", read_count, " of ", num_reads) end
if debug then print( "dump CHR part ", read_count, " of ", num_reads) end


-- pause of 1 second to take care about the chips
local time=os.clock()+1
local time=os.clock()+1
while time>os.clock()
while time>os.clock()
Line 203: Line 204:
== Games Menu ==
== Games Menu ==


There are 13 unique games and the same games at different levels :
There are 4 unique games and the same games at different levels :
* 1942
* Duck Hunt
* Arkanoid
* Wild Gunman
* B-Wings
* Battle City
* Battle City
* Bomber Man 1
* Mario Bros (Arcade / 1983)
* Contra
* Dig Dug
* Field Combat
* Galaxian
* Ninja-Kun
* Super Mario Bros 1 (Platforms / 1986)
* Tetris (Tengen)
* TwinBee


{| class="wikitable" align="center" style="margin: auto;"
{| class="wikitable" align="center" style="margin: auto;"
Line 224: Line 216:
!colspan="1"| N° || Game Name || Original Game Name || Level
!colspan="1"| N° || Game Name || Original Game Name || Level
|-
|-
| 001 || CONTRA || Contra || Stage 1
| 1 || DUCK HUNT || Duck Hunt || Game A : 1 duck
|-
| 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
| 2 || TWO DUCKS HUNT || Duck Hunt || Game B : 2 ducks
|-
|-
| 073 || GALAXIAN 4 || Galaxian || Flag 4
| 3 || CLAY SHOOTING || Duck Hunt || Game C : Clay Shooting
|-
|-
| 074 || BASE2 FIA || Contra || Stage 4 – Base 2
| 4 || WILD GUNMAN || Wild Gunman || Game A : 1 outlaw
|-
|-
| 075 || BOMBER MAN TW || Bomber Man 1 || Stage 1
| 5 || TWO GUNMEN || Wild Gunman || Game B : 2 outlaws
|-
|-
| 076 || DIG DUG 6 || Dig Dug || Round 6
| 6 || SALOON GUNMEN || Wild Gunman || Game C : Gang
|-
|-
| 077 || SNOW FIELD FIA || Contra || Stage 5
| 7 || BATTLE CITY 1 || Battle City || Stage 1
|-
|-
| 078 || SUPER MARIO 5 || Super Mario Bros 1 (Platforms / 1986) || World 5-1
| 8 || BATTLE CITY 2 || Battle City || Stage 2
|-
|-
| 079 || B-WINGS AT || B-Wings || Stage 1
| 9 || BATTLE CITY 3 || Battle City || Stage 3
|-
|-
| 080 || ENERGY ZONE FIA || Contra || Stage 6
| 10 || BATTLE CITY 4 || Battle City || Stage 4
|-
|-
| 081 || TANK LEB || Battle City || Stage 28
| 11 || BATTLE CITY 5 || Battle City || Stage 5
|-
|-
| 082 || ARKANOID 6 || Arkanoid || Round G
| 12 || BATTLE CITY 6 || Battle City || Stage 6
|-
|-
| 083 || HENGAR FIA || Contra || Stage 7
| 13 || BATTLE CITY 7 || Battle City || Stage 7
|-
|-
| 084 || B-WINGS HAM || B-Wings || Stage 1
| 14 || BATTLE CITY 8 || Battle City || Stage 8
|-
|-
| 085 || NINJA 7 || Ninja-Kun || Scene 7
| 15 || BATTLE CITY 9 || Battle City || Stage 9
|-
|-
| 086 || ALIAN LAIR FIA || Contra || Stage 8
| 16 || BATTLE CITY 10 || Battle City || Stage 10
|-
|-
| 087 || BOMBER MAN DF || Bomber Man 1 || Stage 1
| 17 || BATTLE CITY 11 || Battle City || Stage 11
|-
|-
| 088 || DIG DUG 7 || Dig Dug || Round 7
| 18 || BATTLE CITY 12 || Battle City || Stage 12
|-
|-
| 089 || BASE1 SHO || Contra || Stage 2 – Base 1
| 19 || BATTLE CITY 13 || Battle City || Stage 13
|-
|-
| 090 || TANK USR || Battle City || Stage 31
| 20 || BATTLE CITY 14 || Battle City || Stage 14
|-
|-
| 091 || COMBAT CX || Field Combat ||  
| 21 || BATTLE CITY 15 || Battle City || Stage 15
|-
|-
| 092 || WATERFALL SHO || Contra || Stage 3
| 22 || BATTLE CITY 16 || Battle City || Stage 16
|-
|-
| 093 || SUPER MARIO 6 || Super Mario Bros 1 (Platforms / 1986) || World 6-1
| 23 || BATTLE CITY 17 || Battle City || Stage 17
|-
|-
| 094 || B-WINGS JMP || B-Wings || Stage 1
| 24 || BATTLE CITY 18 || Battle City || Stage 18
|-
|-
| 095 || BASE2 SHO || Contra || Stage 4 – Base 2
| 25 || BATTLE CITY 19 || Battle City || Stage 19
|-
|-
| 096 || NINJA 8 || Ninja-Kun || Scene 8
| 26 || BATTLE CITY 20 || Battle City || Stage 20
|-
|-
| 097 || ARKANOID 7 || Arkanoid || Round J
| 27 || BATTLE CITY 21 || Battle City || Stage 21
|-
|-
| 098 || SNOW FIELD SHO || Contra || Stage 5
| 28 || BATTLE CITY 22 || Battle City || Stage 22
|-
|-
| 099 || DIG DUG 8 || Dig Dug || Round 8
| 29 || BATTLE CITY 23 || Battle City || Stage 23
|-
|-
| 100 || GALAXIAN 5 || Galaxian || Flag 5
| 30 || BATTLE CITY 24 || Battle City || Stage 24
|-
|-
| 101 || COMBAT DX || Field Combat ||  
| 31 || BATTLE CITY 25 || Battle City || Stage 25
|-
|-
| 102 || DIG DUG 9 || Dig Dug || Round 9
| 32 || BATTLE CITY 26 || Battle City || Stage 26
|-
|-
| 103 || TANK IRI || Battle City || Stage 34
| 33 || BATTLE CITY 27 || Battle City || Stage 27
|-
|-
| 104 || ENERGY ZONE SHO || Contra || Stage 6
| 34 || BATTLE CITY 28 || Battle City || Stage 28
|-
|-
| 105 || B-WINGS DY || B-Wings || Stage 1
| 35 || BATTLE CITY 29 || Battle City || Stage 29
|-
|-
| 106 || NINJA 9 || Ninja-Kun || Scene 9
| 36 || BATTLE CITY 30 || Battle City || Stage 30
|-
|-
| 107 || HENGAR SHO || Contra || Stage 7
| 37 || BATTLE CITY 31 || Battle City || Stage 31
|-
|-
| 108 || SUPER MARIO 7 || Super Mario Bros 1 (Platforms / 1986) || World 7-1
| 38 || BATTLE CITY 32 || Battle City || Stage 32
|-
|-
| 109 || SUPER 1942 || 1942 ||  
| 39 || BATTLE CITY 33 || Battle City || Stage 33
|-
|-
| 110 || BOMBER MAN AN || Bomber Man 1 || Stage 1
| 40 || BATTLE CITY 34 || Battle City || Stage 34
|-
|-
| 111 || TANK-II || Battle City || Stage 1
| 41 || BATTLE CITY 35 || Battle City || Stage 35
|-
|-
| 112 || ARKANOID 8 || Arkanoid || Round L
| 42 || MARIO BROS 1 || Mario Bros (Arcade / 1983) || Phase 1
|-
|-
| 113 || ALIEN LAIR SHO || Contra || Stage 8
| 43 || MARIO BROS 2 || Mario Bros (Arcade / 1983) || Phase 2
|-
|-
| 114 || GALAXIAN 6 || Galaxian || Flag 6
| 44 || MARIO BROS 3 || Mario Bros (Arcade / 1983) || Phase 3
|-
|-
| 115 || SUPER TWIN BEE || TwinBee ||  
| 45 || MARIO BROS 4 || Mario Bros (Arcade / 1983) || Phase 4
|-
|-
| 116 || COMBAT EX || Field Combat ||  
| 46 || MARIO BROS 5 || Mario Bros (Arcade / 1983) || Phase 5
|-
|-
| 117 || TANK FRE || Battle City || Stage 18
| 47 || MARIO BROS 6 || Mario Bros (Arcade / 1983) || Phase 6
|-
|-
| 118 || B-WINGS FIR || B-Wings || Stage 1
| 48 || MARIO BROS 7 || Mario Bros (Arcade / 1983) || Phase 7
|-
|-
| 119 || DIG DUG 10 || Dig Dug || Round 10
| 49 || MARIO BROS 8 || Mario Bros (Arcade / 1983) || Phase 8
|-
|-
| 120 || SUPER MARIO 8 || Super Mario Bros 1 (Platforms / 1986) || World 8-1
| 50 || MARIO BROS 9 || Mario Bros (Arcade / 1983) || Phase 9
|}
|}

Latest revision as of 19:05, 26 March 2023

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)
50 in 1 NES PCB (Front mirrored picture)
50 in 1 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


50 in 1 Schematic

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

		-- 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, "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 4 unique games and the same games at different levels :

  • Duck Hunt
  • Wild Gunman
  • Battle City
  • Mario Bros (Arcade / 1983)
Cartridge Menu
Game Name Original Game Name Level
1 DUCK HUNT Duck Hunt Game A : 1 duck
2 TWO DUCKS HUNT Duck Hunt Game B : 2 ducks
3 CLAY SHOOTING Duck Hunt Game C : Clay Shooting
4 WILD GUNMAN Wild Gunman Game A : 1 outlaw
5 TWO GUNMEN Wild Gunman Game B : 2 outlaws
6 SALOON GUNMEN Wild Gunman Game C : Gang
7 BATTLE CITY 1 Battle City Stage 1
8 BATTLE CITY 2 Battle City Stage 2
9 BATTLE CITY 3 Battle City Stage 3
10 BATTLE CITY 4 Battle City Stage 4
11 BATTLE CITY 5 Battle City Stage 5
12 BATTLE CITY 6 Battle City Stage 6
13 BATTLE CITY 7 Battle City Stage 7
14 BATTLE CITY 8 Battle City Stage 8
15 BATTLE CITY 9 Battle City Stage 9
16 BATTLE CITY 10 Battle City Stage 10
17 BATTLE CITY 11 Battle City Stage 11
18 BATTLE CITY 12 Battle City Stage 12
19 BATTLE CITY 13 Battle City Stage 13
20 BATTLE CITY 14 Battle City Stage 14
21 BATTLE CITY 15 Battle City Stage 15
22 BATTLE CITY 16 Battle City Stage 16
23 BATTLE CITY 17 Battle City Stage 17
24 BATTLE CITY 18 Battle City Stage 18
25 BATTLE CITY 19 Battle City Stage 19
26 BATTLE CITY 20 Battle City Stage 20
27 BATTLE CITY 21 Battle City Stage 21
28 BATTLE CITY 22 Battle City Stage 22
29 BATTLE CITY 23 Battle City Stage 23
30 BATTLE CITY 24 Battle City Stage 24
31 BATTLE CITY 25 Battle City Stage 25
32 BATTLE CITY 26 Battle City Stage 26
33 BATTLE CITY 27 Battle City Stage 27
34 BATTLE CITY 28 Battle City Stage 28
35 BATTLE CITY 29 Battle City Stage 29
36 BATTLE CITY 30 Battle City Stage 30
37 BATTLE CITY 31 Battle City Stage 31
38 BATTLE CITY 32 Battle City Stage 32
39 BATTLE CITY 33 Battle City Stage 33
40 BATTLE CITY 34 Battle City Stage 34
41 BATTLE CITY 35 Battle City Stage 35
42 MARIO BROS 1 Mario Bros (Arcade / 1983) Phase 1
43 MARIO BROS 2 Mario Bros (Arcade / 1983) Phase 2
44 MARIO BROS 3 Mario Bros (Arcade / 1983) Phase 3
45 MARIO BROS 4 Mario Bros (Arcade / 1983) Phase 4
46 MARIO BROS 5 Mario Bros (Arcade / 1983) Phase 5
47 MARIO BROS 6 Mario Bros (Arcade / 1983) Phase 6
48 MARIO BROS 7 Mario Bros (Arcade / 1983) Phase 7
49 MARIO BROS 8 Mario Bros (Arcade / 1983) Phase 8
50 MARIO BROS 9 Mario Bros (Arcade / 1983) Phase 9