Only using Celia’s health address ending in 0x4 as a check. (Buggy) Some enemies also end in 0x4.
285F036A 00001000 #Control line activator. Press (-)
F6000001 80E080FF #Example unique string takes up 1 row/line. Search from 0x80E00000 thru 0x80FF0000
907D0014 887D0020 #Example unique string to look for
D2000000 00000004 #Insert ASM at pointer (zero offset); D2 = Codetype for Pointer ASM
39800004 73AC000F #ASM code: li r12, 0x0; andI. r12, r29, 0X000F
2C0C0004 40820008 #ASM code: cmpwi r12, 0x0; Bne- default_instruction
386000C8 907D0014 #ASM code: li r3, 0xC8; default_instruction: stw r3, 0x0014 (r29)
60000000 00000000 #End of ASM code
E0000000 80008000 #End if (final terminator)
I went in and checked out the health values of the three different enemies I've encountered so far, and found that none of them
shared the same value for health (0xC8), as Celia.
So:
Only using Celia’s health value (0xC8) as a check. (Buggy maybe?)
285F036A 00001000 #Control line activator. Press (-)
F6000001 80E080FF #Example unique string takes up 1 row/line. Search from 0x80E00000 thru 0x80FF0000
907D0014 887D0020 #Example unique string to look for
D2000000 00000003 #Insert ASM at pointer (zero offset); D2 = Codetype for Pointer ASM
819D0014 2C0C00C8 #ASM code: lwz r12, 0x0014 (r29); cmpwi r12, 0x00c8
40820008 386000C8 #ASM code: Bne- default_instruction; li r3, 0x00c8
907D0014 00000000 #ASM code: default_instruction: stw r3, 0x0014 (r29)
E0000000 80008000 #End if (final terminator)
Or, use both the address check and health value check for redundancy:
Using both Celia’s health address ending in 0x4 and health value 0xc8 as a check
285F036A 00001000 #Control line activator. Press (-)
F6000001 80E080FF #Example unique string takes up 1 row/line. Search from 0x80E00000 thru 0x80FF0000
907D0014 887D0020 #Example unique string to look for
D2000000 00000005 #Insert ASM at pointer (zero offset); D2 = Codetype for Pointer ASM
819d0014 2c0c00c8 #ASM code: lwz r12, 0x0014 (r29); cmpwi r12, 0x00c8
41820004 39800000 #ASM Beq celia_health; celia_health: li r12, 0x0
73AC000F 2C0C0000 #ASM code: andi. r12, r29, 0XF; cmpwi r12, 0x0
40820008 386000C8 #ASM code: Bne- default_instruction; li r3, 0xc8
907D0014 00000000 #ASM default_instruction: stw r3, 0x0014 (r29)
E0000000 80008000 #End if (final terminator)
I'm interested in how you would have written the branch commands.
In regards to adding the shortcut + or - to the branch command, what made you determine to use the Bne- as apposed to Bne or Bne+?
Will it work regardless of whether you add the + or -?
Also, can you use multiple "branch_label" for one "branch_label:"?
In other words, simplified:
bne some_label
ASM code
beq some_label
ASM code
ble some_lable
ASM code
some_label:
ASM code
No, I did not pursue the Link Register thing.
I briefly read up on the IABR thing. But:
Too many hands on my time ~ Rush
Thanks for all your help!!!
285F036A 00001000 #Control line activator. Press (-)
F6000001 80E080FF #Example unique string takes up 1 row/line. Search from 0x80E00000 thru 0x80FF0000
907D0014 887D0020 #Example unique string to look for
D2000000 00000004 #Insert ASM at pointer (zero offset); D2 = Codetype for Pointer ASM
39800004 73AC000F #ASM code: li r12, 0x0; andI. r12, r29, 0X000F
2C0C0004 40820008 #ASM code: cmpwi r12, 0x0; Bne- default_instruction
386000C8 907D0014 #ASM code: li r3, 0xC8; default_instruction: stw r3, 0x0014 (r29)
60000000 00000000 #End of ASM code
E0000000 80008000 #End if (final terminator)
I went in and checked out the health values of the three different enemies I've encountered so far, and found that none of them
shared the same value for health (0xC8), as Celia.
So:
Only using Celia’s health value (0xC8) as a check. (Buggy maybe?)
285F036A 00001000 #Control line activator. Press (-)
F6000001 80E080FF #Example unique string takes up 1 row/line. Search from 0x80E00000 thru 0x80FF0000
907D0014 887D0020 #Example unique string to look for
D2000000 00000003 #Insert ASM at pointer (zero offset); D2 = Codetype for Pointer ASM
819D0014 2C0C00C8 #ASM code: lwz r12, 0x0014 (r29); cmpwi r12, 0x00c8
40820008 386000C8 #ASM code: Bne- default_instruction; li r3, 0x00c8
907D0014 00000000 #ASM code: default_instruction: stw r3, 0x0014 (r29)
E0000000 80008000 #End if (final terminator)
Or, use both the address check and health value check for redundancy:
Using both Celia’s health address ending in 0x4 and health value 0xc8 as a check
285F036A 00001000 #Control line activator. Press (-)
F6000001 80E080FF #Example unique string takes up 1 row/line. Search from 0x80E00000 thru 0x80FF0000
907D0014 887D0020 #Example unique string to look for
D2000000 00000005 #Insert ASM at pointer (zero offset); D2 = Codetype for Pointer ASM
819d0014 2c0c00c8 #ASM code: lwz r12, 0x0014 (r29); cmpwi r12, 0x00c8
41820004 39800000 #ASM Beq celia_health; celia_health: li r12, 0x0
73AC000F 2C0C0000 #ASM code: andi. r12, r29, 0XF; cmpwi r12, 0x0
40820008 386000C8 #ASM code: Bne- default_instruction; li r3, 0xc8
907D0014 00000000 #ASM default_instruction: stw r3, 0x0014 (r29)
E0000000 80008000 #End if (final terminator)
I'm interested in how you would have written the branch commands.
In regards to adding the shortcut + or - to the branch command, what made you determine to use the Bne- as apposed to Bne or Bne+?
Will it work regardless of whether you add the + or -?
Also, can you use multiple "branch_label" for one "branch_label:"?
In other words, simplified:
bne some_label
ASM code
beq some_label
ASM code
ble some_lable
ASM code
some_label:
ASM code
No, I did not pursue the Link Register thing.
I briefly read up on the IABR thing. But:
Too many hands on my time ~ Rush
Thanks for all your help!!!