Yu-Gi-Oh! Monster Capsule GB/ROM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
Line 107: Line 107:
  05 03 08
  05 03 08


===0:3B77 (Load soundtrack ?)====
===0:3B77 (Load soundtrack ?)===
  ROM0:3B77 F5              push af
  ROM0:3B77 F5              push af
  ROM0:3B78 C5              push bc
  ROM0:3B78 C5              push bc
Line 120: Line 120:
  ROM0:3B88 C1              pop  bc
  ROM0:3B88 C1              pop  bc
  ROM0:3B89 F1              pop  af
  ROM0:3B89 F1              pop  af
  ROM0:3B8A C9              ret
  ROM0:3B8A C9              ret


===0:3B8B===
===0:3B8B===

Revision as of 18:47, 19 March 2025

Chip tiny.png The following article is a ROM map for Yu-Gi-Oh! Monster Capsule GB.

Bank 0

0:02BA (related to sound?)

ROM0:02BA F0 40            ld   a,(ff00+40)
ROM0:02BC CB 7F            bit  7,a
ROM0:02BE C8               ret  z
ROM0:02BF C5               push bc
ROM0:02C0 D5               push de
ROM0:02C1 E5               push hl
ROM0:02C2 F0 9F            ld   a,(ff00+9F)
ROM0:02C4 CB 67            bit  4,a
ROM0:02C6 C4 9F 0D         call nz,0D9F
ROM0:02C9 CD B7 18         call 18B7
ROM0:02CC CD 62 1B         call 1B62
ROM0:02CF F0 9F            ld   a,(ff00+9F)
ROM0:02D1 F6 80            or   a,80
ROM0:02D3 E0 9F            ld   (ff00+9F),a
ROM0:02D5 76               halt 
ROM0:02D6 00               nop  
ROM0:02D7 F0 9F            ld   a,(ff00+9F)
ROM0:02D9 CB 7F            bit  7,a
ROM0:02DB 20 F8            jr   nz,02D5
ROM0:02DD E1               pop  hl
ROM0:02DE D1               pop  de
ROM0:02DF C1               pop  bc
ROM0:02E0 C9               ret  

Load intro

ROM0:2B4D 3E FF            ld   a,FF
ROM0:2B4F EA 01 C2         ld   (C201),a
ROM0:2B52 EA BD C2         ld   (C2BD),a
ROM0:2B55 3E 09            ld   a,00
ROM0:2B57 EA 00 C2         ld   (C200),a         ;Intro
ROM0:2B5A F0 96            ld   a,(ff00+96)
ROM0:2B5C F6 02            or   a,02
ROM0:2B5E E0 96            ld   (ff00+96),a
ROM0:2B60 CD 62 32         call 3262
ROM0:2B63 CD 46 0A         call 0A46

Load requested screen

ROM0:2C26 FA 00 C2         ld   a,(C200)         ;Screen ID
ROM0:2C29 4F               ld   c,a
ROM0:2C2A 87               add  a
ROM0:2C2B 81               add  c
ROM0:2C2C 21 92 2C         ld   hl,2C92
ROM0:2C2F 06 00            ld   b,00
ROM0:2C31 4F               ld   c,a
ROM0:2C32 09               add  hl,bc            ;hl = 0x2C92 + (Screen ID × 3)
ROM0:2C33 2A               ldi  a,(hl)
ROM0:2C34 4F               ld   c,a
ROM0:2C35 2A               ldi  a,(hl)
ROM0:2C36 47               ld   b,a
ROM0:2C37 2A               ldi  a,(hl)           ;Load pointer + bank
ROM0:2C38 CD ED 0A         call 0AED             ;Bank switch
ROM0:2C3B 69               ld   l,c
ROM0:2C3C 60               ld   h,b
ROM0:2C3D 01 42 2C         ld   bc,2C42
ROM0:2C40 C5               push bc
ROM0:2C41 E9               jp   hl               ;Jump to pointer
ROM0:2C42 CD BA 02         call 02BA
ROM0:2C45 CD 69 22         call 2269
ROM0:2C48 CD 2E 32         call 322E
ROM0:2C4B FA 01 C2         ld   a,(C201)
ROM0:2C4E FE FF            cp   a,FF
ROM0:2C50 28 D4            jr   z,2C26
ROM0:2C52 FA 01 C2         ld   a,(C201)
ROM0:2C55 EA 00 C2         ld   (C200),a
ROM0:2C58 3E FF            ld   a,FF
ROM0:2C5A EA 01 C2         ld   (C201),a
ROM0:2C5D F0 96            ld   a,(ff00+96)
ROM0:2C5F CB 7F            bit  7,a
ROM0:2C61 28 13            jr   z,2C76
ROM0:2C63 FA 00 C2         ld   a,(C200)
ROM0:2C66 FE 07            cp   a,07
ROM0:2C68 28 0C            jr   z,2C76
ROM0:2C6A FE 08            cp   a,08
ROM0:2C6C 28 08            jr   z,2C76
ROM0:2C6E FE 05            cp   a,05
ROM0:2C70 CC 89 2C         call z,2C89
ROM0:2C73 CD 58 0D         call 0D58
ROM0:2C76 CD 46 0A         call 0A46
ROM0:2C79 7F               ld   a,a
ROM0:2C7A 45               ld   b,l
ROM0:2C7B 03               inc  bc
ROM0:2C7C FA 00 C2         ld   a,(C200)
ROM0:2C7F B7               or   a
ROM0:2C80 C2 99 2B         jp   nz,2B99
ROM0:2C83 CD 58 0D         call 0D58
ROM0:2C86 C3 5A 2B         jp   2B5A
ROM0:2C89 3E 49            ld   a,49
ROM0:2C8B CD 8C 16         call 168C
ROM0:2C8E CD 42 16         call 1642
ROM0:2C91 C9               ret  

