NP Memory GB Nintendo Power Memory Cartridge Super Game Boy DATA_SND JUMP SOUND 41000000FE 02 Glitch
Follow me on twitter: https://twitter.com/nensondubois_
Please rate, comment, like, share, and subscribe to support this channel and content!
Also, Google wallet donations accepted: pm me for details if interested.
This is literally the second only impressive thing that Nintendo did with the Super Game Boy hardware following Donkey Kong 94, and only because they had no choice. Thanks.
http://www.mediafire.com/download/yueckoejes3icic/GB+Memory+Multi+Menu+%28Japan%29+%28NP%2CSGB+Enhanced%29+Menu+Hack+nensondubois.gbc
The GB Memory is Super Game Boy compatible, allowing Games that have enhancements to fully work; loading a game using a Super Game Boy will hard JUMP 91001800000000000000 to the selected game. A single invalid song SOUND 4100000000FE command is loaded before the JUMP takes place.
MLT_REQ
Located at 0x1A06 is a set of two init MLT_REQ commands which is used to request joypad reads from the second SNES controller, since a normal Game Boy unit would not have the additional joypad registers telling the game that it is running on a Super Game Boy allowing additional packet commands to be invoked. Can also be used for multiplayer games up to four players requiring a SNES multitap accesory.
[CODE]
89000000000000000000000000000000
89010000000000000000000000000000
[/CODE]
MASK_EN
A border might have been planned early on, though the commands are loaded right before (01) the DATA_SND commands are sent where 00 is the last command. It is unknown why the commands were implemented since they are not needed if you are simply sending SNES WRAM bank destinations.
[CODE]
B9010000000000000000000000000000
B9000000000000000000000000000000
[/CODE]
JUMP
Used to set the SNES Prgram Counter to a specified address. Alternatively, the command can be used to set a new address for the SNES NMI handler, the NMI handler remains unchanged if all bytes 4-6 are zero. Examples of JUMP can be seen in Nekketsu! Beach Volley dayo Kunio-kun and Space Invaders (Super Game Boy) allowing custom code to load into the Super Game Boy's WRAM banks and executed.
[CODE]
91001800000000000000000000000000
[/CODE]
SOUND
A single SOUND command is called directly before the JUMP command. This command sets the internal system BGM to FE preparing the APU for a transition vector for the new SHCV code allowing the program to take direct control of the APU. If a BGM is already in progress, setting the flag will stop all system sounds. There is a glitch that if a BGM flag is set before the program changes, the Super Game Boy BIOS will hang. The custom program sent can workaround this by using additional DATA_SND commands or using a custom NMI handler, as is done by Space Invaders.
[CODE]
41000000FE0000000000000000000000
[/CODE]
DATA_SND
Located at 0x353C-358B is a list of DATA_SND packets. Since the game select menu on the cart takes up one block, Nintendo probably wanted to reserve as much space as possible for the games, so unnecessary enhancements were cut.
[CODE]
795D08000B8CD0F46000000000000000
795208000BA9E79F01C07EE8E8E8E8E0
794708000BC4D016A5CBC905D010A228
793C08000BF012A5C9C9C8D01CA5CAC9
793108000B0CA5CAC97ED006A5CBC97E
792608000B39CD480CD034A5C9C980D0
791B08000BEAEAEAEAEAA901CD4F0CD0
791008000B4C2008EAEAEAEAEA60EAEA
[/CODE]
The second listing sets the NMI to reset the Super Game BIOS to the selected ROM bank (game) in the GB Memory BIOS. This listing is also used for sending banks in preparation for the SOU_TRN command.
[CODE]
790009000BADC202C909D01AA9018D00
790B09000B42AFDBFF00F0052073C580
791609000B032076C5A9318D00426868
79210900016000000000000000000000
79000800034C00090000000000000000
[/CODE]
A third listing is loaded upon bootup, located at 0x35CC-35FB. This listing directs the Super Game Boy BIOS to reset when the JUMP command is called setting the NMI counter, causing the reset to the selected ROM bank (game).
[CODE]
790018000BEA18FBE220C210A90048AB
790B18000BA90F8F002100A9018F0360
791618000B006CFCFF00000000000000
[/CODE]
(Source/ROM Disassembly: nensondubois)
Trivia: The song for the Game Boy DMG/Super Game Boy SGB modes is actually a rendition of the SFC Memory, the Super Famicom version of the NP Memory cartridge.