Multiselection of options using ASM?

Started by Bully@Wiiplaza, June 23, 2011, 12:01:08 PM

Previous topic - Next topic

Bully@Wiiplaza

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.
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

Patedj

could you add a couple registers to create a cmpw which then places them in the next address?
You can pm me, I've got time for your troubles.

Bully@Wiiplaza

#2
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.
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

dcx2

I don't think I understand your question.  How about a screenshot that demonstrates what you want to do?

Bully@Wiiplaza

#4
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".
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully