Skip to content

Commit

Permalink
Add mappers ocornut#33 and ocornut#34 for "Super Game Gear 73 in …
Browse files Browse the repository at this point in the history
…1 [Sonic 2 ~ Street Fighter 2] (Unl)", "Super GG 21 in 1 [Sonic Drift] [Gold & Yellow Label] (Unl)", and "Super GG 30 in 1 [Sonic 2] [Gold & Yellow Label] (Unl)"

Mapper `#33` MAPPER_GG_Super_73_in_1_FFFE_FFFF is Super Game Gear 73 in 1 [Sonic 2], Super GG 21 in 1 [Sonic Drift] [Gold & Yellow Label], and Super GG 30 in 1 [Sonic 2] [Gold & Yellow Label]

Mapper `#34` MAPPER_GG_Super_73_in_1_8000_4000 is Super Game Gear 73 in 1 [Street Fighter 2]

NOTE: scroll down for information on "Super GG 21 in 1 [Sonic Drift] [Gold & Yellow Label] (Unl)" and "Super GG 30 in 1 [Sonic 2] [Gold & Yellow Label] (Unl)"

---

Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)

I've been calling it "Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)", but the actual names are different:

The menu title is "SUPER 73 IN 1"

The title on the label is "GAME GEAR 73 IN 1" (three times!)

This is a single ROM image with two different multicarts. My hardware is wired the Sonic 2 way, but the only difference is which megabyte of the ROM is first and which mapper registers are used.

To dump it, I disconnected the game cartridge from the dumper and then reconnected it for each game's section of the ROM. I then wrote the three register values shown next to that game's menu item transcription, and then read out the game contents, using mapper register paging when the game was larger than 32KB.

This is a 2MB Game Gear multicart with a total of 42 games (though only 41 are reachable in each of the two supported hardware configurations.) It has one 512KB Game Gear game: Sonic The Hedgehog 2. It has one 256KB SMS-GG game: Jang Pung II. It has three 32KB Game Gear games: Pengo, Woody Pop, and Columns. The rest are 32KB SMS and SG-1000 games: Exerion (SG-1000) (modified to coexist in the same 32KB ROM mapping region with the menu), H.E.R.O. (SG-1000),  Hustle Chummy (SG-1000), Konami no Hyper Sports, Champion Ice Hockey (SG-1000), Loderunner (SG-1000), Machine Gun Joe, Monaco GP (SG-1000), My Hero, Fushigi no Oshiro Pit Pot, Road Fighter, Rock N' Bolt (SG-1000), Satellite 7, Great Soccer, Spy vs. Spy, Super Bubble Bobble, Teddy Boy Blues, Super Tennis, Trans-Bot, Zippy Race (SG-1000), Zoom 909 (SG-1000), Super Boy II, Champion Soccer (SG-1000) (modified to coexist in the same 32KB ROM mapping region with an unused alternate menu built for a different mapper chip), Astro-Flash, Bank Panic, Great Baseball, Bomb Jack (SG-1000), Champion Boxing (SG-1000), Championship Loderunner (SG-1000), Choplifter (SG-1000), Dr. Hello, Drol (SG-1000), Sega-Galaga (with the Sega title part removed), Ghost House, GP World, Hang-On, and Hang-On 2 (SG-1000).

Most of the games appear in the menu twice under different names. Some of the names are quite misleading, and also suggest that there may be other related multicarts containing the actual games those names suggest (the games suggested by those names also exist as SMS and SG-1000 games, for the most part, but aren't in this multicart.)

However, one of the games (Jang Pung II [SMS-GG]) isn't accessible via the menu and wouldn't work anyhow, since it requires different mapper hardware.

… but, there is a whole other menu in the same ROM built for different multicart mapper hardware that does support Jang Pung II, but does not include Sonic The Hedgehog 2 — which wouldn't work with the other mapper hardware anyhow, as it requires a Sega-style mapper. This other mapper hardware also expects the two 1MB halves of the ROM to be laid out in the opposite order.

First, a description of "Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)", the "Sonic 2" variant I have the hardware for:

Also on each menu screen:
PUSH ↑. ↓. 1. 2.

Also on the label:
GAMES SELECT ON SCREEN
GamePro Magazine Best Choice
GAME GEAR (with not-quite-right R-G-B ovals)

The menu system runs in native Game Gear mode, but many of the games run in SMS-GG mode. Text for the menu system is stored in the ROM starting around address 0x4000.

The menu has ten screens. Button 1 advances to the next screen, up and down move the cursor, and button 2 starts a game. Some of the menu items have text that is rendered in SMS-accessible VRAM outside the GG visible screen area. The GG-invisible portion is from the column marked with "┊" onward.

Menu screen 1:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 01. SONIC 2       ┊ [0xFFFE=0x46, 0xFFFE=0x00, 0xFFFF=0x40] part-600-Sonic The Hedgehog 2 (U) [!]-512k.gg
 02. GG MARIO BROTHER [0xFFFE=0x4A, 0xFFFE=0x0E, 0xFFFF=0x40] part-20e-Super Boy II (KR)-32k.sms
 03. ASTRO FLASH   ┊ [0xFFFE=0x4C, 0xFFFE=0x02, 0xFFFF=0x40] part-402-Astro Flash (Hi-Com) (KR) [h]-32k.sms
 04. BANK PANIC    ┊ [0xFFFE=0x4C, 0xFFFE=0x04, 0xFFFF=0x40] part-404-bank-panic-32k.sms
→05. BASEBALL      ┊ [0xFFFE=0x4C, 0xFFFE=0x06, 0xFFFF=0x40] part-406-Great Baseball (J) [!]-32k.sms
 06. BOMB JACK     ┊ [0xFFFE=0x4C, 0xFFFE=0x08, 0xFFFF=0x40] part-408-bomb-jack-32k.sms
 07. CHAMPION BOXING [0xFFFE=0x4C, 0xFFFE=0x0A, 0xFFFF=0x40] part-40a-Champion Boxing (SG-1000 Card)-32k.sms
 08. CHAMPION LODERUNNER [0xFFFE=0x4C, 0xFFFE=0x0C, 0xFFFF=0x40] part-40c-Championship Loderunner (SG-1000)-32k.sms
 09. CHAMPION SOCCER [0xFFFE=0x4C, 0xFFFE=0x00, 0xFFFF=0x40] part-400-alt-menu-champion-soccer-32k.gg
 10. CHOPLIFTER    ┊ [0xFFFE=0x4C, 0xFFFE=0x0E, 0xFFFF=0x40] part-40e-Choplifter (SG-1000) [!]-32k.sms
```

Menu screen 2:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 11. COLUMNS       ┊ [0xFFFE=0x44, 0xFFFE=0x10, 0xFFFF=0x40] part-410-Columns (J) (Alt)-32k.gg
 12. DR.HELLO      ┊ [0xFFFE=0x4C, 0xFFFE=0x12, 0xFFFF=0x40] part-412-dr-hello-32k.sms
 13. DROL          ┊ [0xFFFE=0x4C, 0xFFFE=0x14, 0xFFFF=0x40] part-414-Drol (SG-1000)-32k.sms
 14. EXERION       ┊ [0xFFFE=0x48, 0xFFFE=0x00, 0xFFFF=0x40] part-000-menu-exerion.gg
→15. GALAGA        ┊ [0xFFFE=0x4C, 0xFFFE=0x16, 0xFFFF=0x40] part-416-sega-galaga-32k.sms
 16. GHOST HOUSE   ┊ [0xFFFE=0x4C, 0xFFFE=0x18, 0xFFFF=0x40] part-418-Ghost House (J) [!]-32k.sms
 17. GP WORLD      ┊ [0xFFFE=0x4C, 0xFFFE=0x1A, 0xFFFF=0x40] part-41a-GP World [v1] (JP)-32k.sms
 18. HANG ON       ┊ [0xFFFE=0x4C, 0xFFFE=0x1C, 0xFFFF=0x40] part-41c-Hang-On (Europe)-32k.sms
 19. HANG ON 2     ┊ [0xFFFE=0x4C, 0xFFFE=0x1E, 0xFFFF=0x40] part-41e-Hang-On 2 (SG-1000)-32k.sms
 20. HERO          ┊ [0xFFFE=0x48, 0xFFFE=0x02, 0xFFFF=0x40] part-002-H.E.R.O. (SG-1000)-32k.sms
```

Menu screen 3:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 21. HUSTLE CHUMY  ┊ [0xFFFE=0x48, 0xFFFE=0x04, 0xFFFF=0x40] part-004-Hustle Chummy (SG-1000) [!]-32k.sms
 22. HYPER SPORTS  ┊ [0xFFFE=0x48, 0xFFFE=0x06, 0xFFFF=0x40] part-006-Hyper Sports (Konami no) (JP)-32k.sms
 23. ICE HOCKEY    ┊ [0xFFFE=0x48, 0xFFFE=0x08, 0xFFFF=0x40] part-008-Champion Ice Hockey (SG-1000)-32k.sms
 24. LODE RUNNER   ┊ [0xFFFE=0x48, 0xFFFE=0x0A, 0xFFFF=0x40] part-00a-Loderunner (SG-1000) [!]-32k.sms
→25. MACHINE GUN   ┊ [0xFFFE=0x48, 0xFFFE=0x0C, 0xFFFF=0x40] part-00c-Machine Gun Joe (J) [!]-32k.sms
 26. MONACO GP     ┊ [0xFFFE=0x48, 0xFFFE=0x0E, 0xFFFF=0x40] part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
 27. MY HERO       ┊ [0xFFFE=0x48, 0xFFFE=0x10, 0xFFFF=0x40] part-010-My Hero (UE) [!]-32k.sms
 28. PENGO         ┊ [0xFFFE=0x40, 0xFFFE=0x12, 0xFFFF=0x40] part-012-pengo-32k.gg
 29. PIT POT       ┊ [0xFFFE=0x48, 0xFFFE=0x14, 0xFFFF=0x40] part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
 30. ROAD FIGHTER  ┊ [0xFFFE=0x48, 0xFFFE=0x16, 0xFFFF=0x40] part-016-road-fighter-32k.sms
```

Menu screen 4:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 31. ROCK N BOLT   ┊ [0xFFFE=0x48, 0xFFFE=0x18, 0xFFFF=0x40] part-018-Rock N' Bolt (SG-1000) [!]-32k.sms
 32. SATELLITE 7   ┊ [0xFFFE=0x48, 0xFFFE=0x1A, 0xFFFF=0x40] part-01a-Satellite 7 (J) [!]-32k.sms
 33. SOCCER        ┊ [0xFFFE=0x48, 0xFFFE=0x1C, 0xFFFF=0x40] part-01c-Great Soccer (J) [!]-32k.sms
 34. SPY VS SPY    ┊ [0xFFFE=0x48, 0xFFFE=0x1E, 0xFFFF=0x40] part-01e-Spy vs. Spy (J) [!]-32k.sms
→35. SUPER BUBBLE BOBBLE [0xFFFE=0x4A, 0xFFFE=0x00, 0xFFFF=0x40] part-200-Super Bubble Bobble (KR)-32k.sms
 36. TEDDY BOY     ┊ [0xFFFE=0x4A, 0xFFFE=0x02, 0xFFFF=0x40] part-202-Teddy Boy Blues (J) [!]-32k.sms
 37. TENNIS        ┊ [0xFFFE=0x4A, 0xFFFE=0x04, 0xFFFF=0x40] part-204-Super Tennis (USA, Europe)-32k.sms
 38. TRANS BOT     ┊ [0xFFFE=0x4A, 0xFFFE=0x06, 0xFFFF=0x40] part-206-Trans-Bot (UE) [!]-32k.sms
 39. WOODY POP     ┊ [0xFFFE=0x42, 0xFFFE=0x08, 0xFFFF=0x40] part-208-Woody Pop (U) (V1.0)-32k.gg
 40. ZIPPY RACE    ┊ [0xFFFE=0x4A, 0xFFFE=0x0A, 0xFFFF=0x40] part-20a-Zippy Race (SG-1000) [!]-32k.sms
```

Menu screen 5:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 41. ZOOM 909      ┊ [0xFFFE=0x4A, 0xFFFE=0x0C, 0xFFFF=0x40] part-20c-Zoom 909 (SG-1000) [!]-32k.sms
 42. SUPER BOY 2   ┊ [0xFFFE=0x4A, 0xFFFE=0x0E, 0xFFFF=0x40] part-20e-Super Boy II (KR)-32k.sms
 43. DICK TRACY    ┊ [0xFFFE=0x4C, 0xFFFE=0x04, 0xFFFF=0x40] part-404-bank-panic-32k.sms
 44. BOMBER BOY    ┊ [0xFFFE=0x4C, 0xFFFE=0x08, 0xFFFF=0x40] part-408-bomb-jack-32k.sms
→45. K.O. BOXER    ┊ [0xFFFE=0x4C, 0xFFFE=0x0A, 0xFFFF=0x40] part-40a-Champion Boxing (SG-1000 Card)-32k.sms
 46. ESCAPE KING KONG 2 [0xFFFE=0x4C, 0xFFFE=0x0C, 0xFFFF=0x40] part-40c-Championship Loderunner (SG-1000)-32k.sms
 47. RESCUER       ┊ [0xFFFE=0x4C, 0xFFFE=0x0E, 0xFFFF=0x40] part-40e-Choplifter (SG-1000) [!]-32k.sms
 48. ESAY COLUMNS  ┊ [0xFFFE=0x44, 0xFFFE=0x10, 0xFFFF=0x40] part-410-Columns (J) (Alt)-32k.gg
 49. SUPER VERIUS  ┊ [0xFFFE=0x4C, 0xFFFE=0x12, 0xFFFF=0x40] part-412-dr-hello-32k.sms
 50. SPACE KID     ┊ [0xFFFE=0x4C, 0xFFFE=0x14, 0xFFFF=0x40] part-414-Drol (SG-1000)-32k.sms
```

Menu screen 6:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 51. SPACE ACE     ┊ [0xFFFE=0x48, 0xFFFE=0x00, 0xFFFF=0x40] part-000-menu-exerion.gg
 52. GALAXY FORCE  ┊ [0xFFFE=0x4C, 0xFFFE=0x16, 0xFFFF=0x40] part-416-sega-galaga-32k.sms
 53. GHOST         ┊ [0xFFFE=0x4C, 0xFFFE=0x18, 0xFFFF=0x40] part-418-Ghost House (J) [!]-32k.sms
 54. MOTO CROSS    ┊ [0xFFFE=0x4C, 0xFFFE=0x1C, 0xFFFF=0x40] part-41c-Hang-On (Europe)-32k.sms
→55. HOT BLOOD FIGHTER [0xFFFE=0x48, 0xFFFE=0x02, 0xFFFF=0x40] part-002-H.E.R.O. (SG-1000)-32k.sms
 56. OLYMPIA       ┊ [0xFFFE=0x48, 0xFFFE=0x06, 0xFFFF=0x40] part-006-Hyper Sports (Konami no) (JP)-32k.sms
 57. SUPER LODE RUNNER [0xFFFE=0x48, 0xFFFE=0x0A, 0xFFFF=0x40] part-00a-Loderunner (SG-1000) [!]-32k.sms
 58. DIE HARD      ┊ [0xFFFE=0x48, 0xFFFE=0x0C, 0xFFFF=0x40] part-00c-Machine Gun Joe (J) [!]-32k.sms
 59. SUPER MONACO  ┊ [0xFFFE=0x48, 0xFFFE=0x0E, 0xFFFF=0x40] part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
 60. STREET SMART  ┊ [0xFFFE=0x48, 0xFFFE=0x10, 0xFFFF=0x40] part-010-My Hero (UE) [!]-32k.sms
```

Menu screen 7:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 61. EASY PENGO    ┊ [0xFFFE=0x40, 0xFFFE=0x12, 0xFFFF=0x40] part-012-pengo-32k.gg
 62. FANTASY MAZE  ┊ [0xFFFE=0x48, 0xFFFE=0x14, 0xFFFF=0x40] part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
 63. MAD MAX       ┊ [0xFFFE=0x48, 0xFFFE=0x16, 0xFFFF=0x40] part-016-road-fighter-32k.sms
 64. THUNDER BRID  ┊ [0xFFFE=0x48, 0xFFFE=0x1A, 0xFFFF=0x40] part-01a-Satellite 7 (J) [!]-32k.sms
→65. WORLD CUP SOCCER [0xFFFE=0x48, 0xFFFE=0x1C, 0xFFFF=0x40] part-01c-Great Soccer (J) [!]-32k.sms
 66. MISSION IMPOSSIBLE [0xFFFE=0x48, 0xFFFE=0x1E, 0xFFFF=0x40] part-01e-Spy vs. Spy (J) [!]-32k.sms
 67. BOBBLE DRAGON ┊ [0xFFFE=0x4A, 0xFFFE=0x00, 0xFFFF=0x40] part-200-Super Bubble Bobble (KR)-32k.sms
 68. KUNG FU KID   ┊ [0xFFFE=0x4A, 0xFFFE=0x02, 0xFFFF=0x40] part-202-Teddy Boy Blues (J) [!]-32k.sms
 69. SUPER TENNIS ACE [0xFFFE=0x4A, 0xFFFE=0x04, 0xFFFF=0x40] part-204-Super Tennis (USA, Europe)-32k.sms
 70. STAR FORCE    ┊ [0xFFFE=0x4A, 0xFFFE=0x06, 0xFFFF=0x40] part-206-Trans-Bot (UE) [!]-32k.sms
```

Menu screen 8:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 71. SUPER BREAK OUT [0xFFFE=0x42, 0xFFFE=0x08, 0xFFFF=0x40] part-208-Woody Pop (U) (V1.0)-32k.gg
→72. HIGHWAY STAR  ┊ [0xFFFE=0x4A, 0xFFFE=0x0A, 0xFFFF=0x40] part-20a-Zippy Race (SG-1000) [!]-32k.sms
 73. HYPER ZOOM    ┊ [0xFFFE=0x4A, 0xFFFE=0x0C, 0xFFFF=0x40] part-20c-Zoom 909 (SG-1000) [!]-32k.sms
```

The mapper starts out in "menu" mapping mode. Making a game selection writes to FFFE twice and then writes 0x40 to FFFF, after which the mapper is in "game" mapping mode where it supports enough Sega mapper behavior to play the included games.

MAPBASE is a six-bit 32KB page offset into the ROM image. Its initial value is zero.

In "menu" mapping mode, the first write to 0xFFFE is in the range 0x40…0x4F and the second write is in the range 0x00…0x1F. In both cases the least-significant bit written is ignored.

Meaning of the bits in writes to 0xFFFE in "menu" mapping mode:

0x40: when this bit is set, the bits are interpreted as a high-part mapper write;
      when this bit is not set, the bits are interpreted as a low-part mapper write

High-part mapper writes:
0x80: this bit is ignored
0x40: this bit is always set for high-part mapper writes
0x30: these bits are ignored
0x08: when this bit is set, the game will launch in SMS-GG mode; otherwise, native GG mode
0x06: these will be the upper two bits of MAPBASE
0x01: this bit is ignored

Low-part mapper writes:
0x80: this bit is ignored
0x40: this bit is never set for low-part mapper writes
0x20: this bit is ignored
0x1E: these will be the lower four bits of MAPBASE
0x01: this bit is ignored

Writing 0x40 to 0xFFFF activates "game" mapping mode. No mechanism for returning to "menu" mapping mode afterward is known.

In "game" mapping mode, the Sega-style mapper registers only seem to work for MAPBASE in the range occupied by Sonic The Hedgehog 2. When the Sega mapper registers are used in those ranges, it is only able to address pages inside that game's range. Additionally, in the Sonic The Hedgehog 2 ROM region MAPBASE is always treated as if it points to the beginning of the region.

… now for the other hardware configuration! A description of "Super Game Gear 73 in 1 [Street Fighter 2] (Unl)", the "Street Fighter[ 2]" variant I don't the hardware for, but which uses the same ROM data with the two 1MB halves re-ordered:

Other than the first screen, the menu contents look identical to the "Sonic 2" variant. However this variant writes to different mapper registers for game selection, and the values it writes indicate that the ROM should be re-ordered by interchanging the first and second megabytes. I suspect it's just a jumper variant, but I haven't opened my cartridge to check.

The menu has ten screens. Button 1 advances to the next screen, up and down move the cursor, and button 2 starts a game. Some of the menu items have text that is rendered in SMS-accessible VRAM outside the GG visible screen area. The GG-invisible portion is from the column marked with "┊" onward.

In terms of visible menu contents, only item 01. is different.

Menu screen 1:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 01. STREET FIGHTER 2 [0x8000=0x4E, 0x8000=0x10, 0x4000=0x40] part-210-Jang Pung II [SMS-GG] (KR)-256k.sms
 02. GG MARIO BROTHER [0x8000=0x4E, 0x8000=0x0E, 0x4000=0x40] part-20e-Super Boy II (KR)-32k.sms
 03. ASTRO FLASH   ┊ [0x8000=0x48, 0x8000=0x02, 0x4000=0x40] part-402-Astro Flash (Hi-Com) (KR) [h]-32k.sms
 04. BANK PANIC    ┊ [0x8000=0x48, 0x8000=0x04, 0x4000=0x40] part-404-bank-panic-32k.sms
→05. BASEBALL      ┊ [0x8000=0x48, 0x8000=0x06, 0x4000=0x40] part-406-Great Baseball (J) [!]-32k.sms
 06. BOMB JACK     ┊ [0x8000=0x48, 0x8000=0x08, 0x4000=0x40] part-408-bomb-jack-32k.sms
 07. CHAMPION BOXING [0x8000=0x48, 0x8000=0x0A, 0x4000=0x40] part-40a-Champion Boxing (SG-1000 Card)-32k.sms
 08. CHAMPION LODERUNNER [0x8000=0x48, 0x8000=0x0C, 0x4000=0x40] part-40c-Championship Loderunner (SG-1000)-32k.sms
 09. CHAMPION SOCCER [0x8000=0x48, 0x8000=0x00, 0x4000=0x40] part-400-alt-menu-champion-soccer-32k.gg
 10. CHOPLIFTER    ┊ [0x8000=0x48, 0x8000=0x0E, 0x4000=0x40] part-40e-Choplifter (SG-1000) [!]-32k.sms
```

Menu screen 2:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 11. COLUMNS       ┊ [0x8000=0x40, 0x8000=0x10, 0x4000=0x40] part-410-Columns (J) (Alt)-32k.gg
 12. DR.HELLO      ┊ [0x8000=0x48, 0x8000=0x12, 0x4000=0x40] part-412-dr-hello-32k.sms
 13. DROL          ┊ [0x8000=0x48, 0x8000=0x14, 0x4000=0x40] part-414-Drol (SG-1000)-32k.sms
 14. EXERION       ┊ [0x8000=0x4C, 0x8000=0x00, 0x4000=0x40] part-000-menu-exerion.gg
→15. GALAGA        ┊ [0x8000=0x48, 0x8000=0x16, 0x4000=0x40] part-416-sega-galaga-32k.sms
 16. GHOST HOUSE   ┊ [0x8000=0x48, 0x8000=0x18, 0x4000=0x40] part-418-Ghost House (J) [!]-32k.sms
 17. GP WORLD      ┊ [0x8000=0x48, 0x8000=0x1A, 0x4000=0x40] part-41a-GP World [v1] (JP)-32k.sms
 18. HANG ON       ┊ [0x8000=0x48, 0x8000=0x1C, 0x4000=0x40] part-41c-Hang-On (Europe)-32k.sms
 19. HANG ON 2     ┊ [0x8000=0x48, 0x8000=0x1E, 0x4000=0x40] part-41e-Hang-On 2 (SG-1000)-32k.sms
 20. HERO          ┊ [0x8000=0x4C, 0x8000=0x02, 0x4000=0x40] part-002-H.E.R.O. (SG-1000)-32k.sms
```

Menu screen 3:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 21. HUSTLE CHUMY  ┊ [0x8000=0x4C, 0x8000=0x04, 0x4000=0x40] part-004-Hustle Chummy (SG-1000) [!]-32k.sms
 22. HYPER SPORTS  ┊ [0x8000=0x4C, 0x8000=0x06, 0x4000=0x40] part-006-Hyper Sports (Konami no) (JP)-32k.sms
 23. ICE HOCKEY    ┊ [0x8000=0x4C, 0x8000=0x08, 0x4000=0x40] part-008-Champion Ice Hockey (SG-1000)-32k.sms
 24. LODE RUNNER   ┊ [0x8000=0x4C, 0x8000=0x0A, 0x4000=0x40] part-00a-Loderunner (SG-1000) [!]-32k.sms
→25. MACHINE GUN   ┊ [0x8000=0x4C, 0x8000=0x0C, 0x4000=0x40] part-00c-Machine Gun Joe (J) [!]-32k.sms
 26. MONACO GP     ┊ [0x8000=0x4C, 0x8000=0x0E, 0x4000=0x40] part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
 27. MY HERO       ┊ [0x8000=0x4C, 0x8000=0x10, 0x4000=0x40] part-010-My Hero (UE) [!]-32k.sms
 28. PENGO         ┊ [0x8000=0x44, 0x8000=0x12, 0x4000=0x40] part-012-pengo-32k.gg
 29. PIT POT       ┊ [0x8000=0x4C, 0x8000=0x14, 0x4000=0x40] part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
 30. ROAD FIGHTER  ┊ [0x8000=0x4C, 0x8000=0x16, 0x4000=0x40] part-016-road-fighter-32k.sms
```

Menu screen 4:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 31. ROCK N BOLT   ┊ [0x8000=0x4C, 0x8000=0x18, 0x4000=0x40] part-018-Rock N' Bolt (SG-1000) [!]-32k.sms
 32. SATELLITE 7   ┊ [0x8000=0x4C, 0x8000=0x1A, 0x4000=0x40] part-01a-Satellite 7 (J) [!]-32k.sms
 33. SOCCER        ┊ [0x8000=0x4C, 0x8000=0x1C, 0x4000=0x40] part-01c-Great Soccer (J) [!]-32k.sms
 34. SPY VS SPY    ┊ [0x8000=0x4C, 0x8000=0x1E, 0x4000=0x40] part-01e-Spy vs. Spy (J) [!]-32k.sms
→35. SUPER BUBBLE BOBBLE [0x8000=0x4E, 0x8000=0x00, 0x4000=0x40] part-200-Super Bubble Bobble (KR)-32k.sms
 36. TEDDY BOY     ┊ [0x8000=0x4E, 0x8000=0x02, 0x4000=0x40] part-202-Teddy Boy Blues (J) [!]-32k.sms
 37. TENNIS        ┊ [0x8000=0x4E, 0x8000=0x04, 0x4000=0x40] part-204-Super Tennis (USA, Europe)-32k.sms
 38. TRANS BOT     ┊ [0x8000=0x4E, 0x8000=0x06, 0x4000=0x40] part-206-Trans-Bot (UE) [!]-32k.sms
 39. WOODY POP     ┊ [0x8000=0x46, 0x8000=0x08, 0x4000=0x40] part-208-Woody Pop (U) (V1.0)-32k.gg
 40. ZIPPY RACE    ┊ [0x8000=0x4E, 0x8000=0x0A, 0x4000=0x40] part-20a-Zippy Race (SG-1000) [!]-32k.sms
```

Menu screen 5:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 41. ZOOM 909      ┊ [0x8000=0x4E, 0x8000=0x0C, 0x4000=0x40] part-20c-Zoom 909 (SG-1000) [!]-32k.sms
 42. SUPER BOY 2   ┊ [0x8000=0x4E, 0x8000=0x0E, 0x4000=0x40] part-20e-Super Boy II (KR)-32k.sms
 43. DICK TRACY    ┊ [0x8000=0x48, 0x8000=0x04, 0x4000=0x40] part-404-bank-panic-32k.sms
 44. BOMBER BOY    ┊ [0x8000=0x48, 0x8000=0x08, 0x4000=0x40] part-408-bomb-jack-32k.sms
→45. K.O. BOXER    ┊ [0x8000=0x48, 0x8000=0x0A, 0x4000=0x40] part-40a-Champion Boxing (SG-1000 Card)-32k.sms
 46. ESCAPE KING KONG 2 [0x8000=0x48, 0x8000=0x0C, 0x4000=0x40] part-40c-Championship Loderunner (SG-1000)-32k.sms
 47. RESCUER       ┊ [0x8000=0x48, 0x8000=0x0E, 0x4000=0x40] part-40e-Choplifter (SG-1000) [!]-32k.sms
 48. ESAY COLUMNS  ┊ [0x8000=0x40, 0x8000=0x10, 0x4000=0x40] part-410-Columns (J) (Alt)-32k.gg
 49. SUPER VERIUS  ┊ [0x8000=0x48, 0x8000=0x12, 0x4000=0x40] part-412-dr-hello-32k.sms
 50. SPACE KID     ┊ [0x8000=0x48, 0x8000=0x14, 0x4000=0x40] part-414-Drol (SG-1000)-32k.sms
```

Menu screen 6:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 51. SPACE ACE     ┊ [0x8000=0x4C, 0x8000=0x00, 0x4000=0x40] part-000-menu-exerion.gg
 52. GALAXY FORCE  ┊ [0x8000=0x48, 0x8000=0x16, 0x4000=0x40] part-416-sega-galaga-32k.sms
 53. GHOST         ┊ [0x8000=0x48, 0x8000=0x18, 0x4000=0x40] part-418-Ghost House (J) [!]-32k.sms
 54. MOTO CROSS    ┊ [0x8000=0x48, 0x8000=0x1C, 0x4000=0x40] part-41c-Hang-On (Europe)-32k.sms
→55. HOT BLOOD FIGHTER [0x8000=0x4C, 0x8000=0x02, 0x4000=0x40] part-002-H.E.R.O. (SG-1000)-32k.sms
 56. OLYMPIA       ┊ [0x8000=0x4C, 0x8000=0x06, 0x4000=0x40] part-006-Hyper Sports (Konami no) (JP)-32k.sms
 57. SUPER LODE RUNNER [0x8000=0x4C, 0x8000=0x0A, 0x4000=0x40] part-00a-Loderunner (SG-1000) [!]-32k.sms
 58. DIE HARD      ┊ [0x8000=0x4C, 0x8000=0x0C, 0x4000=0x40] part-00c-Machine Gun Joe (J) [!]-32k.sms
 59. SUPER MONACO  ┊ [0x8000=0x4C, 0x8000=0x0E, 0x4000=0x40] part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
 60. STREET SMART  ┊ [0x8000=0x4C, 0x8000=0x10, 0x4000=0x40] part-010-My Hero (UE) [!]-32k.sms
```

Menu screen 7:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 61. EASY PENGO    ┊ [0x8000=0x44, 0x8000=0x12, 0x4000=0x40] part-012-pengo-32k.gg
 62. FANTASY MAZE  ┊ [0x8000=0x4C, 0x8000=0x14, 0x4000=0x40] part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
 63. MAD MAX       ┊ [0x8000=0x4C, 0x8000=0x16, 0x4000=0x40] part-016-road-fighter-32k.sms
 64. THUNDER BRID  ┊ [0x8000=0x4C, 0x8000=0x1A, 0x4000=0x40] part-01a-Satellite 7 (J) [!]-32k.sms
→65. WORLD CUP SOCCER [0x8000=0x4C, 0x8000=0x1C, 0x4000=0x40] part-01c-Great Soccer (J) [!]-32k.sms
 66. MISSION IMPOSSIBLE [0x8000=0x4C, 0x8000=0x1E, 0x4000=0x40] part-01e-Spy vs. Spy (J) [!]-32k.sms
 67. BOBBLE DRAGON ┊ [0x8000=0x4E, 0x8000=0x00, 0x4000=0x40] part-200-Super Bubble Bobble (KR)-32k.sms
 68. KUNG FU KID   ┊ [0x8000=0x4E, 0x8000=0x02, 0x4000=0x40] part-202-Teddy Boy Blues (J) [!]-32k.sms
 69. SUPER TENNIS ACE [0x8000=0x4E, 0x8000=0x04, 0x4000=0x40] part-204-Super Tennis (USA, Europe)-32k.sms
 70. STAR FORCE    ┊ [0x8000=0x4E, 0x8000=0x06, 0x4000=0x40] part-206-Trans-Bot (UE) [!]-32k.sms
```

Menu screen 8:

```
  SUPER 73 IN 1    ┊
                   ┊
 PUSH ↑. ↓. 1. 2.  ┊
                   ┊
 71. SUPER BREAK OUT [0x8000=0x46, 0x8000=0x08, 0x4000=0x40] part-208-Woody Pop (U) (V1.0)-32k.gg
→72. HIGHWAY STAR  ┊ [0x8000=0x4E, 0x8000=0x0A, 0x4000=0x40] part-20a-Zippy Race (SG-1000) [!]-32k.sms
 73. HYPER ZOOM    ┊ [0x8000=0x4E, 0x8000=0x0C, 0x4000=0x40] part-20c-Zoom 909 (SG-1000) [!]-32k.sms
```

The mapper starts out in "menu" mapping mode. Making a game selection writes to 8000 twice and then writes 0x40 to 4000, after which the mapper is in "game" mapping mode where it supports enough Codemasters mapper behavior to play the included games.

MAPBASE is a six-bit 32KB page offset into the ROM image. Its initial value is zero.

In "menu" mapping mode, the first write to 0x4000 is in the range 0x40…0x4F and the second write is in the range 0x00…0x1F. In both cases the least-significant bit written is ignored.

Meaning of the bits in writes to 0x4000 in "menu" mapping mode:

0x40: when this bit is set, the bits are interpreted as a high-part mapper write;
      when this nit is not set, the its are interpreted as a low-part mapper write

High-part mapper writes:
0x80: this bit is ignored
0x40: this bit is always set for high-part mapper writes
0x30: these bits are ignored
0x08: when this bit is set, the game will launch in SMS-GG mode; otherwise, native GG mode
0x06: these will be the upper two bits of MAPBASE
0x01: this bit is ignored

Low-part mapper writes:
0x80: this bit is ignored
0x40: this bit is never set for low-part mapper writes
0x20: this bit is ignored
0x1E: these will be the lower four bits of MAPBASE
0x01: this bit is ignored

Writing 0x40 to 0x4000 activates "game" mapping mode. No mechanism for returning to "menu" mapping mode afterward is known.

In "game" mapping mode, the Codemasters-style mapper registers only needs to work for MAPBASE in the range occupied by Jang Pung II. When the Codemasters mapper registers are used in that range, they must be able to address pages inside that game's range.

NOTE: mapper behavior for this variant is inferred from the ROM contents, since my cartridge is wired the other way (Sega/Sonnic 2 rather than Codemasters/Jang Pung II)

ROM fingerprint info for the "Sonic 2" ROM layout:

2.0M Super Game Gear 73 in 1 [Sonic 2] (Unl).gg
Checking for export header with matching CRC... NO
sha256:3401d59438bf657adf391ae6753e49dea9e1944efd0808bc89499f2fd632888d Super Game Gear 73 in 1 [Sonic 2] (Unl).gg
sha1:9fe83563a10194eadf9671c375f4eb3790b3884e Super Game Gear 73 in 1 [Sonic 2] (Unl).gg
md5:1947f3c11171ca992668b3cb9c4a9dd9 Super Game Gear 73 in 1 [Sonic 2] (Unl).gg
mekacrc:ADC7A676E4A80ADA Super Game Gear 73 in 1 [Sonic 2] (Unl).gg
crc32:5585010f Super Game Gear 73 in 1 [Sonic 2] (Unl).gg

ROM fingerprint info for the "Street Fighter 2" alternate ROM layout:

2.0M Super Game Gear 73 in 1 [Street Fighter 2] (Unl).gg
Checking for export header with matching CRC... NO
sha256:1c3c0ae1d5d5ba77497169697758d104129d3721afcf7c590f549de9e1753c3c Super Game Gear 73 in 1 [Street Fighter 2] (Unl).gg
sha1:ee20833540f0f5a1934534cf6cdc515b1d9b17bc Super Game Gear 73 in 1 [Street Fighter 2] (Unl).gg
md5:92b7903bd035f1f9e8cc9d51f186cf11 Super Game Gear 73 in 1 [Street Fighter 2] (Unl).gg
mekacrc:ADC7A676E4A80ADA Super Game Gear 73 in 1 [Street Fighter 2] (Unl).gg
crc32:ec7240f1 Super Game Gear 73 in 1 [Street Fighter 2] (Unl).gg

ROM fingerprint info for the various parts of the ROM image:

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-000-menu-exerion.gg
Checking for export header with matching CRC... NO
sha256:ff9120b3fcd45577b6098de113677dfc032596b5b5332147658ee383727e038d Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-000-menu-exerion.gg
sha1:e2486930506fa5424007dacf97a6aad440549c71 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-000-menu-exerion.gg
md5:eb0357595660190e1b3f4966d1b6d299 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-000-menu-exerion.gg
mekacrc:ECC733451DE4E7ED Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-000-menu-exerion.gg
crc32:dce50e21 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-000-menu-exerion.gg

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-002-H.E.R.O. (SG-1000)-32k.sms
Checking for export header with matching CRC... NO
sha256:f1fcee3bad83906c1572c59fc45d28975065f23a2f7783949519160b861878ca Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-002-H.E.R.O. (SG-1000)-32k.sms
sha1:19acb69b7b64da5083349d8bc40a47beacc88c41 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-002-H.E.R.O. (SG-1000)-32k.sms
md5:d10f38c614113cb34bbf4a19b487e1fb Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-002-H.E.R.O. (SG-1000)-32k.sms
mekacrc:9E321231AEEF54FC Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-002-H.E.R.O. (SG-1000)-32k.sms
crc32:4587de6e Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-002-H.E.R.O. (SG-1000)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-004-Hustle Chummy (SG-1000) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:d579ea7592473c216244fbe2d85f532e55df8aaaaddb3be9bd7d47cc8d4f9e54 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-004-Hustle Chummy (SG-1000) [!]-32k.sms
sha1:7638a7af5f9e6192c3b94e7fbf5cca1a51643efd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-004-Hustle Chummy (SG-1000) [!]-32k.sms
md5:e6c49f44cf307a303ddcc44d9402b8ec Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-004-Hustle Chummy (SG-1000) [!]-32k.sms
mekacrc:6F16109C70F21E4F Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-004-Hustle Chummy (SG-1000) [!]-32k.sms
crc32:fad12c54 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-004-Hustle Chummy (SG-1000) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-006-Hyper Sports (Konami no) (JP)-32k.sms
Checking for export header with matching CRC... NO
sha256:5ef5732d668069147c58208c168c7364d97a895e4bd767105195ed882310f3b1 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-006-Hyper Sports (Konami no) (JP)-32k.sms
sha1:8a13ee297f861f436b9529a5e2193cb697baa56f Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-006-Hyper Sports (Konami no) (JP)-32k.sms
md5:d8e6d89d520c91a9ea219291b55284bb Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-006-Hyper Sports (Konami no) (JP)-32k.sms
mekacrc:0CBF98A750BA42AA Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-006-Hyper Sports (Konami no) (JP)-32k.sms
crc32:ba09a0fd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-006-Hyper Sports (Konami no) (JP)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-008-Champion Ice Hockey (SG-1000)-32k.sms
Checking for export header with matching CRC... NO
sha256:cf2b1b3741771e9525cbb70c2dbb2dd9f3a91d5f8b5c78936069cef79c9078b8 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-008-Champion Ice Hockey (SG-1000)-32k.sms
sha1:ff6440fc7e5c5faa0b9868d5cb5110d1d8635284 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-008-Champion Ice Hockey (SG-1000)-32k.sms
md5:b3af58c60e62bb85522ddc29096cef60 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-008-Champion Ice Hockey (SG-1000)-32k.sms
mekacrc:7D6DE53955B78D5F Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-008-Champion Ice Hockey (SG-1000)-32k.sms
crc32:bdc05652 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-008-Champion Ice Hockey (SG-1000)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00a-Loderunner (SG-1000) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:a6295506e0d09d449d87f6d8243956d601e971b810208ff27e56b38cda65b8c5 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00a-Loderunner (SG-1000) [!]-32k.sms
sha1:f14f216edfda7dfd113f5cb32375a27be8a6409d Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00a-Loderunner (SG-1000) [!]-32k.sms
md5:4b4f02eb3cf7d5f9dcd1311d72e6d742 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00a-Loderunner (SG-1000) [!]-32k.sms
mekacrc:7C7748E59B2DCE4A Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00a-Loderunner (SG-1000) [!]-32k.sms
crc32:00ed3970 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00a-Loderunner (SG-1000) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00c-Machine Gun Joe (J) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:ea9c74555e551974a681296c41972c1f6ddd7289fed5502f64e35b8527b6dde4 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00c-Machine Gun Joe (J) [!]-32k.sms
sha1:33c21d164fd3cdf7aa9e7e0fe1a3ae5a491bd9f5 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00c-Machine Gun Joe (J) [!]-32k.sms
md5:2d59b3d27f022b04a597e767e6660ca9 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00c-Machine Gun Joe (J) [!]-32k.sms
mekacrc:59868AC9BD4815B4 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00c-Machine Gun Joe (J) [!]-32k.sms
crc32:9d549e08 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00c-Machine Gun Joe (J) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
Checking for export header with matching CRC... NO
sha256:3e83cb0624eaceefbf7e66c8002cde03f8bc421d987dc817b743da2c3812e17b Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
sha1:4ca8182b8f7c798d7222295978e2556ff115b848 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
md5:74121fd6f1024ee3d3f5d1db29956d7d Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
mekacrc:E7A6DEA71E6978EF Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms
crc32:da2d57f3 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-00e-Monaco GP (J) (SG-1000) (V1.1) (32K)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-010-My Hero (UE) [!]-32k.sms
Checking for export header with matching CRC... YES
sha256:4884bde83e1587f6d5f01750000ae879bebe7ebccc330ea1689d2d27b70c3436 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-010-My Hero (UE) [!]-32k.sms
sha1:7583c5fb1963c070b7bda72b447cc3fd611ddf1a Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-010-My Hero (UE) [!]-32k.sms
md5:efef7361c9c37bcd6a7b84bc121af5f2 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-010-My Hero (UE) [!]-32k.sms
mekacrc:ED4ACAF1CF794680 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-010-My Hero (UE) [!]-32k.sms
crc32:62f0c23d Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-010-My Hero (UE) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-012-pengo-32k.gg
Checking for export header with matching CRC... NO
sha256:e1051bba30d7b681b7d7a17f9ea280daf1ed1f9f9184f24a5a88afc536c5d1c1 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-012-pengo-32k.gg
sha1:5f1c16d637ff94147ab93690a7acf0a3da7c1155 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-012-pengo-32k.gg
md5:6254d1c010a646fa73142b7c344b31bd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-012-pengo-32k.gg
mekacrc:593C7A3470EED48B Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-012-pengo-32k.gg
crc32:189e02fa Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-012-pengo-32k.gg

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:be7c284c39c1e18e53f7a97d3950caf93550783cdddcdf9324f9b209353682b9 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
sha1:b1afa682b2f70bfc4ab2020d7c3047aabbaf9a24 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
md5:209ee37dcabc263aa462c781d3123fce Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
mekacrc:B637976CB4B28D1D Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms
crc32:e6795c53 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-014-Fushigi no Oshiro Pit Pot (J) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-016-road-fighter-32k.sms
Checking for export header with matching CRC... NO
sha256:01fd02d70e1672e085496c479945a91dc82362a1c7435fd05476c76538a3e0c3 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-016-road-fighter-32k.sms
sha1:9ed1d924035d94c7dad56644b58de88bc7d45612 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-016-road-fighter-32k.sms
md5:7e82a5af56942c64c288c54050ea16fd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-016-road-fighter-32k.sms
mekacrc:3395440A4DC7983E Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-016-road-fighter-32k.sms
crc32:e8d8e99c Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-016-road-fighter-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-018-Rock N' Bolt (SG-1000) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:f09a2e0fe850fd80e88834015785aed5e88736f7970cf6b89d1a72a9ae866d6e Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-018-Rock N' Bolt (SG-1000) [!]-32k.sms
sha1:d5e8e7ca7623521d4291ae5ab2740816fc674389 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-018-Rock N' Bolt (SG-1000) [!]-32k.sms
md5:108ffe4ba5c2c8c5e0459cb7f0cfac0e Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-018-Rock N' Bolt (SG-1000) [!]-32k.sms
mekacrc:44B2C607937091A9 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-018-Rock N' Bolt (SG-1000) [!]-32k.sms
crc32:0ffdd03d Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-018-Rock N' Bolt (SG-1000) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01a-Satellite 7 (J) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:3e659f15fbcc6511dfeb2112762074a8441479bb33887d196eb343e124d14fe5 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01a-Satellite 7 (J) [!]-32k.sms
sha1:88fc5596773ea31eda8ae5a8baf6f0ce5c3f7e5e Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01a-Satellite 7 (J) [!]-32k.sms
md5:eac6a843975c50e39eb32f764da2a5ac Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01a-Satellite 7 (J) [!]-32k.sms
mekacrc:ABFBCE1810529280 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01a-Satellite 7 (J) [!]-32k.sms
crc32:16249e19 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01a-Satellite 7 (J) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01c-Great Soccer (J) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:b2a524164e1a0a264dc4ac7cb29742293b3384b9369e0ce0cf2ab5ca2b50a1cd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01c-Great Soccer (J) [!]-32k.sms
sha1:110536303b7bccc193bef4437ba5a9eb6fd4ac8e Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01c-Great Soccer (J) [!]-32k.sms
md5:0ed883302e87ca46c1c1a55660e17900 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01c-Great Soccer (J) [!]-32k.sms
mekacrc:68A3CEF02BC61B2B Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01c-Great Soccer (J) [!]-32k.sms
crc32:2d7fd7ef Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01c-Great Soccer (J) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01e-Spy vs. Spy (J) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:e3df51893d16e512cadf3723a58f143dc679127fbe4444662be63fafb4b2a777 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01e-Spy vs. Spy (J) [!]-32k.sms
sha1:c5e004b34d6569e6e1d99bff6be940f308e2c39f Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01e-Spy vs. Spy (J) [!]-32k.sms
md5:2a6ee78e2617886fe540dcb8a1500e90 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01e-Spy vs. Spy (J) [!]-32k.sms
mekacrc:440AA3B0518BF192 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01e-Spy vs. Spy (J) [!]-32k.sms
crc32:d41b9a08 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-01e-Spy vs. Spy (J) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-200-Super Bubble Bobble (KR)-32k.sms
Checking for export header with matching CRC... NO
sha256:8b6d26dcb601158e0d3e6028b358acb345fe5032095408a8bca50dbbafa99f84 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-200-Super Bubble Bobble (KR)-32k.sms
sha1:507bfa2b21fde4d33014fc4ab98e3a934f5b339a Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-200-Super Bubble Bobble (KR)-32k.sms
md5:0c36afd72e18ca6720a982130349b953 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-200-Super Bubble Bobble (KR)-32k.sms
mekacrc:50BB66C5832E8C8D Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-200-Super Bubble Bobble (KR)-32k.sms
crc32:22c09cfd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-200-Super Bubble Bobble (KR)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-202-Teddy Boy Blues (J) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:42de9fc6028da76b4991ba81b3a666c9ae303e269d8f55c715f6518dcadb8773 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-202-Teddy Boy Blues (J) [!]-32k.sms
sha1:fb61c04f30c83733fdbf503b16e17aa8086932df Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-202-Teddy Boy Blues (J) [!]-32k.sms
md5:de5d6c9e1349844b74f53caaf2af680b Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-202-Teddy Boy Blues (J) [!]-32k.sms
mekacrc:BBE8D843FF8FF6BE Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-202-Teddy Boy Blues (J) [!]-32k.sms
crc32:316727dd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-202-Teddy Boy Blues (J) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-204-Super Tennis (USA, Europe)-32k.sms
Checking for export header with matching CRC... YES
sha256:5fb097b508a482c29f12c2203a0a98a0dd7ce9873e7ef12fb7e0aeea250a99e2 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-204-Super Tennis (USA, Europe)-32k.sms
sha1:67787f3f29a5b5e74b5f6a636428da4517a0f992 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-204-Super Tennis (USA, Europe)-32k.sms
md5:2db9404fe79593fd2379921ca822103a Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-204-Super Tennis (USA, Europe)-32k.sms
mekacrc:F799F9C458560EF7 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-204-Super Tennis (USA, Europe)-32k.sms
crc32:914514e3 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-204-Super Tennis (USA, Europe)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-206-Trans-Bot (UE) [!]-32k.sms
Checking for export header with matching CRC... YES
sha256:3bba00eb4d471c9edc694516f65102300666ca54bd2f2362184df0058583b7ca Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-206-Trans-Bot (UE) [!]-32k.sms
sha1:73273e6d44ad7aea828b642d22f6f1c138be9d2b Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-206-Trans-Bot (UE) [!]-32k.sms
md5:93bb1e1ee14ac53adb9e6b9e0c135043 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-206-Trans-Bot (UE) [!]-32k.sms
mekacrc:DA63DA8BEB8E7C69 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-206-Trans-Bot (UE) [!]-32k.sms
crc32:4bc42857 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-206-Trans-Bot (UE) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-208-Woody Pop (U) (V1.0)-32k.gg
Checking for export header with matching CRC... NO
sha256:b6b639dcfa1492b5616b83ae4ac8b76ded84c449161291964a2fc3db0f3fb1a2 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-208-Woody Pop (U) (V1.0)-32k.gg
sha1:9e7defda6873b7bca5650fad4426a6fb443522d8 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-208-Woody Pop (U) (V1.0)-32k.gg
md5:c017baf7fa0de71219dfab91caa59f8f Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-208-Woody Pop (U) (V1.0)-32k.gg
mekacrc:902D4CDEE014FD28 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-208-Woody Pop (U) (V1.0)-32k.gg
crc32:9c0e5a04 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-208-Woody Pop (U) (V1.0)-32k.gg

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20a-Zippy Race (SG-1000) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:788b46169ba06cd86628f8889dfbf0fd7be7819fa45db36745157ec409985797 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20a-Zippy Race (SG-1000) [!]-32k.sms
sha1:8c48dbe187ff4b26d6244d38075565f284536d0c Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20a-Zippy Race (SG-1000) [!]-32k.sms
md5:0eda34ba313d3bb34558fd5939b19794 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20a-Zippy Race (SG-1000) [!]-32k.sms
mekacrc:1C80273C5B02376D Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20a-Zippy Race (SG-1000) [!]-32k.sms
crc32:bc5d20df Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20a-Zippy Race (SG-1000) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20c-Zoom 909 (SG-1000) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:78ca7d49c96fa83c68db22b8257c30ebf5cc4f17667936853c38ade4e3321d06 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20c-Zoom 909 (SG-1000) [!]-32k.sms
sha1:09552aaa7140f9fc780b5f7d541478b534320075 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20c-Zoom 909 (SG-1000) [!]-32k.sms
md5:4e457a6c5b4b613f2aac3472f6827a89 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20c-Zoom 909 (SG-1000) [!]-32k.sms
mekacrc:93DD3B768470FCEF Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20c-Zoom 909 (SG-1000) [!]-32k.sms
crc32:093830d8 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20c-Zoom 909 (SG-1000) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20e-Super Boy II (KR)-32k.sms
Checking for export header with matching CRC... NO
sha256:c4220ef6ae43db946223c09a9e8e9188867c2dec781974453628a7b33d2a0c2c Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20e-Super Boy II (KR)-32k.sms
sha1:f5ee6b2a625765517d6b2f32703be06327696eb9 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20e-Super Boy II (KR)-32k.sms
md5:5b2369a5e16b843c5ac128239f8e10de Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20e-Super Boy II (KR)-32k.sms
mekacrc:8017E8F4FD66B971 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20e-Super Boy II (KR)-32k.sms
crc32:d24536db Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-20e-Super Boy II (KR)-32k.sms

256K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-210-Jang Pung II [SMS-GG] (KR)-256k.sms
Checking for export header with matching CRC... NO
sha256:a685ad4118edd2fe6fb8ccc4bfc0c9ceac2f6affc3b5d93cc29afb2c9604d5ee Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-210-Jang Pung II [SMS-GG] (KR)-256k.sms
sha1:2b3bb8fd76fe706d7e564b372d2d71dfce53cb1b Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-210-Jang Pung II [SMS-GG] (KR)-256k.sms
md5:9b95b6e6609daa8ea413f223f426c8ff Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-210-Jang Pung II [SMS-GG] (KR)-256k.sms
mekacrc:F6B47C90D268957B Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-210-Jang Pung II [SMS-GG] (KR)-256k.sms
crc32:76c5bdfb Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-210-Jang Pung II [SMS-GG] (KR)-256k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-400-alt-menu-champion-soccer-32k.gg
Checking for export header with matching CRC... NO
sha256:480ab47ef7ed04cfbddd7604aff761052daec9b9be302ee1268869a5bfa9a8e9 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-400-alt-menu-champion-soccer-32k.gg
sha1:1c709e07342f4228914b7f39f0e30b4f1b183a3b Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-400-alt-menu-champion-soccer-32k.gg
md5:7bd62eeed9cdcb20ee2f1dc9d9675141 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-400-alt-menu-champion-soccer-32k.gg
mekacrc:B9E5046BB4E70850 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-400-alt-menu-champion-soccer-32k.gg
crc32:afd46f99 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-400-alt-menu-champion-soccer-32k.gg

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-402-Astro Flash (Hi-Com) (KR) [h]-32k.sms
Checking for export header with matching CRC... NO
sha256:bf22972cc6e88a0eb3a6f2e483fa769ba4a5573edfe421dbfa75a6697053bef7 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-402-Astro Flash (Hi-Com) (KR) [h]-32k.sms
sha1:94a0c358ef4e4c13ae2dc03558a0d5f46a28efd9 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-402-Astro Flash (Hi-Com) (KR) [h]-32k.sms
md5:9d9aac5b483d3e750ba120959aaaac20 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-402-Astro Flash (Hi-Com) (KR) [h]-32k.sms
mekacrc:2D22172DD72A88E4 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-402-Astro Flash (Hi-Com) (KR) [h]-32k.sms
crc32:ea5692a8 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-402-Astro Flash (Hi-Com) (KR) [h]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-404-bank-panic-32k.sms
Checking for export header with matching CRC... NO
sha256:1cbb449b665c4766ef5faa1983995c066e91621dc7dd68955de7b800b0590d00 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-404-bank-panic-32k.sms
sha1:70e07afaa6633938124add8cdb476f1bc69f2de0 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-404-bank-panic-32k.sms
md5:97b2bd168b9b41b7a693c199cab9d3ca Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-404-bank-panic-32k.sms
mekacrc:D7A23BCA59CD77E5 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-404-bank-panic-32k.sms
crc32:11d816cb Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-404-bank-panic-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-406-Great Baseball (J) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:84a62928d7a231657db0a5d77efa77eebda9f5cbefb5d5a68af64af2ecdb88fd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-406-Great Baseball (J) [!]-32k.sms
sha1:e6eaaec61bec32dee5161ae59a7a0902f0d05dc9 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-406-Great Baseball (J) [!]-32k.sms
md5:94ca79d4eb2709ad98b850d33728a045 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-406-Great Baseball (J) [!]-32k.sms
mekacrc:9F82F97234F38CC1 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-406-Great Baseball (J) [!]-32k.sms
crc32:89e98a7c Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-406-Great Baseball (J) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-408-bomb-jack-32k.sms
Checking for export header with matching CRC... NO
sha256:526b01bb9730b5e9b769d53f27cfb735e6f5c0714748e3006f05821791d20c13 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-408-bomb-jack-32k.sms
sha1:f0db86ef15dbdc32a793f37e82b4cf34614b59d8 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-408-bomb-jack-32k.sms
md5:00d2fdd367c16bcd01328132ae65b9ff Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-408-bomb-jack-32k.sms
mekacrc:B071A84FA2431DE6 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-408-bomb-jack-32k.sms
crc32:f7f195ec Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-408-bomb-jack-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40a-Champion Boxing (SG-1000 Card)-32k.sms
Checking for export header with matching CRC... NO
sha256:8f2f3e7fe8df459244c341dca9aaf5c37d2db180385ee6bf025c6ed82e7a1adc Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40a-Champion Boxing (SG-1000 Card)-32k.sms
sha1:7a7ace132090f11bac4f4aec58bcbf6a2a1c6168 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40a-Champion Boxing (SG-1000 Card)-32k.sms
md5:7527098abb9df1db29ba9f495b06998a Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40a-Champion Boxing (SG-1000 Card)-32k.sms
mekacrc:4123EF723DD41E0C Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40a-Champion Boxing (SG-1000 Card)-32k.sms
crc32:f8b2ac1d Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40a-Champion Boxing (SG-1000 Card)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40c-Championship Loderunner (SG-1000)-32k.sms
Checking for export header with matching CRC... NO
sha256:f492190a369a3fb5538c84cf4487b73ab6c1696990db42b0134a7c8a6638d6ae Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40c-Championship Loderunner (SG-1000)-32k.sms
sha1:a0dad095489da2bdf8ec03f1acc83f809db2371f Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40c-Championship Loderunner (SG-1000)-32k.sms
md5:f49d9ea611ccb9289994774406f20d06 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40c-Championship Loderunner (SG-1000)-32k.sms
mekacrc:FF5544CA075675CC Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40c-Championship Loderunner (SG-1000)-32k.sms
crc32:11db4b1d Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40c-Championship Loderunner (SG-1000)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40e-Choplifter (SG-1000) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:dc91150015413e7205e24e5e854abec900ac216000ae76e571d0e58a8f512957 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40e-Choplifter (SG-1000) [!]-32k.sms
sha1:e0828517fdc9a5537fda39dbc49942494eb3196d Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40e-Choplifter (SG-1000) [!]-32k.sms
md5:ee557c7811f03c44965a56b80801a3b9 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40e-Choplifter (SG-1000) [!]-32k.sms
mekacrc:308D125E31D34B84 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40e-Choplifter (SG-1000) [!]-32k.sms
crc32:732b7180 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-40e-Choplifter (SG-1000) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-410-Columns (J) (Alt)-32k.gg
Checking for export header with matching CRC... NO
sha256:9e0a2b9c2af94bdfc95ca5c884fdf40ac9178388a6e8a36ccac263492ad74781 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-410-Columns (J) (Alt)-32k.gg
sha1:d83fd16bd23c51750555a692535daa171ed41af0 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-410-Columns (J) (Alt)-32k.gg
md5:36b33d28235b4c9439ab0f62ab1c97c4 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-410-Columns (J) (Alt)-32k.gg
mekacrc:C8F45DEC67DF2095 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-410-Columns (J) (Alt)-32k.gg
crc32:ac37e092 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-410-Columns (J) (Alt)-32k.gg

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-412-dr-hello-32k.sms
Checking for export header with matching CRC... NO
sha256:91c370b64a8a653c1d706dc79b0d915aabd479cfc1724aa46273c9f1954af79a Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-412-dr-hello-32k.sms
sha1:d9413e3693dc0feb6fdf845244eba88b5e5de9e3 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-412-dr-hello-32k.sms
md5:c9209e366fc06a2efe63e3a97470f690 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-412-dr-hello-32k.sms
mekacrc:CAB3012EDC758A79 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-412-dr-hello-32k.sms
crc32:b11a90f1 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-412-dr-hello-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-414-Drol (SG-1000)-32k.sms
Checking for export header with matching CRC... NO
sha256:a124c812a05b458c405a655506c73e872e6db620c850dd01fb7f65908549aa79 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-414-Drol (SG-1000)-32k.sms
sha1:607b2b9a946eaaebb938800bd3b1df7d9342388c Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-414-Drol (SG-1000)-32k.sms
md5:8eb2ab42d2bc3f3568e85cba2b46a251 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-414-Drol (SG-1000)-32k.sms
mekacrc:546C1EFBFD7F5754 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-414-Drol (SG-1000)-32k.sms
crc32:288940cb Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-414-Drol (SG-1000)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-416-sega-galaga-32k.sms
Checking for export header with matching CRC... NO
sha256:4f5027c189fa2aa88f5e2bccdab75abb0426818b2d16191e6ec405e144f2b806 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-416-sega-galaga-32k.sms
sha1:9c8c0de9ed43851e3bd496f7eaad007ce52ac6c5 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-416-sega-galaga-32k.sms
md5:0750b1cdfad87a6e0d1b89916136a31f Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-416-sega-galaga-32k.sms
mekacrc:C5F4DF70EBA8372E Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-416-sega-galaga-32k.sms
crc32:c22f4e80 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-416-sega-galaga-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-418-Ghost House (J) [!]-32k.sms
Checking for export header with matching CRC... NO
sha256:c01f783f10fd4350816932e367bc9439b47e2ee1034a3179dcd93d660deecf43 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-418-Ghost House (J) [!]-32k.sms
sha1:051e74c499c6792f891668a7be23a11c2c4087af Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-418-Ghost House (J) [!]-32k.sms
md5:89028bfb152a553adf25668649d39ca6 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-418-Ghost House (J) [!]-32k.sms
mekacrc:827C30E5ED689206 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-418-Ghost House (J) [!]-32k.sms
crc32:c0f3ce7e Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-418-Ghost House (J) [!]-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41a-GP World [v1] (JP)-32k.sms
Checking for export header with matching CRC... NO
sha256:6a1e35e019726ba1fc2426c29aaafd042b520f859f38961875eb3191436e1479 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41a-GP World [v1] (JP)-32k.sms
sha1:37aa4812d37445c9e86bc4e02f056fb50d19dc6a Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41a-GP World [v1] (JP)-32k.sms
md5:19707d73ce1a664cba608e9c72e334c2 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41a-GP World [v1] (JP)-32k.sms
mekacrc:9B2EAB302403AF86 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41a-GP World [v1] (JP)-32k.sms
crc32:191ffe0a Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41a-GP World [v1] (JP)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41c-Hang-On (Europe)-32k.sms
Checking for export header with matching CRC... YES
sha256:0d35d0e232d64e714fa5d07e45acaf01ea9fb5a8f88fe9ac8018719ac2818d6f Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41c-Hang-On (Europe)-32k.sms
sha1:e601257f6477b85eb0b25a5b6d46ebc070d8a05a Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41c-Hang-On (Europe)-32k.sms
md5:2864be0d35269c5030a7f297f70e3ac3 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41c-Hang-On (Europe)-32k.sms
mekacrc:F0A23277115075EF Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41c-Hang-On (Europe)-32k.sms
crc32:071b045e Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41c-Hang-On (Europe)-32k.sms

32K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41e-Hang-On 2 (SG-1000)-32k.sms
Checking for export header with matching CRC... NO
sha256:b9dc16a7c01ef7939554b6fea723a3483146bdba879341a3b3276514633b0c79 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41e-Hang-On 2 (SG-1000)-32k.sms
sha1:e636e889d4e81c024ee7dae8943c2b8d9d4a5414 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41e-Hang-On 2 (SG-1000)-32k.sms
md5:314c865decbe6f578d9bfa23f27a08e6 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41e-Hang-On 2 (SG-1000)-32k.sms
mekacrc:0EF416397D1321FE Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41e-Hang-On 2 (SG-1000)-32k.sms
crc32:9be3c6bd Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-41e-Hang-On 2 (SG-1000)-32k.sms

512K Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-600-Sonic The Hedgehog 2 (U) [!]-512k.gg
Checking for export header with matching CRC... NO
sha256:2826d679932566411003334cd4b9d8b3618248b6693e98822f5b2425430623e0 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-600-Sonic The Hedgehog 2 (U) [!]-512k.gg
sha1:dabb452e416b4fa9cb83d8ddd307c2a32c3a1a7f Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-600-Sonic The Hedgehog 2 (U) [!]-512k.gg
md5:9c64846563d8b9a24400471322e53fb5 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-600-Sonic The Hedgehog 2 (U) [!]-512k.gg
mekacrc:D2612363E352F220 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-600-Sonic The Hedgehog 2 (U) [!]-512k.gg
crc32:95a18ec7 Super Game Gear 73 in 1 [Sonic 2 ~ Street Fighter 2] (Unl)/part-600-Sonic The Hedgehog 2 (U) [!]-512k.gg

---

Super GG 21 in 1 [Sonic Drift] [Gold & Yellow Label]

I've been calling it "Super GG 21 in 1 [Sonic Drift] [Gold & Yellow Label] (Unl)" but the actual names are slightly different.

The label calls it:

SUPER GG 21 [in white text on a gold background]

The menu calls it:

SUPER 21 IN 1

I got my cartridge with no box or manual.

I qualify the name of Super GG 21 in 1 [Sonic Drift] [Gold & Yellow Label] with the first menu entry since there are apparently a bunch of very similarly-named 21-in-1 cartridges with different menus/games, and the label description only makes sense when you are looking at the physical cartridge

The ROM is 2MB (crc32:b0a898d4) and contains 18 distinct games; there are three 512KB GG games: Sonic Drift, Sonic 3, and Mortal Kombat; three 32KB GG games: Woody Pop, Pengo, and Columns; and twelve SMS games: Teddy Boy, Ghost House, Satellite 7, Spy vs. Spy, Machine Gun Joe, Astro Flash, Great Soccer, Super Tennis, Hang-On, My Hero, Pit Pot, and Great Baseball.

Dumping snippet: (disconnect and reconnect the cartridge between game_id values)

```
        local game_id = 0x03; // 0x00 ... 0x0f, 0x10, 0x20, 0x30
        local first_unlock = 0x48 | ((game_id & 0x30) >> 3);
        local second_unlock = (game_id & 0x0F) << 1;
        cpu_write(d, 0xFFFE, first_unlock);
        cpu_write(d, 0xFFFE, first_unlock);
        cpu_write(d, 0xFFFE, second_unlock);
        cpu_write(d, 0xFFFE, second_unlock);
        cpu_write(d, 0xFFFF, 0x40);
        cpu_write(d, 0xFFFF, 0x40);
```

The label also has a game list in black text on a yellow background:

```
01 SONIC DRIFT
02 SONIC 3
03 MORTAL KOMBAT
04 TEDDY BOY
05 GHOST HOUSE
06 SATELLITE 7
07 SPY VS SPY
08 MACHINE GUN
09 ASTRO FLASH
10 SOCCER
11 TENNIS
12 HANG ON
13 MY HERO
14 WOODY POP
15 PENGO
16 COLUMNS
17 PIT POT
18 BASE BALL
19 ARKANOID
20 EASY PENGO
21 GHOST
```

The menu, with each screen's initial cursor position marked with "→":

Screen 1:

```
  SUPER 21 IN 1

 PUSH ↑. ↓. 1. 2.

 01. SONIC DRIFT   [0xFFFE=0x46, 0xFFFE=0x00, 0xFFFF=0x40]; it's part-30-Sonic Drift (JP)-512k.gg
 02. SONIC 3       [0xFFFE=0x44, 0xFFFE=0x00, 0xFFFF=0x40]; it's part-20-Sonic Chaos (US,EU,BR)-512k.gg
 03. MORTAL KOMBAT [0xFFFE=0x42, 0xFFFE=0x00, 0xFFFF=0x40]; it's part-10-Mortal Kombat (US,EU)-512k.gg
→04. TEDDY BOY     [0xFFFE=0x48, 0xFFFE=0x1E, 0xFFFF=0x40]; it's part-0f-Teddy Boy Blues (JP)-32k.sms
 05. GHOST HOUSE   [0xFFFE=0x48, 0xFFFE=0x1C, 0xFFFF=0x40]; it's part-0e-Ghost House (JP)-32k.sms
 06. SATELLITE 7   [0xFFFE=0x48, 0xFFFE=0x1A, 0xFFFF=0x40]; it's part-0d-Satellite 7 (JP)-32k.sms
 07. SPY VS SPY    [0xFFFE=0x48, 0xFFFE=0x18, 0xFFFF=0x40]; it's part-0c-Spy vs Spy (JP,KR)-32k.sms
 08. MACHINE GUN   [0xFFFE=0x48, 0xFFFE=0x16, 0xFFFF=0x40]; it's part-0b-Comical Machine Gun Joe (JP)-32k.sms
```

Screen 2:

```
  SUPER 21 IN 1

 PUSH ↑. ↓. 1. 2.

 09. ASTRO FLASH   [0xFFFE=0x48, 0xFFFE=0x14, 0xFFFF=0x40]; it's part-0a-astro-flash-32k.sms
 10. SOCCER        [0xFFFE=0x48, 0xFFFE=0x12, 0xFFFF=0x40]; it's part-09-Great Soccer (JP)-32k.sms
 11. TENNIS        [0xFFFE=0x48, 0xFFFE=0x10, 0xFFFF=0x40]; it's part-08-Super Tennis (US,EU,DE)-32k.sms
→12. HANG ON       [0xFFFE=0x48, 0xFFFE=0x0E, 0xFFFF=0x40]; it's part-07-Hang On (EU,AU,BR,DE,IT)-32k.sms
 13. MY HERO       [0xFFFE=0x48, 0xFFFE=0x0C, 0xFFFF=0x40]; it's part-06-Seishun Scandal (JP)-32k.sms
 14. WOODY POP     [0xFFFE=0x40, 0xFFFE=0x0A, 0xFFFF=0x40]; it's part-05-Woody Pop [v0] (JP)-32k.gg
 15. PENGO         [0xFFFE=0x40, 0xFFFE=0x08, 0xFFFF=0x40]; it's part-04-pengo-32k.gg
 16. COLUMNS       [0xFFFE=0x40, 0xFFFE=0x06, 0xFFFF=0x40]; it's part-03-Columns [v1] (JP)-32k.gg
```

Screen 3:

```
  SUPER 21 IN 1

 PUSH ↑. ↓. 1. 2.

 17. PIT POT       [0xFFFE=0x48, 0xFFFE=0x04, 0xFFFF=0x40]; it's part-02-Fushigi no Oshiro Pit Pot (JP,KR)-32k.sms
 18. BASEBALL      [0xFFFE=0x48, 0xFFFE=0x02, 0xFFFF=0x40]; it's part-01-Great Baseball [JP] (JP)-32k.sms
→19. ARKANOID     …
  • Loading branch information
bsittler committed May 9, 2023
1 parent 7c635bd commit ae58437
Show file tree
Hide file tree
Showing 6 changed files with 217 additions and 4 deletions.
6 changes: 5 additions & 1 deletion meka/compat.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1408,6 +1408,10 @@
Super Battletank Ok
Super Columns Ok
Super Columns (JP) Ok
Super Game Gear 73 in 1 [Sonic 2] *Ok
Super Game Gear 73 in 1 [Street Fighter 2] *Ok
Super GG 21 in 1 [Sonic Drift] [Gold & Yellow Label] *Ok
Super GG 30 in 1 [Sonic 2] [Gold & Yellow Label] *Ok
Super Golf (JP) Ok
Super Kick Off [SMS-GG] Ok
Superman - The Man of Steel Ok
Expand Down Expand Up @@ -1498,7 +1502,7 @@
Zoop (US) Ok
Zoop [Proto] (US) Ok
-----------------------------------------------------------------------------
517 games tested - 506 are "Ok" - Compatibility rate: 97.63%
521 games tested - 510 are "Ok" - Compatibility rate: 97.89%
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions meka/meka.nam
Original file line number Diff line number Diff line change
Expand Up @@ -1291,6 +1291,10 @@ GG b421c057 96BD12C62621B8D6 Striker/COUNTRY=EU/PRODUCT_NO=2551-50
GG 73d6745a 18CC99C9849C9901 Super Battletank/COUNTRY=US/PRODUCT_NO=1239
GG 8ba43af3 DAA4C785B7042952 Super Columns/COUNTRY=US,EU/PRODUCT_NO=2449,2449-50
GG 2a100717 E7260408CEC8EE63 Super Columns/COUNTRY=JP/PRODUCT_NO=G-3226
GG 5585010f ADC7A676E4A80ADA Super Game Gear 73 in 1 [Sonic 2]/EMU_MAPPER=33
GG ec7240f1 ADC7A676E4A80ADA Super Game Gear 73 in 1 [Street Fighter 2]/EMU_MAPPER=34
GG b0a898d4 61346F715403E054 Super GG 21 in 1 [Sonic Drift] [Gold & Yellow Label]/EMU_MAPPER=33
GG a60037d5 58B43BDEE1635740 Super GG 30 in 1 [Sonic 2] [Gold & Yellow Label]/EMU_MAPPER=33
GG 528cbbce FAE75543A7740E5E Super Golf/COUNTRY=JP/PRODUCT_NO=T-26017,T-26027
GG 73df5a15 43574420E8CF212A Superman - The Man of Steel/COUNTRY=EU/PRODUCT_NO=T-70068,70068-00
GG aa3f2172 0A5C6040EBCF152B Superman - The Man of Steel [Proto]/FLAGS=PROTO/COMMENT=Prototype version of the game.
Expand Down
45 changes: 45 additions & 0 deletions meka/srcs/machine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include "tvtype.h"
#include "sound/fmunit.h"
#include "sound/psg.h"
#include "app_game.h"

//-----------------------------------------------------------------------------
// Data
Expand Down Expand Up @@ -196,6 +197,12 @@ void Machine_Set_Handler_MemRW(void)
case MAPPER_SMS_Korean_MSX_32KB_2000:
WrZ80 = WrZ80_NoHook = Write_Mapper_SMS_Korean_MSX_32KB_2000;
break;
case MAPPER_GG_Super_73_in_1_FFFE_FFFF:
WrZ80 = WrZ80_NoHook = Write_Mapper_GG_Super_73_in_1_FFFE_FFFF;
break;
case MAPPER_GG_Super_73_in_1_8000_4000:
WrZ80 = WrZ80_NoHook = Write_Mapper_GG_Super_73_in_1_8000_4000;
break;
}
}

