Announcement

Collapse
No announcement yet.

CL-LiveDebug v4 Beta

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    Originally posted by 47iscool View Post
    Thanks! Going to put in CB this instant.

    Edit: Not working, are these codes for PAL? I have the NTSC version.

    Or could the master code be wrong? Inf health & inf grip work.
    you need use raw format master code
    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


    • #62
      Glad you figured it out. I will fix that.

      Originally posted by bungholio View Post
      For an extra good search option also, you should add something to just redump all data. Many people like me have a habit of forgetting what they are doing as they are doing things and end up not being able to remember what they did for their last scan. A simple option to just redump everything is helpful. It wouldn't do anything of any kind with comparing results, it would just go to the addresses that are results, get whatever the current values are at those addresses, and then save those new values. I remember Viper having it for ps2cc as the option that said "I forgot (just dump everything again)" or something like that.
      Well the value and range stay when you exit the debugger. So I don't see why that would be needed. Plus you could just search for an unchanged value. That would have the same effect.

      Also bear in mind that you cannot search for changes with bits past 32. That would require too much memory and I decided it wasn't really worth it. I at least never use searches greater than 32 unless searching for text. But when I search for text I don't have to use change searching.
      Last edited by dnawrkshp; 06-27-2013, 04:38:18 PM.

      Comment


      • #63
        Originally posted by dnawrkshp View Post
        So I don't see why that would be needed. Plus you could just search for an unchanged value. That would have the same effect.
        I thought you might say that. I'd go for redumping data without comparing in case I forgot what I just did. Say for example, I was searching for something with bits, like maybe a powerup, I get distracted with something else and come back a minute later and forgot what I did. I was searching for a powerup and I can't remember if I last did something that changed whether I had a powerup activated, so no matter what I do next, I don't remember if I last scanned for a powerup being on or off. In that case, I can only I guess. Maybe I last scanned and had the powerup on, but then I turned it off, went away for a minute because I got distracted with something else and came back to the game to continue the search. I'd look at it and see that I don't have the powerup on, so I might decide to turn it back on and scan for changes only to realize I just screwed up the entire search and need to start over. It's a simple thing for when reality distracts you and you return and don't remember for sure what you did, so instead of just guessing and hoping I did something the way I thought I did, I can just have it get all of the current values at the result addresses without them doing and kind of comparison, I can then resume what I am doing right then and there. I couldn't rely on scanning for things that didn't change, because I might have been in the middle of something, scanned for it, then changed it, then the phone rings and I'm talking for 10 minutes, then need to go get laundry, then turn off the oven so I don't burn food, and then come back to the game and not remember if I scanned for that thing as it currently is or if I scanned for what it previously was, then changed something, and then got distracted and haven't yet scanned for the change.

        It's just like Viper's button: "I Forgot (Just dump everything again without comparing results)".
        Last edited by bungholio; 06-27-2013, 06:00:04 PM.
        July 7, 2019

        https://www.4shared.com/s/fLf6qQ66Zee
        https://www.sendspace.com/file/jvsdbd

        Comment


        • #64
          So all it does is update the values?

          Comment


          • #65
            Exactly. Just update the values. Have you ever been finding codes, got interrupted by anything for a moment, or even been doing scans while rapidly doing things and just had a tiny lapse in memory where you can't remember exactly where you left off 30 seconds ago because something distracted you? It's very handy. Sure, I could guess and hope I guess right on what I last scanned for and what I last did, but this allows me to fix that guess work. I can't remember if I just last scanned while that item was equipped or not equipped, I'll just equip it and make it update all of the results to whatever the current values are instead of guessing, maybe getting the wrong guess and needing to start over again. The scenarios:

            I'm scanning for whatever by equipping and unequipping an item. I last scanned for whatever while the weapon is equipped. I get distracted for 1 minute and leave to do whatever, I come back and can't remember if my last scan was while it was equipped or while it wasn't equipped and I just equipped it before I got distracted.
            1. I scan for things that changed. If my last scan was while it was equipped and I left while it equipped before I left, I ruined everything. If my last scan was while it wasn't equipped and then I equipped it before leaving and returning, then things are good.
            2. I scan for things that didn't change. If my last scan was while it was equipped and I left it equipped and left, things are good. If I last scanned while it wasn't equipped and then I equipped it, left, and returned, I ruined everything.
            3. I don't know, I click to just update all of the values without comparing anything or purging any results, I know that no matter what it was that it now has the result for it being equipped and I can continue doing things the way I want without worrying about clicking the wrong choice of the above 2.
            Last edited by bungholio; 06-27-2013, 08:34:11 PM.
            July 7, 2019

            https://www.4shared.com/s/fLf6qQ66Zee
            https://www.sendspace.com/file/jvsdbd

            Comment


            • #66
              I can do that. But it might be a bit before I can get to update LD.

              Comment


              • #67
                It's bizarre that most of us probably don't think of that simple little thing, because it's incredibly useful. Odds are at some point everybody has used something to find codes by doing scans of memory and then different comparison choices based on what we are doing, and then forgot something they just did and then had to take a guess between scanning for things that did change or things that didn't change and screwed everything up. This simple thing solves that problem. I've had this happen many times, and I'm sure every person who has ever scanned for codes has had this problem. Up until I used Viper's ps2cc with ps2rd, I had never thought of how simple this problem was to fix. His first default scan choice at the top of the list was "I Forgot (Just dump everything again and update the values)".
                July 7, 2019

                https://www.4shared.com/s/fLf6qQ66Zee
                https://www.sendspace.com/file/jvsdbd

                Comment


                • #68
                  I have used this on many other games even way back when pimp first released it. But the one game I can't seam to get it to work on is The Godfather The Game. I can press the joker and get the screen but when I press start it wont go into the debugger. Please help...

                  Comment


                  • #69
                    Some games are like that so far. It isn't 100% compatible with all games yet. The source is out in the open if you know how to program things. I encountered the same problem with quite a few games too.
                    July 7, 2019

                    https://www.4shared.com/s/fLf6qQ66Zee
                    https://www.sendspace.com/file/jvsdbd

                    Comment


                    • #70
                      I'm guessing breakpoints are out of the question?

                      Comment


                      • #71
                        Originally posted by 47iscool View Post
                        I'm guessing breakpoints are out of the question?
                        Well they are possible... I'd just have to look into what gets called to handle when a trap is hit. Now if the exception handler is called, then we'd be in luck because Gtlcpimp already made an exception handler in MIPS and I could re-implement that somehow into LD. Otherwise, for now, using the register dumper is your best option.

                        Comment


                        • #72
                          This is a break point handler I wrote for a different code a while back, stripped out all the guts and left the bare bone handler installer and noted where you need to write your own handler. Break points are nothing but another System Call. I used this in part of a virtual gateway modification I wrote for SOCOM: Combined Assault, in which I would remotely dump registers or stack traces from any given point within the game by injecting a break point with a specific argument. The S.C.A. code portions were stripped, hopefully I didn't remove too much from this but is open for use / modifications.

                          Code:
                          /*
                             Breakpoint Handler - By Gtlcpimp
                          */
                          
                          address $00092000
                          
                          //==============================================================
                          // This must be called from within kernel_Mode
                          
                          BreakPointHandleInstaller:
                          beq zero, zero, :BreakPointHandleInstaller_Init
                          nop
                          nop
                          nop
                          nop
                          BreakPointHandleInstaller_Init:
                          lui a0, $8000
                          addiu a1, zero, $8f5a
                          
                          _IH_ScanLoop:
                          
                          lh v0, $0000(a0)
                          lh v1, $0002(a0)
                          bne a1, v1, :_IH_ScanLoop
                          addiu a0, a0, 4
                          
                          lui a0, $8001
                          daddu a0, a0, v0
                          
                          setreg v0, :BreakPointHandler
                          
                          //sw v0, $0004(a0) // TLB Modification
                          //sw v0, $0008(a0) // TLB Load/Inst Fetch
                          //sw v0, $000c(a0) // TLB Store
                          //sw v0, $0010(a0) // Address Load/Inst Fetch
                          //sw v0, $0014(a0) // Address Store
                          //sw v0, $0018(a0) // Bus Error (instr)
                          //sw v0, $001c(a0) // Bus Error (data)
                          //sw v0, $0020(a0) // Syscall()
                          lw v1, $0024(a0)
                          sw v0, $0024(a0) // Breakpoint
                          //sw v0, $0028(a0) // Reserved Instruction
                          //sw v0, $002c(a0) // Coprocessor Unsuable
                          //sw v0, $0030(a0) // Overflow
                          //sw v0, $0034(a0) // Something
                          
                          lw a0, $0008(v0)
                          bne a0, zero, 2
                          nop
                          sw v1, $0008(v0)
                          
                          jr ra
                          nop
                          
                          //==============================================================
                          nop
                          _regSave:
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          
                          //==============================================================
                          BreakPointHandler:
                          beq zero, zero, :BreakPointHandler_Init
                          nop
                          nop
                          nop
                          nop
                          BreakPointHandler_Init:
                          
                          //--------------------------- Dump Registers
                          addiu sp, sp, $FFF0
                          sq k0, $0000(sp)
                          
                          setreg k0, :_regSave
                          sq at, $0000(k0)
                          sq v0, $0010(k0)
                          sq v1, $0020(k0)
                          sq a0, $0030(k0)
                          sq a1, $0040(k0)
                          sq a2, $0050(k0)
                          sq a3, $0060(k0)
                          sq t0, $0070(k0)
                          sq t1, $0080(k0)
                          sq t2, $0090(k0)
                          sq t3, $00a0(k0)
                          sq t4, $00b0(k0)
                          sq t5, $00c0(k0)
                          sq t6, $00d0(k0)
                          sq t7, $00e0(k0)
                          sq s0, $00f0(k0)
                          sq s1, $0100(k0)
                          sq s2, $0110(k0)
                          sq s3, $0120(k0)
                          sq s4, $0130(k0)
                          sq s5, $0140(k0)
                          sq s6, $0150(k0)
                          sq s7, $0160(k0)
                          sq t8, $0170(k0)
                          sq t9, $0180(k0)
                          sq gp, $0190(k0)
                          sq fp, $01a0(k0)
                          
                          addiu at, sp, $0010
                          sq at, $01b0(k0)
                          sq k1, $01d0(k0)
                          
                          lq k1, $0000(sp)
                          sq k1, $01c0(k0)
                          
                          sq ra, $01e0(k0)
                          
                          mfc0 v0, $Cause
                          sw v0, $01f0(k0)
                          
                          mfc0 v0, $EPC
                          sw v0, $01f4(k0)
                          
                          mfc0 v0, $BadVAddr
                          sw v0, $01f8(k0)
                          
                          mfc0 v0, $Status
                          sw v0, $01fc(k0)
                          
                          swc1 $f0, $0200(k0)
                          swc1 $f1, $0204(k0)
                          swc1 $f2, $0208(k0)
                          swc1 $f3, $020C(k0)
                          swc1 $f4, $0210(k0)
                          swc1 $f5, $0214(k0)
                          swc1 $f6, $0218(k0)
                          swc1 $f7, $021c(k0)
                          swc1 $f8, $0220(k0)
                          swc1 $f9, $0224(k0)
                          swc1 $f10, $0228(k0)
                          swc1 $f11, $022c(k0)
                          swc1 $f12, $0230(k0)
                          swc1 $f13, $0234(k0)
                          swc1 $f14, $0238(k0)
                          swc1 $f15, $023c(k0)
                          swc1 $f16, $0240(k0)
                          swc1 $f17, $0244(k0)
                          swc1 $f18, $0248(k0)
                          swc1 $f19, $024c(k0)
                          swc1 $f20, $0250(k0)
                          swc1 $f21, $0254(k0)
                          swc1 $f22, $0258(k0)
                          swc1 $f23, $025c(k0)
                          swc1 $f24, $0260(k0)
                          swc1 $f25, $0264(k0)
                          swc1 $f26, $0268(k0)
                          swc1 $f27, $026c(k0)
                          swc1 $f28, $0270(k0)
                          swc1 $f29, $0274(k0)
                          swc1 $f30, $0278(k0)
                          swc1 $f31, $027c(k0)
                          addiu sp, sp, $0010
                          
                          //--------------------------- Breakpoint Processor (what you want to do with the breakpoint)
                          ProcessBreakpoint:
                          
                          addiu sp, sp, $FF80
                          sd ra, $0000(sp)
                          sd s0, $0008(sp)
                          sd s1, $0010(sp)
                          sd s2, $0018(sp)
                          
                          /*
                          
                          
                          Write your "handler" here
                          
                          
                          */
                          
                          ld ra, $0000(sp)
                          ld s0, $0008(sp)
                          ld s1, $0010(sp)
                          ld s2, $0018(sp)
                          addiu sp, sp, $0080
                          
                          BH_InfLoop:
                          nop
                          nop
                          nop
                          beq zero, zero, :BH_InfLoop
                          nop

                          Comment


                          • #73
                            The PS2 uses TLB?

                            Comment


                            • #74
                              Yes:
                              Code:
                              http://forums.pcsx2.net/Thread-blog-Virtual-Memory

                              Comment


                              • #75
                                So does this mean that at some point in time LiveDebug is going too have a breakpoint system if not pcsx2dis is still an option but be nice to use a ps2 and not a emulator

                                Comment

                                Working...
                                X