Skip to content

Commit

Permalink
Add mapper ocornut#32 MAPPER_GG_FFF8_FFF9_FFFA_FFFE_FFFF for "Super…
Browse files Browse the repository at this point in the history
… GG 68 in 1 [Sonic Adventure] (Unl)", "GG Super 56 in 1 (B) [Mega Man] (Unl)", and "Wise Gear GG 32 in 1 [Nettou Samurai]" multicarts

There is still some glitchiness in the save-state mechanism that needs to be resolved, but all games other than Choplifter at least start

Additional multicart descriptions follows the first

---

I call it "Super GG 68 in 1 [Sonic Adventure] (Unl)".

I chose to qualify the name of this 68-in-1 with the first menu entry since there is apparently another same-looking cartridge which differs only in menu/games

The label says:
SUPER G.G
68 IN 1

The menu says:
SUPER 68 IN 1

It is a 2MB Game Gear multicart with a mix of SMS and Game Gear games. The actual number of distinct included games is 19.

Here's the dumping script I used to extract the contents. It turns out the cartridge can remain connected between dumps. After the fragment shown, I used a regular Sega dumping steps (regular read for the first 32KB, then paging using 0xFFFF and the 0x8000...0xBFFF range after that.)
```
        // /* second 256K */ 0x080C00;
        // /* first 256K */ 0x000C00;
        // /* Menu (first 32K) */ 0x000000;
        // /* Bust-A-Move */ 0x100C00;
        // /* Dragon */ 0x180C00;
        // /* Mega Man */ 0x001204;
        // /* Tails Adventures */ 0x101204;
        local supergg68in1_page = 0x200C00; // adjust for different games
        cpu_write(d, 0xFFF9, 0x00);
        cpu_write(d, 0xFFF8, 0x00);
        cpu_write(d, 0xFFFA, 0x01);
        cpu_write(d, 0xFFF8, (supergg68in1_page & 0xFF0000) >> 16);
        cpu_write(d, 0xFFF9, (supergg68in1_page & 0xFF00) >> 8);
        cpu_write(d, 0xFFFA, supergg68in1_page & 0xFF);
        cpu_write(d, 0xFFFE, 0x01);
```

NOTE: the menu can operate to some extent in both native GG mode and in SMS-GG mode. In native GG mode some text is cut off. I've added a "┆" indicator to show the first column that is cut off on the first menu screen. The other menu screens use only the native GG mode-visible part of the screen.

The "→" indicator shows the initially-selected menu item on each screen. This pointer can be moved up and down with the direction pad. Buttons 1 and 2 are used to switch forward and back a screen at a time, and the Start button launches the selected game.

Selecting a menu item writes 0xFFF9=0x00, 0xFFF8=0x00, 0xFFFA=0x01, then a game-specific unlock sequence to 0xFFF8, 0xFFF9 and 0xFFFA, and finally 0xFFFE=0x01.

Details of the game unlock sequence bytes understood so far:

0xFFF8:
- bitmask 0x1F sets the low 5 bits of the 32KB mapper base address

0xFFF9:
- bit 0x80 is asserted in SMS-GG mode
  NOTE: I was able to dump the entire ROM without ever asserting this bit
- bits 0x12 are asserted for 512KB Sega mapper support + the second megabyte of the ROM
- bits 0x0C are asserted for 256KB Sega mapper support (in the first megabyte of the ROM)
  NOTE: I was able to use this with mapper address 0xFFF8=0x00 and 0x08 to dump the first two 256KB chunks of the ROM contiguously.

0xFFFA:
- bit 0x04 is asserted for 512KB Sega mapper support + the second megabyte of the ROM
- bit 0x01 is asserted in SMS-GG mode (in the first megabyte of the ROM)
  NOTE: I was able to dump the entire ROM without aver asserting this bit

Note that the mapper may be switched to another game in the same way.

Menu screen 1:

```
   SUPER 68 IN 1   ┆
                   ┆
  USE ↑. ↓. 1. 2.  ┆
                   ┆
→01. SONIC ADVENTURE [0xFFF8=0x10, 0xFFF9=0x12, 0xFFFA=0x04]; it's part101204-Tails Adventures (JP,US,EU)-512k.gg
 02. MEGA MAN      ┆ [0xFFF8=0x00, 0xFFF9=0x12, 0xFFFA=0x04]; it's part001204-Mega Man (US)-512k.gg
 03. DRAGON        ┆ [0xFFF8=0x18, 0xFFF9=0x0C, 0xFFFA=0x00]; it's part180c00-Dragon - The Bruce Lee Story (US)-256k.gg
 04. BLAST A MOVE  ┆ [0xFFF8=0x10, 0xFFF9=0x0C, 0xFFFA=0x00]; it's part100c00-Bust-A-Move (US)-256k.gg
 05. COLUMNS       ┆ [0xFFF8=0x01, 0xFFF9=0x00, 0xFFFA=0x00]; it's part010000-Columns [v1] (JP)-32k.gg
 06. WOODY POP     ┆ [0xFFF8=0x02, 0xFFF9=0x00, 0xFFFA=0x00]; it's part020000-Woody Pop [v0] (JP)-32k.gg
 07. PANGO         ┆ [0xFFF8=0x03, 0xFFF9=0x00, 0xFFFA=0x00]; it's part030000-pengo-32k.gg
 08. DR HELLO      ┆ [0xFFF8=0x04, 0xFFF9=0x80, 0xFFFA=0x01]; it's part040000-Dr. HELLO (Korea) (Unl)-32k.sms
 09. TENNIS        ┆ [0xFFF8=0x05, 0xFFF9=0x80, 0xFFFA=0x01]; it's part050000-Super Tennis (US,EU,DE)-32k.sms
 10. CHOPLIFTER    ┆ [0xFFF8=0x06, 0xFFF9=0x80, 0xFFFA=0x01]; it's part060000-Choplifter (JP,AU)-32k.sg
```

Menu screen 2:

```
   SUPER 68 IN 1   ┆
                   ┆
  USE ↑. ↓. 1. 2.  ┆
                   ┆
→11. GALAGA        ┆ [0xFFF8=0x07, 0xFFF9=0x80, 0xFFFA=0x01]; it's part070000-sega-galaga-32k.sg
 12. DROL          ┆ [0xFFF8=0x08, 0xFFF9=0x80, 0xFFFA=0x01]; it's part080000-Drol (JP,AU)-32k.sg
 13. BOMB JACK     ┆ [0xFFF8=0x09, 0xFFF9=0x80, 0xFFFA=0x01]; it's part090000-bomb-jack-32k.sg
 14. ASTRO FLASH   ┆ [0xFFF8=0x0A, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0a0000-astro-flash-32k.sms
 15. ZOOM 909      ┆ [0xFFF8=0x0B, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0b0000-Zoom 909 (JP)-32k.sg
 16. HANG ON       ┆ [0xFFF8=0x0C, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
 17. SATELLITE     ┆ [0xFFF8=0x0D, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0d0000-Satellite 7 (JP)-32k.sms
 18. HUSTLE CHUMY  ┆ [0xFFF8=0x0E, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
 19. LODE RUNNER   ┆ [0xFFF8=0x0F, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
 20. PUZZLE GAME   ┆ [0xFFF8=0x01, 0xFFF9=0x00, 0xFFFA=0x00]; it's part010000-Columns [v1] (JP)-32k.gg
```

Menu screen 3:

```
   SUPER 68 IN 1   ┆
                   ┆
  USE ↑. ↓. 1. 2.  ┆
                   ┆
→21. SNO BEES      ┆ [0xFFF8=0x03, 0xFFF9=0x00, 0xFFFA=0x00]; it's part030000-pengo-32k.gg
 22. ARKANOLD      ┆ [0xFFF8=0x02, 0xFFF9=0x00, 0xFFFA=0x00]; it's part020000-Woody Pop [v0] (JP)-32k.gg
 23. VIRUS KELLER  ┆ [0xFFF8=0x04, 0xFFF9=0x80, 0xFFFA=0x01]; it's part040000-Dr. HELLO (Korea) (Unl)-32k.sms
 24. PRO TENNIS    ┆ [0xFFF8=0x05, 0xFFF9=0x80, 0xFFFA=0x01]; it's part050000-Super Tennis (US,EU,DE)-32k.sms
 25. HELICOPTER    ┆ [0xFFF8=0x06, 0xFFF9=0x80, 0xFFFA=0x01]; it's part060000-Choplifter (JP,AU)-32k.sg
 26. SIDEREAL      ┆ [0xFFF8=0x07, 0xFFF9=0x80, 0xFFFA=0x01]; it's part070000-sega-galaga-32k.sg
 27. DOLL WAR      ┆ [0xFFF8=0x08, 0xFFF9=0x80, 0xFFFA=0x01]; it's part080000-Drol (JP,AU)-32k.sg
 28. SUPER JACK    ┆ [0xFFF8=0x09, 0xFFF9=0x80, 0xFFFA=0x01]; it's part090000-bomb-jack-32k.sg
 29. STAR FIGHTER  ┆ [0xFFF8=0x0A, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0a0000-astro-flash-32k.sms
 30. TUNNEL FIGHT  ┆ [0xFFF8=0x0B, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0b0000-Zoom 909 (JP)-32k.sg
```

Menu screen 4:

```
   SUPER 68 IN 1   ┆
                   ┆
  USE ↑. ↓. 1. 2.  ┆
                   ┆
→31. MOTOCROSS     ┆ [0xFFF8=0x0C, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
 32. PILOT-X       ┆ [0xFFF8=0x0D, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0d0000-Satellite 7 (JP)-32k.sms
 33. MOUSE RUNNER  ┆ [0xFFF8=0x0E, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
 34. MAZE MAN      ┆ [0xFFF8=0x0F, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
 35. COLOUR BRICK  ┆ [0xFFF8=0x01, 0xFFF9=0x00, 0xFFFA=0x00]; it's part010000-Columns [v1] (JP)-32k.gg
 36. ICE LAND      ┆ [0xFFF8=0x03, 0xFFF9=0x00, 0xFFFA=0x00]; it's part030000-pengo-32k.gg
 37. BRICK BALL    ┆ [0xFFF8=0x02, 0xFFF9=0x00, 0xFFFA=0x00]; it's part020000-Woody Pop [v0] (JP)-32k.gg
 38. DOCTOR MARIO  ┆ [0xFFF8=0x04, 0xFFF9=0x80, 0xFFFA=0x01]; it's part040000-Dr. HELLO (Korea) (Unl)-32k.sms
 39. SUPER TENNIS  ┆ [0xFFF8=0x05, 0xFFF9=0x80, 0xFFFA=0x01]; it's part050000-Super Tennis (US,EU,DE)-32k.sms
 40. AIRCRAFT      ┆ [0xFFF8=0x06, 0xFFF9=0x80, 0xFFFA=0x01]; it's part060000-Choplifter (JP,AU)-32k.sg
```