Expand Down Expand Up @@ -485,6 +492,44 @@ void Machine_Set_Mapping (void)
g_machine.mapper_regs[0] = 0;
break;

case MAPPER_GG_Super_73_in_1_FFFE_FFFF:
Map_8k_ROM(0, 0x00 & tsms.Pages_Mask_8k);
Map_8k_ROM(1, 0x01 & tsms.Pages_Mask_8k);
Map_8k_ROM(2, 0x02 & tsms.Pages_Mask_8k);
Map_8k_ROM(3, 0x03 & tsms.Pages_Mask_8k);
Map_8k_ROM(4, 0x00 & tsms.Pages_Mask_8k);
Map_8k_ROM(5, 0x01 & tsms.Pages_Mask_8k);
Map_8k_RAM(6, 0);
Map_8k_RAM(7, 0);
g_machine.mapper_regs_count = 3;
for (int i = 0; i != MAPPER_REGS_MAX; i++)
g_machine.mapper_regs[i] = 0;
g_machine.mapper_regs[2] = 1;
drv_set(DRV_GG);
gamebox_resize_all();
VDP_UpdateLineLimits();
Video_GameMode_UpdateBounds();
break;

case MAPPER_GG_Super_73_in_1_8000_4000:
Map_8k_ROM(0, 0x00 & tsms.Pages_Mask_8k);
Map_8k_ROM(1, 0x01 & tsms.Pages_Mask_8k);
Map_8k_ROM(2, 0x02 & tsms.Pages_Mask_8k);
Map_8k_ROM(3, 0x03 & tsms.Pages_Mask_8k);
Map_8k_ROM(4, 0x00 & tsms.Pages_Mask_8k);
Map_8k_ROM(5, 0x01 & tsms.Pages_Mask_8k);
Map_8k_RAM(6, 0);
Map_8k_RAM(7, 0);
g_machine.mapper_regs_count = 3;
for (int i = 0; i != MAPPER_REGS_MAX; i++)
g_machine.mapper_regs[i] = 0;
g_machine.mapper_regs[1] = 1;
drv_set(DRV_GG);
gamebox_resize_all();
VDP_UpdateLineLimits();
Video_GameMode_UpdateBounds();
break;

