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 15:34, 4 April 2015 by Blaziken257 (talk | contribs) (Added some information from Wario Land 3)
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.

Patches: IPS, BPS

13:504C: db 10 -> db 08
13:506D: db E0,7F,FF -> db AA,6A,EF
13:5075: db 9F,0D -> db D7,04

Effect: ???

21:484A: dw 7FFF -> dw 39CE
21:4850: dw 7FFF -> dw 39CE
21:4858: dw 7FFF -> dw 39CE
21:4860: dw 7FFF -> dw 39CE
21:4864: dw 7FFF -> dw 39CE
21:486A: dw 7FFF -> dw 39CE

Effect: ???

21:698D: dw 7FFF,7FFF -> dw 2D6B,2D6B
21:6995: dw 7FFF -> dw 2D6B
21:699F: dw 7FFF -> dw 2D6B
21:69A5: dw 39CE,7FFF -> dw 2D6B,2D6B
21:69AD: dw 39CE -> dw 2D6B
21:69B5: dw 7FFF -> dw 2D6B
21:69BD: dw 7FFF -> dw 2D6B
21:69C5: dw 7FFF,7FFF,39CE -> dw 2D6B,2D6B,2D6B

Effect: The cutscene after getting the red chest in Out of the Woods (where The Pool of Rain and A Town in Chaos become accessible) has different color palettes when flashing (while it is raining). This may possibly affect other cutscenes as well?

2D:67C7: ld a,22 -> FC (Invalid opcode?)
2D:6836: ld a,0A -> FC (Invalid opcode?)

Effect: Unknown, probably causes the game to crash on real hardware and emulators such as BGB

2D:69A6: ld a,9C -> ld a,4A
2D:69A9: ld a,73 -> ld a,29

Effect: ???

Super Mario Bros. Deluxe

Invalid FC opcodes (freezes on BGB), printing is completely disabled (pressing A has no effect)

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

The Legend of Zelda: Link's Awakening DX

Invalid FC opcodes (freezes on BGB)

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