Announcement

Collapse
No announcement yet.

NullDC Debugger

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

  • #16
    Originally posted by 47iscool View Post
    I'm not quite sure I fully understand your question.

    It's simple really, use Cheat Engine to find the value you want, such as ammo. Bring up CE's memory viewer with ctrl+B.

    Find your ammo:
    [ATTACH]2766[/ATTACH]

    Set breakpoint:
    [ATTACH]2767[/ATTACH]

    Then fire:
    [ATTACH]2768[/ATTACH]
    Voila! The ASM!

    Then you can test your code out by using a Gameshark on nullDC or a real Dreamcast. So far everything I've tried causes a freeze up so I'll probably back off of hacking the DC. Than again I may give it another shot who knows.

    Also here is the CE file, it's for CE 6.4:
    This does shit for me, I tried your file on cheat engine 6.4 and I'm trying Time Stalkers and the code for the register never changes. This might be game specific and I am using the exact same emulator as you. Tell me how you find this register manually so I can find it myself oh and I was able to use the CE debugger to make ASM changes but to test in the real game I need the correct address.
    Spoiler Alert! Click to view...

    THE BAD GUY!!!!!!

    Comment


    • #17
      Originally posted by Helder View Post
      This does shit for me, I tried your file on cheat engine 6.4 and I'm trying Time Stalkers and the code for the register never changes. This might be game specific and I am using the exact same emulator as you. Tell me how you find this register manually so I can find it myself oh and I was able to use the CE debugger to make ASM changes but to test in the real game I need the correct address.
      Something I forgot to mention was that I am using nullDC 104 r136

      Simple, start any game and then stop it. Bring up the debugger and do a 4-byte hex scan for the PC register, you should get a few addresses, start game and then stop and search and you should find it.
      Click image for larger version

Name:	pc reg.PNG
Views:	1
Size:	16.3 KB
ID:	162570<See?

      Here are some of my CE settings:
      Click image for larger version

Name:	DO.PNG
Views:	1
Size:	25.7 KB
ID:	162571
      Last edited by 47iscool; 06-26-2014, 01:06:42 AM.

      Comment


      • #18
        Here is the part I need to know, what is the 4-byte hex PC register? You're assuming I know this when I don't.
        Spoiler Alert! Click to view...

        THE BAD GUY!!!!!!

        Comment


        • #19
          Originally posted by Helder View Post
          Here is the part I need to know, what is the 4-byte hex PC register? You're assuming I know this when I don't.
          On the nullDC version I have it's "nullDC_Win32_Release-NoTrace.exe"+45018, add that into CE's address box.

          If you have a different version of nullDC and need to find it stop the game and bring up the debugger, look at the PC register and do a 4-byte hex scan for whatever the the PC registers' value is. Start the game back and then stop it and search for the value on the PC register. After you narrow it down add it into CE's list, whatever the PC registers' value is on the break is your ASM.
          Last edited by 47iscool; 06-26-2014, 04:54:01 PM.

          Comment


          • #20
            I got it working now if you could figure out where to get the real address on breakpoints with ASM breakpoints and not the RAM. I found the code I wanted to modify in the ASM and trying to match the ASM in CE to the Debugger in nullDC is really hard so if you could do the same for hardware breakpoints we can do something to actually make codes. I even tried activating breakpoints in the nullDC debugger but that caused a break but I don't see any info like in the CE registers such as the Health I was trying to mod. I also tried to subtract the line of code from the breakpoint in the PC register but that didn't give me the correct location either.
            Spoiler Alert! Click to view...

            THE BAD GUY!!!!!!

            Comment


            • #21
              Originally posted by Helder View Post
              I got it working now if you could figure out where to get the real address on breakpoints with ASM breakpoints and not the RAM. I found the code I wanted to modify in the ASM and trying to match the ASM in CE to the Debugger in nullDC is really hard so if you could do the same for hardware breakpoints we can do something to actually make codes. I even tried activating breakpoints in the nullDC debugger but that caused a break but I don't see any info like in the CE registers such as the Health I was trying to mod. I also tried to subtract the line of code from the breakpoint in the PC register but that didn't give me the correct location either.
              Just bring up CE's debugger and set a BP on the value and when it freezes look at the PC register in CE's list.

              That's about all I can think of for making ASM codes with it.

              Comment


              • #22
                It doesn't work on ASM instruction breakpoints, only the RAM codes we find and put a break on. They need to add a god damn feature like Artmoney so we can make offsets to show the real addresses instead of shooting in the dark like we are.
                Spoiler Alert! Click to view...

                THE BAD GUY!!!!!!

                Comment


                • #23
                  Well when I set the ASM it gave me fir the rings on SA2 I put a NOP on it the game froze/crashed exactly as I tried to pick up a ring.
                  Last edited by 47iscool; 07-24-2014, 11:50:46 PM.

                  Comment


                  • #24
                    I had no issues noping things on the CE but trying to find the equivalent address on the actual DC ASM is what's proving the the problem. I have an idea as to how to go about it now just need to test it.
                    Spoiler Alert! Click to view...

                    THE BAD GUY!!!!!!

                    Comment


                    • #25
                      Originally posted by Helder View Post
                      I had no issues noping things on the CE but trying to find the equivalent address on the actual DC ASM is what's proving the the problem. I have an idea as to how to go about it now just need to test it.
                      Well the PC register SHOULD show the ASM but every time I NOP it by entering the code in a GS it causes the game to freeze whenever I do what causes the ASM to trigger that value/action.

                      Comment


                      • #26
                        Look at this here for SA2 from the DB:

                        Max Infinite Rings Code Master, ViperByte AR 010DB270
                        000003E7
                        Now look at what I got when I found my rings and hit "find what writes to this address"
                        Click image for larger version

