Don't forget you can hook other things, too.
Like, say, the constant routine that always executes.
;Constant hook
80327650
J 80400010
LUI K0, $8036
;AT and K1 are free
80400010
ADDIU K0, K0, $72B0
SD AT, $0020 (K0)
;Inject code here
;Code
;End Inject
;If K0 needs to be free
LUI K0, $8036
J 8032765C
ADDIU K0, K0, $72B0
Not sure what that looks like in the ROM.
The two codes I wrote in C++ for Mischief Makers were hooked a similar way. They had all the code they needed to be inserted at the constant execution level encapsulated within, and hooking from those kinds of areas gives you more freedom with the game.
What I've been doing is getting .cpp files set up after I find a good chunk of data, and following the template I showed you.
Then I find a place to hook that always executes and use an ASM template I made, along with a text editor that supports regular expression find and replace operations to quickly insert code compiled from C++ into the "code shell" the file has.
Then I do some literal find and replace operations to fill out the parameters for the template, copy the WHOLE FILE into Renegade and bam, assemble it into a working code, no problems (assuming my code was coded correctly).
The template can be found here.
Thanks for confirming that hacking a game's assembly doesn't always have to be done with assembly. Maybe more people will try my method now, instead of being so skeptical...
Edit: Maybe have your ASM pooled in some place such that a single hacked behavioral command can load it all at once into free RAM area, and from then on you will already know where to put new code you write. That ought to make the production cycle insanely fast.
____________________

|