case MAPPER_SC3000_Survivors_Multicart:
g_machine.mapper_regs_count = 1;
for (int i = 0; i != MAPPER_REGS_MAX; i++)
Expand Down
139 changes: 139 additions & 0 deletions meka/srcs/mappers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
#include "shared.h"
#include "mappers.h"
#include "eeprom.h"
#include "vdp.h"
#include "video.h"
#include "app_game.h"

//-----------------------------------------------------------------------------
// Data
Expand Down Expand Up @@ -952,6 +955,142 @@ WRITE_FUNC (Write_Mapper_SMS_Korean_MSX_32KB_2000)
Write_Error (Addr, Value);
}

// Mapper #33
// Super Game Gear 73 in 1 [Sonic 2]
WRITE_FUNC(Write_Mapper_GG_Super_73_in_1_FFFE_FFFF)
{
if ((Addr == 0xFFFE) || (Addr == 0xFFFF)) // Configurable segment -----------------------------------------------
{
if (Addr == 0xFFFE) {
g_machine.mapper_regs[2] = Value;
} else if (Addr == 0xFFFF) {
g_machine.mapper_regs[1] = Value;
}
if (! (g_machine.mapper_regs[0] & 0x40)) {
// "menu" mapping mode
if (g_machine.mapper_regs[2] & 0x40) {
// high-part mapper write
g_machine.mapper_regs[0] = (g_machine.mapper_regs[2] & 0x08) ? 0x80 : 0x00; // SMS-GG mode flag
// upper two bits of MAPBASE
g_machine.mapper_regs[0] &= ~0x30;
g_machine.mapper_regs[0] |= (g_machine.mapper_regs[2] & 0x06) << 3;
} else {
// low-part mapper write (lower four bits of MAPBASE)
g_machine.mapper_regs[0] &= ~0x0F;
g_machine.mapper_regs[0] |= (g_machine.mapper_regs[2] & 0x1E) >> 1;
}
if (g_machine.mapper_regs[1] & 0x40) {
// switch to "game" mapping mode
g_machine.mapper_regs[0] |= 0x40;
g_machine.mapper_regs[1] = 0;
g_machine.mapper_regs[2] = 1;
}
}
unsigned int mapbase_16k = 0;
unsigned int page_4000_offset_16k = 1;
unsigned int page_8000_offset_16k = 0;
bool game_mapping_mode = g_machine.mapper_regs[0] & 0x40;
if (game_mapping_mode) {
mapbase_16k = (g_machine.mapper_regs[0] & 0x3F) * 2;
page_4000_offset_16k = g_machine.mapper_regs[2];
page_8000_offset_16k = g_machine.mapper_regs[1];
}
Map_8k_ROM(0, (mapbase_16k * 2) & tsms.Pages_Mask_8k);
Map_8k_ROM(1, (mapbase_16k * 2 + 1) & tsms.Pages_Mask_8k);
Map_8k_ROM(2, ((mapbase_16k + page_4000_offset_16k) * 2) & tsms.Pages_Mask_8k);
Map_8k_ROM(3, ((mapbase_16k + page_4000_offset_16k) * 2 + 1) & tsms.Pages_Mask_8k);
Map_8k_ROM(4, ((mapbase_16k + page_8000_offset_16k) * 2) & tsms.Pages_Mask_8k);
Map_8k_ROM(5, ((mapbase_16k + page_8000_offset_16k) * 2 + 1) & tsms.Pages_Mask_8k);
bool sms_gg_mode_active = g_machine.mapper_regs[0] & 0x80;
if (sms_gg_mode_active) {
drv_set(DRV_SMS);
} else {
drv_set(DRV_GG);
}
gamebox_resize_all();
VDP_UpdateLineLimits();
Video_GameMode_UpdateBounds();
//return;
}

switch (Addr >> 13)
{
// RAM [0xC000] = [0xE000] ------------------------------------------------
case 6: Mem_Pages[6][Addr] = Value; return;
case 7: Mem_Pages[7][Addr] = Value; return;
}

Write_Error(Addr, Value);
}