Name:	CE SA2.PNG
Views:	1
Size:	1.0 KB
ID:	162572

                        The ECX is the RAM address that holds the rings value.
                        Last edited by 47iscool; 06-27-2014, 08:00:36 PM.

                        Comment


                        • #27
                          Thats useful but not helful in making ASM codes yet, but I did end up making a table with all 15 Dreamcast registers so this might help as well.
                          Attached Files
                          Spoiler Alert! Click to view...

                          THE BAD GUY!!!!!!

                          Comment


                          • #28
                            Originally posted by 47iscool View Post
                            Well the PC register SHOULD show the ASM but every time I NOP it by entering the code in a GS it causes the game to freeze whenever I do what causes the ASM to trigger that value/action.
                            does freeze when run the code on CE too?
                            lee4 Does Not Accept Codes Requests !
                            When lee4 asks a question it does not mean lee4 will look at your game
                            *How to create and use SegaCD codes >click here<*
                            >)

                            Comment


                            • #29
                              Originally posted by lee4 View Post
                              does freeze when run the code on CE too?
                              You mean when you use CE to NOP the ASM using it's own method? No it does not thankfully, it might only be a problem with the GS running on nullDC.

                              I would love to try it on my DC but I have two problems:

                              1. My original disc is damaged beyond repair.
                              2. Dreamshell doesn't support GS codes, at least not yet. Not sure if SWAT has any plans to add that feature or not.
                              Last edited by 47iscool; 06-28-2014, 01:49:54 AM.

                              Comment


                              • #30
                                The problem is that the address in the PC register is wrong or too slow to show where the ASM is executing. I was able to find out where in the CE addresses was the real DC equivalent and changing it through CE to show the changes in the DC (using nullDC debugger to confirm) did nothing and in my case when I stepped into the next line of ASM in CE the PC register jumped to a totally different location. This makes me believe that the game is breaking after the routine we need to hack is run and that routine might have done an RTS or Jump to another location when it is shown in the PC register.
                                Spoiler Alert! Click to view...

                                THE BAD GUY!!!!!!

                                Comment

                                Working...
                                X