Yu-Gi-Oh! The Duelists of the Roses/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Yu-Gi-Oh! The Duelists of the Roses.

Game text 1

  • 0x28EF50-0x28F178 - Deck Edit menu + Duel menu

Cards IDs orders

  • 0x29CC48-0x29E04B - Cards IDs orders, 853 cards ×6 + spacing × 6

Starter Decks

  • 0x2A0A70-0x2A0FE2 - Starter decks
xx 1x
yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y
yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y
yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y
yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y
yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y yy 0y

xx - Deck Leader
yy - Card ID

Twin-Headed Behemoth

22 10
03 00 12 00 15 00 1A 00 1F 00 20 00 21 00 2F 00
3E 00 48 00 49 00 52 00 76 00 83 00 8E 00 B6 00
DA 00 E3 00 06 01 16 01 1E 01 21 01 63 01 69 01
71 01 7A 01 A4 01 BA 01 BE 01 D7 01 F7 01 1F 02
3B 02 4B 02 8B 02 8D 02 B3 02 CC 02 FE 02 27 03

Deck Leader: Twin-Headed Behemoth

1× Kaiser Dragon
1× Crawling Dragon
1× Baby Dragon
1× Petit Dragon
1× Sky Dragon
1× Lesser Dragon
1× Fairy Dragon
1× Eldeen
1× Curtain of the Dark Ones
1× Sectarian of Secrets
1× Mystic Lamp
1× Sorcerer of the Doomed
1× Flame Ghost
1× Ghoul with an Appetite
1× Unknown Warrior of Fiend
1× Guardian of the Labyrinth
1× Ogre of the Black Shadow
1× Little Chimera
1× Great Bill
1× Kurama
1× Winged Dragon, Guardian of the Fortress #2
1× Fiend Reflection #1
1× Wretched Ghost of the Attic
1× Wall of Illusion
1× Goddess with the Third Eye
1× Lunar Queen Elzaim
1× Minar
1× Anthrosaurus
1× Armored Lizard
1× Wow Warrior
1× Mechanical Snail
1× Kaminarikozou
1× Psychic Kappa
1× Zarigun
1× Firegrass
1× Arlownay

1× Mountain
1× Dark-Piercing Light
1× Dragon Treasure

1× House of Adhesive Tape

CPU Decks

  • 0x2A0FE3 - CPU decks

Game text 2

  • 0x2DF1B0-0x2DF2F5 - Map menu + Location names

0x19a5c8 (prng)

0019a5c8: 27bdfff0 addiu sp,sp,-16
0019a5cc: 3c020029 lui v0,0x29
0019a5d0: ffb00000 sd s0,0(sp)
0019a5d4: 3c055851 lui a1,0x5851
0019a5d8: 34a5f42d ori a1,a1,0xf42d
0019a5dc: 00052c38 dsll a1,a1,0x10
0019a5e0: 34a54c95 ori a1,a1,0x4c95
0019a5e4: 00052c38 dsll a1,a1,0x10
0019a5e8: 34a57f2d ori a1,a1,0x7f2d
0019a5ec: 8c50fa98 lw s0,-1384(v0)
0019a5f0: ffbf0008 sd ra,8(sp)
0019a5f4: 0c06817a jal 0x001a05e8
0019a5f8: de0400a8 ld a0,168(s0)
0019a5fc: 3c047fff lui a0,0x7fff
0019a600: 3484ffff ori a0,a0,0xffff
0019a604: 64430001 daddiu v1,v0,1
0019a608: dfbf0008 ld ra,8(sp)
0019a60c: 0003103e dsrl32 v0,v1,0x0
0019a610: fe0300a8 sd v1,168(s0)
0019a614: 00441024 and v0,v0,a0
0019a618: dfb00000 ld s0,0(sp)
0019a61c: 0002103c dsll32 v0,v0,0x0
0019a620: 0002103f dsra32 v0,v0,0x0
0019a624: 03e00008 jr ra
0019a628: 27bd0010 addiu sp,sp,16

0x1dd0e0

Get the pointer to card a0's entry in the card table at 0x2bf080.

001dd0e0: 2402029f li v0,671
001dd0e4: 14820002 bne a0,v0,0x001dd0f0    ; if argument is Summoned Lord Exodia return NULL
001dd0e8: 00000000 nop
001dd0ec: 240403e7 li a0,999
001dd0f0: 04800005 bltz a0,0x001dd108      ; if argument is negative return NULL
001dd0f4: 70001628 paddub v0,zero,zero
001dd0f8: 28820356 slti v0,a0,854
001dd0fc: 14400005 bnez v0,0x001dd114      ; if argument is >= 854 (last card is 853) return NULL
001dd100: 00041080 sll v0,a0,0x2
001dd104: 70001628 paddub v0,zero,zero
001dd108: 10000007 b 0x001dd128
001dd10c: 00000000 nop
001dd110: 00041080 sll v0,a0,0x2
001dd114: 00441021 addu v0,v0,a0
001dd118: 00021880 sll v1,v0,0x2
001dd11c: 3c02002c lui v0,0x2c
001dd120: 2442f080 addiu v0,v0,-3968
001dd124: 00431021 addu v0,v0,v1
001dd128: 03e00008 jr ra
001dd12c: 00000000 nop

0x1de4e0

Determine who is controlling player a0. 0 means Lancastrian side, 1 means Yorkist side.

001de4e0: 50030224 li v0,848
001de4e4: 18188200 mult v1,a0,v0
001de4e8: 3100023c lui v0,0x31
001de4ec: 90744224 addiu v0,v0,29840
001de4f0: 21104300 addu v0,v0,v1
001de4f4: 0800e003 jr ra
001de4f8: 3c034290 lbu v0,828(v0)

0x1de540 (determine current player)

001de540: 3200013c lui at,0x32
001de544: 0800e003 jr ra
001de548: e4812290 lbu v0,-32284(at)

0x1df470

Determine Life Points of player a0.

001df470: 50030224 li v0,848
001df474: 18188200 mult v1,a0,v0
001df478: 3100023c lui v0,0x31
001df47c: 90744224 addiu v0,v0,29840
001df480: 21104300 addu v0,v0,v1
001df484: 0800e003 jr ra
001df488: 3a034294 lhu v0,826(v0)

0x2495a0 (check fusion table)

002495a0: 0085082a slt at,a0,a1
002495a4: 10200004 beqz at,0x002495b8
002495a8: 00000000 nop
002495ac: 70801628 paddub v0,a0,zero
002495b0: 70a02628 paddub a0,a1,zero
002495b4: 70402e28 paddub a1,v0,zero
002495b8: 3c02002a lui v0,0x2a
002495bc: 2447e830 addiu a3,v0,-6096
002495c0: 70003628 paddub a2,zero,zero
002495c4: 3c02000f lui v0,0xf
002495c8: 3443fc00 ori v1,v0,0xfc00
002495cc: 8ce80000 lw t0,0(a3)
002495d0: 310203ff andi v0,t0,0x3ff
002495d4: 5482000f bnel a0,v0,0x00249614
002495d8: 24c60001 addiu a2,a2,1
002495dc: 01031024 and v0,t0,v1
002495e0: 00021282 srl v0,v0,0xa
002495e4: 14a2000a bne a1,v0,0x00249610
002495e8: 00000000 nop
002495ec: 3c02002a lui v0,0x2a
002495f0: 2442e830 addiu v0,v0,-6096
002495f4: 00061880 sll v1,a2,0x2
002495f8: 00431021 addu v0,v0,v1
002495fc: 8c430000 lw v1,0(v0)
00249600: 3c023ff0 lui v0,0x3ff0
00249604: 00621024 and v0,v1,v0
00249608: 10000006 b 0x00249624
0024960c: 00021502 srl v0,v0,0x14
00249610: 24c60001 addiu a2,a2,1
00249614: 28c267ac slti v0,a2,26540
00249618: 1440ffec bnez v0,0x002495cc
0024961c: 24e70004 addiu a3,a3,4
00249620: 240203e7 li v0,999
00249624: 03e00008 jr ra
00249628: 00000000 nop

