N64 Transfer Pak - Flashcart patches

Discussion in 'Nintendo Game Development' started by saturnu, Oct 25, 2016.

  1. saturnu

    saturnu Spirited Member

    Joined:
    Dec 8, 2011
    Messages:
    143
    Likes Received:
    29
    In the past i did a few flashcart patches/cheats for Mario Golf 64 and Mario Tennis.
    especially mbc5 games seems to have issues on some flashcarts.
    e.g. smart card 64 and edgb

    i think that the return value of nuContGBPakPower() causes the "connection error".
    in a transission from OFF to ON the game should wait 120ms for the power step up converter to stabilize and then check the power state.
    i've just swapped the paramter from NU_CONT_GBPAK_POWER_MSG to another NU_CONT_GBPAK_STATUS_MSG, which is working fine at least for mario golf and tennis. ^^

    for mario golf, i've used devkit symbol signatures, to find the function offset and for tennis, i've used
    a patched emulator to look for the same opcode in memory.

    the bad news are, that Pokemon Stadium (with Pokemon Yellow - MBC5) is somehow harder to patch.
    until now, i haven't found nuContGBPakPower() or something similar in the rom nor the memory.

    my last approache was to dump all processed opcodes between two transfer pak calls, that do a power off/on cycle.
    the result is a block of about 4k lines of code but it's the total execution path with a lot of jumping around in the same functions. ^^
    now i'm sitting here with a list of function offsets, but it's no fun at all to work through this. :D
    i have already spotted the the PIF-RAM addr, so i'm almost sure i've narrowed it down a bit.

    long story short, i'm not a gifted romhacker, it's quite hard for me. ^^
    maybe someone can give me a hint on how to find the function that is feeding the osSendMesg handler.
    i guess Pokemon Stadium is not using the same nusys as golf and tennis.

    binary block of execution stream (may be a bit threaded, too):
    https://pomf.pyonpyon.moe/zghlks.bin

    plain text emulator debug output with program counter addr
    https://pomf.pyonpyon.moe/mpfhca.me

    here are my patches and cheats so far:

    mario_golf_e_edgb.xdelta3
    =========================
    Core: Goodname: Mario Golf (E) [!]
    Core: Name: MarioGolf64
    Core: MD5: 4D010AE1AF4B04D6B70B799C56F05993
    Core: CRC: 62E957D0 7FC15A5D
    Core: Imagetype: .z64 (native)


    mario_golf_u_edgb.xdelta3
    =========================
    Core: Goodname: Mario Golf (U) [!]
    Core: Name: MarioGolf64
    Core: MD5: 7A5D0D77A462B5A7C372FB19EFDE1A5F
    Core: CRC: 664BA3D4 678A80B7
    Core: Imagetype: .z64 (native)


    mario_golf_j_edgb.xdelta3
    =========================
    Core: Goodname: Mario Golf 64 (J) [!]
    Core: Name: MarioGolf64
    Core: MD5: E5A041B1B7C8E3B4C2E8178E5A138E2D
    Core: CRC: D48944D1 B0D93A0E
    Core: Imagetype: .z64 (native)

    Download:
    https://my.mixtape.moe/ttyxft.zip


    Europe - Mario Tennis (E) [!]
    F1300290 3C01
    F1300292 A005
    F1300298 03E0
    F130029A 0008
    F130029C AC20
    F130029E 8840
    81122224 0000
    81122226 0000
    81122228 0000
    8112222A 0000

    US - Mario Tennis (U) [!]
    F1300290 3C01
    F1300292 A005
    F1300298 03E0
    F130029A 0008
    F130029C AC20
    F130029E 86A0
    81121F34 0000
    81121F36 0000
    81121F38 0000
    81121F3A 0000

    JP - Mario Tennis 64 (J) [!]
    F1300290 3C01
    F1300292 A004
    F1300298 03E0
    F130029A 0008
    F130029C AC20
    F130029E 1140
    8111A8B4 0000
    8111A8B6 0000
    8111A8B8 0000
    8111A8BA 0000
     
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page