Menu screen 5:

```
   SUPER 68 IN 1   ┆
                   ┆
  USE ↑. ↓. 1. 2.  ┆
                   ┆
→41. MONSTER       ┆ [0xFFF8=0x07, 0xFFF9=0x80, 0xFFFA=0x01]; it's part070000-sega-galaga-32k.sg
 42. FLYING DOLL   ┆ [0xFFF8=0x08, 0xFFF9=0x80, 0xFFFA=0x01]; it's part080000-Drol (JP,AU)-32k.sg
 43. MR JACK       ┆ [0xFFF8=0x09, 0xFFF9=0x80, 0xFFFA=0x01]; it's part090000-bomb-jack-32k.sg
 44. ROBOT FIGHT   ┆ [0xFFF8=0x0A, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0a0000-astro-flash-32k.sms
 45. STAR FORCE    ┆ [0xFFF8=0x0B, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0b0000-Zoom 909 (JP)-32k.sg
 46. MOTOCYCLE     ┆ [0xFFF8=0x0C, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
 47. XEVIOUS       ┆ [0xFFF8=0x0D, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0d0000-Satellite 7 (JP)-32k.sms
 48. MAZE MOUSE    ┆ [0xFFF8=0x0E, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
 49. CARGO FINDER  ┆ [0xFFF8=0x0F, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
 50. MUSIC PUZZLE  ┆ [0xFFF8=0x01, 0xFFF9=0x00, 0xFFFA=0x00]; it's part010000-Columns [v1] (JP)-32k.gg
```

Menu screen 6:

```
   SUPER 68 IN 1   ┆
                   ┆
  USE ↑. ↓. 1. 2.  ┆
                   ┆
→51. ICE PENGUIN   ┆ [0xFFF8=0x03, 0xFFF9=0x00, 0xFFFA=0x00]; it's part030000-pengo-32k.gg
 52. ALLEYWAY      ┆ [0xFFF8=0x02, 0xFFF9=0x00, 0xFFFA=0x00]; it's part020000-Woody Pop [v0] (JP)-32k.gg
 53. MR HELLO      ┆ [0xFFF8=0x04, 0xFFF9=0x80, 0xFFFA=0x01]; it's part040000-Dr. HELLO (Korea) (Unl)-32k.sms
 54. HYPER TENNIS  ┆ [0xFFF8=0x05, 0xFFF9=0x80, 0xFFFA=0x01]; it's part050000-Super Tennis (US,EU,DE)-32k.sms
 55. AIR LIFEGUARD ┆ [0xFFF8=0x06, 0xFFF9=0x80, 0xFFFA=0x01]; it's part060000-Choplifter (JP,AU)-32k.sg
 56. FLY WAR       ┆ [0xFFF8=0x07, 0xFFF9=0x80, 0xFFFA=0x01]; it's part070000-sega-galaga-32k.sg
 57. SUPER DROL    ┆ [0xFFF8=0x08, 0xFFF9=0x80, 0xFFFA=0x01]; it's part080000-Drol (JP,AU)-32k.sg
 58. BOMB MAN      ┆ [0xFFF8=0x09, 0xFFF9=0x80, 0xFFFA=0x01]; it's part090000-bomb-jack-32k.sg
 59. HILL FIGHT    ┆ [0xFFF8=0x0A, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0a0000-astro-flash-32k.sms
 60. ZOOM FORCE    ┆ [0xFFF8=0x0B, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0b0000-Zoom 909 (JP)-32k.sg
```

Menu screen 7:

```
   SUPER 68 IN 1   ┆
                   ┆
  USE ↑. ↓. 1. 2.  ┆
                   ┆
→61. ROAD RACING   ┆ [0xFFF8=0x0C, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
 62. FIRE PLANE    ┆ [0xFFF8=0x0D, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0d0000-Satellite 7 (JP)-32k.sms
 63. MOUSE HUNTER  ┆ [0xFFF8=0x0E, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
 64. LADDER MAN    ┆ [0xFFF8=0x0F, 0xFFF9=0x80, 0xFFFA=0x01]; it's part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
 65. SCENERY BRICK ┆ [0xFFF8=0x01, 0xFFF9=0x00, 0xFFFA=0x00]; it's part010000-Columns [v1] (JP)-32k.gg
 66. PENGUIN LAND  ┆ [0xFFF8=0x03, 0xFFF9=0x00, 0xFFFA=0x00]; it's part030000-pengo-32k.gg
 67. DOCTOR BOY    ┆ [0xFFF8=0x04, 0xFFF9=0x80, 0xFFFA=0x01]; it's part040000-Dr. HELLO (Korea) (Unl)-32k.sms
 68. CRAZY TENNIS  ┆ [0xFFF8=0x05, 0xFFF9=0x80, 0xFFFA=0x01]; it's part050000-Super Tennis (US,EU,DE)-32k.sms
```

ROM fingerprint info:

2.0M Super GG 68 in 1 [Sonic Adventure] (Unl).gg
Checking for export header with matching CRC... NO
sha256:fa0557028c5623506eb1b3957294301118ab4ddb9e4fc957456814648e621779 Super GG 68 in 1 [Sonic Adventure] (Unl).gg
sha1:0797ef96d124d26e70bad608e83822f32834d0cb Super GG 68 in 1 [Sonic Adventure] (Unl).gg
md5:1ce5ac701eeaf6d5a74741121466e5e8 Super GG 68 in 1 [Sonic Adventure] (Unl).gg
mekacrc:8F378BEF3668D84A Super GG 68 in 1 [Sonic Adventure] (Unl).gg
crc32:99ee7296 Super GG 68 in 1 [Sonic Adventure] (Unl).gg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part000000-Menu-32k.gg
Checking for export header with matching CRC... NO
sha256:315173be8817d39cddae5c17ddf304418203bcbe911ad2fd3cbc03873cf95a40 Super GG 68 in 1 [Sonic Adventure] (Unl)/part000000-Menu-32k.gg
sha1:907cbdbd756bf9bdb19d2d17f5a8c483a7639a78 Super GG 68 in 1 [Sonic Adventure] (Unl)/part000000-Menu-32k.gg
md5:862fb039328a4b64353142b1dd9bf9b6 Super GG 68 in 1 [Sonic Adventure] (Unl)/part000000-Menu-32k.gg
mekacrc:2D6D727B22193A04 Super GG 68 in 1 [Sonic Adventure] (Unl)/part000000-Menu-32k.gg
crc32:4a995872 Super GG 68 in 1 [Sonic Adventure] (Unl)/part000000-Menu-32k.gg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part010000-Columns [v1] (JP)-32k.gg
Checking for export header with matching CRC... NO
sha256:9e0a2b9c2af94bdfc95ca5c884fdf40ac9178388a6e8a36ccac263492ad74781 Super GG 68 in 1 [Sonic Adventure] (Unl)/part010000-Columns [v1] (JP)-32k.gg
sha1:d83fd16bd23c51750555a692535daa171ed41af0 Super GG 68 in 1 [Sonic Adventure] (Unl)/part010000-Columns [v1] (JP)-32k.gg
md5:36b33d28235b4c9439ab0f62ab1c97c4 Super GG 68 in 1 [Sonic Adventure] (Unl)/part010000-Columns [v1] (JP)-32k.gg
mekacrc:C8F45DEC67DF2095 Super GG 68 in 1 [Sonic Adventure] (Unl)/part010000-Columns [v1] (JP)-32k.gg
crc32:ac37e092 Super GG 68 in 1 [Sonic Adventure] (Unl)/part010000-Columns [v1] (JP)-32k.gg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part020000-Woody Pop [v0] (JP)-32k.gg
Checking for export header with matching CRC... NO
sha256:b6b639dcfa1492b5616b83ae4ac8b76ded84c449161291964a2fc3db0f3fb1a2 Super GG 68 in 1 [Sonic Adventure] (Unl)/part020000-Woody Pop [v0] (JP)-32k.gg
sha1:9e7defda6873b7bca5650fad4426a6fb443522d8 Super GG 68 in 1 [Sonic Adventure] (Unl)/part020000-Woody Pop [v0] (JP)-32k.gg
md5:c017baf7fa0de71219dfab91caa59f8f Super GG 68 in 1 [Sonic Adventure] (Unl)/part020000-Woody Pop [v0] (JP)-32k.gg
mekacrc:902D4CDEE014FD28 Super GG 68 in 1 [Sonic Adventure] (Unl)/part020000-Woody Pop [v0] (JP)-32k.gg
crc32:9c0e5a04 Super GG 68 in 1 [Sonic Adventure] (Unl)/part020000-Woody Pop [v0] (JP)-32k.gg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part030000-pengo-32k.gg
Checking for export header with matching CRC... NO
sha256:e1051bba30d7b681b7d7a17f9ea280daf1ed1f9f9184f24a5a88afc536c5d1c1 Super GG 68 in 1 [Sonic Adventure] (Unl)/part030000-pengo-32k.gg
sha1:5f1c16d637ff94147ab93690a7acf0a3da7c1155 Super GG 68 in 1 [Sonic Adventure] (Unl)/part030000-pengo-32k.gg
md5:6254d1c010a646fa73142b7c344b31bd Super GG 68 in 1 [Sonic Adventure] (Unl)/part030000-pengo-32k.gg
mekacrc:593C7A3470EED48B Super GG 68 in 1 [Sonic Adventure] (Unl)/part030000-pengo-32k.gg
crc32:189e02fa Super GG 68 in 1 [Sonic Adventure] (Unl)/part030000-pengo-32k.gg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part040000-Dr. HELLO (Korea) (Unl)-32k.sms
Checking for export header with matching CRC... NO
sha256:91c370b64a8a653c1d706dc79b0d915aabd479cfc1724aa46273c9f1954af79a Super GG 68 in 1 [Sonic Adventure] (Unl)/part040000-Dr. HELLO (Korea) (Unl)-32k.sms
sha1:d9413e3693dc0feb6fdf845244eba88b5e5de9e3 Super GG 68 in 1 [Sonic Adventure] (Unl)/part040000-Dr. HELLO (Korea) (Unl)-32k.sms
md5:c9209e366fc06a2efe63e3a97470f690 Super GG 68 in 1 [Sonic Adventure] (Unl)/part040000-Dr. HELLO (Korea) (Unl)-32k.sms
mekacrc:CAB3012EDC758A79 Super GG 68 in 1 [Sonic Adventure] (Unl)/part040000-Dr. HELLO (Korea) (Unl)-32k.sms
crc32:b11a90f1 Super GG 68 in 1 [Sonic Adventure] (Unl)/part040000-Dr. HELLO (Korea) (Unl)-32k.sms

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part050000-Super Tennis (US,EU,DE)-32k.sms
Checking for export header with matching CRC... YES
sha256:5fb097b508a482c29f12c2203a0a98a0dd7ce9873e7ef12fb7e0aeea250a99e2 Super GG 68 in 1 [Sonic Adventure] (Unl)/part050000-Super Tennis (US,EU,DE)-32k.sms
sha1:67787f3f29a5b5e74b5f6a636428da4517a0f992 Super GG 68 in 1 [Sonic Adventure] (Unl)/part050000-Super Tennis (US,EU,DE)-32k.sms
md5:2db9404fe79593fd2379921ca822103a Super GG 68 in 1 [Sonic Adventure] (Unl)/part050000-Super Tennis (US,EU,DE)-32k.sms
mekacrc:F799F9C458560EF7 Super GG 68 in 1 [Sonic Adventure] (Unl)/part050000-Super Tennis (US,EU,DE)-32k.sms
crc32:914514e3 Super GG 68 in 1 [Sonic Adventure] (Unl)/part050000-Super Tennis (US,EU,DE)-32k.sms

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part060000-Choplifter (JP,AU)-32k.sg
Checking for export header with matching CRC... NO
sha256:dc91150015413e7205e24e5e854abec900ac216000ae76e571d0e58a8f512957 Super GG 68 in 1 [Sonic Adventure] (Unl)/part060000-Choplifter (JP,AU)-32k.sg
sha1:e0828517fdc9a5537fda39dbc49942494eb3196d Super GG 68 in 1 [Sonic Adventure] (Unl)/part060000-Choplifter (JP,AU)-32k.sg
md5:ee557c7811f03c44965a56b80801a3b9 Super GG 68 in 1 [Sonic Adventure] (Unl)/part060000-Choplifter (JP,AU)-32k.sg
mekacrc:308D125E31D34B84 Super GG 68 in 1 [Sonic Adventure] (Unl)/part060000-Choplifter (JP,AU)-32k.sg
crc32:732b7180 Super GG 68 in 1 [Sonic Adventure] (Unl)/part060000-Choplifter (JP,AU)-32k.sg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part070000-sega-galaga-32k.sg
Checking for export header with matching CRC... NO
sha256:4f5027c189fa2aa88f5e2bccdab75abb0426818b2d16191e6ec405e144f2b806 Super GG 68 in 1 [Sonic Adventure] (Unl)/part070000-sega-galaga-32k.sg
sha1:9c8c0de9ed43851e3bd496f7eaad007ce52ac6c5 Super GG 68 in 1 [Sonic Adventure] (Unl)/part070000-sega-galaga-32k.sg
md5:0750b1cdfad87a6e0d1b89916136a31f Super GG 68 in 1 [Sonic Adventure] (Unl)/part070000-sega-galaga-32k.sg
mekacrc:C5F4DF70EBA8372E Super GG 68 in 1 [Sonic Adventure] (Unl)/part070000-sega-galaga-32k.sg
crc32:c22f4e80 Super GG 68 in 1 [Sonic Adventure] (Unl)/part070000-sega-galaga-32k.sg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part080000-Drol (JP,AU)-32k.sg
Checking for export header with matching CRC... NO
sha256:a124c812a05b458c405a655506c73e872e6db620c850dd01fb7f65908549aa79 Super GG 68 in 1 [Sonic Adventure] (Unl)/part080000-Drol (JP,AU)-32k.sg
sha1:607b2b9a946eaaebb938800bd3b1df7d9342388c Super GG 68 in 1 [Sonic Adventure] (Unl)/part080000-Drol (JP,AU)-32k.sg
md5:8eb2ab42d2bc3f3568e85cba2b46a251 Super GG 68 in 1 [Sonic Adventure] (Unl)/part080000-Drol (JP,AU)-32k.sg
mekacrc:546C1EFBFD7F5754 Super GG 68 in 1 [Sonic Adventure] (Unl)/part080000-Drol (JP,AU)-32k.sg
crc32:288940cb Super GG 68 in 1 [Sonic Adventure] (Unl)/part080000-Drol (JP,AU)-32k.sg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part090000-bomb-jack-32k.sg
Checking for export header with matching CRC... NO
sha256:526b01bb9730b5e9b769d53f27cfb735e6f5c0714748e3006f05821791d20c13 Super GG 68 in 1 [Sonic Adventure] (Unl)/part090000-bomb-jack-32k.sg
sha1:f0db86ef15dbdc32a793f37e82b4cf34614b59d8 Super GG 68 in 1 [Sonic Adventure] (Unl)/part090000-bomb-jack-32k.sg
md5:00d2fdd367c16bcd01328132ae65b9ff Super GG 68 in 1 [Sonic Adventure] (Unl)/part090000-bomb-jack-32k.sg
mekacrc:B071A84FA2431DE6 Super GG 68 in 1 [Sonic Adventure] (Unl)/part090000-bomb-jack-32k.sg
crc32:f7f195ec Super GG 68 in 1 [Sonic Adventure] (Unl)/part090000-bomb-jack-32k.sg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part0a0000-astro-flash-32k.sms
Checking for export header with matching CRC... NO
sha256:bf22972cc6e88a0eb3a6f2e483fa769ba4a5573edfe421dbfa75a6697053bef7 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0a0000-astro-flash-32k.sms
sha1:94a0c358ef4e4c13ae2dc03558a0d5f46a28efd9 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0a0000-astro-flash-32k.sms
md5:9d9aac5b483d3e750ba120959aaaac20 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0a0000-astro-flash-32k.sms
mekacrc:2D22172DD72A88E4 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0a0000-astro-flash-32k.sms
crc32:ea5692a8 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0a0000-astro-flash-32k.sms

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part0b0000-Zoom 909 (JP)-32k.sg
Checking for export header with matching CRC... NO
sha256:78ca7d49c96fa83c68db22b8257c30ebf5cc4f17667936853c38ade4e3321d06 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0b0000-Zoom 909 (JP)-32k.sg
sha1:09552aaa7140f9fc780b5f7d541478b534320075 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0b0000-Zoom 909 (JP)-32k.sg
md5:4e457a6c5b4b613f2aac3472f6827a89 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0b0000-Zoom 909 (JP)-32k.sg
mekacrc:93DD3B768470FCEF Super GG 68 in 1 [Sonic Adventure] (Unl)/part0b0000-Zoom 909 (JP)-32k.sg
crc32:093830d8 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0b0000-Zoom 909 (JP)-32k.sg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
Checking for export header with matching CRC... YES
sha256:0d35d0e232d64e714fa5d07e45acaf01ea9fb5a8f88fe9ac8018719ac2818d6f Super GG 68 in 1 [Sonic Adventure] (Unl)/part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
sha1:e601257f6477b85eb0b25a5b6d46ebc070d8a05a Super GG 68 in 1 [Sonic Adventure] (Unl)/part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
md5:2864be0d35269c5030a7f297f70e3ac3 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
mekacrc:F0A23277115075EF Super GG 68 in 1 [Sonic Adventure] (Unl)/part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms
crc32:071b045e Super GG 68 in 1 [Sonic Adventure] (Unl)/part0c0000-Hang On (EU,AU,BR,DE,IT)-32k.sms

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part0d0000-Satellite 7 (JP)-32k.sms
Checking for export header with matching CRC... NO
sha256:3e659f15fbcc6511dfeb2112762074a8441479bb33887d196eb343e124d14fe5 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0d0000-Satellite 7 (JP)-32k.sms
sha1:88fc5596773ea31eda8ae5a8baf6f0ce5c3f7e5e Super GG 68 in 1 [Sonic Adventure] (Unl)/part0d0000-Satellite 7 (JP)-32k.sms
md5:eac6a843975c50e39eb32f764da2a5ac Super GG 68 in 1 [Sonic Adventure] (Unl)/part0d0000-Satellite 7 (JP)-32k.sms
mekacrc:ABFBCE1810529280 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0d0000-Satellite 7 (JP)-32k.sms
crc32:16249e19 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0d0000-Satellite 7 (JP)-32k.sms

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
Checking for export header with matching CRC... NO
sha256:d579ea7592473c216244fbe2d85f532e55df8aaaaddb3be9bd7d47cc8d4f9e54 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
sha1:7638a7af5f9e6192c3b94e7fbf5cca1a51643efd Super GG 68 in 1 [Sonic Adventure] (Unl)/part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
md5:e6c49f44cf307a303ddcc44d9402b8ec Super GG 68 in 1 [Sonic Adventure] (Unl)/part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
mekacrc:6F16109C70F21E4F Super GG 68 in 1 [Sonic Adventure] (Unl)/part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg
crc32:fad12c54 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0e0000-Hustle Chumy (JP,KR) [o]-32k.sg

32K Super GG 68 in 1 [Sonic Adventure] (Unl)/part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
Checking for export header with matching CRC... NO
sha256:a6295506e0d09d449d87f6d8243956d601e971b810208ff27e56b38cda65b8c5 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
sha1:f14f216edfda7dfd113f5cb32375a27be8a6409d Super GG 68 in 1 [Sonic Adventure] (Unl)/part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
md5:4b4f02eb3cf7d5f9dcd1311d72e6d742 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
mekacrc:7C7748E59B2DCE4A Super GG 68 in 1 [Sonic Adventure] (Unl)/part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg
crc32:00ed3970 Super GG 68 in 1 [Sonic Adventure] (Unl)/part0f0000-Lode Runner (JP,AU,EU,KR)-32k.sg

256K Super GG 68 in 1 [Sonic Adventure] (Unl)/part100c00-Bust-A-Move (US)-256k.gg
Checking for export header with matching CRC... NO
sha256:873ec1b69159ac390fec4a15c454184e95db719202a330682f62b897b3f0dfcd Super GG 68 in 1 [Sonic Adventure] (Unl)/part100c00-Bust-A-Move (US)-256k.gg
sha1:e6bb5f72cffb11c8dd44ac3e378088b04cec1297 Super GG 68 in 1 [Sonic Adventure] (Unl)/part100c00-Bust-A-Move (US)-256k.gg
md5:50a41b6b8062095c142acd186b6118c9 Super GG 68 in 1 [Sonic Adventure] (Unl)/part100c00-Bust-A-Move (US)-256k.gg
mekacrc:DCCED394874D1605 Super GG 68 in 1 [Sonic Adventure] (Unl)/part100c00-Bust-A-Move (US)-256k.gg
crc32:c90f29ef Super GG 68 in 1 [Sonic Adventure] (Unl)/part100c00-Bust-A-Move (US)-256k.gg

256K Super GG 68 in 1 [Sonic Adventure] (Unl)/part180c00-Dragon - The Bruce Lee Story (US)-256k.gg
Checking for export header with matching CRC... NO
sha256:4286fb6f514af4e83df559e41762bcb46eeed4d4ee00985bf88bac71316101bc Super GG 68 in 1 [Sonic Adventure] (Unl)/part180c00-Dragon - The Bruce Lee Story (US)-256k.gg
sha1:60c7cbe782c3df094452835076b9425c329c82ee Super GG 68 in 1 [Sonic Adventure] (Unl)/part180c00-Dragon - The Bruce Lee Story (US)-256k.gg
md5:81e7bea1c445540544002a5ccf91fe3c Super GG 68 in 1 [Sonic Adventure] (Unl)/part180c00-Dragon - The Bruce Lee Story (US)-256k.gg
mekacrc:D2CA3AAE14557F94 Super GG 68 in 1 [Sonic Adventure] (Unl)/part180c00-Dragon - The Bruce Lee Story (US)-256k.gg
crc32:17f588e8 Super GG 68 in 1 [Sonic Adventure] (Unl)/part180c00-Dragon - The Bruce Lee Story (US)-256k.gg