// Mapper #34
// Super Game Gear 73 in 1 [Street Fighter 2]
WRITE_FUNC(Write_Mapper_GG_Super_73_in_1_8000_4000)
{
if ((Addr == 0x8000) || (Addr == 0x4000)) // Configurable segment -----------------------------------------------
{
if (Addr == 0x8000) {
g_machine.mapper_regs[2] = Value;
} else if (Addr == 0x4000) {
g_machine.mapper_regs[1] = Value;
}
if (! (g_machine.mapper_regs[0] & 0x40)) {
// "menu" mapping mode
if (g_machine.mapper_regs[2] & 0x40) {
// high-part mapper write
g_machine.mapper_regs[0] = (g_machine.mapper_regs[2] & 0x08) ? 0x80 : 0x00; // SMS-GG mode flag
// upper two bits of MAPBASE
g_machine.mapper_regs[0] &= ~0x30;
g_machine.mapper_regs[0] |= (g_machine.mapper_regs[2] & 0x06) << 3;
} else {
// low-part mapper write (lower four bits of MAPBASE)
g_machine.mapper_regs[0] &= ~0x0F;
g_machine.mapper_regs[0] |= (g_machine.mapper_regs[2] & 0x1E) >> 1;
}
if (g_machine.mapper_regs[1] & 0x40) {
// switch to "game" mapping mode
g_machine.mapper_regs[0] |= 0x40;
g_machine.mapper_regs[2] = 0;
g_machine.mapper_regs[1] = 1;
}
}
unsigned int mapbase_16k = 0;
unsigned int page_4000_offset_16k = 1;
unsigned int page_8000_offset_16k = 0;
bool game_mapping_mode = g_machine.mapper_regs[0] & 0x40;
if (game_mapping_mode) {
mapbase_16k = (g_machine.mapper_regs[0] & 0x3F) * 2;
page_4000_offset_16k = g_machine.mapper_regs[1];
page_8000_offset_16k = g_machine.mapper_regs[2];
}
Map_8k_ROM(0, (mapbase_16k * 2) & tsms.Pages_Mask_8k);
Map_8k_ROM(1, (mapbase_16k * 2 + 1) & tsms.Pages_Mask_8k);
Map_8k_ROM(2, ((mapbase_16k + page_4000_offset_16k) * 2) & tsms.Pages_Mask_8k);
Map_8k_ROM(3, ((mapbase_16k + page_4000_offset_16k) * 2 + 1) & tsms.Pages_Mask_8k);
Map_8k_ROM(4, ((mapbase_16k + page_8000_offset_16k) * 2) & tsms.Pages_Mask_8k);
Map_8k_ROM(5, ((mapbase_16k + page_8000_offset_16k) * 2 + 1) & tsms.Pages_Mask_8k);
bool sms_gg_mode_active = g_machine.mapper_regs[0] & 0x80;
if (sms_gg_mode_active) {
drv_set(DRV_SMS);
} else {
drv_set(DRV_GG);
}
gamebox_resize_all();
VDP_UpdateLineLimits();
Video_GameMode_UpdateBounds();
return;
}

switch (Addr >> 13)
{
// RAM [0xC000] = [0xE000] ------------------------------------------------
case 6: Mem_Pages[6][Addr] = Value; return;
case 7: Mem_Pages[7][Addr] = Value; return;
}

Write_Error(Addr, Value);
}

