I was attempting to create a code that allows us to select multiple options instead of one.
It´s possible to allow 2, but that requires a specific item. However, using "poke" you can select up to 3 options at the same time and the game allows you to use it (without the item). So I´m wondering, how I could generally allow to do this using ASM (that the field doesn´t grey out after 1 was selected)
The 32bit address can contain about 3 selected icons, but the game doesn´t allow us to do this normally.
Registers BP Write (Selection of an option) #1
[spoiler]CR:44200488 XER:00000000 CTR:00000008 DSIS:02400000
DAR:933C0909 SRR0:806BF8A0 SRR1:0000B032 LR:806BEB08
r0:00000020 r1:8024BC08 r2:802459C0 r3:933C0909
r4:00000000 r5:00000008 r6:00000001 r7:00000001
r8:000003C9 r9:00000005 r10:00000000 r11:8024BC68
r12:00000000 r13:80244680 r14:80A17388 r15:00000000
r16:00000000 r17:00000001 r18:00067256 r19:10000800
r20:80890000 r21:808DAC08 r22:00000005 r23:00000000
r24:0000000B r25:808D95E8 r26:00000000 r27:80AE2F98
r28:933C0540 r29:00001D0D r30:00000008 r31:00000001
f0:46FA0000 f1:59800000 f2:2ACFF798 f3:BE4AB3FF
f4:3F317217 f5:3835758F f6:3ECCCCCC f7:3E638E28
f8:37FA0FE2 f9:BF800000 f10:59800004 f11:3C6496FD
f12:394C1D4C f13:00000000 f14:00000000 f15:00000000
f16:00000000 f17:00000000 f18:00000000 f19:00000000
f20:00000000 f21:00000000 f22:00000000 f23:00000000
f24:00000000 f25:00000000 f26:00000000 f27:477FFF00
f28:43A00000 f29:43700000 f30:00000000 f31:80000000[/spoiler]
Registers BP Write (Selection of an option) #2
[spoiler]CR:24200488 XER:00000000 CTR:00000007 DSIS:02400000
DAR:933C0909 SRR0:806BF8BC SRR1:00009032 LR:806BEB08
r0:00000020 r1:8024BC08 r2:802459C0 r3:933C0909
r4:00000020 r5:00000008 r6:00000001 r7:00000001
r8:000003C9 r9:00000006 r10:00000001 r11:8024BC68
r12:00000000 r13:80244680 r14:80A17388 r15:00000000
r16:00000000 r17:00000001 r18:00073AA6 r19:10000800
r20:80890000 r21:808DAC08 r22:00000005 r23:00000000
r24:0000000B r25:808D95E8 r26:00000000 r27:80AE2F98
r28:933C0540 r29:00001D0D r30:00000008 r31:00000001
f0:46FA0000 f1:59800000 f2:2ACFF798 f3:BE4AB3FF
f4:3F317217 f5:3835758F f6:3ECCCCCC f7:3E638E28
f8:37FA0FE2 f9:BF800000 f10:59800004 f11:3C6496FD
f12:394C1D4C f13:00000000 f14:00000000 f15:00000000
f16:00000000 f17:00000000 f18:00000000 f19:00000000
f20:00000000 f21:00000000 f22:00000000 f23:00000000
f24:00000000 f25:00000000 f26:00000000 f27:477FFF00
f28:43A00000 f29:43700000 f30:00000000 f31:80000000[/spoiler]
Disassembly Write on option selection
[spoiler]806BF824: 9421FFF0 stwu r1,-16(r1)
806BF828: 7C0802A6 mflr r0
806BF82C: 90010014 stw r0,20(r1)
806BF830: 34840140 addic. r4,r4,320
806BF834: 4080001C bge- 0x806bf850
806BF838: 3C608094 lis r3,-32620
806BF83C: 3863F0A0 subi r3,r3,3936
806BF840: 4CC63182 crclr 6,6
806BF844: 4BFFE659 bl 0x806bde9c
806BF848: 38600000 li r3,0
806BF84C: 48000094 b 0x806bf8e0
806BF850: 7C801E70 srawi r0,r4,3
806BF854: 7D000194 addze r8,r0
806BF858: 5480E804 rlwinm r0,r4,29,0,2
806BF85C: 54840FFE rlwinm r4,r4,1,31,31
806BF860: 7C040050 sub r0,r0,r4
806BF864: 5400183E rlwinm r0,r0,3,0,31
806BF868: 7D202214 add r9,r0,r4
806BF86C: 39400000 li r10,0
806BF870: 38E00001 li r7,1
806BF874: 7C634214 add r3,r3,r8
806BF878: 7CA903A6 mtctr r5
806BF87C: 2C050000 cmpwi r5,0
806BF880: 4081005C ble- 0x806bf8dc
806BF884: 7CE05030 slw r0,r7,r10
806BF888: 7CC00039 and. r0,r6,r0
806BF88C: 4182001C beq- 0x806bf8a8
806BF890: 88830000 lbz r4,0(r3)
806BF894: 7CE04830 slw r0,r7,r9
806BF898: 5400063E rlwinm r0,r0,0,24,31
806BF89C: 7C800378 or r0,r4,r0
806BF8A0: 98030000 stb r0,0(r3) # select only
806BF8A4: 4800001C b 0x806bf8c0
806BF8A8: 88830000 lbz r4,0(r3)
806BF8AC: 7CE04830 slw r0,r7,r9
806BF8B0: 7C0000F8 not r0,r0
806BF8B4: 5400063E rlwinm r0,r0,0,24,31
806BF8B8: 7C800038 and r0,r4,r0
806BF8BC: 98030000 stb r0,0(r3) #select & deselect
806BF8C0: 39290001 addi r9,r9,1
806BF8C4: 2C090008 cmpwi r9,8
806BF8C8: 4082000C bne- 0x806bf8d4
806BF8CC: 39200000 li r9,0
806BF8D0: 38630001 addi r3,r3,1
806BF8D4: 394A0001 addi r10,r10,1
806BF8D8: 4200FFAC bdnz+ 0x806bf884
806BF8DC: 38600001 li r3,1
806BF8E0: 80010014 lwz r0,20(r1)
806BF8E4: 7C0803A6 mtlr r0
806BF8E8: 38210010 addi r1,r1,16
806BF8EC: 4E800020 blr [/spoiler]
Registers BP Read #1
[spoiler] CR:44200488 XER:20000000 CTR:00000000 DSIS:00400000
DAR:933C0908 SRR0:806BF6AC SRR1:0000B032 LR:806BF158
r0:00000001 r1:8024BB38 r2:802459C0 r3:933C0540
r4:000003C8 r5:00000008 r6:8024BB50 r7:00000003
r8:00000007 r9:00000000 r10:00000005 r11:00000000
r12:00000000 r13:80244680 r14:00000000 r15:00000000
r16:00000000 r17:00000000 r18:926105A0 r19:00000001
r20:81307A64 r21:81300834 r22:0000000F r23:00000000
r24:00000000 r25:00000000 r26:00000000 r27:00000001
r28:0000000B r29:00000000 r30:8024BB80 r31:905F0588
f0:FFC00000 f1:42640000 f2:C2B70000 f3:434D0000
f4:41880000 f5:00000000 f6:00000000 f7:3F800000
f8:3F800000 f9:00000000 f10:59800004 f11:3C601DFA
f12:39443479 f13:00000000 f14:00000000 f15:00000000
f16:00000000 f17:00000000 f18:00000000 f19:00000000
f20:00000000 f21:00000000 f22:00000000 f23:432D0000
f24:C2B70000 f25:C387B525 f26:59800004 f27:40800000
f28:434D0000 f29:C3796A4A f30:C2B70000 f31:42640000[/spoiler]
Registers BP Read #2
[spoiler] CR:44200488 XER:00000000 CTR:00000000 DSIS:00400000
DAR:933C0909 SRR0:806BF7FC SRR1:00009032 LR:806BF158
r0:00000001 r1:8024BB38 r2:802459C0 r3:933C0540
r4:000003C9 r5:0000001F r6:8024BB50 r7:00000003
r8:00000000 r9:933C0909 r10:00000005 r11:00000000
r12:00000000 r13:80244680 r14:00000000 r15:00000000
r16:00000000 r17:00000000 r18:926105A0 r19:00000001
r20:81307A64 r21:81300834 r22:0000000F r23:00000000
r24:00000000 r25:00000000 r26:00000000 r27:00000001
r28:0000000B r29:00000000 r30:8024BB80 r31:905F0588
f0:FFC00000 f1:42640000 f2:C2B70000 f3:434D0000
f4:41880000 f5:00000000 f6:00000000 f7:3F800000
f8:3F800000 f9:00000000 f10:59800004 f11:3C601DFA
f12:39443479 f13:00000000 f14:00000000 f15:00000000
f16:00000000 f17:00000000 f18:00000000 f19:00000000
f20:00000000 f21:00000000 f22:00000000 f23:432D0000
f24:C2B70000 f25:C387B525 f26:59800004 f27:40800000
f28:434D0000 f29:C3796A4A f30:C2B70000 f31:42640000[/spoiler]
Disassembly Read on Option Address
[spoiler]806BF618: 38A00028 li r5,40
806BF61C: 4B9449E4 b 0x80004000
806BF620: 7C601B78 mr r0,r3
806BF624: 7C832378 mr r3,r4
806BF628: 7C040378 mr r4,r0
806BF62C: 38A00028 li r5,40
806BF630: 4B9449D0 b 0x80004000
806BF634: 9421FFF0 stwu r1,-16(r1)
806BF638: 7C0802A6 mflr r0
806BF63C: 90010014 stw r0,20(r1)
806BF640: 34E40140 addic. r7,r4,320
806BF644: 4080001C bge- 0x806bf660
806BF648: 3C608094 lis r3,-32620
806BF64C: 3863F0A0 subi r3,r3,3936
806BF650: 4CC63182 crclr 6,6
806BF654: 4BFFE849 bl 0x806bde9c
806BF658: 38600000 li r3,0
806BF65C: 480001B8 b 0x806bf814
806BF660: 7CE01E70 srawi r0,r7,3
806BF664: 7C800194 addze r4,r0
806BF668: 54E0E804 rlwinm r0,r7,29,0,2
806BF66C: 54E70FFE rlwinm r7,r7,1,31,31
806BF670: 7C070050 sub r0,r0,r7
806BF674: 5400183E rlwinm r0,r0,3,0,31
806BF678: 7D403A15 add. r10,r0,r7
806BF67C: 38E00000 li r7,0
806BF680: 90E60000 stw r7,0(r6)
806BF684: 41820044 beq- 0x806bf6c8
806BF688: 200A0008 subfic r0,r10,8
806BF68C: 7C050000 cmpw r5,r0
806BF690: 7CA72B78 mr r7,r5
806BF694: 41800008 blt- 0x806bf69c
806BF698: 7C070378 mr r7,r0
806BF69C: 81260000 lwz r9,0(r6)
806BF6A0: 38000001 li r0,1
806BF6A4: 7C083830 slw r8,r0,r7
806BF6A8: 3908FFFF subi r8,r8,1
806BF6AC: 7C0320AE lbzx r0,r3,r4
806BF6B0: 7C005630 sraw r0,r0,r10
806BF6B4: 7D000038 and r0,r8,r0
806BF6B8: 7D200378 or r0,r9,r0
806BF6BC: 90060000 stw r0,0(r6)
806BF6C0: 7CA72850 sub r5,r5,r7
806BF6C4: 38840001 addi r4,r4,1
806BF6C8: 54A0E804 rlwinm r0,r5,29,0,2
806BF6CC: 54A80FFE rlwinm r8,r5,1,31,31
806BF6D0: 7C080050 sub r0,r0,r8
806BF6D4: 5400183E rlwinm r0,r0,3,0,31
806BF6D8: 7D404214 add r10,r0,r8
806BF6DC: 7CAA2850 sub r5,r5,r10
806BF6E0: 7D232214 add r9,r3,r4
806BF6E4: 39050007 addi r8,r5,7
806BF6E8: 7D074050 sub r8,r8,r7
806BF6EC: 5508E8FE rlwinm r8,r8,29,3,31
806BF6F0: 7C072800 cmpw r7,r5
806BF6F4: 408000F0 bge- 0x806bf7e4
806BF6F8: 5500E8FF rlwinm. r0,r8,29,3,31
806BF6FC: 7C0903A6 mtctr r0
806BF700: 418200BC beq- 0x806bf7bc
806BF704: 80060000 lwz r0,0(r6)
806BF708: 88A90000 lbz r5,0(r9)
806BF70C: 7CA53830 slw r5,r5,r7
806BF710: 7C002B78 or r0,r0,r5
806BF714: 90060000 stw r0,0(r6)
806BF718: 88A90001 lbz r5,1(r9)
806BF71C: 38E70008 addi r7,r7,8
806BF720: 7CA53830 slw r5,r5,r7
806BF724: 7C002B78 or r0,r0,r5
806BF728: 90060000 stw r0,0(r6)
806BF72C: 88A90002 lbz r5,2(r9)
806BF730: 38E70008 addi r7,r7,8
806BF734: 7CA53830 slw r5,r5,r7
806BF738: 7C002B78 or r0,r0,r5
806BF73C: 90060000 stw r0,0(r6)
806BF740: 88A90003 lbz r5,3(r9)
806BF744: 38E70008 addi r7,r7,8
806BF748: 7CA53830 slw r5,r5,r7
806BF74C: 7C002B78 or r0,r0,r5
806BF750: 90060000 stw r0,0(r6)
806BF754: 88A90004 lbz r5,4(r9)
806BF758: 38E70008 addi r7,r7,8
806BF75C: 7CA53830 slw r5,r5,r7
806BF760: 7C002B78 or r0,r0,r5
806BF764: 90060000 stw r0,0(r6)
806BF768: 88A90005 lbz r5,5(r9)
806BF76C: 38E70008 addi r7,r7,8
806BF770: 7CA53830 slw r5,r5,r7
806BF774: 7C002B78 or r0,r0,r5
806BF778: 90060000 stw r0,0(r6)
806BF77C: 88A90006 lbz r5,6(r9)
806BF780: 38E70008 addi r7,r7,8
806BF784: 7CA53830 slw r5,r5,r7
806BF788: 7C002B78 or r0,r0,r5
806BF78C: 90060000 stw r0,0(r6)
806BF790: 88A90007 lbz r5,7(r9)
806BF794: 38E70008 addi r7,r7,8
806BF798: 7CA53830 slw r5,r5,r7
806BF79C: 7C002B78 or r0,r0,r5
806BF7A0: 90060000 stw r0,0(r6)
806BF7A4: 38840008 addi r4,r4,8
806BF7A8: 39290008 addi r9,r9,8
806BF7AC: 38E70008 addi r7,r7,8
806BF7B0: 4200FF54 bdnz+ 0x806bf704
806BF7B4: 71080007 andi. r8,r8,7
806BF7B8: 4182002C beq- 0x806bf7e4
806BF7BC: 7D0903A6 mtctr r8
806BF7C0: 80060000 lwz r0,0(r6)
806BF7C4: 88A90000 lbz r5,0(r9)
806BF7C8: 7CA53830 slw r5,r5,r7
806BF7CC: 7C002B78 or r0,r0,r5
806BF7D0: 90060000 stw r0,0(r6)
806BF7D4: 38840001 addi r4,r4,1
806BF7D8: 39290001 addi r9,r9,1
806BF7DC: 38E70008 addi r7,r7,8
806BF7E0: 4200FFE0 bdnz+ 0x806bf7c0
806BF7E4: 2C0A0000 cmpwi r10,0
806BF7E8: 41820028 beq- 0x806bf810
806BF7EC: 81060000 lwz r8,0(r6)
806BF7F0: 38000001 li r0,1
806BF7F4: 7C055030 slw r5,r0,r10
806BF7F8: 38A5FFFF subi r5,r5,1
806BF7FC: 7C0320AE lbzx r0,r3,r4
806BF800: 7CA00038 and r0,r5,r0
806BF804: 7C003830 slw r0,r0,r7
806BF808: 7D000378 or r0,r8,r0
806BF80C: 90060000 stw r0,0(r6)
806BF810: 38600001 li r3,1
806BF814: 80010014 lwz r0,20(r1)
806BF818: 7C0803A6 mtlr r0
806BF81C: 38210010 addi r1,r1,16
806BF820: 4E800020 blr
[/spoiler]
How could I approach to this?
I messed around and all I got is that I couldn´t select any options in the game anymore as long as the code isn´t disabled.
could you add a couple registers to create a cmpw which then places them in the next address?
Quote from: Patedj on June 23, 2011, 01:09:30 PM
could you add a couple registers to create a cmpw which then places them in the next address?
no I thought about a branch modification... or a code that just allows you to select the stuff you want without being determined with xx values.
I don't think I understand your question. How about a screenshot that demonstrates what you want to do?
there, if I select one option the others grey out.
BUT if I poke the values from the other options, multiple ones can be selected (not all of them use the same memory byte in the RAM that´s why I can poke up to three ticks).
I want to find a way to completely enable "multi ticks".