512K Super GG 68 in 1 [Sonic Adventure] (Unl)/part001204-Mega Man (US)-512k.gg
Checking for export header with matching CRC... NO
sha256:b313e90469133da5d0d39f683cc098993c3b137458804dd0aafb173eb39cd98a Super GG 68 in 1 [Sonic Adventure] (Unl)/part001204-Mega Man (US)-512k.gg
sha1:085517c4ac940b937d0e0a900e4735a2247ca4dd Super GG 68 in 1 [Sonic Adventure] (Unl)/part001204-Mega Man (US)-512k.gg
md5:8583950be61ffbaf0f63dde8dded2ab3 Super GG 68 in 1 [Sonic Adventure] (Unl)/part001204-Mega Man (US)-512k.gg
mekacrc:F0B8660AB1883B74 Super GG 68 in 1 [Sonic Adventure] (Unl)/part001204-Mega Man (US)-512k.gg
crc32:1ace93af Super GG 68 in 1 [Sonic Adventure] (Unl)/part001204-Mega Man (US)-512k.gg

512K Super GG 68 in 1 [Sonic Adventure] (Unl)/part101204-Tails Adventures (JP,US,EU)-512k.gg
Checking for export header with matching CRC... NO
sha256:92a9985333df0ee46e9a44b97bda37c565de831bbcbc9b740cd43637b0f5072a Super GG 68 in 1 [Sonic Adventure] (Unl)/part101204-Tails Adventures (JP,US,EU)-512k.gg
sha1:da3df145b8e9f2a2e680d2c92939084d4530ed90 Super GG 68 in 1 [Sonic Adventure] (Unl)/part101204-Tails Adventures (JP,US,EU)-512k.gg
md5:a8bdb1beed088ff83c725c5af6b85e1f Super GG 68 in 1 [Sonic Adventure] (Unl)/part101204-Tails Adventures (JP,US,EU)-512k.gg
mekacrc:134A286D9BE1D8BA Super GG 68 in 1 [Sonic Adventure] (Unl)/part101204-Tails Adventures (JP,US,EU)-512k.gg
crc32:5bb6e5d6 Super GG 68 in 1 [Sonic Adventure] (Unl)/part101204-Tails Adventures (JP,US,EU)-512k.gg

---

I've been calling this "GG Super 56 in 1 (B) [Mega Man] (Unl)" but the correct name is not entirely clear

The label has some title candidate text:

GG (in a jagged balloon)
Super
56 in 1
(B)

The menu screens also have a collection title:

G.G. 56 IN 1

The cartridge label has a game list with Traditional Chinese and English names for each of the 56 entries

Mine came used as a loose cartridge

This is a 2MB Game Gear multicart containing both native Game Gear games and SMS games running in SMS-GG mode

This cartridge also contains a copy of SG-1000 Exerion combined with the menu, but this appears not to be reachable and may not be fully playable though it can at least be started by forcing a jump to address 0x0004

Dumping steps are the same as for "Super GG 68 in 1 [Sonic Adventure] (Unl)" and the mapper is basically the same too

Here's the dumping script I used to extract the contents. It turns out the cartridge can remain connected between dumps. After the fragment shown, I used a regular Sega dumping steps (regular read for the first 32KB, then paging using 0xFFFF and the 0x8000...0xBFFF range after that.)
```
// /* first megabyte, first 256K */ 0x000C00;
// /* first megabyte, second 256K */ 0x080C00;
// /* first megabyte, third 256K */ 0x100C00;
// /* first megabyte, fourth 256K */ 0x180C00;
// /* second megabyte, first 512K */ 0x001204;
// /* second megabyte, second 512K */ 0x101204;
local base_page_unlock = 0x200C00; // adjust for different games
cpu_write(d, 0xFFF9, 0x00);
cpu_write(d, 0xFFF8, 0x00);
cpu_write(d, 0xFFFA, 0x01);
cpu_write(d, 0xFFF8, (base_page_unlock & 0xFF0000) >> 16);
cpu_write(d, 0xFFF9, (base_page_unlock & 0xFF00) >> 8);
cpu_write(d, 0xFFFA, base_page_unlock & 0xFF);
cpu_write(d, 0xFFFE, 0x01);
```

On startup the menu writes:
[0xFFFE=0x01]

Menu contents: (the arrow "→" is a movable cursor and shown in its initial position)

Screen 1:

```
   G.G. 56 IN 1

 PUSH ↑.↓.1.START

→01.MAGA MAN       [0xFFFA=0x00, 0xFFF9=0x13, 0xFFF8=0x10, 0xFFFE=0x01]; it's [GG] part-30-Mega Man (US)-512k.gg
 02.FATAL FURY  2  [0xFFFA=0x00, 0xFFF9=0x13, 0xFFF8=0x00, 0xFFFE=0x01]; it's [GG] part-20-Fatal Fury Special (US)-512k.gg
 03.DORAEMON       [0xFFFA=0x00, 0xFFF9=0x0c, 0xFFF8=0x10, 0xFFFE=0x01]; it's [GG] part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
 04.SONIC TAIL     [0xFFFA=0x00, 0xFFF9=0x0c, 0xFFF8=0x18, 0xFFFE=0x01]; it's [GG] part-18-Tails' Skypatrol (JP)-256k.gg
 05.DAN PEN        [0xFFFA=0x00, 0xFFF9=0x08, 0xFFF8=0x04, 0xFFFE=0x01]; it's [GG] part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
 06.COLUMNS        [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x01, 0xFFFE=0x01]; it's [GG] part-01-columns-32k.gg
 07.GHOST HOUSE    [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0f, 0xFFFE=0x01]; it's [SMS-GG] part-0f-ghost-house-32k.sms
 08.SATELLITE-7    [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0e, 0xFFFE=0x01]; it's [SMS-GG] part-0e-satellite-7-32k.sms
 09.ASTRO FLASH    [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0d, 0xFFFE=0x01]; it's [SMS-GG] part-0d-astro-flash-32k.sms
 10.MACHINE GUN    [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0c, 0xFFFE=0x01]; it's [SMS-GG] part-0c-machine-gun-joe-32k.sms
```

Screen 2:

```
   G.G. 56 IN 1

 PUSH ↑.↓.1.START

→11.ACTION BOY     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0b, 0xFFFE=0x01]; it's [SMS-GG] part-0b-seishun-scandal-32k.sms
 12.SPY  VS SPY    [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0a, 0xFFFE=0x01]; it's [SMS-GG] part-0a-spy-vs-spy-32k.sms
 13.GREAT SOCCER   [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x09, 0xFFFE=0x01]; it's [SMS-GG] part-09-great-soccer-32k.sms
 14.HANG ON        [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x08, 0xFFFE=0x01]; it's [SMS-GG] part-08-hang-on-32k.sms
 15.WOODY POP      [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x03, 0xFFFE=0x01]; it's [GG] part-03-woody-pop-32k.gg
 16.PENGUIN LAND   [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x02, 0xFFFE=0x01]; it's [GG] part-02-pengo-32k.gg
 17.ARO DIN DON    [0xFFFA=0x00, 0xFFF9=0x0c, 0xFFF8=0x10, 0xFFFE=0x01]; it's [GG] part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
 18.SUPER DAN PEI  [0xFFFA=0x00, 0xFFF9=0x08, 0xFFF8=0x04, 0xFFFE=0x01]; it's [GG] part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
 19.ROCK MAN       [0xFFFA=0x00, 0xFFF9=0x13, 0xFFF8=0x10, 0xFFFE=0x01]; it's [GG] part-30-Mega Man (US)-512k.gg
 20.WORLD HEROS    [0xFFFA=0x00, 0xFFF9=0x13, 0xFFF8=0x00, 0xFFFE=0x01]; it's [GG] part-20-Fatal Fury Special (US)-512k.gg
```

Screen 3:

```
   G.G. 56 IN 1

 PUSH ↑.↓.1.START

→21.SONIC BROTHER  [0xFFFA=0x00, 0xFFF9=0x0c, 0xFFF8=0x18, 0xFFFE=0x01]; it's [GG] part-18-Tails' Skypatrol (JP)-256k.gg
 22.ALLEY WAY      [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x03, 0xFFFE=0x01]; it's [GG] part-03-woody-pop-32k.gg
 23.PENGO          [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x02, 0xFFFE=0x01]; it's [GG] part-02-pengo-32k.gg
 24.COLORS TETRIS  [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x01, 0xFFFE=0x01]; it's [GG] part-01-columns-32k.gg
 25.GHOST LAND     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0f, 0xFFFE=0x01]; it's [SMS-GG] part-0f-ghost-house-32k.sms
 26.STAR GATE      [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0e, 0xFFFE=0x01]; it's [SMS-GG] part-0e-satellite-7-32k.sms
 27.VOLLEY FIRE    [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0d, 0xFFFE=0x01]; it's [SMS-GG] part-0d-astro-flash-32k.sms
 28.SHOOT GUN      [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0c, 0xFFFE=0x01]; it's [SMS-GG] part-0c-machine-gun-joe-32k.sms
 29.SCHOOL BOY     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0b, 0xFFFE=0x01]; it's [SMS-GG] part-0b-seishun-scandal-32k.sms
 30.TECHNO COP     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0a, 0xFFFE=0x01]; it's [SMS-GG] part-0a-spy-vs-spy-32k.sms
```

Screen 4:

```
   G.G. 56 IN 1

 PUSH ↑.↓.1.START

→31.FIFA SOCCER    [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x09, 0xFFFE=0x01]; it's [SMS-GG] part-09-great-soccer-32k.sms
 32.MOTOBIKE       [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x08, 0xFFFE=0x01]; it's [SMS-GG] part-08-hang-on-32k.sms
 33.ATTACK         [0xFFFA=0x00, 0xFFF9=0x13, 0xFFF8=0x10, 0xFFFE=0x01]; it's [GG] part-30-Mega Man (US)-512k.gg
 34.THUNDER        [0xFFFA=0x00, 0xFFF9=0x0c, 0xFFF8=0x10, 0xFFFE=0x01]; it's [GG] part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
 35.DANGEROUS      [0xFFFA=0x00, 0xFFF9=0x0c, 0xFFF8=0x18, 0xFFFE=0x01]; it's [GG] part-18-Tails' Skypatrol (JP)-256k.gg
 36.POP POP HERO   [0xFFFA=0x00, 0xFFF9=0x08, 0xFFF8=0x04, 0xFFFE=0x01]; it's [GG] part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
 37.YOUNG GUY      [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0b, 0xFFFE=0x01]; it's [SMS-GG] part-0b-seishun-scandal-32k.sms
 38.FURY 95        [0xFFFA=0x00, 0xFFF9=0x13, 0xFFF8=0x00, 0xFFFE=0x01]; it's [GG] part-20-Fatal Fury Special (US)-512k.gg
 39.LIONET         [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x08, 0xFFFE=0x01]; it's [SMS-GG] part-08-hang-on-32k.sms
 40.WOODY WAY      [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x03, 0xFFFE=0x01]; it's [GG] part-03-woody-pop-32k.gg
```