// Based on MSX ASCII 8KB mapper? http://bifi.msxnet.org/msxnet/tech/megaroms.html#ascii8
// - This mapper requires 4 registers to save bank switching state.
// However, all other mappers so far used only 3 registers, stored as 3 bytes.
Expand Down
4 changes: 4 additions & 0 deletions meka/srcs/mappers.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@
#define MAPPER_SMS_Korean_MD_FFF5 (25) // Registers at 0xFFF5 and 0xFFFF (Jaemiissneun Game Mo-eumjip 42/65 Hap [SMS-MD], Pigu Wang Hap ~ Jaemiiss-neun Game Mo-eumjip [SMS-MD])
#define MAPPER_SMS_Korean_MD_FFFA (26) // Registers at 0xFFFA and 0xFFFF (Game Jiphap 30 Hap [SMS-MD])
#define MAPPER_SMS_Korean_MSX_32KB_2000 (27) // Register at 0x2000 (2 Hap in 1 (Moai-ui bomul, David-2))
#define MAPPER_GG_Super_73_in_1_FFFE_FFFF (33) // Registers at 0xFFFE and 0xFFFF (Super Game Gear 73 in 1 [Sonic 2])
#define MAPPER_GG_Super_73_in_1_8000_4000 (34) // Registers at 0x8000 and 0x4000 (Super Game Gear 73 in 1 [Street Fighter 2])

