We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

User:Blaziken257/3DS Virtual Console changes

From The Cutting Room Floor
< User:Blaziken257
Revision as of 02:57, 4 April 2015 by Blaziken257 (talk | contribs) (Created page with "== 3DS Virtual Console changes == Some 3DS Virtual Console changes for Game Boy (Color) games that I own. I'm just putting my notes down here, so it is disorganized at the mom...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

3DS Virtual Console changes

Some 3DS Virtual Console changes for Game Boy (Color) games that I own. I'm just putting my notes down here, so it is disorganized at the moment.

This was made possible by the spider exploit and dumping the memory; GB ROMs can be found starting at offset 0x28002C4 in the memory dump.

All Virtual Console games appear to be based on the latest revision of each game (for example, v1.2 for Super Mario Land 2, v1.1 for Donkey Kong Land III, etc.). This is evidenced by the fact that global checksums in the game's header are unchanged.

Donkey Kong Land

Identical!

Donkey Kong Land 2

5:46B7: and a,0F -> and a,1F
5:46B9: cp a,0B  -> cp a,1B

Effect: Toned down flashing in Glimmer's Galleon

5:46DC: and a,0F -> and a,1F
5:46DE: cp a,0B  -> cp a,15

Effect: Toned down flashing in Lava Lagoon and Clapper's Cavern

Donkey Kong Land III

Identical to English v1.1!

Super Mario Land 2

F:605F: ld (A27E),a -> nop nop nop
F:6066: ld (A280),a -> nop nop nop

Effect: Toned down lightning strikes in entrance to Wario's Castle

Metroid II

5:412A: cp a,10 -> cp a,0C

Effect on title screen (Python implementation):

frame = 0xFFFF #0xD066 in RAM, little-endian
while frame > 0:
    bg_pal = 0x93 #Black palette -- register 0xFF47
    if (frame & 0x302) == 0x2:
        #Bitfield: 0bxxxxxx00xxxxxx1x
        if system == "Game Boy" and (frame & 0x3ff) < 0x10:
            bg_pal = 0x90 #Flashing white palette -- register 0xFF47
        elif system == "3DS" and (frame & 0x3ff) < 0x0c:
            bg_pal = 0x90 #Flashing white palette -- register 0xFF47
    set_bg_pal(bg_pal) #Write to register 0xFF47
    #Game Boy: Background will flash with frame values: 0x2, 0x3, 0x6, 0x7, 0xa, 0xb, 0x402, 0x403, etc.
    #3DS:      Background will flash with frame values: 0x2, 0x3, 0x6, 0x7, 0x402, 0x403, etc.
    frame -= 1

Summary: Toned down flashing on title screen so that only 3 flashes (instead of 4) occur per 1024 frames

Wario Land 3

Several unknown changes! Some of them may be color palettes, since there are several little-endian values of FF 7F (white) which were changed to something else.

Hmmm...
To do:
Post a patch.

Super Mario Bros. Deluxe

Invalid FD opcodes (freezes on BGB), printing disabled

Hmmm...
To do:
Work more on this.

The Legend of Zelda: Link's Awakening DX

Invalid FD opcodes (freezes on BGB)

Hmmm...
To do:
Work more on this.