+ Reply to Thread
Results 1 to 5 of 5

Thread: [Help] Pointer Code Question

  1. #1
    Join Date
    Nov 2006
    Posts
    7
    Downloads
    0
    Uploads
    0
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Potenza rep
    0

    [Help] Pointer Code Question

    So I know how to make easy codes. And can do basic pointer codes. No mips and subs for me.

    Recently start to use cw so maybe you guys can point me in the right direction.

    My question is about this:

    Say I make my code like so:
    8 bit pointer code cheat
    0x6aaaaaaa 0x000000vv
    0x00000001 0x00000iii

    So yah "a" is my pointer and I got my value v that I want to write in.
    And yah it will go to location the pointer points to and add the offset iii to the location it finds. And cheat works fine.

    But what I want to do is introduce a test code into the above just like the one that exists in non pointer cheats. How can I do this?

    0aaaaaaa 0x202000dd

    Like I want to use this in my code but I don't think you can introduce it in the above scenario because of the format guidelines on pointer codes.

    Maybe I want check what the value at the offset is first and if it less than a certain amount dd I want to set it to some other value otherwise use vv.

    One of the code types on the wiki looked promising the copy byte Extra pointer line code.
    0x1sssssss 0×00000000

    I figured I could then just watch and monitor that destination area and all would be well. But then I relalize I will get the same problem because that code type doesn't copy to a static area, destination is based on an additional offset and all the test codes seem to need static address.

    Thanks Let me know what options I have if any or if there is a simpler way to do what I try to describe.

  2. #2
    Join Date
    Dec 2008
    Location
    Earth
    Posts
    339
    Downloads
    0
    Uploads
    0
    Thanks
    0
    Thanked 1 Time in 1 Post
    Potenza rep
    2
    I can feel your frustrations here.
    Back on my Yu-Gi-Oh! GX project. I was in the same position.
    Sadly, I never came to a good conclusion back then.

    But I have an idea that might help you.
    First copy the pointer you are going to use somewhere into unused nonDMA space.
    Now create a Pointer next to it that point to the same unused Area

    Edit:
    ... just remebered that this wasn't possible because the pointer copy did work with offsets...
    I must be really really tired to forget that one.

    The only other solution I have is probably to difficult.
    You would have to write a little asm snippet and somehow inject it in the game.
    And that's gonna be tough.

    Well I could help you on the ASM part.
    But this still wouldn't help you to get it executed.
    Ultima modifica di 4m8IoN : 24th July 2009 alle 09:00 Motivo: made a huge mistake...

  3. #3
    Join Date
    Nov 2006
    Posts
    7
    Downloads
    0
    Uploads
    0
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Potenza rep
    0
    Hey thanks for the advice 4m8IoN. You and your fans do good work in that monster hunter thread. You're a big star!

    Glad to at least know that I'm not alone with this issue. I think the easiest way to fix this is to get weltall to add a code type to do this. That would benefit many I think. He seems to have added various code types to enhance cw over time. Perhaps he plans to add such new test codes. I chat with him couple times way back (years ago). He used to hang in an irc chan with the Lan.st folks. But he don't seem to be active on cw anymore, unless I don't see him. Do you or anyone else maybe know where he may be so I can grab his ear for a second.

    I sure would like to learn some assembly and try to write a sub in the meanwhile as I put off that part of my cheat training for far too long. I'm more of the learn by doing sort of type rather than the read up on the subject matter type. I understand the learning curve is extremely steep. If you have some simple tuts for psp you can point me to preferable a small example maybe I can spin my wheels on that until we hear something from weltall. And no I don't consider that HPD a simple place to start

  4. #4
    Join Date
    Dec 2008
    Location
    Earth
    Posts
    339
    Downloads
    0
    Uploads
    0
    Thanks
    0
    Thanked 1 Time in 1 Post
    Potenza rep
    2
    Nah, I'm not a star
    The people who took my advices and learned from them are the real stars of the thread.
    I don't even want to think about how many codes I would have needed to
    convert/create if they weren't around.
    Especially albertoink seems to be on fire lately

    I wouldn't get your hopes up with the code type change.
    afaik weltall hasn't logged in here for a looo00ooong time.
    And even if he returns I doubt he will add a new CT.
    I'd say that throwing out pointercopy and maybe the 'blockercode'
    would make enough room for an execute ASM@ code.
    But then again how many are really willing to learn assembler.

    He might still hang around in the ps2dev.org forum.
    But I really doubt you're going to get a hold of him
    Anyways, good luck

    Back to Assembler:
    Learning it by doing is certainly not easy.
    You need to understand the basics of this low level programming language.
    And this is not something the average user can pick up with the
    'learning by doing' method. Without reading and reading and reading
    you probably won't be able to grasp the concept. :whistling
    I learned it on emulators for old microprocessors.
    (But that has nothing to do with PSPasm)

    to see it in action the HPD is probably a bit too big to understand
    it just by looking at it with the CWCheat disassm view.
    WISH might be the better choice. (It has only 3 very similar small parts)
    It's not that hard to understand especially if you have the game
    and can see what it does if it gets executed (create a list below it)

    If you have researched it enough you can also try to
    extend it with something else and see if you can create a snippet that does what you want.
    Code:
    lui $v0, 0x9FF              v0=09FF0000
    ori $v0, $v0, 0xABC0        v0=09FFABC0  (load adress to pointer into v0)
    nop
    lw $a1, 0($v0)              a1=????????  (load the pointer into a1)
    nop
    lh $t1, 10($a1)             t1=????      (load 16bit value @ a1+10 into t1)
    slti $a2, $t1, 0x7          a2=??        (0 if t1 greater than 6 else 1)
    beqz $a2, [+4]              if a2==0 skip next 3 lines
    nop
    li $a2, 0x63                a2=63        (load new value into a2)
    sh $a2, 10($a1)             write 16bit value from a2 @ a1+10
    j [exit]                    goto (whatever)
    nop
    Something like this is probably what you are looking for.
    (Let's hope I didn't make a mistake here):roll::

  5. #5
    Join Date
    Aug 2006
    Posts
    346
    Downloads
    0
    Uploads
    0
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Potenza rep
    4
    Nice codecave. I need to learn me some mips so I can start writing my own...

+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158