#define READ_FUNC(_NAME) u8 _NAME(register u16 Addr)
#define WRITE_FUNC(_NAME) void _NAME(register u16 Addr, register u8 Value)
Expand Down Expand Up @@ -96,6 +98,8 @@ WRITE_FUNC (Write_Mapper_SMS_Korean_MD_FFF0);
WRITE_FUNC (Write_Mapper_SMS_Korean_MD_FFF5);
WRITE_FUNC (Write_Mapper_SMS_Korean_MD_FFFA);
WRITE_FUNC (Write_Mapper_SMS_Korean_MSX_32KB_2000);
WRITE_FUNC (Write_Mapper_GG_Super_73_in_1_FFFE_FFFF);
WRITE_FUNC (Write_Mapper_GG_Super_73_in_1_8000_4000);
//-----------------------------------------------------------------------------
void Out_SC3000_SurvivorsMulticarts_DataWrite(u8 v);

Expand Down
23 changes: 20 additions & 3 deletions meka/srcs/saves.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ void Load_Game_Fixup(void)
{
int i;
u8 b;
bool sms_gg_mode_in_mapper = false;

// CPU
#ifdef MARAT_Z80
Expand Down Expand Up @@ -144,13 +145,25 @@ void Load_Game_Fixup(void)
case MAPPER_SMS_Korean_MSX_32KB_2000:
WrZ80_NoHook(0x2000, g_machine.mapper_regs[0]);
break;
case MAPPER_GG_Super_73_in_1_FFFE_FFFF:
WrZ80_NoHook(0xFFFF, g_machine.mapper_regs[1]);
WrZ80_NoHook(0xFFFE, g_machine.mapper_regs[2]);
sms_gg_mode_in_mapper = true;
break;
case MAPPER_GG_Super_73_in_1_8000_4000:
WrZ80_NoHook(0x4000, g_machine.mapper_regs[1]);
WrZ80_NoHook(0x8000, g_machine.mapper_regs[2]);
sms_gg_mode_in_mapper = true;
break;
}
}

