Difference between revisions of "Yu-Gi-Oh! Duel Monsters:ROM map"
From Data Crystal
Dinoguy1000 (talk | contribs) (document fusion data location (needs detail added)) |
Dinoguy1000 (talk | contribs) (→Graphics 1: correct offsets, document exact tiles/sprites here) |
||
Line 1,306: | Line 1,306: | ||
===Graphics 1=== | ===Graphics 1=== | ||
− | * <code> | + | * <code>0x630B-0x63CA</code> - Menu cursors (star, left/right arrows) |
+ | * <code>0x6675-0x6734</code> - Menu cursors (plain down arrow, left/right arrows (repeated)) | ||
+ | * <code>0x68F4-0x69B3</code> - Menu cursors (small right arrow x 4, left/right arrows (repeated)) | ||
+ | * <code>0x6AED-0x6BAC</code> - Menu cursors (small right arrow x 4 (repeated), left/right arrows (repeated)) | ||
+ | * <code>0x6CE6-0x6DA5</code> - Menu cursors (small right arrow (repeated), 3 blank tiles, left/right arrows (repeated)) | ||
==Bank 2== | ==Bank 2== |
Revision as of 06:06, 4 January 2019
The following article is a ROM map for Yu-Gi-Oh! Duel Monsters.
Contents
- 1 Bank 0
- 1.1 rst
- 1.2 ROM start
- 1.3 Joypad input
- 1.4 Object Attribute Memory
- 1.5 0:045D ((CAAC) = 0, (CAA9) = 1)
- 1.6 0:0DE3 (set (CAAB) to accumulator, and (CAAA) to 0)
- 1.7 0:0E01 (pointers to ?)
- 1.8 0:0F2F ((CAAB) => (CAAC), (CAAB) = 0)
- 1.9 0:0F74 (call 0:177B)
- 1.10 0:0F7A (call 0:168F, 0:175A)
- 1.11 0:0FCE (to document)
- 1.12 rst 08 instructions
- 1.13 0:1071 (to document)
- 1.14 0:1090 (to document)
- 1.15 0:109F (to document)
- 1.16 0:123C (to document)
- 1.17 0:1347
- 1.18 0:135E
- 1.19 0:1391 (daa)
- 1.20 0:13BB
- 1.21 Checks input at Title Screen for password
- 1.22 0:1705 (to document)
- 1.23 0:175A (to document)
- 1.24 0:177B (to document)
- 1.25 Check if(card_id == 365)
- 1.26 Check if is equal
- 1.27 0:1D0F
- 1.28 PRNG
- 1.29 Pseudo-Random Number
- 1.30 0:23F7
- 1.31 0:265B
- 1.32 Starter deck routine
- 1.33 0:29F1 (to document)
- 1.34 0:29F8 (pop registers, ret)
- 1.35 0:2B26 (to document, called by Password #3))
- 1.36 0:2B7E (to document))
- 2 Bank 1
- 3 Bank 2
- 4 Bank 3
- 4.1 3:410E (set (CAD1) to accumulator)
- 4.2 3:4112 (set (CAD1) to 1)
- 4.3 3:411A (set (CAD1) to 2)
- 4.4 3:4122 (set (CAD1) to 3)
- 4.5 3:412A (set (CAD1) to 4)
- 4.6 3:4132 (set (CAD1) to 5)
- 4.7 3:413A (set (CAD1) to 6)
- 4.8 Player's Deck handling
- 4.9 CPU's deck handling
- 4.10 Button Password check
- 4.11 3:6522 (Button Password check array)
- 4.12 3:652E (to document)
- 4.13 3:6568 (to document)
- 4.14 Loads requested Menu
- 4.15 Button Password - Wipe out save file
- 4.16 Compares input with Button Password
- 4.17 Button Passwords
- 4.18 Increment Menu ID
- 4.19 Button Password cursor
- 4.20 3:66E9 (to document)
- 4.21 Pointer to appropriate Menu
- 4.22 Menus pointers
- 5 Bank 4
- 6 Bank 5
- 7 Bank 6
- 8 Bank 8
- 9 Bank 9
- 9.1 9:6B9F
- 9.2 Equip Monster IDs arrays
- 9.2.1 Equip Monster IDs pointers array
- 9.2.2 Legendary Sword array
- 9.2.3 Sword of Ruin array
- 9.2.4 Dark Energy array
- 9.2.5 Axe of Despair array
- 9.2.6 Lazer Cannon Armor array
- 9.2.7 Insect Armor with array
- 9.2.8 Elf's Light array
- 9.2.9 Beast Fangs array
- 9.2.10 Steel Shell array
- 9.2.11 Vile Germs array
- 9.2.12 Black Pendant array
- 9.2.13 Silver Bow & Arrow array
- 9.2.14 Horn of Light array
- 9.2.15 Horn of the Unicor array
- 9.2.16 Dragon Treasure array
- 9.2.17 Electro-whip array
- 9.2.18 Cyber Shield array
- 9.2.19 Mystical Moon array
- 9.2.20 Malevolent Nuzzler array
- 9.2.21 Violet Crystal array
- 9.2.22 Book of Secret Art array
- 9.2.23 Invigoration array
- 9.2.24 Machine Conversion array
- 9.2.25 Raise Body Heat array
- 9.2.26 Follow Wind array
- 9.2.27 Power of Kaishin array
- 10 Bank A
- 11 Bank B
- 12 Bank C
- 13 Bank D
- 14 Bank E
- 15 Bank 10-2D?
- 16 Bank 3B
- 17 Bank 3C
- 18 Bank 3E
- 19 Bank 3F
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
ROM0:015A 05 dec b ROM0:015B 04 inc b ROM0:015C 3E 00 ld a,00 ROM0:015E CF rst 08
ROM0:015F 03 inc bc ROM0:0160 3F ccf ROM0:0161 CF rst 08
ROM0:0162 03 inc bc ROM0:0163 3E CD ld a,CD ROM0:0165 EA 14 CD ld (CD14),a ROM0:0168 96 sub (hl) ROM0:0169 03 inc bc 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
ROM0:0173 03 inc bc ROM0:0174 3F ccf ROM0:0175 CF rst 08
ROM0:0176 49 ld c,c ROM0:0177 01 3E 04 ld bc,043E ROM0:017A CF rst 08
ROM0:017B 03 inc bc ROM0:017C 3F ccf ROM0:017D CF rst 08
ROM0:017E 4B ld c,e ROM0:017F 01 3E 06 ld bc,063E 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
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) ROM0:1051 5F ld e,a ROM0:1052 03 inc bc ROM0:1053 16 40 ld d,40 ROM0:1055 0A ld a,(bc) ROM0:1056 03 inc bc ROM0:1057 F3 di ROM0:1058 EA 00 30 ld (3000),a 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
0:1071 (to document)
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 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: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
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
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
0:29F8 (pop registers, ret)
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
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
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) -
0x8CA0 - 0xB051
- CPU opponents illustrations + 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
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 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
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
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) ROM3:662C FE 00 cp a,00 ROM3:662E 28 56 jr z,6686 ROM3:6630 7B ld a,e ROM3:6631 FE 00 cp a,00 ROM3:6633 20 17 jr nz,664C ROM3:6635 FA A6 CA ld a,(CAA6) ROM3:6638 FE 40 cp a,40 ROM3:663A 20 02 jr nz,663E ROM3:663C 1E 01 ld e,01 ROM3:663E FE 80 cp a,80 ROM3:6640 20 02 jr nz,6644 ROM3:6642 1E 08 ld e,08 ROM3:6644 FE 20 cp a,20 ROM3:6646 20 02 jr nz,664A ROM3:6648 1E 13 ld e,13 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 key 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
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
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
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
-
0x18060
- Duel HUD
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 array -
0x2420B-0x24380
- ? -
0x24381-0x2465C
- Cards original ATK array -
0x2465D-0x24938
- Cards original DEF array -
0x24939-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 -
0x294B0
- Title Screen -
0x2A810
- Campaign map screens
Bank B
Graphics 6
-
0x2C050
- KONAMI / KCE Shinjuku / Yu-Gi-Oh screens -
0x2D770
- Campaign opponents pictures
Bank C
Graphics 7
-
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 |
---|
ROM Map • RAM Map • Text Table • Notes • Tutorials |