Announcement

Collapse
No announcement yet.

Xirtamehtsitahw's Hacking Thread

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

  • #46
    Some more 3Mix codes!

    Super-speed running a.k.a. "Sonic Mode"*

    0x003B50B4 0x0000006E

    *So-called because you accelerate by simply pressing left or right on the D-pad, like in Sonic games. Be careful, though--you accelerate at roughly the same rate as Super Sonic (not quite as fast as Hyper Sonic, though), so it's easy to overshoot your intended jumping point and fall straight into a pit at full speed, if you're not careful.

    Enemy stomp score modifier

    0x00341CC4 0x0000000?

    Replace the ? with any of the following values:

    0 = 100
    1 = 200
    2 = 400
    3 = 800
    4 = 1000
    5 = 2000
    6 = 4000
    7 = 8000
    8+ = 1UP

    ...

    FC = 10
    FD = 20
    FE = 40
    FF = 80

    That's right--there are score icons for 10, 20, 40 and 80 points coded into the game, but they are never used. Values between 8 and FB all give the same result: 1UP.

    Also note that this code ONLY affects the value of stomped enemies (as far as I know). It does not affect chains started by shells or a Starman. Enemies killed by projectiles or your tail usually net you 100 points apiece.

    Improved God mode code

    0x003417E1 0x00000000
    0xD0000000 0x10001000
    0x003417E1 0x00000001

    If you fall into a pit, you'd normally be "stuck" and have to reset the game, due to the God mode code's completely blocking your ability to die (and thus bail out of the level). To correct this, I added a "suicide button"--just hold Triangle if you fall into a pit and get "stuck". This temporarily enables the death routine, thus enabling a safe bailout from the level (no need to reset the game).

    With the battery of codes I created (some with a little help ), I'm going to try to cap the score by the time I collect all 300 star coins. Not an easy task, but I think it could be done with a little ingenuity.
    Last edited by xirtamehtsitahw; 01-11-2021, 06:27:51 PM. Reason: Long-overlooked typo
    Tempus fugit, ergo, carpe diem.

    Time flies, therefore, seize the day.

    Comment


    • #47
      You know I've always had this great idea of using the height location addresses in games where if you fall into a hole (depending on the levels using the same value for the where you die) to have an activator kick in once the player fell a certain amount and have them go to a higher location above the hole to kind of save your ass. Maybe try something like this for your game.
      Spoiler Alert! Click to view...

      THE BAD GUY!!!!!!

      Comment


      • #48
        Sort of like the "god mode" ASM patch for Super Mario World--if you fall into a hole, you'd sort of bounce at the bottom of the screen, as if there were an invisible safety net just below the screen. I'm not entirely sure how that works, though, for Super Mario Bros. 3(Mix). I could use the RAM map to see where the height indicators are located in Super Mario Bros. 3, and apply the necessary offset(s) so they would work on 3Mix.

        BTW, there IS a Game Genie code (YYOLIGAE) that prevents you from falling into pits. However, it does so by locking the game's vertical scrolling ability, so the level's artificial "borders" are the actual bottom and top of your screen. You CANNOT go above or below those borders with this code active. Was wondering if there were a way to edit that code to make it more useful...
        Tempus fugit, ergo, carpe diem.

        Time flies, therefore, seize the day.

        Comment


        • #49
          I'm sure observing the ASM in that code we can do something with it, what did you have in mind to make it more useful?
          Spoiler Alert! Click to view...

          THE BAD GUY!!!!!!

          Comment


          • #50
            I've got a couple of ideas: make it so that if you fall into a pit, there's sort of a "safety net" effect, where you simply bounce on a row of invisible blocks (kind of like what happens if you somehow glitch up a ? block and it turns invisible--you bounce on thin air where the block used to be). Not sure if this would interfere with how you have to fall into a pit to proceed in certain levels or to exit certain bonus rooms/coin heavens.

            A second, and possibly more complicated, idea, is to implement a one-way vertical wrap where if you fall into a pit, you'd reappear by dropping from the top of the screen. The reason I stress "one-way" is because otherwise trying to scroll the screen up (by jumping/flying) would make you reappear by jumping from the bottom of the screen. The one-way effect would prevent this, and only make you reappear from the top of the screen if you fell into a hole.

            I also tried to find where the addresses dealing directly with horizontal/vertical scrolling are located, but they're not listed in Data Crystal's RAM map. Their ROM map isn't much use, either--consisting almost exclusively of ROM addresses dealing with graphics and music/sound. I'd appreciate any help I could get (such as a link to a more complete RAM/ROM map for Super Mario Bros. 3, so I can find the appropriate offsets in 3Mix).
            Last edited by xirtamehtsitahw; 05-18-2015, 11:51:29 PM.
            Tempus fugit, ergo, carpe diem.

            Time flies, therefore, seize the day.

            Comment


            • #51
              Finally discovered what was causing the garbage to appear in place of "COURSE CLEAR!" and certain boss-defeated texts--it was that darn infinite-timer code all along! It didn't even work in auto-scrolling stages anyway, so...good riddance! LOL

              Another thing: using the value DC instead of 6E on my "Sonic Mode" code makes you move about as fast as Hyper Sonic, so you have to be extremely careful (especially as Fire/Boomerang Mario), and sometimes even move in spurts, or else you'll run straight off the edge of a cliff...to certain death! Life in the fast line is NOT easy!

              UPDATE: I just discovered that attaching a button activator code to my stop-timer code removes the annoying garbage-text problem...while still allowing me to have unlimited time (except in auto-scrolling levels).

              ANOTHER UPDATE: Found out that every CWCheat code I've created for 3Mix works for BOTH versions (PRG0 and PRG1). So, there is no need to apply offsets in that regard. Another interesting thing is that once the multi-jump and Sonic-mode codes are activated, they no longer need to remain "active", as the values they insert stay put during the entire current session (they revert to their default values when you either turn the emulator off or reset the 3Mix rom). Also, you can actually activate the stop-timer code on the map screen (I set it so that pressing START stops the timer, and you use the same button to save the game).
              Last edited by xirtamehtsitahw; 05-19-2015, 06:22:47 PM.
              Tempus fugit, ergo, carpe diem.

              Time flies, therefore, seize the day.

              Comment


              • #52
                Originally posted by xirtamehtsitahw View Post
                I've got a couple of ideas: make it so that if you fall into a pit, there's sort of a "safety net" effect, where you simply bounce on a row of invisible blocks (kind of like what happens if you somehow glitch up a ? block and it turns invisible--you bounce on thin air where the block used to be). Not sure if this would interfere with how you have to fall into a pit to proceed in certain levels or to exit certain bonus rooms/coin heavens.

                A second, and possibly more complicated, idea, is to implement a one-way vertical wrap where if you fall into a pit, you'd reappear by dropping from the top of the screen. The reason I stress "one-way" is because otherwise trying to scroll the screen up (by jumping/flying) would make you reappear by jumping from the bottom of the screen. The one-way effect would prevent this, and only make you reappear from the top of the screen if you fell into a hole.

                I also tried to find where the addresses dealing directly with horizontal/vertical scrolling are located, but they're not listed in Data Crystal's RAM map. Their ROM map isn't much use, either--consisting almost exclusively of ROM addresses dealing with graphics and music/sound. I'd appreciate any help I could get (such as a link to a more complete RAM/ROM map for Super Mario Bros. 3, so I can find the appropriate offsets in 3Mix).
                Tht second part is what the activator would do in my theory I described above, basically falling into a pit activates the code to put you at a higher part of the screen so you can safely move away from the pit on the way down. I'll have a look at it but you'll have to do the leg work in converting it to CWCheat format.

                Edit: here is the NES RAM code:

                00A2:A0

                so that value of A0 is the safe spot to have an activator and the value to activate would be 00.
                Spoiler Alert! Click to view...

                THE BAD GUY!!!!!!

                Comment


                • #53
                  Interesting...I'll have to look into that. I pray that it works! *crosses fingers* Thanks, bud!

                  UPDATE: the CWCheat address dealing with the player's in-level Y position is 0x003417BF. However, this address deals solely with the player's in-level Y-position, and does NOT prevent pit deaths. Also, it seems to affect the player's vertical velocity (up or down), so how would I use this to disable pit deaths?

                  Once the death music starts trying to play upon falling into a pit, it appears to be irreversible--ergo, one CANNOT undo a pit death, as it appears to be hard-coded into the game's programming. I found this out when I tried to apply a button activator to the vertical-position code (for use upon experiencing a pit death), but it seems as if the game blocks ALL face-button and D-pad inputs (you can still pause the game but that's it) following a pit death. Strangely, there have been a few cases where I managed to reverse a pit death, but only in auto-scrolling levels. Hmmm...I wonder if that has something to do with it?

                  I looked at the complete disassembly of Super Mario Bros. 3, and there is a section of code simply titled "Player_die" as well as one for "Player_isDying". I wonder what deleting these two code strings would do upon reassembling the SMB3 rom?
                  Last edited by xirtamehtsitahw; 05-21-2015, 03:20:10 PM.
                  Tempus fugit, ergo, carpe diem.

                  Time flies, therefore, seize the day.

                  Comment


                  • #54
                    I found what appears to be the death flag in RAM:
                    0x00F1

                    Write 0x00 to stay alive and 0x02 to die.


                    Edit: I was unaware that your CWCheat code was equivalent to this NES code.
                    I only bother with things that interest me.

                    Comment


                    • #55
                      I found that flag a few months ago. In fact, it's been on this site's list of SMB3 codes for probably several YEARS. However, it does not actually cancel out the death routine. It simply prevents death by stopping the death routine as soon as it starts (that's why you turn small, and the death music plays when you hit lava...but don't actually die).

                      As for falling into a pit, it appears that there is a particular subroutine within the death routine that blocks controller input if you fall too far into a pit (ergo, past the bottom of the screen).

                      I wonder if there were something I could do to disable that particular subroutine (NOP it, perhaps)?
                      Last edited by xirtamehtsitahw; 05-21-2015, 08:15:45 PM.
                      Tempus fugit, ergo, carpe diem.

                      Time flies, therefore, seize the day.

                      Comment


                      • #56
                        EVEN MORE Super Mario Bros. 3Mix Coolness!

                        It turns out that the God-mode code I found earlier DOES protect you from pit deaths. You just need to pair it with a "bail out" code to enable you to escape from a pit post-haste.

                        That bail-out code is as follows:

                        0xD0000000 0x10003000
                        0x003417BF 0x00000060

                        Basically, if you fall into a pit (and trigger the "death warble"), press Circle and Triangle at the same time to FLY out of the pit like your ass is on fire (who knows what's actually DOWN there...heh heh).

                        Pit/lava "deaths" still make you small, and trigger the death music (after which the music falls silent until you enter a pipe or go through a door/exit the level), and they may also cancel P-switch timers as well (that was one of the flags canceled by the death routine, anyway). Other than that, there is no ill effect from "dying" in any fashion now.

                        This game now bows to me as its (nearly) unchallenged GOD! BWA HA HA! *cue Bowser laughter*

                        There is one final way the game still feebly rebels against me: having the timer insist on counting down on auto-scrolling levels. However...there IS a Game Genie code which PERFECTLY stops the timer...in the original game. I'll just have to poke around for the offset.

                        UPDATE: URGH, this particular ROM address REFUSES to be found! I've tried about 50 different likely addresses, ranging from 0x003B2938 all the way to 0x003B70DA (and a few beyond that), and that blasted timer keeps counting down, flashing a troll face at me, and saying "U MAD, BRO? PROBLEM?"

                        Why is this particular ROM address trying so hard to elude me?
                        Last edited by xirtamehtsitahw; 05-22-2015, 10:50:49 AM.
                        Tempus fugit, ergo, carpe diem.

                        Time flies, therefore, seize the day.

                        Comment


                        • #57
                          Final fantasy IV ulus-10560

                          Hey there can you hack this game for me please. I am looking specifically for the enemy encounter modifier code. Can you make that code if it really exists in this game. Many thanks

                          Comment


                          • #58
                            I do know that enemy-encounter modifier codes of several kinds exist for this game. What kind of encounter modifier are you looking for: a random-encounter frequency modifier, or to actually change what types of enemies you encounter?

                            I might end up downloading this game and doing a little hacking to help you out. Judging by the game ID you provided, it IS a PSP game, right?
                            Tempus fugit, ergo, carpe diem.

                            Time flies, therefore, seize the day.

                            Comment


                            • #59
                              yes it is the (usa) version:Final Fantasy IV: The Complete Collection
                              A Wise Man once said that common sense is really not that common.

                              Comment


                              • #60
                                I'm going to try to find some codes for you. They may have already been created, so I'm going to check a few websites and report back what I find.
                                Tempus fugit, ergo, carpe diem.

                                Time flies, therefore, seize the day.

                                Comment

                                Working...
                                X