Screen 5:

```
   G.G. 56 IN 1

 PUSH ↑.↓.1.START

→41.PENGUIN EGG    [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x02, 0xFFFE=0x01]; it's [GG] part-02-pengo-32k.gg
 42.COLORS BLOCK   [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x01, 0xFFFE=0x01]; it's [GG] part-01-columns-32k.gg
 43.GHOST BUSTER   [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0f, 0xFFFE=0x01]; it's [SMS-GG] part-0f-ghost-house-32k.sms
 44.TOP GUN        [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0e, 0xFFFE=0x01]; it's [SMS-GG] part-0e-satellite-7-32k.sms
 45.AIR WAR        [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0d, 0xFFFE=0x01]; it's [SMS-GG] part-0d-astro-flash-32k.sms
 46.HUNTER         [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0c, 0xFFFE=0x01]; it's [SMS-GG] part-0c-machine-gun-joe-32k.sms
 47.MY HERO        [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0b, 0xFFFE=0x01]; it's [SMS-GG] part-0b-seishun-scandal-32k.sms
 48.SPY MAN        [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0a, 0xFFFE=0x01]; it's [SMS-GG] part-0a-spy-vs-spy-32k.sms
 49.PRO SOCCER     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x09, 0xFFFE=0x01]; it's [SMS-GG] part-09-great-soccer-32k.sms
 40.MOTOCROSS      [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x08, 0xFFFE=0x01]; it's [SMS-GG] part-08-hang-on-32k.sms
```

Screen 6:

```
   G.G. 56 IN 1

 PUSH ↑.↓.1.START

→51.PRO CRAZY BOY  [0xFFFA=0x00, 0xFFF9=0x13, 0xFFF8=0x10, 0xFFFE=0x01]; it's [GG] part-30-Mega Man (US)-512k.gg
 52.BOY BLUES      [0xFFFA=0x00, 0xFFF9=0x0c, 0xFFF8=0x10, 0xFFFE=0x01]; it's [GG] part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
 53.P.P GAMES      [0xFFFA=0x00, 0xFFF9=0x0c, 0xFFF8=0x18, 0xFFFE=0x01]; it's [GG] part-18-Tails' Skypatrol (JP)-256k.gg
 54.KLAX           [0xFFFA=0x00, 0xFFF9=0x08, 0xFFF8=0x04, 0xFFFE=0x01]; it's [GG] part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
 55.F 16 BOY       [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0d, 0xFFFE=0x01]; it's [SMS-GG] part-0d-astro-flash-32k.sms
 56.STREE FIGHTER  [0xFFFA=0x00, 0xFFF9=0x13, 0xFFF8=0x00, 0xFFFE=0x01]; it's [GG] part-20-Fatal Fury Special (US)-512k.gg
```

ROM fingerprint information:

2.0M GG Super 56 in 1 (B) [Mega Man] (Unl).gg
Checking for export header with matching CRC... NO
sha256:80ab455b6204ba7b1968bbb4b085fe3a23ed567c02a7d94bb223ee30000266a5 GG Super 56 in 1 (B) [Mega Man] (Unl).gg
sha1:a31755d835e42ad4695e453dece0d9b3f98c92cf GG Super 56 in 1 (B) [Mega Man] (Unl).gg
md5:2bb00478b5df60492c49e77075d432fa GG Super 56 in 1 (B) [Mega Man] (Unl).gg
mekacrc:92CBD58C8243F885 GG Super 56 in 1 (B) [Mega Man] (Unl).gg
crc32:271f40a3 GG Super 56 in 1 (B) [Mega Man] (Unl).gg

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-00-menu-and-exerion-32k.gg
Checking for export header with matching CRC... NO
sha256:e2c42cacc925c5625deaa3b1b8c4ba3af02388aec5a31de3b1ff6cb3549fc29f GG Super 56 in 1 (B) [Mega Man] (Unl)/part-00-menu-and-exerion-32k.gg
sha1:af611e1557c4f10ce4f76ff155ae8f6f216a4443 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-00-menu-and-exerion-32k.gg
md5:e26a304dfef7ea019c79dedc0b2782ad GG Super 56 in 1 (B) [Mega Man] (Unl)/part-00-menu-and-exerion-32k.gg
mekacrc:A96A175A0CC102AD GG Super 56 in 1 (B) [Mega Man] (Unl)/part-00-menu-and-exerion-32k.gg
crc32:4a97d476 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-00-menu-and-exerion-32k.gg

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-01-columns-32k.gg
Checking for export header with matching CRC... NO
sha256:73f6012c1a92bcc96497668cdecfb3b592162c6b39a8c7efb8b9dc3931380561 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-01-columns-32k.gg
sha1:26d407e8389a5564b836f0a68585a935ca019802 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-01-columns-32k.gg
md5:bfcf0e46ec8df8a51776bd2315b859fc GG Super 56 in 1 (B) [Mega Man] (Unl)/part-01-columns-32k.gg
mekacrc:1DE54704572F032A GG Super 56 in 1 (B) [Mega Man] (Unl)/part-01-columns-32k.gg
crc32:7316423e GG Super 56 in 1 (B) [Mega Man] (Unl)/part-01-columns-32k.gg

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-02-pengo-32k.gg
Checking for export header with matching CRC... NO
sha256:1c221bcb0b7ef67e644a695b78cb4dd851b800202ee13fd8d03fb099e533c46a GG Super 56 in 1 (B) [Mega Man] (Unl)/part-02-pengo-32k.gg
sha1:126654feb2975e3a52431d29cefcafbd37bb2ef5 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-02-pengo-32k.gg
md5:69bf00297cad6ee0bb6046c8084e5e37 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-02-pengo-32k.gg
mekacrc:6C3C703170EBD587 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-02-pengo-32k.gg
crc32:6bd56e95 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-02-pengo-32k.gg

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-03-woody-pop-32k.gg
Checking for export header with matching CRC... NO
sha256:0c23fccffa3160b6754fa54ecbf08d3828f5e60a64dbe4203109715644ad94ce GG Super 56 in 1 (B) [Mega Man] (Unl)/part-03-woody-pop-32k.gg
sha1:58516c23f1e1b87daebda1b971fab278a6e7ce59 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-03-woody-pop-32k.gg
md5:3885c64be1dc990918adebcbe9675855 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-03-woody-pop-32k.gg
mekacrc:9D2A47DDDF12FD27 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-03-woody-pop-32k.gg
crc32:0c6e4769 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-03-woody-pop-32k.gg

128K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
Checking for export header with matching CRC... NO
sha256:ac7b81ec5cdc7dd6ed1cfd8f1690fdd9461493827535f3744ddc1c95e834ba30 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
sha1:66032cc214d728b2f1c59ad2934277e378b36865 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
md5:a299b81a9a5455bfff538f669a5e7a0d GG Super 56 in 1 (B) [Mega Man] (Unl)/part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
mekacrc:357F4A30EE2C9A1E GG Super 56 in 1 (B) [Mega Man] (Unl)/part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg
crc32:dfa805a0 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-04-Honoo no Toukyuuji Dodge Danpei (JP)-128k.gg

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-08-hang-on-32k.sms
Checking for export header with matching CRC... NO
sha256:5a2ecca3d78ae9aa8a6ac2c1775122cfdce3744898032ce5763c0017350e58ce GG Super 56 in 1 (B) [Mega Man] (Unl)/part-08-hang-on-32k.sms
sha1:5726c7f7948612ca42daed96ded45745393bd80a GG Super 56 in 1 (B) [Mega Man] (Unl)/part-08-hang-on-32k.sms
md5:5c25b6b38963fc513958a26e64c591d4 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-08-hang-on-32k.sms
mekacrc:02A62976104874ED GG Super 56 in 1 (B) [Mega Man] (Unl)/part-08-hang-on-32k.sms
crc32:40cedfd9 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-08-hang-on-32k.sms

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-09-great-soccer-32k.sms
Checking for export header with matching CRC... NO
sha256:b48ce6a09946941fdf62e8ebf611fc1706344e26ea230bb206ba98cf04e9fbd2 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-09-great-soccer-32k.sms
sha1:41d55da9ed00124c570d9964494b791e09d93af8 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-09-great-soccer-32k.sms
md5:cecccff2d09d3cc705d848b28037e267 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-09-great-soccer-32k.sms
mekacrc:7CB0BCEF29C11827 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-09-great-soccer-32k.sms
crc32:be711818 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-09-great-soccer-32k.sms

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0a-spy-vs-spy-32k.sms
Checking for export header with matching CRC... NO
sha256:bcba12678775542b59694fc8fe3945530490cdd92a2bfafb07f74b189fa03ede GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0a-spy-vs-spy-32k.sms
sha1:fd7d1bee1ca42c6d962780f21d5ad138b792db59 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0a-spy-vs-spy-32k.sms
md5:324741e68234ae80ff3df8bc3f411557 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0a-spy-vs-spy-32k.sms
mekacrc:98EC9FA8477AEC88 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0a-spy-vs-spy-32k.sms
crc32:f13a28c0 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0a-spy-vs-spy-32k.sms

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0b-seishun-scandal-32k.sms
Checking for export header with matching CRC... NO
sha256:3a1df738527b578e248b6650c9a1498abaf9bef6da813a172dfae0a63be4e746 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0b-seishun-scandal-32k.sms
sha1:2c39fdf814e223e2dc14646941a276879ae14c64 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0b-seishun-scandal-32k.sms
md5:c021bce5a58cfbf513af253a25bc29bd GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0b-seishun-scandal-32k.sms
mekacrc:D41A76F3C3411E87 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0b-seishun-scandal-32k.sms
crc32:637dbbef GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0b-seishun-scandal-32k.sms

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0c-machine-gun-joe-32k.sms
Checking for export header with matching CRC... NO
sha256:3981649682a895772012a769e8296e24e660ac4fc4102ecfbb747d53d18cee3e GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0c-machine-gun-joe-32k.sms
sha1:03a8a50b3b9e97ea5e10d7e094d287b51ca477af GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0c-machine-gun-joe-32k.sms
md5:02906381c66601fb49b10bed123455d4 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0c-machine-gun-joe-32k.sms
mekacrc:5C858AC9BD4714B4 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0c-machine-gun-joe-32k.sms
crc32:9a94c7cc GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0c-machine-gun-joe-32k.sms

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0d-astro-flash-32k.sms
Checking for export header with matching CRC... NO
sha256:514484c1d4156fc77e4cefcd39cffd71f3e126c708420100ebb07e4972dc3486 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0d-astro-flash-32k.sms
sha1:b4e2483fbfe9e4c23a6fb14e755e5aa8c6ecece0 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0d-astro-flash-32k.sms
md5:4c13f02b69c266ffea80fd7aba160bb2 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0d-astro-flash-32k.sms
mekacrc:13171118D3218C2D GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0d-astro-flash-32k.sms
crc32:b1267d52 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0d-astro-flash-32k.sms

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0e-satellite-7-32k.sms
Checking for export header with matching CRC... NO
sha256:3adcd01767ee06949a930b88b76f9e2d8c89031c41e289af9d2e4290455ee5c1 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0e-satellite-7-32k.sms
sha1:be0ace7ed8f1f1ab6fa51dfaa3ba2dd167ab3863 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0e-satellite-7-32k.sms
md5:7cb52be125ef66daa5e7a6e971a2a97f GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0e-satellite-7-32k.sms
mekacrc:C30BB9170D4D8E7A GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0e-satellite-7-32k.sms
crc32:eb9a0359 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0e-satellite-7-32k.sms