Screen pointers and banks

ROM0:2C92
B0 2C 00 - Intro
7B 40 18
F9 4B 18
AE 49 18
16 44 02
00 40 01
00 40 01
05 40 08
14 40 08
8C 51 03 - Sound test
05 03 08

0:3B77 (Load soundtrack ?)

ROM0:3B77 F5               push af
ROM0:3B78 C5               push bc
ROM0:3B79 47               ld   b,a              ;b = soundtrack_id
ROM0:3B7A F0 95            ld   a,(ff00+95)
ROM0:3B7C F5               push af
ROM0:3B7D CD FA 0A         call 0AFA
ROM0:3B80 78               ld   a,b
ROM0:3B81 CD 8B 3B         call 3B8B
ROM0:3B84 F1               pop  af
ROM0:3B85 CD 12 0B         call 0B12
ROM0:3B88 C1               pop  bc
ROM0:3B89 F1               pop  af
ROM0:3B8A C9               ret

0:3B8B

ROM0:3B8B F5               push af
ROM0:3B8C F0 94            ld   a,(ff00+94)
ROM0:3B8E EA 25 A7         ld   (A725),a
ROM0:3B91 F1               pop  af
ROM0:3B92 E5               push hl
ROM0:3B93 21 DC FF         ld   hl,FFDC
ROM0:3B96 CB CE            set  1,(hl)
ROM0:3B98 D5               push de
ROM0:3B99 C5               push bc
ROM0:3B9A F5               push af
ROM0:3B9B CD 1B 3C         call 3C1B
ROM0:3B9E FA 25 A7         ld   a,(A725)
ROM0:3BA1 E0 94            ld   (ff00+94),a
ROM0:3BA3 EA 00 20         ld   (2000),a
ROM0:3BA6 F1               pop  af
ROM0:3BA7 C1               pop  bc
ROM0:3BA8 D1               pop  de
ROM0:3BA9 21 DC FF         ld   hl,FFDC
ROM0:3BAC CB 8E            res  1,(hl)
ROM0:3BAE E1               pop  hl
ROM0:3BAF C9               ret  

Bank 3

Sound Test - load Sound Track

ROM3:5222 AF               xor  a                ;soundtrack_id = 0
ROM3:5223 CD 77 3B         call 3B77
ROM3:5226 CD BA 02         call 02BA
ROM3:5229 F0 88            ld   a,(ff00+88)      ;a = soundtrack_id
ROM3:522B CD 77 3B         call 3B77
ROM3:522E C9               ret

Sound Test - load Sound Effect

ROM3:522F F0 89            ld   a,(ff00+89)      ;a = sound_effect_id
ROM3:5231 CD 77 3B         call 3B77
ROM3:5234 C9               ret

Bank 18

Title screen

Checks button pressed

RO18:4AF5 5F               ld   e,a
RO18:4AF6 71               ld   (hl),c
RO18:4AF7 1A               ld   a,(de)
RO18:4AF8 7F               ld   a,a
RO18:4AF9 72               ld   (hl),d
RO18:4AFA EA 49 1A         ld   (1A49),a
RO18:4AFD 21 84 03         ld   hl,0384
RO18:4B00 CD 1D 46         call 461D
RO18:4B03 21 09 4B         ld   hl,4B09
RO18:4B06 CD DD 45         call 45DD
RO18:4B09 F0 AA            ld   a,(ff00+AA)
RO18:4B0B E6 90            and  a,90
RO18:4B0D 20 0A            jr   nz,4B19		// If(button == A || button == Start), jump to 18:4B19
RO18:4B0F CD 26 46         call 4626
RO18:4B12 C0               ret  nz
RO18:4B13 3E 01            ld   a,01
RO18:4B15 EA 01 C2         ld   (C201),a
RO18:4B18 C9               ret  

Button A or Start pressed

RO18:4B19 3E DC            ld   a,DC
RO18:4B1B CD 77 3B         call 3B77
RO18:4B1E AF               xor  a
RO18:4B1F CD 67 4B         call 4B67
RO18:4B22 21 05 00         ld   hl,0005
RO18:4B25 CD 22 47         call 4722
RO18:4B28 3E 01            ld   a,01
RO18:4B2A CD 67 4B         call 4B67
RO18:4B2D 21 05 00         ld   hl,0005
RO18:4B30 CD 22 47         call 4722
RO18:4B33 06 08            ld   b,08
RO18:4B35 21 C8 49         ld   hl,49C8
RO18:4B38 CD D0 15         call 15D0
RO18:4B3B 3E 00            ld   a,00
RO18:4B3D E0 9C            ld   (ff00+9C),a
RO18:4B3F 21 04 00         ld   hl,0004
RO18:4B42 CD 22 47         call 4722
RO18:4B45 AF               xor  a
RO18:4B46 CD 67 4B         call 4B67
RO18:4B49 21 01 00         ld   hl,0001
RO18:4B4C CD 22 47         call 4722
RO18:4B4F 06 08            ld   b,08
RO18:4B51 21 FA 4A         ld   hl,4AFA
RO18:4B54 CD D0 15         call 15D0
RO18:4B57 3E E4            ld   a,E4
RO18:4B59 E0 9C            ld   (ff00+9C),a
RO18:4B5B 21 39 00         ld   hl,0039
RO18:4B5E CD 22 47         call 4722
RO18:4B61 3E 04            ld   a,04
RO18:4B63 EA 01 C2         ld   (C201),a
RO18:4B66 C9               ret