// VDP/Graphic related
tsms.VDP_Video_Change |= VDP_VIDEO_CHANGE_ALL;
VDP_UpdateLineLimits();
// FALSE!!! // tsms.VDP_Line = 224;
if (!sms_gg_mode_in_mapper) {
tsms.VDP_Video_Change |= VDP_VIDEO_CHANGE_ALL;
VDP_UpdateLineLimits();
// FALSE!!! // tsms.VDP_Line = 224;
}

// Rewrite all VDP registers (we can do that since it has zero side-effect)
for (i = 0; i < 16; i ++)
Expand Down Expand Up @@ -339,6 +352,8 @@ int Save_Game_MSV(FILE *f)
case MAPPER_SMS_Korean_MD_FFF5:
case MAPPER_SMS_Korean_MD_FFFA:
case MAPPER_SMS_Korean_MSX_32KB_2000:
case MAPPER_GG_Super_73_in_1_FFFE_FFFF:
case MAPPER_GG_Super_73_in_1_8000_4000:
default:
fwrite (RAM, 0x2000, 1, f); // Do not use g_driver->ram because of g_driver video mode change
break;
Expand Down Expand Up @@ -518,6 +533,8 @@ int Load_Game_MSV(FILE *f)
case MAPPER_SMS_Korean_MD_FFF5:
case MAPPER_SMS_Korean_MD_FFFA:
case MAPPER_SMS_Korean_MSX_32KB_2000:
case MAPPER_GG_Super_73_in_1_FFFE_FFFF:
case MAPPER_GG_Super_73_in_1_8000_4000:
default:
fread (RAM, 0x2000, 1, f); // Do not use g_driver->ram because of g_driver video mode change
break;
Expand Down

0 comments on commit ae58437

Please sign in to comment.