Announcement

Collapse
No announcement yet.

Finding out those break points

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

  • Finding out those break points

    I'm trying to do some custom codes for Maniac Mansion but not sure how to find those break points.
    I want to figure out the address for Dave's X position. Address range from 0000 to ffff so how do I get the debugger to help me figure out the address line first of all?

  • #2
    Usually, you use a RAM search program to find that. Many emulators have RAM search programs built in. Normally, when a character is moving to the right, the value will increase, moving left will decrease the value. So "reset" the search program, have your character move right a little, search for "greater than previous", move right some more, search for "greater than previous", etc. If that doesn't work, try the opposite (move right, but search for "less than previous").
    The Code Hut: http://codehut.gshi.org/

    Comment


    • #3
      Now what do I do when the address changes?
      I did a search and found the address that makes Dave walk to the X/Y point on the screen. However it only worked in the first screen I was in, then it stopped. I ran the debugger and noticed a match for the address (F3F0) but if I use it as a code it freezes everything up.

      So what do I do in these cases?
      Attached Files

      Comment


      • #4
        Instead of modifying the write address (STA), modify the loading address (LDA). This will be located above the (STA) you have found in the picture. If the game changes where it wants to write to it wont matter as you have forced the game to load the accumulator with the value to write and should then work on every screen.
        Last edited by Abystus; 01-22-2011, 03:10:27 PM.
        Not taking any requests at this time.

        Bored? Watch some of my hacks here.

        Comment


        • #5
          I can't figure out what I need to do in this case. However I found something else out.
          So far the value just changes from 6c2d and 6cd3.
          So by freezing both of these values I managed to gain control of where he walks to.

          So how do I find this address that they have in common?
          I scrolled up once and tried all those values but nothing worked.

          Comment


          • #6
            The instruction you're worried about (Based on the screenshot provided) is below:

            Code:
            [COLOR="lime"]F3ED:AD AE 6C  LDA $6CAE = #$0C[/COLOR]
            F3F0:9D D2 6C  STA $6CD2,X @ $6CD2 = #$17
            So your options are as follows:

            Either:

            Code:
            [COLOR="lime"]F3ED:AD AE 6C  LDA $6CAE = #$17[/COLOR]
            The value to store is loaded from 6CAE specifically, so I set 6CAE to the value I want.

            6CAE 17

            Or:

            Code:
            [COLOR="lime"]F3ED:A9 17     LDA #$17
            F3EF:EA        NOP[/COLOR]
            F3F0:9D D2 6C  STA $6CD2,X @ $6CD8 = #$00
            Basically I modified the LDA to always load my specific value (17).

            F3ED A9
            F3EE 17
            F3EF EA
            Last edited by Abystus; 01-22-2011, 06:08:28 PM.
            Not taking any requests at this time.

            Bored? Watch some of my hacks here.

            Comment

            Working...
            X