32K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0f-ghost-house-32k.sms
Checking for export header with matching CRC... NO
sha256:c690ae4bff9711c0244e9a2ab18a579a429b29191dcc993f0ed5a496b472cfd3 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0f-ghost-house-32k.sms
sha1:9917f8f06ed4c99b71d58d8a03fbea13330c84a1 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0f-ghost-house-32k.sms
md5:343210de693491444b452df7b665921d GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0f-ghost-house-32k.sms
mekacrc:A5771FE4EC52960D GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0f-ghost-house-32k.sms
crc32:317451a3 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-0f-ghost-house-32k.sms

256K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
Checking for export header with matching CRC... NO
sha256:09a0ff25362323583df586c6e6825a54499a24883802190854b9ff856e3fd7ce GG Super 56 in 1 (B) [Mega Man] (Unl)/part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
sha1:6976b170879767889994b1e763a52726aa62ed98 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
md5:e768a7c45f8ea390d6091032fdf6dcbe GG Super 56 in 1 (B) [Mega Man] (Unl)/part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
mekacrc:4200580F20BADF9E GG Super 56 in 1 (B) [Mega Man] (Unl)/part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg
crc32:9a8b2c16 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-10-Doraemon Nora No Suke No Yabou (JP)-256k.gg

256K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-18-Tails' Skypatrol (JP)-256k.gg
Checking for export header with matching CRC... NO
sha256:334406059c26a3704e881680fe102f819472cd331ceb13a79ce9f6b9adc08e0b GG Super 56 in 1 (B) [Mega Man] (Unl)/part-18-Tails' Skypatrol (JP)-256k.gg
sha1:9cb440611e9e3a7957438698fede0978d568a807 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-18-Tails' Skypatrol (JP)-256k.gg
md5:ffb364bbaf72881cf7571e7ec388490d GG Super 56 in 1 (B) [Mega Man] (Unl)/part-18-Tails' Skypatrol (JP)-256k.gg
mekacrc:9AB480AD16FFC7A9 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-18-Tails' Skypatrol (JP)-256k.gg
crc32:88618afa GG Super 56 in 1 (B) [Mega Man] (Unl)/part-18-Tails' Skypatrol (JP)-256k.gg

512K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-20-Fatal Fury Special (US)-512k.gg
Checking for export header with matching CRC... NO
sha256:e7b53995690c55dbb1fbe95349a0dce5fe3ed6106d5610d1cd394f93dda43fea GG Super 56 in 1 (B) [Mega Man] (Unl)/part-20-Fatal Fury Special (US)-512k.gg
sha1:7ce20ca34b7bc91ba7e73f830b40830ad6bafbc8 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-20-Fatal Fury Special (US)-512k.gg
md5:4292c099f98cc0c6d03025f0729f64df GG Super 56 in 1 (B) [Mega Man] (Unl)/part-20-Fatal Fury Special (US)-512k.gg
mekacrc:01B1CB4E2F1E4C9C GG Super 56 in 1 (B) [Mega Man] (Unl)/part-20-Fatal Fury Special (US)-512k.gg
crc32:449787e2 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-20-Fatal Fury Special (US)-512k.gg

512K GG Super 56 in 1 (B) [Mega Man] (Unl)/part-30-Mega Man (US)-512k.gg
Checking for export header with matching CRC... NO
sha256:b313e90469133da5d0d39f683cc098993c3b137458804dd0aafb173eb39cd98a GG Super 56 in 1 (B) [Mega Man] (Unl)/part-30-Mega Man (US)-512k.gg
sha1:085517c4ac940b937d0e0a900e4735a2247ca4dd GG Super 56 in 1 (B) [Mega Man] (Unl)/part-30-Mega Man (US)-512k.gg
md5:8583950be61ffbaf0f63dde8dded2ab3 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-30-Mega Man (US)-512k.gg
mekacrc:F0B8660AB1883B74 GG Super 56 in 1 (B) [Mega Man] (Unl)/part-30-Mega Man (US)-512k.gg
crc32:1ace93af GG Super 56 in 1 (B) [Mega Man] (Unl)/part-30-Mega Man (US)-512k.gg

---

I've been calling it "Wise Gear GG 32 in 1 [Nettou Samurai] (Unl)" but the actual names differ

The cartridge has a title but the title is partly cut off. It appears to be:

…WISE GEAR 32 IN 1

… or possibly:

…VISE GEAR 32 IN 1

The part before "…" is cut off

The menu title is:

G.G. 32 IN 1

The label also includes a game list in English and Traditional Chinese.

Transcription of the English part: (the first digit for items 1-16 is inferred)

1. SAMURAL
2. COLUMNS
3. PENGUIN LAND
4. WOODY POP
5. TENNIS
6. PIT POT
7. GHOST HOUSE
8. SATELLITE - 7
9. ASTRO FLASH
10. MACHINE GUN
11. ACTION BOY
12. SPY VS SPY
13. GREAT SOCCER 96
14. HANG ON
15. BASEBALL
16. TEDDYBOY - BLUES
17. REAL SAMURAL
18. COLOURS TETRIS
19. PENGUIN EGG
20. ALLEY WAY
21. GHOST LAND
22. STAR GATE
23. VOLLEY FIRE
24. SHOOT GUN
25. MY HERO
26. SPY MAN
27. SOCCER
28. MOTOCROSS
29. P.P. GAMES
30. WINNER TENNIS
31. GREAT BASEBALL
32. TEDDY BLUES

The label also has pictures of some Game Boy "DELUXE BOY" multicart labels and a partly cut off "MAKE IN JAPAN" mark (the M is inferred)

Dumping steps were the same as for "GG Super 56 in 1 (B) [Mega Man] (Unl)":
```
// GG Super 56 in 1 (B) [Mega Man] (Unl)
local dump_bias = (use_ggs56in1_megaman - 1) * max_dump_size;
for (local offset = dump_bias; offset < (dump_bias + rom_size); offset += address_scale_factor * 0x8000) {
    local base_page_32k = offset / (address_scale_factor * 0x8000);
    cpu_write(d, address_scale_factor * 0xFFFE, 0x01);

    cpu_write(d, address_scale_factor * 0xFFFA, 0x00);
    cpu_write(d, address_scale_factor * 0xFFF9, (base_page_32k & 0x20) ? 0x12 : 0x0c);
    cpu_write(d, address_scale_factor * 0xFFF8, base_page_32k & 0x18);
    cpu_write(d, address_scale_factor * 0xFFFE, 0x01);

    cpu_write(d, address_scale_factor * 0xFFFF, (base_page_32k << 1) | 1);
    cpu_write(d, address_scale_factor * 0xFFFE, (base_page_32k << 1) | 0);
    cpu_read(d, address_scale_factor * 0x4000, address_scale_factor * 0x8000);
}
```

The menu page also includes a still-playable remnant copy of Exerion reachable by jumping to address 0x0004, but this appears not to be listed in the menu system

This is a 1MB ROM containing 17 distinct games - 16 reachable - including four Game Gear games, twelve SMS games, and one unreachable SG-1000 game. They are: GG: Columns, Pengo, Woody Pop, Samurai Spirits (JP); SMS: Super Tennis, Pit Pot, Teddyboy Blues, Great Baseball, Hang-On, Great Soccer, Spy vs Spy, Seishun Scandal, Machine Gun Joe, Astro Flash, Satellite-7, Ghost House; SG-1000: Exerion (unreachable)

On startup the menu code writes to a mapper register:

[0xFFFE=0x01]

Mapper registers appear to be 0xFFFA, 0xFFF9, 0xFFF8, 0xFFFE, 0xFFFF

The "➡" arrow cursor is movable and shown below in its initial position

Menu screen 1:

```
    G.G. 32 IN 1

  PUSH ↑.↓.1.START

 ➡01.NETTOU SAMURAI  [0xFFFA=0x00, 0xFFF9=0x10, 0xFFF8=0x10]; it's [GG] part-10-Samurai Spirits (JP)-512k.gg
  02.COLUMNS         [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x01]; it's [GG] part-01-columns-32k.gg
  03.PENGUIN LAND    [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x02]; it's [GG] part-02-pengo-32k.gg
  04.WOODY POP       [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x03]; it's [GG] part-03-woody-pop-32k.gg
  05.TENNIS          [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x04]; it's [SMS-GG] part-04-super-tennis-32k.sms
  06.PIT POT         [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x05]; it's [SMS-GG] part-05-pit-pot-32k.sms
  07.GHOST HOUSE     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0f]; it's [SMS-GG] part-0f-ghost-house-32k.sms
  08.SATELLITE-7     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0e]; it's [SMS-GG] part-0e-satellite-7-32k.sms
  09.ASTRO FLASH     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0d]; it's [SMS-GG] part-0d-astro-flash-32k.sms
  10.MACHINE GUN     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0c]; it's [SMS-GG] part-0c-machine-gun-joe-32k.sms
```

Menu screen 2:

```
    G.G. 32 IN 1

  PUSH ↑.↓.1.START

 ➡11.ACTION BOY      [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0b]; it's [SMS-GG] part-0b-seishun-scandal-32k.sms
  12.SPY  VS SPY     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0a]; it's [SMS-GG] part-0a-spy-vs-spy-32k.sms
  13.GREAT SOCCER    [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x09]; it's [SMS-GG] part-09-great-soccer-32k.sms
  14.HANG ON         [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x08]; it's [SMS-GG] part-08-hang-on-32k.sms
  15.BASEBALL        [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x07]; it's [SMS-GG] part-07-great-baseball-32k.sms
  16.TEDDYBOY BLUES  [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x06]; it's [SMS-GG] part-06-teddyboy-blues-32k.sms
  17.SAMURAI         [0xFFFA=0x00, 0xFFF9=0x10, 0xFFF8=0x10]; it's [GG] part-10-Samurai Spirits (JP)-512k.gg
  18.COLORS TETRIS   [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x01]; it's [GG] part-01-columns-32k.gg
  19.PENGUIN EGG     [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x02]; it's [GG] part-02-pengo-32k.gg
  20.ALLEY WAY       [0xFFFA=0x00, 0xFFF9=0x00, 0xFFF8=0x03]; it's [GG] part-03-woody-pop-32k.gg
```

Menu screen 3:

```
    G.G. 32 IN 1

  PUSH ↑.↓.1.START

 ➡21.GHOST LAND      [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0f]; it's [SMS-GG] part-0f-ghost-house-32k.sms
  22.STAR GATE       [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0e]; it's [SMS-GG] part-0e-satellite-7-32k.sms
  23.VOLLEY FIRE     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0d]; it's [SMS-GG] part-0d-astro-flash-32k.sms
  24.SHOOT GUN       [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0c]; it's [SMS-GG] part-0c-machine-gun-joe-32k.sms
  25.MY HERO         [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0b]; it's [SMS-GG] part-0b-seishun-scandal-32k.sms
  26.SPY MAN         [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x0a]; it's [SMS-GG] part-0a-spy-vs-spy-32k.sms
  27.SOCCER          [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x09]; it's [SMS-GG] part-09-great-soccer-32k.sms
  28.MOTOCROSS       [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x08]; it's [SMS-GG] part-08-hang-on-32k.sms
  29.P.P GAMES       [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x05]; it's [SMS-GG] part-05-pit-pot-32k.sms
  30.WINNER TENNIS   [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x04]; it's [SMS-GG] part-04-super-tennis-32k.sms
```

Menu screen 4:

```
    G.G. 32 IN 1

  PUSH ↑.↓.1.START

 ➡31.GREAT BASEBALL  [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x07]; it's [SMS-GG] part-07-great-baseball-32k.sms
  32.TEDDY BLUES     [0xFFFA=0x01, 0xFFF9=0x00, 0xFFF8=0x06]; it's [SMS-GG] part-06-teddyboy-blues-32k.sms
```

ROM fingerprint info:

1.0M Wise Gear GG 32 in 1 [Nettou Samurai] (Unl).gg crc32:133d89ad mekacrc:289FF33D45085864 md5:145abe0be126ba64eaa10a537e3cee31 sha1:4df6cda3cbc0f99a16ca30f8713031244245ae76 sha256:eadc96ceffd739fe2c744324c94f61049f8854edb0383f34232d8b3bb2fb4092

32K part-00-menu-and-exerion-32k.gg crc32:00707240 mekacrc:CA7F7935F2A7CEA2 md5:36430502dd39b2b620f9291fffdd41f4 sha1:489bbc24216fcc37dea152733483f409a609d401 sha256:03d412e7e8336e8e6625935d0d240da97b371a38bb82dbc4443119fecf67b8da

32K part-01-columns-32k.gg crc32:7316423e mekacrc:1DE54704572F032A md5:bfcf0e46ec8df8a51776bd2315b859fc sha1:26d407e8389a5564b836f0a68585a935ca019802 sha256:73f6012c1a92bcc96497668cdecfb3b592162c6b39a8c7efb8b9dc3931380561

32K part-02-pengo-32k.gg crc32:6bd56e95 mekacrc:6C3C703170EBD587 md5:69bf00297cad6ee0bb6046c8084e5e37 sha1:126654feb2975e3a52431d29cefcafbd37bb2ef5 sha256:1c221bcb0b7ef67e644a695b78cb4dd851b800202ee13fd8d03fb099e533c46a

32K part-03-woody-pop-32k.gg crc32:0c6e4769 mekacrc:9D2A47DDDF12FD27 md5:3885c64be1dc990918adebcbe9675855 sha1:58516c23f1e1b87daebda1b971fab278a6e7ce59 sha256:0c23fccffa3160b6754fa54ecbf08d3828f5e60a64dbe4203109715644ad94ce

32K part-04-super-tennis-32k.sms crc32:95d4c673 mekacrc:FEA3F1C357520CF6 md5:6d135ff05b6d440fa329cc060e559244 sha1:62b323b7b3188b2e0557e3e6d799edc71813c82e sha256:aa07700850080a8276bc518183e09035449a73e9c697415555bc14eca80e539b

32K part-05-pit-pot-32k.sms crc32:f81ab71e mekacrc:CA42846BB2AE8B1A md5:b3e6b1285bf8b820ca1344c7c4519efa sha1:55036c365d7d4496c5c5e0bfd01c13dfdb1a79f1 sha256:6679ea24710cf51b3aaa5fbee043e5ed6c446912cbc4729ab3fe4668424d1877

32K part-06-teddyboy-blues-32k.sms crc32:ed8dee80 mekacrc:E805AC40FA83F3B7 md5:acb4e818db613dc6f4737ef21302dc7c sha1:19d03cefeca768b08e708a161d3d6f5398450f49 sha256:e99eb0859de5801fddcf88a7d87651a6209bfe5df4f75bbd85c0b311edf6704c

32K part-07-great-baseball-32k.sms crc32:aafafd51 mekacrc:B478FD7132EF8ABB md5:ab3e87f4981bda8c486392719471ef08 sha1:9133fb22586ab10ee142192541ceb368b9b02540 sha256:8afd26d8aa991fee9e755d53cd0d2ee6f18a058580d44b5240a4c70d8997dd0e

32K part-08-hang-on-32k.sms crc32:40cedfd9 mekacrc:02A62976104874ED md5:5c25b6b38963fc513958a26e64c591d4 sha1:5726c7f7948612ca42daed96ded45745393bd80a sha256:5a2ecca3d78ae9aa8a6ac2c1775122cfdce3744898032ce5763c0017350e58ce

32K part-09-great-soccer-32k.sms crc32:be711818 mekacrc:7CB0BCEF29C11827 md5:cecccff2d09d3cc705d848b28037e267 sha1:41d55da9ed00124c570d9964494b791e09d93af8 sha256:b48ce6a09946941fdf62e8ebf611fc1706344e26ea230bb206ba98cf04e9fbd2

32K part-0a-spy-vs-spy-32k.sms crc32:f13a28c0 mekacrc:98EC9FA8477AEC88 md5:324741e68234ae80ff3df8bc3f411557 sha1:fd7d1bee1ca42c6d962780f21d5ad138b792db59 sha256:bcba12678775542b59694fc8fe3945530490cdd92a2bfafb07f74b189fa03ede

32K part-0b-seishun-scandal-32k.sms crc32:637dbbef mekacrc:D41A76F3C3411E87 md5:c021bce5a58cfbf513af253a25bc29bd sha1:2c39fdf814e223e2dc14646941a276879ae14c64 sha256:3a1df738527b578e248b6650c9a1498abaf9bef6da813a172dfae0a63be4e746

32K part-0c-machine-gun-joe-32k.sms crc32:9a94c7cc mekacrc:5C858AC9BD4714B4 md5:02906381c66601fb49b10bed123455d4 sha1:03a8a50b3b9e97ea5e10d7e094d287b51ca477af sha256:3981649682a895772012a769e8296e24e660ac4fc4102ecfbb747d53d18cee3e

32K part-0d-astro-flash-32k.sms crc32:b1267d52 mekacrc:13171118D3218C2D md5:4c13f02b69c266ffea80fd7aba160bb2 sha1:b4e2483fbfe9e4c23a6fb14e755e5aa8c6ecece0 sha256:514484c1d4156fc77e4cefcd39cffd71f3e126c708420100ebb07e4972dc3486

32K part-0e-satellite-7-32k.sms crc32:eb9a0359 mekacrc:C30BB9170D4D8E7A md5:7cb52be125ef66daa5e7a6e971a2a97f sha1:be0ace7ed8f1f1ab6fa51dfaa3ba2dd167ab3863 sha256:3adcd01767ee06949a930b88b76f9e2d8c89031c41e289af9d2e4290455ee5c1

32K part-0f-ghost-house-32k.sms crc32:317451a3 mekacrc:A5771FE4EC52960D md5:343210de693491444b452df7b665921d sha1:9917f8f06ed4c99b71d58d8a03fbea13330c84a1 sha256:c690ae4bff9711c0244e9a2ab18a579a429b29191dcc993f0ed5a496b472cfd3

512K part-10-Samurai Spirits (JP)-512k.gg crc32:93fd73dc mekacrc:13F9F13BACF847DD md5:71b53a4577065e11453928774a7b64b0 sha1:2aaf7b6f9d37275995d4a62bb8a465333d8b0bf4 sha256:8a4343c5dd022301f4a767aaf083e5b182f8feca7e454f4a5756cd3610d29752
  • Loading branch information
