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! Duel Monsters/ROM map
< Yu-Gi-Oh! Duel Monsters(Redirected from Yu-Gi-Oh! Duel Monsters:ROM map)
Jump to navigation
Jump to search
The following article is a ROM map for Yu-Gi-Oh! Duel Monsters.
Bank 0
rst
rst 00
ROM0:0000 F3 di ROM0:0001 C3 8F 16 jp 168F ;Checks input at Title Screen for password
rst 08
ROM0:0008 C3 33 10 jp 1033 ;rst 08 instructions
rst 10 (error trap)
ROM0:0010 18 FE jr 0010
rst 18 (error trap)
ROM0:0018 18 FE jr 0018
rst 20 (error trap)
ROM0:0020 18 FE jr 0020
rst 28 (error trap)
ROM0:0028 18 FE jr 0028
rst 30 (error trap)
ROM0:0030 18 FE jr 0030
rst 38 (error trap)
ROM0:0038 18 FE jr 0038
rst 40 (vblank)
ROM0:0040 C3 1A 04 jp 041A ;Load pointer to OAM subroutine
rst 48 (LCD)
ROM0:0048 18 FE jr 0048
rst 50 (timer)
ROM0:0050 C3 1A 16 jp 161A
rst 58 (serial)
ROM0:0058 C3 D0 01 jp 01D0
rst 60 (joypad)
ROM0:0060 18 FE jr 0060
ROM start
ROM0:0100 00 nop ROM0:0101 C3 50 01 jp 0150 ... ROM0:0150 E0 DD ld (ff00+DD),a ROM0:0152 21 00 E0 ld hl,E000 ROM0:0155 F9 ld sp,hl ROM0:0156 CD 90 10 call 1090 ROM0:0159 CF rst 08 => 05 04 ROM0:015C 3E 00 ld a,00 ROM0:015E CF rst 08 => 03 3F ROM0:0161 CF rst 08 => 03 3E ROM0:0164 CD EA 14 call 14EA ROM0:0167 CD 96 03 call 0396 ROM0:016A CD D8 0D call 0DD8 ROM0:016D CD 9F 01 call 019F ROM0:0170 3E 02 ld a,02 ROM0:0172 CF rst 08 => 03 3F ROM0:0175 CF rst 08 => 49 01 ROM0:0178 3E 04 ld a,04 ROM0:017A CF rst 08 => 03 3F ROM0:017D CF rst 08 => 4B 01 ROM0:0180 3E 06 ld a,06 ROM0:0182 CF rst 08
Joypad input
ROM0:03AA F5 push af ROM0:03AB C5 push bc ROM0:03AC D5 push de ROM0:03AD 3E 20 ld a,20 ROM0:03AF E0 00 ld (ff00+00),a ROM0:03B1 F0 00 ld a,(ff00+00) // Joypad input ROM0:03B3 F0 00 ld a,(ff00+00) ROM0:03B5 2F cpl ROM0:03B6 E6 0F and a,0F ROM0:03B8 CB 37 swap a ROM0:03BA 47 ld b,a ROM0:03BB 3E 10 ld a,10 ROM0:03BD E0 00 ld (ff00+00),a ROM0:03BF F0 00 ld a,(ff00+00) ROM0:03C1 F0 00 ld a,(ff00+00) ROM0:03C3 F0 00 ld a,(ff00+00) ROM0:03C5 F0 00 ld a,(ff00+00) ROM0:03C7 F0 00 ld a,(ff00+00) ROM0:03C9 F0 00 ld a,(ff00+00) ROM0:03CB 2F cpl ROM0:03CC E6 0F and a,0F ROM0:03CE B0 or b ROM0:03CF 4F ld c,a ROM0:03D0 FA A5 CA ld a,(CAA5) ROM0:03D3 57 ld d,a ROM0:03D4 A9 xor c ROM0:03D5 A1 and c ROM0:03D6 EA A6 CA ld (CAA6),a ROM0:03D9 79 ld a,c ROM0:03DA EA A5 CA ld (CAA5),a // Stores input in (CAA5) ROM0:03DD 3E 30 ld a,30 ROM0:03DF E0 00 ld (ff00+00),a ROM0:03E1 FA A5 CA ld a,(CAA5) ROM0:03E4 BA cp d ROM0:03E5 20 19 jr nz,0400 ROM0:03E7 3E 00 ld a,00 ROM0:03E9 EA A7 CA ld (CAA7),a ROM0:03EC FA A8 CA ld a,(CAA8) ROM0:03EF 3D dec a ROM0:03F0 EA A8 CA ld (CAA8),a ROM0:03F3 20 09 jr nz,03FE ROM0:03F5 3E 03 ld a,03 ROM0:03F7 EA A8 CA ld (CAA8),a ROM0:03FA 7A ld a,d ROM0:03FB EA A7 CA ld (CAA7),a ROM0:03FE 18 08 jr 0408 ROM0:0400 EA A7 CA ld (CAA7),a ROM0:0403 3E 14 ld a,14 ROM0:0405 EA A8 CA ld (CAA8),a ROM0:0408 D1 pop de ROM0:0409 C1 pop bc ROM0:040A F1 pop af ROM0:040B C9 ret
Object Attribute Memory
rst 40 - Load pointer to OAM subroutine
ROM0:041A F5 push af ROM0:041B E5 push hl ROM0:041C C5 push bc ROM0:041D D5 push de ROM0:041E 06 00 ld b,00 ROM0:0420 FA AC CA ld a,(CAAC) ROM0:0423 4F ld c,a ROM0:0424 21 2C 04 ld hl,042C ROM0:0427 09 add hl,bc ROM0:0428 2A ldi a,(hl) ROM0:0429 66 ld h,(hl) ROM0:042A 6F ld l,a ROM0:042B E9 jp hl
0:042C (pointers, to document)
ROM0:042C 44 04 5D 04 83 04 AC 04 1F 05 CE 06 26 08 00 09 0A 0A 62 0B F0 0B
0:045D ((CAAC) = 0, (CAA9) = 1)
ROM0:045D 3E 00 ld a,00 ROM0:045F EA AC CA ld (CAAC),a ROM0:0462 3E 01 ld a,01 ROM0:0464 EA A9 CA ld (CAA9),a ROM0:0467 CD AA 03 call 03AA ;Joypad input ROM0:046A 0E E4 ld c,E4 ROM0:046C F2 ld a,(ff00+c) ROM0:046D F6 80 or a,80 ROM0:046F E2 ld (ff00+c),a ROM0:0470 0E E5 ld c,E5 ROM0:0472 F2 ld a,(ff00+c) ROM0:0473 F6 80 or a,80 ROM0:0475 E2 ld (ff00+c),a ROM0:0476 CD 05 17 call 1705 ROM0:0479 E0 CD ld (ff00+CD),a ROM0:047B 05 dec b ROM0:047C 17 rla ROM0:047D E1 pop hl ROM0:047E D1 pop de ROM0:047F C1 pop bc ROM0:0480 E1 pop hl ROM0:0481 F1 pop af ROM0:0482 D9 reti
0:0DE3 (set (CAAB) to accumulator, and (CAAA) to 0)
ROM0:0DE3 F5 push af ROM0:0DE4 C5 push bc ROM0:0DE5 E5 push hl ROM0:0DE6 EA AB CA ld (CAAB),a ROM0:0DE9 4F ld c,a ROM0:0DEA 06 00 ld b,00 ROM0:0DEC 21 01 0E ld hl,0E01 ROM0:0DEF 09 add hl,bc ROM0:0DF0 2A ldi a,(hl) ROM0:0DF1 66 ld h,(hl) ROM0:0DF2 6F ld l,a ROM0:0DF3 01 F8 0D ld bc,0DF8 ROM0:0DF6 C5 push bc ROM0:0DF7 E9 jp hl ROM0:0DF8 3E 00 ld a,00 ROM0:0DFA EA AA CA ld (CAAA),a ROM0:0DFD E1 pop hl ROM0:0DFE C1 pop bc ROM0:0DFF F1 pop af ROM0:0E00 C9 ret
0:0E01 (pointers to ?)
ROM0:0E01 19 0E 19 0E 19 0E 1A 0E 3F 0E 40 0E 4D 0E 6A 0E B7 0E E4 0E 11 0F 2E 0F
0:0F2F ((CAAB) => (CAAC), (CAAB) = 0)
ROM0:0F2F F5 push af ROM0:0F30 FA AB CA ld a,(CAAB) ROM0:0F33 EA AC CA ld (CAAC),a ROM0:0F36 3E 00 ld a,00 ROM0:0F38 EA AB CA ld (CAAB),a ROM0:0F3B F1 pop af ROM0:0F3C C9 ret
Store reg bc in [wC5(CAAA)], and update wCAAA
ROM0:0F3D F5 push af ROM0:0F3E E5 push hl ROM0:0F3F 26 C5 ld h,C5 ROM0:0F41 FA AA CA ld a,(CAAA) ROM0:0F44 6F ld l,a ;hl = 0xC5XX ROM0:0F45 79 ld a,c ROM0:0F46 22 ldi (hl),a ROM0:0F47 78 ld a,b ROM0:0F48 22 ldi (hl),a ROM0:0F49 7D ld a,l ROM0:0F4A EA AA CA ld (CAAA),a ROM0:0F4D E1 pop hl ROM0:0F4E F1 pop af ROM0:0F4F C9 ret
Store reg a in [wC5(CAAA)], and update wCAAA
ROM0:0F50 F5 push af ROM0:0F51 E5 push hl ROM0:0F52 F5 push af ROM0:0F53 26 C5 ld h,C5 ROM0:0F55 FA AA CA ld a,(CAAA) ROM0:0F58 6F ld l,a ;hl = 0xC5XX ROM0:0F59 F1 pop af ROM0:0F5A 22 ldi (hl),a ROM0:0F5B 7D ld a,l ROM0:0F5C EA AA CA ld (CAAA),a ROM0:0F5F E1 pop hl ROM0:0F60 F1 pop af ROM0:0F61 C9 ret
0:0F74 (call 0:177B)
ROM0:0F74 F5 push af ROM0:0F75 CD 7B 17 call 177B
0:0F7A (call 0:168F, 0:175A)
ROM0:0F7A CD 8F 16 call 168F ;Checks input at Title Screen for password ROM0:0F7D CD 5A 17 call 175A
0:0FCE (to document)
ROM0:0FCE FA 00 40 ld a,(4000) ROM0:0FD1 F5 push af ROM0:0FD2 3E 3E ld a,3E ROM0:0FD4 CD 9F 10 call 109F ROM0:0FD7 CD 1A 41 call 411A ;set (CAD1) to 2 ROM0:0FDA F1 pop af ROM0:0FDB CD 9F 10 call 109F ROM0:0FDE CD 7B 17 call 177B ROM0:0FE1 80 add b ROM0:0FE2 E5 push hl ROM0:0FE3 CD 8F 16 call 168F ;Checks input at Title Screen for password ROM0:0FE6 CD 5A 17 call 175A ROM0:0FE9 80 add b ROM0:0FEA E5 push hl ROM0:0FEB 28 F6 jr z,0FE3 ROM0:0FED 18 DF jr 0FCE ROM0:0FEF C9 ret
rst 08 instructions
0x1033-0x1070
- rst 08 jumps here
ROM0:1033 F5 push af ROM0:1034 E8 FD add sp,FD ROM0:1036 F5 push af ROM0:1037 E5 push hl ROM0:1038 C5 push bc ROM0:1039 D5 push de ROM0:103A F8 06 ld hl,sp+06 ROM0:103C 54 ld d,h ROM0:103D 5D ld e,l ROM0:103E F8 0E ld hl,sp+0E ROM0:1040 3A ldd a,(hl) ROM0:1041 47 ld b,a ROM0:1042 3A ldd a,(hl) ROM0:1043 4F ld c,a ROM0:1044 FA 00 40 ld a,(4000) ROM0:1047 32 ldd (hl),a ROM0:1048 7E ld a,(hl) ROM0:1049 12 ld (de),a ROM0:104A 3E 10 ld a,10 ROM0:104C 32 ldd (hl),a ROM0:104D 3E 71 ld a,71 ROM0:104F 32 ldd (hl),a ROM0:1050 0A ld a,(bc) ;Retrieve address pointer after the rst 08 ROM0:1051 5F ld e,a ;Store it in e ROM0:1052 03 inc bc ROM0:1053 16 40 ld d,40 ;de = 40xx ROM0:1055 0A ld a,(bc) ;Retrieve Bank after the rst 08 ROM0:1056 03 inc bc ROM0:1057 F3 di ROM0:1058 EA 00 30 ld (3000),a ;ROM Bank switch ROM0:105B 1F rra ROM0:105C CB 37 swap a ROM0:105E EA 00 50 ld (5000),a ROM0:1061 FB ei ROM0:1062 1A ld a,(de) ROM0:1063 32 ldd (hl),a ROM0:1064 1D dec e ROM0:1065 1A ld a,(de) ROM0:1066 77 ld (hl),a ROM0:1067 F8 0D ld hl,sp+0D ROM0:1069 79 ld a,c ROM0:106A 22 ldi (hl),a ROM0:106B 70 ld (hl),b ROM0:106C D1 pop de ROM0:106D C1 pop bc ROM0:106E E1 pop hl ROM0:106F F1 pop af ROM0:1070 C9 ret
Jump back to after the rst 08
ROM0:1071 F5 push af ROM0:1072 E5 push hl ROM0:1073 C5 push bc ROM0:1074 F8 06 ld hl,sp+06 ROM0:1076 7E ld a,(hl) ROM0:1077 F3 di ROM0:1078 EA 00 30 ld (3000),a ;Switches to original Bank ROM0:107B 1F rra ROM0:107C CB 37 swap a ROM0:107E EA 00 50 ld (5000),a ROM0:1081 FB ei ROM0:1082 44 ld b,h ROM0:1083 4D ld c,l ROM0:1084 0B dec bc ROM0:1085 0A ld a,(bc) ROM0:1086 32 ldd (hl),a ROM0:1087 0B dec bc ROM0:1088 0A ld a,(bc) ROM0:1089 77 ld (hl),a ROM0:108A C1 pop bc ROM0:108B E1 pop hl ROM0:108C E8 01 add sp,01 ROM0:108E F1 pop af ROM0:108F C9 ret
0:1090 (to document)
ROM0:1090 F5 push af ROM0:1091 E5 push hl ROM0:1092 21 00 10 ld hl,1000 ROM0:1095 36 0A ld (hl),0A ROM0:1097 21 00 70 ld hl,7000 ROM0:109A 36 00 ld (hl),00 ROM0:109C E1 pop hl ROM0:109D F1 pop af ROM0:109E C9 ret
0:109F (to document)
ROM0:109F F5 push af ROM0:10A0 F3 di ROM0:10A1 EA 00 30 ld (3000),a ROM0:10A4 1F rra ROM0:10A5 CB 37 swap a ROM0:10A7 EA 00 50 ld (5000),a ROM0:10AA FB ei ROM0:10AB F1 pop af ROM0:10AC C9 ret
0:123C (to document)
ROM0:123C F5 push af ROM0:123D C5 push bc ROM0:123E E5 push hl ROM0:123F C5 push bc ROM0:1240 CB 21 sla c ROM0:1242 CB 21 sla c ROM0:1244 06 00 ld b,00 ROM0:1246 21 00 CA ld hl,CA00 ROM0:1249 09 add hl,bc ROM0:124A C1 pop bc ROM0:124B 22 ldi (hl),a ROM0:124C 7A ld a,d ROM0:124D 22 ldi (hl),a ROM0:124E 78 ld a,b ROM0:124F 22 ldi (hl),a ROM0:1250 36 00 ld (hl),00 ROM0:1252 E1 pop hl ROM0:1253 C1 pop bc ROM0:1254 F1 pop af ROM0:1255 C9 ret
0:1282
0:1282 (call 0:1289 and 0:12A4)
ROM0:1282 CD 89 12 call 1289 ROM0:1285 CD A4 12 call 12A4 ROM0:1288 C9 ret
0:1289
ROM0:1289 F5 push af ROM0:128A C5 push bc ROM0:128B FA 1D CD ld a,(CD1D) ROM0:128E 47 ld b,a ROM0:128F FA 1B CD ld a,(CD1B) ROM0:1292 80 add b ROM0:1293 EA 1B CD ld (CD1B),a ROM0:1296 FA 1E CD ld a,(CD1E) ROM0:1299 47 ld b,a ROM0:129A FA 1C CD ld a,(CD1C) ROM0:129D 80 add b ROM0:129E EA 1C CD ld (CD1C),a ROM0:12A1 C1 pop bc ROM0:12A2 F1 pop af ROM0:12A3 C9 ret
0:12A4
ROM0:12A4 F5 push af ROM0:12A5 C5 push bc ROM0:12A6 D5 push de ROM0:12A7 E5 push hl ROM0:12A8 21 00 CA ld hl,CA00 ROM0:12AB 16 00 ld d,00 ROM0:12AD 06 05 ld b,05 ROM0:12AF 1E 00 ld e,00 ROM0:12B1 0E 08 ld c,08 ROM0:12B3 FA 1B CD ld a,(CD1B) ROM0:12B6 82 add d ROM0:12B7 22 ldi (hl),a ROM0:12B8 FA 1C CD ld a,(CD1C) ROM0:12BB 83 add e ROM0:12BC 22 ldi (hl),a ROM0:12BD 23 inc hl ROM0:12BE 23 inc hl ROM0:12BF 3E 08 ld a,08 ROM0:12C1 83 add e ROM0:12C2 5F ld e,a ROM0:12C3 0D dec c ROM0:12C4 20 ED jr nz,12B3 ;Loop 8 times to 0:12B3 ROM0:12C6 3E 10 ld a,10 ROM0:12C8 82 add d ROM0:12C9 57 ld d,a ROM0:12CA 05 dec b ROM0:12CB 20 E2 jr nz,12AF ;Loop 5 times to 0:12AF ROM0:12CD E1 pop hl ROM0:12CE D1 pop de ROM0:12CF C1 pop bc ROM0:12D0 F1 pop af ROM0:12D1 C9 ret
0:1347
ROM0:1347 F5 push af ROM0:1348 C5 push bc ROM0:1349 1E 00 ld e,00 ROM0:134B 0E 08 ld c,08 ROM0:134D CB 22 sla d ROM0:134F CB 13 rl e ROM0:1351 7B ld a,e ROM0:1352 B8 cp b ROM0:1353 38 03 jr c,1358 ROM0:1355 90 sub b ROM0:1356 5F ld e,a ROM0:1357 14 inc d ROM0:1358 0D dec c ROM0:1359 20 F2 jr nz,134D ROM0:135B C1 pop bc ROM0:135C F1 pop af ROM0:135D C9 ret
0:135E
ROM0:135E F5 push af ROM0:135F C5 push bc ROM0:1360 E5 push hl ROM0:1361 21 00 00 ld hl,0000 ROM0:1364 3E 10 ld a,10 ROM0:1366 F5 push af ROM0:1367 CB 23 sla e ROM0:1369 CB 12 rl d ROM0:136B CB 15 rl l ROM0:136D CB 14 rl h ROM0:136F 7C ld a,h ROM0:1370 B8 cp b ROM0:1371 38 14 jr c,1387 ROM0:1373 7C ld a,h ROM0:1374 B8 cp b ROM0:1375 20 0B jr nz,1382 ROM0:1377 7D ld a,l ROM0:1378 B9 cp c ROM0:1379 38 05 jr c,1380 ROM0:137B 91 sub c ROM0:137C 6F ld l,a ROM0:137D 7C ld a,h ROM0:137E 98 sbc b ROM0:137F 67 ld h,a ROM0:1380 18 05 jr 1387 ROM0:1382 91 sub c ROM0:1383 6F ld l,a ROM0:1384 7C ld a,h ROM0:1385 98 sbc b ROM0:1386 67 ld h,a ROM0:1387 F1 pop af ROM0:1388 3D dec a ROM0:1389 20 DB jr nz,1366 ROM0:138B 54 ld d,h ROM0:138C 5D ld e,l ROM0:138D E1 pop hl ROM0:138E C1 pop bc ROM0:138F F1 pop af ROM0:1390 C9 ret
0:1391 (daa)
ROM0:1391 F5 push af ROM0:1392 C5 push bc ROM0:1393 D5 push de ROM0:1394 16 00 ld d,00 ROM0:1396 21 00 00 ld hl,0000 ROM0:1399 0E 08 ld c,08 ROM0:139B CB 38 srl b ROM0:139D 30 01 jr nc,13A0 ROM0:139F 19 add hl,de ROM0:13A0 CB 23 sla e ROM0:13A2 CB 12 rl d ROM0:13A4 0D dec c ROM0:13A5 20 F4 jr nz,139B ROM0:13A7 D1 pop de ROM0:13A8 C1 pop bc ROM0:13A9 F1 pop af ROM0:13AA C9 ret ROM0:13AB F5 push af ROM0:13AC 7B ld a,e ROM0:13AD 81 add c ROM0:13AE 27 daa ROM0:13AF 4F ld c,a ROM0:13B0 7A ld a,d ROM0:13B1 80 add b ROM0:13B2 27 daa ROM0:13B3 47 ld b,a ROM0:13B4 30 03 jr nc,13B9 ;if(bc ≤ 9999), exit this function ROM0:13B6 01 99 99 ld bc,9999 ;bc = 9999 ROM0:13B9 F1 pop af ROM0:13BA C9 ret
0:13BB
ROM0:13BB F5 push af ROM0:13BC 78 ld a,b ROM0:13BD BA cp d ROM0:13BE 20 0B jr nz,13CB ROM0:13C0 79 ld a,c ROM0:13C1 BB cp e ROM0:13C2 20 07 jr nz,13CB ROM0:13C4 01 00 00 ld bc,0000 ROM0:13C7 1E 01 ld e,01 ROM0:13C9 18 0E jr 13D9 ROM0:13CB 7B ld a,e ROM0:13CC 91 sub c ROM0:13CD 27 daa ROM0:13CE 4F ld c,a ROM0:13CF 7A ld a,d ROM0:13D0 98 sbc b ROM0:13D1 27 daa ROM0:13D2 47 ld b,a ROM0:13D3 1E 02 ld e,02 ROM0:13D5 30 02 jr nc,13D9 ROM0:13D7 1E 00 ld e,00 ROM0:13D9 F1 pop af ROM0:13DA C9 ret
0:1508
ROM0:1508 F5 push af ROM0:1509 C5 push bc ROM0:150A E5 push hl ROM0:150B C5 push bc ROM0:150C 21 B9 CA ld hl,CAB9 ROM0:150F AF xor a ROM0:1510 0E 08 ld c,08 ROM0:1512 22 ldi (hl),a ROM0:1513 0D dec c ROM0:1514 20 FC jr nz,1512 ROM0:1516 C1 pop bc ROM0:1517 CD EF 1C call 1CEF ROM0:151A FE 00 cp a,00 ROM0:151C 20 20 jr nz,153E ROM0:151E 3E 04 ld a,04 ROM0:1520 CF rst 08 => 1:401D points at 1:42D0 => Update wCAB8 ROM0:1523 CF rst 08 => 1:401B points at 1:42C5 => Update value to display in Battle screen ROM0:1526 CF rst 08 => 1F 01 ROM0:1529 CF rst 08 => 11 01 ROM0:152C CF rst 08 => 13 01 ROM0:152F FE FF cp a,FF ROM0:1531 20 0B jr nz,153E ROM0:1533 21 B9 CA ld hl,CAB9 ROM0:1536 3E 73 ld a,73 ROM0:1538 0E 08 ld c,08 ROM0:153A 22 ldi (hl),a ROM0:153B 0D dec c ROM0:153C 20 FC jr nz,153A ROM0:153E E1 pop hl ROM0:153F C1 pop bc ROM0:1540 F1 pop af ROM0:1541 C9 ret
Checks input at Title Screen for password
ROM0:168F E5 push hl ROM0:1690 21 FF FF ld hl,FFFF ROM0:1693 CB 96 res 2,(hl) ROM0:1695 F5 push af ROM0:1696 C5 push bc ROM0:1697 D5 push de ROM0:1698 F3 di ROM0:1699 F0 DF ld a,(ff00+DF) ROM0:169B 4F ld c,a ROM0:169C D6 E0 sub a,E0 ROM0:169E 47 ld b,a ROM0:169F 07 rlca ROM0:16A0 80 add b ROM0:16A1 5F ld e,a ROM0:16A2 3E 00 ld a,00 ROM0:16A4 E2 ld (ff00+c),a ROM0:16A5 0C inc c ROM0:16A6 79 ld a,c ROM0:16A7 FE E4 cp a,E4 ROM0:16A9 20 02 jr nz,16AD ROM0:16AB 0E E0 ld c,E0 ROM0:16AD F2 ld a,(ff00+c) ROM0:16AE FE 01 cp a,01 ROM0:16B0 20 F3 jr nz,16A5 ROM0:16B2 79 ld a,c ROM0:16B3 E0 DF ld (ff00+DF),a ROM0:16B5 3E 02 ld a,02 ROM0:16B7 E2 ld (ff00+c),a ROM0:16B8 3E E8 ld a,E8 ROM0:16BA 83 add e ROM0:16BB 4F ld c,a ROM0:16BC F8 00 ld hl,sp+00 ROM0:16BE 7D ld a,l ROM0:16BF E2 ld (ff00+c),a ROM0:16C0 0C inc c ROM0:16C1 7C ld a,h ROM0:16C2 E2 ld (ff00+c),a ROM0:16C3 0C inc c ROM0:16C4 FA 00 40 ld a,(4000) ROM0:16C7 E2 ld (ff00+c),a ROM0:16C8 F0 DF ld a,(ff00+DF) ROM0:16CA D6 E0 sub a,E0 ROM0:16CC 47 ld b,a ROM0:16CD 07 rlca ROM0:16CE 80 add b ROM0:16CF 5F ld e,a ROM0:16D0 C6 E8 add a,E8 ROM0:16D2 4F ld c,a ROM0:16D3 F2 ld a,(ff00+c) ROM0:16D4 6F ld l,a ROM0:16D5 0C inc c ROM0:16D6 F2 ld a,(ff00+c) ROM0:16D7 67 ld h,a ROM0:16D8 F9 ld sp,hl ROM0:16D9 0C inc c ROM0:16DA F2 ld a,(ff00+c) ROM0:16DB EA 00 30 ld (3000),a ROM0:16DE 1F rra ROM0:16DF CB 37 swap a ROM0:16E1 EA 00 50 ld (5000),a ROM0:16E4 16 00 ld d,00 ROM0:16E6 21 DD 15 ld hl,15DD ROM0:16E9 19 add hl,de ROM0:16EA 7E ld a,(hl) ROM0:16EB E0 05 ld (ff00+05),a ROM0:16ED 2A ldi a,(hl) ROM0:16EE E0 06 ld (ff00+06),a ROM0:16F0 2A ldi a,(hl) ROM0:16F1 E0 07 ld (ff00+07),a ROM0:16F3 7E ld a,(hl) ROM0:16F4 E0 07 ld (ff00+07),a ROM0:16F6 D1 pop de ROM0:16F7 C1 pop bc ROM0:16F8 F1 pop af ROM0:16F9 21 0F FF ld hl,FF0F ROM0:16FC CB 96 res 2,(hl) ROM0:16FE 2E FF ld l,FF ROM0:1700 CB D6 set 2,(hl) ROM0:1702 E1 pop hl ROM0:1703 D9 reti ROM0:1704 C9 ret
0:1705 (to document)
ROM0:1705 F5 push af ROM0:1706 C5 push bc ROM0:1707 D5 push de ROM0:1708 E5 push hl ROM0:1709 F8 08 ld hl,sp+08 ROM0:170B 2A ldi a,(hl) ROM0:170C 5F ld e,a ROM0:170D 56 ld d,(hl) ROM0:170E 1A ld a,(de) ROM0:170F 4F ld c,a ROM0:1710 13 inc de ROM0:1711 7A ld a,d ROM0:1712 32 ldd (hl),a ROM0:1713 73 ld (hl),e ROM0:1714 3E 01 ld a,01 ROM0:1716 E2 ld (ff00+c),a ROM0:1717 E1 pop hl ROM0:1718 D1 pop de ROM0:1719 C1 pop bc ROM0:171A F1 pop af ROM0:171B C9 ret
0:175A (to document)
ROM0:175A C5 push bc ROM0:175B D5 push de ROM0:175C E5 push hl ROM0:175D F8 06 ld hl,sp+06 ROM0:175F 2A ldi a,(hl) ROM0:1760 5F ld e,a ROM0:1761 56 ld d,(hl) ROM0:1762 1A ld a,(de) ROM0:1763 47 ld b,a ROM0:1764 13 inc de ROM0:1765 1A ld a,(de) ROM0:1766 4F ld c,a ROM0:1767 13 inc de ROM0:1768 7A ld a,d ROM0:1769 32 ldd (hl),a ROM0:176A 73 ld (hl),e ROM0:176B F3 di ROM0:176C 3E FF ld a,FF ROM0:176E A8 xor b ROM0:176F 57 ld d,a ROM0:1770 F2 ld a,(ff00+c) ROM0:1771 5F ld e,a ROM0:1772 A2 and d ROM0:1773 E2 ld (ff00+c),a ROM0:1774 7B ld a,e ROM0:1775 A0 and b ROM0:1776 E1 pop hl ROM0:1777 D1 pop de ROM0:1778 C1 pop bc ROM0:1779 D9 reti ROM0:177A C9 ret
0:177B (to document)
ROM0:177B F5 push af ROM0:177C C5 push bc ROM0:177D D5 push de ROM0:177E E5 push hl ROM0:177F F8 08 ld hl,sp+08 ROM0:1781 2A ldi a,(hl) ROM0:1782 5F ld e,a ROM0:1783 56 ld d,(hl) ROM0:1784 1A ld a,(de) ROM0:1785 47 ld b,a ROM0:1786 13 inc de ROM0:1787 1A ld a,(de) ROM0:1788 4F ld c,a ROM0:1789 13 inc de ROM0:178A 7A ld a,d ROM0:178B 32 ldd (hl),a ROM0:178C 73 ld (hl),e ROM0:178D F3 di ROM0:178E 3E FF ld a,FF ROM0:1790 A8 xor b ROM0:1791 47 ld b,a ROM0:1792 F2 ld a,(ff00+c) ROM0:1793 A0 and b ROM0:1794 E2 ld (ff00+c),a ROM0:1795 E1 pop hl ROM0:1796 D1 pop de ROM0:1797 C1 pop bc ROM0:1798 F1 pop af ROM0:1799 D9 reti ROM0:179A C9 ret
Check if(card_id == 365)
0x1CEF-0x1CFF
- Returns 1 if (card_id == 365), 0 otherwise
ROM0:1CEF D5 push de ROM0:1CF0 1E 00 ld e,00 ROM0:1CF2 78 ld a,b ROM0:1CF3 FE 01 cp a,01 ROM0:1CF5 20 06 jr nz,1CFD ROM0:1CF7 79 ld a,c ROM0:1CF8 FE 6D cp a,6D ROM0:1CFA 20 01 jr nz,1CFD ROM0:1CFC 1C inc e ROM0:1CFD 7B ld a,e ROM0:1CFE D1 pop de ROM0:1CFF C9 ret
Check if is equal
0x1D00-0x1D0E
- Returns 0 if bc == de, 1 otherwise
ROM0:1D00 E5 push hl ROM0:1D01 2E 01 ld l,01 ROM0:1D03 78 ld a,b ROM0:1D04 BA cp d ROM0:1D05 20 05 jr nz,1D0C ROM0:1D07 79 ld a,c ROM0:1D08 BB cp e ROM0:1D09 20 01 jr nz,1D0C ROM0:1D0B 2D dec l ROM0:1D0C 7D ld a,l ROM0:1D0D E1 pop hl ROM0:1D0E C9 ret
0:1D0F
ROM0:1D0F C5 push bc ROM0:1D10 D5 push de ROM0:1D11 E5 push hl ROM0:1D12 2E 02 ld l,02 ROM0:1D14 CD BB 13 call 13BB ROM0:1D17 7B ld a,e ROM0:1D18 FE 01 cp a,01 ROM0:1D1A 20 02 jr nz,1D1E ROM0:1D1C 2E 01 ld l,01 ROM0:1D1E 7B ld a,e ROM0:1D1F FE 00 cp a,00 ROM0:1D21 20 02 jr nz,1D25 ROM0:1D23 2E 00 ld l,00 ROM0:1D25 7D ld a,l ROM0:1D26 E1 pop hl ROM0:1D27 D1 pop de ROM0:1D28 C1 pop bc ROM0:1D29 C9 ret
0:1D2A
ROM0:1D2A D5 push de ROM0:1D2B E5 push hl ROM0:1D2C 2E 02 ld l,02 ROM0:1D2E FA F5 CD ld a,(CDF5) ROM0:1D31 EA DC CA ld (CADC),a ROM0:1D34 FA F6 CD ld a,(CDF6) ROM0:1D37 EA DD CA ld (CADD),a ROM0:1D3A FA F7 CD ld a,(CDF7) ROM0:1D3D EA DE CA ld (CADE),a ROM0:1D40 FA F8 CD ld a,(CDF8) ROM0:1D43 EA DF CA ld (CADF),a ROM0:1D46 FA F9 CD ld a,(CDF9) ROM0:1D49 EA E0 CA ld (CAE0),a ROM0:1D4C FA FA CD ld a,(CDFA) ROM0:1D4F EA E1 CA ld (CAE1),a ROM0:1D52 CD DB 13 call 13DB ROM0:1D55 7B ld a,e ROM0:1D56 FE 01 cp a,01 ROM0:1D58 20 02 jr nz,1D5C ROM0:1D5A 2E 01 ld l,01 ROM0:1D5C 7B ld a,e ROM0:1D5D FE 00 cp a,00 ROM0:1D5F 20 02 jr nz,1D63 ROM0:1D61 2E 00 ld l,00 ROM0:1D63 7D ld a,l ROM0:1D64 E1 pop hl ROM0:1D65 D1 pop de ROM0:1D66 C9 ret
PRNG
ROM0:20E2 F5 push af ROM0:20E3 C5 push bc ROM0:20E4 D5 push de ROM0:20E5 FA 9C CE ld a,(CE9C) ROM0:20E8 47 ld b,a ROM0:20E9 4F ld c,a ROM0:20EA FA 9B CE ld a,(CE9B) ROM0:20ED CB 19 rr c ROM0:20EF 1F rra ROM0:20F0 CB 1A rr d ROM0:20F2 A8 xor b ROM0:20F3 CB 12 rl d ROM0:20F5 17 rla ROM0:20F6 CB 11 rl c ROM0:20F8 EA 9C CE ld (CE9C),a ROM0:20FB FA 9A CE ld a,(CE9A) ROM0:20FE EA 9B CE ld (CE9B),a ROM0:2101 FA 99 CE ld a,(CE99) ROM0:2104 EA 9A CE ld (CE9A),a ROM0:2107 79 ld a,c ROM0:2108 EA 99 CE ld (CE99),a ROM0:210B EA 9F CE ld (CE9F),a ROM0:210E D1 pop de ROM0:210F C1 pop bc ROM0:2110 F1 pop af ROM0:2111 C9 ret
Pseudo-Random Number
ROM0:2112 F5 push af ROM0:2113 C5 push bc ROM0:2114 D5 push de ROM0:2115 FA 9D CE ld a,(CE9D) ROM0:2118 4F ld c,a ROM0:2119 FA 9E CE ld a,(CE9E) ROM0:211C B9 cp c ROM0:211D 20 05 jr nz,2124 ROM0:211F EA 9F CE ld (CE9F),a ROM0:2122 18 12 jr 2136 ROM0:2124 91 sub c ROM0:2125 47 ld b,a ROM0:2126 04 inc b ROM0:2127 CD E2 20 call 20E2 ;PRNG ROM0:212A FA 9F CE ld a,(CE9F) ROM0:212D 57 ld d,a ROM0:212E CD 47 13 call 1347 ROM0:2131 7B ld a,e ROM0:2132 81 add c ROM0:2133 EA 9F CE ld (CE9F),a ROM0:2136 D1 pop de ROM0:2137 C1 pop bc ROM0:2138 F1 pop af ROM0:2139 C9 ret
0:23F7
ROM0:23F7 FA 00 CE ld a,(CE00) ROM0:23FA FE 01 cp a,01 ROM0:23FC 20 0E jr nz,240C ROM0:23FE FA 02 CF ld a,(CF02) ROM0:2401 FE 02 cp a,02 ROM0:2403 20 03 jr nz,2408 ROM0:2405 AF xor a ROM0:2406 18 02 jr 240A ROM0:2408 3E 01 ld a,01 ROM0:240A 18 28 jr 2434 ROM0:240C FA 02 CF ld a,(CF02) ROM0:240F FE 03 cp a,03 ROM0:2411 20 04 jr nz,2417 ROM0:2413 3E 01 ld a,01 ROM0:2415 18 1D jr 2434 ROM0:2417 FA 02 CF ld a,(CF02) ROM0:241A FE 02 cp a,02 ROM0:241C 20 03 jr nz,2421 ROM0:241E AF xor a ROM0:241F 18 13 jr 2434 ROM0:2421 FA 03 CF ld a,(CF03) ROM0:2424 FE 03 cp a,03 ROM0:2426 20 03 jr nz,242B ROM0:2428 AF xor a ROM0:2429 18 09 jr 2434 ROM0:242B FA 03 CF ld a,(CF03) ROM0:242E FE 03 cp a,03 ROM0:2430 20 02 jr nz,2434 ROM0:2432 3E 01 ld a,01 ROM0:2434 C9 ret
0:265B
ROM0:265B F5 push af ROM0:265C C5 push bc ROM0:265D FA 19 CF ld a,(CF19) ROM0:2660 CF rst 08 ROM0:2661 25 dec h ROM0:2662 03 inc bc ROM0:2663 C1 pop bc ROM0:2664 F1 pop af ROM0:2665 C9 ret
Starter deck routine
ROM0:2666 CD 70 26 call 2670 ;Starter Deck - 33 random cards ROM0:2669 CD 74 27 call 2774 ;Starter Deck - 7 fixed cards ROM0:266C CD A9 27 call 27A9 ROM0:266F C9 ret
Starter Deck - 33 random cards
ROM0:2670 F5 push af ROM0:2671 C5 push bc ROM0:2672 D5 push de ROM0:2673 E5 push hl ROM0:2674 3E 00 ld a,00 ROM0:2676 EA 9D CE ld (CE9D),a ROM0:2679 3E 63 ld a,63 ROM0:267B EA 9E CE ld (CE9E),a ;PRN[0;99] ROM0:267E 1E 00 ld e,00 ROM0:2680 D5 push de ROM0:2681 16 00 ld d,00 ROM0:2683 CD 12 21 call 2112 ;Pseudo-Random Number ROM0:2686 FA 9F CE ld a,(CE9F) ROM0:2689 5F ld e,a ROM0:268A CB 23 sla e ROM0:268C 21 AC 26 ld hl,26AC ;pointer to the random card pool ROM0:268F 19 add hl,de ROM0:2690 D1 pop de ROM0:2691 2A ldi a,(hl) ROM0:2692 46 ld b,(hl) ROM0:2693 4F ld c,a ;bc = card_id ROM0:2694 7B ld a,e ROM0:2695 CF rst 08 61 03 ROM0:2698 CF rst 08 63 03 ROM0:269B CF rst 08 11 01 ROM0:269E CF rst 08 43 01 => Set card as visible in trunk ROM0:26A1 1C inc e ROM0:26A2 7B ld a,e ROM0:26A3 FE 21 cp a,21 ROM0:26A5 20 D9 jr nz,2680 ;loop 33 times ROM0:26A7 E1 pop hl ROM0:26A8 D1 pop de ROM0:26A9 C1 pop bc ROM0:26AA F1 pop af ROM0:26AB C9 ret
Starter Deck - Random card pool
ROM0:26AC 04 00 - Ryu-Kishin 07 00 - Mushroom Man 08 00 - Shadow Specter 17 00 - Skull Servant 1C 00 - Mountain Warrior 2C 00 - Oscillo Hero #2 2F 00 - Sangan 39 00 - Kuriboh 4A 00 - Man-Eating Plant 64 00 - Wings of Wicked Flame 65 00 - Mask of Darkness 68 00 - Tomozaurus 6A 00 - Kageningen 7A 00 - Dark Plant 80 00 - Nemuriko 81 00 - Weather Control 85 00 - Mystical Capture Chain 8A 00 - Blue-Eyed Silver Zombie 8B 00 - Toad Master 8D 00 - Flame Manipulator 8E 00 - Chronolord 8F 00 - Wind Djinn 90 00 - Phantom Thief 92 00 - Monster Egg 93 00 - Sinister Shadow 97 00 - The Melting Red Shadow 99 00 - Fire Reaper 9A 00 - Larvas 9C 00 - Firegrass 9D 00 - Man Eater 9E 00 - Dig Beak 9F 00 - M-warrior #1 A0 00 - M-warrior #2 A6 00 - Ancient Jar AC 00 - Dark Prisoner AD 00 - Hurricail AF 00 - Fire Eye B0 00 - Monsturtle B2 00 - Phantom Dewan B3 00 - Arlownay B4 00 - Dark Shade B5 00 - Masked Clown B6 00 - Lucky Trinket B7 00 - Genin B8 00 - Eyearmor BA 00 - Gate Deeg BB 00 - Synchar BC 00 - Fusionist BD 00 - Akakieisu BE 00 - LaLa Li-oon BF 00 - Key Mace C0 00 - Turtle Tiger C1 00 - Terra the Terrible C2 00 - Doron C3 00 - Arma Knight C4 00 - Mech Mole Zombie C5 00 - Happy Lover C6 00 - Penguin Knight C7 00 - Petit Dragon C9 00 - Air Marmot of Nefa CA 00 - Phantom Ghost CC 00 - Dorover CD 00 - Twin Long Rods #1 CE 00 - Droll Bird CF 00 - Petit Angel D0 00 - Winged Cleaver D1 00 - Hinotama Soul D2 00 - Kaminarikozou D3 00 - Meotoko D5 00 - B. Flame Kagemusha D6 00 - Flame Ghost D9 00 - Two-mouth Darkrule DD 00 - Midnight Fiend E1 00 - Skull Stalker E2 00 - Hitodenchak E3 00 - Wood Remains E4 00 - Hourglass of Life E7 00 - Madjinn Gunn EC 00 - Haniwa ED 00 - Yashinoki EE 00 - Vishwar Randi EF 00 - The Drdek F1 00 - Candle of Destiny F2 00 - Water Element F3 00 - Dissolverock F4 00 - Meda Bat F6 00 - Root Water FC 00 - Angelwitch FD 00 - Embryonic Beast 04 01 - Wicked Mirror 0B 01 - Sectarian of Secrets 0E 01 - Megirus Light 13 01 - Ray & Temperature 16 01 - King Fog 19 01 - Mystical Sheep #2 1C 01 - Serpent Marauder 20 01 - Change Slime 23 01 - Psychic Kappa 29 01 - Wicked Dragon with the Ersatz Head 2B 01 - Kurama
Starter Deck - 7 fixed cards
ROM0:2774 F5 push af ROM0:2775 C5 push bc ROM0:2776 D5 push de ROM0:2777 E5 push hl ROM0:2778 1E 21 ld e,21 ROM0:277A 21 9B 27 ld hl,279B ;hl = pointer to Fixed cards list ROM0:277D 7B ld a,e ROM0:277E FE 28 cp a,28 ROM0:2780 30 14 jr nc,2796 ;if the Starter Deck has 40 cards, exit this function ROM0:2782 7B ld a,e ROM0:2783 CF rst 08 61 03 ROM0:2786 2A ldi a,(hl) ROM0:2787 4F ld c,a ROM0:2788 2A ldi a,(hl) ROM0:2789 47 ld b,a ;bc = card_id ROM0:278A CF rst 08 63 03 ROM0:278D CF rst 08 11 01 ROM0:2790 CF rst 08 43 01 => Set card as visible in trunk ROM0:2793 1C inc e ;e++ ROM0:2794 18 E7 jr 277D ;loop to 0:277D ROM0:2796 E1 pop hl ROM0:2797 D1 pop de ROM0:2798 C1 pop bc ROM0:2799 F1 pop af ROM0:279A C9 ret
Starter Deck - Fixed cards list
ROM0:279B 50 01 - Raigeki 56 01 - Sparks 56 01 - Sparks 57 01 - Hinotama 51 01 - Mooyan Curry 52 01 - Red Medicine 5D 01 - Dark-Piercing Light
0:27A9
ROM0:27A9 F5 push af ROM0:27AA C5 push bc ROM0:27AB D5 push de ROM0:27AC E5 push hl ROM0:27AD 3E 00 ld a,00 ROM0:27AF EA 9D CE ld (CE9D),a ROM0:27B2 3E FF ld a,FF ROM0:27B4 EA 9E CE ld (CE9E),a ROM0:27B7 CD 12 21 call 2112 ;Pseudo-Random Number ROM0:27BA FA 9F CE ld a,(CE9F) ROM0:27BD 5F ld e,a ROM0:27BE 3E 00 ld a,00 ROM0:27C0 EA 9D CE ld (CE9D),a ROM0:27C3 3E 07 ld a,07 ROM0:27C5 EA 9E CE ld (CE9E),a ROM0:27C8 CD 12 21 call 2112 ;Pseudo-Random Number ROM0:27CB FA 9F CE ld a,(CE9F) ROM0:27CE 57 ld d,a ROM0:27CF 7A ld a,d ROM0:27D0 FE 01 cp a,01 ROM0:27D2 20 1E jr nz,27F2 ROM0:27D4 7B ld a,e ROM0:27D5 FE 03 cp a,03 ROM0:27D7 20 0B jr nz,27E4 ROM0:27D9 01 25 00 ld bc,0025 ROM0:27DC CF rst 08 11 01 ROM0:27DF CF rst 08 41 01 ROM0:27E2 18 0E jr 27F2 ROM0:27E4 7B ld a,e ROM0:27E5 FE 0E cp a,0E ROM0:27E7 20 09 jr nz,27F2 ROM0:27E9 01 22 00 ld bc,0022 ROM0:27EC CF rst 08 11 01 ROM0:27EF CF rst 08 41 01 ROM0:27F2 E1 pop hl ROM0:27F3 D1 pop de ROM0:27F4 C1 pop bc ROM0:27F5 F1 pop af ROM0:27F6 C9 ret
0:29F1 (to document)
ROM0:29F1 F5 push af ROM0:29F2 C5 push bc ROM0:29F3 D5 push de ROM0:29F4 E5 push hl ROM0:29F5 CF rst 08 => 07 3E ROM0:29F8 E1 pop hl ROM0:29F9 D1 pop de ROM0:29FA C1 pop bc ROM0:29FB F1 pop af ROM0:29FC C9 ret
0:2B26 (to document, called by Password #3))
ROM0:2B26 F5 push af ROM0:2B27 3E 9D ld a,9D ROM0:2B29 CD F1 29 call 29F1 ROM0:2B2C CD 74 0F call 0F74 ROM0:2B2F F1 pop af ROM0:2B30 C9 ret
0:2B7E (to document))
ROM0:2B7E F5 push af ROM0:2B7F 3E A1 ld a,A1 ROM0:2B81 CD F1 29 call 29F1 ROM0:2B84 CD 74 0F call 0F74 ROM0:2B87 F1 pop af ROM0:2B88 C9 ret
Bank 1
rst 08 pointers
- 0x4002 - pointers to subroutines to call after a rst 08
ROM1:4002 6840 1F55 CB5A 485C 925B E056 865C F25A 805B B85B D15B 105C C542 ;1:42C5 => Update value to display in Battle screen D042 ;1:42D0 => Update wCAB8 EC42 ;1:42EC => Jump to damage handling subroutines ? 1353 B35E 375F 795F 0860 1560 F25F BB5F F55E
1:4110 (calls 42C5 which seems to handle display of decreasing LPs during direct damage))
ROM1:4110 F5 push af ROM1:4111 C5 push bc ROM1:4112 D5 push de ROM1:4113 E5 push hl ROM1:4114 3E 00 ld a,00 ROM1:4116 CD D0 42 call 42D0 ROM1:4119 FA B0 CA ld a,(CAB0) ROM1:411C 4F ld c,a ROM1:411D FA B1 CA ld a,(CAB1) ROM1:4120 47 ld b,a ROM1:4121 CD C5 42 call 42C5 ;Update value to display in Battle screen ROM1:4124 CD EC 42 call 42EC ROM1:4127 21 05 9A ld hl,9A05 ROM1:412A 11 B9 CA ld de,CAB9 ROM1:412D 0E 04 ld c,04 ROM1:412F 1A ld a,(de) ROM1:4130 22 ldi (hl),a ROM1:4131 13 inc de ROM1:4132 0D dec c ROM1:4133 20 FA jr nz,412F ROM1:4135 E1 pop hl ROM1:4136 D1 pop de ROM1:4137 C1 pop bc ROM1:4138 F1 pop af ROM1:4139 C9 ret
Update value to display in Battle screen
ROM1:42C5 F5 push af ROM1:42C6 79 ld a,c ROM1:42C7 EA B6 CA ld (CAB6),a ROM1:42CA 78 ld a,b ROM1:42CB EA B7 CA ld (CAB7),a ROM1:42CE F1 pop af ROM1:42CF C9 ret
Update wCAB8
ROM1:42D0 EA B8 CA ld (CAB8),a ROM1:42D3 C9 ret
00s wCAB9 to wCACD
ROM1:42D4 F5 push af ROM1:42D5 C5 push bc ROM1:42D6 D5 push de ROM1:42D7 E5 push hl ROM1:42D8 21 B9 CA ld hl,CAB9 ROM1:42DB AF xor a ;a = 0 ROM1:42DC 0E 14 ld c,14 ROM1:42DE 22 ldi (hl),a ;00s wCAB9 to wCACD ROM1:42DF 0D dec c ROM1:42E0 20 FC jr nz,42DE ;Loop 20 times ROM1:42E2 3E 00 ld a,00 ;xor a would've been faster, but register a is already equal to 0 anyway ROM1:42E4 EA CD CA ld (CACD),a ;WTF ROM1:42E7 E1 pop hl ROM1:42E8 D1 pop de ROM1:42E9 C1 pop bc ROM1:42EA F1 pop af ROM1:42EB C9 ret
Jump to damage handling subroutines ?
ROM1:42EC F5 push af ROM1:42ED C5 push bc ROM1:42EE E5 push hl ROM1:42EF 06 00 ld b,00 ROM1:42F1 FA B8 CA ld a,(CAB8) ROM1:42F4 4F ld c,a ROM1:42F5 21 05 43 ld hl,4305 ROM1:42F8 09 add hl,bc ROM1:42F9 2A ldi a,(hl) ROM1:42FA 66 ld h,(hl) ROM1:42FB 6F ld l,a ;hl = 0x4305 + (CAB8), which determines which subroutine to call ROM1:42FC 01 01 43 ld bc,4301 ;return address ROM1:42FF C5 push bc ROM1:4300 E9 jp hl ;jump to the selected subroutine ROM1:4301 E1 pop hl ROM1:4302 C1 pop bc ROM1:4303 F1 pop af ROM1:4304 C9 ret
Function pointers
0x4305-0x4318
- Function pointers
19 43 7B 43 D4 43 - Read selected card's name A5 52 D8 52 5C 43 24 53 6D 53 36 54 EF 54
1:4319
ROM1:4319 F5 push af ROM1:431A C5 push bc ROM1:431B D5 push de ROM1:431C E5 push hl ROM1:431D CD D4 42 call 42D4 ROM1:4320 21 B9 CA ld hl,CAB9 ROM1:4323 11 B7 CA ld de,CAB7 ROM1:4326 06 01 ld b,01 ROM1:4328 0E 02 ld c,02 ROM1:432A 1A ld a,(de) ROM1:432B D5 push de ROM1:432C 16 02 ld d,02 ROM1:432E CB 37 swap a ROM1:4330 F5 push af ROM1:4331 E6 0F and a,0F ROM1:4333 28 06 jr z,433B ROM1:4335 C6 01 add a,01 ROM1:4337 77 ld (hl),a ROM1:4338 04 inc b ROM1:4339 18 07 jr 4342 ROM1:433B 78 ld a,b ROM1:433C FE 01 cp a,01 ROM1:433E 28 02 jr z,4342 ROM1:4340 36 01 ld (hl),01 ROM1:4342 2C inc l ROM1:4343 F1 pop af ROM1:4344 15 dec d ROM1:4345 20 E7 jr nz,432E ROM1:4347 D1 pop de ROM1:4348 1B dec de ROM1:4349 0D dec c ROM1:434A 20 DE jr nz,432A ROM1:434C 05 dec b ROM1:434D 20 03 jr nz,4352 ROM1:434F 2D dec l ROM1:4350 36 01 ld (hl),01 ROM1:4352 3E 04 ld a,04 ROM1:4354 EA CD CA ld (CACD),a ROM1:4357 E1 pop hl ROM1:4358 D1 pop de ROM1:4359 C1 pop bc ROM1:435A F1 pop af ROM1:435B C9 ret
1:435C
ROM1:435C F5 push af ROM1:435D C5 push bc ROM1:435E E5 push hl ROM1:435F CD 19 43 call 4319 ROM1:4362 21 B9 CA ld hl,CAB9 ROM1:4365 0E 04 ld c,04 ROM1:4367 7E ld a,(hl) ROM1:4368 FE 00 cp a,00 ROM1:436A 28 05 jr z,4371 ROM1:436C C6 C5 add a,C5 ROM1:436E 77 ld (hl),a ROM1:436F 18 02 jr 4373 ROM1:4371 36 80 ld (hl),80 ROM1:4373 23 inc hl ROM1:4374 0D dec c ROM1:4375 20 F0 jr nz,4367 ROM1:4377 E1 pop hl ROM1:4378 C1 pop bc ROM1:4379 F1 pop af ROM1:437A C9 ret
Copy array of 8 bytes from 0x439C + (wCAB6 × 8), and paste it to wCAB9
ROM1:437B F5 push af ROM1:437C C5 push bc ROM1:437D D5 push de ROM1:437E E5 push hl ROM1:437F 11 9C 43 ld de,439C ROM1:4382 26 00 ld h,00 ROM1:4384 FA B6 CA ld a,(CAB6) ;wCAB6 : Next value to display in Battle screen ROM1:4387 6F ld l,a ROM1:4388 29 add hl,hl ROM1:4389 29 add hl,hl ROM1:438A 29 add hl,hl ;hl × 8 ROM1:438B 19 add hl,de ;hl = 0x439C + (wCAB6 × 8) ROM1:438C 11 B9 CA ld de,CAB9 ;start pasting at wCAB9 ROM1:438F 0E 08 ld c,08 ROM1:4391 2A ldi a,(hl) ROM1:4392 12 ld (de),a ;(de) = (hl) ROM1:4393 13 inc de ROM1:4394 0D dec c ROM1:4395 20 FA jr nz,4391 ;loop 8 times ROM1:4397 E1 pop hl ROM1:4398 D1 pop de ROM1:4399 C1 pop bc ROM1:439A F1 pop af ROM1:439B C9 ret
Field names
0x439C-0x43D3
- Field names (left-padded with spaces to 8 bytes)
00 10 12 1E 0D 84 3C 0D - かくとうじょう (kakutōjyou fighting field) 00 00 00 00 00 00 2D 32 - もり (Forest) 00 00 00 00 00 14 0D 2E - こうや (Wasteland) 00 00 00 00 00 00 2E 29 - やま (Mountain) 00 00 00 00 19 0D 81 38 - そうげん (Sogen) 00 00 00 00 00 00 0D 2A - うみ (Umi) 00 00 00 00 00 00 2E 2A - やみ (Yami)
Read selected card's name
0x43D4-0x440E
- Read selected card's name
ROM1:43D4 F5 push af ROM1:43D5 C5 push bc ROM1:43D6 D5 push de ROM1:43D7 E5 push hl ROM1:43D8 CD D4 42 call 42D4 ROM1:43DB 11 0F 44 ld de,440F ROM1:43DE FA B6 CA ld a,(CAB6) ROM1:43E1 6F ld l,a ROM1:43E2 FA B7 CA ld a,(CAB7) ROM1:43E5 67 ld h,a ROM1:43E6 29 add hl,hl ROM1:43E7 44 ld b,h ROM1:43E8 4D ld c,l ROM1:43E9 19 add hl,de // hl = Pointer to card name pointer ROM1:43EA 2A ldi a,(hl) ROM1:43EB 66 ld h,(hl) ROM1:43EC 6F ld l,a ROM1:43ED E5 push hl ROM1:43EE 03 inc bc ROM1:43EF 03 inc bc ROM1:43F0 60 ld h,b ROM1:43F1 69 ld l,c ROM1:43F2 19 add hl,de ROM1:43F3 2A ldi a,(hl) ROM1:43F4 46 ld b,(hl) ROM1:43F5 4F ld c,a ROM1:43F6 E1 pop hl ROM1:43F7 11 B9 CA ld de,CAB9 ROM1:43FA 06 00 ld b,00 ROM1:43FC 79 ld a,c ROM1:43FD BD cp l ROM1:43FE 28 06 jr z,4406 ROM1:4400 2A ldi a,(hl) ROM1:4401 12 ld (de),a ROM1:4402 13 inc de ROM1:4403 04 inc b ROM1:4404 18 F6 jr 43FC ROM1:4406 78 ld a,b ROM1:4407 EA CD CA ld (CACD),a ROM1:440A E1 pop hl ROM1:440B D1 pop de ROM1:440C C1 pop bc ROM1:440D F1 pop af ROM1:440E C9 ret
Card names pointers
0x440F-0x46EC
- Card names pointers
Card names
0x46ED-0x5292
- Card names
Write card_id to wCAE2
0x5AF2-0x5B03
- Write card_id to wCAE2
ROM1:5AF2 F5 push af ROM1:5AF3 CD EF 1C call 1CEF ;check if(card_id == 365) ROM1:5AF6 FE 00 cp a,00 ROM1:5AF8 20 08 jr nz,5B02 ;if(card_id == 365), exit this function ROM1:5AFA 79 ld a,c ROM1:5AFB EA E2 CA ld (CAE2),a ROM1:5AFE 78 ld a,b ROM1:5AFF EA E3 CA ld (CAE3),a ;write card_id to wCAE2 ROM1:5B02 F1 pop af ROM1:5B03 C9 ret
Add card to trunk
0x5B04-0x5B28
- Add card to trunk
ROM1:5B04 F5 push af ROM1:5B05 C5 push bc ROM1:5B06 E5 push hl ROM1:5B07 CD 80 5B call 5B80 ;a = card_quantity ROM1:5B0A FE FF cp a,FF ROM1:5B0C 20 04 jr nz,5B12 ;if the card is already visible in trunk, jump to 1:5B12 ROM1:5B0E AF xor a ROM1:5B0F CD 6C 5B call 5B6C ;set card_quantity to 0 ROM1:5B12 FA E2 CA ld a,(CAE2) ROM1:5B15 4F ld c,a ROM1:5B16 FA E3 CA ld a,(CAE3) ROM1:5B19 47 ld b,a ;bc = card_id ROM1:5B1A 21 E4 CA ld hl,CAE4 ROM1:5B1D 09 add hl,bc ROM1:5B1E 7E ld a,(hl) ;a = card_id_quantity ROM1:5B1F FE 63 cp a,63 ROM1:5B21 28 02 jr z,5B25 ;if there is already 99 copies of the card, exit this function ROM1:5B23 3C inc a ;card_quantity ++ ROM1:5B24 77 ld (hl),a ;store new card quantity ROM1:5B25 E1 pop hl ROM1:5B26 C1 pop bc ROM1:5B27 F1 pop af ROM1:5B28 C9 ret
1:5B29
0x5B29-0x5B51
-
ROM1:5B29 C5 push bc ROM1:5B2A D5 push de ROM1:5B2B E5 push hl ROM1:5B2C 16 00 ld d,00 ROM1:5B2E FA E2 CA ld a,(CAE2) ROM1:5B31 4F ld c,a ROM1:5B32 FA E3 CA ld a,(CAE3) ROM1:5B35 47 ld b,a ROM1:5B36 21 E4 CA ld hl,CAE4 ROM1:5B39 09 add hl,bc ROM1:5B3A 7E ld a,(hl) ROM1:5B3B FE 00 cp a,00 ROM1:5B3D 20 04 jr nz,5B43 ROM1:5B3F 16 01 ld d,01 ROM1:5B41 18 0A jr 5B4D ROM1:5B43 FE FF cp a,FF ROM1:5B45 20 04 jr nz,5B4B ROM1:5B47 16 01 ld d,01 ROM1:5B49 18 02 jr 5B4D ROM1:5B4B 3D dec a ROM1:5B4C 77 ld (hl),a ROM1:5B4D 7A ld a,d ROM1:5B4E E1 pop hl ROM1:5B4F D1 pop de ROM1:5B50 C1 pop bc ROM1:5B51 C9 ret
Set card as visible in trunk
0x5B52-0x5B6B
- Set card as visible in trunk
ROM1:5B52 F5 push af ROM1:5B53 C5 push bc ROM1:5B54 E5 push hl ROM1:5B55 FA E2 CA ld a,(CAE2) ROM1:5B58 4F ld c,a ROM1:5B59 FA E3 CA ld a,(CAE3) ROM1:5B5C 47 ld b,a ;bc = card_id ROM1:5B5D 21 E4 CA ld hl,CAE4 ROM1:5B60 09 add hl,bc ROM1:5B61 7E ld a,(hl) ;a = card_id_quantity ROM1:5B62 FE FF cp a,FF ROM1:5B64 20 02 jr nz,5B68 ;if the card is already visible in trunk, exit this function ROM1:5B66 36 00 ld (hl),00 ;else set card as visible in trunk ROM1:5B68 E1 pop hl ROM1:5B69 C1 pop bc ROM1:5B6A F1 pop af ROM1:5B6B C9 ret
Set card quantity
0x5B6C-0x5B7F
- Set card quantity
ROM1:5B6C C5 push bc ROM1:5B6D E5 push hl ROM1:5B6E F5 push af ROM1:5B6F FA E2 CA ld a,(CAE2) ROM1:5B72 4F ld c,a ROM1:5B73 FA E3 CA ld a,(CAE3) ROM1:5B76 47 ld b,a ;bc = card_id ROM1:5B77 21 E4 CA ld hl,CAE4 ROM1:5B7A 09 add hl,bc ;pointer to card_id_quantity ROM1:5B7B F1 pop af ROM1:5B7C 77 ld (hl),a ;store new card_id_quantity in (hl) ROM1:5B7D E1 pop hl ROM1:5B7E C1 pop bc ROM1:5B7F C9 ret
Retrieve card quantity
0x5B80-0x5B91
- Retrieve card quantity
ROM1:5B80 C5 push bc ROM1:5B81 E5 push hl ROM1:5B82 FA E2 CA ld a,(CAE2) ROM1:5B85 4F ld c,a ROM1:5B86 FA E3 CA ld a,(CAE3) ROM1:5B89 47 ld b,a ;bc = card_id ROM1:5B8A 21 E4 CA ld hl,CAE4 ROM1:5B8D 09 add hl,bc ROM1:5B8E 7E ld a,(hl) ;a = card_id_quantity ROM1:5B8F E1 pop hl ROM1:5B90 C1 pop bc ROM1:5B91 C9 ret
1:5B92
0x5B92-0x5BB7
-
ROM1:5B92 C5 push bc ROM1:5B93 D5 push de ROM1:5B94 1E 01 ld e,01 ROM1:5B96 FA E2 CA ld a,(CAE2) ROM1:5B99 4F ld c,a ROM1:5B9A FA E3 CA ld a,(CAE3) ROM1:5B9D 47 ld b,a ROM1:5B9E C5 push bc ROM1:5B9F CF rst 08 1D 03 ROM1:5BA2 78 ld a,b ROM1:5BA3 C1 pop bc ROM1:5BA4 FE 00 cp a,00 ROM1:5BA6 20 0C jr nz,5BB4 ROM1:5BA8 CD 29 5B call 5B29 ROM1:5BAB FE 00 cp a,00 ROM1:5BAD 20 05 jr nz,5BB4 ROM1:5BAF CF rst 08 1B 03 ROM1:5BB2 1E 00 ld e,00 ROM1:5BB4 7B ld a,e ROM1:5BB5 D1 pop de ROM1:5BB6 C1 pop bc ROM1:5BB7 C9 ret
Graphics 1
0x630B-0x63CA
- Menu cursors (star, left/right arrows)0x6675-0x6734
- Menu cursors (plain down arrow, left/right arrows (repeated))0x68F4-0x69B3
- Menu cursors (small right arrow x 4, left/right arrows (repeated))0x6AED-0x6BAC
- Menu cursors (small right arrow x 4 (repeated), left/right arrows (repeated))0x6CE6-0x6DA5
- Menu cursors (small right arrow (repeated), 3 blank tiles, left/right arrows (repeated))
Bank 2
Graphics 2
0x80D9 - 0x84C0
- Text table (1bpp; stored tiled instead of linear)0x880D - 0x883C
- Misc tiles/sprites (inverted blank/solid black, inverted small right arrow, inverted folded paper/continue dialog icon)0x8CAC - 0xB52B
- CPU opponents eyes + mouths animations
2:7711
ROM2:7711 F5 push af ROM2:7712 3E 06 ld a,06 ROM2:7714 EA 50 CD ld (CD50),a ROM2:7717 3E 00 ld a,00 ROM2:7719 EA 51 CD ld (CD51),a ROM2:771C CF rst 08 ROM2:771D 03 inc bc ROM2:771E 06 CD ld b,CD ROM2:7720 4A ld c,d ROM2:7721 48 ld c,b ROM2:7722 F1 pop af ROM2:7723 C9 ret
duelist_id handling
Return duelist_id drops pointer
ROM2:7724 C5 push bc ROM2:7725 E5 push hl ROM2:7726 06 00 ld b,00 ROM2:7728 FA EF CE ld a,(CEEF) ;a = selected_duelist ROM2:772B 4F ld c,a ROM2:772C 21 34 77 ld hl,7734 ;duelist_id drops pointers ROM2:772F 09 add hl,bc ROM2:7730 7E ld a,(hl) ;a = duelist_id ROM2:7731 E1 pop hl ROM2:7732 C1 pop bc ROM2:7733 C9 ret
duelist_id drops pointers
ROM2:7734 00 - Weevil Underwood 01 - Mai Valentine 02 - Rex Raptor 03 - Mako Tsunami 08 - Seto Kaiba 09 - Mokuba Kaiba 0C - Puppeteer of Doom 0D - PaniK 0E - Bandit Keith 05 - Yugi Muto 0A - Tristan Taylor 07 - Joey Wheeler 0B - Ryou Bakura 10 - Simon Muran 0F - Maximillion Pegasus 04 - Yami Yugi
2:7744
ROM2:7744 C5 push bc ROM2:7745 E5 push hl ROM2:7746 06 00 ld b,00 ROM2:7748 FA EF CE ld a,(CEEF) ;a = selected_duelist ROM2:774B CD CD 28 call 28CD ROM2:774E 21 79 77 ld hl,7779 ROM2:7751 79 ld a,c ROM2:7752 FE 00 cp a,00 ROM2:7754 20 08 jr nz,775E ROM2:7756 78 ld a,b ROM2:7757 FE 00 cp a,00 ROM2:7759 20 03 jr nz,775E ROM2:775B 21 69 77 ld hl,7769 ROM2:775E 06 00 ld b,00 ROM2:7760 FA EF CE ld a,(CEEF) ;a = selected_duelist ROM2:7763 4F ld c,a ROM2:7764 09 add hl,bc ROM2:7765 7E ld a,(hl) ROM2:7766 E1 pop hl ROM2:7767 C1 pop bc ROM2:7768 C9 ret
2:7769 (array of duelists ?)
ROM2:7769 01 02 03 04 08 09 0C 0D 0E 06 0A 07 0B 10 0F 05 11 12 13 14 18 19 1C 1D 1E 16 1A 17 1B 20 1F 15
Bank 3
3:410E (set (CAD1) to accumulator)
ROM3:410E EA D1 CA ld (CAD1),a ROM3:4111 C9 ret
3:4112 (set (CAD1) to 1)
ROM3:4112 F5 push af ROM3:4113 3E 01 ld a,01 ROM3:4115 CD 0E 41 call 410E // set (CAD1) to 1 ROM3:4118 F1 pop af ROM3:4119 C9 ret
3:411A (set (CAD1) to 2)
ROM3:411A F5 push af ROM3:411B 3E 02 ld a,02 ROM3:411D CD 0E 41 call 410E // set (CAD1) to 2 ROM3:4120 F1 pop af ROM3:4121 C9 ret
3:4122 (set (CAD1) to 3)
ROM3:4122 F5 push af ROM3:4123 3E 03 ld a,03 ROM3:4125 CD 0E 41 call 410E // set (CAD1) to 3 ROM3:4128 F1 pop af ROM3:4129 C9 ret
3:412A (set (CAD1) to 4)
ROM3:412A F5 push af ROM3:412B 3E 04 ld a,04 ROM3:412D CD 0E 41 call 410E // set (CAD1) to 4 ROM3:4130 F1 pop af ROM3:4131 C9 ret
3:4132 (set (CAD1) to 5)
ROM3:4132 F5 push af ROM3:4133 3E 05 ld a,05 ROM3:4135 CD 0E 41 call 410E // set (CAD1) to 5 ROM3:4138 F1 pop af ROM3:4139 C9 ret
3:413A (set (CAD1) to 6)
ROM3:413A F5 push af ROM3:413B 3E 06 ld a,06 ROM3:413D CD 0E 41 call 410E ;set (CAD1) to 6 ROM3:4140 F1 pop af ROM3:4141 C9 ret
Player's Deck handling
Starter Deck initialization
ROM3:45CC F5 push af ROM3:45CD C5 push bc ROM3:45CE D5 push de ROM3:45CF E5 push hl ROM3:45D0 3E 00 ld a,00 ROM3:45D2 EA 5A CC ld (CC5A),a ;wCC5A = 0 ROM3:45D5 21 5B CC ld hl,CC5B ROM3:45D8 0E 28 ld c,28 ;40 cards ROM3:45DA 3E 6D ld a,6D ROM3:45DC 22 ldi (hl),a ROM3:45DD 3E 01 ld a,01 ROM3:45DF 22 ldi (hl),a ;write 0x16D to Player's Deck ROM3:45E0 0D dec c ROM3:45E1 20 F7 jr nz,45DA ;loop 40 times to 3:45DA ROM3:45E3 E1 pop hl ROM3:45E4 D1 pop de ROM3:45E5 C1 pop bc ROM3:45E6 F1 pop af ROM3:45E7 C9 ret
3:45E8 (updates wCC5A)
ROM3:45E8 EA 5A CC ld (CC5A),a ROM3:45EB C9 ret
Add card to deck
0xC5EC-0xC603
- Write card_id (bc) to wCC5B + offset (wCC5A)
ROM3:45EC F5 push af ROM3:45ED C5 push bc ROM3:45EE D5 push de ROM3:45EF E5 push hl ROM3:45F0 16 00 ld d,00 ROM3:45F2 FA 5A CC ld a,(CC5A) ;current deck slot ROM3:45F5 5F ld e,a ROM3:45F6 CB 23 sla e ROM3:45F8 21 5B CC ld hl,CC5B ROM3:45FB 19 add hl,de ROM3:45FC 79 ld a,c ROM3:45FD 22 ldi (hl),a ROM3:45FE 70 ld (hl),b ROM3:45FF E1 pop hl ROM3:4600 D1 pop de ROM3:4601 C1 pop bc ROM3:4602 F1 pop af ROM3:4603 C9 ret
CPU's deck handling
Add card to CPU's deck
ROM3:4715 F5 push af ROM3:4716 E5 push hl ROM3:4717 C5 push bc ROM3:4718 06 00 ld b,00 ROM3:471A FA AB CC ld a,(CCAB) ;current deck slot ROM3:471D 4F ld c,a ROM3:471E CB 21 sla c ROM3:4720 21 AC CC ld hl,CCAC ROM3:4723 09 add hl,bc ;deck_slot pointer ROM3:4724 C1 pop bc ROM3:4725 79 ld a,c ROM3:4726 22 ldi (hl),a ;Store card_id to (wCCAC+deck_slot) ROM3:4727 70 ld (hl),b ROM3:4728 E1 pop hl ROM3:4729 F1 pop af ROM3:472A C9 ret
Refresh battle display
ROM3:5545 F5 push af ROM3:5546 C5 push bc ROM3:5547 E5 push hl ROM3:5548 FA B0 CA ld a,(CAB0) ;P1 Life Points ROM3:554B 4F ld c,a ROM3:554C FA B1 CA ld a,(CAB1) ROM3:554F 47 ld b,a ROM3:5550 CF rst 08 ROM3:5551 1B dec de ROM3:5552 01 CF 1F ld bc,1FCF ROM3:5555 01 01 05 ld bc,0501 ROM3:5558 9A sbc d ROM3:5559 CD 3D 0F call 0F3D ;Store reg bc in wC5(CAAA), and update wCAAA ROM3:555C 21 B9 CA ld hl,CAB9 ROM3:555F 0E 04 ld c,04 ROM3:5561 2A ldi a,(hl) ROM3:5562 CD 50 0F call 0F50 ;Store reg a in wC5(CAAA), and update wCAAA ROM3:5565 0D dec c ROM3:5566 20 F9 jr nz,5561 ROM3:5568 FA B3 CA ld a,(CAB3) ;P2 Life Points ROM3:556B 4F ld c,a ROM3:556C FA B4 CA ld a,(CAB4) ROM3:556F 47 ld b,a ROM3:5570 CF rst 08 => 1:401B points at 1:42C5 => Update value to display in Battle screen ROM3:5573 CF => 1:401F points at 1:42EC => Jump to damage handling subroutines ? ROM3:5576 01 25 98 ld bc,9825 ROM3:5579 CD 3D 0F call 0F3D ;Store reg bc in wC5(CAAA), and update wCAAA ROM3:557C 21 B9 CA ld hl,CAB9 ROM3:557F 0E 04 ld c,04 ROM3:5581 2A ldi a,(hl) ROM3:5582 CD 50 0F call 0F50 ;Store reg a in wC5(CAAA), and update wCAAA ROM3:5585 0D dec c ROM3:5586 20 F9 jr nz,5581 ;Loop 4 times ROM3:5588 E1 pop hl ROM3:5589 C1 pop bc ROM3:558A F1 pop af ROM3:558B C9 ret
3:6054
ROM3:6054 F5 push af ROM3:6055 C5 push bc ROM3:6056 FA 0E CE ld a,(CE0E) ROM3:6059 4F ld c,a ROM3:605A FA 0F CE ld a,(CE0F) ROM3:605D 47 ld b,a ROM3:605E CD D1 61 call 61D1 ROM3:6061 FE 02 cp a,02 ROM3:6063 28 03 jr z,6068 ROM3:6065 CD 19 61 call 6119 ROM3:6068 C1 pop bc ROM3:6069 F1 pop af ROM3:606A C9 ret
3:606B
ROM3:606B F5 push af ROM3:606C E5 push hl ROM3:606D 2E 02 ld l,02 ROM3:606F CD BB 13 call 13BB ROM3:6072 7B ld a,e ROM3:6073 FE 01 cp a,01 ROM3:6075 20 02 jr nz,6079 ROM3:6077 2E 01 ld l,01 ROM3:6079 7B ld a,e ROM3:607A FE 00 cp a,00 ROM3:607C 20 08 jr nz,6086 ROM3:607E 2E 00 ld l,00 ROM3:6080 11 00 00 ld de,0000 ROM3:6083 CD BB 13 call 13BB ROM3:6086 5D ld e,l ROM3:6087 E1 pop hl ROM3:6088 F1 pop af ROM3:6089 C9 ret
Store accumulator in wCE01
ROM3:608A EA 01 CE ld (CE01),a ROM3:608D C9 ret
Copy P1 Life Points to wCE06 and wCED4
ROM3:608E F5 push af ROM3:608F FA B0 CA ld a,(CAB0) ROM3:6092 EA 06 CE ld (CE06),a ROM3:6095 EA D4 CE ld (CED4),a ROM3:6098 FA B1 CA ld a,(CAB1) ROM3:609B EA 07 CE ld (CE07),a ROM3:609E EA D5 CE ld (CED5),a ROM3:60A1 F1 pop af ROM3:60A2 C9 ret
Copy P2 Life Points to wCE08 and wCEDF
ROM3:60A3 F5 push af ROM3:60A4 FA B3 CA ld a,(CAB3) ROM3:60A7 EA 08 CE ld (CE08),a ROM3:60AA EA DF CE ld (CEDF),a ROM3:60AD FA B4 CA ld a,(CAB4) ROM3:60B0 EA 09 CE ld (CE09),a ROM3:60B3 EA E0 CE ld (CEE0),a ROM3:60B6 F1 pop af ROM3:60B7 C9 ret
3:6124 (Damage step - decreasing P2 LPs animation handling ?)
ROM3:6124 F5 push af ROM3:6125 FA 06 CE ld a,(CE06) ROM3:6128 EA B0 CA ld (CAB0),a ROM3:612B EA D6 CE ld (CED6),a ROM3:612E FA 07 CE ld a,(CE07) ROM3:6131 EA B1 CA ld (CAB1),a ROM3:6134 EA D7 CE ld (CED7),a ROM3:6137 FA 08 CE ld a,(CE08) ROM3:613A EA B3 CA ld (CAB3),a ROM3:613D EA E1 CE ld (CEE1),a ROM3:6140 FA 09 CE ld a,(CE09) ;Life Points to decrease ROM3:6143 EA B4 CA ld (CAB4),a ;P2 Life Points ROM3:6146 EA E2 CE ld (CEE2),a ;Next P2 LPs to display during damage ROM3:6149 F1 pop af ROM3:614A C9 ret
3:614B
ROM3:614B F5 push af ROM3:614C FA 02 CE ld a,(CE02) ROM3:614F EA D2 CE ld (CED2),a ROM3:6152 FA 03 CE ld a,(CE03) ROM3:6155 EA D3 CE ld (CED3),a ROM3:6158 FA 0A CE ld a,(CE0A) ROM3:615B EA D8 CE ld (CED8),a ROM3:615E FA 0B CE ld a,(CE0B) ROM3:6161 EA D9 CE ld (CED9),a ROM3:6164 FA 0C CE ld a,(CE0C) ROM3:6167 EA DA CE ld (CEDA),a ROM3:616A FA 0D CE ld a,(CE0D) ROM3:616D EA DB CE ld (CEDB),a ROM3:6170 FA 04 CE ld a,(CE04) ROM3:6173 EA DD CE ld (CEDD),a ROM3:6176 FA 05 CE ld a,(CE05) ROM3:6179 EA DE CE ld (CEDE),a ROM3:617C FA 0E CE ld a,(CE0E) ROM3:617F EA E3 CE ld (CEE3),a ROM3:6182 FA 0F CE ld a,(CE0F) ROM3:6185 EA E4 CE ld (CEE4),a ROM3:6188 FA 10 CE ld a,(CE10) ROM3:618B EA E5 CE ld (CEE5),a ROM3:618E FA 11 CE ld a,(CE11) ROM3:6191 EA E6 CE ld (CEE6),a ROM3:6194 F1 pop af ROM3:6195 C9 ret
00s wCE01, copy P1 and P2 Life Points to wCE06 and wCED4
ROM3:61F2 F5 push af ROM3:61F3 3E 00 ld a,00 ROM3:61F5 CD 8A 60 call 608A ;Store accumulator in wCE01 ROM3:61F8 CD 8E 60 call 608E ;Copy P1 Life Points to wCE06 and wCED4 ROM3:61FB CD A3 60 call 60A3 ;Copy P2 Life Points to wCE08 and wCEDF ROM3:61FE F1 pop af ROM3:61FF C9 ret
Button Password check
0xE4FB-0xE521
- Button Password check
ROM3:64FB F5 push af ROM3:64FC C5 push bc ROM3:64FD D5 push de ROM3:64FE E5 push hl ROM3:64FF 1E 00 ld e,00 ROM3:6501 CD E2 20 call 20E2 // PRNG ROM3:6504 CD 2E 65 call 652E ROM3:6507 CD 26 66 call 6626 ROM3:650A 06 00 ld b,00 ROM3:650C 4F ld c,a ROM3:650D 21 22 65 ld hl,6522 ROM3:6510 09 add hl,bc ROM3:6511 2A ldi a,(hl) ROM3:6512 66 ld h,(hl) ROM3:6513 6F ld l,a ROM3:6514 01 19 65 ld bc,6519 ROM3:6517 C5 push bc ROM3:6518 E9 jp hl ROM3:6519 FE 01 cp a,01 ROM3:651B 20 E4 jr nz,6501 ROM3:651D E1 pop hl ROM3:651E D1 pop de ROM3:651F C1 pop bc ROM3:6520 F1 pop af ROM3:6521 C9 ret
3:6522 (Button Password check array)
ROM3:6522 68 65 - Password #3 75 65 - Loads requested Menu F3 65 06 66 - Wipe out SRAM 19 66
3:652E (to document)
0xE52E-0xE55F
- To document
ROM3:652E C5 push bc ROM3:652F D5 push de ROM3:6530 E5 push hl ROM3:6531 16 00 ld d,00 ROM3:6533 FA A6 CA ld a,(CAA6) ROM3:6536 E6 FF and a,FF ROM3:6538 28 0D jr z,6547 ROM3:653A 0E 08 ld c,08 ROM3:653C 0D dec c ROM3:653D 07 rlca ROM3:653E 30 FC jr nc,653C ROM3:6540 06 00 ld b,00 ROM3:6542 21 60 65 ld hl,6560 ROM3:6545 09 add hl,bc ROM3:6546 56 ld d,(hl) ROM3:6547 FA A7 CA ld a,(CAA7) ROM3:654A E6 C0 and a,C0 ROM3:654C 28 0D jr z,655B ROM3:654E 0E 08 ld c,08 ROM3:6550 0D dec c ROM3:6551 07 rlca ROM3:6552 30 FC jr nc,6550 ROM3:6554 06 00 ld b,00 ROM3:6556 21 60 65 ld hl,6560 ROM3:6559 09 add hl,bc ROM3:655A 56 ld d,(hl) ROM3:655B 7A ld a,d ROM3:655C E1 pop hl ROM3:655D D1 pop de ROM3:655E C1 pop bc ROM3:655F C9 ret
0xE560-0xE567
- Array ?
ROM3:6560 02 0A 00 08 00 00 04 06
3:6568 (to document)
ROM3:6568 3E 02 ld a,02 ROM3:656A CD E3 0D call 0DE3 // (CAAA) = 0, (CAAB) = 2 ROM3:656D CD 2F 0F call 0F2F // (CAAB) = 0, (CAAC) = 2 ROM3:6570 CD 74 0F call 0F74 ROM3:6573 AF xor a ROM3:6574 C9 ret
Loads requested Menu
0xE575-0xE5CE
- Loads requested Menu
ROM3:6575 3E 04 ld a,04 ROM3:6577 CD E3 0D call 0DE3 ROM3:657A CD E9 66 call 66E9 ROM3:657D CD 2F 0F call 0F2F ROM3:6580 CD 74 0F call 0F74 ROM3:6583 FA A0 CE ld a,(CEA0) // a = Menu ID ROM3:6586 FE 00 cp a,00 ROM3:6588 20 0E jr nz,6598 // If not Campaign, jump to 3:6598 ROM3:658A CD A8 1F call 1FA8 ROM3:658D CF rst 08 ROM3:658E 0D dec c ROM3:658F 04 inc b ROM3:6590 CD BE 66 call 66BE ROM3:6593 CD 9C 64 call 649C ROM3:6596 18 34 jr 65CC ROM3:6598 FE 01 cp a,01 ROM3:659A 20 0E jr nz,65AA // If not Versus, jump to 3:65AA ROM3:659C CD B0 1F call 1FB0 ROM3:659F CF rst 08 ROM3:65A0 0F rrca ROM3:65A1 04 inc b ROM3:65A2 CD BE 66 call 66BE ROM3:65A5 CD 9C 64 call 649C ROM3:65A8 18 22 jr 65CC ROM3:65AA FE 02 cp a,02 ROM3:65AC 20 0E jr nz,65BC // If not Trade, jump to 3:65BC ROM3:65AE CD B8 1F call 1FB8 ROM3:65B1 CF rst 08 ROM3:65B2 11 04 CD ld de,CD04 ROM3:65B5 BE cp (hl) ROM3:65B6 66 ld h,(hl) ROM3:65B7 CD 9C 64 call 649C ROM3:65BA 18 10 jr 65CC ROM3:65BC FE 03 cp a,03 ROM3:65BE 20 0C jr nz,65CC // If not Records, jump to 3:65CC ROM3:65C0 CD C0 1F call 1FC0 ROM3:65C3 CF rst 08 ROM3:65C4 17 rla ROM3:65C5 04 inc b ROM3:65C6 CD BE 66 call 66BE ROM3:65C9 CD 9C 64 call 649C ROM3:65CC 3E 01 ld a,01 // Invalid Menu ID ROM3:65CE C9 ret
Check if the 1st button password had been entered, then ?
ROM3:65CF 3E 04 ld a,04 ROM3:65D1 CD E3 0D call 0DE3 ROM3:65D4 CD E9 66 call 66E9 ROM3:65D7 CD 2F 0F call 0F2F ROM3:65DA CD 74 0F call 0F74 ROM3:65DD 7B ld a,e ROM3:65DE FE 80 cp a,80 ROM3:65E0 20 0F jr nz,65F1 ROM3:65E2 CF rst 08 ROM3:65E3 1F rra ROM3:65E4 04 inc b ROM3:65E5 CD BE 66 call 66BE ROM3:65E8 CD 9C 64 call 649C ROM3:65EB 1E 00 ld e,00 ROM3:65ED 3E 01 ld a,01 ROM3:65EF 18 01 jr 65F2 ROM3:65F1 AF xor a ROM3:65F2 C9 ret
3:65F3
ROM3:65F3 3E 04 ld a,04 ROM3:65F5 CD E3 0D call 0DE3 ROM3:65F8 CD D8 66 call 66D8 ROM3:65FB CD E9 66 call 66E9 ROM3:65FE CD 2F 0F call 0F2F ROM3:6601 CD 74 0F call 0F74 ROM3:6604 AF xor a ROM3:6605 C9 ret
Button Password - Wipe out save file
ROM3:6606 3E 04 ld a,04 ROM3:6608 CD E3 0D call 0DE3 ROM3:660B CD C7 66 call 66C7 ROM3:660E CD E9 66 call 66E9 ROM3:6611 CD 2F 0F call 0F2F ROM3:6614 CD 74 0F call 0F74 ROM3:6617 AF xor a ROM3:6618 C9 ret
3:6619
ROM3:6619 3E 02 ld a,02 ROM3:661B CD E3 0D call 0DE3 ;wCAAB = 2, and set wCAAA to 0 ROM3:661E CD 2F 0F call 0F2F ;Copy wCAAB to wCAAC, set wCAAB to 0 ROM3:6621 CD 74 0F call 0F74 ;push af, call 0:177B ROM3:6624 AF xor a ;a = 0 ROM3:6625 C9 ret
Compares input with Button Password
0xE626-0xE689
- Compares input with Button Password
ROM3:6626 F5 push af ROM3:6627 C5 push bc ROM3:6628 E5 push hl ROM3:6629 FA A6 CA ld a,(CAA6) // Load button pressed ROM3:662C FE 00 cp a,00 ROM3:662E 28 56 jr z,6686 // If no button pressed, jump to 3:6686 ROM3:6630 7B ld a,e ROM3:6631 FE 00 cp a,00 ROM3:6633 20 17 jr nz,664C // If we are in the middle of a button password, jump to 3:664C ROM3:6635 FA A6 CA ld a,(CAA6) // Load button pressed ROM3:6638 FE 40 cp a,40 ROM3:663A 20 02 jr nz,663E ROM3:663C 1E 01 ld e,01 // If Up button pressed, e = 0x01 ROM3:663E FE 80 cp a,80 ROM3:6640 20 02 jr nz,6644 ROM3:6642 1E 08 ld e,08 // If Down button pressed, e = 0x08 ROM3:6644 FE 20 cp a,20 ROM3:6646 20 02 jr nz,664A ROM3:6648 1E 13 ld e,13 // If Left button pressed, e = 0x13 ROM3:664A 18 15 jr 6661 ROM3:664C 16 00 ld d,00 ROM3:664E 21 8A 66 ld hl,668A ROM3:6651 19 add hl,de // hl = (668A) + current position in Button Password ROM3:6652 FA A6 CA ld a,(CAA6) // Load button pressed ROM3:6655 BE cp (hl) // Compare with Button Password ROM3:6656 20 07 jr nz,665F // If invalid Button Password, jump to 3:665F ROM3:6658 21 A4 66 ld hl,66A4 ROM3:665B 19 add hl,de ROM3:665C 5E ld e,(hl) ROM3:665D 18 02 jr 6661 ROM3:665F 1E 00 ld e,00 ROM3:6661 7B ld a,e // a = Button Password cursor ROM3:6662 FE 81 cp a,81 ROM3:6664 20 0C jr nz,6672 // If it's not the last Button of Password #2, jump to 3:6672 ROM3:6666 3E 22 ld a,22 ROM3:6668 EA F1 B7 ld (B7F1),a // (B7F1) = 0x22, wipe out save file ROM3:666B CD 7E 2B call 2B7E ROM3:666E 1E 00 ld e,00 ROM3:6670 18 14 jr 6686 ROM3:6672 7B ld a,e ROM3:6673 FE 82 cp a,82 ROM3:6675 20 0F jr nz,6686 // If it's not the last Button of Password #3, jump to 3:6686 ROM3:6677 F0 DE ld a,(ff00+DE) ROM3:6679 FE 03 cp a,03 ROM3:667B 20 04 jr nz,6681 // If not playing on Super Game Boy 2, jump to 3:6681 ROM3:667D 3E 02 ld a,02 ROM3:667F E0 DE ld (ff00+DE),a // Else (FFDE) = 2 (Disables Super Game Boy 2 flag) ROM3:6681 CD 26 2B call 2B26 ROM3:6684 1E 00 ld e,00 ROM3:6686 E1 pop hl ROM3:6687 C1 pop bc ROM3:6688 F1 pop af ROM3:6689 C9 ret
Button Passwords
0xE68A
- Button Passwords
ROM3:668A 40 80 02 80 80 42 02 => UP DOWN B DOWN DOWN B+UP B 80 40 02 80 80 10 40 40 40 40 82 => DOWN UP B DOWN DOWN RIGHT UP UP UP UP B+DOWN 20 02 02 02 40 02 02 12 => LEFT B B B UP B B B+RIGHT
Button Password cursor
0xE6A4-0xE6BD
- Button Password cursor, last value is the function called
ROM3:66A4 01 02 03 04 05 06 80 - Card Password 08 09 0A 0B 0C 0D 0E 0F 10 11 81 - Wipe out SRAM 13 14 15 16 17 18 19 82 - Disables Super Game Boy 2 flag
Increment Menu ID
0xE6C7-0xE6D7
- Menu ID + 1
ROM3:66C7 F5 push af ROM3:66C8 FA A0 CE ld a,(CEA0) // Current selected Menu ROM3:66CB FE 03 cp a,03 ROM3:66CD 28 07 jr z,66D6 // If(Menu ID == 3), get out of this function ROM3:66CF FA A0 CE ld a,(CEA0) ROM3:66D2 3C inc a ROM3:66D3 EA A0 CE ld (CEA0),a // Menu ID ++ ROM3:66D6 F1 pop af ROM3:66D7 C9 ret
3:66E9 (to document)
ROM3:66E9 F5 push af ROM3:66EA C5 push bc ROM3:66EB D5 push de ROM3:66EC E5 push hl ROM3:66ED 01 02 00 ld bc,0002 ROM3:66F0 FA A0 CE ld a,(CEA0) // a = Menu ID ROM3:66F3 CD 00 67 call 6700 ROM3:66F6 16 60 ld d,60 ROM3:66F8 CD 3C 12 call 123C ROM3:66FB E1 pop hl ROM3:66FC D1 pop de ROM3:66FD C1 pop bc ROM3:66FE F1 pop af ROM3:66FF C9 ret
Pointer to appropriate Menu
ROM3:6700 C5 push bc ROM3:6701 E5 push hl ROM3:6702 06 00 ld b,00 ROM3:6704 4F ld c,a ROM3:6705 21 0D 67 ld hl,670D ROM3:6708 09 add hl,bc ROM3:6709 7E ld a,(hl) ROM3:670A E1 pop hl ROM3:670B C1 pop bc ROM3:670C C9 ret
Menus pointers
ROM3:670D 60 68 70 78
Bank 4
SRAM management
Save file sanity check
0x10484-0x104B2
- Save file sanity check, creates a new save file if the current save is corrupted
ROM4:4484 F5 push af ROM4:4485 3E 00 ld a,00 ROM4:4487 EA 17 CF ld (CF17),a // (CF17) = 0 ROM4:448A CD 67 46 call 4667 // SRAM KONAMI check ROM4:448D FE 01 cp a,01 ROM4:448F 20 0B jr nz,449C // If the « KONAMI » string is correct, jump to 4:449C ROM4:4491 CD F2 49 call 49F2 // Name Input screen ROM4:4494 CD B3 44 call 44B3 // Erase SRAM and create a new Save File ROM4:4497 3E 01 ld a,01 ROM4:4499 EA 17 CF ld (CF17),a // (CF17) = 1 ROM4:449C CD BC 45 call 45BC // Check SRAM Block and Checksum ROM4:449F FE 01 cp a,01 ROM4:44A1 20 0B jr nz,44AE ROM4:44A3 CD F2 49 call 49F2 // Name Input screen ROM4:44A6 CD B3 44 call 44B3 // Erase SRAM and create a new Save File ROM4:44A9 3E 01 ld a,01 ROM4:44AB EA 17 CF ld (CF17),a // (CF17) = 1 ROM4:44AE CD 0F 45 call 450F // Clones SRAM if SRAM block 2 ROM4:44B1 F1 pop af ROM4:44B2 C9 ret
SRAM KONAMI check
0x1065C-0x10666
- Date of build and « KONAMI » string used to check SRAM existence
ROM4:465C 98 10 10 00 10 4B 4F 4E 41 4D 49 October 10, 1998 - KONAMI
0x10667-0x10683
- Control the presence of date of build and « KONAMI » string in SRAM at 0xB7F1-0xB7FB, to determine if save data exists.
ROM4:4667 C5 push bc ROM4:4668 D5 push de ROM4:4669 E5 push hl ROM4:466A 06 00 ld b,00 ROM4:466C 21 F1 B7 ld hl,B7F1 ROM4:466F 11 5C 46 ld de,465C ROM4:4672 0E 0B ld c,0B ROM4:4674 1A ld a,(de) ROM4:4675 BE cp (hl) ROM4:4676 28 02 jr z,467A // If the current character is ok, jump to 4:467A ROM4:4678 06 01 ld b,01 // Else b = 1 ROM4:467A 23 inc hl ROM4:467B 13 inc de ROM4:467C 0D dec c ROM4:467D 20 F5 jr nz,4674 // Loops 11 times to see if « 98 10 10 KONAMI » is present in SRAM at (B7F1)-(B7FB). ROM4:467F 78 ld a,b ROM4:4680 E1 pop hl ROM4:4681 D1 pop de ROM4:4682 C1 pop bc ROM4:4683 C9 ret
Link battle rewards
0x112A3-0x112CA
- Link battle rewards array
20 01 - Change Slime 0E 00 - Flame Swordsman 19 00 - Battle Ox 48 01 - Dragon Capture Jar 03 00 - Baby Dragon 32 00 - Armored Lizard 53 01 - Goblin's Secret Re 3B 01 - Electro-whip 0A 00 - Sword Arm of Drago 5C 01 - Spellbinding Circl 0F 00 - Time Wizard 59 00 - Gyakutenno Megami 41 00 - Kojikocy 33 00 - Hercules Beetle 59 01 - Ookazi 3C 01 - Cyber Shield 4E 00 - Megazowler 48 00 - Kairyu-shin 15 00 - Summoned Skull 5A 01 - Tremendous Fire
Graphics 3
0x1132B
- Cursors in Campaign mode
Bank 5
"Change Slime" evolution materials
0x1436B-0x1445A
- "Change Slime" evolution materials array
25 00 26 00 20 01 6D 01 6D 01 - Gaia The Fierce Kn + Curse of Dragon + Change Slime 03 00 0F 00 20 01 6D 01 6D 01 - Baby Dragon + Time Wizard + Change Slime 19 00 5A 00 20 01 6D 01 6D 01 - Battle Ox + Mystic Horseman + Change Slime 7A 00 15 01 20 01 6D 01 6D 01 - Dark Plant + Petit Moth + Change Slime 9C 00 15 01 20 01 6D 01 6D 01 - Firegrass + Petit Moth + Change Slime 11 01 15 01 20 01 6D 01 6D 01 - Green Phantom King + Petit Moth + Change Slime 10 01 15 01 20 01 6D 01 6D 01 - Ancient Tree of En + Petit Moth + Change Slime 07 00 15 01 20 01 6D 01 6D 01 - Mushroom Man + Petit Moth + Change Slime 4A 00 15 01 20 01 6D 01 6D 01 - Man-eating Plant + Petit Moth + Change Slime 9D 00 15 01 20 01 6D 01 6D 01 - Man Eater + Petit Moth + Change Slime ED 00 15 01 20 01 6D 01 6D 01 - Yashinoshi + Petit Moth + Change Slime B3 00 15 01 20 01 6D 01 6D 01 - Arlownay + Petit Moth + Change Slime 7A 00 37 00 20 01 6D 01 6D 01 - Dark Plant + Larvae Moth + Change Slime 9C 00 37 00 20 01 6D 01 6D 01 - Firegrass + Larvae Moth + Change Slime 11 01 37 00 20 01 6D 01 6D 01 - Green Phantom King + Larvae Moth + Change Slime 10 01 37 00 20 01 6D 01 6D 01 - Ancient Tree of En + Larvae Moth + Change Slime 07 00 37 00 20 01 6D 01 6D 01 - Mushroom Man + Larvae Moth + Change Slime 4A 00 37 00 20 01 6D 01 6D 01 - Man-eating Plant + Larvae Moth + Change Slime 9D 00 37 00 20 01 6D 01 6D 01 - Man Eater + Larvae Moth + Change Slime ED 00 37 00 20 01 6D 01 6D 01 - Yashinoshi + Larvae Moth + Change Slime B3 00 37 00 20 01 6D 01 6D 01 - Arlownay + Larvae Moth + Change Slime 47 00 47 00 20 01 6D 01 6D 01 - Cocoon of Evolutio + Cocoon of Evolutio + Change Slime 38 00 47 00 20 01 6D 01 6D 01 - Great Moth + Cocoon of Evolutio + Change Slime 15 00 51 00 20 01 6D 01 6D 01 - Summoned Skull + Red-eyes B. Dragon + Change Slime
"Change Slime" evolution results
0x1445B-0x1454A
- "Change Slime" evolution results array
24 00 6D 01 6D 01 6D 01 6D 01 - Gaia the Dragon Ch 44 00 6D 01 6D 01 6D 01 6D 01 - Thousand Dragon 5B 00 6D 01 6D 01 6D 01 6D 01 - Rabid Horseman 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 37 00 6D 01 6D 01 6D 01 6D 01 - Larvae Moth 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 47 00 6D 01 6D 01 6D 01 6D 01 - Cocoon of Evolutio 38 00 6D 01 6D 01 6D 01 6D 01 - Great Moth 42 00 6D 01 6D 01 6D 01 6D 01 - Perfectly Ultimate D8 00 6D 01 6D 01 6D 01 6D 01 - B. Skull Dragon
Bank 6
Graphics 4
0x1805E-0x1812D
- Dialog box border/background tiles
Battle step display
Handle Battle Step display
ROM6:5272 CD 7F 52 call 527F ;Display Monsters ? ROM6:5275 CD 05 54 call 5405 ROM6:5278 CF rst 08 => E:4003 pointer, claw animation + claw sound effect ROM6:527B CD 8B 55 call 558B ;Decreasing LPs animation ROM6:527E C9 ret
Display Monsters ?
ROM6:527F F5 push af ROM6:5280 FA D1 CE ld a,(CED1) ROM6:5283 E6 01 and a,01 ROM6:5285 28 11 jr z,5298 ROM6:5287 CD 9A 52 call 529A ;Display 1st monster ROM6:528A CD 10 53 call 5310 ;Display 1st monster name and ATK ROM6:528D CD F9 52 call 52F9 ROM6:5290 0E 28 ld c,28 ROM6:5292 CD 74 0F call 0F74 ;push af, call 177B ROM6:5295 0D dec c ROM6:5296 20 FA jr nz,5292 ;Loop 40 times to 6:5292 ROM6:5298 F1 pop af ROM6:5299 C9 ret
Battle step: Display 1st monster
ROM6:529A F5 push af ROM6:529B C5 push bc ROM6:529C D5 push de ROM6:529D CD 0A 1C call 1C0A ROM6:52A0 01 38 C0 ld bc,C038 ROM6:52A3 CD 1D 1C call 1C1D ROM6:52A6 01 00 10 ld bc,1000 ROM6:52A9 CD 12 1C call 1C12 ROM6:52AC FA D2 CE ld a,(CED2) ROM6:52AF 4F ld c,a ROM6:52B0 FA D3 CE ld a,(CED3) ROM6:52B3 47 ld b,a ROM6:52B4 CF rst 08 ROM6:52B5 03 inc bc ROM6:52B6 09 add hl,bc ROM6:52B7 CF rst 08 ROM6:52B8 23 inc hl ROM6:52B9 01 1E 05 ld bc,051E ROM6:52BC CD 82 12 call 1282 ROM6:52BF 3E 04 ld a,04 ROM6:52C1 CD E3 0D call 0DE3 ROM6:52C4 CD 2F 0F call 0F2F ROM6:52C7 CD 74 0F call 0F74 ROM6:52CA 1D dec e ROM6:52CB 20 EF jr nz,52BC ROM6:52CD 01 00 00 ld bc,0000 ROM6:52D0 CD 12 1C call 1C12 ROM6:52D3 3E 0A ld a,0A ROM6:52D5 CD E3 0D call 0DE3 ROM6:52D8 CD 82 12 call 1282 ROM6:52DB CF rst 08 ROM6:52DC 3B dec sp ROM6:52DD 01 CD 2F ld bc,2FCD ROM6:52E0 0F rrca ROM6:52E1 CD 74 0F call 0F74 ROM6:52E4 01 38 C0 ld bc,C038 ROM6:52E7 CD 1D 1C call 1C1D ROM6:52EA 3E 04 ld a,04 ROM6:52EC CD E3 0D call 0DE3 ROM6:52EF CD 2F 0F call 0F2F ROM6:52F2 CD 74 0F call 0F74 ROM6:52F5 D1 pop de ROM6:52F6 C1 pop bc ROM6:52F7 F1 pop af ROM6:52F8 C9 ret
6:52F9
ROM6:52F9 F5 push af ROM6:52FA CF rst 08 => 1:4025 pointer ROM6:52FD 3E 0A ld a,0A ROM6:52FF CD E3 0D call 0DE3 ;set wCAAB to accumulator, and (CAAA) to 0 ROM6:5302 CD 82 12 call 1282 ROM6:5305 CF rst 08 => 1:4029 pointer ROM6:5308 CD 2F 0F call 0F2F ;Copy wCAAB to wCAAC, wCAAB = 0 ROM6:530B CD 74 0F call 0F74 ;push af, call 0:177B ROM6:530E F1 pop af ROM6:530F C9 ret
Display 1st monster name and ATK
ROM6:5310 F5 push af ROM6:5311 3E 14 ld a,14 ROM6:5313 CD E3 0D call 0DE3 ROM6:5316 CD 30 53 call 5330 ROM6:5319 FA D1 CE ld a,(CED1) ROM6:531C E6 02 and a,02 ROM6:531E 28 05 jr z,5325 ROM6:5320 CD 79 53 call 5379 ROM6:5323 18 03 jr 5328 ROM6:5325 CD BF 53 call 53BF ROM6:5328 CD 2F 0F call 0F2F ROM6:532B CD 74 0F call 0F74 ROM6:532E F1 pop af ROM6:532F C9 ret
Decreasing LPs animation
ROM6:558B C5 push bc ROM6:558C 0E 14 ld c,14 ROM6:558E CD 74 0F call 0F74 ROM6:5591 0D dec c ROM6:5592 20 FA jr nz,558E ROM6:5594 CD A4 55 call 55A4 ROM6:5597 CD 78 56 call 5678 ;Attack screen : decrease displayed LPs ROM6:559A 0E 28 ld c,28 ROM6:559C CD 74 0F call 0F74 ROM6:559F 0D dec c ROM6:55A0 20 FA jr nz,559C ROM6:55A2 C1 pop bc ROM6:55A3 C9 ret
6:55A4
ROM6:55A4 F5 push af ROM6:55A5 C5 push bc ROM6:55A6 D5 push de ROM6:55A7 E5 push hl ROM6:55A8 FA D4 CE ld a,(CED4) ROM6:55AB EA F5 CD ld (CDF5),a ROM6:55AE FA D5 CE ld a,(CED5) ROM6:55B1 EA F6 CD ld (CDF6),a ROM6:55B4 3E 00 ld a,00 ROM6:55B6 EA F7 CD ld (CDF7),a ROM6:55B9 FA D6 CE ld a,(CED6) ROM6:55BC EA F8 CD ld (CDF8),a ROM6:55BF FA D7 CE ld a,(CED7) ROM6:55C2 EA F9 CD ld (CDF9),a ROM6:55C5 3E 00 ld a,00 ROM6:55C7 EA FA CD ld (CDFA),a ROM6:55CA CD 2A 1D call 1D2A ROM6:55CD FE 01 cp a,01 ROM6:55CF 28 59 jr z,562A ROM6:55D1 CD 52 2B call 2B52 ROM6:55D4 FA D4 CE ld a,(CED4) ROM6:55D7 4F ld c,a ROM6:55D8 FA D5 CE ld a,(CED5) ROM6:55DB 47 ld b,a ROM6:55DC 16 00 ld d,00 ROM6:55DE 1E 0A ld e,0A ROM6:55E0 79 ld a,c ROM6:55E1 EA F5 CD ld (CDF5),a ROM6:55E4 78 ld a,b ROM6:55E5 EA F6 CD ld (CDF6),a ROM6:55E8 CD 2A 1D call 1D2A ROM6:55EB FE 00 cp a,00 ROM6:55ED 28 02 jr z,55F1 ROM6:55EF 16 01 ld d,01 ROM6:55F1 7A ld a,d ROM6:55F2 FE 01 cp a,01 ROM6:55F4 28 2C jr z,5622 ROM6:55F6 3E 01 ld a,01 ROM6:55F8 EA DC CA ld (CADC),a ROM6:55FB 3E 00 ld a,00 ROM6:55FD EA DD CA ld (CADD),a ROM6:5600 3E 00 ld a,00 ROM6:5602 EA DE CA ld (CADE),a ROM6:5605 79 ld a,c ROM6:5606 EA DF CA ld (CADF),a ROM6:5609 78 ld a,b ROM6:560A EA E0 CA ld (CAE0),a ROM6:560D 3E 00 ld a,00 ROM6:560F EA E1 CA ld (CAE1),a ROM6:5612 D5 push de ROM6:5613 CD DB 13 call 13DB ROM6:5616 D1 pop de ROM6:5617 FA DC CA ld a,(CADC) ROM6:561A 4F ld c,a ROM6:561B FA DD CA ld a,(CADD) ROM6:561E 47 ld b,a ROM6:561F 1D dec e ROM6:5620 20 BE jr nz,55E0 ROM6:5622 CD 2F 56 call 562F ROM6:5625 7A ld a,d ROM6:5626 FE 00 cp a,00 ROM6:5628 28 B4 jr z,55DE ROM6:562A E1 pop hl ROM6:562B D1 pop de ROM6:562C C1 pop bc ROM6:562D F1 pop af ROM6:562E C9 ret
Attack screen : decrease displayed LPs
ROM6:5678 F5 push af ROM6:5679 C5 push bc ROM6:567A D5 push de ROM6:567B E5 push hl ROM6:567C FA DF CE ld a,(CEDF) ROM6:567F EA F5 CD ld (CDF5),a ROM6:5682 FA E0 CE ld a,(CEE0) ;Next LPs to display during damage ROM6:5685 EA F6 CD ld (CDF6),a ;Copy it to wCDF6 ROM6:5688 3E 00 ld a,00 ROM6:568A EA F7 CD ld (CDF7),a ;wCDF7 = 0 ROM6:568D FA E1 CE ld a,(CEE1) ROM6:5690 EA F8 CD ld (CDF8),a ;wCDF8 = wCEE1 ROM6:5693 FA E2 CE ld a,(CEE2) ROM6:5696 EA F9 CD ld (CDF9),a ;wCDF9 = wCEE2 ROM6:5699 3E 00 ld a,00 ROM6:569B EA FA CD ld (CDFA),a ;wCDFA = 0 ROM6:569E CD 2A 1D call 1D2A ROM6:56A1 FE 01 cp a,01 ROM6:56A3 28 59 jr z,56FE ROM6:56A5 CD 52 2B call 2B52 ROM6:56A8 FA DF CE ld a,(CEDF) ROM6:56AB 4F ld c,a ROM6:56AC FA E0 CE ld a,(CEE0) ROM6:56AF 47 ld b,a ROM6:56B0 16 00 ld d,00 ROM6:56B2 1E 0A ld e,0A ;Decrease LPs 10 per 10 ROM6:56B4 79 ld a,c ROM6:56B5 EA F5 CD ld (CDF5),a ROM6:56B8 78 ld a,b ROM6:56B9 EA F6 CD ld (CDF6),a ROM6:56BC CD 2A 1D call 1D2A ROM6:56BF FE 00 cp a,00 ROM6:56C1 28 02 jr z,56C5 ROM6:56C3 16 01 ld d,01 ROM6:56C5 7A ld a,d ROM6:56C6 FE 01 cp a,01 ROM6:56C8 28 2C jr z,56F6 ROM6:56CA 3E 01 ld a,01 ROM6:56CC EA DC CA ld (CADC),a ROM6:56CF 3E 00 ld a,00 ROM6:56D1 EA DD CA ld (CADD),a ROM6:56D4 3E 00 ld a,00 ROM6:56D6 EA DE CA ld (CADE),a ROM6:56D9 79 ld a,c ROM6:56DA EA DF CA ld (CADF),a ROM6:56DD 78 ld a,b ROM6:56DE EA E0 CA ld (CAE0),a ROM6:56E1 3E 00 ld a,00 ROM6:56E3 EA E1 CA ld (CAE1),a ROM6:56E6 D5 push de ROM6:56E7 CD DB 13 call 13DB ROM6:56EA D1 pop de ROM6:56EB FA DC CA ld a,(CADC) ROM6:56EE 4F ld c,a ROM6:56EF FA DD CA ld a,(CADD) ROM6:56F2 47 ld b,a ROM6:56F3 1D dec e ROM6:56F4 20 BE jr nz,56B4 ;Loop 10 times ROM6:56F6 CD 03 57 call 5703 ROM6:56F9 7A ld a,d ROM6:56FA FE 00 cp a,00 ROM6:56FC 28 B4 jr z,56B2 ROM6:56FE E1 pop hl ROM6:56FF D1 pop de ROM6:5700 C1 pop bc ROM6:5701 F1 pop af ROM6:5702 C9 ret
6:5703
ROM6:5703 F5 push af ROM6:5704 C5 push bc ROM6:5705 D5 push de ROM6:5706 E5 push hl ROM6:5707 3E 14 ld a,14 ROM6:5709 CD E3 0D call 0DE3 ROM6:570C 3E 0A ld a,0A ROM6:570E CF rst 08 => 1:401D ROM6:5711 CF 1B rst 08 => 1:401B ROM6:5714 CF rst 08 ROM6:5715 1F rra ROM6:5716 01 78 FE ld bc,FE78 ROM6:5719 FF rst 38 ROM6:571A 20 03 jr nz,571F ROM6:571C CF rst 08 ROM6:571D 21 01 01 ld hl,0101 ROM6:5720 0A ld a,(bc) ROM6:5721 9A sbc d ROM6:5722 CD 3D 0F call 0F3D ;Store reg bc in wC5(CAAA), and update wCAAA ROM6:5725 21 48 57 ld hl,5748 ROM6:5728 0E 04 ld c,04 ROM6:572A 2A ldi a,(hl) ROM6:572B CD 50 0F call 0F50 ;Store reg a in wC5(CAAA), and update wCAAA ROM6:572E 0D dec c ROM6:572F 20 F9 jr nz,572A ROM6:5731 21 B9 CA ld hl,CAB9 ROM6:5734 0E 04 ld c,04 ROM6:5736 2A ldi a,(hl) ROM6:5737 CD 50 0F call 0F50 ;Store reg a in wC5(CAAA), and update wCAAA ROM6:573A 0D dec c ROM6:573B 20 F9 jr nz,5736 ROM6:573D CD 2F 0F call 0F2F ROM6:5740 CD 74 0F call 0F74 ROM6:5743 E1 pop hl ROM6:5744 D1 pop de ROM6:5745 C1 pop bc ROM6:5746 F1 pop af ROM6:5747 C9 ret
Bank 8
CPU Decks
Generate CPU Deck
ROM8:4004 F5 push af ROM8:4005 C5 push bc ROM8:4006 D5 push de ROM8:4007 E5 push hl ROM8:4008 1E 00 ld e,00 ;deck_size = 0 ROM8:400A 7B ld a,e ROM8:400B FE 28 cp a,28 ROM8:400D 30 0D jr nc,401C ;if(deck_size ≥ 40), exit this function ROM8:400F 7B ld a,e ROM8:4010 CF rst 08 5D 03 ROM8:4013 CD 21 40 call 4021 ;Generate CPU Card ROM8:4016 CF rst 08 5F 03 => Add card to CPU's deck ROM8:4019 1C inc e ;deck_size ++ ROM8:401A 18 EE jr 400A ;loop to 8:400A ROM8:401C E1 pop hl ROM8:401D D1 pop de ROM8:401E C1 pop bc ROM8:401F F1 pop af ROM8:4020 C9 ret
Generate CPU Card
ROM8:4021 F5 push af ROM8:4022 D5 push de ROM8:4023 E5 push hl ROM8:4024 3E 00 ld a,00 ROM8:4026 EA 9D CE ld (CE9D),a ROM8:4029 3E FF ld a,FF ROM8:402B EA 9E CE ld (CE9E),a ;PRN[0;255] ROM8:402E CD 12 21 call 2112 ;Pseudo-Random Number ROM8:4031 FA 9F CE ld a,(CE9F) ROM8:4034 5F ld e,a ROM8:4035 3E 00 ld a,00 ROM8:4037 EA 9D CE ld (CE9D),a ROM8:403A 3E 07 ld a,07 ROM8:403C EA 9E CE ld (CE9E),a ;PRN[0;7] ROM8:403F CD 12 21 call 2112 ;Pseudo-Random Number ROM8:4042 FA 9F CE ld a,(CE9F) ROM8:4045 57 ld d,a ;de = [0;2047] ROM8:4046 06 00 ld b,00 ROM8:4048 CF rst 08 19 02 ROM8:404B 4F ld c,a ROM8:404C CB 21 sla c ;c = CPU opponent deck offset ROM8:404E 21 6C 40 ld hl,406C ROM8:4051 09 add hl,bc ;hl = CPU Deck pointer ROM8:4052 2A ldi a,(hl) ROM8:4053 66 ld h,(hl) ROM8:4054 6F ld l,a ROM8:4055 01 00 00 ld bc,0000 ;card_id = 0 ROM8:4058 C5 push bc ROM8:4059 2A ldi a,(hl) ROM8:405A 4F ld c,a ROM8:405B 2A ldi a,(hl) ROM8:405C 47 ld b,a ;bc = card_probability ROM8:405D CD 0F 1D call 1D0F ROM8:4060 C1 pop bc ;bc = card_id ROM8:4061 FE 00 cp a,00 ROM8:4063 28 03 jr z,4068 ;if card_probability > PRN, exit this function ROM8:4065 03 inc bc ;card_id ++ ROM8:4066 18 F0 jr 4058 ;loop to 8:4058 (next card probability) ROM8:4068 E1 pop hl ROM8:4069 D1 pop de ROM8:406A F1 pop af ROM8:406B C9 ret
CPU Decks pointers
ROM8:406C 8E 40 - Weevil Underwood 68 43 - Mai Valentine 42 46 - Rex Raptor 1C 49 - Mako Tsunami F6 4B - Yami Yugi D0 4E - Yugi Muto AA 51 - ? D6 51 - Joey Wheeler B0 54 - Seto Kaiba 8A 57 - Mokuba Kaiba 64 5A - Tristan Taylor 3E 5D - Ryou Bakura 18 60 - Puppeteer of Doom F2 62 - PaniK CC 65 - Bandit Keith A6 68 - Maximillion Pegasus 80 6B - Simon Muran
CPU Decks data
0x2008E-0x22E59
- CPU Decks cards cumulative probabilities, from 0 to 2048, using the CPU Decks pointers
Array ?
0x211AA-0x211D5
- ?
ROM8:51AA 01 00 02 00 03 00 04 00 0A 00 0F 00 14 00 19 00 1E 00 23 00 28 00 2D 00 32 00 37 00 3C 00 41 00 46 00 4B 00 50 00 55 00 5A 00 63 00
Bank 9
0x2409E-0x2420A
- Card type array0x2420B-0x24380
- ?0x24381-0x2465C
- Cards original ATK array0x2465D-0x24938
- Cards original DEF array0x24939-0x24C14
- Cards modified ATK array (while "Forest" is active)0x24C15-0x24EF0
- Cards modified DEF array (while "Forest" is active)0x24EF1-0x251CC
- Cards modified ATK array (while "Wasteland" is active)0x251CD-0x254A8
- Cards modified DEF array (while "Wasteland" is active)0x254A9-0x25784
- Cards modified ATK array (while "Mountain" is active)0x25785-0x25A60
- Cards modified DEF array (while "Mountain" is active)0x25A61-0x25D3C
- Cards modified ATK array (while "Sogen" is active)0x25D3D-0x26018
- Cards modified DEF array (while "Sogen" is active)0x26019-0x262F4
- Cards modified ATK array (while "Umi" is active)0x262F5-0x265D0
- Cards modified DEF array (while "Umi" is active)0x265D1-0x268AC
- Cards modified ATK array (while "Yami" is active)0x268AD-0x26B88
- Cards modified DEF array (while "Yami" is active)
9:6B9F
0x26B9F-0x26BC7
ROM9:6B9F C5 push bc ROM9:6BA0 D5 push de ROM9:6BA1 E5 push hl ROM9:6BA2 2A ldi a,(hl) ROM9:6BA3 5F ld e,a ROM9:6BA4 2A ldi a,(hl) ROM9:6BA5 57 ld d,a ROM9:6BA6 C5 push bc ROM9:6BA7 01 FF FF ld bc,FFFF ROM9:6BAA CD 00 1D call 1D00 // Checks if 0xFFFF ≠ de ROM9:6BAD C1 pop bc ROM9:6BAE FE 00 cp a,00 ROM9:6BB0 20 04 jr nz,6BB6 ROM9:6BB2 1E 00 ld e,00 ROM9:6BB4 18 0D jr 6BC3 ROM9:6BB6 CD 00 1D call 1D00 // Checks if bc ≠ de ROM9:6BB9 FE 00 cp a,00 ROM9:6BBB 20 04 jr nz,6BC1 ROM9:6BBD 1E 01 ld e,01 ROM9:6BBF 18 02 jr 6BC3 ROM9:6BC1 18 DF jr 6BA2 ROM9:6BC3 7B ld a,e ROM9:6BC4 E1 pop hl ROM9:6BC5 D1 pop de ROM9:6BC6 C1 pop bc ROM9:6BC7 C9 ret
Equip Monster IDs arrays
0x26BC8-0x2764D
- Equip Monster IDs arrays, separated byFF FF
Equip Monster IDs pointers array
0x26BC8-0x26BFB
- Equip Monster IDs pointers array
FC 6B 62 6C AC 6C F2 6D 60 6E FA 6E 22 6F 64 6F 30 70 3A 70 56 70 E0 70 10 71 3E 71 90 71 E4 71 62 72 90 72 FA 72 76 73 D2 73 36 74 D0 74 F0 74 76 75 00 76
Legendary Sword array
0x26BFC-0x26C61
- "Legendary Sword" Equip Monster IDs array
0B 00 0E 00 19 00 1A 00 1C 00 20 00 25 00 28 00 2A 00 3F 00 41 00 4D 00 5B 00 5C 00 63 00 6D 00 75 00 77 00 82 00 84 00 89 00 92 00 96 00 9B 00 9F 00 A0 00 A4 00 A5 00 AB 00 B8 00 C3 00 C6 00 D3 00 DF 00 E6 00 EA 00 F9 00 FB 00 FF 00 05 01 08 01 09 01 1D 01 21 01 22 01 24 01 2A 01 5F 01 61 01 69 01 FF FF
Sword of Ruin array
0x26C62-0x26CAB
- "Sword of Ruin" Equip Monster IDs array
0B 00 0D 00 15 00 16 00 18 00 1D 00 25 00 41 00 43 00 6A 00 76 00 7B 00 7E 00 B5 00 C2 00 D5 00 DA 00 E0 00 E1 00 E9 00 EB 00 EE 00 F0 00 F5 00 FF 00 0A 01 0C 01 18 01 24 01 25 01 28 01 62 01 63 01 66 01 67 01 6B 01 FF FF
Dark Energy array
0x26CAC-0x26DF1
- "Dark Energy" Equip Monster IDs array
02 00 04 00 05 00 08 00 09 00 0B 00 0F 00 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 1D 00 1E 00 21 00 22 00 25 00 27 00 29 00 2C 00 2F 00 39 00 40 00 41 00 4A 00 4B 00 50 00 52 00 53 00 54 00 55 00 56 00 57 00 5E 00 5F 00 60 00 61 00 62 00 64 00 65 00 66 00 67 00 68 00 6A 00 6B 00 6E 00 6F 00 70 00 72 00 73 00 76 00 7A 00 7B 00 7E 00 83 00 86 00 87 00 88 00 8A 00 8C 00 8D 00 8E 00 91 00 93 00 94 00 95 00 97 00 98 00 99 00 9A 00 9D 00 A1 00 A3 00 A6 00 A7 00 A8 00 AA 00 AC 00 AD 00 AE 00 AF 00 B1 00 B2 00 B4 00 B5 00 B8 00 BA 00 BB 00 BD 00 C1 00 C2 00 C4 00 C8 00 C9 00 CA 00 CB 00 CC 00 CD 00 D0 00 D1 00 D3 00 D4 00 D5 00 D6 00 D9 00 DA 00 DB 00 DC 00 DD 00 DE 00 DF 00 E0 00 E1 00 E3 00 E6 00 E7 00 E8 00 E9 00 EB 00 EE 00 EF 00 F0 00 F1 00 F4 00 F5 00 F7 00 FC 00 FD 00 FF 00 01 01 02 01 04 01 0A 01 0B 01 0C 01 0E 01 14 01 16 01 18 01 1A 01 1B 01 1C 01 1D 01 1E 01 1F 01 22 01 24 01 25 01 26 01 28 01 29 01 5E 01 62 01 66 01 67 01 69 01 6B 01 6C 01 FF FF
Axe of Despair array
0x26DF2-0x26E5F
- "Axe of Despair" Equip Monster IDs array
02 00 04 00 05 00 0B 00 0D 00 15 00 16 00 17 00 18 00 19 00 1A 00 1C 00 1D 00 3F 00 41 00 43 00 4B 00 4C 00 4D 00 55 00 57 00 5A 00 5B 00 5F 00 6A 00 76 00 7E 00 94 00 97 00 A8 00 AA 00 B1 00 B5 00 B8 00 BA 00 BB 00 C1 00 C2 00 C9 00 CD 00 DA 00 DF 00 E1 00 E6 00 F5 00 06 01 0E 01 18 01 1D 01 1E 01 26 01 5E 01 63 01 66 01 FF FF
Lazer Cannon Armor array
0x26E60-0x26EF9
- "Lazer Cannon Armor" Equip Monster IDs array
02 00 03 00 04 00 05 00 0B 00 0C 00 1B 00 26 00 2C 00 2D 00 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 40 00 42 00 43 00 47 00 49 00 4B 00 4C 00 4E 00 4F 00 50 00 54 00 56 00 57 00 58 00 5A 00 5B 00 5D 00 60 00 68 00 6F 00 70 00 73 00 78 00 7C 00 8A 00 8C 00 9A 00 9E 00 AA 00 AE 00 B0 00 B4 00 B6 00 C0 00 C4 00 C9 00 CB 00 D0 00 DC 00 DD 00 E1 00 E7 00 F0 00 F2 00 F4 00 FE 00 12 01 15 01 1D 01 23 01 27 01 28 01 2B 01 60 01 62 01 64 01 67 01 FF FF
Insect Armor with array
0x26EFA-0x26F21
- "Insect Armor with" Equip Monster IDs array
30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 42 00 47 00 73 00 8C 00 D0 00 DC 00 12 01 15 01 1C 01 62 01 FF FF
Elf's Light array
0x26F22-0x26F63
- "Elf's Light" Equip Monster IDs array
01 00 28 00 2B 00 2C 00 59 00 6C 00 7C 00 7D 00 7F 00 80 00 81 00 92 00 A9 00 B6 00 B7 00 BF 00 C5 00 CF 00 D7 00 E4 00 F2 00 F8 00 FB 00 FC 00 03 01 10 01 11 01 13 01 19 01 2A 01 68 01 6A 01 FF FF
Beast Fangs array
0x26F64-0x2702F
- "Beast Fangs" Equip Monster IDs array
02 00 03 00 04 00 05 00 06 00 08 00 09 00 0A 00 0D 00 15 00 16 00 17 00 1A 00 1C 00 1D 00 1E 00 1F 00 23 00 26 00 2D 00 2E 00 2F 00 30 00 32 00 33 00 3A 00 3B 00 3C 00 3F 00 40 00 43 00 48 00 4B 00 4C 00 4E 00 4F 00 50 00 54 00 55 00 56 00 5A 00 5D 00 5E 00 60 00 61 00 62 00 68 00 70 00 78 00 7A 00 7D 00 83 00 89 00 8C 00 8E 00 95 00 96 00 98 00 9D 00 9E 00 A2 00 A6 00 A7 00 A8 00 B2 00 B5 00 BA 00 BB 00 BC 00 C0 00 C4 00 C7 00 C8 00 C9 00 CD 00 D2 00 D3 00 D9 00 DD 00 DE 00 E1 00 E3 00 E5 00 F5 00 F7 00 FB 00 FE 00 00 01 01 01 08 01 19 01 1C 01 1E 01 29 01 2B 01 5E 01 60 01 61 01 63 01 64 01 67 01 FF FF
Steel Shell array
0x27030-0x27039
- "Steel Shell" Equip Monster IDs array
58 00 B0 00 C0 00 23 01 FF FF
Vile Germs array
0x2703A-0x27055
- "Vile Germs" Equip Monster IDs array
07 00 4A 00 61 00 7A 00 9C 00 9D 00 B3 00 D7 00 E3 00 EA 00 ED 00 10 01 11 01 FF FF
Black Pendant array
0x27056-0x270DF
- "Black Pendant" Equip Monster IDs array
0B 00 0F 00 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 21 00 22 00 23 00 27 00 29 00 53 00 54 00 5E 00 61 00 62 00 64 00 65 00 66 00 67 00 6B 00 6E 00 6F 00 72 00 83 00 8B 00 8D 00 8E 00 90 00 93 00 94 00 98 00 99 00 A3 00 A5 00 A6 00 A8 00 AC 00 AE 00 AF 00 B2 00 B4 00 B5 00 BD 00 D2 00 D4 00 DA 00 DB 00 DF 00 E6 00 E8 00 EB 00 FC 00 02 01 04 01 0B 01 0C 01 0E 01 14 01 1A 01 1B 01 5E 01 6C 01 FF FF
Silver Bow & Arrow array
0x270E0-0x2710F
- "Silver Bow & Arrow" Equip Monster IDs array
01 00 3D 00 3E 00 59 00 6C 00 6E 00 79 00 7D 00 7F 00 81 00 85 00 A9 00 AE 00 BC 00 BF 00 C5 00 CF 00 D7 00 E4 00 FC 00 03 01 07 01 13 01 FF FF
Horn of Light array
0x27110-0x2713D
- "Horn of Light" Equip Monster IDs array
03 00 06 00 19 00 1A 00 1B 00 1C 00 1F 00 26 00 2C 00 2E 00 33 00 58 00 5B 00 6D 00 B0 00 D3 00 F7 00 08 01 19 01 21 01 25 01 64 01 FF FF
Horn of the Unicor array
0x2713E-0x2718F
- "Horn of the Unicor" Equip Monster IDs array
04 00 05 00 09 00 0B 00 0D 00 15 00 18 00 37 00 38 00 3A 00 42 00 43 00 4E 00 50 00 54 00 55 00 56 00 5C 00 66 00 70 00 7A 00 8E 00 96 00 A3 00 AC 00 AE 00 B1 00 B4 00 C9 00 CB 00 DA 00 DB 00 E1 00 E6 00 EB 00 EE 00 F4 00 0A 01 62 01 67 01 FF FF
Dragon Treasure array
0x27190-0x271E3
- "Dragon Treasure" Equip Monster IDs array
00 00 03 00 06 00 09 00 0A 00 1E 00 1F 00 24 00 26 00 2D 00 2E 00 32 00 43 00 44 00 48 00 4B 00 4C 00 4E 00 4F 00 50 00 51 00 56 00 5D 00 60 00 68 00 79 00 89 00 A7 00 BB 00 C7 00 D8 00 DD 00 DE 00 25 01 27 01 29 01 2B 01 60 01 64 01 65 01 67 01 FF FF
Electro-whip array
0x271E4-0x27261
- "Electro-whip" Equip Monster IDs array
01 00 02 00 05 00 0B 00 18 00 21 00 2C 00 3D 00 3E 00 59 00 5A 00 69 00 6C 00 71 00 77 00 7F 00 80 00 83 00 86 00 88 00 8A 00 8C 00 8D 00 8E 00 8F 00 A8 00 A9 00 B3 00 B8 00 BA 00 BB 00 BF 00 C2 00 CD 00 CF 00 D2 00 D3 00 D7 00 DF 00 E8 00 E9 00 EC 00 EE 00 F2 00 F8 00 F9 00 FA 00 FB 00 FC 00 FD 00 03 01 09 01 11 01 17 01 18 01 1E 01 23 01 2A 01 5E 01 5F 01 66 01 6A 01 FF FF
Cyber Shield array
0x27262-0x2728F
- "Cyber Shield" Equip Monster IDs array
01 00 3D 00 3E 00 59 00 69 00 6C 00 7F 00 80 00 A9 00 B3 00 BF 00 D7 00 E9 00 EE 00 F2 00 F8 00 FA 00 FC 00 03 01 09 01 17 01 2A 01 FF FF
Mystical Moon array
0x27290-0x272F9
- "Mystical Moon" Equip Monster IDs array
05 00 08 00 0D 00 16 00 19 00 1A 00 1C 00 2D 00 2E 00 2F 00 39 00 3C 00 3D 00 3E 00 3F 00 40 00 55 00 5A 00 5B 00 70 00 78 00 9E 00 A2 00 A3 00 BA 00 BB 00 BC 00 C0 00 C4 00 C5 00 C6 00 C8 00 C9 00 CE 00 D3 00 DA 00 E5 00 F5 00 F7 00 F9 00 FB 00 FE 00 00 01 01 01 07 01 19 01 1E 01 23 01 26 01 2B 01 61 01 63 01 FF FF
Malevolent Nuzzler array
0x272FA-0x27375
- "Malevolent Nuzzler" Equip Monster IDs array
01 00 02 00 04 00 08 00 15 00 17 00 1D 00 27 00 29 00 2F 00 3D 00 3E 00 59 00 5E 00 5F 00 61 00 62 00 69 00 6C 00 7A 00 7F 00 80 00 8C 00 95 00 9A 00 9D 00 A3 00 A9 00 B3 00 B5 00 BA 00 BB 00 BF 00 C2 00 C4 00 C5 00 C8 00 CD 00 CE 00 D2 00 D3 00 D7 00 DC 00 E9 00 EC 00 EE 00 F2 00 F8 00 FA 00 FB 00 FC 00 03 01 09 01 11 01 17 01 2A 01 5F 01 61 01 63 01 67 01 6A 01 FF FF
Violet Crystal array
0x27376-0x273D1
- "Violet Crystal" Equip Monster IDs array
04 00 08 00 15 00 17 00 1D 00 23 00 26 00 2D 00 5F 00 60 00 61 00 62 00 65 00 66 00 67 00 6B 00 6F 00 76 00 79 00 83 00 86 00 88 00 8A 00 8B 00 8C 00 91 00 98 00 99 00 A6 00 AC 00 B2 00 C4 00 CA 00 D6 00 E3 00 F0 00 FD 00 04 01 0B 01 0C 01 0E 01 14 01 5E 01 66 01 6C 01 FF FF
Book of Secret Art array
0x273D2-0x27435
- "Book of Secret Art" Equip Monster IDs array
01 00 0F 00 20 00 28 00 29 00 2B 00 2C 00 3D 00 3E 00 59 00 69 00 6C 00 71 00 74 00 77 00 79 00 7D 00 7F 00 80 00 81 00 85 00 8D 00 8E 00 8F 00 90 00 A4 00 A9 00 AD 00 B6 00 B7 00 BF 00 C5 00 CF 00 D4 00 D7 00 EA 00 F2 00 03 01 07 01 08 01 0D 01 10 01 11 01 13 01 17 01 19 01 23 01 2A 01 6A 01 FF FF
Invigoration array
0x27436-0x274CF
- "Invigoration" Equip Monster IDs array
07 00 08 00 0E 00 1B 00 27 00 2C 00 39 00 45 00 46 00 48 00 49 00 4A 00 52 00 60 00 62 00 64 00 65 00 66 00 67 00 69 00 6B 00 76 00 79 00 7A 00 81 00 84 00 85 00 86 00 88 00 8D 00 91 00 92 00 95 00 97 00 9C 00 A1 00 A6 00 A7 00 AA 00 AC 00 AD 00 AF 00 B7 00 BE 00 CC 00 D1 00 D2 00 D5 00 D6 00 E0 00 E2 00 E3 00 E4 00 EC 00 ED 00 EF 00 F1 00 F3 00 00 01 01 01 04 01 06 01 07 01 10 01 12 01 13 01 14 01 16 01 1A 01 20 01 22 01 5E 01 61 01 62 01 69 01 6C 01 FF FF
Machine Conversion array
0x274D0-0x274EF
- "Machine Conversion" Equip Monster IDs array
0B 00 0C 00 58 00 7B 00 9F 00 A0 00 CB 00 DF 00 E7 00 12 01 1A 01 1D 01 20 01 28 01 62 01 FF FF
Raise Body Heat array
0x274F0-0x27575
- "Raise Body Heat" Equip Monster IDs array
07 00 0A 00 0C 00 0E 00 1E 00 1F 00 2D 00 2E 00 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 3A 00 42 00 43 00 4B 00 4C 00 4E 00 4F 00 50 00 56 00 64 00 68 00 73 00 7B 00 8D 00 95 00 96 00 97 00 99 00 9C 00 9E 00 AA 00 AF 00 BB 00 C2 00 C9 00 CB 00 CD 00 D0 00 D1 00 D7 00 D9 00 E2 00 F1 00 F3 00 06 01 07 01 0F 01 12 01 14 01 15 01 1C 01 1D 01 20 01 22 01 28 01 5E 01 61 01 62 01 64 01 FF FF
Follow Wind array
0x27576-0x275FF
- "Follow Wind" Equip Monster IDs array
03 00 04 00 05 00 06 00 09 00 0C 00 17 00 1E 00 26 00 2B 00 33 00 34 00 38 00 3D 00 3E 00 42 00 52 00 53 00 55 00 56 00 64 00 69 00 6E 00 6F 00 70 00 74 00 7C 00 7F 00 89 00 8F 00 99 00 9A 00 A2 00 A7 00 B4 00 B6 00 B9 00 BC 00 C5 00 C7 00 C9 00 CA 00 CB 00 CE 00 CF 00 D0 00 D1 00 D6 00 D7 00 DD 00 E4 00 FB 00 FC 00 FD 00 03 01 07 01 0B 01 0C 01 0F 01 13 01 16 01 25 01 27 01 29 01 2B 01 60 01 68 01 6A 01 FF FF
Power of Kaishin array
0x27600-0x2764D
- "Power of Kaishin" Equip Monster IDs array
2C 00 3B 00 45 00 46 00 48 00 4B 00 58 00 82 00 86 00 8B 00 8C 00 95 00 97 00 AA 00 B0 00 C0 00 C1 00 C2 00 C3 00 C6 00 CC 00 CD 00 D2 00 D4 00 DE 00 E2 00 E5 00 F2 00 F6 00 F8 00 FA 00 01 01 08 01 0D 01 20 01 23 01 60 01 68 01 FF FF
Bank A
Graphics 5
0x28060
- Duel area
A:5163
ROMA:5163 F5 push af ROMA:5164 C5 push bc ROMA:5165 D5 push de ROMA:5166 E5 push hl ROMA:5167 11 00 88 ld de,8800 ROMA:516A 21 AA 51 ld hl,51AA ROMA:516D 06 11 ld b,11 ROMA:516F 0E 10 ld c,10 ROMA:5171 2A ldi a,(hl) ROMA:5172 12 ld (de),a ;Copy A:51AA-A:51BA to v8800-8810 (0xFFs) ROMA:5173 13 inc de ROMA:5174 0D dec c ROMA:5175 20 FA jr nz,5171 ROMA:5177 05 dec b ROMA:5178 20 F5 jr nz,516F ROMA:517A 21 00 8D ld hl,8D00 ROMA:517D 3E FF ld a,FF ROMA:517F 06 10 ld b,10 ROMA:5181 0E 10 ld c,10 ROMA:5183 22 ldi (hl),a ROMA:5184 0D dec c ROMA:5185 20 FC jr nz,5183 ROMA:5187 05 dec b ROMA:5188 20 F7 jr nz,5181 ROMA:518A 11 00 98 ld de,9800 ROMA:518D 21 BA 52 ld hl,52BA ROMA:5190 06 12 ld b,12 ROMA:5192 0E 14 ld c,14 ROMA:5194 2A ldi a,(hl) ROMA:5195 12 ld (de),a ROMA:5196 13 inc de ROMA:5197 0D dec c ROMA:5198 20 FA jr nz,5194 ROMA:519A E5 push hl ROMA:519B 21 0C 00 ld hl,000C ROMA:519E 19 add hl,de ROMA:519F 54 ld d,h ROMA:51A0 5D ld e,l ROMA:51A1 E1 pop hl ROMA:51A2 05 dec b ROMA:51A3 20 ED jr nz,5192 ROMA:51A5 E1 pop hl ROMA:51A6 D1 pop de ROMA:51A7 C1 pop bc ROMA:51A8 F1 pop af ROMA:51A9 C9 ret
A:51AA (Array of 16 0xFFs that are copied to v8800)
An array of 0xFFs.
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Graphics 6
0x294B0
- Title Screen0x2A810
- Campaign map screens
Bank B
Graphics 7
0x2C050
- KONAMI / KCE Shinjuku / Yu-Gi-Oh screens0x2D770
- Campaign opponents pictures
Bank C
Graphics 8
0x30060
- Stage 3 / 4 / 5 Campaign opponents pictures
Bank D
Card drop
Card drop - main routine
ROMD:400C F5 push af ROMD:400D C5 push bc ROMD:400E CD F7 23 call 23F7 ROMD:4011 FE 00 cp a,00 ROMD:4013 28 0F jr z,4024 ROMD:4015 CD 27 40 call 4027 ;Card drop - random card ROMD:4018 CF rst 08 11 01 ROMD:401B CF rst 08 41 01 ROMD:401E CF rst 08 29 02 ROMD:4021 CD 8E 6E call 6E8E ROMD:4024 C1 pop bc ROMD:4025 F1 pop af ROMD:4026 C9 ret
Card drop - random card
ROMD:4027 F5 push af ROMD:4028 D5 push de ROMD:4029 E5 push hl ROMD:402A 3E 00 ld a,00 ROMD:402C EA 9D CE ld (CE9D),a ROMD:402F 3E FF ld a,FF ROMD:4031 EA 9E CE ld (CE9E),a ;PRN[0;255] ROMD:4034 CD 12 21 call 2112 ;Pseudo-Random Number ROMD:4037 FA 9F CE ld a,(CE9F) ROMD:403A 5F ld e,a ROMD:403B 3E 00 ld a,00 ROMD:403D EA 9D CE ld (CE9D),a ROMD:4040 3E 07 ld a,07 ROMD:4042 EA 9E CE ld (CE9E),a ;PRN[0;7] ROMD:4045 CD 12 21 call 2112 ;Pseudo-Random Number ROMD:4048 FA 9F CE ld a,(CE9F) ROMD:404B 57 ld d,a ;de = [0;2047] ROMD:404C 06 00 ld b,00 ROMD:404E CF rst 08 19 02 ROMD:4051 4F ld c,a ROMD:4052 CB 21 sla c ROMD:4054 21 72 40 ld hl,4072 ROMD:4057 09 add hl,bc ROMD:4058 2A ldi a,(hl) ROMD:4059 66 ld h,(hl) ROMD:405A 6F ld l,a ;hl = pointer to card pool ROMD:405B 01 00 00 ld bc,0000 ;card_id = 0 ROMD:405E C5 push bc ROMD:405F 2A ldi a,(hl) ROMD:4060 4F ld c,a ROMD:4061 2A ldi a,(hl) ROMD:4062 47 ld b,a ;bc = card drop rate ROMD:4063 CD 0F 1D call 1D0F ROMD:4066 C1 pop bc ;bc = card_id ROMD:4067 FE 00 cp a,00 ROMD:4069 28 03 jr z,406E ROMD:406B 03 inc bc ;bc ++ ROMD:406C 18 F0 jr 405E ROMD:406E E1 pop hl ROMD:406F D1 pop de ROMD:4070 F1 pop af ROMD:4071 C9 ret
Card drop - card pools pointers
ROMD:4072 94 40 - Weevil Underwood 6E 43 - Mai Valentine 48 46 - Rex Raptor 22 49 - Mako Tsunami FC 4B - Yami Yugi D6 4E - Yugi Muto B0 51 - Joey Wheeler 8A 54 - Seto Kaiba 64 57 - Mokuba Kaiba 3E 5A - Tristan Taylor 18 5D - Ryou Bakura F2 5F - Puppeteer of Doom CC 62 - PaniK A6 65 - Bandit Keith 80 68 - Maximillion Pegasus 5A 6B - Simon Muran
Card drop - card pools
0x34094-0x36E33
- Card drop pools, cumulative drop rates from 0 to 2048.
Card Password check
0x37151-0x37172
- Card Password check
ROMD:7151 E5 push hl ROMD:7152 06 00 ld b,00 ROMD:7154 4F ld c,a ROMD:7155 CB 21 sla c ROMD:7157 21 73 71 ld hl,7173 ROMD:715A 09 add hl,bc ROMD:715B 2A ldi a,(hl) ROMD:715C 56 ld d,(hl) ROMD:715D 5F ld e,a ROMD:715E 21 A1 CF ld hl,CFA1 ROMD:7161 0E 08 ld c,08 ROMD:7163 1A ld a,(de) // Load next character from valid Password ROMD:7164 BE cp (hl) // Compare with next character from submitted Password ROMD:7165 28 02 jr z,7169 // If it matches, jump to D:7169 ROMD:7167 06 01 ld b,01 // If the Password is invalid, set b to 1 ROMD:7169 13 inc de ROMD:716A 23 inc hl ROMD:716B 0D dec c ROMD:716C 20 F5 jr nz,7163 // Loop until the 8 characters have been checked ROMD:716E 78 ld a,b ROMD:716F E1 pop hl ROMD:7170 D1 pop de ROMD:7171 C1 pop bc ROMD:7172 C9 ret
Card password pointers
0x37173-0x37184
- Card password pointers
85 71 8D 71 95 71 9D 71 A5 71 AD 71 B5 71 BD 71 C5 71
Cards Passwords
0x37185
- Cards Passwords
4C 42 56 48 42 99 43 00 - Fairy's Gift (タカハシカズキ) 60 5B 9C 55 A3 57 67 00 - Flying Penguin (ヤマダノブヒロ) 48 5F 5D 63 47 50 48 00 - Megasonic Eye (シモムラサトシ) 4D 9C 4C 44 32 00 00 00 - Takriminos (チダタクリ) 56 48 5F 50 42 51 46 00 - Kanan the Swordmis (ハシモトカナコ) 27 3E 48 62 48 57 47 00 - Yaranzo (ヘイシヨシヒサ) 43 4C 3F 40 42 99 5C 00 - Stuffed Animal (キタウエカズミ) 50 32 48 5B 42 99 57 46 - Seiyaryu (トリシマカズヒコ) 4C 42 56 48 50 48 5B 47 - Three-legged Zombi (タカハシトシマサ)
Bank E
Graphics 8
0x382A0
- I don't know what this is (some weird shapes, and a worn out mat ?
Bank 10-2D?
Graphics 9
0x40300
- Cards illustrations ?
Bank 3B
Fusion data
0xEC155-0xEF3EE
- Fusion data
Bank 3C
Card lores text
0xF036A - 0xF368D
- Card lores text
Bank 3E
3E:407A (Called by Button Password 3)
0xF807A-0xF80C0
- Stores value from array at3E:4660
to(C863)-(C864)
,(C8A4)
,(C8A4)
, and(C902)-(C905)
RO3E:407A E5 push hl RO3E:407B C5 push bc RO3E:407C D5 push de RO3E:407D FE 81 cp a,81 RO3E:407F 30 40 jr nc,40C1 RO3E:4081 11 24 C7 ld de,C724 RO3E:4084 CD 8D 40 call 408D RO3E:4087 21 00 C7 ld hl,C700 RO3E:408A C3 CC 40 jp 40CC RO3E:408D 87 add a RO3E:408E 87 add a RO3E:408F 21 60 46 ld hl,4660 // array at 3E:4660 RO3E:4092 06 00 ld b,00 RO3E:4094 4F ld c,a RO3E:4095 09 add hl,bc // Stores value from array at 3E:4660 to... RO3E:4096 01 02 C9 ld bc,C902 RO3E:4099 2A ldi a,(hl) RO3E:409A 12 ld (de),a // (C863) RO3E:409B 02 ld (bc),a // (C902) RO3E:409C 03 inc bc RO3E:409D E5 push hl RO3E:409E 21 40 00 ld hl,0040 RO3E:40A1 19 add hl,de RO3E:40A2 E5 push hl RO3E:40A3 D1 pop de RO3E:40A4 E1 pop hl RO3E:40A5 2A ldi a,(hl) RO3E:40A6 12 ld (de),a // (C864) RO3E:40A7 02 ld (bc),a // (C903) RO3E:40A8 03 inc bc RO3E:40A9 E5 push hl RO3E:40AA 21 40 00 ld hl,0040 RO3E:40AD 19 add hl,de RO3E:40AE E5 push hl RO3E:40AF D1 pop de RO3E:40B0 E1 pop hl RO3E:40B1 2A ldi a,(hl) RO3E:40B2 12 ld (de),a // (C8A4) RO3E:40B3 02 ld (bc),a // (C904) RO3E:40B4 03 inc bc RO3E:40B5 E5 push hl RO3E:40B6 21 40 00 ld hl,0040 RO3E:40B9 19 add hl,de RO3E:40BA E5 push hl RO3E:40BB D1 pop de RO3E:40BC E1 pop hl RO3E:40BD 7E ld a,(hl) RO3E:40BE 12 ld (de),a // (C8E4) RO3E:40BF 02 ld (bc),a // (C905) RO3E:40C0 C9 ret
3E:40C1 (to document)
RO3E:40C1 E6 7F and a,7F RO3E:40C3 11 24 C8 ld de,C824 RO3E:40C6 CD 8D 40 call 408D RO3E:40C9 21 00 C8 ld hl,C800 RO3E:40CC 11 02 C9 ld de,C902 RO3E:40CF 16 80 ld d,80 RO3E:40D1 06 04 ld b,04 RO3E:40D3 3E 12 ld a,12 RO3E:40D5 4F ld c,a RO3E:40D6 7D ld a,l RO3E:40D7 E6 C0 and a,C0 RO3E:40D9 2E 21 ld l,21 RO3E:40DB B5 or l RO3E:40DC 6F ld l,a RO3E:40DD AF xor a RO3E:40DE 77 ld (hl),a RO3E:40DF 7D ld a,l RO3E:40E0 E6 C0 and a,C0 RO3E:40E2 2E 2F ld l,2F RO3E:40E4 B5 or l RO3E:40E5 6F ld l,a RO3E:40E6 AF xor a RO3E:40E7 77 ld (hl),a RO3E:40E8 7D ld a,l RO3E:40E9 E6 C0 and a,C0 RO3E:40EB 2E 2E ld l,2E RO3E:40ED B5 or l RO3E:40EE 6F ld l,a RO3E:40EF AF xor a RO3E:40F0 77 ld (hl),a RO3E:40F1 7D ld a,l RO3E:40F2 E6 C0 and a,C0 RO3E:40F4 2E 23 ld l,23 RO3E:40F6 B5 or l RO3E:40F7 6F ld l,a RO3E:40F8 72 ld (hl),d // (C823) = 0x80 RO3E:40F9 7D ld a,l RO3E:40FA E6 C0 and a,C0 RO3E:40FC 2E 35 ld l,35 RO3E:40FE B5 or l RO3E:40FF 6F ld l,a RO3E:4100 AF xor a RO3E:4101 77 ld (hl),a RO3E:4102 1A ld a,(de) RO3E:4103 13 inc de RO3E:4104 FE 80 cp a,80 RO3E:4106 30 02 jr nc,410A RO3E:4108 AF xor a RO3E:4109 E2 ld (ff00+c),a RO3E:410A C5 push bc RO3E:410B 01 40 00 ld bc,0040 RO3E:410E 09 add hl,bc RO3E:410F C1 pop bc RO3E:4110 79 ld a,c RO3E:4111 C6 05 add a,05 RO3E:4113 05 dec b RO3E:4114 20 BF jr nz,40D5 // Loop 4 times RO3E:4116 D1 pop de RO3E:4117 C1 pop bc RO3E:4118 E1 pop hl RO3E:4119 C9 ret
3E:411A (to document)
RO3E:411A FA 20 C9 ld a,(C920) RO3E:411D FE FF cp a,FF RO3E:411F 28 08 jr z,4129 // If((C920)==0xFF), jump to 3E:4129 RO3E:4121 CD 7A 40 call 407A RO3E:4124 3E FF ld a,FF RO3E:4126 EA 20 C9 ld (C920),a // (C920) = 0xFF RO3E:4129 21 0C C9 ld hl,C90C RO3E:412C 11 18 C9 ld de,C918 RO3E:412F 01 12 C9 ld bc,C912 RO3E:4132 7E ld a,(hl) RO3E:4133 12 ld (de),a RO3E:4134 0A ld a,(bc) RO3E:4135 22 ldi (hl),a RO3E:4136 03 inc bc RO3E:4137 13 inc de RO3E:4138 7E ld a,(hl) RO3E:4139 12 ld (de),a RO3E:413A 0A ld a,(bc) RO3E:413B 22 ldi (hl),a RO3E:413C 03 inc bc RO3E:413D 13 inc de RO3E:413E 7E ld a,(hl) RO3E:413F 12 ld (de),a RO3E:4140 0A ld a,(bc) RO3E:4141 22 ldi (hl),a RO3E:4142 03 inc bc RO3E:4143 13 inc de RO3E:4144 7E ld a,(hl) RO3E:4145 12 ld (de),a RO3E:4146 0A ld a,(bc) RO3E:4147 22 ldi (hl),a RO3E:4148 03 inc bc RO3E:4149 13 inc de RO3E:414A 7E ld a,(hl) RO3E:414B 12 ld (de),a RO3E:414C 0A ld a,(bc) RO3E:414D 22 ldi (hl),a RO3E:414E 03 inc bc RO3E:414F 13 inc de RO3E:4150 7E ld a,(hl) RO3E:4151 12 ld (de),a RO3E:4152 0A ld a,(bc) RO3E:4153 22 ldi (hl),a RO3E:4154 03 inc bc RO3E:4155 13 inc de RO3E:4156 AF xor a RO3E:4157 21 37 C8 ld hl,C837 RO3E:415A 77 ld (hl),a RO3E:415B C5 push bc RO3E:415C 01 40 00 ld bc,0040 RO3E:415F 09 add hl,bc RO3E:4160 C1 pop bc RO3E:4161 AF xor a RO3E:4162 77 ld (hl),a RO3E:4163 C5 push bc RO3E:4164 01 40 00 ld bc,0040 RO3E:4167 09 add hl,bc RO3E:4168 C1 pop bc RO3E:4169 AF xor a RO3E:416A 77 ld (hl),a RO3E:416B C5 push bc RO3E:416C 01 40 00 ld bc,0040 RO3E:416F 09 add hl,bc RO3E:4170 C1 pop bc RO3E:4171 AF xor a RO3E:4172 77 ld (hl),a RO3E:4173 F0 11 ld a,(ff00+11) RO3E:4175 EA 1E C9 ld (C91E),a RO3E:4178 F0 16 ld a,(ff00+16) RO3E:417A EA 1F C9 ld (C91F),a RO3E:417D AF xor a RO3E:417E EA 00 C9 ld (C900),a RO3E:4181 21 00 C8 ld hl,C800 RO3E:4184 3E 10 ld a,10 RO3E:4186 CD F2 41 call 41F2 RO3E:4189 21 0C C9 ld hl,C90C RO3E:418C 11 18 C9 ld de,C918 RO3E:418F 01 12 C9 ld bc,C912 RO3E:4192 7E ld a,(hl) RO3E:4193 02 ld (bc),a RO3E:4194 1A ld a,(de) RO3E:4195 22 ldi (hl),a RO3E:4196 03 inc bc RO3E:4197 13 inc de RO3E:4198 7E ld a,(hl) RO3E:4199 02 ld (bc),a RO3E:419A 1A ld a,(de) RO3E:419B 22 ldi (hl),a RO3E:419C 03 inc bc RO3E:419D 13 inc de RO3E:419E 7E ld a,(hl) RO3E:419F 02 ld (bc),a RO3E:41A0 1A ld a,(de) RO3E:41A1 22 ldi (hl),a RO3E:41A2 03 inc bc RO3E:41A3 13 inc de RO3E:41A4 7E ld a,(hl) RO3E:41A5 02 ld (bc),a RO3E:41A6 1A ld a,(de) RO3E:41A7 22 ldi (hl),a RO3E:41A8 03 inc bc RO3E:41A9 13 inc de RO3E:41AA 7E ld a,(hl) RO3E:41AB 02 ld (bc),a RO3E:41AC 1A ld a,(de) RO3E:41AD 22 ldi (hl),a RO3E:41AE 03 inc bc RO3E:41AF 13 inc de RO3E:41B0 7E ld a,(hl) RO3E:41B1 02 ld (bc),a RO3E:41B2 1A ld a,(de) RO3E:41B3 22 ldi (hl),a RO3E:41B4 03 inc bc RO3E:41B5 13 inc de RO3E:41B6 21 37 C8 ld hl,C837 RO3E:41B9 11 37 C7 ld de,C737 RO3E:41BC 0E 04 ld c,04 RO3E:41BE 7E ld a,(hl) RO3E:41BF 12 ld (de),a RO3E:41C0 C5 push bc RO3E:41C1 01 40 00 ld bc,0040 RO3E:41C4 09 add hl,bc RO3E:41C5 C1 pop bc RO3E:41C6 E5 push hl RO3E:41C7 21 40 00 ld hl,0040 RO3E:41CA 19 add hl,de RO3E:41CB E5 push hl RO3E:41CC D1 pop de RO3E:41CD E1 pop hl RO3E:41CE 0D dec c RO3E:41CF 20 ED jr nz,41BE // Loop 4 times RO3E:41D1 FA 1E C9 ld a,(C91E) RO3E:41D4 E0 11 ld (ff00+11),a RO3E:41D6 FA 1F C9 ld a,(C91F) RO3E:41D9 E0 16 ld (ff00+16),a RO3E:41DB AF xor a RO3E:41DC EA 00 C9 ld (C900),a RO3E:41DF 21 00 C7 ld hl,C700 RO3E:41E2 3E 10 ld a,10 RO3E:41E4 CD F2 41 call 41F2 RO3E:41E7 FA 0A C9 ld a,(C90A) RO3E:41EA E0 24 ld (ff00+24),a RO3E:41EC FA 0B C9 ld a,(C90B) RO3E:41EF E0 25 ld (ff00+25),a RO3E:41F1 C9 ret
3E:41F2 (to document)
RO3E:41F2 EA 01 C9 ld (C901),a RO3E:41F5 7D ld a,l RO3E:41F6 E6 C0 and a,C0 RO3E:41F8 2E 24 ld l,24 RO3E:41FA B5 or l RO3E:41FB 6F ld l,a RO3E:41FC 7E ld a,(hl) RO3E:41FD 0E 80 ld c,80 RO3E:41FF B9 cp c RO3E:4200 30 34 jr nc,4236 RO3E:4202 71 ld (hl),c RO3E:4203 87 add a RO3E:4204 C6 F0 add a,F0 RO3E:4206 5F ld e,a RO3E:4207 3E 00 ld a,00 RO3E:4209 CE 46 adc a,46 RO3E:420B 57 ld d,a RO3E:420C 7D ld a,l RO3E:420D E6 C0 and a,C0 RO3E:420F 2E 22 ld l,22 RO3E:4211 B5 or l RO3E:4212 6F ld l,a RO3E:4213 1A ld a,(de) RO3E:4214 77 ld (hl),a // (C822) = a RO3E:4215 13 inc de RO3E:4216 2C inc l RO3E:4217 1A ld a,(de) RO3E:4218 77 ld (hl),a RO3E:4219 F5 push af RO3E:421A 7D ld a,l RO3E:421B E6 C0 and a,C0 RO3E:421D 2E 20 ld l,20 RO3E:421F B5 or l RO3E:4220 6F ld l,a RO3E:4221 F1 pop af RO3E:4222 36 1F ld (hl),1F // (C820) = 0x1F RO3E:4224 7D ld a,l RO3E:4225 E6 C0 and a,C0 RO3E:4227 2E 2F ld l,2F RO3E:4229 B5 or l RO3E:422A 6F ld l,a RO3E:422B AF xor a RO3E:422C 77 ld (hl),a RO3E:422D 7D ld a,l RO3E:422E E6 C0 and a,C0 RO3E:4230 2E 21 ld l,21 RO3E:4232 B5 or l RO3E:4233 6F ld l,a RO3E:4234 AF xor a RO3E:4235 77 ld (hl),a RO3E:4236 7D ld a,l RO3E:4237 E6 C0 and a,C0 RO3E:4239 2E 23 ld l,23 RO3E:423B B5 or l RO3E:423C 6F ld l,a RO3E:423D 7E ld a,(hl) RO3E:423E B9 cp c RO3E:423F 30 37 jr nc,4278 RO3E:4241 7D ld a,l RO3E:4242 E6 C0 and a,C0 RO3E:4244 2E 2F ld l,2F RO3E:4246 B5 or l RO3E:4247 6F ld l,a RO3E:4248 7E ld a,(hl) RO3E:4249 F5 push af RO3E:424A 7D ld a,l RO3E:424B E6 C0 and a,C0 RO3E:424D 2E 21 ld l,21 RO3E:424F B5 or l RO3E:4250 6F ld l,a RO3E:4251 F1 pop af RO3E:4252 96 sub (hl) RO3E:4253 38 0D jr c,4262 RO3E:4255 F5 push af RO3E:4256 7D ld a,l RO3E:4257 E6 C0 and a,C0 RO3E:4259 2E 2F ld l,2F RO3E:425B B5 or l RO3E:425C 6F ld l,a RO3E:425D F1 pop af RO3E:425E 77 ld (hl),a RO3E:425F CD 88 44 call 4488 RO3E:4262 7D ld a,l RO3E:4263 E6 C0 and a,C0 RO3E:4265 2E 2F ld l,2F RO3E:4267 B5 or l RO3E:4268 6F ld l,a RO3E:4269 FA 0C C9 ld a,(C90C) RO3E:426C 86 add (hl) RO3E:426D 77 ld (hl),a RO3E:426E 7D ld a,l RO3E:426F E6 C0 and a,C0 RO3E:4271 2E 37 ld l,37 RO3E:4273 B5 or l RO3E:4274 6F ld l,a RO3E:4275 3E FF ld a,FF RO3E:4277 77 ld (hl),a RO3E:4278 FA 00 C9 ld a,(C900) RO3E:427B 3C inc a RO3E:427C EA 00 C9 ld (C900),a RO3E:427F C5 push bc RO3E:4280 01 40 00 ld bc,0040 RO3E:4283 09 add hl,bc RO3E:4284 C1 pop bc RO3E:4285 FA 01 C9 ld a,(C901) RO3E:4288 C6 05 add a,05 RO3E:428A FE 24 cp a,24 RO3E:428C 30 03 jr nc,4291 RO3E:428E C3 F2 41 jp 41F2 RO3E:4291 FA 08 C9 ld a,(C908) RO3E:4294 3C inc a RO3E:4295 EA 08 C9 ld (C908),a RO3E:4298 E6 1F and a,1F RO3E:429A 5F ld e,a RO3E:429B FA 0E C9 ld a,(C90E) RO3E:429E 47 ld b,a RO3E:429F E6 70 and a,70 RO3E:42A1 4F ld c,a RO3E:42A2 CB 31 swap c RO3E:42A4 B1 or c RO3E:42A5 EA 0A C9 ld (C90A),a RO3E:42A8 1D dec e RO3E:42A9 20 13 jr nz,42BE RO3E:42AB FA 10 C9 ld a,(C910) RO3E:42AE 80 add b RO3E:42AF 4F ld c,a RO3E:42B0 A8 xor b RO3E:42B1 07 rlca RO3E:42B2 30 06 jr nc,42BA RO3E:42B4 79 ld a,c RO3E:42B5 07 rlca RO3E:42B6 07 rlca RO3E:42B7 9F sbc a RO3E:42B8 2F cpl RO3E:42B9 4F ld c,a RO3E:42BA 79 ld a,c RO3E:42BB EA 0E C9 ld (C90E),a RO3E:42BE FA 0F C9 ld a,(C90F) RO3E:42C1 4F ld c,a RO3E:42C2 FA 0E C9 ld a,(C90E) RO3E:42C5 A7 and a RO3E:42C6 20 02 jr nz,42CA RO3E:42C8 0E 00 ld c,00 RO3E:42CA 79 ld a,c RO3E:42CB EA 0B C9 ld (C90B),a RO3E:42CE C9 ret
3E:4660 (array for (C863) to (C864), (C8A4), (C8E4), and (C902) to (C905))
RO3E:4660 00 01 02 03 04 05 06 07 - Title Screen 08 09 0A 0B 0C 0D 0E 0F - Character speech 10 11 12 13 14 15 16 17 18 19 1A 1B - Campaign, Duel Records 1C 1D 1E 1F - Password Screen 20 21 22 23 24 25 26 27 - Pre-Duel screen 28 29 2A 2B 2C 2D 2E 2F - Tea speech 30 31 32 33 - Duel win 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 80 80 80 80 44 45 80 80 80 46 80 80 80 47 80 80 - Duel screen 80 48 80 80 49 80 80 80 4A 80 80 80 4B 80 80 80 - Card trunk 80 4C 80 80 - Card trunk, Deck list, Card display 80 4D 80 80 - Pre-Duel screen 80 4E 80 80 - Duel Screen 80 80 80 4F 50 80 80 80 - Button Password #3 51 80 80 80 52 80 80 80 53 54 80 80 80 80 80 55 - Button Password #2 (Wipe out save file) 80 80 80 56 57 80 80 58
Sound
0xF86F0 - 0xF8BFF
- Sound track
Bank 3F
3F:404E (to document)
RO3F:404E F5 push af RO3F:404F C5 push bc RO3F:4050 D5 push de RO3F:4051 E5 push hl RO3F:4052 FE 00 cp a,00 RO3F:4054 20 70 jr nz,40C6 RO3F:4056 3E 00 ld a,00 RO3F:4058 E0 47 ld (ff00+47),a RO3F:405A 21 40 FF ld hl,FF40 RO3F:405D CB FE set 7,(hl) RO3F:405F 21 21 44 ld hl,4421 RO3F:4062 CD 14 41 call 4114 RO3F:4065 1E 00 ld e,00 RO3F:4067 F0 44 ld a,(ff00+44) RO3F:4069 FE 00 cp a,00 RO3F:406B 20 FA jr nz,4067 RO3F:406D F0 44 ld a,(ff00+44) RO3F:406F FE 90 cp a,90 RO3F:4071 38 FA jr c,406D RO3F:4073 16 0A ld d,0A RO3F:4075 3E 20 ld a,20 RO3F:4077 E0 00 ld (ff00+00),a RO3F:4079 F0 00 ld a,(ff00+00) RO3F:407B F0 00 ld a,(ff00+00) RO3F:407D 3E 10 ld a,10 RO3F:407F E0 00 ld (ff00+00),a RO3F:4081 F0 00 ld a,(ff00+00) RO3F:4083 F0 00 ld a,(ff00+00) RO3F:4085 F0 00 ld a,(ff00+00) RO3F:4087 F0 00 ld a,(ff00+00) RO3F:4089 F0 00 ld a,(ff00+00) RO3F:408B F0 00 ld a,(ff00+00) RO3F:408D 3E 30 ld a,30 RO3F:408F E0 00 ld (ff00+00),a RO3F:4091 3E 30 ld a,30 RO3F:4093 E0 00 ld (ff00+00),a RO3F:4095 3E 30 ld a,30 RO3F:4097 E0 00 ld (ff00+00),a RO3F:4099 3E 30 ld a,30 RO3F:409B E0 00 ld (ff00+00),a RO3F:409D F0 00 ld a,(ff00+00) RO3F:409F FE FE cp a,FE RO3F:40A1 20 02 jr nz,40A5 RO3F:40A3 1E 01 ld e,01 RO3F:40A5 15 dec d RO3F:40A6 20 CD jr nz,4075 RO3F:40A8 21 31 44 ld hl,4431 RO3F:40AB CD 14 41 call 4114 RO3F:40AE 16 00 ld d,00 RO3F:40B0 06 00 ld b,00 RO3F:40B2 CB 23 sla e RO3F:40B4 0E 00 ld c,00 RO3F:40B6 F0 DD ld a,(ff00+DD) RO3F:40B8 FE FF cp a,FF RO3F:40BA 20 02 jr nz,40BE RO3F:40BC 0E 01 ld c,01 RO3F:40BE 21 CB 40 ld hl,40CB RO3F:40C1 19 add hl,de RO3F:40C2 09 add hl,bc // hl = 0x40CB + de + bc RO3F:40C3 7E ld a,(hl) // Load value from the array at 3F:40CB RO3F:40C4 E0 DE ld (ff00+DE),a RO3F:40C6 E1 pop hl RO3F:40C7 D1 pop de RO3F:40C8 C1 pop bc RO3F:40C9 F1 pop af RO3F:40CA C9 ret
Gaming consoles array
RO3F:40CB 00 - Game Boy Color 01 02 - Game Boy 03 - Super Game Boy 2
3F:4114 (to document)
RO3F:4114 F5 push af RO3F:4115 C5 push bc RO3F:4116 D5 push de RO3F:4117 F0 44 ld a,(ff00+44) RO3F:4119 FE 90 cp a,90 RO3F:411B 38 FA jr c,4117 RO3F:411D 3E 30 ld a,30 RO3F:411F E0 00 ld (ff00+00),a RO3F:4121 3E 00 ld a,00 RO3F:4123 E0 00 ld (ff00+00),a RO3F:4125 3E 30 ld a,30 RO3F:4127 E0 00 ld (ff00+00),a RO3F:4129 16 10 ld d,10 RO3F:412B 2A ldi a,(hl) RO3F:412C 47 ld b,a RO3F:412D 1E 08 ld e,08 RO3F:412F CB 38 srl b RO3F:4131 38 0A jr c,413D RO3F:4133 3E 20 ld a,20 RO3F:4135 E0 00 ld (ff00+00),a RO3F:4137 3E 30 ld a,30 RO3F:4139 E0 00 ld (ff00+00),a RO3F:413B 18 08 jr 4145 RO3F:413D 3E 10 ld a,10 RO3F:413F E0 00 ld (ff00+00),a RO3F:4141 3E 30 ld a,30 RO3F:4143 E0 00 ld (ff00+00),a RO3F:4145 1D dec e RO3F:4146 20 E7 jr nz,412F RO3F:4148 15 dec d RO3F:4149 20 E0 jr nz,412B RO3F:414B 3E 20 ld a,20 RO3F:414D E0 00 ld (ff00+00),a RO3F:414F 3E 30 ld a,30 RO3F:4151 E0 00 ld (ff00+00),a RO3F:4153 CD 5A 41 call 415A RO3F:4156 D1 pop de RO3F:4157 C1 pop bc RO3F:4158 F1 pop af RO3F:4159 C9 ret
Graphics 10
0xFCDA0
- Millenium tablet (Stage 3 / 4 / 5 opponents background)
Internal Data for Yu-Gi-Oh! Duel Monsters
| |
---|---|