If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Yu-Gi-Oh! Worldwide Edition: Stairway to the Destined Duel/ROM map
Jump to navigation
Jump to search
The following article is a ROM map for Yu-Gi-Oh! Worldwide Edition: Stairway to the Destined Duel.
0x884 (prepare duel data ?)
08000884 0105 lsl r5,r0,4h ; 08000886 0000 lsl r0,r0,0h ; 08000888 0307 lsl r7,r0,0Ch ; 0800088A 0000 lsl r0,r0,0h ; 0800088C B5F0 push r4-r7,r14 ; 0800088E 4657 mov r7,r10 ; 08000890 464E mov r6,r9 ; 08000892 4645 mov r5,r8 ; 08000894 B4E0 push r5-r7 ; 08000896 4849 ldr r0,=5000200h ; 08000898 4949 ldr r1,=8385104h ; 0800089A 468A mov r10,r1 ; 0800089C 2220 mov r2,20h ; 0800089E F088F9F7 bl 8088C90h ; 080008A2 2020 mov r0,20h ; 080008A4 2110 mov r1,10h ; 080008A6 F087FD0F bl 80882C8h ; 080008AA 4846 ldr r0,=0C0Fh ; 080008AC 4681 mov r9,r0 ; 080008AE 4C46 ldr r4,=8372FBAh ;r4 = pointer_to_in_game_text 080008B0 2009 mov r0,9h ; 080008B2 2109 mov r1,9h ; 080008B4 464A mov r2,r9 ; 080008B6 1C23 mov r3,r4 ; 080008B8 F087FFA4 bl 8088804h ; 080008BC 4943 ldr r1,=0C07h ; 080008BE 4688 mov r8,r1 ; 080008C0 2008 mov r0,8h ; 080008C2 2108 mov r1,8h ; 080008C4 4642 mov r2,r8 ; 080008C6 1C23 mov r3,r4 ; 080008C8 F087FF9C bl 8088804h ; 080008CC 4E40 ldr r6,=0C01h ; 080008CE 2073 mov r0,73h ; 080008D0 210B mov r1,0Bh ; 080008D2 1C32 mov r2,r6 ; 080008D4 1C23 mov r3,r4 ; 080008D6 F087FF95 bl 8088804h ; 080008DA 4D3E ldr r5,=0C0Dh ; 080008DC 2072 mov r0,72h ; 080008DE 210A mov r1,0Ah ; 080008E0 1C2A mov r2,r5 ; 080008E2 1C23 mov r3,r4 ; 080008E4 F087FF8E bl 8088804h ; 080008E8 340A add r4,0Ah ; 080008EA 2001 mov r0,1h ; 080008EC 2129 mov r1,29h ; 080008EE 464A mov r2,r9 ; 080008F0 1C23 mov r3,r4 ; 080008F2 F087FF87 bl 8088804h ; 080008F6 2000 mov r0,0h ; 080008F8 2128 mov r1,28h ; 080008FA 4642 mov r2,r8 ; 080008FC 1C23 mov r3,r4 ; 080008FE F087FF81 bl 8088804h ; 08000902 2069 mov r0,69h ; 08000904 212B mov r1,2Bh ; 08000906 1C32 mov r2,r6 ; 08000908 1C23 mov r3,r4 ; 0800090A F087FF7B bl 8088804h ; 0800090E 2068 mov r0,68h ; 08000910 212A mov r1,2Ah ; 08000912 1C2A mov r2,r5 ; 08000914 1C23 mov r3,r4 ; 08000916 F087FF75 bl 8088804h ; 0800091A 482F ldr r0,=6014000h ; 0800091C 2100 mov r1,0h ; 0800091E F088F89B bl 8088A58h ; 08000922 24A0 mov r4,0A0h ; 08000924 04E4 lsl r4,r4,13h ; 08000926 1C20 mov r0,r4 ; 08000928 4651 mov r1,r10 ; 0800092A 2220 mov r2,20h ; 0800092C F088F9A2 bl 8088C74h ; 08000930 2000 mov r0,0h ; 08000932 8020 strh r0,[r4] ; 08000934 4B29 ldr r3,=8A9E708h ; 08000936 2000 mov r0,0h ; 08000938 2110 mov r1,10h ; 0800093A 2220 mov r2,20h ; 0800093C F085FBF2 bl 8086124h ; 08000940 2080 mov r0,80h ; 08000942 00C0 lsl r0,r0,3h ; 08000944 4B26 ldr r3,=8A9F8DCh ; 08000946 2120 mov r1,20h ; 08000948 22A0 mov r2,0A0h ; 0800094A F085FBEB bl 8086124h ; 0800094E 2480 mov r4,80h ; 08000950 0124 lsl r4,r4,4h ; 08000952 2294 mov r2,94h ; 08000954 0052 lsl r2,r2,1h ; 08000956 4B23 ldr r3,=8AA0BECh ; 08000958 1C20 mov r0,r4 ; 0800095A 2130 mov r1,30h ; 0800095C F085FBE2 bl 8086124h ; 08000960 22AE mov r2,0AEh ; 08000962 0052 lsl r2,r2,1h ; 08000964 4B20 ldr r3,=8AA1214h ; 08000966 1C20 mov r0,r4 ; 08000968 2140 mov r1,40h ; 0800096A F085FBDB bl 8086124h ; 0800096E 2400 mov r4,0h ; 08000970 271F mov r7,1Fh ; 08000972 26F8 mov r6,0F8h ; 08000974 00B6 lsl r6,r6,2h ; 08000976 25F8 mov r5,0F8h ; 08000978 01ED lsl r5,r5,7h ; 0800097A 0063 lsl r3,r4,1h ; 0800097C 481B ldr r0,=5000180h ; 0800097E 181B add r3,r3,r0 ; 08000980 8819 ldrh r1,[r3] ; 08000982 221F mov r2,1Fh ; 08000984 400A and r2,r1 ; 08000986 1C08 mov r0,r1 ; 08000988 4030 and r0,r6 ; 0800098A 4029 and r1,r5 ; 0800098C 0852 lsr r2,r2,1h ; 0800098E 403A and r2,r7 ; 08000990 0840 lsr r0,r0,1h ; 08000992 4030 and r0,r6 ; 08000994 0849 lsr r1,r1,1h ; 08000996 4029 and r1,r5 ; 08000998 4302 orr r2,r0 ; 0800099A 4311 orr r1,r2 ; 0800099C 8019 strh r1,[r3] ; 0800099E 3401 add r4,1h ; 080009A0 2C0F cmp r4,0Fh ; 080009A2 DDEA ble 800097Ah ; 080009A4 4812 ldr r0,=3004876h ; 080009A6 4913 ldr r1,=8228570h ; 080009A8 2220 mov r2,20h ; 080009AA F088F963 bl 8088C74h ; 080009AE BC38 pop r3-r5 ; 080009B0 4698 mov r8,r3 ; 080009B2 46A1 mov r9,r4 ; 080009B4 46AA mov r10,r5 ; 080009B6 BCF0 pop r4-r7 ; 080009B8 BC01 pop r0 ; 080009BA 4700 bx r0 ;
Cards stats
Display card ATK
0800FC50 B570 push r4-r6,r14 ; 0800FC52 0400 lsl r0,r0,10h ; 0800FC54 0C04 lsr r4,r0,10h ; 0800FC56 0409 lsl r1,r1,10h ; 0800FC58 0C0D lsr r5,r1,10h ; 0800FC5A 0412 lsl r2,r2,10h ; 0800FC5C 0C16 lsr r6,r2,10h ; 0800FC5E F7FFFFED bl 800FC3Ch ; 0800FC62 4809 ldr r0,=2013E00h ; 0800FC64 8044 strh r4,[r0,2h] ;r4 = card_id 0800FC66 4809 ldr r0,=7FFh ; 0800FC68 4020 and r0,r4 ; 0800FC6A 0080 lsl r0,r0,2h ;Ensures card_id < 2048 0800FC6C 4908 ldr r1,=8832B84h ; 0800FC6E 1840 add r0,r0,r1 ;r0 = 0x8832B84 + ((card_ID & 0x7FF) << 2) 0800FC70 6800 ldr r0,[r0] ;r0 = [compressed_card_data_array] 0800FC72 21F8 mov r1,0F8h ; 0800FC74 0449 lsl r1,r1,11h ; 0800FC76 4008 and r0,r1 ;r0 &= 0x1F00000 0800FC78 0D00 lsr r0,r0,14h ;r0 >> 20 0800FC7A 2815 cmp r0,15h ; 0800FC7C DB0F blt 800FC9Eh ;if (card_type < 0x15 [is a monster card]), branch to 0x800FC9E 0800FC7E 2817 cmp r0,17h ; 0800FC80 DD08 ble 800FC94h ;if (card_type ≤ 0x17 [is not a monster card]), branch to 0x800FC94 0800FC82 2818 cmp r0,18h ; 0800FC84 D008 beq 800FC98h ;if (card_type == DIVINE_BEAST), branch to 0x800FC98 0800FC86 E00A b 800FC9Eh ;else branch to 0x800FC9E (default for Monster cards) 0800FC88 3E00 sub r6,0h ; 0800FC8A 0201 lsl r1,r0,8h ; 0800FC8C 07FF lsl r7,r7,1Fh ; 0800FC8E 0000 lsl r0,r0,0h ; 0800FC90 2B84 cmp r3,84h ; 0800FC92 0883 lsr r3,r0,2h ; 0800FC94 2000 mov r0,0h ;if (card_type ≤ 0x17 [is not a monster card]), ATK = 0 0800FC96 E00D b 800FCB4h ;branch to 0x800FCB4 (store 0 into [0x2013E2C]) 0800FC98 20FA mov r0,0FAh ;if (card_type == DIVINE_BEAST) ... 0800FC9A 0100 lsl r0,r0,4h ;ATK = 4000 0800FC9C E00A b 800FCB4h ;branch to 0x800FCB4 (store 4000 into [0x2013E2C]) 0800FC9E 480F ldr r0,=7FFh ;if (card_type < 0x15 [is a monster card]) 0800FCA0 4020 and r0,r4 ;Ensures card_id < 2048 0800FCA2 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 0800FCA4 4B0E ldr r3,=8832B84h ; 0800FCA6 18C0 add r0,r0,r3 ;r0 = 0x8832B84 + ((0x7FF & card_ID) << 2) 0800FCA8 6801 ldr r1,[r0] ;r1 = [compressed_card_data_array] 0800FCAA 0389 lsl r1,r1,0Eh ; 0800FCAC 0DC9 lsr r1,r1,17h ; 0800FCAE 0088 lsl r0,r1,2h ; 0800FCB0 1840 add r0,r0,r1 ; 0800FCB2 0040 lsl r0,r0,1h ;r0 = DWORD(((r1 << 14 >> 23 << 2) + (r1 << 14 >> 23)) << 1) 0800FCB4 4A0B ldr r2,=2013E00h ; 0800FCB6 62D0 str r0,[r2,2Ch] ;Store card ATK into [0x02013E2C] 0800FCB8 4808 ldr r0,=7FFh ; 0800FCBA 4020 and r0,r4 ; 0800FCBC 0080 lsl r0,r0,2h ; 0800FCBE 4908 ldr r1,=8832B84h ; 0800FCC0 1840 add r0,r0,r1 ;r0 = 0x8832B84 + ((r0 & r4) << 2) 0800FCC2 6800 ldr r0,[r0] ; 0800FCC4 21F8 mov r1,0F8h ; 0800FCC6 0449 lsl r1,r1,11h ;r1 = 0x1F00000 0800FCC8 4008 and r0,r1 ;r0 &= r1 0800FCCA 0D00 lsr r0,r0,14h ;r0 >>= 20 0800FCCC 2815 cmp r0,15h ; 0800FCCE DB10 blt 800FCF2h ;if (card_type < 0x15), branch to 0x800FCF2 0800FCD0 2817 cmp r0,17h ; 0800FCD2 DD09 ble 800FCE8h ;if (card_type ≤ 0x17), branch to 0x800FCE8 0800FCD4 2818 cmp r0,18h ; 0800FCD6 D009 beq 800FCECh ;if (card_type == DIVINE_BEAST), branch to 0x800FCEC 0800FCD8 E00B b 800FCF2h ;else branch to 0x800FCF2 (default for Monster cards) 0800FCDA 0000 lsl r0,r0,0h ;
0x8010A88 (copies halfword corresponding to a card in Deck to the next Deck slot ?)
Arguments:
- r0 = 0x20197A8 + ((1 & is_cpu_deck_flag) × 0xD64) + (number_of_cards_in_deck << 2)
- r1 = ((1 & is_cpu_deck_flag) × 0xD64) + (number_of_cards_in_deck << 2) - 4
08010A88 6809 ldr r1,[r1] ;4 145756 08010A8A 6001 str r1,[r0] ;10 145766 08010A8C 4770 bx r14 ;8 145774
0x8010A90
08010A90 6803 ldr r3,[r0] ; 08010A92 680A ldr r2,[r1] ; 08010A94 6002 str r2,[r0] ; 08010A96 600B str r3,[r1] ; 08010A98 4770 bx r14 ;
0x11398
08011398 B5F0 push r4-r7,r14 ; 0801139A 1C0B mov r3,r1 ; 0801139C 4C15 ldr r4,=2018FE4h ; 0801139E 2101 mov r1,1h ; 080113A0 4001 and r1,r0 ; 080113A2 4815 ldr r0,=0D64h ; 080113A4 4341 mul r1,r0 ; 080113A6 190A add r2,r1,r4 ; 080113A8 78D0 ldrb r0,[r2,3h] ;r0 = number_of_cards_in_deck 080113AA 2800 cmp r0,0h ; 080113AC D01E beq 80113ECh ;if (number_of_cards_in_deck == 0), exit this subroutine 080113AE 78D0 ldrb r0,[r2,3h] ;r0 = number_of_cards_in_deck 080113B0 4343 mul r3,r0 ; 080113B2 2B00 cmp r3,0h ; 080113B4 DD1A ble 80113ECh ; 080113B6 4D11 ldr r5,=7C4h ; 080113B8 1960 add r0,r4,r5 ; 080113BA 180F add r7,r1,r0 ;r7 = pointer_to_deck 080113BC 1C1D mov r5,r3 ; 080113BE 1C16 mov r6,r2 ; 080113C0 F079FAF8 bl 808A9B4h ;PRNG - LCG rand() 080113C4 78F1 ldrb r1,[r6,3h] ; 080113C6 F083FAF3 bl 80949B0h ; 080113CA 1C04 mov r4,r0 ; 080113CC F079FAF2 bl 808A9B4h ;PRNG - LCG rand() 080113D0 78F1 ldrb r1,[r6,3h] ; 080113D2 F083FAED bl 80949B0h ; 080113D6 1C01 mov r1,r0 ; 080113D8 00A4 lsl r4,r4,2h ; 080113DA 193C add r4,r7,r4 ; 080113DC 0089 lsl r1,r1,2h ; 080113DE 1879 add r1,r7,r1 ; 080113E0 1C20 mov r0,r4 ; 080113E2 F7FFFB55 bl 8010A90h ; 080113E6 3D01 sub r5,1h ; 080113E8 2D00 cmp r5,0h ; 080113EA D1E9 bne 80113C0h ; 080113EC BCF0 pop r4-r7 ; 080113EE BC01 pop r0 ; 080113F0 4700 bx r0 ;
0x24946
08024948 B500 push r14 ; 0802494A F002FB33 bl 8026FB4h ; 0802494E 490A ldr r1,=2015BE8h ; 08024950 2002 mov r0,2h ; 08024952 4240 neg r0,r0 ; 08024954 784A ldrb r2,[r1,1h] ; 08024956 4010 and r0,r2 ; 08024958 7048 strb r0,[r1,1h] ; 0802495A F7ECFEA7 bl 80116ACh ; 0802495E 2000 mov r0,0h ; 08024960 2108 mov r1,8h ; 08024962 F7ECFD19 bl 8011398h ; 08024966 F046FC7B bl 806B260h ;the whole "check cards in player's deck" routines are called from here 0802496A 2001 mov r0,1h ; 0802496C 2108 mov r1,8h ; 0802496E F7ECFD13 bl 8011398h ; 08024972 2001 mov r0,1h ; 08024974 BC02 pop r1 ; 08024976 4708 bx r1 ;
Deck management routines
Add card to Player or CPU's deck, main routine
- 0x67864 - argument r1 passed to this subroutine contains card_internal_id, r0 is 1 when this routine is called from the CPU deck cards subroutines
08067864 B5F0 push r4-r7,r14 ; 08067866 464F mov r7,r9 ; 08067868 4646 mov r6,r8 ; 0806786A B4C0 push r6,r7 ; 0806786C 4680 mov r8,r0 ;r8 = 1 if it comes from the CPU opponent's deck main cards subroutines 0806786E 0409 lsl r1,r1,10h ; 08067870 0C0A lsr r2,r1,10h ; 08067872 4802 ldr r0,=0FFFFh ; 08067874 4282 cmp r2,r0 ; 08067876 D103 bne 8067880h ;if (card_internal_id ≠ 0xFFFF), branch to 0x8067880 08067878 2000 mov r0,0h ; 0806787A E018 b 80678AEh ;branch to next subroutine 0806787C FFFF bl lr+0FFEh ; 0806787E 0000 - 08067880 4804 ldr r0,=7CFh ; 08067882 4282 cmp r2,r0 ; 08067884 D80A bhi 806789Ch ;if (card_internal_id > 1999), branch to 0x806789C (either this is an alternate art card, or the card_internal_id is invalid) 08067886 3030 add r0,30h ; 08067888 4010 and r0,r2 ; 0806788A 0040 lsl r0,r0,1h ;r0 = (card_internal_id & 2047) << 1 0806788C 4902 ldr r1,=88355FCh ; 0806788E 1840 add r0,r0,r1 ;r1 points to the internal number to number conversion array 08067890 8800 ldrh r0,[r0] ;r0 = actual card_id 08067892 E00C b 80678AEh ;branch to next subroutine
Check if internal_card_id is valid, and branch depending on card_type
080678AE 0400 lsl r0,r0,10h ; 080678B0 0C00 lsr r0,r0,10h ; 080678B2 4681 mov r9,r0 ;r9 = card_id 080678B4 4810 ldr r0,=0FFFh ; 080678B6 4282 cmp r2,r0 ; 080678B8 D900 bls 80678BCh ;if (internal_card_id ≤ 4095), branch to 0x80678BC 080678BA E0C6 b 8067A4Ah ;else branch to 0x8067A4A 080678BC 4A0C ldr r2,=7FFh ; 080678BE 464D mov r5,r9 ;r5 = card_id 080678C0 402A and r2,r5 ; 080678C2 0090 lsl r0,r2,2h ;r0 = (card_id & 0x7FF) << 2 080678C4 490D ldr r1,=8832B84h ;r1 = pointer to Cards stats array 080678C6 1840 add r0,r0,r1 ;r0 = 0x8832B84 + ((card_id & 0x7FF) << 2) 080678C8 6800 ldr r0,[r0] ;r0 = card_stats 080678CA 21F8 mov r1,0F8h ; 080678CC 0449 lsl r1,r1,11h ;r1 = 0x1F00000 080678CE 4008 and r0,r1 ; 080678D0 0D00 lsr r0,r0,14h ;(card_stats & 0x1F00000) >> 0x14 080678D2 2814 cmp r0,14h ; 080678D4 D900 bls 80678D8h ;if (non_devine_beast_monster), branch to 0x80678D8 080678D6 E07D b 80679D4h ;else branch to 0x80679D4 ; Trap / Magic / Ticket / Divine-Beast 080678D8 0050 lsl r0,r2,1h ;r0 = (card_id & 0x7FF) << 4 080678DA 4A09 ldr r2,=8833C80h ;r2 = pointer_to_internal_card_ids 080678DC 1880 add r0,r0,r2 ; 080678DE 8801 ldrh r1,[r0] ;r1 = internal_card_id 080678E0 4808 ldr r0,=776h ;r0 = 1910 080678E2 4281 cmp r1,r0 ; 080678E4 D110 bne 8067908h ;if (internal_card_id ≠ OBELISK_THE_TOURMENTOR), branch to 0x8067908 080678E6 2003 mov r0,3h ;else r0 = 3 080678E8 E040 b 806796Ch ;branch to 0x806796C
0X80679D4 (called by 0x80678AE if card_type is Trap / Magic / Ticket / Divine-Beast)
080679D4 4B20 ldr r3,=2018FE4h ;r3 = 0x2018FE4 080679D6 2001 mov r0,1h ;r0 = 1 080679D8 4645 mov r5,r8 ;r8 = 1 if it comes from the CPU opponent's deck main cards subroutines 080679DA 4028 and r0,r5 ;r0 = 1 & is_cpu_deck_flag 080679DC 491F ldr r1,=0D64h ;r1 = 0xD64 080679DE 1C02 mov r2,r0 ; 080679E0 434A mul r2,r1 ; 080679E2 18D0 add r0,r2,r3 ;r0 = 0x2018FE4 + ((1 & is_cpu_deck_flag) × 0xD64) 080679E4 78C4 ldrb r4,[r0,3h] ;r4 = number_of_cards_in_deck 080679E6 2C00 cmp r4,0h ; 080679E8 DD0E ble 8067A08h ;if (number_of_cards_in_deck ≤ 0), branch to 0x8067A08 080679EA 00A1 lsl r1,r4,2h ; 080679EC 1F0E sub r6,r1,4 ;r6 = (number_of_cards_in_deck << 2) - 4 080679EE 4D1C ldr r5,=7C4h ; 080679F0 1958 add r0,r3,r5 ; 080679F2 1817 add r7,r2,r0 ; 080679F4 19CD add r5,r1,r7 ; 080679F6 19B9 add r1,r7,r6 ;r1 = ((1 & is_cpu_deck_flag) × 0xD64) + (number_of_cards_in_deck << 2) - 4 080679F8 1C28 mov r0,r5 ;r0 = 0x20197A8 + ((1 & is_cpu_deck_flag) × 0xD64) + (number_of_cards_in_deck << 2) 080679FA F7A9F845 bl 8010A88h ;call 0x8010A88 (copies halfword corresponding to a card in Deck (r1 pointer) to the next Deck slot (r0 pointer) ?) 080679FE 3E04 sub r6,4h ;r6 = (number_of_cards_in_deck << 2) - 8 08067A00 3D04 sub r5,4h ;r5 = 0x20197A8 + ((1 & is_cpu_deck_flag) × 0xD64) + (number_of_cards_in_deck << 2) - 4 08067A02 3C01 sub r4,1h ;r4 = number_of_cards_in_deck - 1 08067A04 2C00 cmp r4,0h ; 08067A06 DCF6 bgt 80679F6h ;if ((number_of_cards_in_deck - 1) > 0), loop to 0x80679F6 ? (I assume it loops over each card ?) 08067A08 4A13 ldr r2,=2018FE4h ; 08067A0A 2001 mov r0,1h ; 08067A0C 4641 mov r1,r8 ; 08067A0E 4008 and r0,r1 ; 08067A10 4912 ldr r1,=0D64h ; 08067A12 1C03 mov r3,r0 ; 08067A14 434B mul r3,r1 ; 08067A16 1899 add r1,r3,r2 ; 08067A18 78C8 ldrb r0,[r1,3h] ;r0 = number_of_cards_in_deck 08067A1A 3001 add r0,1h ; 08067A1C 70C8 strb r0,[r1,3h] ;store number_of_cards_in_deck++ 08067A1E 4D10 ldr r5,=7C4h ; 08067A20 1952 add r2,r2,r5 ; 08067A22 189B add r3,r3,r2 ; 08067A24 490F ldr r1,=0FFFh ; 08067A26 1C08 mov r0,r1 ; 08067A28 4649 mov r1,r9 ; 08067A2A 4001 and r1,r0 ; 08067A2C 480E ldr r0,=0FFFFF000h ; 08067A2E 881A ldrh r2,[r3] ; 08067A30 4010 and r0,r2 ; 08067A32 4308 orr r0,r1 ; 08067A34 8018 strh r0,[r3] ; 08067A36 2001 mov r0,1h ; 08067A38 4645 mov r5,r8 ; 08067A3A 4005 and r5,r0 ; 08067A3C 0129 lsl r1,r5,4h ; 08067A3E 2011 mov r0,11h ; 08067A40 4240 neg r0,r0 ; 08067A42 785A ldrb r2,[r3,1h] ; 08067A44 4010 and r0,r2 ; 08067A46 4308 orr r0,r1 ; 08067A48 7058 strb r0,[r3,1h] ; 08067A4A BC18 pop r3,r4 ; 08067A4C 4698 mov r8,r3 ; 08067A4E 46A1 mov r9,r4 ; 08067A50 BCF0 pop r4-r7 ; 08067A52 BC01 pop r0 ; 08067A54 4700 bx r0 ;
0x67A6C (Remove a specific card ?)
- Arguments:
- r0 : 0 for Player's Deck, 1 for CPU's Deck
- r1 : card_internal_id
08067A6C B5F0 push r4-r7,r14 ; 08067A6E B081 add sp,-4h ; 08067A70 1C06 mov r6,r0 ; 08067A72 0409 lsl r1,r1,10h ; 08067A74 0C0F lsr r7,r1,10h ;r7 = card_internal_id 08067A76 2400 mov r4,0h ;r4 = 0 08067A78 490F ldr r1,=2018FE4h ; 08067A7A 2201 mov r2,1h ; 08067A7C 4032 and r2,r6 ; 08067A7E 4B0F ldr r3,=0D64h ; 08067A80 1C10 mov r0,r2 ; 08067A82 4358 mul r0,r3 ; 08067A84 1840 add r0,r0,r1 ;r0 = pointer to either Player's Deck or CPU's Deck 08067A86 78C0 ldrb r0,[r0,3h] ;r0 = number_of_cards_in_deck 08067A88 4284 cmp r4,r0 ; 08067A8A DA26 bge 8067ADAh ; 08067A8C 1C15 mov r5,r2 ; 08067A8E 00A1 lsl r1,r4,2h ; 08067A90 1C28 mov r0,r5 ; 08067A92 4358 mul r0,r3 ; 08067A94 1809 add r1,r1,r0 ; 08067A96 480A ldr r0,=20197A8h ; 08067A98 1809 add r1,r1,r0 ; 08067A9A 6808 ldr r0,[r1] ; 08067A9C 0540 lsl r0,r0,15h ; 08067A9E 0D00 lsr r0,r0,14h ; 08067AA0 4908 ldr r1,=8833C80h ; 08067AA2 1840 add r0,r0,r1 ; 08067AA4 8800 ldrh r0,[r0] ; 08067AA6 42B8 cmp r0,r7 ; 08067AA8 D10E bne 8067AC8h ; 08067AAA 1C30 mov r0,r6 ; 08067AAC 1C21 mov r1,r4 ; 08067AAE 466A mov r2,r13 ; 08067AB0 F7A9FCA6 bl 8011400h ; 08067AB4 E009 b 8067ACAh ;
Check if a specific card is present in Deck (called before adding specific anti-cards like Anti-Raigeki, Call of the Grave or Gryphon Wing)
- Arguments:
- r0 : 0 for Player's Deck, 1 for CPU's Deck
- r1 : card_internal_id
08067AEC B570 push r4-r6,r14 ; 08067AEE 0409 lsl r1,r1,10h ; 08067AF0 0C0D lsr r5,r1,10h ;r5 = card_internal_id 08067AF2 2300 mov r3,0h ;r3 = 0 08067AF4 4C0F ldr r4,=2018FE4h ; 08067AF6 2101 mov r1,1h ; 08067AF8 4001 and r1,r0 ; 08067AFA 480F ldr r0,=0D64h ; 08067AFC 4341 mul r1,r0 ; 08067AFE 1908 add r0,r1,r4 ;r4 = pointer to either Player's Deck or CPU's Deck 08067B00 78C2 ldrb r2,[r0,3h] ;r2 = number_of_cards_in_deck 08067B02 4293 cmp r3,r2 ; 08067B04 DA12 bge 8067B2Ch ; 08067B06 4E0D ldr r6,=7C4h ; 08067B08 19A0 add r0,r4,r6 ; 08067B0A 1809 add r1,r1,r0 ; 08067B0C 363B add r6,3Bh ; 08067B0E 4C0C ldr r4,=8833C80h ; 08067B10 6808 ldr r0,[r1] ; 08067B12 0500 lsl r0,r0,14h ; 08067B14 0D00 lsr r0,r0,14h ; 08067B16 4030 and r0,r6 ; 08067B18 0040 lsl r0,r0,1h ; 08067B1A 1900 add r0,r0,r4 ; 08067B1C 8800 ldrh r0,[r0] ; 08067B1E 42A8 cmp r0,r5 ; 08067B20 D100 bne 8067B24h ; 08067B22 3301 add r3,1h ; 08067B24 3104 add r1,4h ; 08067B26 3A01 sub r2,1h ;cards_remaining_to_check-- 08067B28 2A00 cmp r2,0h ; 08067B2A D1F1 bne 8067B10h ;If there are still cards to check in the Deck, loop to 0x8067B10 08067B2C 1C18 mov r0,r3 ; 08067B2E BC70 pop r4-r6 ; 08067B30 BC02 pop r1 ; 08067B32 4708 bx r1 ;
Check cards in Player's Deck - main routine
- Arguments:
- r0 : probably a boolean determining if we're currently altering Player's Deck or CPU's Deck
- r1 : Pointer to # of each type of cards in Player's deck
08067BE0 B5F0 push r4-r7,r14 ; 08067BE2 464F mov r7,r9 ; 08067BE4 4646 mov r6,r8 ; 08067BE6 B4C0 push r6,r7 ; 08067BE8 B081 add sp,-4h ; 08067BEA 4681 mov r9,r0 ; 08067BEC 1C0D mov r5,r1 ; 08067BEE 2D00 cmp r5,0h ; 08067BF0 D101 bne 8067BF6h ; 08067BF2 F000FD6B bl 80686CCh ; 08067BF6 1C28 mov r0,r5 ; 08067BF8 2174 mov r1,74h ;r1 = 116 08067BFA F021F82D bl 8088C58h ; 08067BFE 2000 mov r0,0h ;r0 = 0 08067C00 4680 mov r8,r0 ;r8 = 0 08067C02 4919 ldr r1,=2018FE4h ; 08067C04 2001 mov r0,1h ;r0 = 1 08067C06 464A mov r2,r9 ;r2 = r9 08067C08 4010 and r0,r2 ;r0 & r2 08067C0A 4A18 ldr r2,=0D64h ;r2 = 0xD64 08067C0C 4350 mul r0,r2 ;r0 ×= r2 08067C0E 1840 add r0,r0,r1 ;r0 += r1 08067C10 78C0 ldrb r0,[r0,3h] ;r0 = quantity_of_cards_in_deck 08067C12 4580 cmp r8,r0 ; 08067C14 DB01 blt 8067C1Ah ;if (r8 < quantity_of_cards_in_deck), branch to the Super-long routine checking a lot of card IDs in the deck 08067C16 F000FD46 bl 80686A6h ;
Super-long routine checking cards in Deck
08067C1A 4C15 ldr r4,=7FFh ; 08067C1C 1C27 mov r7,r4 ;r7 = 0x7FF 08067C1E 23F8 mov r3,0F8h ; 08067C20 045B lsl r3,r3,11h ; 08067C22 2001 mov r0,1h ; 08067C24 4649 mov r1,r9 ; 08067C26 4008 and r0,r1 ; 08067C28 4644 mov r4,r8 ; 08067C2A 00A1 lsl r1,r4,2h ; 08067C2C 4350 mul r0,r2 ; 08067C2E 1809 add r1,r1,r0 ; 08067C30 4810 ldr r0,=20197A8h ;r0 = pointer_to_player_deck_during_duel 08067C32 1809 add r1,r1,r0 ;r1 = pointer_to_player_deck_during_duel + pointer_position_in_player_deck 08067C34 6808 ldr r0,[r1] ;r0 = card_id 08067C36 0500 lsl r0,r0,14h ; 08067C38 0D06 lsr r6,r0,14h ; 08067C3A 1C31 mov r1,r6 ;r1 = card_id 08067C3C 4039 and r1,r7 ;r1 & 0x7FF (ensures card_id < 2048) 08067C3E 0088 lsl r0,r1,2h ;r0 = card_id << 2 08067C40 4C0D ldr r4,=8832B84h ;r4 = pointer_to_card_stats_array 08067C42 1902 add r2,r0,r4 ; 08067C44 6810 ldr r0,[r2] ;r0 = card_stats 08067C46 4018 and r0,r3 ; 08067C48 0D00 lsr r0,r0,14h ;r0 = card_type 08067C4A 2815 cmp r0,15h ; 08067C4C D01A beq 8067C84h ;if (card_type == TRAP), branch to 08067C84 08067C4E 2816 cmp r0,16h ; 08067C50 D100 bne 8067C54h ;if (card_type ≠ MAGIC), branch to 08067C54 08067C52 E128 b 8067EA6h ;else if (card_type == MAGIC), branch to 08067EA6 08067C54 0048 lsl r0,r1,1h ;...if (card_type ≠ TRAP && card_type ≠ MAGIC), r0 = current_card_id << 1 08067C56 4909 ldr r1,=8833C80h ;r1 = pointer_to_internal_cards_ids_array 08067C58 1840 add r0,r0,r1 ;r0 = pointer_to_internal_cards_ids_array + (current_card_id << 1) 08067C5A 8801 ldrh r1,[r0] ;r1 = internal_card_id 08067C5C 4808 ldr r0,=776h ; 08067C5E 4281 cmp r1,r0 ; 08067C60 D000 beq 8067C64h ;if (r1 == 0d1910 [OBELISK_THE_TOURMENTOR in DM6, unused]), branch to 08067C64 08067C62 E20D b 8068080h ;else branch to 08068080 08067C64 2003 mov r0,3h ;r0 = 3 08067C66 E238 b 80680DAh ;branch to 080680DA 08067C68 8FE4 ldrh r4,[r4,3Eh] ; 08067C6A 0201 lsl r1,r0,8h ; 08067C6C 0D64 lsr r4,r4,15h ; 08067C6E 0000 lsl r0,r0,0h ; 08067C70 07FF lsl r7,r7,1Fh ; 08067C72 0000 lsl r0,r0,0h ; 08067C74 97A8 str r7,[sp,2A0h] ; 08067C76 0201 lsl r1,r0,8h ; 08067C78 2B84 cmp r3,84h ; 08067C7A 0883 lsr r3,r0,2h ; 08067C7C 3C80 sub r4,80h ; 08067C7E 0883 lsr r3,r0,2h ; 08067C80 0776 lsl r6,r6,1Dh ; 08067C82 0000 lsl r0,r0,0h ; 08067C84 6968 ldr r0,[r5,14h] ;...if (card_type == TRAP) 08067C86 3001 add r0,1h ; 08067C88 6168 str r0,[r5,14h] ;increment number of Trap cards in the deck stored in IWRAM 08067C8A 6811 ldr r1,[r2] ;r1 = [r2] 08067C8C 1C08 mov r0,r1 ;r0 = r1 08067C8E 4018 and r0,r3 ; 08067C90 0D00 lsr r0,r0,14h ; 08067C92 2816 cmp r0,16h ; 08067C94 DC06 bgt 8067CA4h ; 08067C96 2815 cmp r0,15h ; 08067C98 DB04 blt 8067CA4h ; 08067C9A 20E0 mov r0,0E0h ; 08067C9C 0300 lsl r0,r0,0Ch ;r0 = 0x1C00000 08067C9E 4001 and r1,r0 ;r1 &= r0 08067CA0 0C48 lsr r0,r1,11h ;r0 = r1 >> 17 08067CA2 E000 b 8067CA6h ;branch to 08067CA6 08067CA4 2000 mov r0,0h ; 08067CA6 2803 cmp r0,3h ; 08067CA8 D009 beq 8067CBEh ;if (r0 == 3), branch to 08067CBE 08067CAA 2803 cmp r0,3h ; 08067CAC DC02 bgt 8067CB4h ;if (r0 > 3), branch to 08067CB4 08067CAE 2802 cmp r0,2h ; 08067CB0 D00D beq 8067CCEh ;if (r0 == 2), branch to 08067CCE 08067CB2 E013 b 8067CDCh ;else branch to 08067CDC 08067CB4 2804 cmp r0,4h ; 08067CB6 D006 beq 8067CC6h ;if (r0 == 4), branch to 08067CC6 08067CB8 2805 cmp r0,5h ; 08067CBA D00C beq 8067CD6h ;if (r0 == 5), branch to 08067CD6 08067CBC E00E b 8067CDCh ;else branch to 08067CDC 08067CBE 6A28 ldr r0,[r5,20h] ; 08067CC0 3001 add r0,1h ; 08067CC2 6228 str r0,[r5,20h] ;[r5 + 0x20]++ 08067CC4 E00A b 8067CDCh ;branch to 08067CDC 08067CC6 69E8 ldr r0,[r5,1Ch] ; 08067CC8 3001 add r0,1h ; 08067CCA 61E8 str r0,[r5,1Ch] ;[r5 + 0x1C]++ 08067CCC E006 b 8067CDCh ;branch to 08067CDC 08067CCE 6A68 ldr r0,[r5,24h] ; 08067CD0 3001 add r0,1h ; 08067CD2 6268 str r0,[r5,24h] ;[r5 + 0x24]++ 08067CD4 E002 b 8067CDCh ;branch to 08067CDC 08067CD6 6AA8 ldr r0,[r5,28h] ; 08067CD8 3001 add r0,1h ; 08067CDA 62A8 str r0,[r5,28h] ;[r5 + 0x28]++ 08067CDC 403E and r6,r7 ;current_card_id &= 0x7FF 08067CDE 0070 lsl r0,r6,1h ;r0 = current_card_id << 1 08067CE0 4A0F ldr r2,=8833C80h ;r2 = pointer_to_internal_cards_ids_array 08067CE2 1880 add r0,r0,r2 ;r0 = pointer_to_internal_cards_ids_array + (current_card_id << 1) 08067CE4 8801 ldrh r1,[r0] ;r1 = internal_card_id 08067CE6 480F ldr r0,=40Eh ;r0 = 0x40E [0d1038] 08067CE8 4281 cmp r1,r0 ; 08067CEA D101 bne 8067CF0h ;if (internal_card_id ≠ 0d1038 [Magic Thorns]), branch to 08067CF0 08067CEC F000FCB2 bl 8068654h ;else call 0x8068654 08067CF0 4281 cmp r1,r0 ; 08067CF2 DC5F bgt 8067DB4h ;if (internal_card_id > 0d1038), branch to 08067DB4 08067CF4 3845 sub r0,45h ;r0 = 0x3C9 [0d969] 08067CF6 4281 cmp r1,r0 ; 08067CF8 D100 bne 8067CFCh ;if (internal_card_id ≠ 0d969 [Chain Destruction]), branch to 08067CFC 08067CFA E1B9 b 8068070h ;else branch to 08068070 08067CFC 4281 cmp r1,r0 ; 08067CFE DC2D bgt 8067D5Ch ;if (internal_card_id > 0d969), branch to 08067D5C 08067D00 4809 ldr r0,=2ADh ;r0 = 0x2AD [0d685] 08067D02 4281 cmp r1,r0 ; 08067D04 D100 bne 8067D08h ;if (internal_card_id ≠ 0d685 [Widespread Ruin]), branch to 08067D08 08067D06 E1B3 b 8068070h ;else branch to 08068070 08067D08 4281 cmp r1,r0 ; 08067D0A DC13 bgt 8067D34h ;if (internal_card_id > 0d685), branch to 08067D34 08067D0C 381C sub r0,1Ch ; 08067D0E 4281 cmp r1,r0 ; 08067D10 D101 bne 8067D16h ;if (internal_card_id ≠ 0d657 [Metalmorph]), branch to 08067D16 08067D12 F000FC94 bl 806863Eh ;else branch to 0806863E 08067D16 4281 cmp r1,r0 ; 08067D18 DC08 bgt 8067D2Ch ;if (internal_card_id > 0d657), branch to 08067D2C 08067D1A 20AE mov r0,0AEh ;else r0 = 0xAE 08067D1C 0040 lsl r0,r0,1h ;r0 << 1 [0x15C ; 0d348 ; Spellbinding Circle] 08067D1E E083 b 8067E28h ;branch to 08067E28 08067D20 3C80 sub r4,80h ;- 08067D22 0883 lsr r3,r0,2h ;- 08067D24 040E lsl r6,r1,10h ;- 08067D26 0000 lsl r0,r0,0h ;- 08067D28 02AD lsl r5,r5,0Ah ;- 08067D2A 0000 lsl r0,r0,0h ;- 08067D2C 4800 ldr r0,=2A9h ;... if (internal_card_id > 0d657), r0 = 0x2A9 [0d681 ; Eatgaboon] 08067D2E E031 b 8067D94h ;branch to 08067D94 08067D30 02A9 lsl r1,r5,0Ah ;- 08067D32 0000 lsl r0,r0,0h ;- 08067D34 4804 ldr r0,=3ABh ;... if (internal_card_id > 0d685), r0 = 0x3AB [0d939 ; Bell of Destruction] 08067D36 4281 cmp r1,r0 ; 08067D38 D101 bne 8067D3Eh ;if (internal_card_id ≠ 0d939 [Bell of Destruction]), branch to 08067D3E 08067D3A F000FC8B bl 8068654h ;else call 08068654 08067D3E 4281 cmp r1,r0 ; 08067D40 DC04 bgt 8067D4Ch ;if (internal_card_id > 0d939), branch to 08067D4C 08067D42 38FA sub r0,0FAh ;r0 = 0d689 [Fake Trap in DM6, unused] 08067D44 E070 b 8067E28h ;branch to 08067E28 08067D46 0000 lsl r0,r0,0h ;- 08067D48 03AB lsl r3,r5,0Eh ;- 08067D4A 0000 lsl r0,r0,0h ;- 08067D4C 4802 ldr r0,=3B1h ;... if (internal_card_id > 0d939), r0 = 0x3B1 [0d945, Magical Hats] 08067D4E 4281 cmp r1,r0 ; 08067D50 D100 bne 8067D54h ;if (internal_card_id ≠ 0d945 [Magical Hats]), branch to 08067D54 08067D52 E18D b 8068070h ;else branch to 08068070 08067D54 300F add r0,0Fh ;r0 = 0x3C0 [0d960, Negate Attack] 08067D56 E067 b 8067E28h ;branch to 08067E28 08067D58 03B1 lsl r1,r6,0Eh ; 08067D5A 0000 lsl r0,r0,0h ; 08067D5C 4806 ldr r0,=3FBh ;... if (internal_card_id > 0d969), r0 = 0x3FB [0d1019, White Hole] 08067D5E 4281 cmp r1,r0 ; 08067D60 D100 bne 8067D64h ; 08067D62 E185 b 8068070h ; 08067D64 4281 cmp r1,r0 ; 08067D66 DC0D bgt 8067D84h ; 08067D68 3811 sub r0,11h ;1002, [Trap Hole] 08067D6A 4281 cmp r1,r0 ; 08067D6C D100 bne 8067D70h ; 08067D6E E17F b 8068070h ; 08067D70 4281 cmp r1,r0 ; 08067D72 DC03 bgt 8067D7Ch ; 08067D74 380C sub r0,0Ch ;990, [Magic-Arm Shield] 08067D76 E057 b 8067E28h ; 08067D78 03FB lsl r3,r7,0Fh ; 08067D7A 0000 lsl r0,r0,0h ; 08067D7C 20FE mov r0,0FEh ; 08067D7E 0080 lsl r0,r0,2h ; 08067D80 F000FBCF bl 8068522h ;call 08068522 08067D84 4808 ldr r0,=407h ;[0d1031, Horn of Heaven] 08067D86 4281 cmp r1,r0 ; 08067D88 DC10 bgt 8067DACh ; 08067D8A 3803 sub r0,3h ;1028, [Solemn Judgment] 08067D8C 4281 cmp r1,r0 ; 08067D8E DB00 blt 8067D92h ; 08067D90 E16E b 8068070h ;branch to 08068070 08067D92 3806 sub r0,6h ; 08067D94 4281 cmp r1,r0 ; 08067D96 DD01 ble 8067D9Ch ; 08067D98 F000FC77 bl 806868Ah ;call 0806868A 08067D9C 3801 sub r0,1h ; 08067D9E 4281 cmp r1,r0 ; 08067DA0 DA01 bge 8067DA6h ; 08067DA2 F000FC72 bl 806868Ah ;call 0806868A 08067DA6 E163 b 8068070h ; 08067DA8 0407 lsl r7,r0,10h ; 08067DAA 0000 lsl r0,r0,0h ; 08067DAC 4800 ldr r0,=409h ;[0d1033, Royal Decree] 08067DAE E03B b 8067E28h ;branch to 08067E28 08067DB0 0409 lsl r1,r1,10h ; 08067DB2 0000 lsl r0,r0,0h ; 08067DB4 480A ldr r0,=49Ah ;[0d1178, Aqua Chorus] 08067DB6 4281 cmp r1,r0 ; 08067DB8 D101 bne 8067DBEh ; 08067DBA F000FC40 bl 806863Eh ; 08067DBE 4281 cmp r1,r0 ; 08067DC0 DC3A bgt 8067E38h ; 08067DC2 3853 sub r0,53h ;1095, [Call Of The Haunted] 08067DC4 4281 cmp r1,r0 ; 08067DC6 D101 bne 8067DCCh ; 08067DC8 F000FC50 bl 806866Ch ; 08067DCC 4281 cmp r1,r0 ; 08067DCE DC13 bgt 8067DF8h ; 08067DD0 3821 sub r0,21h ;1062, [Gryphon Wing] 08067DD2 4281 cmp r1,r0 ; 08067DD4 D100 bne 8067DD8h ; 08067DD6 E14B b 8068070h ; 08067DD8 4281 cmp r1,r0 ; 08067DDA DC03 bgt 8067DE4h ; 08067DDC 3806 sub r0,6h ;1056, [Mirror Force] 08067DDE E023 b 8067E28h ; 08067DE0 049A lsl r2,r3,12h ; 08067DE2 0000 lsl r0,r0,0h ; 08067DE4 4803 ldr r0,=43Ah ;[0d1082, Snake Fang] 08067DE6 4281 cmp r1,r0 ; 08067DE8 D101 bne 8067DEEh ; 08067DEA F000FC28 bl 806863Eh ; 08067DEE 300A add r0,0Ah ; 08067DF0 F000FC06 bl 8068600h ; 08067DF4 043A lsl r2,r7,10h ; 08067DF6 0000 lsl r0,r0,0h ; 08067DF8 4807 ldr r0,=475h ;[0d1141, Appropriate] 08067DFA 4281 cmp r1,r0 ; 08067DFC D101 bne 8067E02h ; 08067DFE F000FC39 bl 8068674h ; 08067E02 4281 cmp r1,r0 ; 08067E04 DC0A bgt 8067E1Ch ; 08067E06 382B sub r0,2Bh ; 08067E08 4281 cmp r1,r0 ;1098, [Enchanted Javelin] 08067E0A D101 bne 8067E10h ; 08067E0C F000FC1E bl 806864Ch ; 08067E10 302A add r0,2Ah ;1140, [Numinous Healer] 08067E12 F000FBF5 bl 8068600h ; 08067E16 0000 lsl r0,r0,0h ; 08067E18 0475 lsl r5,r6,11h ; 08067E1A 0000 lsl r0,r0,0h ; 08067E1C 4805 ldr r0,=47Bh ;[0d1147, Backup Soldier] 08067E1E 4281 cmp r1,r0 ; 08067E20 D101 bne 8067E26h ; 08067E22 F000FC23 bl 806866Ch ; 08067E26 3007 add r0,7h ; 08067E28 4281 cmp r1,r0 ; 08067E2A D100 bne 8067E2Eh ; 08067E2C E120 b 8068070h ; 08067E2E F000FC2C bl 806868Ah ;call 0806868A 08067E32 0000 lsl r0,r0,0h ; 08067E34 047B lsl r3,r7,11h ; 08067E36 0000 lsl r0,r0,0h ; 08067E38 4807 ldr r0,=519h ;[0d1305, Solemn Wishes] 08067E3A 4281 cmp r1,r0 ; 08067E3C D101 bne 8067E42h ; 08067E3E F000FC05 bl 806864Ch ; 08067E42 4281 cmp r1,r0 ; 08067E44 DC14 bgt 8067E70h ; 08067E46 3804 sub r0,4h ;1301, [Michizure] 08067E48 4281 cmp r1,r0 ; 08067E4A D100 bne 8067E4Eh ; 08067E4C E110 b 8068070h ; 08067E4E 4281 cmp r1,r0 ; 08067E50 DC04 bgt 8067E5Ch ; 08067E52 3857 sub r0,57h ;1214, [Magic Cylinder] 08067E54 F000FBCB bl 80685EEh ; 08067E58 0519 lsl r1,r3,14h ; 08067E5A 0000 lsl r0,r0,0h ; 08067E5C 4803 ldr r0,=516h ;[0d1302, Minor Goblin Official] 08067E5E 4281 cmp r1,r0 ; 08067E60 D101 bne 8067E66h ; 08067E62 F000FBF7 bl 8068654h ; 08067E66 3002 add r0,2h ;1304, Attack and Receive 08067E68 E3C1 b 80685EEh ; 08067E6A 0000 lsl r0,r0,0h ; 08067E6C 0516 lsl r6,r2,14h ; 08067E6E 0000 lsl r0,r0,0h ; 08067E70 4806 ldr r0,=5A7h ;[0d1447, Jar of Greed] 08067E72 4281 cmp r1,r0 ; 08067E74 D101 bne 8067E7Ah ; 08067E76 F000FBFD bl 8068674h ; 08067E7A 4281 cmp r1,r0 ; 08067E7C DC08 bgt 8067E90h ; 08067E7E 388D sub r0,8Dh ;1306, [Skull Invitation] 08067E80 4281 cmp r1,r0 ; 08067E82 D101 bne 8067E88h ; 08067E84 F000FBE6 bl 8068654h ; 08067E88 3012 add r0,12h ;1324, [Type Zero Magic Crusher] 08067E8A E3B0 b 80685EEh ; 08067E8C 05A7 lsl r7,r4,16h ; 08067E8E 0000 lsl r0,r0,0h ; 08067E90 20BF mov r0,0BFh ;1528, [Destiny Board] 08067E92 00C0 lsl r0,r0,3h ; 08067E94 4281 cmp r1,r0 ; 08067E96 D100 bne 8067E9Ah ; 08067E98 E0EE b 8068078h ; 08067E9A 3003 add r0,3h ;1531, [Riryoku Field] 08067E9C 4281 cmp r1,r0 ; 08067E9E D001 beq 8067EA4h ; 08067EA0 F000FBF3 bl 806868Ah ;call 0806868A 08067EA4 E0E4 b 8068070h ;branch to 08068070 08067EA6 6928 ldr r0,[r5,10h] ;...if (card_type == MAGIC) 08067EA8 3001 add r0,1h ; 08067EAA 6128 str r0,[r5,10h] ;increment number of Magic cards in the deck stored in IWRAM 08067EAC 6811 ldr r1,[r2] ; 08067EAE 1C08 mov r0,r1 ; 08067EB0 4018 and r0,r3 ; 08067EB2 0D00 lsr r0,r0,14h ; 08067EB4 2816 cmp r0,16h ; 08067EB6 DC06 bgt 8067EC6h ; 08067EB8 2815 cmp r0,15h ; 08067EBA DB04 blt 8067EC6h ; 08067EBC 20E0 mov r0,0E0h ; 08067EBE 0300 lsl r0,r0,0Ch ; 08067EC0 4001 and r1,r0 ; 08067EC2 0C48 lsr r0,r1,11h ; 08067EC4 E000 b 8067EC8h ; 08067EC6 2000 mov r0,0h ; 08067EC8 2803 cmp r0,3h ; 08067ECA D009 beq 8067EE0h ; 08067ECC 2803 cmp r0,3h ; 08067ECE DC02 bgt 8067ED6h ; 08067ED0 2802 cmp r0,2h ; 08067ED2 D00D beq 8067EF0h ; 08067ED4 E013 b 8067EFEh ; 08067ED6 2804 cmp r0,4h ; 08067ED8 D006 beq 8067EE8h ; 08067EDA 2805 cmp r0,5h ; 08067EDC D00C beq 8067EF8h ; 08067EDE E00E b 8067EFEh ; 08067EE0 6A28 ldr r0,[r5,20h] ; 08067EE2 3001 add r0,1h ; 08067EE4 6228 str r0,[r5,20h] ; 08067EE6 E00A b 8067EFEh ; 08067EE8 69E8 ldr r0,[r5,1Ch] ; 08067EEA 3001 add r0,1h ; 08067EEC 61E8 str r0,[r5,1Ch] ; 08067EEE E006 b 8067EFEh ; 08067EF0 6A68 ldr r0,[r5,24h] ; 08067EF2 3001 add r0,1h ; 08067EF4 6268 str r0,[r5,24h] ; 08067EF6 E002 b 8067EFEh ; 08067EF8 6AA8 ldr r0,[r5,28h] ; 08067EFA 3001 add r0,1h ; 08067EFC 62A8 str r0,[r5,28h] ; 08067EFE 403E and r6,r7 ; 08067F00 0070 lsl r0,r6,1h ; 08067F02 4C11 ldr r4,=8833C80h ;r4 = pointer_to_internal_cards_ids_array 08067F04 1900 add r0,r0,r4 ; 08067F06 8801 ldrh r1,[r0] ; 08067F08 4810 ldr r0,=40Dh ;[0d1037, Exile of the Wicked] 08067F0A 4281 cmp r1,r0 ; 08067F0C DC5F bgt 8067FCEh ; 08067F0E 3801 sub r0,1h ; 08067F10 4281 cmp r1,r0 ; 08067F12 DB00 blt 8067F16h ; 08067F14 E3A2 b 806865Ch ; 08067F16 480E ldr r0,=297h ;[0d663, Eternal Draught] 08067F18 4281 cmp r1,r0 ; 08067F1A DC29 bgt 8067F70h ; 08067F1C 3802 sub r0,2h ; 08067F1E 4281 cmp r1,r0 ; 08067F20 DB00 blt 8067F24h ; 08067F22 E39B b 806865Ch ; 08067F24 20AD mov r0,0ADh ; 08067F26 0040 lsl r0,r0,1h ; 08067F28 4281 cmp r1,r0 ; 08067F2A DC13 bgt 8067F54h ; 08067F2C 3804 sub r0,4h ; 08067F2E 4281 cmp r1,r0 ; 08067F30 DB00 blt 8067F34h ; 08067F32 E38F b 8068654h ; 08067F34 3807 sub r0,7h ; 08067F36 4281 cmp r1,r0 ; 08067F38 DA00 bge 8067F3Ch ; 08067F3A E3A6 b 806868Ah ;branch to 0806868A 08067F3C 3001 add r0,1h ; 08067F3E 4281 cmp r1,r0 ; 08067F40 DC00 bgt 8067F44h ; 08067F42 E38B b 806865Ch ; 08067F44 E382 b 806864Ch ; 08067F46 0000 lsl r0,r0,0h ; 08067F48 3C80 sub r4,80h ; 08067F4A 0883 lsr r3,r0,2h ; 08067F4C 040D lsl r5,r1,10h ; 08067F4E 0000 lsl r0,r0,0h ; 08067F50 0297 lsl r7,r2,0Ah ; 08067F52 0000 lsl r0,r0,0h ; 08067F54 4803 ldr r0,=28Fh ;[0d655, Eternal Rest] 08067F56 4281 cmp r1,r0 ; 08067F58 D100 bne 8067F5Ch ; 08067F5A E37F b 806865Ch ; 08067F5C 4281 cmp r1,r0 ; 08067F5E DC03 bgt 8067F68h ; 08067F60 3803 sub r0,3h ;[0d652, Warrior Elimination] 08067F62 E32A b 80685BAh ; 08067F64 028F lsl r7,r1,0Ah ; 08067F66 0000 lsl r0,r0,0h ; 08067F68 4800 ldr r0,=293h ;[0d659, Stain Storm] 08067F6A E326 b 80685BAh ; 08067F6C 0293 lsl r3,r2,0Ah ; 08067F6E 0000 lsl r0,r0,0h ; 08067F70 4806 ldr r0,=3EEh ;[0d1006, Blue Medicine] 08067F72 4281 cmp r1,r0 ; 08067F74 D100 bne 8067F78h ; 08067F76 E369 b 806864Ch ; 08067F78 4281 cmp r1,r0 ; 08067F7A DC17 bgt 8067FACh ; 08067F7C 3826 sub r0,26h ;[0d968, Graceful Charity] 08067F7E 4281 cmp r1,r0 ; 08067F80 D100 bne 8067F84h ; 08067F82 E377 b 8068674h ; 08067F84 4281 cmp r1,r0 ; 08067F86 DC05 bgt 8067F94h ; 08067F88 4801 ldr r0,=29Fh ;[0d671, Harpie's Feather Duster] 08067F8A E008 b 8067F9Eh ; 08067F8C 03EE lsl r6,r5,0Fh ; 08067F8E 0000 lsl r0,r0,0h ; 08067F90 029F lsl r7,r3,0Ah ; 08067F92 0000 lsl r0,r0,0h ; 08067F94 4804 ldr r0,=3E9h ;[0d1001, Fissure] 08067F96 4281 cmp r1,r0 ; 08067F98 D100 bne 8067F9Ch ; 08067F9A E35F b 806865Ch ; 08067F9C 3003 add r0,3h ;[0d1004, Remove Trap] 08067F9E 4281 cmp r1,r0 ; 08067FA0 D100 bne 8067FA4h ; 08067FA2 E35F b 8068664h ; 08067FA4 E371 b 806868Ah ;branch to 0806868A 08067FA6 0000 lsl r0,r0,0h ; 08067FA8 03E9 lsl r1,r5,0Fh ; 08067FAA 0000 lsl r0,r0,0h ; 08067FAC 20FC mov r0,0FCh ; 08067FAE 0080 lsl r0,r0,2h ; 08067FB0 4281 cmp r1,r0 ; 08067FB2 D100 bne 8067FB6h ; 08067FB4 E35A b 806866Ch ; 08067FB6 4281 cmp r1,r0 ; 08067FB8 DA00 bge 8067FBCh ; 08067FBA E34B b 8068654h ; 08067FBC 3001 add r0,1h ; 08067FBE 4281 cmp r1,r0 ; 08067FC0 D100 bne 8067FC4h ; 08067FC2 E34F b 8068664h ; 08067FC4 3001 add r0,1h ; 08067FC6 4281 cmp r1,r0 ; 08067FC8 D100 bne 8067FCCh ; 08067FCA E353 b 8068674h ; 08067FCC E35D b 806868Ah ;branch to 0806868A 08067FCE 2091 mov r0,91h ; 08067FD0 00C0 lsl r0,r0,3h ; 08067FD2 4281 cmp r1,r0 ; 08067FD4 DC28 bgt 8068028h ; 08067FD6 3801 sub r0,1h ; 08067FD8 4281 cmp r1,r0 ; 08067FDA DB00 blt 8067FDEh ; 08067FDC E346 b 806866Ch ; 08067FDE 3855 sub r0,55h ; 08067FE0 4281 cmp r1,r0 ; 08067FE2 D045 beq 8068070h ; 08067FE4 4281 cmp r1,r0 ; 08067FE6 DC0F bgt 8068008h ; 08067FE8 380D sub r0,0Dh ; 08067FEA 4281 cmp r1,r0 ; 08067FEC D100 bne 8067FF0h ; 08067FEE E339 b 8068664h ; 08067FF0 4281 cmp r1,r0 ; 08067FF2 DC01 bgt 8067FF8h ; 08067FF4 3816 sub r0,16h ; 08067FF6 E2FA b 80685EEh ; 08067FF8 4802 ldr r0,=42Bh ;[0d1067, Final Destiny] 08067FFA 4281 cmp r1,r0 ; 08067FFC D100 bne 8068000h ; 08067FFE E32D b 806865Ch ; 08068000 3002 add r0,2h ; 08068002 E2E0 b 80685C6h ; 08068004 042B lsl r3,r5,10h ; 08068006 0000 lsl r0,r0,0h ; 08068008 4806 ldr r0,=434h ;[0d1076, The Reliable Guardian] 0806800A 4281 cmp r1,r0 ; 0806800C DC00 bgt 8068010h ; 0806800E E316 b 806863Eh ; 08068010 3004 add r0,4h ; 08068012 4281 cmp r1,r0 ; 08068014 DD00 ble 8068018h ; 08068016 E338 b 806868Ah ;branch to 0806868A 08068018 3801 sub r0,1h ; 0806801A 4281 cmp r1,r0 ; 0806801C DA00 bge 8068020h ; 0806801E E334 b 806868Ah ;branch to 0806868A 08068020 E320 b 8068664h ; 08068022 0000 lsl r0,r0,0h ; 08068024 0434 lsl r4,r6,10h ; 08068026 0000 lsl r0,r0,0h ; 08068028 4806 ldr r0,=522h ;[0d1314, Limiter Removal] 0806802A 4281 cmp r1,r0 ; 0806802C D100 bne 8068030h ; 0806802E E306 b 806863Eh ; 08068030 4281 cmp r1,r0 ; 08068032 DC0D bgt 8068050h ; 08068034 386F sub r0,6Fh ; 08068036 4281 cmp r1,r0 ; 08068038 D100 bne 806803Ch ; 0806803A E300 b 806863Eh ; 0806803C 4281 cmp r1,r0 ; 0806803E DC03 bgt 8068048h ; 08068040 3818 sub r0,18h ; 08068042 E2DD b 8068600h ; 08068044 0522 lsl r2,r4,14h ; 08068046 0000 lsl r0,r0,0h ; 08068048 4800 ldr r0,=4BBh ;[0d1211, Thousand Knives] 0806804A E2B6 b 80685BAh ;branch to 080685BA 0806804C 04BB lsl r3,r7,12h ; 0806804E 0000 lsl r0,r0,0h ; 08068050 20C1 mov r0,0C1h ; 08068052 00C0 lsl r0,r0,3h ;[0d1544, Spirit Message "L"], this block checks all 4 Spirit Messages 08068054 4281 cmp r1,r0 ; 08068056 DC04 bgt 8068062h ; 08068058 3803 sub r0,3h ;[0d1541, Spirit Message "I"] 0806805A 4281 cmp r1,r0 ; 0806805C DA0C bge 8068078h ; 0806805E 385A sub r0,5Ah ;[0d1451, Offerings to the Doomed] 08068060 E2AB b 80685BAh ; 08068062 4802 ldr r0,=60Ah ;[0d1546, De-Fusion] 08068064 4281 cmp r1,r0 ; 08068066 D100 bne 806806Ah ;if (internal_card_id ≠ DE_FUSION), branch to 0806806A (branch to 0806868A) 08068068 E300 b 806866Ch ;else, branch to 0806866C 0806806A E30E b 806868Ah ;branch to 0806868A 0806806C 060A lsl r2,r1,18h ; 0806806E 0000 lsl r0,r0,0h ; 08068070 6AE8 ldr r0,[r5,2Ch] ; 08068072 3001 add r0,1h ; 08068074 62E8 str r0,[r5,2Ch] ;increment [r5 + 0x2C] 08068076 E308 b 806868Ah ;branch to 0806868A 08068078 6E28 ldr r0,[r5,60h] ; 0806807A 3001 add r0,1h ; 0806807C 6628 str r0,[r5,60h] ;increment [r5 + 0x60] 0806807E E304 b 806868Ah ;branch to 0806868A 08068080 4281 cmp r1,r0 ; 08068082 DB05 blt 8068090h ; 08068084 20EF mov r0,0EFh ; 08068086 00C0 lsl r0,r0,3h ;r0 = [0d1912, The Winged Dragon of Ra in DM6, unused] 08068088 4281 cmp r1,r0 ; 0806808A DC01 bgt 8068090h ;if (r1 > 0d1912 [The Winged Dragon of Ra in DM6, unused]), branch to 08068090 0806808C 2001 mov r0,1h ;r0 = 1 0806808E E024 b 80680DAh ;branch to 080680DA 08068090 1C30 mov r0,r6 ;... That's Token monsters, they shouldn't be in the deck 08068092 4038 and r0,r7 ; 08068094 0080 lsl r0,r0,2h ; 08068096 4906 ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 08068098 1840 add r0,r0,r1 ; 0806809A 6800 ldr r0,[r0] ;r0 = current_card_stats 0806809C 4018 and r0,r3 ; 0806809E 0D00 lsr r0,r0,14h ; 080680A0 2816 cmp r0,16h ; 080680A2 D00A beq 80680BAh ;if (card_type == MAGIC), branch to 080680BA 080680A4 2816 cmp r0,16h ; 080680A6 DC05 bgt 80680B4h ;if (card_type == TICKET || card_type == DIVINE_BEAST), branch to 080680B4 080680A8 2815 cmp r0,15h ; 080680AA D008 beq 80680BEh ;if (card_type == TRAP), branch to 080680BE 080680AC E00B b 80680C6h ;else branch to 080680C6 080680AE 0000 lsl r0,r0,0h ; 080680B0 2B84 cmp r3,84h ; 080680B2 0883 lsr r3,r0,2h ; 080680B4 2817 cmp r0,17h ; 080680B6 D004 beq 80680C2h ;if (card_type == TICKET), branch to 080680C2 080680B8 E005 b 80680C6h ;else branch to 080680C6 080680BA 2007 mov r0,7h ;...if (card_type == MAGIC), r0 = 7 080680BC E00D b 80680DAh ;branch to 080680DA 080680BE 2008 mov r0,8h ;...if (card_type == TRAP), r0 = 8 080680C0 E00B b 80680DAh ;branch to 080680DA 080680C2 2009 mov r0,9h ;...if (card_type == TICKET), r0 = 9 080680C4 E009 b 80680DAh ;branch to 080680DA 080680C6 1C30 mov r0,r6 ;...if it is a Monster card 080680C8 4038 and r0,r7 ; 080680CA 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 080680CC 4A06 ldr r2,=8832B84h ; 080680CE 1880 add r0,r0,r2 ;r0 = pointer_to_card_stats_array + ((r6 & r7) << 2) 080680D0 6800 ldr r0,[r0] ;r0 = current_card_stats 080680D2 21C0 mov r1,0C0h ; 080680D4 0309 lsl r1,r1,0Ch ; 080680D6 4008 and r0,r1 ;r0 & 0xC0000 080680D8 0C80 lsr r0,r0,12h ;r0 >> 18 080680DA 2801 cmp r0,1h ; 080680DC D011 beq 8068102h ;if (monster_category == EFFECT_MONSTER), branch to 08068102 080680DE 2801 cmp r0,1h ; 080680E0 DC04 bgt 80680ECh ;if (monster_category > 1), branch to 080680EC 080680E2 2800 cmp r0,0h ; 080680E4 D005 beq 80680F2h ;if (monster_category == NORMAL_MONSTER), branch to 080680F2 080680E6 E00F b 8068108h ;else branch to 8068108 080680E8 2B84 cmp r3,84h ;- 080680EA 0883 lsr r3,r0,2h ;- 080680EC 2803 cmp r0,3h ; 080680EE D004 beq 80680FAh ;if (monster_category == RITUAL_MONSTER), branch to 080680FA 080680F0 E00A b 8068108h ;else if (monster_category == FUSION_MONSTER), branch to 8068108 080680F2 6828 ldr r0,[r5] ;...if (monster_category == NORMAL_MONSTER) 080680F4 3001 add r0,1h ; 080680F6 6028 str r0,[r5] ;increment number of Normal Monster cards in the deck stored in IWRAM 080680F8 E006 b 8068108h ;branch to 08068108 080680FA 68A8 ldr r0,[r5,8h] ;if (monster_category == RITUAL_MONSTER) 080680FC 3001 add r0,1h ; 080680FE 60A8 str r0,[r5,8h] ;increments number of Ritual Monster cards in the deck stored in IWRAM 08068100 E002 b 8068108h ;branch to 08068108 08068102 6868 ldr r0,[r5,4h] ;...if (monster_category == EFFECT_MONSTER) 08068104 3001 add r0,1h ; 08068106 6068 str r0,[r5,4h] ;increments number of Effect Monster cards in the deck stored in IWRAM 08068108 1C30 mov r0,r6 ; 0806810A 4038 and r0,r7 ; 0806810C 0040 lsl r0,r0,1h ;r0 = (current_card_id & 0x7FF) << 1 0806810E 4C04 ldr r4,=8833C80h ;r4 = pointer_to_internal_cards_ids_array 08068110 1900 add r0,r0,r4 ;r0 = pointer_to_internal_cards_ids_array + ((current_card_id & 0x7FF) << 1) 08068112 8801 ldrh r1,[r0] ;r1 = internal_card_id 08068114 4803 ldr r0,=776h ; 08068116 4281 cmp r1,r0 ; 08068118 D106 bne 8068128h ;if (internal_card_id ≠ OBELISK_THE_TOURMENTOR), branch to 08068128 0806811A 2003 mov r0,3h ;r0 = 3 0806811C E031 b 8068182h ;branch to 08068182 0806811E 0000 lsl r0,r0,0h ;- 08068120 3C80 sub r4,80h ;- 08068122 0883 lsr r3,r0,2h ;- 08068124 0776 lsl r6,r6,1Dh ;- 08068126 0000 lsl r0,r0,0h ;- 08068128 4281 cmp r1,r0 ;...if (internal_card_id ≠ OBELISK_THE_TOURMENTOR) 0806812A DB05 blt 8068138h ;if (internal_card_id < 1910) [not a God card, not a Token, not an alternate illustration card], branch to 08068138 0806812C 20EF mov r0,0EFh ; 0806812E 00C0 lsl r0,r0,3h ; 08068130 4281 cmp r1,r0 ; 08068132 DC01 bgt 8068138h ;if (internal_card_id > 1912) [not a God card], branch to 08068138 08068134 2001 mov r0,1h ;r0 = 1 08068136 E024 b 8068182h ;branch to 08068182 08068138 1C30 mov r0,r6 ;...if (internal_card_id < 1910 || internal_card_id > 1912) [not a God card] 0806813A 4038 and r0,r7 ; 0806813C 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 0806813E 4906 ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 08068140 1840 add r0,r0,r1 ; 08068142 6800 ldr r0,[r0] ;r0 = card_stats 08068144 4018 and r0,r3 ; 08068146 0D00 lsr r0,r0,14h ; 08068148 2816 cmp r0,16h ; 0806814A D00A beq 8068162h ;if (card_type == MAGIC), branch to 08068162 0806814C 2816 cmp r0,16h ; 0806814E DC05 bgt 806815Ch ;if (card_type == TICKET || card_type == DIVINE_BEAST), branch to 0806815C 08068150 2815 cmp r0,15h ; 08068152 D008 beq 8068166h ;if (card_type == TRAP), branch to 08068166 08068154 E00B b 806816Eh ;else branch to 0806816E 08068156 0000 lsl r0,r0,0h ; 08068158 2B84 cmp r3,84h ; 0806815A 0883 lsr r3,r0,2h ; 0806815C 2817 cmp r0,17h ; 0806815E D004 beq 806816Ah ;if (card_type == TICKET), branch to 0806816A 08068160 E005 b 806816Eh ;if (card_type == DIVINE_BEAST), branch to 0806816E 08068162 2007 mov r0,7h ;...if (card_type == MAGIC), r0 = 7 08068164 E00D b 8068182h ;branch to 08068182 08068166 2008 mov r0,8h ;...if (card_type == TRAP), r0 = 8 08068168 E00B b 8068182h ;branch to 08068182 0806816A 2009 mov r0,9h ;...if (card_type == TICKET), r0 = 9 0806816C E009 b 8068182h ;branch to 08068182 0806816E 1C30 mov r0,r6 ;...if (card_type == DIVINE_BEAST) 08068170 4038 and r0,r7 ; 08068172 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 08068174 4A0C ldr r2,=8832B84h ;r1 = pointer_to_card_stats_array 08068176 1880 add r0,r0,r2 ; 08068178 6800 ldr r0,[r0] ;r0 = card_stats 0806817A 21C0 mov r1,0C0h ; 0806817C 0309 lsl r1,r1,0Ch ; 0806817E 4008 and r0,r1 ; 08068180 0C80 lsr r0,r0,12h ;r0 = monster_category 08068182 2803 cmp r0,3h ; 08068184 D100 bne 8068188h ;if (monster_category ≠ RITUAL_MONSTER) [not Obelisk the Tourmentor], branch to 08068188 08068186 E0C8 b 806831Ah ;else branch to 0806831A 08068188 1C30 mov r0,r6 ;...if (monster_category ≠ RITUAL_MONSTER) [not Obelisk the Tourmentor] 0806818A 4038 and r0,r7 ; 0806818C 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 0806818E 4C06 ldr r4,=8832B84h ;r1 = pointer_to_card_stats_array 08068190 1900 add r0,r0,r4 ; 08068192 6800 ldr r0,[r0] ;r0 = card_stats 08068194 4018 and r0,r3 ; 08068196 0D00 lsr r0,r0,14h ;r0 = card_type 08068198 2815 cmp r0,15h ; 0806819A DB0B blt 80681B4h ;if (card_type < 0x15) [is a non-Divine-Beast Monster card], branch to 080681B4 0806819C 2817 cmp r0,17h ; 0806819E DD05 ble 80681ACh ;if (card_type ≤ 0x17) [is a Trap, Magic, or Ticket card], branch to 080681AC 080681A0 2818 cmp r0,18h ; 080681A2 D005 beq 80681B0h ;if (card_type == DIVINE_BEAST), branch to 080681B0 080681A4 E006 b 80681B4h ;else branch to 080681B4 080681A6 0000 lsl r0,r0,0h ; 080681A8 2B84 cmp r3,84h ; 080681AA 0883 lsr r3,r0,2h ; 080681AC 2000 mov r0,0h ;...if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), r0 = 0 080681AE E00B b 80681C8h ;branch to 080681C8 080681B0 200A mov r0,0Ah ;...if (card_type == DIVINE_BEAST), r0 = 0xA 080681B2 E009 b 80681C8h ;branch to 080681C8 080681B4 1C30 mov r0,r6 ;...if (card_type < 0x15 || card_type > 0x18) [is a non-Divine-Beast Monster card, or is a glitch card] 080681B6 4038 and r0,r7 ; 080681B8 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 080681BA 4909 ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 080681BC 1840 add r0,r0,r1 ; 080681BE 6800 ldr r0,[r0] ;r0 = card_stats 080681C0 21F0 mov r1,0F0h ; 080681C2 0549 lsl r1,r1,15h ; 080681C4 4008 and r0,r1 ; 080681C6 0E40 lsr r0,r0,19h ;r0 = monster_level 080681C8 2800 cmp r0,0h ; 080681CA DA00 bge 80681CEh ;if (monster_level > 0), branch to 080681CE 080681CC E0A2 b 8068314h ;else branch to 08068314 080681CE 2804 cmp r0,4h ;...if (monster_level > 0) 080681D0 DD08 ble 80681E4h ;if (monster_level ≤ 4), branch to 080681E4 080681D2 2806 cmp r0,6h ; 080681D4 DD00 ble 80681D8h ;else if (monster_level ≤ 6), branch to 080681D8 080681D6 E09D b 8068314h ;else branch to 08068314 080681D8 6D68 ldr r0,[r5,54h] ;...if (monster_level == 5 || monster_level == 6) 080681DA 3001 add r0,1h ; 080681DC 6568 str r0,[r5,54h] ;increment number of Level 5 and 6 Monster cards in the deck stored in IWRAM 080681DE E09C b 806831Ah ;branch to 0806831A 080681E0 2B84 cmp r3,84h ;- 080681E2 0883 lsr r3,r0,2h ;- 080681E4 1C30 mov r0,r6 ;...if (monster_level ≤ 4) 080681E6 4038 and r0,r7 ; 080681E8 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 080681EA 4A06 ldr r2,=8832B84h ;r1 = pointer_to_card_stats_array 080681EC 1880 add r0,r0,r2 ; 080681EE 6800 ldr r0,[r0] ;r0 = card_stats 080681F0 4018 and r0,r3 ; 080681F2 0D00 lsr r0,r0,14h ; 080681F4 2815 cmp r0,15h ; 080681F6 DB0C blt 8068212h ;if (card_type < 0x15) [is a non-Divine-Beast Monster card], branch to 08068212 080681F8 2817 cmp r0,17h ; 080681FA DD05 ble 8068208h ;if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), branch to 08068208 080681FC 2818 cmp r0,18h ; 080681FE D005 beq 806820Ch ;if (card_type == DIVINE_BEAST), branch to 0806820C 08068200 E007 b 8068212h ;else branch to 08068212 08068202 0000 lsl r0,r0,0h ;- 08068204 2B84 cmp r3,84h ;- 08068206 0883 lsr r3,r0,2h ;- 08068208 2100 mov r1,0h ;...if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), r1 = 0 0806820A E00D b 8068228h ;branch to 08068228 0806820C 21FA mov r1,0FAh ;...if (card_type == DIVINE_BEAST) 0806820E 0109 lsl r1,r1,4h ;card_ATK = 4000 08068210 E00A b 8068228h ;branch to 08068228 08068212 1C30 mov r0,r6 ;...if (card_type < 0x15) [is a non-Divine-Beast Monster card] 08068214 4038 and r0,r7 ; 08068216 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 08068218 4C0C ldr r4,=8832B84h ;r1 = pointer_to_card_stats_array 0806821A 1900 add r0,r0,r4 ; 0806821C 6801 ldr r1,[r0] ;r0 = card_stats 0806821E 0389 lsl r1,r1,0Eh ; 08068220 0DC9 lsr r1,r1,17h ; 08068222 0088 lsl r0,r1,2h ; 08068224 1840 add r0,r0,r1 ; 08068226 0041 lsl r1,r0,1h ;r1 = DWORD(((r1 << 14 >> 23 << 2) + (r1 << 14 >> 23)) << 1) [card_ATK] 08068228 6E68 ldr r0,[r5,64h] ;r0 = [r5 + 0x64] 0806822A 4288 cmp r0,r1 ; 0806822C DA21 bge 8068272h ;if ([r5 + 0x64] ≥ card_ATK), branch to 08068272 0806822E 1C30 mov r0,r6 ; 08068230 4038 and r0,r7 ; 08068232 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 08068234 4905 ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 08068236 1840 add r0,r0,r1 ; 08068238 6800 ldr r0,[r0] ;r0 = card_stats 0806823A 4018 and r0,r3 ; 0806823C 0D00 lsr r0,r0,14h ;r0 = card_type 0806823E 2815 cmp r0,15h ; 08068240 DB0B blt 806825Ah ;if (card_type < 0x15) [is a non-Divine-Beast Monster card], branch to 0806825A 08068242 2817 cmp r0,17h ; 08068244 DD04 ble 8068250h ;if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), branch to 08068250 08068246 2818 cmp r0,18h ; 08068248 D004 beq 8068254h ;if (card_type == DIVINE_BEAST), branch to 08068254 0806824A E006 b 806825Ah ;else branch to 0806825A 0806824C 2B84 cmp r3,84h ; 0806824E 0883 lsr r3,r0,2h ; 08068250 2000 mov r0,0h ;...if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), r0 = 0 08068252 E00D b 8068270h ;branch to 08068270 08068254 20FA mov r0,0FAh ; 08068256 0100 lsl r0,r0,4h ;card_ATK = 4000 08068258 E00A b 8068270h ;branch to 08068270 0806825A 1C30 mov r0,r6 ; 0806825C 4038 and r0,r7 ; 0806825E 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 08068260 4A0B ldr r2,=8832B84h ;r1 = pointer_to_card_stats_array 08068262 1880 add r0,r0,r2 ; 08068264 6801 ldr r1,[r0] ;r0 = card_stats 08068266 0389 lsl r1,r1,0Eh ; 08068268 0DC9 lsr r1,r1,17h ; 0806826A 0088 lsl r0,r1,2h ; 0806826C 1840 add r0,r0,r1 ; 0806826E 0040 lsl r0,r0,1h ;r0 = DWORD(((r1 << 14 >> 23 << 2) + (r1 << 14 >> 23)) << 1) [card_ATK] 08068270 6668 str r0,[r5,64h] ;store card_ATK into [r5 + 0x64] 08068272 1C30 mov r0,r6 ; 08068274 4038 and r0,r7 ; 08068276 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 08068278 4C05 ldr r4,=8832B84h ;r4 = pointer_to_card_stats_array 0806827A 1900 add r0,r0,r4 ; 0806827C 6800 ldr r0,[r0] ;r0 = card_stats 0806827E 4018 and r0,r3 ; 08068280 0D00 lsr r0,r0,14h ; 08068282 2815 cmp r0,15h ; 08068284 DB0B blt 806829Eh ;if (card_type < 0x15) [is a non-Divine-Beast Monster card], branch to 0806829E 08068286 2817 cmp r0,17h ; 08068288 DD04 ble 8068294h ;if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), branch to 08068294 0806828A 2818 cmp r0,18h ; 0806828C D004 beq 8068298h ;if (card_type == DIVINE_BEAST), branch to 08068298 0806828E E006 b 806829Eh ;else branch to 0806829E 08068290 2B84 cmp r3,84h ; 08068292 0883 lsr r3,r0,2h ; 08068294 2100 mov r1,0h ;...if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), card_DEF = 0 08068296 E00E b 80682B6h ;branch to 080682B6 08068298 21FA mov r1,0FAh ;...if (card_type == DIVINE_BEAST) 0806829A 0109 lsl r1,r1,4h ;card_DEF = 4000 0806829C E00B b 80682B6h ;branch to 080682B6 0806829E 1C30 mov r0,r6 ;...if (card_type < 0x15) [is a non-Divine-Beast Monster card] 080682A0 4038 and r0,r7 ; 080682A2 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 080682A4 490D ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 080682A6 1840 add r0,r0,r1 ; 080682A8 6801 ldr r1,[r0] ;r1 = card_stats 080682AA 4A0D ldr r2,=1FFh ; 080682AC 1C10 mov r0,r2 ; 080682AE 4001 and r1,r0 ; 080682B0 0088 lsl r0,r1,2h ; 080682B2 1840 add r0,r0,r1 ; 080682B4 0041 lsl r1,r0,1h ;r1 = (card_stats & 511 × 10) [card_DEF] 080682B6 6EA8 ldr r0,[r5,68h] ; 080682B8 4288 cmp r0,r1 ; 080682BA DA2E bge 806831Ah ;if ([r5 + 0x68] > card_DEF), branch to 0806831A 080682BC 1C30 mov r0,r6 ; 080682BE 4038 and r0,r7 ; 080682C0 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 080682C2 4C06 ldr r4,=8832B84h ;r4 = pointer_to_card_stats_array 080682C4 1900 add r0,r0,r4 ; 080682C6 6800 ldr r0,[r0] ;r0 = card_stats 080682C8 4018 and r0,r3 ; 080682CA 0D00 lsr r0,r0,14h ; 080682CC 2815 cmp r0,15h ; 080682CE DB0E blt 80682EEh ;if (card_type < 0x15) [is a non-Divine-Beast Monster card], branch to 080682EE 080682D0 2817 cmp r0,17h ; 080682D2 DD07 ble 80682E4h ;if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), branch to 080682E4 080682D4 2818 cmp r0,18h ; 080682D6 D007 beq 80682E8h ;if (card_type == DIVINE_BEAST), branch to 080682E8 080682D8 E009 b 80682EEh ;else branch to 080682EE 080682DA 0000 lsl r0,r0,0h ;- 080682DC 2B84 cmp r3,84h ;- 080682DE 0883 lsr r3,r0,2h ;- 080682E0 01FF lsl r7,r7,7h ;- 080682E2 0000 lsl r0,r0,0h ;- 080682E4 2000 mov r0,0h ;...if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), card_DEF = 0 080682E6 E00E b 8068306h ;branch to 08068306 080682E8 20FA mov r0,0FAh ;...if (card_type == DIVINE_BEAST) 080682EA 0100 lsl r0,r0,4h ;card_DEF = 4000 080682EC E00B b 8068306h ;branch to 08068306 080682EE 1C30 mov r0,r6 ;...if (card_type < 0x15) [is a non-Divine-Beast Monster card] 080682F0 4038 and r0,r7 ; 080682F2 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 080682F4 4905 ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 080682F6 1840 add r0,r0,r1 ; 080682F8 6801 ldr r1,[r0] ;r1 = card_stats 080682FA 4A05 ldr r2,=1FFh ; 080682FC 1C10 mov r0,r2 ; 080682FE 4001 and r1,r0 ; 08068300 0088 lsl r0,r1,2h ; 08068302 1840 add r0,r0,r1 ; 08068304 0040 lsl r0,r0,1h ;r1 = (card_stats & 511 × 10) [card_DEF] 08068306 66A8 str r0,[r5,68h] ;store card_DEF into [r5 + 0x68] 08068308 E007 b 806831Ah ;branch to 0806831A 0806830A 0000 lsl r0,r0,0h ;- 0806830C 2B84 cmp r3,84h ;- 0806830E 0883 lsr r3,r0,2h ;- 08068310 01FF lsl r7,r7,7h ;- 08068312 0000 lsl r0,r0,0h ;- 08068314 6DA8 ldr r0,[r5,58h] ; 08068316 3001 add r0,1h ; 08068318 65A8 str r0,[r5,58h] ;increment [r5 + 0x58] 0806831A 1C30 mov r0,r6 ; 0806831C 4038 and r0,r7 ; 0806831E 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 08068320 4C05 ldr r4,=8832B84h ;r4 = pointer_to_card_stats_array 08068322 1900 add r0,r0,r4 ; 08068324 6800 ldr r0,[r0] ;r0 = card_stats 08068326 4018 and r0,r3 ; 08068328 0D00 lsr r0,r0,14h ; 0806832A 2815 cmp r0,15h ; 0806832C DB0B blt 8068346h ;if (card_type < 0x15) [is a non-Divine-Beast Monster card], branch to 08068346 0806832E 2817 cmp r0,17h ; 08068330 DD04 ble 806833Ch ;if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), branch to 0806833C 08068332 2818 cmp r0,18h ; 08068334 D004 beq 8068340h ;if (card_type == DIVINE_BEAST), branch to 08068340 08068336 E006 b 8068346h ;else branch to 08068346 08068338 2B84 cmp r3,84h ; 0806833A 0883 lsr r3,r0,2h ; 0806833C 2100 mov r1,0h ;...if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), card_DEF = 0 0806833E E00D b 806835Ch ;branch to 0806835C 08068340 21FA mov r1,0FAh ;...if (card_type == DIVINE_BEAST) 08068342 0109 lsl r1,r1,4h ;card_DEF = 4000 08068344 E00A b 806835Ch ;branch to 0806835C 08068346 1C30 mov r0,r6 ;...if (card_type < 0x15) [is a non-Divine-Beast Monster card] 08068348 4038 and r0,r7 ; 0806834A 0080 lsl r0,r0,2h ;r0 = (card_id & 0x7FF) << 2 0806834C 490C ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 0806834E 1840 add r0,r0,r1 ; 08068350 6801 ldr r1,[r0] ;r1 = card_stats 08068352 0389 lsl r1,r1,0Eh ; 08068354 0DC9 lsr r1,r1,17h ; 08068356 0088 lsl r0,r1,2h ; 08068358 1840 add r0,r0,r1 ; 0806835A 0041 lsl r1,r0,1h ; 0806835C 6EE8 ldr r0,[r5,6Ch] ; 0806835E 4288 cmp r0,r1 ; 08068360 DA21 bge 80683A6h ; 08068362 1C30 mov r0,r6 ; 08068364 4038 and r0,r7 ; 08068366 0080 lsl r0,r0,2h ; 08068368 4A05 ldr r2,=8832B84h ;r2 = pointer_to_card_stats_array 0806836A 1880 add r0,r0,r2 ; 0806836C 6800 ldr r0,[r0] ; 0806836E 4018 and r0,r3 ; 08068370 0D00 lsr r0,r0,14h ; 08068372 2815 cmp r0,15h ; 08068374 DB0B blt 806838Eh ;if (card_type < 0x15) [is a non-Divine-Beast Monster card], branch to 0806838E 08068376 2817 cmp r0,17h ; 08068378 DD04 ble 8068384h ;if (card_type == TRAP || card_type == MAGIC || card_type == TICKET), branch to 08068384 0806837A 2818 cmp r0,18h ; 0806837C D004 beq 8068388h ;if (card_type == DIVINE_BEAST), branch to 08068388 0806837E E006 b 806838Eh ;else branch to 0806838E 08068380 2B84 cmp r3,84h ; 08068382 0883 lsr r3,r0,2h ; 08068384 2000 mov r0,0h ; 08068386 E00D b 80683A4h ; 08068388 20FA mov r0,0FAh ; 0806838A 0100 lsl r0,r0,4h ; 0806838C E00A b 80683A4h ; 0806838E 1C30 mov r0,r6 ; 08068390 4038 and r0,r7 ; 08068392 0080 lsl r0,r0,2h ; 08068394 4C0B ldr r4,=8832B84h ;r4 = pointer_to_card_stats_array 08068396 1900 add r0,r0,r4 ; 08068398 6801 ldr r1,[r0] ; 0806839A 0389 lsl r1,r1,0Eh ; 0806839C 0DC9 lsr r1,r1,17h ; 0806839E 0088 lsl r0,r1,2h ; 080683A0 1840 add r0,r0,r1 ; 080683A2 0040 lsl r0,r0,1h ; 080683A4 66E8 str r0,[r5,6Ch] ; 080683A6 1C30 mov r0,r6 ; 080683A8 4038 and r0,r7 ; 080683AA 0080 lsl r0,r0,2h ; 080683AC 4905 ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 080683AE 1840 add r0,r0,r1 ; 080683B0 6800 ldr r0,[r0] ; 080683B2 4018 and r0,r3 ; 080683B4 0D00 lsr r0,r0,14h ; 080683B6 2815 cmp r0,15h ; 080683B8 DB0B blt 80683D2h ; 080683BA 2817 cmp r0,17h ; 080683BC DD04 ble 80683C8h ; 080683BE 2818 cmp r0,18h ; 080683C0 D004 beq 80683CCh ; 080683C2 E006 b 80683D2h ; 080683C4 2B84 cmp r3,84h ; 080683C6 0883 lsr r3,r0,2h ; 080683C8 2100 mov r1,0h ; 080683CA E00E b 80683EAh ; 080683CC 21FA mov r1,0FAh ; 080683CE 0109 lsl r1,r1,4h ; 080683D0 E00B b 80683EAh ; 080683D2 1C30 mov r0,r6 ; 080683D4 4038 and r0,r7 ; 080683D6 0080 lsl r0,r0,2h ; 080683D8 4A0D ldr r2,=8832B84h ;r2 = pointer_to_card_stats_array 080683DA 1880 add r0,r0,r2 ; 080683DC 6801 ldr r1,[r0] ; 080683DE 4C0D ldr r4,=1FFh ; 080683E0 1C20 mov r0,r4 ; 080683E2 4001 and r1,r0 ; 080683E4 0088 lsl r0,r1,2h ; 080683E6 1840 add r0,r0,r1 ; 080683E8 0041 lsl r1,r0,1h ;r1 = card_DEF 080683EA 6F28 ldr r0,[r5,70h] ; 080683EC 4288 cmp r0,r1 ; 080683EE DA25 bge 806843Ch ;if ([r5,70h] > card_DEF), branch to 006843C 080683F0 1C30 mov r0,r6 ; 080683F2 4038 and r0,r7 ; 080683F4 0080 lsl r0,r0,2h ; 080683F6 4906 ldr r1,=8832B84h ;r1 = pointer_to_card_stats_array 080683F8 1840 add r0,r0,r1 ; 080683FA 6800 ldr r0,[r0] ; 080683FC 4018 and r0,r3 ; 080683FE 0D00 lsr r0,r0,14h ; 08068400 2815 cmp r0,15h ; 08068402 DB0E blt 8068422h ; 08068404 2817 cmp r0,17h ; 08068406 DD07 ble 8068418h ; 08068408 2818 cmp r0,18h ; 0806840A D007 beq 806841Ch ; 0806840C E009 b 8068422h ; 0806840E 0000 lsl r0,r0,0h ;- 08068410 2B84 cmp r3,84h ;- 08068412 0883 lsr r3,r0,2h ;- 08068414 01FF lsl r7,r7,7h ;- 08068416 0000 lsl r0,r0,0h ;- 08068418 2000 mov r0,0h ; 0806841A E00E b 806843Ah ; 0806841C 20FA mov r0,0FAh ; 0806841E 0100 lsl r0,r0,4h ; 08068420 E00B b 806843Ah ; 08068422 1C30 mov r0,r6 ; 08068424 4038 and r0,r7 ; 08068426 0080 lsl r0,r0,2h ; 08068428 4A21 ldr r2,=8832B84h ;r2 = pointer_to_card_stats_array 0806842A 1880 add r0,r0,r2 ; 0806842C 6801 ldr r1,[r0] ; 0806842E 4C21 ldr r4,=1FFh ; 08068430 1C20 mov r0,r4 ; 08068432 4001 and r1,r0 ; 08068434 0088 lsl r0,r1,2h ; 08068436 1840 add r0,r0,r1 ; 08068438 0040 lsl r0,r0,1h ;r0 = card_DEF 0806843A 6728 str r0,[r5,70h] ;store card_DEF into [r5 + 0x70] 0806843C 1C30 mov r0,r6 ; 0806843E 4038 and r0,r7 ; 08068440 0040 lsl r0,r0,1h ; 08068442 491D ldr r1,=8833C80h ;r1 = pointer_to_internal_cards_ids_array 08068444 1844 add r4,r0,r1 ; 08068446 8820 ldrh r0,[r4] ;r0 = internal_card_id 08068448 2101 mov r1,1h ;r1 = 1 0806844A 9300 str r3,[sp] ; 0806844C F7A8FB38 bl 8010AC0h ;call 08010AC0 08068450 9B00 ldr r3,[sp] ; 08068452 2800 cmp r0,0h ; 08068454 D106 bne 8068464h ; 08068456 8820 ldrh r0,[r4] ; 08068458 2100 mov r1,0h ; 0806845A F7A8FB31 bl 8010AC0h ;call 08010AC0 0806845E 9B00 ldr r3,[sp] ; 08068460 2800 cmp r0,0h ; 08068462 D002 beq 806846Ah ; 08068464 6D28 ldr r0,[r5,50h] ; 08068466 3001 add r0,1h ; 08068468 6528 str r0,[r5,50h] ;increment [r5 + 0x50] 0806846A 403E and r6,r7 ; 0806846C 0070 lsl r0,r6,1h ; 0806846E 4A12 ldr r2,=8833C80h ;r2 = pointer_to_internal_cards_ids_array 08068470 1880 add r0,r0,r2 ; 08068472 8801 ldrh r1,[r0] ;r1 = internal_card_id 08068474 4811 ldr r0,=229h ;r0 = 553 [Lava Battleguard] 08068476 4281 cmp r1,r0 ; 08068478 D100 bne 806847Ch ;if (internal_card_id ≠ Lava Battleguard), branch to 0806847C 0806847A E0E0 b 806863Eh ;else branch to 0806863E 0806847C 4281 cmp r1,r0 ; 0806847E DC6F bgt 8068560h ;if (internal_card_id > 553), branch to 08068560 08068480 389C sub r0,9Ch ;r0 = 397 [Ooguchi] 08068482 4281 cmp r1,r0 ; 08068484 DC38 bgt 80684F8h ; 08068486 3801 sub r0,1h ;r0 = 396 [Leghul] 08068488 4281 cmp r1,r0 ; 0806848A DB00 blt 806848Eh ; 0806848C E0E2 b 8068654h ; 0806848E 2953 cmp r1,53h ;83 [Reaper of the Cards] 08068490 D100 bne 8068494h ; 08068492 E0E7 b 8068664h ; 08068494 2953 cmp r1,53h ; 08068496 DC17 bgt 80684C8h ; 08068498 2914 cmp r1,14h ;20 [Exodia the Forbidden One] 0806849A DC11 bgt 80684C0h ; 0806849C 2910 cmp r1,10h ;16 [Right Leg of the Forbidden One] 0806849E DB00 blt 80684A2h ; 080684A0 E0F0 b 8068684h ; 080684A2 290B cmp r1,0Bh ;11 [Swamp Battleguard] 080684A4 D100 bne 80684A8h ; 080684A6 E0CA b 806863Eh ; 080684A8 290F cmp r1,0Fh ;15 [Time Wizard] 080684AA D100 bne 80684AEh ; 080684AC E0D6 b 806865Ch ; 080684AE E0EC b 806868Ah ;branch to 0806868A 080684B0 2B84 cmp r3,84h ;- 080684B2 0883 lsr r3,r0,2h ;- 080684B4 01FF lsl r7,r7,7h ;- 080684B6 0000 lsl r0,r0,0h ;- 080684B8 3C80 sub r4,80h ; 080684BA 0883 lsr r3,r0,2h ; 080684BC 0229 lsl r1,r5,8h ; 080684BE 0000 lsl r0,r0,0h ; 080684C0 292F cmp r1,2Fh ;47 [Sangan] 080684C2 D100 bne 80684C6h ; 080684C4 E0DA b 806867Ch ; 080684C6 E0E0 b 806868Ah ;branch to 0806868A 080684C8 4806 ldr r0,=16Fh ;r0 = 367 [Shadow Ghoul] 080684CA 4281 cmp r1,r0 ; 080684CC D100 bne 80684D0h ; 080684CE E0B6 b 806863Eh ; 080684D0 4281 cmp r1,r0 ; 080684D2 DC09 bgt 80684E8h ; 080684D4 29DF cmp r1,0DFh ;223 [Trap Master] 080684D6 D100 bne 80684DAh ; 080684D8 E0C4 b 8068664h ; 080684DA 29EA cmp r1,0EAh ;234 [Wodan the Resident of the Forest] 080684DC D100 bne 80684E0h ; 080684DE E0AE b 806863Eh ; 080684E0 E0D3 b 806868Ah ;branch to 0806868A 080684E2 0000 lsl r0,r0,0h ; 080684E4 016F lsl r7,r5,5h ; 080684E6 0000 lsl r0,r0,0h ; 080684E8 4802 ldr r0,=181h ;r0 = 385 [Harpie's Pet Dragon] 080684EA 4281 cmp r1,r0 ; 080684EC D100 bne 80684F0h ; 080684EE E0A6 b 806863Eh ; 080684F0 3001 add r0,1h ;r0 = 386 [Mystic Lamp] 080684F2 E07C b 80685EEh ; 080684F4 0181 lsl r1,r0,6h ; 080684F6 0000 lsl r0,r0,0h ; 080684F8 20FA mov r0,0FAh ; 080684FA 0040 lsl r0,r0,1h ;r0 = 500 [Man-Eater Bug] 080684FC 4281 cmp r1,r0 ; 080684FE D100 bne 8068502h ; 08068500 E0AC b 806865Ch ; 08068502 4281 cmp r1,r0 ; 08068504 DC15 bgt 8068532h ; 08068506 380D sub r0,0Dh ;r0 = 487 [Rainbow Flower] 08068508 4281 cmp r1,r0 ; 0806850A D100 bne 806850Eh ; 0806850C E0A2 b 8068654h ; 0806850E 4281 cmp r1,r0 ; 08068510 DC05 bgt 806851Eh ; 08068512 3851 sub r0,51h ;r0 = 406 [Machine King] 08068514 4281 cmp r1,r0 ; 08068516 D100 bne 806851Ah ; 08068518 E091 b 806863Eh ; 0806851A 300F add r0,0Fh ;r0 = 421 [Jinzo #7] 0806851C E067 b 80685EEh ; 0806851E 20F6 mov r0,0F6h ; 08068520 0040 lsl r0,r0,1h ;r0 = 492 [Maha Vailo] 08068522 4281 cmp r1,r0 ; 08068524 DD00 ble 8068528h ; 08068526 E0B0 b 806868Ah ;branch to 0806868A 08068528 3801 sub r0,1h ; 0806852A 4281 cmp r1,r0 ; 0806852C DA00 bge 8068530h ; 0806852E E0AC b 806868Ah ;branch to 0806868A 08068530 E085 b 806863Eh ; 08068532 4806 ldr r0,=20Eh ;r0 = 526 [Milus Radiant] 08068534 4281 cmp r1,r0 ; 08068536 D100 bne 806853Ah ; 08068538 E081 b 806863Eh ; 0806853A 4281 cmp r1,r0 ; 0806853C DC08 bgt 8068550h ; 0806853E 380B sub r0,0Bh ;r0 = 515 [Muka Muka] 08068540 4281 cmp r1,r0 ; 08068542 D100 bne 8068546h ; 08068544 E07B b 806863Eh ; 08068546 3008 add r0,8h ;r0 = 523 [Star Boy] 08068548 E03D b 80685C6h ; 0806854A 0000 lsl r0,r0,0h ;- 0806854C 020E lsl r6,r1,8h ;- 0806854E 0000 lsl r0,r0,0h ;- 08068550 4802 ldr r0,=21Bh ;r0 = 539 [Skelengel] 08068552 4281 cmp r1,r0 ; 08068554 D100 bne 8068558h ; 08068556 E08D b 8068674h ; 08068558 3001 add r0,1h ;r0 = 540 [Hane-Hane] 0806855A E02E b 80685BAh ; 0806855C 021B lsl r3,r3,8h ; 0806855E 0000 lsl r0,r0,0h ; 08068560 480A ldr r0,=2FEh ;r0 = 766 [Blue-Eyes Toon Dragon] 08068562 4281 cmp r1,r0 ; 08068564 D100 bne 8068568h ; 08068566 E075 b 8068654h ; 08068568 4281 cmp r1,r0 ; 0806856A DC31 bgt 80685D0h ; 0806856C 388B sub r0,8Bh ; 0806856E 4281 cmp r1,r0 ; 08068570 D065 beq 806863Eh ; 08068572 4281 cmp r1,r0 ; 08068574 DC12 bgt 806859Ch ; 08068576 381A sub r0,1Ah ; 08068578 4281 cmp r1,r0 ; 0806857A D06F beq 806865Ch ; 0806857C 4281 cmp r1,r0 ; 0806857E DC07 bgt 8068590h ; 08068580 381C sub r0,1Ch ; 08068582 4281 cmp r1,r0 ; 08068584 D100 bne 8068588h ; 08068586 E079 b 806867Ch ; 08068588 3018 add r0,18h ; 0806858A E01C b 80685C6h ; 0806858C 02FE lsl r6,r7,0Bh ; 0806858E 0000 lsl r0,r0,0h ; 08068590 2098 mov r0,98h ; 08068592 0080 lsl r0,r0,2h ; 08068594 4281 cmp r1,r0 ; 08068596 D052 beq 806863Eh ; 08068598 3007 add r0,7h ; 0806859A E014 b 80685C6h ; 0806859C 20B6 mov r0,0B6h ; 0806859E 0080 lsl r0,r0,2h ; 080685A0 4281 cmp r1,r0 ; 080685A2 DC04 bgt 80685AEh ; 080685A4 3802 sub r0,2h ; 080685A6 4281 cmp r1,r0 ; 080685A8 DA54 bge 8068654h ; 080685AA 385C sub r0,5Ch ; 080685AC E01F b 80685EEh ; 080685AE 4804 ldr r0,=2F7h ;r0 = 759 [Dark Magician Girl] 080685B0 4281 cmp r1,r0 ; 080685B2 D044 beq 806863Eh ; 080685B4 4281 cmp r1,r0 ; 080685B6 DC05 bgt 80685C4h ; 080685B8 3811 sub r0,11h ; 080685BA 4281 cmp r1,r0 ; 080685BC D04E beq 806865Ch ; 080685BE E064 b 806868Ah ;branch to 0806868A 080685C0 02F7 lsl r7,r6,0Bh ; 080685C2 0000 lsl r0,r0,0h ; 080685C4 4801 ldr r0,=2F9h ;r0 = 761 [Insect Queen] 080685C6 4281 cmp r1,r0 ; 080685C8 D039 beq 806863Eh ; 080685CA E05E b 806868Ah ;branch to 0806868A 080685CC 02F9 lsl r1,r7,0Bh ; 080685CE 0000 lsl r0,r0,0h ; 080685D0 4808 ldr r0,=45Ch ;r0 = 1116 [Spear Cretin] 080685D2 4281 cmp r1,r0 ; 080685D4 D04A beq 806866Ch ; 080685D6 4281 cmp r1,r0 ; 080685D8 DC18 bgt 806860Ch ; 080685DA 3808 sub r0,8h ; 080685DC 4281 cmp r1,r0 ; 080685DE D04D beq 806867Ch ; 080685E0 4281 cmp r1,r0 ; 080685E2 DC09 bgt 80685F8h ; 080685E4 20CA mov r0,0CAh ; 080685E6 0080 lsl r0,r0,2h ; 080685E8 4281 cmp r1,r0 ; 080685EA D028 beq 806863Eh ; 080685EC 3004 add r0,4h ; 080685EE 4281 cmp r1,r0 ; 080685F0 D030 beq 8068654h ; 080685F2 E04A b 806868Ah ;branch to 0806868A 080685F4 045C lsl r4,r3,11h ; 080685F6 0000 lsl r0,r0,0h ; 080685F8 4803 ldr r0,=456h ;r0 = 1110 [UFO Turtle] 080685FA 4281 cmp r1,r0 ; 080685FC D03E beq 806867Ch ; 080685FE 3005 add r0,5h ; 08068600 4281 cmp r1,r0 ; 08068602 D023 beq 806864Ch ; 08068604 E041 b 806868Ah ;branch to 0806868A 08068606 0000 lsl r0,r0,0h ; 08068608 0456 lsl r6,r2,11h ; 0806860A 0000 lsl r0,r0,0h ; 0806860C 208C mov r0,8Ch ; 0806860E 00C0 lsl r0,r0,3h ; 08068610 4281 cmp r1,r0 ; 08068612 DC04 bgt 806861Eh ; 08068614 3801 sub r0,1h ; 08068616 4281 cmp r1,r0 ; 08068618 DA30 bge 806867Ch ; 0806861A 3802 sub r0,2h ; 0806861C E005 b 806862Ah ; 0806861E 4804 ldr r0,=5ECh ;r0 = 1516 [Spirit of Flames] 08068620 4281 cmp r1,r0 ; 08068622 D00C beq 806863Eh ; 08068624 4281 cmp r1,r0 ; 08068626 DC07 bgt 8068638h ; 08068628 4802 ldr r0,=463h ;r0 = 1123 [Mystic Tomato] 0806862A 4281 cmp r1,r0 ; 0806862C D026 beq 806867Ch ; 0806862E E02C b 806868Ah ;branch to 0806868A 08068630 05EC lsl r4,r5,17h ; 08068632 0000 lsl r0,r0,0h ; 08068634 0463 lsl r3,r4,11h ; 08068636 0000 lsl r0,r0,0h ; 08068638 4803 ldr r0,=5EEh ;r0 = 1518 [The Rock Spirit] 0806863A 4281 cmp r1,r0 ; 0806863C D125 bne 806868Ah ;if (internal_card_id ≠ The Rock Spirit), branch to 0806868A 0806863E 6B28 ldr r0,[r5,30h] ; 08068640 3001 add r0,1h ; 08068642 6328 str r0,[r5,30h] ;increment [r5 + 0x30] 08068644 E021 b 806868Ah ;branch to 0806868A 08068646 0000 lsl r0,r0,0h ;- 08068648 05EE lsl r6,r5,17h ;- 0806864A 0000 lsl r0,r0,0h ;- 0806864C 6B68 ldr r0,[r5,34h] ; 0806864E 3001 add r0,1h ; 08068650 6368 str r0,[r5,34h] ;increment [r5 + 0x34] 08068652 E01A b 806868Ah ;branch to 0806868A 08068654 6BA8 ldr r0,[r5,38h] ; 08068656 3001 add r0,1h ; 08068658 63A8 str r0,[r5,38h] ;increment [r5 + 0x38] 0806865A E016 b 806868Ah ;branch to 0806868A 0806865C 6BE8 ldr r0,[r5,3Ch] ; 0806865E 3001 add r0,1h ; 08068660 63E8 str r0,[r5,3Ch] ;increment [r5 + 0x3C] 08068662 E012 b 806868Ah ;branch to 0806868A 08068664 6C28 ldr r0,[r5,40h] ; 08068666 3001 add r0,1h ; 08068668 6428 str r0,[r5,40h] ;increment [r5 + 0x40] 0806866A E00E b 806868Ah ;branch to 0806868A 0806866C 6C68 ldr r0,[r5,44h] ; 0806866E 3001 add r0,1h ; 08068670 6468 str r0,[r5,44h] ;increment [r5 + 0x44] 08068672 E00A b 806868Ah ;branch to 0806868A 08068674 6CA8 ldr r0,[r5,48h] ; 08068676 3001 add r0,1h ; 08068678 64A8 str r0,[r5,48h] ;increment [r5 + 0x48] 0806867A E006 b 806868Ah ;branch to 0806868A 0806867C 6CE8 ldr r0,[r5,4Ch] ; 0806867E 3001 add r0,1h ; 08068680 64E8 str r0,[r5,4Ch] ;increment [r5 + 0x4C] 08068682 E002 b 806868Ah ;branch to 0806868A 08068684 6DE8 ldr r0,[r5,5Ch] ; 08068686 3001 add r0,1h ; 08068688 65E8 str r0,[r5,5Ch] ;increment [r5 + 0x5C] 0806868A 2401 mov r4,1h ; 0806868C 44A0 add r8,r4 ;r8++ /*(the most inefficient increment in the world)*/ 0806868E 4913 ldr r1,=2018FE4h ; 08068690 2001 mov r0,1h ; 08068692 464A mov r2,r9 ; 08068694 4010 and r0,r2 ; 08068696 4A12 ldr r2,=0D64h ; 08068698 4350 mul r0,r2 ; 0806869A 1840 add r0,r0,r1 ; 0806869C 78C0 ldrb r0,[r0,3h] ; 0806869E 4580 cmp r8,r0 ; 080686A0 DA01 bge 80686A6h ; 080686A2 F7FFFABE bl 8067C22h ; 080686A6 4A0D ldr r2,=2018FE4h ; 080686A8 2001 mov r0,1h ; 080686AA 464C mov r4,r9 ; 080686AC 4020 and r0,r4 ; 080686AE 490C ldr r1,=0D64h ; 080686B0 4348 mul r0,r1 ; 080686B2 1880 add r0,r0,r2 ; 080686B4 7940 ldrb r0,[r0,5h] ; 080686B6 60E8 str r0,[r5,0Ch] ; 080686B8 6828 ldr r0,[r5] ; 080686BA 6869 ldr r1,[r5,4h] ; 080686BC 1840 add r0,r0,r1 ; 080686BE 68A9 ldr r1,[r5,8h] ; 080686C0 1840 add r0,r0,r1 ; 080686C2 6929 ldr r1,[r5,10h] ; 080686C4 1840 add r0,r0,r1 ; 080686C6 6969 ldr r1,[r5,14h] ; 080686C8 1840 add r0,r0,r1 ; 080686CA 61A8 str r0,[r5,18h] ; 080686CC B001 add sp,4h ; 080686CE BC18 pop r3,r4 ; 080686D0 4698 mov r8,r3 ; 080686D2 46A1 mov r9,r4 ; 080686D4 BCF0 pop r4-r7 ; 080686D6 BC01 pop r0 ; 080686D8 4700 bx r0 ;
0x68FB0
- Arguments:
- r0 : [30048B0] >> 1
- r1 : max_cpu_deck_size
08068FB0 B5F0 push r4-r7,r14 ; 08068FB2 4647 mov r7,r8 ; 08068FB4 B480 push r7 ; 08068FB6 B083 add sp,-0Ch ; 08068FB8 4680 mov r8,r0 ;r8 = [30048B0] >> 1 08068FBA 2927 cmp r1,27h ; 08068FBC DC00 bgt 8068FC0h ;if (max_cpu_deck_size > 39), skip next instruction 08068FBE 2128 mov r1,28h ;max_cpu_deck_size = 40 08068FC0 480D ldr r0,=2018FE4h ; 08068FC2 4A0E ldr r2,=0D67h ; 08068FC4 1880 add r0,r0,r2 ; 08068FC6 7800 ldrb r0,[r0] ;r0 = number_of_cards_in_cpu_deck 08068FC8 1A0E sub r6,r1,r0 ;r6 = max_cpu_deck_size - number_of_cards_in_cpu_deck 08068FCA 2E00 cmp r6,0h ; 08068FCC DD5A ble 8069084h ;if (number_of_free_slots_in_cpu_deck ≤ 0), branch to 0x8069084 08068FCE 480C ldr r0,=2015BE8h ; 08068FD0 6840 ldr r0,[r0,4h] ;r0 = CPU opponent group flags 08068FD2 2101 mov r1,1h ; 08068FD4 4008 and r0,r1 ; 08068FD6 2800 cmp r0,0h ; 08068FD8 D014 beq 8069004h ;if (bit_1_not_set), branch to 0x8069004 (pop r3 in r8, pop r4-r7, pop r0) 08068FDA 00B4 lsl r4,r6,2h ; 08068FDC 19A4 add r4,r4,r6 ; 08068FDE 0060 lsl r0,r4,1h ;r0 = (max_cpu_deck_size - number_of_cards_in_cpu_deck) × 18 08068FE0 9000 str r0,[sp] ; 08068FE2 213C mov r1,3Ch ;r1 = 60 08068FE4 F02BFC98 bl 8094918h ; 08068FE8 1C05 mov r5,r0 ; 08068FEA 9500 str r5,[sp] ; 08068FEC 00A4 lsl r4,r4,2h ; 08068FEE 9401 str r4,[sp,4h] ; 08068FF0 1C20 mov r0,r4 ; 08068FF2 213C mov r1,3Ch ;r1 = 60 08068FF4 E013 b 806901Eh ;
0x69084 (pop r3 in r8, pop r4-r7, pop r0)
08069084 B003 add sp,0Ch ; 08069086 BC08 pop r3 ; 08069088 4698 mov r8,r3 ; 0806908A BCF0 pop r4-r7 ; 0806908C BC01 pop r0 ; 0806908E 4700 bx r0 ;
CPU decks main cards
Each of these arrays is preceded by a subroutine reading this array, and having a few more hard-coded cards in it.
Mokuba
Mokuba's deck subroutine
Mokuba card_id array
Tea Gardner
Tea Gardner's deck subroutine
Tea Gardner card_id array
Trusdale
Trusdale's deck subroutine
Trusdale card_id array
Rex Raptor
Rex Raptor's deck subroutine
Rex Raptor card_id array
Espa Roba
Espa Roba's deck subroutine
Espa Roba card_id array
Mako Tsunami
Mako Tsunami's deck subroutine
Mako Tsunami card_id array
Mai Valentine
Mai Valentine's deck subroutine
Mai Valentine card_id array
Bandit Keith
Bandit Keith's deck subroutine
0806996C 4C47 ldr r4,=183h ;Pendulum Machine, from array 0806996E 2001 mov r0,1h ; 08069970 1C21 mov r1,r4 ; 08069972 F7FDFF77 bl 8067864h ; 08069976 2001 mov r0,1h ; 08069978 1C21 mov r1,r4 ; 0806997A F7FDFF73 bl 8067864h ; 0806997E 4944 ldr r1,=185h ;Launcher Spider 08069980 2001 mov r0,1h ; 08069982 F7FDFF6F bl 8067864h ; 08069986 21C3 mov r1,0C3h ; 08069988 0049 lsl r1,r1,1h ; 0806998A 2001 mov r0,1h ; 0806998C F7FDFF6A bl 8067864h ; 08069990 341B add r4,1Bh ; 08069992 2001 mov r0,1h ; 08069994 1C21 mov r1,r4 ; 08069996 F7FDFF65 bl 8067864h ; 0806999A 2001 mov r0,1h ; 0806999C 1C21 mov r1,r4 ; 0806999E F7FDFF61 bl 8067864h ; 080699A2 3462 add r4,62h ; 080699A4 2001 mov r0,1h ; 080699A6 1C21 mov r1,r4 ; 080699A8 F7FDFF5C bl 8067864h ; 080699AC 2001 mov r0,1h ; 080699AE 1C21 mov r1,r4 ; 080699B0 F7FDFF58 bl 8067864h ; 080699B4 4937 ldr r1,=2D2h ;Slot Machine 080699B6 2001 mov r0,1h ; 080699B8 F7FDFF54 bl 8067864h ; 080699BC 4C36 ldr r4,=31Eh ;Cyber-Tech Alligator 080699BE 2001 mov r0,1h ; 080699C0 1C21 mov r1,r4 ; 080699C2 F7FDFF4F bl 8067864h ; 080699C6 2001 mov r0,1h ; 080699C8 1C21 mov r1,r4 ; 080699CA F7FDFF4B bl 8067864h ; 080699CE 4C33 ldr r4,=51Dh ;Oni Tank T-34 080699D0 2001 mov r0,1h ; 080699D2 1C21 mov r1,r4 ; 080699D4 F7FDFF46 bl 8067864h ; 080699D8 2001 mov r0,1h ; 080699DA 1C21 mov r1,r4 ; 080699DC F7FDFF42 bl 8067864h ; 080699E0 3401 add r4,1h ; 080699E2 2001 mov r0,1h ; 080699E4 1C21 mov r1,r4 ; 080699E6 F7FDFF3D bl 8067864h ; 080699EA 2001 mov r0,1h ; 080699EC 1C21 mov r1,r4 ; 080699EE F7FDFF39 bl 8067864h ; 080699F2 4C2B ldr r4,=2E6h ;Barrel Dragon 080699F4 2001 mov r0,1h ; 080699F6 1C21 mov r1,r4 ; 080699F8 F7FDFF34 bl 8067864h ; 080699FC 2001 mov r0,1h ; 080699FE 1C21 mov r1,r4 ; 08069A00 F7FDFF30 bl 8067864h ; 08069A04 2001 mov r0,1h ; 08069A06 1C21 mov r1,r4 ; 08069A08 F7FDFF2C bl 8067864h ; 08069A0C 4C25 ldr r4,=4E5h ;Kinetic Soldier - BUG: this card is only in the Japanese Duel Monster 6 08069A0E 2001 mov r0,1h ; 08069A10 1C21 mov r1,r4 ; 08069A12 F7FDFF27 bl 8067864h ; 08069A16 2001 mov r0,1h ; 08069A18 1C21 mov r1,r4 ; 08069A1A F7FDFF23 bl 8067864h ; 08069A1E 4C22 ldr r4,=3C2h ;7 Completed 08069A20 2001 mov r0,1h ; 08069A22 1C21 mov r1,r4 ; 08069A24 F7FDFF1E bl 8067864h ; 08069A28 2001 mov r0,1h ; 08069A2A 1C21 mov r1,r4 ; 08069A2C F7FDFF1A bl 8067864h ; 08069A30 2001 mov r0,1h ; 08069A32 1C21 mov r1,r4 ; 08069A34 F7FDFF16 bl 8067864h ; 08069A38 21FC mov r1,0FCh ; 08069A3A 0089 lsl r1,r1,2h ; 08069A3C 2001 mov r0,1h ; 08069A3E F7FDFF11 bl 8067864h ; 08069A42 491A ldr r1,=403h ;Change of Heart 08069A44 2001 mov r0,1h ; 08069A46 F7FDFF0D bl 8067864h ; 08069A4A 4919 ldr r1,=42Ch ;Snatch Steal 08069A4C 2001 mov r0,1h ; 08069A4E F7FDFF09 bl 8067864h ; 08069A52 34C6 add r4,0C6h ; 08069A54 2001 mov r0,1h ; 08069A56 1C21 mov r1,r4 ; 08069A58 F7FDFF04 bl 8067864h ; 08069A5C 2001 mov r0,1h ; 08069A5E 1C21 mov r1,r4 ; 08069A60 F7FDFF00 bl 8067864h ; 08069A64 4913 ldr r1,=522h ;Limiter Removal 08069A66 2001 mov r0,1h ; 08069A68 F7FDFEFC bl 8067864h ; 08069A6C 3C9E sub r4,9Eh ; 08069A6E 2001 mov r0,1h ; 08069A70 1C21 mov r1,r4 ; 08069A72 F7FDFEF7 bl 8067864h ; 08069A76 2001 mov r0,1h ; 08069A78 1C21 mov r1,r4 ; 08069A7A F7FDFEF3 bl 8067864h ; 08069A7E 2001 mov r0,1h ; 08069A80 1C21 mov r1,r4 ; 08069A82 F7FDFEEF bl 8067864h ; 08069A86 4C0C ldr r4,=517h ;Gamble 08069A88 F001FA45 bl 806AF16h ;
Bandit Keith card_id array
83 01 00 00 85 01 00 00 D2 02 00 00 1E 03 00 00 1D 05 00 00 E6 02 00 00 E5 04 00 00 C2 03 00 00 03 04 00 00 2C 04 00 00 22 05 00 00 17 05 00 00 Pendulum Machine Launcher Spider Slot Machine Cyber-Tech Alligator Oni Tank T-34 Barrel Dragon Kinetic Soldier - BUG: this card is only in the Japanese Duel Monster 6 7 Completed Change of Heart Snatch Steal Limiter Removal Gamble
Joey Wheeler
Joey Wheeler's deck subroutine
08069ABC 2001 mov r0,1h ; 08069ABE 2103 mov r1,3h ;Baby Dragon 08069AC0 F7FDFED0 bl 8067864h ; 08069AC4 2001 mov r0,1h ; 08069AC6 2115 mov r1,15h ;Summoned Skull 08069AC8 F7FDFECC bl 8067864h ; 08069ACC 2001 mov r0,1h ; 08069ACE 2115 mov r1,15h ;Summoned Skull 08069AD0 F7FDFEC8 bl 8067864h ; 08069AD4 2001 mov r0,1h ; 08069AD6 2115 mov r1,15h ;Summoned Skull 08069AD8 F7FDFEC4 bl 8067864h ; 08069ADC 2001 mov r0,1h ; 08069ADE 214D mov r1,4Dh ;Axe Raider 08069AE0 F7FDFEC0 bl 8067864h ; 08069AE4 2001 mov r0,1h ; 08069AE6 214D mov r1,4Dh ;Axe Raider 08069AE8 F7FDFEBC bl 8067864h ; 08069AEC 2001 mov r0,1h ; 08069AEE 214D mov r1,4Dh ;Axe Raider 08069AF0 F7FDFEB8 bl 8067864h ; 08069AF4 2001 mov r0,1h ; 08069AF6 2151 mov r1,51h ;Red-Eyes B. Dragon 08069AF8 F7FDFEB4 bl 8067864h ; 08069AFC 494E ldr r1,=14Fh ;Dark Hole, from array 08069AFE 2001 mov r0,1h ; 08069B00 F7FDFEB0 bl 8067864h ; 08069B04 21A8 mov r1,0A8h ; 08069B06 0049 lsl r1,r1,1h ; 08069B08 2001 mov r0,1h ; 08069B0A F7FDFEAB bl 8067864h ; 08069B0E 494B ldr r1,=15Bh ; 08069B10 2001 mov r0,1h ; 08069B12 F7FDFEA7 bl 8067864h ; 08069B16 24BE mov r4,0BEh ; 08069B18 00A4 lsl r4,r4,2h ; 08069B1A 2001 mov r0,1h ; 08069B1C 1C21 mov r1,r4 ; 08069B1E F7FDFEA1 bl 8067864h ; 08069B22 2001 mov r0,1h ; 08069B24 1C21 mov r1,r4 ; 08069B26 F7FDFE9D bl 8067864h ; 08069B2A 2001 mov r0,1h ; 08069B2C 1C21 mov r1,r4 ; 08069B2E F7FDFE99 bl 8067864h ; 08069B32 2001 mov r0,1h ; 08069B34 210F mov r1,0Fh ; 08069B36 F7FDFE95 bl 8067864h ; 08069B3A 21BA mov r1,0BAh ; 08069B3C 0089 lsl r1,r1,2h ; 08069B3E 2001 mov r0,1h ; 08069B40 F7FDFE90 bl 8067864h ; 08069B44 493E ldr r1,=2EFh ; 08069B46 2001 mov r0,1h ; 08069B48 F7FDFE8C bl 8067864h ; 08069B4C 24A8 mov r4,0A8h ; 08069B4E 00E4 lsl r4,r4,3h ; 08069B50 2001 mov r0,1h ; 08069B52 1C21 mov r1,r4 ; 08069B54 F7FDFE86 bl 8067864h ; 08069B58 2001 mov r0,1h ; 08069B5A 1C21 mov r1,r4 ; 08069B5C F7FDFE82 bl 8067864h ; 08069B60 2001 mov r0,1h ; 08069B62 1C21 mov r1,r4 ; 08069B64 F7FDFE7E bl 8067864h ; 08069B68 3407 add r4,7h ; 08069B6A 2001 mov r0,1h ; 08069B6C 1C21 mov r1,r4 ; 08069B6E F7FDFE79 bl 8067864h ; 08069B72 2001 mov r0,1h ; 08069B74 1C21 mov r1,r4 ; 08069B76 F7FDFE75 bl 8067864h ; 08069B7A 2001 mov r0,1h ; 08069B7C 1C21 mov r1,r4 ; 08069B7E F7FDFE71 bl 8067864h ; 08069B82 34AC add r4,0ACh ; 08069B84 2001 mov r0,1h ; 08069B86 1C21 mov r1,r4 ; 08069B88 F7FDFE6C bl 8067864h ; 08069B8C 2001 mov r0,1h ; 08069B8E 1C21 mov r1,r4 ; 08069B90 F7FDFE68 bl 8067864h ; 08069B94 2001 mov r0,1h ; 08069B96 1C21 mov r1,r4 ; 08069B98 F7FDFE64 bl 8067864h ; 08069B9C 2001 mov r0,1h ; 08069B9E 21D8 mov r1,0D8h ; 08069BA0 F7FDFE60 bl 8067864h ; 08069BA4 21CB mov r1,0CBh ; 08069BA6 0089 lsl r1,r1,2h ; 08069BA8 2001 mov r0,1h ; 08069BAA F7FDFE5B bl 8067864h ; 08069BAE 24F2 mov r4,0F2h ; 08069BB0 00A4 lsl r4,r4,2h ; 08069BB2 2001 mov r0,1h ; 08069BB4 1C21 mov r1,r4 ; 08069BB6 F7FDFE55 bl 8067864h ; 08069BBA 2001 mov r0,1h ; 08069BBC 1C21 mov r1,r4 ; 08069BBE F7FDFE51 bl 8067864h ; 08069BC2 3423 add r4,23h ; 08069BC4 2001 mov r0,1h ; 08069BC6 1C21 mov r1,r4 ; 08069BC8 F7FDFE4C bl 8067864h ; 08069BCC 2001 mov r0,1h ; 08069BCE 1C21 mov r1,r4 ; 08069BD0 F7FDFE48 bl 8067864h ; 08069BD4 21FC mov r1,0FCh ; 08069BD6 0089 lsl r1,r1,2h ; 08069BD8 2001 mov r0,1h ; 08069BDA F7FDFE43 bl 8067864h ; 08069BDE 4919 ldr r1,=403h ; 08069BE0 2001 mov r0,1h ; 08069BE2 F7FDFE3F bl 8067864h ; 08069BE6 2182 mov r1,82h ; 08069BE8 00C9 lsl r1,r1,3h ; 08069BEA 2001 mov r0,1h ; 08069BEC F7FDFE3A bl 8067864h ; 08069BF0 4915 ldr r1,=42Ch ; 08069BF2 2001 mov r0,1h ; 08069BF4 F7FDFE36 bl 8067864h ; 08069BF8 349D add r4,9Dh ; 08069BFA 2001 mov r0,1h ; 08069BFC 1C21 mov r1,r4 ; 08069BFE F7FDFE31 bl 8067864h ; 08069C02 2001 mov r0,1h ; 08069C04 1C21 mov r1,r4 ; 08069C06 F7FDFE2D bl 8067864h ; 08069C0A 3CDD sub r4,0DDh ; 08069C0C 2001 mov r0,1h ; 08069C0E 1C21 mov r1,r4 ; 08069C10 F7FDFE28 bl 8067864h ; 08069C14 2001 mov r0,1h ; 08069C16 1C21 mov r1,r4 ; 08069C18 F7FDFE24 bl 8067864h ; 08069C1C 3433 add r4,33h ; 08069C1E 2001 mov r0,1h ; 08069C20 1C21 mov r1,r4 ; 08069C22 F7FDFE1F bl 8067864h ; 08069C26 2001 mov r0,1h ; 08069C28 1C21 mov r1,r4 ; 08069C2A F7FDFE1B bl 8067864h ; 08069C2E 2184 mov r1,84h ; 08069C30 00C9 lsl r1,r1,3h ; 08069C32 F001F88B bl 806AD4Ch ;
Joey Wheeler card_id array
4F 01 00 00 5B 01 00 00 EF 02 00 00 03 04 00 00 2C 04 00 00 Dark Hole Swords of Revealing Light Jinzo Change of Heart Snatch Steal
Mind-controlled Tea
Mind-controlled Tea's deck subroutine
08069C4C 2001 mov r0,1h ;is_cpu_deck_flag = 1 08069C4E 21A5 mov r1,0A5h ;Mysterious Puppeteer 08069C50 F7FDFE08 bl 8067864h ; 08069C54 2001 mov r0,1h ; 08069C56 21A5 mov r1,0A5h ;Mysterious Puppeteer 08069C58 F7FDFE04 bl 8067864h ; 08069C5C 4C58 ldr r4,=45Bh ;Nimble Momonga, from array 08069C5E 2001 mov r0,1h ; 08069C60 1C21 mov r1,r4 ; 08069C62 F7FDFDFF bl 8067864h ; 08069C66 2001 mov r0,1h ; 08069C68 1C21 mov r1,r4 ; 08069C6A F7FDFDFB bl 8067864h ; 08069C6E 2001 mov r0,1h ; 08069C70 1C21 mov r1,r4 ; 08069C72 F7FDFDF7 bl 8067864h ; 08069C76 4C53 ldr r4,=59Ah ;Fire Princess, from array 08069C78 2001 mov r0,1h ; 08069C7A 1C21 mov r1,r4 ; 08069C7C F7FDFDF2 bl 8067864h ; 08069C80 2001 mov r0,1h ; 08069C82 1C21 mov r1,r4 ; 08069C84 F7FDFDEE bl 8067864h ; 08069C88 2001 mov r0,1h ; 08069C8A 1C21 mov r1,r4 ; 08069C8C F7FDFDEA bl 8067864h ; 08069C90 340A add r4,0Ah ;The Forgiving Maiden 08069C92 2001 mov r0,1h ; 08069C94 1C21 mov r1,r4 ; 08069C96 F7FDFDE5 bl 8067864h ; 08069C9A 2001 mov r0,1h ; 08069C9C 1C21 mov r1,r4 ; 08069C9E F7FDFDE1 bl 8067864h ; 08069CA2 2001 mov r0,1h ; 08069CA4 1C21 mov r1,r4 ; 08069CA6 F7FDFDDD bl 8067864h ; 08069CAA 3402 add r4,2h ;Marie the Fallen One 08069CAC 2001 mov r0,1h ; 08069CAE 1C21 mov r1,r4 ; 08069CB0 F7FDFDD8 bl 8067864h ; 08069CB4 2001 mov r0,1h ; 08069CB6 1C21 mov r1,r4 ; 08069CB8 F7FDFDD4 bl 8067864h ; 08069CBC 2001 mov r0,1h ; 08069CBE 1C21 mov r1,r4 ; 08069CC0 F7FDFDD0 bl 8067864h ; 08069CC4 4940 ldr r1,=5A5h ;St. Joan, from array 08069CC6 2001 mov r0,1h ; 08069CC8 F7FDFDCC bl 8067864h ; 08069CCC 493F ldr r1,=14Fh ;Dark Hole, from array 08069CCE 2001 mov r0,1h ; 08069CD0 F7FDFDC8 bl 8067864h ; 08069CD4 21A8 mov r1,0A8h ; 08069CD6 0049 lsl r1,r1,1h ;Raigeki 08069CD8 2001 mov r0,1h ; 08069CDA F7FDFDC3 bl 8067864h ; 08069CDE 4C3C ldr r4,=155h ;Dian Keto the Cure Master, from array 08069CE0 2001 mov r0,1h ; 08069CE2 1C21 mov r1,r4 ; 08069CE4 F7FDFDBE bl 8067864h ; 08069CE8 2001 mov r0,1h ; 08069CEA 1C21 mov r1,r4 ; 08069CEC F7FDFDBA bl 8067864h ; 08069CF0 2001 mov r0,1h ; 08069CF2 1C21 mov r1,r4 ; 08069CF4 F7FDFDB6 bl 8067864h ; 08069CF8 4936 ldr r1,=15Bh ;Swords of Revealing Light, from array 08069CFA 2001 mov r0,1h ; 08069CFC F7FDFDB2 bl 8067864h ; 08069D00 21FC mov r1,0FCh ;Monster Reborn 08069D02 0089 lsl r1,r1,2h ; 08069D04 2001 mov r0,1h ; 08069D06 F7FDFDAD bl 8067864h ; 08069D0A 4933 ldr r1,=403h ;Change of Heart, from array 08069D0C 2001 mov r0,1h ; 08069D0E F7FDFDA9 bl 8067864h ; 08069D12 4932 ldr r1,=40Ah ;Polymerization, from array 08069D14 2001 mov r0,1h ; 08069D16 F7FDFDA5 bl 8067864h ; 08069D1A 2182 mov r1,82h ; 08069D1C 00C9 lsl r1,r1,3h ;Fusion Sage 08069D1E 2001 mov r0,1h ; 08069D20 F7FDFDA0 bl 8067864h ; 08069D24 4C2E ldr r4,=427h ;Gravekeeper's Servant 08069D26 2001 mov r0,1h ; 08069D28 1C21 mov r1,r4 ; 08069D2A F7FDFD9B bl 8067864h ; 08069D2E 2001 mov r0,1h ; 08069D30 1C21 mov r1,r4 ; 08069D32 F7FDFD97 bl 8067864h ; 08069D36 492B ldr r1,=42Ch ;Snatch Steal, from array 08069D38 2001 mov r0,1h ; 08069D3A F7FDFD93 bl 8067864h ; 08069D3E 3C7C sub r4,7Ch ;Bell of Destruction 08069D40 2001 mov r0,1h ; 08069D42 1C21 mov r1,r4 ; 08069D44 F7FDFD8E bl 8067864h ; 08069D48 2001 mov r0,1h ; 08069D4A 1C21 mov r1,r4 ; 08069D4C F7FDFD8A bl 8067864h ; 08069D50 343F add r4,3Fh ;Trap Hole 08069D52 2001 mov r0,1h ; 08069D54 1C21 mov r1,r4 ; 08069D56 F7FDFD85 bl 8067864h ; 08069D5A 2001 mov r0,1h ; 08069D5C 1C21 mov r1,r4 ; 08069D5E F7FDFD81 bl 8067864h ; 08069D62 2001 mov r0,1h ; 08069D64 1C21 mov r1,r4 ; 08069D66 F7FDFD7D bl 8067864h ; 08069D6A 2184 mov r1,84h ;Mirror Force 08069D6C 00C9 lsl r1,r1,3h ; 08069D6E 2001 mov r0,1h ; 08069D70 F7FDFD78 bl 8067864h ; 08069D74 345A add r4,5Ah ;Gift of The Mystical Elf 08069D76 2001 mov r0,1h ; 08069D78 1C21 mov r1,r4 ; 08069D7A F7FDFD73 bl 8067864h ; 08069D7E 2001 mov r0,1h ; 08069D80 1C21 mov r1,r4 ; 08069D82 F7FDFD6F bl 8067864h ; 08069D86 2001 mov r0,1h ; 08069D88 1C21 mov r1,r4 ; 08069D8A F7FDFD6B bl 8067864h ; 08069D8E 3406 add r4,6h ;Enchanted Javelin 08069D90 2001 mov r0,1h ; 08069D92 1C21 mov r1,r4 ; 08069D94 F7FDFD66 bl 8067864h ; 08069D98 2001 mov r0,1h ; 08069D9A 1C21 mov r1,r4 ; 08069D9C F7FDFD62 bl 8067864h ; 08069DA0 342A add r4,2Ah ;Numinous Healer 08069DA2 2001 mov r0,1h ; 08069DA4 1C21 mov r1,r4 ; 08069DA6 F7FDFD5D bl 8067864h ; 08069DAA 2001 mov r0,1h ; 08069DAC 1C21 mov r1,r4 ; 08069DAE F7FDFD59 bl 8067864h ; 08069DB2 2001 mov r0,1h ; 08069DB4 1C21 mov r1,r4 ; 08069DB6 F7FDFD55 bl 8067864h ; 08069DBA 34B9 add r4,0B9h ;Shadow of Eyes 08069DBC F001F8AF bl 806AF1Eh ;
Mind-controlled Tea card_id array
- 0x69DC0
5B 04 00 00 9A 05 00 00 A5 05 00 00 4F 01 00 00 55 01 00 00 5B 01 00 00 03 04 00 00 0A 04 00 00 27 04 00 00 2C 04 00 00 Nimble Momonga Fire Princess St. Joan Dark Hole Dian Keto the Cure Master Swords of Revealing Light Change of Heart Polymerization Gravekeeper's Servant Snatch Steal
Rare Hunter
Rare Hunter's deck subroutine
08069DE8 2001 mov r0,1h ;is_cpu_deck_flag = 1 08069DEA 2110 mov r1,10h ;Right Leg of the Forbidden One 08069DEC F7FDFD3A bl 8067864h ; 08069DF0 2001 mov r0,1h ; 08069DF2 2111 mov r1,11h ;Left Leg of the Forbidden One 08069DF4 F7FDFD36 bl 8067864h ; 08069DF8 2001 mov r0,1h ; 08069DFA 2112 mov r1,12h ;Right Arm of the Forbidden One 08069DFC F7FDFD32 bl 8067864h ; 08069E00 2001 mov r0,1h ; 08069E02 2113 mov r1,13h ;Left Arm of the Forbidden One 08069E04 F7FDFD2E bl 8067864h ; 08069E08 2001 mov r0,1h ; 08069E0A 2114 mov r1,14h ;Exodia the Forbidden One 08069E0C F7FDFD2A bl 8067864h ; 08069E10 2001 mov r0,1h ; 08069E12 212F mov r1,2Fh ;Sangan 08069E14 F7FDFD26 bl 8067864h ; 08069E18 2001 mov r0,1h ; 08069E1A 212F mov r1,2Fh ;Sangan 08069E1C F7FDFD22 bl 8067864h ; 08069E20 2001 mov r0,1h ; 08069E22 21AA mov r1,0AAh ;Big Eye 08069E24 F7FDFD1E bl 8067864h ; 08069E28 2001 mov r0,1h ; 08069E2A 21AA mov r1,0AAh ;Big Eye 08069E2C F7FDFD1A bl 8067864h ; 08069E30 4C3E ldr r4,=1ABh ;Magician of Faith, from array 08069E32 2001 mov r0,1h ; 08069E34 1C21 mov r1,r4 ; 08069E36 F7FDFD15 bl 8067864h ; 08069E3A 2001 mov r0,1h ; 08069E3C 1C21 mov r1,r4 ; 08069E3E F7FDFD11 bl 8067864h ; 08069E42 3454 add r4,54h ;Cannon Soldier 08069E44 2001 mov r0,1h ; 08069E46 1C21 mov r1,r4 ; 08069E48 F7FDFD0C bl 8067864h ; 08069E4C 2001 mov r0,1h ; 08069E4E 1C21 mov r1,r4 ; 08069E50 F7FDFD08 bl 8067864h ; 08069E54 341C add r4,1Ch ;Skelengel 08069E56 2001 mov r0,1h ; 08069E58 1C21 mov r1,r4 ; 08069E5A F7FDFD03 bl 8067864h ; 08069E5E 2001 mov r0,1h ; 08069E60 1C21 mov r1,r4 ; 08069E62 F7FDFCFF bl 8067864h ; 08069E66 2001 mov r0,1h ; 08069E68 1C21 mov r1,r4 ; 08069E6A F7FDFCFB bl 8067864h ; 08069E6E 3422 add r4,22h ;Witch of the Black Forest 08069E70 2001 mov r0,1h ; 08069E72 1C21 mov r1,r4 ; 08069E74 F7FDFCF6 bl 8067864h ; 08069E78 2001 mov r0,1h ; 08069E7A 1C21 mov r1,r4 ; 08069E7C F7FDFCF2 bl 8067864h ; 08069E80 341C add r4,1Ch ;Penguin Soldier 08069E82 2001 mov r0,1h ; 08069E84 1C21 mov r1,r4 ; 08069E86 F7FDFCED bl 8067864h ; 08069E8A 2001 mov r0,1h ; 08069E8C 1C21 mov r1,r4 ; 08069E8E F7FDFCE9 bl 8067864h ; 08069E92 4C27 ldr r4,=463h ;Mystic Tomato, from array 08069E94 2001 mov r0,1h ; 08069E96 1C21 mov r1,r4 ; 08069E98 F7FDFCE4 bl 8067864h ; 08069E9C 2001 mov r0,1h ; 08069E9E 1C21 mov r1,r4 ; 08069EA0 F7FDFCE0 bl 8067864h ; 08069EA4 4923 ldr r1,=14Fh ;Dark Hole, from array 08069EA6 2001 mov r0,1h ; 08069EA8 F7FDFCDC bl 8067864h ; 08069EAC 21A8 mov r1,0A8h ; 08069EAE 0049 lsl r1,r1,1h ;Raigeki 08069EB0 2001 mov r0,1h ; 08069EB2 F7FDFCD7 bl 8067864h ; 08069EB6 4920 ldr r1,=15Bh ;Swords of Revealing Light, from array 08069EB8 2001 mov r0,1h ; 08069EBA F7FDFCD3 bl 8067864h ; 08069EBE 3C9B sub r4,9Bh ;Turtle Tiger 08069EC0 2001 mov r0,1h ; 08069EC2 1C21 mov r1,r4 ; 08069EC4 F7FDFCCE bl 8067864h ; 08069EC8 2001 mov r0,1h ; 08069ECA 1C21 mov r1,r4 ; 08069ECC F7FDFCCA bl 8067864h ; 08069ED0 21FC mov r1,0FCh ;Monster Reborn 08069ED2 0089 lsl r1,r1,2h ; 08069ED4 2001 mov r0,1h ; 08069ED6 F7FDFCC5 bl 8067864h ; 08069EDA 4918 ldr r1,=3F2h ;Pot of Greed, from array 08069EDC 2001 mov r0,1h ; 08069EDE F7FDFCC1 bl 8067864h ; 08069EE2 4917 ldr r1,=403h ;Change of Heart, from array 08069EE4 2001 mov r0,1h ; 08069EE6 F7FDFCBD bl 8067864h ; 08069EEA 3C08 sub r4,8h ;White Hole 08069EEC 2001 mov r0,1h ; 08069EEE 1C21 mov r1,r4 ; 08069EF0 F7FDFCB8 bl 8067864h ; 08069EF4 2001 mov r0,1h ; 08069EF6 1C21 mov r1,r4 ; 08069EF8 F7FDFCB4 bl 8067864h ; 08069EFC 2184 mov r1,84h ;Mirror Force 08069EFE 00C9 lsl r1,r1,3h ; 08069F00 2001 mov r0,1h ; 08069F02 F7FDFCAF bl 8067864h ; 08069F06 490F ldr r1,=447h ;Call Of The Haunted, from array 08069F08 2001 mov r0,1h ; 08069F0A F7FDFCAB bl 8067864h ; 08069F0E 490E ldr r1,=475h ;Appropriate, 08069F10 2001 mov r0,1h ; 08069F12 F7FDFCA7 bl 8067864h ; 08069F16 490D ldr r1,=47Bh ;Backup Soldier, from array 08069F18 2001 mov r0,1h ; 08069F1A F7FDFCA3 bl 8067864h ; 08069F1E 490C ldr r1,=4BEh ;Magic Cylinder, from array 08069F20 2001 mov r0,1h ; 08069F22 F7FDFC9F bl 8067864h ; 08069F26 4C0B ldr r4,=5A7h ;Jar of Greed, from array 08069F28 F000FFF5 bl 806AF16h ;
Rare Hunter card_id array
- 0x69F2C
AB 01 00 00 63 04 00 00 4F 01 00 00 5B 01 00 00 F2 03 00 00 03 04 00 00 47 04 00 00 75 04 00 00 7B 04 00 00 BE 04 00 00 A7 05 00 00 Magician of Faith Mystic Tomato Dark Hole Swords of Revealing Light Pot of Greed Change of Heart Call Of The Haunted Appropriate Backup Soldier Magic Cylinder Jar of Greed
Arkana
Arkana's deck subroutine
08069F58 4C27 ldr r4,=4BAh ;Dark Magician, from array 08069F5A 2001 mov r0,1h ;is_cpu_deck_flag = 1 08069F5C 1C21 mov r1,r4 ; 08069F5E F7FDFC81 bl 8067864h ; 08069F62 2001 mov r0,1h ; 08069F64 1C21 mov r1,r4 ; 08069F66 F7FDFC7D bl 8067864h ; 08069F6A 2001 mov r0,1h ; 08069F6C 1C21 mov r1,r4 ; 08069F6E F7FDFC79 bl 8067864h ; 08069F72 4C22 ldr r4,=1FFh ;Cannon Soldier, from array 08069F74 2001 mov r0,1h ; 08069F76 1C21 mov r1,r4 ; 08069F78 F7FDFC74 bl 8067864h ; 08069F7C 2001 mov r0,1h ; 08069F7E 1C21 mov r1,r4 ; 08069F80 F7FDFC70 bl 8067864h ; 08069F84 491E ldr r1,=14Fh ;Dark Hole, from array 08069F86 2001 mov r0,1h ; 08069F88 F7FDFC6C bl 8067864h ; 08069F8C 21A8 mov r1,0A8h ; 08069F8E 0049 lsl r1,r1,1h ; 08069F90 2001 mov r0,1h ; 08069F92 F7FDFC67 bl 8067864h ; 08069F96 491B ldr r1,=15Bh ;Swords of Revealing Light, from array 08069F98 2001 mov r0,1h ; 08069F9A F7FDFC63 bl 8067864h ; 08069F9E 21FC mov r1,0FCh ; 08069FA0 0089 lsl r1,r1,2h ;Monster Reborn 08069FA2 2001 mov r0,1h ; 08069FA4 F7FDFC5E bl 8067864h ; 08069FA8 4917 ldr r1,=403h ;Change of Heart, from array 08069FAA 2001 mov r0,1h ; 08069FAC F7FDFC5A bl 8067864h ; 08069FB0 4916 ldr r1,=42Ch ;Snatch Steal, from array 08069FB2 2001 mov r0,1h ; 08069FB4 F7FDFC56 bl 8067864h ; 08069FB8 2491 mov r4,91h ; 08069FBA 00E4 lsl r4,r4,3h ;Premature Burial 08069FBC 2001 mov r0,1h ; 08069FBE 1C21 mov r1,r4 ; 08069FC0 F7FDFC50 bl 8067864h ; 08069FC4 2001 mov r0,1h ; 08069FC6 1C21 mov r1,r4 ; 08069FC8 F7FDFC4C bl 8067864h ; 08069FCC 3CDD sub r4,0DDh ;Bell of Destruction 08069FCE 2001 mov r0,1h ; 08069FD0 1C21 mov r1,r4 ; 08069FD2 F7FDFC47 bl 8067864h ; 08069FD6 2001 mov r0,1h ; 08069FD8 1C21 mov r1,r4 ; 08069FDA F7FDFC43 bl 8067864h ; 08069FDE 21F0 mov r1,0F0h ; 08069FE0 0089 lsl r1,r1,2h ;Negate Attack 08069FE2 2001 mov r0,1h ; 08069FE4 F7FDFC3E bl 8067864h ; 08069FE8 2184 mov r1,84h ; 08069FEA 00C9 lsl r1,r1,3h ;Mirror Force 08069FEC 2001 mov r0,1h ; 08069FEE F7FDFC39 bl 8067864h ; 08069FF2 4907 ldr r1,=447h ;Call Of The Haunted, from array 08069FF4 F000FEAA bl 806AD4Ch ;
Arkana card_id array
- 0x69FF8
BA 04 00 00 FF 01 00 00 4F 01 00 00 5B 01 00 00 03 04 00 00 2C 04 00 00 47 04 00 00 Dark Magician Cannon Soldier Dark Hole Swords of Revealing Light Change of Heart Snatch Steal Call Of The Haunted
Strings
Strings' deck subroutine
0806A014 2001 mov r0,1h ;is_cpu_deck_flag = 1 0806A016 2115 mov r1,15h ;Summoned Skull 0806A018 F7FDFC24 bl 8067864h ; 0806A01C 2001 mov r0,1h ; 0806A01E 2115 mov r1,15h ;Summoned Skull 0806A020 F7FDFC20 bl 8067864h ; 0806A024 4C2D ldr r4,=57Ah ;Humanoid Slime, from array 0806A026 2001 mov r0,1h ; 0806A028 1C21 mov r1,r4 ; 0806A02A F7FDFC1B bl 8067864h ; 0806A02E 2001 mov r0,1h ; 0806A030 1C21 mov r1,r4 ; 0806A032 F7FDFC17 bl 8067864h ; 0806A036 2001 mov r0,1h ; 0806A038 1C21 mov r1,r4 ; 0806A03A F7FDFC13 bl 8067864h ; 0806A03E 4C28 ldr r4,=1ABh ;Magician of Faith, from array 0806A040 2001 mov r0,1h ; 0806A042 1C21 mov r1,r4 ; 0806A044 F7FDFC0E bl 8067864h ; 0806A048 2001 mov r0,1h ; 0806A04A 1C21 mov r1,r4 ; 0806A04C F7FDFC0A bl 8067864h ; 0806A050 4924 ldr r1,=4E6h ;Slate Warrior, from array 0806A052 2001 mov r0,1h ; 0806A054 F7FDFC06 bl 8067864h ; 0806A058 4C23 ldr r4,=345h ;Vorse Raider, from array 0806A05A 2001 mov r0,1h ; 0806A05C 1C21 mov r1,r4 ; 0806A05E F7FDFC01 bl 8067864h ; 0806A062 2001 mov r0,1h ; 0806A064 1C21 mov r1,r4 ; 0806A066 F7FDFBFD bl 8067864h ; 0806A06A 2001 mov r0,1h ; 0806A06C 1C21 mov r1,r4 ; 0806A06E F7FDFBF9 bl 8067864h ; 0806A072 491E ldr r1,=14Fh ;Dark Hole, from array 0806A074 2001 mov r0,1h ; 0806A076 F7FDFBF5 bl 8067864h ; 0806A07A 21A8 mov r1,0A8h ; 0806A07C 0049 lsl r1,r1,1h ;Raigeki 0806A07E 2001 mov r0,1h ; 0806A080 F7FDFBF0 bl 8067864h ; 0806A084 21FC mov r1,0FCh ; 0806A086 0089 lsl r1,r1,2h ;Monster Reborn 0806A088 2001 mov r0,1h ; 0806A08A F7FDFBEB bl 8067864h ; 0806A08E 2491 mov r4,91h ; 0806A090 00E4 lsl r4,r4,3h ;Premature Burial 0806A092 2001 mov r0,1h ; 0806A094 1C21 mov r1,r4 ; 0806A096 F7FDFBE5 bl 8067864h ; 0806A09A 2001 mov r0,1h ; 0806A09C 1C21 mov r1,r4 ; 0806A09E F7FDFBE1 bl 8067864h ; 0806A0A2 4913 ldr r1,=4CEh ;Nightmare's Steelcage, from array 0806A0A4 2001 mov r0,1h ; 0806A0A6 F7FDFBDD bl 8067864h ; 0806A0AA 4C12 ldr r4,=592h ;Jam Breeding Machine, from array 0806A0AC 2001 mov r0,1h ; 0806A0AE 1C21 mov r1,r4 ; 0806A0B0 F7FDFBD8 bl 8067864h ; 0806A0B4 2001 mov r0,1h ; 0806A0B6 1C21 mov r1,r4 ; 0806A0B8 F7FDFBD4 bl 8067864h ; 0806A0BC 2001 mov r0,1h ; 0806A0BE 1C21 mov r1,r4 ; 0806A0C0 F7FDFBD0 bl 8067864h ; 0806A0C4 490C ldr r1,=3ABh ;Bell of Destruction, from array 0806A0C6 2001 mov r0,1h ; 0806A0C8 F7FDFBCC bl 8067864h ; 0806A0CC 2184 mov r1,84h ;Mirror Force 0806A0CE 00C9 lsl r1,r1,3h ; 0806A0D0 2001 mov r0,1h ; 0806A0D2 F7FDFBC7 bl 8067864h ; 0806A0D6 4909 ldr r1,=4BEh ;Magic Cylinder, from array 0806A0D8 F000FE38 bl 806AD4Ch ;
Strings card_id array
- 0x6A0DC
7A 05 00 00 AB 01 00 00 E6 04 00 00 45 03 00 00 4F 01 00 00 CE 04 00 00 92 05 00 00 AB 03 00 00 BE 04 00 00 Humanoid Slime Magician of Faith Slate Warrior Vorse Raider Dark Hole Nightmare's Steelcage Jam Breeding Machine Bell of Destruction Magic Cylinder
Umbra & Lumis
Umbra & Lumis' deck subroutine
0806A100 2001 mov r0,1h ;is_cpu_deck_flag = 1 0806A102 2115 mov r1,15h ;Summoned Skull 0806A104 F7FDFBAE bl 8067864h ; 0806A108 2001 mov r0,1h ; 0806A10A 2115 mov r1,15h ;Summoned Skull 0806A10C F7FDFBAA bl 8067864h ; 0806A110 4C36 ldr r4,=582h ;Grand Tiki Elder, from array 0806A112 2001 mov r0,1h ; 0806A114 1C21 mov r1,r4 ; 0806A116 F7FDFBA5 bl 8067864h ; 0806A11A 2001 mov r0,1h ; 0806A11C 1C21 mov r1,r4 ; 0806A11E F7FDFBA1 bl 8067864h ; 0806A122 2001 mov r0,1h ; 0806A124 2165 mov r1,65h ;Mask of Darkness 0806A126 F7FDFB9D bl 8067864h ; 0806A12A 2001 mov r0,1h ; 0806A12C 2165 mov r1,65h ;Mask of Darkness 0806A12E F7FDFB99 bl 8067864h ; 0806A132 2001 mov r0,1h ; 0806A134 21DB mov r1,0DBh ;Masked Sorcerer 0806A136 F7FDFB95 bl 8067864h ; 0806A13A 2001 mov r0,1h ; 0806A13C 21DB mov r1,0DBh ;Masked Sorcerer 0806A13E F7FDFB91 bl 8067864h ; 0806A142 4C2B ldr r4,=1ABh ;Magician of Faith, from array 0806A144 2001 mov r0,1h ; 0806A146 1C21 mov r1,r4 ; 0806A148 F7FDFB8C bl 8067864h ; 0806A14C 2001 mov r0,1h ; 0806A14E 1C21 mov r1,r4 ; 0806A150 F7FDFB88 bl 8067864h ; 0806A154 4927 ldr r1,=4E6h ;Slate Warrior, from array 0806A156 2001 mov r0,1h ; 0806A158 F7FDFB84 bl 8067864h ; 0806A15C 4C26 ldr r4,=345h ;Vorse Raider, from array 0806A15E 2001 mov r0,1h ; 0806A160 1C21 mov r1,r4 ; 0806A162 F7FDFB7F bl 8067864h ; 0806A166 2001 mov r0,1h ; 0806A168 1C21 mov r1,r4 ; 0806A16A F7FDFB7B bl 8067864h ; 0806A16E 2001 mov r0,1h ; 0806A170 1C21 mov r1,r4 ; 0806A172 F7FDFB77 bl 8067864h ; 0806A176 4921 ldr r1,=583h ;The Masked Beast, from array 0806A178 2001 mov r0,1h ; 0806A17A F7FDFB73 bl 8067864h ; 0806A17E 4920 ldr r1,=14Fh ;Dark Hole, from array 0806A180 2001 mov r0,1h ; 0806A182 F7FDFB6F bl 8067864h ; 0806A186 21A8 mov r1,0A8h ; 0806A188 0049 lsl r1,r1,1h ;Raigeki 0806A18A 2001 mov r0,1h ; 0806A18C F7FDFB6A bl 8067864h ; 0806A190 21FC mov r1,0FCh ; 0806A192 0089 lsl r1,r1,2h ;Monster Reborn 0806A194 2001 mov r0,1h ; 0806A196 F7FDFB65 bl 8067864h ; 0806A19A 2491 mov r4,91h ; 0806A19C 00E4 lsl r4,r4,3h ;Premature Burial 0806A19E 2001 mov r0,1h ; 0806A1A0 1C21 mov r1,r4 ; 0806A1A2 F7FDFB5F bl 8067864h ; 0806A1A6 2001 mov r0,1h ; 0806A1A8 1C21 mov r1,r4 ; 0806A1AA F7FDFB5B bl 8067864h ; 0806A1AE 21B1 mov r1,0B1h ; 0806A1B0 00C9 lsl r1,r1,3h ;Curse of the Masked Beast 0806A1B2 2001 mov r0,1h ; 0806A1B4 F7FDFB56 bl 8067864h ; 0806A1B8 4912 ldr r1,=58Ch ;Mask of Brutality, from array 0806A1BA 2001 mov r0,1h ; 0806A1BC F7FDFB52 bl 8067864h ; 0806A1C0 3CDD sub r4,0DDh ; 0806A1C2 2001 mov r0,1h ;Bell of Destruction 0806A1C4 1C21 mov r1,r4 ; 0806A1C6 F7FDFB4D bl 8067864h ; 0806A1CA 2001 mov r0,1h ; 0806A1CC 1C21 mov r1,r4 ; 0806A1CE F7FDFB49 bl 8067864h ; 0806A1D2 2184 mov r1,84h ; 0806A1D4 00C9 lsl r1,r1,3h ;Mirror Force 0806A1D6 2001 mov r0,1h ; 0806A1D8 F7FDFB44 bl 8067864h ; 0806A1DC 490A ldr r1,=4BEh ;Magic Cylinder, from array 0806A1DE 2001 mov r0,1h ; 0806A1E0 F7FDFB40 bl 8067864h ; 0806A1E4 4C09 ldr r4,=587h ;Mask of Weakness, from array 0806A1E6 F000FE9A bl 806AF1Eh ;
Umbra & Lumis card_id array
- 0x6A1EC
82 05 00 00 AB 01 00 00 E6 04 00 00 45 03 00 00 83 05 00 00 4F 01 00 00 8C 05 00 00 BE 04 00 00 87 05 00 00 Grand Tiki Elder Magician of Faith Slate Warrior Vorse Raider The Masked Beast Dark Hole Mask of Brutality Magic Cylinder Mask of Weakness
Odion
Odion's deck subroutine
0806A210 2001 mov r0,1h ;is_cpu_deck_flag = 1 0806A212 2165 mov r1,65h ;Mask of Darkness 0806A214 F7FDFB26 bl 8067864h ; 0806A218 4959 ldr r1,=1ABh ;Magician of Faith, from array 0806A21A 2001 mov r0,1h ; 0806A21C F7FDFB22 bl 8067864h ; 0806A220 4958 ldr r1,=24Eh ;Morphing Jar, from array 0806A222 2001 mov r0,1h ; 0806A224 F7FDFB1E bl 8067864h ; 0806A228 2001 mov r0,1h ; 0806A22A 2115 mov r1,15h ; 0806A22C F7FDFB1A bl 8067864h ; 0806A230 2001 mov r0,1h ; 0806A232 2115 mov r1,15h ; 0806A234 F7FDFB16 bl 8067864h ; 0806A238 4953 ldr r1,=452h ;Cyber Jar, from array 0806A23A 2001 mov r0,1h ; 0806A23C F7FDFB12 bl 8067864h ; 0806A240 4952 ldr r1,=4E6h ;Slate Warrior, from array 0806A242 2001 mov r0,1h ; 0806A244 F7FDFB0E bl 8067864h ; 0806A248 4C51 ldr r4,=345h ;Vorse Raider, from array 0806A24A 2001 mov r0,1h ; 0806A24C 1C21 mov r1,r4 ; 0806A24E F7FDFB09 bl 8067864h ; 0806A252 2001 mov r0,1h ; 0806A254 1C21 mov r1,r4 ; 0806A256 F7FDFB05 bl 8067864h ; 0806A25A 2001 mov r0,1h ; 0806A25C 1C21 mov r1,r4 ; 0806A25E F7FDFB01 bl 8067864h ; 0806A262 494C ldr r1,=14Fh ;Dark Hole, from array 0806A264 2001 mov r0,1h ; 0806A266 F7FDFAFD bl 8067864h ; 0806A26A 21A8 mov r1,0A8h ; 0806A26C 0049 lsl r1,r1,1h ;Raigeki 0806A26E 2001 mov r0,1h ; 0806A270 F7FDFAF8 bl 8067864h ; 0806A274 21FC mov r1,0FCh ; 0806A276 0089 lsl r1,r1,2h ;Monster Reborn 0806A278 2001 mov r0,1h ; 0806A27A F7FDFAF3 bl 8067864h ; 0806A27E 2491 mov r4,91h ; 0806A280 00E4 lsl r4,r4,3h ;Premature Burial 0806A282 2001 mov r0,1h ; 0806A284 1C21 mov r1,r4 ; 0806A286 F7FDFAED bl 8067864h ; 0806A28A 2001 mov r0,1h ; 0806A28C 1C21 mov r1,r4 ; 0806A28E F7FDFAE9 bl 8067864h ; 0806A292 4C41 ldr r4,=2ADh ;Widespread Ruin, from array 0806A294 2001 mov r0,1h ; 0806A296 1C21 mov r1,r4 ; 0806A298 F7FDFAE4 bl 8067864h ; 0806A29C 2001 mov r0,1h ; 0806A29E 1C21 mov r1,r4 ; 0806A2A0 F7FDFAE0 bl 8067864h ; 0806A2A4 2001 mov r0,1h ; 0806A2A6 1C21 mov r1,r4 ; 0806A2A8 F7FDFADC bl 8067864h ; 0806A2AC 34FE add r4,0FEh ;Bell of Destruction 0806A2AE 2001 mov r0,1h ; 0806A2B0 1C21 mov r1,r4 ; 0806A2B2 F7FDFAD7 bl 8067864h ; 0806A2B6 2001 mov r0,1h ; 0806A2B8 1C21 mov r1,r4 ; 0806A2BA F7FDFAD3 bl 8067864h ; 0806A2BE 3415 add r4,15h ;Negate Attack 0806A2C0 2001 mov r0,1h ; 0806A2C2 1C21 mov r1,r4 ; 0806A2C4 F7FDFACE bl 8067864h ; 0806A2C8 2001 mov r0,1h ; 0806A2CA 1C21 mov r1,r4 ; 0806A2CC F7FDFACA bl 8067864h ; 0806A2D0 342A add r4,2Ah ;Trap Hole 0806A2D2 2001 mov r0,1h ; 0806A2D4 1C21 mov r1,r4 ; 0806A2D6 F7FDFAC5 bl 8067864h ; 0806A2DA 2001 mov r0,1h ; 0806A2DC 1C21 mov r1,r4 ; 0806A2DE F7FDFAC1 bl 8067864h ; 0806A2E2 2001 mov r0,1h ; 0806A2E4 1C21 mov r1,r4 ; 0806A2E6 F7FDFABD bl 8067864h ; 0806A2EA 492C ldr r1,=3FBh ;White Hole, from array 0806A2EC 2001 mov r0,1h ; 0806A2EE F7FDFAB9 bl 8067864h ; 0806A2F2 492B ldr r1,=3FDh ;Call of the Grave, from array 0806A2F4 2001 mov r0,1h ; 0806A2F6 F7FDFAB5 bl 8067864h ; 0806A2FA 492A ldr r1,=3FEh ;Anti Raigeki, from array 0806A2FC 2001 mov r0,1h ; 0806A2FE F7FDFAB1 bl 8067864h ; 0806A302 4929 ldr r1,=402h ;Call of the Dark, from array 0806A304 2001 mov r0,1h ; 0806A306 F7FDFAAD bl 8067864h ; 0806A30A 4928 ldr r1,=404h ;Solemn Judgment, from array 0806A30C 2001 mov r0,1h ; 0806A30E F7FDFAA9 bl 8067864h ; 0806A312 341B add r4,1Bh ;Magic Jammer 0806A314 2001 mov r0,1h ; 0806A316 1C21 mov r1,r4 ; 0806A318 F7FDFAA4 bl 8067864h ; 0806A31C 2001 mov r0,1h ; 0806A31E 1C21 mov r1,r4 ; 0806A320 F7FDFAA0 bl 8067864h ; 0806A324 3401 add r4,1h ;Seven Tools of the Bandit 0806A326 2001 mov r0,1h ; 0806A328 1C21 mov r1,r4 ; 0806A32A F7FDFA9B bl 8067864h ; 0806A32E 2001 mov r0,1h ; 0806A330 1C21 mov r1,r4 ; 0806A332 F7FDFA97 bl 8067864h ; 0806A336 3408 add r4,8h ;Magic Thorn 0806A338 2001 mov r0,1h ; 0806A33A 1C21 mov r1,r4 ; 0806A33C F7FDFA92 bl 8067864h ; 0806A340 2001 mov r0,1h ; 0806A342 1C21 mov r1,r4 ; 0806A344 F7FDFA8E bl 8067864h ; 0806A348 2184 mov r1,84h ; 0806A34A 00C9 lsl r1,r1,3h ;Mirror Force 0806A34C 2001 mov r0,1h ; 0806A34E F7FDFA89 bl 8067864h ; 0806A352 4917 ldr r1,=426h ;Gryphon Wing, from array 0806A354 2001 mov r0,1h ; 0806A356 F7FDFA85 bl 8067864h ; 0806A35A 343C add r4,3Ch ;Enchanted Javelin 0806A35C 2001 mov r0,1h ; 0806A35E 1C21 mov r1,r4 ; 0806A360 F7FDFA80 bl 8067864h ; 0806A364 2001 mov r0,1h ; 0806A366 1C21 mov r1,r4 ; 0806A368 F7FDFA7C bl 8067864h ; 0806A36C 4911 ldr r1,=4BEh ;Magic Cylinder, from array 0806A36E 2001 mov r0,1h ; 0806A370 F7FDFA78 bl 8067864h ; 0806A374 21B2 mov r1,0B2h ; 0806A376 00C9 lsl r1,r1,3h ;Fairy Box 0806A378 2001 mov r0,1h ; 0806A37A F000FDC9 bl 806AF10h ;
Odion card_id array
- 0x6A380
AB 01 00 00 4E 02 00 00 52 04 00 00 E6 04 00 00 45 03 00 00 4F 01 00 00 AD 02 00 00 FB 03 00 00 FD 03 00 00 FE 03 00 00 02 04 00 00 04 04 00 00 26 04 00 00 BE 04 00 00 Magician of Faith Morphing Jar Cyber Jar Slate Warrior Vorse Raider Dark Hole Widespread Ruin White Hole Call of the Grave Anti Raigeki Call of the Dark Solemn Judgment Gryphon Wing Magic Cylinder
Bakura Ryou
Marik Ishtar
- 0x6A880
45 03 00 00 AB 01 00 00 52 04 00 00 8B 04 00 00 FF 03 00 00 E6 04 00 00 4F 01 00 00 03 04 00 00 0F 04 00 00 2C 04 00 00 C5 04 00 00 AB 03 00 00 BE 04 00 00 Vorse Raider Magician of Faith Cyber Jar Morphing Jar #2 Tribute to the Doomed Slate Warrior Dark Hole Change of Heart Restructer Revolution Snatch Steal Card Destruction Bell of Destruction Magic Cylinder
Seto Kaiba
- 0x6AD54
13 02 00 00 1E 03 00 00 81 05 00 00 A3 01 00 00 AB 01 00 00 E6 04 00 00 7B 01 00 00 4F 01 00 00 9F 02 00 00 EB 03 00 00 25 04 00 00 47 04 00 00 BE 04 00 00 91 05 00 00 Gemini Elf Cyber-Tech Alligator Gadget Soldier Cyber-Stein Magician of Faith
?
?'s deck subroutine
0806AD8C 2001 mov r0,1h ; 0806AD8E 2165 mov r1,65h ;Mask of Darkness 0806AD90 F7FCFD68 bl 8067864h ; 0806AD94 2001 mov r0,1h ; 0806AD96 2165 mov r1,65h ;Mask of Darkness 0806AD98 F7FCFD64 bl 8067864h ; 0806AD9C 2001 mov r0,1h ; 0806AD9E 2171 mov r1,71h ;White Magical Hat 0806ADA0 F7FCFD60 bl 8067864h ; 0806ADA4 2001 mov r0,1h ; 0806ADA6 2171 mov r1,71h ;White Magical Hat 0806ADA8 F7FCFD5C bl 8067864h ; 0806ADAC 2001 mov r0,1h ; 0806ADAE 2171 mov r1,71h ;White Magical Hat 0806ADB0 F7FCFD58 bl 8067864h ; 0806ADB4 4C5E ldr r4,=1ABh ;Magician of Faith 0806ADB6 2001 mov r0,1h ; 0806ADB8 1C21 mov r1,r4 ; 0806ADBA F7FCFD53 bl 8067864h ; 0806ADBE 2001 mov r0,1h ; 0806ADC0 1C21 mov r1,r4 ; 0806ADC2 F7FCFD4F bl 8067864h ; 0806ADC6 3449 add r4,49h ;Giant Soldier of Stone 0806ADC8 2001 mov r0,1h ; 0806ADCA 1C21 mov r1,r4 ; 0806ADCC F7FCFD4A bl 8067864h ; 0806ADD0 2001 mov r0,1h ; 0806ADD2 1C21 mov r1,r4 ; 0806ADD4 F7FCFD46 bl 8067864h ; 0806ADD8 340F add r4,0Fh ; 0806ADDA 2001 mov r0,1h ; 0806ADDC 1C21 mov r1,r4 ; 0806ADDE F7FCFD41 bl 8067864h ; 0806ADE2 2001 mov r0,1h ; 0806ADE4 1C21 mov r1,r4 ; 0806ADE6 F7FCFD3D bl 8067864h ; 0806ADEA 2001 mov r0,1h ; 0806ADEC 1C21 mov r1,r4 ; 0806ADEE F7FCFD39 bl 8067864h ; 0806ADF2 344B add r4,4Bh ; 0806ADF4 2001 mov r0,1h ; 0806ADF6 1C21 mov r1,r4 ; 0806ADF8 F7FCFD34 bl 8067864h ; 0806ADFC 2001 mov r0,1h ; 0806ADFE 1C21 mov r1,r4 ; 0806AE00 F7FCFD30 bl 8067864h ; 0806AE04 2001 mov r0,1h ; 0806AE06 1C21 mov r1,r4 ; 0806AE08 F7FCFD2C bl 8067864h ; 0806AE0C 4949 ldr r1,=452h ; 0806AE0E 2001 mov r0,1h ; 0806AE10 F7FCFD28 bl 8067864h ; 0806AE14 4C48 ldr r4,=48Bh ; 0806AE16 2001 mov r0,1h ; 0806AE18 1C21 mov r1,r4 ; 0806AE1A F7FCFD23 bl 8067864h ; 0806AE1E 2001 mov r0,1h ; 0806AE20 1C21 mov r1,r4 ; 0806AE22 F7FCFD1F bl 8067864h ; 0806AE26 4945 ldr r1,=14Fh ; 0806AE28 2001 mov r0,1h ; 0806AE2A F7FCFD1B bl 8067864h ; 0806AE2E 21A8 mov r1,0A8h ; 0806AE30 0049 lsl r1,r1,1h ; 0806AE32 2001 mov r0,1h ; 0806AE34 F7FCFD16 bl 8067864h ; 0806AE38 4941 ldr r1,=29Fh ;Harpie's Feather Duster 0806AE3A 2001 mov r0,1h ; 0806AE3C F7FCFD12 bl 8067864h ; 0806AE40 21FC mov r1,0FCh ; 0806AE42 0089 lsl r1,r1,2h ; 0806AE44 2001 mov r0,1h ; 0806AE46 F7FCFD0D bl 8067864h ; 0806AE4A 493E ldr r1,=403h ; 0806AE4C 2001 mov r0,1h ; 0806AE4E F7FCFD09 bl 8067864h ; 0806AE52 3C64 sub r4,64h ; 0806AE54 2001 mov r0,1h ; 0806AE56 1C21 mov r1,r4 ; 0806AE58 F7FCFD04 bl 8067864h ; 0806AE5C 2001 mov r0,1h ; 0806AE5E 1C21 mov r1,r4 ; 0806AE60 F7FCFD00 bl 8067864h ; 0806AE64 2001 mov r0,1h ; 0806AE66 1C21 mov r1,r4 ; 0806AE68 F7FCFCFC bl 8067864h ; 0806AE6C 4936 ldr r1,=42Ch ; 0806AE6E 2001 mov r0,1h ; 0806AE70 F7FCFCF8 bl 8067864h ; 0806AE74 3408 add r4,8h ; 0806AE76 2001 mov r0,1h ; 0806AE78 1C21 mov r1,r4 ; 0806AE7A F7FCFCF3 bl 8067864h ; 0806AE7E 2001 mov r0,1h ; 0806AE80 1C21 mov r1,r4 ; 0806AE82 F7FCFCEF bl 8067864h ; 0806AE86 3408 add r4,8h ; 0806AE88 2001 mov r0,1h ; 0806AE8A 1C21 mov r1,r4 ; 0806AE8C F7FCFCEA bl 8067864h ; 0806AE90 2001 mov r0,1h ; 0806AE92 1C21 mov r1,r4 ; 0806AE94 F7FCFCE6 bl 8067864h ; 0806AE98 348E add r4,8Eh ; 0806AE9A 2001 mov r0,1h ; 0806AE9C 1C21 mov r1,r4 ; 0806AE9E F7FCFCE1 bl 8067864h ; 0806AEA2 2001 mov r0,1h ; 0806AEA4 1C21 mov r1,r4 ; 0806AEA6 F7FCFCDD bl 8067864h ; 0806AEAA 2001 mov r0,1h ; 0806AEAC 1C21 mov r1,r4 ; 0806AEAE F7FCFCD9 bl 8067864h ; 0806AEB2 34CE add r4,0CEh ; 0806AEB4 2001 mov r0,1h ; 0806AEB6 1C21 mov r1,r4 ; 0806AEB8 F7FCFCD4 bl 8067864h ; 0806AEBC 2001 mov r0,1h ; 0806AEBE 1C21 mov r1,r4 ; 0806AEC0 F7FCFCD0 bl 8067864h ; 0806AEC4 4C21 ldr r4,=3ABh ; 0806AEC6 2001 mov r0,1h ; 0806AEC8 1C21 mov r1,r4 ; 0806AECA F7FCFCCB bl 8067864h ; 0806AECE 2001 mov r0,1h ; 0806AED0 1C21 mov r1,r4 ; 0806AED2 F7FCFCC7 bl 8067864h ; 0806AED6 2184 mov r1,84h ; 0806AED8 00C9 lsl r1,r1,3h ; 0806AEDA 2001 mov r0,1h ; 0806AEDC F7FCFCC2 bl 8067864h ; 0806AEE0 491B ldr r1,=447h ; 0806AEE2 2001 mov r0,1h ; 0806AEE4 F7FCFCBE bl 8067864h ; 0806AEE8 491A ldr r1,=4BEh ; 0806AEEA 2001 mov r0,1h ; 0806AEEC F7FCFCBA bl 8067864h ; 0806AEF0 4C19 ldr r4,=52Bh ; 0806AEF2 2001 mov r0,1h ; 0806AEF4 1C21 mov r1,r4 ; 0806AEF6 F7FCFCB5 bl 8067864h ; 0806AEFA 2001 mov r0,1h ; 0806AEFC 1C21 mov r1,r4 ; 0806AEFE F7FCFCB1 bl 8067864h ; 0806AF02 3465 add r4,65h ; 0806AF04 2001 mov r0,1h ; 0806AF06 1C21 mov r1,r4 ; 0806AF08 F7FCFCAC bl 8067864h ; 0806AF0C 2001 mov r0,1h ; 0806AF0E 1C21 mov r1,r4 ; 0806AF10 F7FCFCA8 bl 8067864h ; 0806AF14 4C11 ldr r4,=591h ;Torrential Tribute 0806AF16 2001 mov r0,1h ; 0806AF18 1C21 mov r1,r4 ; 0806AF1A F7FCFCA3 bl 8067864h ; 0806AF1E 2001 mov r0,1h ; 0806AF20 1C21 mov r1,r4 ; 0806AF22 F7FCFC9F bl 8067864h ; 0806AF26 2001 mov r0,1h ; 0806AF28 1C21 mov r1,r4 ; 0806AF2A F7FCFC9B bl 8067864h ; 0806AF2E E0D1 b 806B0D4h ;
? card_id array
AB 01 00 00 52 04 00 00 8B 04 00 00 4F 01 00 00 9F 02 00 00 03 04 00 00 2C 04 00 00 AB 03 00 00 47 04 00 00 BE 04 00 00 2B 05 00 00 91 05 00 00 Magician of Faith
? again
0806AF60 2001 mov r0,1h ; 0806AF62 2115 mov r1,15h ;Summoned Skull 0806AF64 F7FCFC7E bl 8067864h ; 0806AF68 2001 mov r0,1h ; 0806AF6A 2115 mov r1,15h ;Summoned Skull 0806AF6C F7FCFC7A bl 8067864h ; 0806AF70 2001 mov r0,1h ; 0806AF72 2122 mov r1,22h ;Dark Magician 0806AF74 F7FCFC76 bl 8067864h ; 0806AF78 2001 mov r0,1h ; 0806AF7A 2122 mov r1,22h ;Dark Magician 0806AF7C F7FCFC72 bl 8067864h ; 0806AF80 4C58 ldr r4,=213h ;Gemini Elf 0806AF82 2001 mov r0,1h ; 0806AF84 1C21 mov r1,r4 ; 0806AF86 F7FCFC6D bl 8067864h ; 0806AF8A 2001 mov r0,1h ; 0806AF8C 1C21 mov r1,r4 ; 0806AF8E F7FCFC69 bl 8067864h ; 0806AF92 2001 mov r0,1h ; 0806AF94 1C21 mov r1,r4 ; 0806AF96 F7FCFC65 bl 8067864h ; 0806AF9A 34CE add r4,0CEh ; 0806AF9C 2001 mov r0,1h ; 0806AF9E 1C21 mov r1,r4 ; 0806AFA0 F7FCFC60 bl 8067864h ; 0806AFA4 2001 mov r0,1h ; 0806AFA6 1C21 mov r1,r4 ; 0806AFA8 F7FCFC5C bl 8067864h ; 0806AFAC 2001 mov r0,1h ; 0806AFAE 1C21 mov r1,r4 ; 0806AFB0 F7FCFC58 bl 8067864h ; 0806AFB4 3413 add r4,13h ; 0806AFB6 2001 mov r0,1h ; 0806AFB8 1C21 mov r1,r4 ; 0806AFBA F7FCFC53 bl 8067864h ; 0806AFBE 2001 mov r0,1h ; 0806AFC0 1C21 mov r1,r4 ; 0806AFC2 F7FCFC4F bl 8067864h ; 0806AFC6 2001 mov r0,1h ; 0806AFC8 1C21 mov r1,r4 ; 0806AFCA F7FCFC4B bl 8067864h ; 0806AFCE 342C add r4,2Ch ; 0806AFD0 2001 mov r0,1h ; 0806AFD2 1C21 mov r1,r4 ; 0806AFD4 F7FCFC46 bl 8067864h ; 0806AFD8 2001 mov r0,1h ; 0806AFDA 1C21 mov r1,r4 ; 0806AFDC F7FCFC42 bl 8067864h ; 0806AFE0 2001 mov r0,1h ; 0806AFE2 1C21 mov r1,r4 ; 0806AFE4 F7FCFC3E bl 8067864h ; 0806AFE8 4C3F ldr r4,=1ABh ; 0806AFEA 2001 mov r0,1h ; 0806AFEC 1C21 mov r1,r4 ; 0806AFEE F7FCFC39 bl 8067864h ; 0806AFF2 2001 mov r0,1h ; 0806AFF4 1C21 mov r1,r4 ; 0806AFF6 F7FCFC35 bl 8067864h ; 0806AFFA 4C3C ldr r4,=2F7h ; 0806AFFC 2001 mov r0,1h ; 0806AFFE 1C21 mov r1,r4 ; 0806B000 F7FCFC30 bl 8067864h ; 0806B004 2001 mov r0,1h ; 0806B006 1C21 mov r1,r4 ; 0806B008 F7FCFC2C bl 8067864h ; 0806B00C 2001 mov r0,1h ; 0806B00E 1C21 mov r1,r4 ; 0806B010 F7FCFC28 bl 8067864h ; 0806B014 3456 add r4,56h ; 0806B016 2001 mov r0,1h ; 0806B018 1C21 mov r1,r4 ; 0806B01A F7FCFC23 bl 8067864h ; 0806B01E 2001 mov r0,1h ; 0806B020 1C21 mov r1,r4 ; 0806B022 F7FCFC1F bl 8067864h ; 0806B026 4932 ldr r1,=452h ;Cyber Jar 0806B028 2001 mov r0,1h ; 0806B02A F7FCFC1B bl 8067864h ; 0806B02E 3C7C sub r4,7Ch ; 0806B030 2001 mov r0,1h ; 0806B032 1C21 mov r1,r4 ; 0806B034 F7FCFC16 bl 8067864h ; 0806B038 2001 mov r0,1h ; 0806B03A 1C21 mov r1,r4 ; 0806B03C F7FCFC12 bl 8067864h ; 0806B040 2001 mov r0,1h ; 0806B042 1C21 mov r1,r4 ; 0806B044 F7FCFC0E bl 8067864h ; 0806B048 492A ldr r1,=14Fh ;Dark Hole 0806B04A 2001 mov r0,1h ; 0806B04C F7FCFC0A bl 8067864h ; 0806B050 21A8 mov r1,0A8h ;Raigeki 0806B052 0049 lsl r1,r1,1h ; 0806B054 2001 mov r0,1h ; 0806B056 F7FCFC05 bl 8067864h ; 0806B05A 4927 ldr r1,=15Bh ; 0806B05C 2001 mov r0,1h ; 0806B05E F7FCFC01 bl 8067864h ; 0806B062 4926 ldr r1,=29Fh ;Harpie's Feather Duster 0806B064 2001 mov r0,1h ; 0806B066 F7FCFBFD bl 8067864h ; 0806B06A 3C01 sub r4,1h ; 0806B06C 2001 mov r0,1h ; 0806B06E 1C21 mov r1,r4 ; 0806B070 F7FCFBF8 bl 8067864h ; 0806B074 2001 mov r0,1h ; 0806B076 1C21 mov r1,r4 ; 0806B078 F7FCFBF4 bl 8067864h ; 0806B07C 21FC mov r1,0FCh ;Monster Reborn 0806B07E 0089 lsl r1,r1,2h ; 0806B080 2001 mov r0,1h ; 0806B082 F7FCFBEF bl 8067864h ; 0806B086 491E ldr r1,=403h ;Change of Heart 0806B088 2001 mov r0,1h ; 0806B08A F7FCFBEB bl 8067864h ; 0806B08E 4C1D ldr r4,=425h ;Heavy Storm 0806B090 2001 mov r0,1h ; 0806B092 1C21 mov r1,r4 ; 0806B094 F7FCFBE6 bl 8067864h ; 0806B098 2001 mov r0,1h ; 0806B09A 1C21 mov r1,r4 ; 0806B09C F7FCFBE2 bl 8067864h ; 0806B0A0 4919 ldr r1,=42Ch ; 0806B0A2 2001 mov r0,1h ; 0806B0A4 F7FCFBDE bl 8067864h ; 0806B0A8 3463 add r4,63h ; 0806B0AA 2001 mov r0,1h ; 0806B0AC 1C21 mov r1,r4 ; 0806B0AE F7FCFBD9 bl 8067864h ; 0806B0B2 2001 mov r0,1h ; 0806B0B4 1C21 mov r1,r4 ; 0806B0B6 F7FCFBD5 bl 8067864h ; 0806B0BA 2184 mov r1,84h ; 0806B0BC 00C9 lsl r1,r1,3h ; 0806B0BE 2001 mov r0,1h ; 0806B0C0 F7FCFBD0 bl 8067864h ; 0806B0C4 4911 ldr r1,=447h ;Call Of The Haunted 0806B0C6 2001 mov r0,1h ; 0806B0C8 F7FCFBCC bl 8067864h ; 0806B0CC 4910 ldr r1,=4BEh ;Magic Cylinder 0806B0CE 2001 mov r0,1h ; 0806B0D0 F7FCFBC8 bl 8067864h ; 0806B0D4 2D19 cmp r5,19h ;Loop 25 times 0806B0D6 D900 bls 806B0DAh ; 0806B0D8 E0BE b 806B258h ; 0806B0DA 00A8 lsl r0,r5,2h ; 0806B0DC 490D ldr r1,=806B118h ; 0806B0DE 1840 add r0,r0,r1 ;0x806B118 + (current_iteration << 2) 0806B0E0 6800 ldr r0,[r0] ;r0 = pointer to next subroutine 0806B0E2 4687 mov r15,r0 ;jump to r0
Pointers to subroutines adding non-character specific cards to deck
- 0x6B118 - 0x6B17F
80 B1 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 C8 B1 06 08 D8 B1 06 08 E8 B1 06 08 58 B2 06 08 58 B2 06 08 F4 B1 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 00 B2 06 08 58 B2 06 08 58 B2 06 08 58 B2 06 08 10 B2 06 08 58 B2 06 08
0x6B1C8
0806B1C8 4802 ldr r0,=2015BE8h ; 0806B1CA 6841 ldr r1,[r0,4h] ; 0806B1CC 22C0 mov r2,0C0h ; 0806B1CE 0052 lsl r2,r2,1h ; 0806B1D0 E019 b 806B206h ;
Add specific cards to some opponents based on their flags or on Player's Deck content
0806B432 4D5A ldr r5,=2015BE8h ; 0806B434 6868 ldr r0,[r5,4h] ;r0 = CPU opponent group flags 0806B436 2140 mov r1,40h ; 0806B438 4008 and r0,r1 ; 0806B43A 2800 cmp r0,0h ; 0806B43C D00D beq 806B45Ah ;if (bit_7_not_set), branch to 0x806B45A 0806B43E 24F2 mov r4,0F2h ; 0806B440 00A4 lsl r4,r4,2h ;Graceful Charity 0806B442 2001 mov r0,1h ; 0806B444 1C21 mov r1,r4 ; 0806B446 F7FCFA0D bl 8067864h ; 0806B44A 2001 mov r0,1h ; 0806B44C 1C21 mov r1,r4 ; 0806B44E F7FCFA09 bl 8067864h ; 0806B452 495B ldr r1,=3F2h ;Pot of Greed 0806B454 2001 mov r0,1h ; 0806B456 F7FCFA05 bl 8067864h ; 0806B45A 6868 ldr r0,[r5,4h] ;r0 = CPU opponent group flags 0806B45C 2180 mov r1,80h ; 0806B45E 4008 and r0,r1 ; 0806B460 2800 cmp r0,0h ; 0806B462 D019 beq 806B498h ;if (bit_8_not_set), branch to 0x806B498 0806B464 4C57 ldr r4,=231h ;Needle Worm, added by Mind-controlled Tea and Mind-controlled Joey 0806B466 2001 mov r0,1h ; 0806B468 1C21 mov r1,r4 ; 0806B46A F7FCF9FB bl 8067864h ; 0806B46E 2001 mov r0,1h ; 0806B470 1C21 mov r1,r4 ; 0806B472 F7FCF9F7 bl 8067864h ; 0806B476 2001 mov r0,1h ; 0806B478 1C21 mov r1,r4 ; 0806B47A F7FCF9F3 bl 8067864h ; 0806B47E 21A5 mov r1,0A5h ;Crush Card 0806B480 0089 lsl r1,r1,2h ; 0806B482 2001 mov r0,1h ; 0806B484 F7FCF9EE bl 8067864h ; 0806B488 494F ldr r1,=485h ;Nobleman of Crossout 0806B48A 2001 mov r0,1h ; 0806B48C F7FCF9EA bl 8067864h ; 0806B490 493F ldr r1,=486h ;Nobleman of Extermination 0806B492 2001 mov r0,1h ; 0806B494 F7FCF9E6 bl 8067864h ; 0806B498 6868 ldr r0,[r5,4h] ;r0 = CPU opponent group flags 0806B49A 2120 mov r1,20h ;if (bit_6_not_set), branch to 0x806B498 0806B49C 4008 and r0,r1 ; 0806B49E 2800 cmp r0,0h ; 0806B4A0 D020 beq 806B4E4h ; 0806B4A2 24F2 mov r4,0F2h ; 0806B4A4 00A4 lsl r4,r4,2h ;Graceful Charity 0806B4A6 2001 mov r0,1h ; 0806B4A8 1C21 mov r1,r4 ; 0806B4AA F7FCF9DB bl 8067864h ; 0806B4AE 2001 mov r0,1h ; 0806B4B0 1C21 mov r1,r4 ; 0806B4B2 F7FCF9D7 bl 8067864h ; 0806B4B6 21FC mov r1,0FCh ; 0806B4B8 0089 lsl r1,r1,2h ;Monster Reborn 0806B4BA 2001 mov r0,1h ; 0806B4BC F7FCF9D2 bl 8067864h ; 0806B4C0 34C0 add r4,0C0h ;Premature Burial 0806B4C2 2001 mov r0,1h ; 0806B4C4 1C21 mov r1,r4 ; 0806B4C6 F7FCF9CD bl 8067864h ; 0806B4CA 2001 mov r0,1h ; 0806B4CC 1C21 mov r1,r4 ; 0806B4CE F7FCF9C9 bl 8067864h ; 0806B4D2 3C89 sub r4,89h ;Tribute to The Doomed 0806B4D4 2001 mov r0,1h ; 0806B4D6 1C21 mov r1,r4 ; 0806B4D8 F7FCF9C4 bl 8067864h ; 0806B4DC 2001 mov r0,1h ; 0806B4DE 1C21 mov r1,r4 ; 0806B4E0 F7FCF9C0 bl 8067864h ; 0806B4E4 21A8 mov r1,0A8h ; 0806B4E6 0049 lsl r1,r1,1h ;Raigeki 0806B4E8 2000 mov r0,0h ; 0806B4EA F7FCFAFF bl 8067AECh ; 0806B4EE 2800 cmp r0,0h ; 0806B4F0 D103 bne 806B4FAh ; 0806B4F2 4936 ldr r1,=3FEh ;Anti Raigeki 0806B4F4 2001 mov r0,1h ; 0806B4F6 F7FCFAB9 bl 8067A6Ch ; 0806B4FA 4935 ldr r1,=14Fh ;Dark Hole 0806B4FC 2000 mov r0,0h ; 0806B4FE F7FCFAF5 bl 8067AECh ; 0806B502 2800 cmp r0,0h ; 0806B504 D103 bne 806B50Eh ; 0806B506 4933 ldr r1,=3FBh ;White Hole 0806B508 2001 mov r0,1h ; 0806B50A F7FCFAAF bl 8067A6Ch ; 0806B50E 21FC mov r1,0FCh ; 0806B510 0089 lsl r1,r1,2h ;Monster Reborn 0806B512 2000 mov r0,0h ; 0806B514 F7FCFAEA bl 8067AECh ; 0806B518 2800 cmp r0,0h ; 0806B51A D107 bne 806B52Ch ; 0806B51C 492E ldr r1,=3FDh ;Call of the Grave 0806B51E 2001 mov r0,1h ; 0806B520 F7FCFAA4 bl 8067A6Ch ; 0806B524 4921 ldr r1,=402h ;Call of the Dark 0806B526 2001 mov r0,1h ; 0806B528 F7FCFAA0 bl 8067A6Ch ; 0806B52C 4916 ldr r1,=29Fh ;Harpie's Feather Duster 0806B52E 2000 mov r0,0h ; 0806B530 F7FCFADC bl 8067AECh ; 0806B534 2800 cmp r0,0h ; 0806B536 D103 bne 806B540h ; 0806B538 4928 ldr r1,=426h ;Gryphon Wing 0806B53A 2001 mov r0,1h ; 0806B53C F7FCFA96 bl 8067A6Ch ; 0806B540 2001 mov r0,1h ; 0806B542 F7FCFAFF bl 8067B44h ; 0806B546 480C ldr r0,=3000040h ; 0806B548 490C ldr r1,=4870h ; 0806B54A 1840 add r0,r0,r1 ; 0806B54C 7800 ldrb r0,[r0] ; 0806B54E 0680 lsl r0,r0,1Ah ; 0806B550 0EC0 lsr r0,r0,1Bh ; 0806B552 2101 mov r1,1h ; 0806B554 4249 neg r1,r1 ; 0806B556 F7FDFD2B bl 8068FB0h ; 0806B55A 2001 mov r0,1h ; 0806B55C 4669 mov r1,r13 ;r1 = pointer_to_types_of_cards_in_player_deck 0806B55E F7FCFB3F bl 8067BE0h ;Check cards in Player's Deck 0806B562 B01D add sp,74h ; 0806B564 BC30 pop r4,r5 ; 0806B566 BC01 pop r0 ; 0806B568 4700 bx r0 ;
Trunk management
Count quantity of cards in Player's Trunk, Deck and Sideboard
0x8AA94 - Loops through Player's inventory to count cards in Player's Trunk, Deck, and Sideboard
0808AA94 21D4 mov r1,0D4h ; 0808AA96 0000 lsl r0,r0,0h ; 0808AA98 FBC1 bl lr+782h ; 0808AA9A 0000 lsl r0,r0,0h ; 0808AA9C 10ED asr r5,r5,3h ; 0808AA9E 0000 lsl r0,r0,0h ; 0808AAA0 21DE mov r1,0DEh ; 0808AAA2 0000 lsl r0,r0,0h ; 0808AAA4 2000 mov r0,0h ; 0808AAA6 BC70 pop r4-r6 ; 0808AAA8 BC02 pop r1 ; 0808AAAA 4708 bx r1 ; 0808AAAC B570 push r4-r6,r14 ; 0808AAAE 2300 mov r3,0h ; 0808AAB0 490C ldr r1,=2011C20h ;r1 = pointer to Player's Trunk 0808AAB2 2200 mov r2,0h ;r2 = 0 0808AAB4 1C0D mov r5,r1 ;r5 = pointer to Player's Trunk 0808AAB6 4C0C ldr r4,=10EDh ;r4 = 4333 0808AAB8 880E ldrh r6,[r1] ;start of the loop, load card_quantity for current card pointed by r1 in r6 0808AABA 18F0 add r0,r6,r3 ;r0 = card_quantity + r3 0808AABC 0400 lsl r0,r0,10h ; 0808AABE 0C03 lsr r3,r0,10h ;r3 = current_card_quantity & 0xFFFF 0808AAC0 3102 add r1,2h ;pointer_to_card_trunk += 2 0808AAC2 1C50 add r0,r2,1 ;r0 = current_card_id 0808AAC4 0400 lsl r0,r0,10h ;r0 << 16 0808AAC6 0C02 lsr r2,r0,10h ;r2 = r0 & 0xFFFF 0808AAC8 42A2 cmp r2,r4 ; 0808AACA D9F5 bls 808AAB8h ;if (r2 ≤ 4333 [it's the 1082 valid cards + card_id #0 multiplied by 4 + 1]), loop to 0x808AAB8 0808AACC 43D8 mvn r0,r3 ;r0 = !r3 0808AACE 3001 add r0,1h ;r0++ 0808AAD0 4A06 ldr r2,=21DEh ;r2 = 8670 [it's the 1082 valid cards + card_id #0 multiplied by 8 + an offset of 6 for idk which reason yet] 0808AAD2 18A9 add r1,r5,r2 ;r1 = pointer to Player's Trunk + 8670 0808AAD4 8008 strh r0,[r1] ;r0 = [r1] 0808AAD6 4E06 ldr r6,=21D4h ; 0808AAD8 19A9 add r1,r5,r6 ; 0808AADA 4806 ldr r0,=0FBC1h ; 0808AADC 8008 strh r0,[r1] ; 0808AADE BC70 pop r4-r6 ; 0808AAE0 BC01 pop r0 ; 0808AAE2 4700 bx r0 ;
Add card to Trunk
0808AF0C 3C80 sub r4,80h ; 0808AF0E 0883 lsr r3,r0,2h ; 0808AF10 F893 bl lr+126h ; 0808AF12 FFFF bl lr+0FFEh ; 0808AF14 6070 str r0,[r6,4h] ; 0808AF16 0817 lsr r7,r2,20h ; 0808AF18 B530 push r4,r5,r14 ; 0808AF1A 1C04 mov r4,r0 ; 0808AF1C 0424 lsl r4,r4,10h ; 0808AF1E 0C24 lsr r4,r4,10h ; 0808AF20 1C20 mov r0,r4 ; 0808AF22 F7FFFFDF bl 808AEE4h ; 0808AF26 4B0C ldr r3,=2011C20h ; 0808AF28 00A4 lsl r4,r4,2h ; 0808AF2A 18E4 add r4,r4,r3 ;r4 = 0x2011C20 + (card_id << 2) 0808AF2C 8922 ldrh r2,[r4,8h] ;r2 = old card quantity 0808AF2E 0591 lsl r1,r2,16h ; 0808AF30 480A ldr r0,=0FF800000h ; 0808AF32 4281 cmp r1,r0 ; 0808AF34 D80D bhi 808AF52h ; 0808AF36 0D89 lsr r1,r1,16h ; 0808AF38 3101 add r1,1h ; 0808AF3A 4D09 ldr r5,=3FFh ; 0808AF3C 1C28 mov r0,r5 ; 0808AF3E 4001 and r1,r0 ; 0808AF40 4808 ldr r0,=0FFFFFC00h ;1024 is the maximum quantity for a given card 0808AF42 4010 and r0,r2 ;r2 is old card quantity 0808AF44 4308 orr r0,r1 ;r1 is new card quantity 0808AF46 8120 strh r0,[r4,8h] ;Store new card quantity in [r4 + 8] 0808AF48 4807 ldr r0,=20C6h ; 0808AF4A 1819 add r1,r3,r0 ; 0808AF4C 8808 ldrh r0,[r1] ; 0808AF4E 3001 add r0,1h ; 0808AF50 8008 strh r0,[r1] ; 0808AF52 BC30 pop r4,r5 ; 0808AF54 BC01 pop r0 ; 0808AF56 4700 bx r0 ; 0808AF58 1C20 mov r0,r4 ;
0x6B20C
0806B20C 5BE8 ldrh r0,[r5,r7] ; 0806B20E 0201 lsl r1,r0,8h ; 0806B210 F01FFBD0 bl 808A9B4h ;PRNG - LCG rand() 0806B214 1C01 mov r1,r0 ; 0806B216 2900 cmp r1,0h ; 0806B218 DA00 bge 806B21Ch ; 0806B21A 1CC8 add r0,r1,3 ; 0806B21C 1080 asr r0,r0,2h ; 0806B21E 0080 lsl r0,r0,2h ; 0806B220 1A08 sub r0,r1,r0 ; 0806B222 2801 cmp r0,1h ; 0806B224 D00D beq 806B242h ; 0806B226 2801 cmp r0,1h ; 0806B228 DC02 bgt 806B230h ; 0806B22A 2800 cmp r0,0h ; 0806B22C D005 beq 806B23Ah ; 0806B22E E013 b 806B258h ; 0806B230 2802 cmp r0,2h ; 0806B232 D00A beq 806B24Ah ; 0806B234 2803 cmp r0,3h ; 0806B236 D00C beq 806B252h ; 0806B238 E00E b 806B258h ; 0806B23A 2016 mov r0,16h ; 0806B23C F7FDFF2E bl 806909Ch ; 0806B240 E00A b 806B258h ; 0806B242 2017 mov r0,17h ; 0806B244 F7FDFF2A bl 806909Ch ; 0806B248 E006 b 806B258h ; 0806B24A 2014 mov r0,14h ; 0806B24C F7FDFF26 bl 806909Ch ; 0806B250 E002 b 806B258h ; 0806B252 201A mov r0,1Ah ; 0806B254 F7FDFF22 bl 806909Ch ; 0806B258 BC30 pop r4,r5 ; 0806B25A BC01 pop r0 ; 0806B25C 4700 bx r0 ;
0x6B25E
0806B25E 0000 lsl r0,r0,0h ; 0806B260 B530 push r4,r5,r14 ; 0806B262 B09D add sp,-74h ; 0806B264 2000 mov r0,0h ; 0806B266 4669 mov r1,r13 ; 0806B268 F7FCFCBA bl 8067BE0h ;Check cards in Player's Deck 0806B26C 4CBF ldr r4,=201A50Ch ; 0806B26E 25A0 mov r5,0A0h ; 0806B270 006D lsl r5,r5,1h ;r5 = 0d320 0806B272 1C20 mov r0,r4 ; 0806B274 1C29 mov r1,r5 ;r1 = 0d320 0806B276 F01DFCEF bl 8088C58h ;call 0x8088C58 0806B27A 21A0 mov r1,0A0h ; 0806B27C 0089 lsl r1,r1,2h ;r1 = 0d640 0806B27E 1860 add r0,r4,r1 ;r0 = 0d640 + r4 0806B280 1C29 mov r1,r5 ; 0806B282 F01DFCE9 bl 8088C58h ;call 0x8088C58 0806B286 48BA ldr r0,=0FFFFF83Fh ; 0806B288 1825 add r5,r4,r0 ; 0806B28A 2000 mov r0,0h ; 0806B28C 7028 strb r0,[r5] ; 0806B28E 49B9 ldr r1,=0FFFFF841h ; 0806B290 1864 add r4,r4,r1 ; 0806B292 7020 strb r0,[r4] ; 0806B294 48B8 ldr r0,=3000040h ; 0806B296 49B9 ldr r1,=4870h ; 0806B298 1840 add r0,r0,r1 ; 0806B29A 7800 ldrb r0,[r0] ; 0806B29C 0680 lsl r0,r0,1Ah ; 0806B29E 0EC0 lsr r0,r0,1Bh ; 0806B2A0 F7FDFEFC bl 806909Ch ; 0806B2A4 782D ldrb r5,[r5] ; 0806B2A6 2D27 cmp r5,27h ; 0806B2A8 D900 bls 806B2ACh ; 0806B2AA E0C2 b 806B432h ;
Blanks number of each type of cards in Player's deck at IW_3007A48
- Arguments:
- r0 : Pointer to # of each type of cards in Player's deck
- r1 : amount of bytes to blank
08088C58 1C02 mov r2,r0 ; 08088C5A 1C48 add r0,r1,1 ;r0 = r1 + 1 08088C5C 0FC1 lsr r1,r0,1Fh ; 08088C5E 1840 add r0,r0,r1 ; 08088C60 1041 asr r1,r0,1h ; 08088C62 2900 cmp r1,0h ; 08088C64 D005 beq 8088C72h ;if (r1 == 0), branch to 08088C72 (exit the function) 08088C66 2000 mov r0,0h ;r0 = 0 08088C68 8010 strh r0,[r2] ;store r0 into [r2] 08088C6A 3202 add r2,2h ;r2 += 2 08088C6C 3901 sub r1,1h ;r1-- 08088C6E 2900 cmp r1,0h ; 08088C70 D1FA bne 8088C68h ;if (r1 ≠ 0), loop to 08088C68 08088C72 4770 bx r14 ;
PRNG - LCG rand()
- Microsoft LCG rand() : IW_3000040 × 0x343FD + 0x269EC3
- Return: r0 contains 2 MSBytes of the new PRN; 2 LSBytes are discarded
0808A9B4 4A06 ldr r2,=3000040h ; 0808A9B6 6811 ldr r1,[r2] ;r1 = 4-byte PRN 0808A9B8 4806 ldr r0,=343FDh ; 0808A9BA 4348 mul r0,r1 ;r0 ×= 0x343FD 0808A9BC 4906 ldr r1,=269EC3h ; 0808A9BE 1840 add r0,r0,r1 ;r0 += 0x269EC3 0808A9C0 0401 lsl r1,r0,10h ; 0808A9C2 0C00 lsr r0,r0,10h ; 0808A9C4 4308 orr r0,r1 ; 0808A9C6 6010 str r0,[r2] ;Store the new PRN in IW_3000040 0808A9C8 0040 lsl r0,r0,1h ; 0808A9CA 0C40 lsr r0,r0,11h ; 0808A9CC 4770 bx r14 ;
0x94918
- Arguments:
- r0 : ?
- r1 : cpu_max_deck_size ? (r1 = 60 at 0x68FE2)
08094918 2900 cmp r1,0h ; 0809491A D041 beq 80949A0h ; 0809491C B410 push r4 ; 0809491E 1C04 mov r4,r0 ; 08094920 404C eor r4,r1 ; 08094922 46A4 mov r12,r4 ; 08094924 2301 mov r3,1h ; 08094926 2200 mov r2,0h ; 08094928 2900 cmp r1,0h ; 0809492A D500 bpl 809492Eh ; 0809492C 4249 neg r1,r1 ; 0809492E 2800 cmp r0,0h ; 08094930 D500 bpl 8094934h ; 08094932 4240 neg r0,r0 ; 08094934 4288 cmp r0,r1 ; 08094936 D32C bcc 8094992h ; 08094938 2401 mov r4,1h ; 0809493A 0724 lsl r4,r4,1Ch ; 0809493C 42A1 cmp r1,r4 ; 0809493E D204 bcs 809494Ah ; 08094940 4281 cmp r1,r0 ; 08094942 D202 bcs 809494Ah ; 08094944 0109 lsl r1,r1,4h ; 08094946 011B lsl r3,r3,4h ; 08094948 E7F8 b 809493Ch ;
Cards data
Cards stats array
0x832B84 to 0x833C7F - Cards stats array, containing Attribute, Type, ATK and DEF
bitmap: AAAB BBBC CCCC DDEE EEEE EEEF FFFF FFFF A - Attribute If card_type ≤ 0x14 0 - No Attribute 1 - LIGHT 2 - DARK 3 - WATER 4 - FIRE 5 - EARTH 6 - WIND 7 - --- If card_type ≥ 0x15 0 - MAGIC 1 - TRAP B - Level C - Card Type 0 - [] (Monster) 1 - Dragon 2 - Zombie 3 - Fiend 4 - Pyro 5 - Sea Serpent 6 - Rock 7 - Machine 8 - Fish 9 - Dinosaur A - Insect B - Beast C - Beast-Warrior D - Plant E - Aqua F - Warrior 10 - Winged-Beast 11 - Fairy 12 - Spellcaster 13 - Thunder 14 - Reptile 15 - Trap 16 - Magic 17 - Ticket ("Cannot be used in duel") 18 - Divine-Beast ("Cannot be used in duel", displays the unused Divine Attribute, sets the card Level to 10, and displays blank values as the ATK/DEF stats - there's a workaround to display the 4000/4000 stats from the Display ATK and DEF subroutines) D - Card category If card_type ≤ 0x14 0 - Normal Monster 1 - Effect Monster 2 - Fusion Monster 3 - Ritual Monster If card_type = 0x15, a 3rd bit is used 0 - Normal 1 - Counter 2 - Field 3 - Equip 4 - Continuous 5 - Quick 6 - Ritual 7 - [Unknown] E - ATK ÷ 10 F - DEF ÷ 10
Take this example with Earthbound Spirit (ID #0001).
C8 64 30 A8 => 0xA83064C8 Card ATK : => DWORD(((0xA83064C8 << 14 >> 23 << 2) + (0xA83064C8 << 14 >> 23)) << 1) = 0d500 Or : xxxx xxxx xxxx xxCC CCCC CCCx xxxx xxxx 0b000110010 = 0d50 50 × 10 = 500
Cards internal IDs
- 0x833C80 to 0x8344FD - List of cards internal IDs, used for example for the Player's deck loading subroutine at 0x67C1A (to be documented).
Cards IDs
- 0x8355FC - Array to convert cards internal IDs to card IDs
Cards names
- 0x83663C - Card names in 6 languages : Japanese, English, German, French, Italian, Spanish
Internal Data for Yu-Gi-Oh! Worldwide Edition: Stairway to the Destined Duel
| |
---|---|