Announcement

Collapse
No announcement yet.

Mario RPG SA1 Coding

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mario RPG SA1 Coding

    I finally tracked down the area in ROM that controls the distance yoshi runs once fed a cookie. I ended up stepping through rom until the address was initially loaded with the value used, and had SA1 logging on to get the info(but I also had to run through pointless CPU code a lot to see that it had nothing to do with writing the value). I used the addresses referenced to make a non-dangerous code to allow yoshi to win races with 1 cookie.

    Someone else may also have a use for this information, either directly, or for information on how things get stored to memory by the SA1 in this game, so I'm posting the relavent information I found.

    $C0:CA56 F0 33 BEQ $33 [$CA8B] A:0017 X:6000 Y:5F88 D:0000 DB:00 S:07F9 P:envMxdizC HC:502 VC:019
    $C0:CA58 C2 20 REP #$20 A:0017 X:6000 Y:5F88 D:0000 DB:00 S:07F9 P:envMxdizC HC:502 VC:019

    -----Start Value Loading Code-----

    $C0:CA5A A5 74 LDA $74 [$00:0074] A:0017 X:6000 Y:5F88 D:0000 DB:00 S:07F9 P:envmxdizC HC:532 VC:019
    $C0:CA5C 95 2A STA $2A,x [$00:602A] A:0300 X:6000 Y:5F88 D:0000 DB:00 S:07F9 P:envmxdizC HC:532 VC:019

    -----End Value Loading Code-----

    $C0:CA5E A5 76 LDA $76 [$00:0076] A:0300 X:6000 Y:5F88 D:0000 DB:00 S:07F9 P:envmxdizC HC:532 VC:019
    $C0:CA60 95 2C STA $2C,x [$00:602C] A:0002 X:6000 Y:5F88 D:0000 DB:00 S:07F9 P:envmxdizC HC:562 VC:019
    $C0:CA62 A5 78 LDA $78 [$00:0078] A:0002 X:6000 Y:5F88 D:0000 DB:00 S:07F9 P:envmxdizC HC:562 VC:019

    --------------------

    I searched for the $75 address in my log file, and found the following:

    $C0:CE4F C8 INY A:00AE X:00AE Y:5F86 D:0000 DB:E1 S:07F6 P:envMxdizc HC:046 VC:019
    $C0:CE50 7C B1 EE JMP ($EEB1,x)[$C099B] A:00AE X:00AE Y:5F87 D:0000 DB:E1 S:07F6 P:envMxdizc HC:046 VC:019

    -----Start $74 Value Loading Code-----

    $C099B B9 00 00 LDA $0000,y[$E1:5F87] A:00AE X:00AE Y:5F87 D:0000 DB:E1 S:07F6 P:envMxdizc HC:076 VC:019
    $C099E C8 INY A:0003 X:00AE Y:5F87 D:0000 DB:E1 S:07F6 P:envMxdizc HC:076 VC:019
    $C099F 80 04 BRA $04 [$D9A5] A:0003 X:00AE Y:5F88 D:0000 DB:E1 S:07F6 P:envMxdizc HC:076 VC:019
    $C09A5 85 75 STA $75 [$00:0075] A:0003 X:00AE Y:5F88 D:0000 DB:E1 S:07F6 P:envMxdizc HC:106 VC:019
    $C09A7 64 74 STZ $74 [$00:0074] A:0003 X:00AE Y:5F88 D:0000 DB:E1 S:07F6 P:envMxdizc HC:106 VC:019

    -----End $74 Value Loading Code-----

    $C09A9 80 21 BRA $21 [$D9CC] A:0003 X:00AE Y:5F88 D:0000 DB:E1 S:07F6 P:envMxdizc HC:106 VC:019
    $C09CC A6 7E LDX $7E [$00:007E] A:0003 X:00AE Y:5F88 D:0000 DB:E1 S:07F6 P:envMxdizc HC:136 VC:019
    $C09CE A5 70 LDA $70 [$00:0070] A:0003 X:6000 Y:5F88 D:0000 DB:E1 S:07F6 P:envMxdizc HC:136 VC:019

    --------------------

    All of this effort led to me finding the following address in the code noted above:

    E15F8713:Always Speed to Finish Line with 1 Cookie

    The 13 value is a trial-and-error value I found that lets you win from the starting line. You can also safely use it if you're right before the finish line.

    Also, when it writes to address $00:602A, the data modified is at 40202A. This makes it so one could possibly use SA1 logging to capture a large amount of operations, and search for a relative value that gets written.
    This reality is mine. Go hallucinate your own.

  • #2
    Mario RPG SA1 Coding

    On the subject of Mario RPG, has anyone besides me seen the debug room for this game? I made a TSearch code for the game to enter the debug room but it is impossible to convert to PAR 'coz upon conversion it ends up being a 8-digit code with 2 digit value, instead of a 6-digit with 2 digit value. :x


    I can supply a savestate though.
    Go to
    http://www.zophar.net/zsnes/archive/
    search for "radical dreamer" (match case)
    and you'll see my super mario rpg savestate in the debug room.

    Smash Bros Brawl friend ID: 4382-1901-2737
    Wii Friend Reg ID: 2616-5696-8840-7799

    Comment


    • #3
      Mario RPG SA1 Coding

      http://www.gamefaqs.com/console/snes/game/588739.html

      See the 'Debug Room FAQ' for PAR codes and info.
      This reality is mine. Go hallucinate your own.

      Comment


      • #4
        Mario RPG SA1 Coding

        Hmm, that's weird. I tried hundreds of times to search for the values I input on tsearch with zsnes, with no results every time. And when I tried to convert it like I did with every other code I made, it came out to that 8-digit code. :S The weather modifier and walk on air codes were the same way, I wonder if anyone's made those into PAR.

        Smash Bros Brawl friend ID: 4382-1901-2737
        Wii Friend Reg ID: 2616-5696-8840-7799

        Comment


        • #5
          Mario RPG SA1 Coding

          The 'Walk on air' style code is almost definately the 'Jump height' modifier I have yet to turn into a code. I suppose I could give it a try and hope that the address isn't changed by the SA1, or I could just make a PAR code with an explaination.

          I don't feel like making a weather modifier though, as I don't see much practical use in it. Feel free to find the address in a ZSnes save state, and the calculations I've provided recently should help.
          This reality is mine. Go hallucinate your own.

          Comment


          • #6
            Mario RPG SA1 Coding

            It wasn't a jump height modifier, though that would be much more practical than my code, which I found to be quite useless on PAR since there are no joker type codes to fully enjoy it.

            Weather modifier's a simple one, just have to make it whenever mallow is crying. There are different addresses for different parts of the storm, like darkness rain and thunder. [I think there was thunder anyway]

            *Later*

            That savestate to par guide is confusing to me, and somehow my "compare windows" function in hexedit isn't working. :?
            With TSearch I found a Teleport-to code at 6E977F with "version 1.40 ZSNES DEC 21, 2004". Depending on the value, it'll either take you to the beginning of the room you're in, or a completely different place. Only thing about this type of code is you also have to make a position modifier so you don't end up in darkness or stuck in objects.

            I just came across that while trying to make a "always classic mario" code. I'm sure it's been done before.

            Smash Bros Brawl friend ID: 4382-1901-2737
            Wii Friend Reg ID: 2616-5696-8840-7799

            Comment


            • #7
              Mario RPG SA1 Coding

              402005??:Height In Area modifier(You often start at a higher level than 0 when you enter an area. Experiment with going from higher values to lower values until you're happy with the result)

              I also ran through the SA1 code and rather quickly came up with this code, thanks to the previous work I've done:
              C014F7FF:Mario Jumps Ultra High

              or in Game Genie:
              EEFE-7FAF:Mario Jumps Ultra High
              This reality is mine. Go hallucinate your own.

              Comment


              • #8
                Mario RPG SA1 Coding

                how about a walk thru walls code for Mario RPG?

                Comment


                • #9
                  Mario RPG SA1 Coding

                  While I try to work on the walk-through-walls code(it's not being easy on me), you can mess with another code I made to learn the movement system a bit more:

                  0D84-7764:Mario walks and runs much faster

                  With the right value, you could be made to permanantly run, but this makes you walk faster than you normally run, and run so fast, it's hard to control. You may be able to clear whole areas in a jump if combined with the jump code I made.
                  This reality is mine. Go hallucinate your own.

                  Comment


                  • #10
                    Mario RPG SA1 Coding

                    Eh this has probably been done but I couldn't find anything that stated it.

                    http://s29.yousendit.com/d.aspx?id=1...Q1LU3O1TRNXJK9

                    If you walk into that curtain you'll notice that when you turn into classic mario, you still retain control of the original sprite as well, which is put into the upper-left corner. That means it's not another character within a character modifier, but a toggle I'm guessing. Not a 1/0 toggle either, I already tried that. If it's really good, it'd be a timer even..

                    I'm not very keen on using that savestate-to-par method, so I didn't make this into a code. Also in certain story parts the character modifier will make your character stuck. Mallow's value is 04, geno 03, bowser 02, princess 01, Mario 00 of course.

                    Smash Bros Brawl friend ID: 4382-1901-2737
                    Wii Friend Reg ID: 2616-5696-8840-7799

                    Comment


                    • #11
                      Mario RPG SA1 Coding

                      3C55-E7C1:Move Up Freely
                      3C59-E731:Move Left Freely

                      FD55-E741:Press Up to Go Down
                      DD55-E711:Press Up to Go Down

                      FD51-ED31:Press Left to Go Right
                      DD51-EF41:Press Left to Go Right

                      E359-EDC1:Inch through Walls Horizontally(Left, Right ,Left = Left, Up + Left, Right, Left = Right)
                      E251-E431:Inch through Walls Vertically(Up, Down, Up = Down, Left + Up, Down, Up = Up)

                      I know this isn't 'precisely' what you asked for, but I had a hard time even getting this done.

                      Even though it's not perfect, it's all plausible to use. The 'Inch through Wall' codes seem better for the console version, and the effects are compatible, if you know how to use them together. The other codes are more geared towards ZSNES and SNES9X, where you can enable the specific codes you want to use.
                      This reality is mine. Go hallucinate your own.

                      Comment


                      • #12
                        Mario RPG SA1 Coding

                        The 'Have All Characters' modifier sets mario's value to 0. All you've really done is changed the value in the second code in the 'Have All Characters' codes to 04 instead of 00.

                        I put that code in the site's archives last night, so take a look if you're interested.

                        I think enough people have asked about that darn 'Booster Tower Mario' sprite that I'll go give the thing a thump on the head and see if the answer falls out.

                        Edit:
                        It very quickly became apparant that I won't be able to make codes for this. It's not a case of it not being possible, it's just that I copied upwards of 85% of one file over the other, and it still wasn't right.

                        I don't know if I've ever used any addresses in the range that needs to be modified, nor do I know precisely how much data will need to be changed. The absolute minimum will be 6 codes, just from a few minutes of testing the graphic in another room. Testing it within the same room got me the right colors, but had several errors with lack of movement for the new sprite, and being unable to enter the curtains with the non-moving sprite.

                        I wouldn't say it's hopeless, just that you shouldn't hope I'll do it.
                        This reality is mine. Go hallucinate your own.

                        Comment


                        • #13
                          Mario RPG SA1 Coding

                          The other night I had it to where whenever you walked out an exit in that room, the mario panic music played and he ran to the curtain to change back even if you were normal mario. Using this code in a different room just made it to where mario couldn't move, and he didn't look like the classic mario, just normal. :?

                          And to make mario into Mallow, I didn't even try, I just went upwards a bit in hex from some teleport code just placing 11's everywhere. Best way to find everything in my experience.

                          Smash Bros Brawl friend ID: 4382-1901-2737
                          Wii Friend Reg ID: 2616-5696-8840-7799

                          Comment


                          • #14
                            Mario RPG SA1 Coding

                            I use a controlled version of 'placing 11s everywheres'.

                            I use the data from one save-state to overwrite the other save-state's data. Instead of running into errors of randomness, I run into errors of design, and at least as often, I run into the solution of the problem I'm having with the game.

                            The most unusual, incomprehensible systems I've ever come up against have been solved 95% of the time just by using this method to avoid understanding it until I've located the addresses to control the action.

                            I may end up releasing a utility to copy portions of save-states over portions of other save-states from the same game. The technique has worked for Gameboy, Genesis, NES, SNES, and even the whopping 6 megabyte files MAME produces for some games.
                            This reality is mine. Go hallucinate your own.

                            Comment


                            • #15
                              Mario RPG SA1 Coding

                              How about a game genie infinite health code for all charaters that don;t effect enemys

                              Comment

                              Working...
                              X