bsittler committed Jun 10, 2023
1 parent 1566428 commit e06519e
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 4 deletions.
5 changes: 4 additions & 1 deletion meka/compat.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1148,6 +1148,7 @@
GG Portrait - Pai Chen (JP) Ok
GG Portrait - Yuuki Akira (JP) Ok
GG Shinobi, The (JP) Ok
GG Super 56 in 1 (B) [Mega Man] *Ok
Global Gladiators Ok
G-LOC - Air Battle Ok
G-LOC - Air Battle [v0] (JP) Ok
Expand Down Expand Up @@ -1412,6 +1413,7 @@
Super Battletank Ok
Super Columns Ok
Super Columns (JP) Ok
Super GG 68 in 1 [Sonic Adventure] *Ok
Super Golf (JP) Ok
Super Kick Off [SMS-GG] Ok
Superman - The Man of Steel Ok
Expand Down Expand Up @@ -1472,6 +1474,7 @@
Winter Olympics / Winter Olympics Games Ok
Winter Olympics (JP) Ok
Wizard Pinball Ok
Wise Gear GG 32 in 1 [Nettou Samurai] *Ok
Wolfchild Ok
Wonder Boy Ok
Wonder Boy (JP) Ok
Expand Down Expand Up @@ -1502,7 +1505,7 @@
Zoop (US) Ok
Zoop [Proto] (US) Ok
-----------------------------------------------------------------------------
517 games tested - 506 are "Ok" - Compatibility rate: 97.63%
520 games tested - 509 are "Ok" - Compatibility rate: 97.88%
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
Expand Down
3 changes: 3 additions & 0 deletions meka/meka.nam
Original file line number Diff line number Diff line change
Expand Up @@ -1045,6 +1045,7 @@ GG 695cc120 FCC991E880B52D60 GG Portrait - Pai Chen/COUNTRY=JP/PRODUCT_NO=G-3
GG 51159f8f 5D96967FEE1C49A5 GG Portrait - Yuuki Akira/COUNTRY=JP/PRODUCT_NO=G-3386
GG 83926bd1 7EC1D6C6D2A7119B GG Shinobi, The/COUNTRY=JP/PRODUCT_NO=G-3302
GG d2b6021e F0E8A87399B7C4F9 Global Gladiators/COUNTRY=US,EU/PRODUCT_NO=T-70058,T-70058-50
GG 271f40a3 92CBD58C8243F885 GG Super 56 in 1 (B) [Mega Man]/EMU_MAPPER=32
GG 18de59ed 093B5C63C1FA1E24 G-LOC - Air Battle/NAME_BR=G-LOC/COUNTRY=US,EU,BR/PRODUCT_NO=2301,012120
GG 2333f615 9B4CDA9945218AB6 G-LOC - Air Battle [v0]/COUNTRY=JP/PRODUCT_NO=G-3204
GG 33237f50 6949D8B6CE13CD12 G-LOC - Air Battle [v1]/COUNTRY=JP/PRODUCT_NO=G-3204
Expand Down Expand Up @@ -1296,6 +1297,7 @@ 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 99ee7296 8F378BEF3668D84A Super GG 68 in 1 [Sonic Adventure]/EMU_MAPPER=32
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 Expand Up @@ -1348,6 +1350,7 @@ GG d460cc7f 32EEB88F6A58E2F5 WildSnake [Proto]/COUNTRY=US/PRODUCT_NO=T-124028
GG ce1108fd 5EF9334D02922E67 Wimbledon/NAME_US=Wimbledon Tennis/COUNTRY=JP,EU,US/PRODUCT_NO=G-3221,2323
GG d15d335b 8C9DF406D503E322 Winter Olympics/NAME_US=Winter Olympics Games/COUNTRY=US,EU/PRODUCT_NO=T-79088,T-79088-18
GG d5195a39 5AE30E1DD51AC5E4 Winter Olympics/COUNTRY=JP/PRODUCT_NO=G-3342
GG 133d89ad 289FF33D45085864 Wise Gear GG 32 in 1 [Nettou Samurai]/EMU_MAPPER=32
GG 9e03f96c C2DB65453292985D Wizard Pinball/COUNTRY=EU/PRODUCT_NO=T-88088-50
GG 840a8f8e 9C35260DA7367AA5 Wolfchild/COUNTRY=EU/PRODUCT_NO=T-70078-50
GG 9c0e5a04 902D4CDEE014FD28 Woody Pop [v0]/COUNTRY=JP/PRODUCT_NO=G-3101
Expand Down
23 changes: 23 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,9 @@ 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_FFF8_FFF9_FFFA_FFFE_FFFF:
WrZ80 = WrZ80_NoHook = Write_Mapper_GG_FFF8_FFF9_FFFA_FFFE_FFFF;
break;
case MAPPER_SMS_Korean_MSX_SMS_8000:
WrZ80 = WrZ80_NoHook = Write_Mapper_SMS_Korean_MSX_SMS_8000;
break;
Expand Down Expand Up @@ -488,6 +492,25 @@ void Machine_Set_Mapping (void)
g_machine.mapper_regs[0] = 0;
break;

case MAPPER_GG_FFF8_FFF9_FFFA_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 = 6;
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_SMS_Korean_MSX_SMS_8000:
Map_8k_ROM(0, 0x3c & tsms.Pages_Mask_8k);
Map_8k_ROM(1, 0x3c & tsms.Pages_Mask_8k);
Expand Down
62 changes: 62 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,65 @@ WRITE_FUNC (Write_Mapper_SMS_Korean_MSX_32KB_2000)
Write_Error (Addr, Value);
}

// Mapper #32
// Super GG 68 in 1 [Sonic Adventure]
// GG Super 56 in 1 (B) [Mega Man]
WRITE_FUNC(Write_Mapper_GG_FFF8_FFF9_FFFA_FFFE_FFFF)
{
if ((Addr == 0xFFF8) || (Addr == 0xFFF9) || (Addr == 0xFFFA) || (Addr == 0xFFFE) || (Addr == 0xFFFF)) // Configurable segment -----------------------------------------------
{
if (Addr == 0xFFF8) {
g_machine.mapper_regs[5] = Value;
} else if (Addr == 0xFFF9) {
g_machine.mapper_regs[4] = Value;
} else if (Addr == 0xFFFA) {
g_machine.mapper_regs[3] = Value;
} else if (Addr == 0xFFFE) {
g_machine.mapper_regs[2] = Value;
} else if (Addr == 0xFFFF) {
g_machine.mapper_regs[1] = Value;
}
if (Addr == 0xFFF8 || Addr == 0xFFFA) {
bool second_megabyte_active = (g_machine.mapper_regs[4] & 0x12) || (g_machine.mapper_regs[3] & 0x04);
bool sega_mapper_active = (g_machine.mapper_regs[4] & 0x1E) || (g_machine.mapper_regs[3] & 0x04);
g_machine.mapper_regs[0] = (g_machine.mapper_regs[5] & 0x1F) | (second_megabyte_active ? 0x20 : 0x00) | (sega_mapper_active ? 0x80 : 0x00);
bool sms_gg_mode_active = (g_machine.mapper_regs[4] & 0x80) || (g_machine.mapper_regs[3] & 0x01);
if (sms_gg_mode_active) {
drv_set(DRV_SMS);
} else {
drv_set(DRV_GG);
}
}
if (1) {
bool sega_mapper_active = g_machine.mapper_regs[0] & 0x80;
bool second_megabyte_active = g_machine.mapper_regs[0] & 0x20;
unsigned int sega_mapper_mask = sega_mapper_active ? (second_megabyte_active ? 0x1F : 0x0F) : 0x01;
unsigned int page_0000_8k = (g_machine.mapper_regs[0] & 0x3F) * 4;
unsigned int page_4000_8k = page_0000_8k + ((g_machine.mapper_regs[2] & sega_mapper_mask) * 2);
unsigned int page_8000_8k = page_0000_8k + ((g_machine.mapper_regs[1] & sega_mapper_mask) * 2);
Map_8k_ROM(0, page_0000_8k & tsms.Pages_Mask_8k);
Map_8k_ROM(1, (page_0000_8k | 0x01) & tsms.Pages_Mask_8k);
Map_8k_ROM(2, page_4000_8k & tsms.Pages_Mask_8k);
Map_8k_ROM(3, (page_4000_8k | 0x01) & tsms.Pages_Mask_8k);
Map_8k_ROM(4, page_8000_8k & tsms.Pages_Mask_8k);
Map_8k_ROM(5, (page_8000_8k | 0x01) & tsms.Pages_Mask_8k);
}
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 #40
// Zemina Best 88 (KR)
// Zemina Best 25 (KR)
Expand Down
2 changes: 2 additions & 0 deletions meka/srcs/mappers.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
#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_FFF8_FFF9_FFFA_FFFE_FFFF (32) // Registers at 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFE, and 0xFFFF (Super GG 68 in 1 [Sonic Adventure], GG Super 56 in 1 (B) [Mega Man])
#define MAPPER_SMS_Korean_MSX_SMS_8000 (40) // Register at 0x8000 with 8KB granularity and both MSX and SMS game support (Zemina Best 88 [MISSING 64K])

#define READ_FUNC(_NAME) u8 _NAME(register u16 Addr)
Expand Down Expand Up @@ -97,6 +98,7 @@ 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_FFF8_FFF9_FFFA_FFFE_FFFF);
WRITE_FUNC (Write_Mapper_SMS_Korean_MSX_SMS_8000);
//-----------------------------------------------------------------------------
void Out_SC3000_SurvivorsMulticarts_DataWrite(u8 v);
Expand Down
46 changes: 43 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,6 +145,41 @@ void Load_Game_Fixup(void)
case MAPPER_SMS_Korean_MSX_32KB_2000:
WrZ80_NoHook(0x2000, g_machine.mapper_regs[0]);
break;
case MAPPER_GG_FFF8_FFF9_FFFA_FFFE_FFFF:
if (1) {
bool sega_mapper_active = g_machine.mapper_regs[0] & 0x80;
bool second_megabyte_active = g_machine.mapper_regs[0] & 0x20;
unsigned int base_page_32k = g_machine.mapper_regs[0] & 0x1F;
unsigned int reg_FFF8 = g_machine.mapper_regs[5];
unsigned int reg_FFF9 = g_machine.mapper_regs[4];
unsigned int reg_FFFA = g_machine.mapper_regs[3];
unsigned int reg_FFFE = g_machine.mapper_regs[2];
unsigned int reg_FFFF = g_machine.mapper_regs[1];
WrZ80_NoHook(0xFFF9, 0x00);
WrZ80_NoHook(0xFFF8, 0x00);
WrZ80_NoHook(0xFFFA, 0x01);
WrZ80_NoHook(0xFFF8, base_page_32k);
WrZ80_NoHook(0xFFF9, (reg_FFF9 & 0x80) | ((sega_mapper_active && second_megabyte_active) ? 0x12 : 0x00) | ((sega_mapper_active && !second_megabyte_active) ? 0x0C : 0x00));
WrZ80_NoHook(0xFFFA, (reg_FFFA & 0x01) | ((sega_mapper_active && second_megabyte_active) ? 0x04 : 0x00));
WrZ80_NoHook(0xFFFE, 0x01);
if (g_machine.mapper_regs[1] != reg_FFFF) {
WrZ80_NoHook(0xFFFF, reg_FFFF);
}
if (g_machine.mapper_regs[2] != reg_FFFE) {
WrZ80_NoHook(0xFFFE, reg_FFFE);
}
if (g_machine.mapper_regs[4] != reg_FFF9) {
WrZ80_NoHook(0xFFF9, reg_FFF9);
}
if (g_machine.mapper_regs[5] != reg_FFF8) {
WrZ80_NoHook(0xFFF8, reg_FFF8);
}
if (g_machine.mapper_regs[3] != reg_FFFA) {
WrZ80_NoHook(0xFFFA, reg_FFFA);
}
sms_gg_mode_in_mapper = true;
}
break;
case MAPPER_SMS_Korean_MSX_SMS_8000:
{
int mapper_page = g_machine.mapper_regs[0];
Expand All @@ -155,9 +191,11 @@ void Load_Game_Fixup(void)
}

// 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 @@ -346,6 +384,7 @@ 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_FFF8_FFF9_FFFA_FFFE_FFFF:
case MAPPER_SMS_Korean_MSX_SMS_8000:
default:
fwrite (RAM, 0x2000, 1, f); // Do not use g_driver->ram because of g_driver video mode change
Expand Down Expand Up @@ -526,6 +565,7 @@ 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_FFF8_FFF9_FFFA_FFFE_FFFF:
case MAPPER_SMS_Korean_MSX_SMS_8000:
default:
fread (RAM, 0x2000, 1, f); // Do not use g_driver->ram because of g_driver video mode change
Expand Down

0 comments on commit e06519e

Please sign in to comment.