Hello! fellow game hacker fanatics i'm in desperate need of some help and clarification here, regarding when to nop an branch instruction in asm because I recently found two new codes by an accident in asm in the debugger, when I was playing Street Fighter Ex2 Plus I found the first hack, by placing a write breakpoint on the round status ram modifier in the game, I then traced a bit backwards in the debugger until i came across an beq branch so I placed a breakpoint on it, then nopped the branch instruction, and noticed that before the match I could the match without any countdown before the fight, pretty cool but the code was accidentally found I have no idea what I done at the time of the hack?
The question is how do you know when an asm code has a branch routine involved in it, because I would really appreciate if someone could give me an an example of when to nop a branch instruction in the debugger when trying to hack and find certain asm codes using it.
Another code I found in the game is an asm code that allows player 1 to always win a fight, when playing as player 2.
I found the code by placing a breakpoint on the player 2's wins a match ram modifier code, I then traced backwards in the debugger, and placed a breakpoint on an beq branch, after I got the break I then nopped the branch instruction, which then allowed player 1 to always win a match, regardless if player 2 won the match or not.
I found these two asm codes without very little knowledge on branches in MIPS, but I found that I always have to guess when I'm suppose to nop a branch instruction when trying to create a new asm code in the game, could someone who's experienced in making branch codes explain to me exactly why certain codes in asm require nopping of the branch instruction, because I'm clueless on knowing why programmers do this?
The question is how do you know when an asm code has a branch routine involved in it, because I would really appreciate if someone could give me an an example of when to nop a branch instruction in the debugger when trying to hack and find certain asm codes using it.
Another code I found in the game is an asm code that allows player 1 to always win a fight, when playing as player 2.
I found the code by placing a breakpoint on the player 2's wins a match ram modifier code, I then traced backwards in the debugger, and placed a breakpoint on an beq branch, after I got the break I then nopped the branch instruction, which then allowed player 1 to always win a match, regardless if player 2 won the match or not.
I found these two asm codes without very little knowledge on branches in MIPS, but I found that I always have to guess when I'm suppose to nop a branch instruction when trying to create a new asm code in the game, could someone who's experienced in making branch codes explain to me exactly why certain codes in asm require nopping of the branch instruction, because I'm clueless on knowing why programmers do this?

Comment