0x24e910

Returns the number of 1s in the lower 22 bits of a0.

0024e910: 28160070 paddub v0,zero,zero
0024e914: 28360070 paddub a2,zero,zero
0024e918: 01000524 li a1,1
0024e91c: 0618c400 srlv v1,a0,a2
0024e920: 01006330 andi v1,v1,0x1
0024e924: 03006554 bnel v1,a1,0x0024e934
0024e928: 0100c624 addiu a2,a2,1
0024e92c: 01004224 addiu v0,v0,1
0024e930: 0100c624 addiu a2,a2,1
0024e934: 1600c328 slti v1,a2,22
0024e938: f9ff6014 bnez v1,0x0024e920
0024e93c: 0618c400 srlv v1,a0,a2
0024e940: 0800e003 jr ra
0024e944: 00000000 nop

0x26efd0 (decide Destiny Draw row)

Called at 0x26ef88. The < 1k LP check is done before calling this.

0026efd0: 60ffbd27 addiu sp,sp,-160
0026efd4: 9000bf7f sq ra,144(sp)
0026efd8: 8000be7f sq s8,128(sp)
0026efdc: 7000b77f sq s7,112(sp)
0026efe0: 6000b67f sq s6,96(sp)
0026efe4: 5000b57f sq s5,80(sp)
0026efe8: 4000b47f sq s4,64(sp)
0026efec: 3000b37f sq s3,48(sp)
0026eff0: 2000b27f sq s2,32(sp)
0026eff4: 1000b17f sq s1,16(sp)
0026eff8: 0000b07f sq s0,0(sp)
0026effc: 5079070c jal 0x001de540          ; determine current player
0026f000: 28868070 paddub s0,a0,zero
0026f004: 3879070c jal 0x001de4e0          ; determine who controls current player
0026f008: 28264070 paddub a0,v0,zero
0026f00c: 28f64070 paddub s8,v0,zero
0026f010: 6400c12b slti at,s8,100
0026f014: 52012014 bnez at,0x0026f560      ; break if AI turn
0026f018: 6400c12b slti at,s8,100
0026f01c: 03000724 li a3,3
0026f020: 21000824 li t0,33
0026f024: 0e000924 li t1,14
0026f028: 28260070 paddub a0,zero,zero
0026f02c: 282e0070 paddub a1,zero,zero
0026f030: 9032090c jal 0x0024ca40
0026f034: 28360072 paddub a2,s0,zero
0026f038: 28264070 paddub a0,v0,zero
0026f03c: 143b090c jal 0x0024ec50
0026f040: 282e0070 paddub a1,zero,zero
0026f044: 03920200 sra s2,v0,0x8
0026f048: ff005130 andi s1,v0,0xff
0026f04c: 28264072 paddub a0,s2,zero
0026f050: d840090c jal 0x00250360
0026f054: 282e2072 paddub a1,s1,zero
0026f058: 31000212 beq s0,v0,0x0026f120
0026f05c: 02000724 li a3,2
0026f060: 28264072 paddub a0,s2,zero
0026f064: c081070c jal 0x001e0700
0026f068: 282e2072 paddub a1,s1,zero
0026f06c: 07004238 xori v0,v0,0x7
0026f070: 0100422c sltiu v0,v0,1
0026f074: 1f004230 andi v0,v0,0x1f
0026f078: 28004010 beqz v0,0x0026f11c
0026f07c: 28264072 paddub a0,s2,zero
0026f080: 2484070c jal 0x001e1090
0026f084: 282e2072 paddub a1,s1,zero
0026f088: 288e4070 paddub s1,v0,zero
0026f08c: 28260072 paddub a0,s0,zero
0026f090: 2484070c jal 0x001e1090
0026f094: 282e0070 paddub a1,zero,zero
0026f098: 031a0200 sra v1,v0,0x8
0026f09c: 032a1100 sra a1,s1,0x8
0026f0a0: 2a08a300 slt at,a1,v1
0026f0a4: 28266070 paddub a0,v1,zero
0026f0a8: 0b20a100 movn a0,a1,at
0026f0ac: 2a086500 slt at,v1,a1
0026f0b0: 0a286100 movz a1,v1,at
0026f0b4: ff004630 andi a2,v0,0xff
0026f0b8: ff002332 andi v1,s1,0xff
0026f0bc: 2a086600 slt at,v1,a2
0026f0c0: 2816c070 paddub v0,a2,zero
0026f0c4: 0b106100 movn v0,v1,at
0026f0c8: 2a08c300 slt at,a2,v1
0026f0cc: 0a18c100 movz v1,a2,at
0026f0d0: 23186200 subu v1,v1,v0
0026f0d4: 2310a400 subu v0,a1,a0
0026f0d8: 21106200 addu v0,v1,v0
0026f0dc: 03004128 slti at,v0,3
0026f0e0: 0e002010 beqz at,0x0026f11c
0026f0e4: 02000724 li a3,2
0026f0e8: 07000824 li t0,7                 ; select type 7 (Fiend)
0026f0ec: 0e000924 li t1,14
0026f0f0: 28260070 paddub a0,zero,zero
0026f0f4: 282e0070 paddub a1,zero,zero
0026f0f8: 9032090c jal 0x0024ca40
0026f0fc: 28360072 paddub a2,s0,zero
0026f100: 443a090c jal 0x0024e910
0026f104: 28264070 paddub a0,v0,zero
0026f108: 03004228 slti v0,v0,3
0026f10c: 03004014 bnez v0,0x0026f11c      ; if less than 3 Fiends controlled by opponent, break (I think)
0026f110: 01000224 li v0,1
0026f114: 2f010010 b 0x0026f5d4            ; return picking row 1
0026f118: 9000bf7b lq ra,144(sp)
0026f11c: 02000724 li a3,2
0026f120: 1d000824 li t0,29
0026f124: 0e000924 li t1,14
0026f128: 28260070 paddub a0,zero,zero
0026f12c: 282e0070 paddub a1,zero,zero
0026f130: 9032090c jal 0x0024ca40
0026f134: 28360072 paddub a2,s0,zero
0026f138: 28be4070 paddub s7,v0,zero
0026f13c: 2826e072 paddub a0,s7,zero
0026f140: 443a090c jal 0x0024e910
0026f144: 28960070 paddub s2,zero,zero
0026f148: 03004228 slti v0,v0,3
0026f14c: 3c004014 bnez v0,0x0026f240
0026f150: 03000724 li a3,3
0026f154: 28260072 paddub a0,s0,zero
0026f158: c081070c jal 0x001e0700
0026f15c: 282e0070 paddub a1,zero,zero
0026f160: 09004238 xori v0,v0,0x9
0026f164: 0100422c sltiu v0,v0,1
0026f168: 1f004230 andi v0,v0,0x1f
0026f16c: 33004010 beqz v0,0x0026f23c
0026f170: 2826e072 paddub a0,s7,zero
0026f174: 443a090c jal 0x0024e910
0026f178: 288e0070 paddub s1,zero,zero
0026f17c: 2a080200 slt at,zero,v0
0026f180: 2a002010 beqz at,0x0026f22c
0026f184: 0300422a slti v0,s2,3
0026f188: 2826e072 paddub a0,s7,zero
0026f18c: 143b090c jal 0x0024ec50
0026f190: 282e2072 paddub a1,s1,zero
0026f194: 03a20200 sra s4,v0,0x8
0026f198: ff005330 andi s3,v0,0xff
0026f19c: 28268072 paddub a0,s4,zero
0026f1a0: 2484070c jal 0x001e1090
0026f1a4: 282e6072 paddub a1,s3,zero
0026f1a8: 28ae4070 paddub s5,v0,zero
0026f1ac: 28260070 paddub a0,zero,zero
0026f1b0: 282e8072 paddub a1,s4,zero
0026f1b4: c037090c jal 0x0024df00
0026f1b8: 28366072 paddub a2,s3,zero
0026f1bc: 01000324 li v1,1
0026f1c0: 14004350 beql v0,v1,0x0026f214
0026f1c4: 01003126 addiu s1,s1,1
0026f1c8: ff00b632 andi s6,s5,0xff
0026f1cc: 03aa1500 sra s5,s5,0x8
0026f1d0: 28268072 paddub a0,s4,zero
0026f1d4: 282e6072 paddub a1,s3,zero
0026f1d8: 2836c072 paddub a2,s6,zero
0026f1dc: 7842090c jal 0x002509e0
0026f1e0: 283ea072 paddub a3,s5,zero
0026f1e4: b80b4228 slti v0,v0,3000
0026f1e8: 09004014 bnez v0,0x0026f210
0026f1ec: 28268072 paddub a0,s4,zero
0026f1f0: 282e6072 paddub a1,s3,zero
0026f1f4: 2836c072 paddub a2,s6,zero
0026f1f8: 7842090c jal 0x002509e0
0026f1fc: 283ea072 paddub a3,s5,zero
0026f200: a00f4128 slti at,v0,4000
0026f204: 02002010 beqz at,0x0026f210
0026f208: 00000000 nop
0026f20c: 01005226 addiu s2,s2,1
0026f210: 01003126 addiu s1,s1,1
0026f214: 443a090c jal 0x0024e910
0026f218: 2826e072 paddub a0,s7,zero
0026f21c: 2a102202 slt v0,s1,v0
0026f220: daff4014 bnez v0,0x0026f18c
0026f224: 2826e072 paddub a0,s7,zero
0026f228: 0300422a slti v0,s2,3
0026f22c: 03004014 bnez v0,0x0026f23c
0026f230: 02000224 li v0,2
0026f234: e6000010 b 0x0026f5d0            ; return picking row 2
0026f238: 00000000 nop
0026f23c: 03000724 li a3,3
0026f240: 1d000824 li t0,29
0026f244: 0e000924 li t1,14
0026f248: 28260070 paddub a0,zero,zero
0026f24c: 282e0070 paddub a1,zero,zero
0026f250: 9032090c jal 0x0024ca40
0026f254: 28360072 paddub a2,s0,zero
0026f258: 28a64070 paddub s4,v0,zero
0026f25c: 28268072 paddub a0,s4,zero
0026f260: 28960070 paddub s2,zero,zero
0026f264: 443a090c jal 0x0024e910
0026f268: 289e0070 paddub s3,zero,zero
0026f26c: 03004228 slti v0,v0,3
0026f270: 46004014 bnez v0,0x0026f38c
0026f274: 03000724 li a3,3
0026f278: 28ae0070 paddub s5,zero,zero
0026f27c: 288e0070 paddub s1,zero,zero
0026f280: 2826a072 paddub a0,s5,zero
0026f284: ac88070c jal 0x001e22b0
0026f288: 282e2072 paddub a1,s1,zero
0026f28c: 08000324 li v1,8
0026f290: 04004354 bnel v0,v1,0x0026f2a4
0026f294: 01003126 addiu s1,s1,1
0026f298: 01007326 addiu s3,s3,1
0026f29c: 00000000 nop
0026f2a0: 01003126 addiu s1,s1,1
0026f2a4: 0700222a slti v0,s1,7
0026f2a8: f6ff4014 bnez v0,0x0026f284
0026f2ac: 2826a072 paddub a0,s5,zero
0026f2b0: 0100b526 addiu s5,s5,1
0026f2b4: 0700a22a slti v0,s5,7
0026f2b8: f1ff4014 bnez v0,0x0026f280
0026f2bc: 288e0070 paddub s1,zero,zero
0026f2c0: 1f00612a slti at,s3,31
0026f2c4: 30002014 bnez at,0x0026f388
0026f2c8: 28268072 paddub a0,s4,zero
0026f2cc: 28ae0070 paddub s5,zero,zero
0026f2d0: 443a090c jal 0x0024e910
0026f2d4: 28b60070 paddub s6,zero,zero
0026f2d8: 2a080200 slt at,zero,v0
0026f2dc: 24002010 beqz at,0x0026f370
0026f2e0: 00000000 nop
0026f2e4: 28268072 paddub a0,s4,zero
0026f2e8: 143b090c jal 0x0024ec50
0026f2ec: 282ec072 paddub a1,s6,zero
0026f2f0: 039a0200 sra s3,v0,0x8
0026f2f4: ff005130 andi s1,v0,0xff
0026f2f8: 01000624 li a2,1
0026f2fc: 28266072 paddub a0,s3,zero
0026f300: d041090c jal 0x00250740
0026f304: 282e2072 paddub a1,s1,zero
0026f308: 14004050 beqzl v0,0x0026f35c
0026f30c: 0100d626 addiu s6,s6,1
0026f310: 0000438c lw v1,0(v0)
0026f314: 08000224 li v0,8
0026f318: 021a0300 srl v1,v1,0x8
0026f31c: 07006210 beq v1,v0,0x0026f33c
0026f320: 28266072 paddub a0,s3,zero
0026f324: f7ff6224 addiu v0,v1,-9
0026f328: 0200412c sltiu at,v0,2
0026f32c: 0a002010 beqz at,0x0026f358
0026f330: 00000000 nop
0026f334: 00000000 nop
0026f338: 28266072 paddub a0,s3,zero
0026f33c: d840090c jal 0x00250360
0026f340: 282e2072 paddub a1,s1,zero
0026f344: 03000256 bnel s0,v0,0x0026f354
0026f348: 01005226 addiu s2,s2,1
0026f34c: 02000010 b 0x0026f358
0026f350: 0100b526 addiu s5,s5,1
0026f354: 00000000 nop
0026f358: 0100d626 addiu s6,s6,1
0026f35c: 443a090c jal 0x0024e910
0026f360: 28268072 paddub a0,s4,zero
0026f364: 2a10c202 slt v0,s6,v0
0026f368: dfff4014 bnez v0,0x0026f2e8
0026f36c: 28268072 paddub a0,s4,zero
0026f370: 0500a016 bnez s5,0x0026f388
0026f374: 0300422a slti v0,s2,3
0026f378: 03004014 bnez v0,0x0026f388
0026f37c: 03000224 li v0,3
0026f380: 93000010 b 0x0026f5d0            ; return picking row 3
0026f384: 00000000 nop
0026f388: 03000724 li a3,3
0026f38c: 21000824 li t0,33
0026f390: 0e000924 li t1,14
0026f394: 28260070 paddub a0,zero,zero
0026f398: 282e0070 paddub a1,zero,zero
0026f39c: 9032090c jal 0x0024ca40
0026f3a0: 28360072 paddub a2,s0,zero
0026f3a4: 28264070 paddub a0,v0,zero
0026f3a8: 143b090c jal 0x0024ec50
0026f3ac: 282e0070 paddub a1,zero,zero
0026f3b0: 039a0200 sra s3,v0,0x8
0026f3b4: ff005230 andi s2,v0,0xff
0026f3b8: 28266072 paddub a0,s3,zero
0026f3bc: d840090c jal 0x00250360
0026f3c0: 282e4072 paddub a1,s2,zero
0026f3c4: 31000212 beq s0,v0,0x0026f48c
0026f3c8: 03000724 li a3,3
0026f3cc: 28266072 paddub a0,s3,zero
0026f3d0: 2484070c jal 0x001e1090
0026f3d4: 282e4072 paddub a1,s2,zero
0026f3d8: ffff1124 li s1,-1
0026f3dc: 28a64070 paddub s4,v0,zero
0026f3e0: 28ae0070 paddub s5,zero,zero
0026f3e4: 28260072 paddub a0,s0,zero
0026f3e8: 307c070c jal 0x001df0c0
0026f3ec: 282ea072 paddub a1,s5,zero
0026f3f0: e7030324 li v1,999
0026f3f4: 09004350 beql v0,v1,0x0026f41c
0026f3f8: 0100b526 addiu s5,s5,1
0026f3fc: ecbe090c jal 0x0026fbb0
0026f400: 28264070 paddub a0,v0,zero
0026f404: 02140200 srl v0,v0,0x10
0026f408: 2a082202 slt at,s1,v0
0026f40c: 02002010 beqz at,0x0026f418
0026f410: 00000000 nop
0026f414: 288e4070 paddub s1,v0,zero
0026f418: 0100b526 addiu s5,s5,1
0026f41c: 0500a22a slti v0,s5,5
0026f420: f1ff4014 bnez v0,0x0026f3e8
0026f424: 28260072 paddub a0,s0,zero
0026f428: ff009532 andi s5,s4,0xff
0026f42c: 03a21400 sra s4,s4,0x8
0026f430: 28266072 paddub a0,s3,zero
0026f434: 282e4072 paddub a1,s2,zero
0026f438: 2836a072 paddub a2,s5,zero
0026f43c: 7842090c jal 0x002509e0
0026f440: 283e8072 paddub a3,s4,zero
0026f444: 2a082202 slt at,s1,v0
0026f448: 0f002010 beqz at,0x0026f488
0026f44c: 28266072 paddub a0,s3,zero
0026f450: 282e4072 paddub a1,s2,zero
0026f454: 2836a072 paddub a2,s5,zero
0026f458: 7842090c jal 0x002509e0
0026f45c: 283e8072 paddub a3,s4,zero
0026f460: 01000424 li a0,1
0026f464: 23885100 subu s1,v0,s1
0026f468: 1c7d070c jal 0x001df470
0026f46c: 0b201000 movn a0,zero,s0
0026f470: 43100200 sra v0,v0,0x1
0026f474: 2a082202 slt at,s1,v0
0026f478: 03002010 beqz at,0x0026f488
0026f47c: 04000224 li v0,4
0026f480: 53000010 b 0x0026f5d0            ; return picking row 4
0026f484: 00000000 nop
0026f488: 03000724 li a3,3
0026f48c: 21000824 li t0,33
0026f490: 0e000924 li t1,14
0026f494: 28260070 paddub a0,zero,zero
0026f498: 282e0070 paddub a1,zero,zero
0026f49c: 9032090c jal 0x0024ca40
0026f4a0: 28360072 paddub a2,s0,zero
0026f4a4: 28264070 paddub a0,v0,zero
0026f4a8: 143b090c jal 0x0024ec50
0026f4ac: 282e0070 paddub a1,zero,zero
0026f4b0: 03220200 sra a0,v0,0x8
0026f4b4: ff004530 andi a1,v0,0xff
0026f4b8: d840090c jal 0x00250360
0026f4bc: 28960070 paddub s2,zero,zero
0026f4c0: 26000216 bne s0,v0,0x0026f55c
0026f4c4: 02000724 li a3,2
0026f4c8: 1e000824 li t0,30
0026f4cc: 0e000924 li t1,14
0026f4d0: 28260070 paddub a0,zero,zero
0026f4d4: 282e0070 paddub a1,zero,zero
0026f4d8: 9032090c jal 0x0024ca40
0026f4dc: 28360072 paddub a2,s0,zero
0026f4e0: 288e4070 paddub s1,v0,zero
0026f4e4: 28262072 paddub a0,s1,zero
0026f4e8: 443a090c jal 0x0024e910
0026f4ec: 289e0070 paddub s3,zero,zero
0026f4f0: 2a080200 slt at,zero,v0
0026f4f4: 15002010 beqz at,0x0026f54c
0026f4f8: 0400422a slti v0,s2,4
0026f4fc: 28262072 paddub a0,s1,zero
0026f500: 143b090c jal 0x0024ec50
0026f504: 282e6072 paddub a1,s3,zero
0026f508: 03220200 sra a0,v0,0x8
0026f50c: c081070c jal 0x001e0700
0026f510: ff004530 andi a1,v0,0xff
0026f514: 0878070c jal 0x001de020
0026f518: 43210200 sra a0,v0,0x5
0026f51c: 02000324 li v1,2
0026f520: 04004354 bnel v0,v1,0x0026f534
0026f524: 01007326 addiu s3,s3,1
0026f528: 01005226 addiu s2,s2,1
0026f52c: 00000000 nop
0026f530: 01007326 addiu s3,s3,1
0026f534: 443a090c jal 0x0024e910
0026f538: 28262072 paddub a0,s1,zero
0026f53c: 2a106202 slt v0,s3,v0
0026f540: efff4014 bnez v0,0x0026f500
0026f544: 28262072 paddub a0,s1,zero
0026f548: 0400422a slti v0,s2,4
0026f54c: 03004014 bnez v0,0x0026f55c
0026f550: 05000224 li v0,5
0026f554: 1e000010 b 0x0026f5d0            ; return picking row 5
0026f558: 00000000 nop
0026f55c: 6400c12b slti at,s8,100
0026f560: 11002014 bnez at,0x0026f5a8
0026f564: 28260072 paddub a0,s0,zero
0026f568: 1c7d070c jal 0x001df470
0026f56c: 00000000 nop
0026f570: fa004128 slti at,v0,250
0026f574: 16002010 beqz at,0x0026f5d0
0026f578: ffff0224 li v0,-1
0026f57c: 7269060c jal 0x0019a5c8
0026f580: 00000000 nop
0026f584: 04004104 bgez v0,0x0026f598
0026f588: 01004430 andi a0,v0,0x1
0026f58c: 03008010 beqz a0,0x0026f59c
0026f590: 06000224 li v0,6
0026f594: feff8424 addiu a0,a0,-2
0026f598: 06000224 li v0,6
0026f59c: 07000324 li v1,7
0026f5a0: 0b000010 b 0x0026f5d0
0026f5a4: 0b106400 movn v0,v1,a0
0026f5a8: 7269060c jal 0x0019a5c8
0026f5ac: 00000000 nop
0026f5b0: 04004104 bgez v0,0x0026f5c4
0026f5b4: 01004430 andi a0,v0,0x1
0026f5b8: 03008010 beqz a0,0x0026f5c8
0026f5bc: 06000224 li v0,6
0026f5c0: feff8424 addiu a0,a0,-2
0026f5c4: 06000224 li v0,6
0026f5c8: 07000324 li v1,7
0026f5cc: 0b106400 movn v0,v1,a0
0026f5d0: 9000bf7b lq ra,144(sp)
0026f5d4: 8000be7b lq s8,128(sp)
0026f5d8: 7000b77b lq s7,112(sp)
0026f5dc: 6000b67b lq s6,96(sp)
0026f5e0: 5000b57b lq s5,80(sp)
0026f5e4: 4000b47b lq s4,64(sp)
0026f5e8: 3000b37b lq s3,48(sp)
0026f5ec: 2000b27b lq s2,32(sp)
0026f5f0: 1000b17b lq s1,16(sp)
0026f5f4: 0000b07b lq s0,0(sp)
0026f5f8: 0800e003 jr ra
0026f5fc: a000bd27 addiu sp,sp,160