ROM0:0100 00 nop ;68 1 Entrypoint ROM0:0101 C3 3E 01 jp 013E ;72 4 ROM0:0104 CE ED 66 66+ db CE,ED,66,66,CC,0D,00,0B ;logo ROM0:010C 03 73 00 83+ db 03,73,00,83,00,0C,00,0D ROM0:0114 00 08 11 1F+ db 00,08,11,1F,88,89,00,0E ROM0:011C DC CC 6E E6+ db DC,CC,6E,E6,DD,DD,D9,99 ROM0:0124 BB BB 67 63+ db BB,BB,67,63,6E,0E,EC,CC ROM0:012C DD DC 99 9F+ db DD,DC,99,9F,BB,B9,33,3E ROM0:0134 4E 49 4E 4A+ db 'NINJA RYUK>ù',EA ROM0:0141 00 20 db 'ù ' ROM0:0143 C3 db C3 ;cgb features (?) ; JP $2B00 ROM0:0144 00 2B db 'ù+' ;new licensee (?) ROM0:0146 03 db 03 ;sgb features (yes) ROM0:0147 12 db 12 ;type (mbc3+ram) ROM0:0148 02 db 02 ;rom size (128K) ROM0:0149 00 db 00 ;ram size (none) ROM0:014A A4 db A4 ;country code (?) ROM0:014B 2E db 2E ;licensee (?) ROM0:014C 00 db 00 ;version number ROM0:014D DF db DF ;header chk (ED) ROM0:014E 53 12 db 53,12 ;global chk (8A36) ROM0:2B00 F3 di ;63 1 ROM0:2B01 31 FE FF ld sp,FFFE ;66 3 ROM0:2B04 01 C0 06 ld bc,06C0 ;69 3 ROM0:2B07 11 00 C0 ld de,C000 ;72 3 ROM0:2B0A 21 13 2B ld hl,2B13 ;75 3 ROM0:2B0D CD 0B 2C call 2C0B ;81 6 Copie $6C0 octets de $2B13 (ROM) vers $C000 (RAM) ROM0:2B10 C3 00 C0 jp C000 ;85 4 JP RAM ROM0:2B13 CD 12 C0 call C012 ;91 6 $2B25 ici, inits RAM/HRAM ROM0:2B16 CD CD C0 call C0CD ;97 6 $2BE0 ici, vide les tiles (ligne, wtf) ROM0:2B19 CD E5 C0 call C0E5 ;3 6 $2BF8 ici, charge l'alphabet ROM0:2B1C CD 01 C1 call C101 ;9 6 $2C14 ici, init RAM et écran ROM0:2B1F CD 1A C1 call C11A ;15 6 $2C2D ici, ROM0:2B22 C3 3C C2 jp C23C ;19 4 ROM0:2B25 21 46 01 ld hl,0146 ;22 3 ROM0:2B28 2A ldi a,(hl) ;24 2 ROM0:2B29 E0 80 ld (FF00+80),a ;27 3 HRAM(0)=3 ROM0:2B2B 2A ldi a,(hl) ;29 2 ROM0:2B2C E0 81 ld (FF00+81),a ;32 3 HRAM(1)=$12 ROM0:2B2E AF xor a ;33 1 ROM0:2B2F E0 88 ld (FF00+88),a ;36 3 HRAM(8,2,4,6)=0 ROM0:2B31 E0 82 ld (FF00+82),a ;39 3 ROM0:2B33 E0 84 ld (FF00+84),a ;42 3 ROM0:2B35 E0 86 ld (FF00+86),a ;45 3 ROM0:2B37 3E D2 ld a,D2 ;47 2 ROM0:2B39 E0 83 ld (FF00+83),a ;50 3 HRAM(3)=$D2 ROM0:2B3B 3C inc a ;51 1 ROM0:2B3C E0 85 ld (FF00+85),a ;54 3 HRAM(5)=$D3 ROM0:2B3E 3C inc a ;55 1 ROM0:2B3F E0 87 ld (FF00+87),a ;58 3 HRAM(7)=$D4 ROM0:2B41 21 A4 2E ld hl,2EA4 ;61 3 ROM0:2B44 CD 7A C0 call C07A ;67 6 $2B8D ici, initialise la RAM et la HRAM ROM0:2B47 21 48 01 ld hl,0148 ;70 3 ROM0:2B4A F0 88 ld a,(FF00+88) ;73 3 ROM0:2B4C 86 add a,(hl) ;75 2 ROM0:2B4D E0 88 ld (FF00+88),a ;78 3 HRAM($88)+=($148)=2 normalement ROM0:2B4F EA 00 40 ld (4000),a ;RAM select ;82 4 MAPPER ($4000)=2 ("DOUBLE DRAGON") ROM0:2B52 21 46 01 ld hl,0146 ;85 3 ROM0:2B55 F0 80 ld a,(FF00+80) ;88 3 ROM0:2B57 BE cp (hl) ;90 2 HRAM($80)=($146) ? oui ROM0:2B58 28 1A jr z,2B74 ;92 2/3 $2B74 ici, trouve le nombre de pages et RET à $2B16 ROM0:2B5A FA 33 01 ld a,(0133) ;96 4 ROM0:2B5D FE 3E cp 3E ;98 2 ROM0:2B5F 20 13 jr nz,2B74 ;0 2/3 ROM0:2B61 23 inc hl ;2 2 ROM0:2B62 F0 81 ld a,(FF00+81) ;5 3 ROM0:2B64 86 add a,(hl) ;7 2 ROM0:2B65 E0 81 ld (FF00+81),a ;10 3 ROM0:2B67 23 inc hl ;12 2 ROM0:2B68 23 inc hl ;14 2 ROM0:2B69 2A ldi a,(hl) ;16 2 ROM0:2B6A EA 00 20 ld (2000),a ;ROM select ;20 4 ROM0:2B6D 2A ldi a,(hl) ;22 2 ROM0:2B6E 47 ld b,a ;23 1 ROM0:2B6F 7E ld a,(hl) ;25 2 ROM0:2B70 67 ld h,a ;26 1 ROM0:2B71 68 ld l,b ;27 1 ROM0:2B72 18 D0 jr 2B44 ;30 3 ;Trouve le nombre de pages nécessaires pour afficher tous les jeux ROM0:2B74 06 00 ld b,00 ;32 2 ROM0:2B76 F0 81 ld a,(FF00+81) ;35 3 ROM0:2B78 FE 0E cp 0E ;37 2 ROM0:2B7A 38 05 jr c,2B81 ;39 2/3 HRAM($81)<$E ? non (13 jeux/page) ROM0:2B7C D6 0D sub 0D ;41 2 ROM0:2B7E 04 inc b ;42 1 +1 page ROM0:2B7F 18 F7 jr 2B78 ;45 3 ROM0:2B81 EA 05 D0 ld (D005),a ;49 4 (D005)=Nombre de jeux sur la dernière page ROM0:2B84 78 ld a,b ;50 1 ROM0:2B85 EA 04 D0 ld (D004),a ;54 4 (D004)=Nombre de pages ROM0:2B88 AF xor a ;55 1 ROM0:2B89 EA 00 40 ld (4000),a ;RAM select ;59 4 MAPPER ($4000)=0 ROM0:2B8C C9 ret ;63 4 ROM0:2B8D 0E 82 ld c,82 ;65 2 ROM0:2B8F CD C0 C0 call C0C0 ;71 6 $2BD3 ici, DE=HRAM($82) ROM0:2B92 FA 47 01 ld a,(0147) ;75 4 ROM0:2B95 4F ld c,a ;76 1 ROM0:2B96 06 00 ld b,00 ;78 2 BC=$12 ROM0:2B98 C5 push bc ;82 4 ROM0:2B99 CD F8 C0 call C0F8 ;88 6 $2C0B ici, copie (HL $2EA4) vers (DE D200), BC fois ROM0:2B9C 0E 82 ld c,82 ;90 2 ROM0:2B9E CD C6 C0 call C0C6 ;96 6 HRAM($82)=DE ROM0:2BA1 CD C0 C0 call C0C0 ;2 6 $2BD3 ici, DE=HRAM($84) ROM0:2BA4 C1 pop bc ;5 3 ROM0:2BA5 C5 push bc ;9 4 ROM0:2BA6 F0 88 ld a,(FF00+88) ;12 3 ROM0:2BA8 47 ld b,a ;13 1 ROM0:2BA9 2A ldi a,(hl) ;15 2 ROM0:2BAA 80 add a,b ;16 1 ROM0:2BAB 12 ld (de),a ;18 2 (DE)=HRAM(88)+(HL) ? ROM0:2BAC 13 inc de ;20 2 ROM0:2BAD 0D dec c ;21 1 ROM0:2BAE 20 F9 jr nz,2BA9 ;24 2/3 ROM0:2BB0 0E 84 ld c,84 ;26 2 ROM0:2BB2 CD C6 C0 call C0C6 ;32 6 HRAM($84)=DE ROM0:2BB5 CD C0 C0 call C0C0 ;38 6 $2BD3 ici, DE=HRAM($86) ROM0:2BB8 C1 pop bc ;41 3 ROM0:2BB9 2A ldi a,(hl) ;43 2 Copie (HL) vers (DE) tant que != 0 ROM0:2BBA FE 00 cp 00 ;45 2 fin du nom du jeu ? ROM0:2BBC 12 ld (de),a ;47 2 ROM0:2BBD 28 03 jr z,2BC2 ;49 2/3 $C0AF ici, voir plus bas ROM0:2BBF 13 inc de ;51 2 Copie le nom des jeux du ROM vers RAM(D400) et les ROM0:2BC0 18 F7 jr 2BB9 ;54 3 aligne sur 16 octets (termine par les noms par $00) ROM0:2BC2 7B ld a,e ;55 1 ROM0:2BC3 E6 F0 and F0 ;57 2 alignement 16 octets ROM0:2BC5 C6 10 add a,10 ;59 2 ROM0:2BC7 5F ld e,a ;60 1 ROM0:2BC8 30 01 jr nc,2BCB ;62 2/3 ROM0:2BCA 14 inc d ;63 1 inc D si E overflow ROM0:2BCB 0D dec c ;64 1 ROM0:2BCC 20 EB jr nz,2BB9 ;67 2/3 ROM0:2BCE 0E 86 ld c,86 ;69 2 ROM0:2BD0 C3 C6 C0 jp C0C6 ;73 4 HRAM($86)=DE et RET à $2B44 ici ;DE=HRAM(C).w ROM0:2BD3 F2 ld a,(FF00+c) ;75 2 ROM0:2BD4 5F ld e,a ;76 1 ROM0:2BD5 0C inc c ;77 1 ROM0:2BD6 F2 ld a,(FF00+c) ;79 2 ROM0:2BD7 57 ld d,a ;80 1 ROM0:2BD8 C9 ret ;84 4 ;HRAM(C).w=DE ROM0:2BD9 7B ld a,e ;85 1 ROM0:2BDA E2 ld (FF00+c),a ;87 2 ROM0:2BDB 0C inc c ;88 1 ROM0:2BDC 7A ld a,d ;89 1 ROM0:2BDD E2 ld (FF00+c),a ;91 2 ROM0:2BDE 0C inc c ;92 1 ROM0:2BDF C9 ret ;96 4 ROM0:2BE0 F0 44 ld a,(FF00+44) ;lcd y-loc ;99 3 Attends le VBlank ROM0:2BE2 FE 90 cp 90 ;1 2 ROM0:2BE4 38 FA jr c,2BE0 ;4 2/3 ROM0:2BE6 AF xor a ;5 1 ROM0:2BE7 E0 40 ld (FF00+40),a ;lcd ctrl ;8 3 Eteins l'écran ROM0:2BE9 21 00 80 ld hl,8000 ;11 3 ROM0:2BEC 01 00 20 ld bc,2000 ;14 3 ROM0:2BEF 3E 20 ld a,20 ;16 2 Vide les tiles avec $20 (une ligne moche) ROM0:2BF1 22 ldi (hl),a ;18 2 ROM0:2BF2 0B dec bc ;20 2 ROM0:2BF3 78 ld a,b ;21 1 ROM0:2BF4 B1 or c ;22 1 ROM0:2BF5 20 F8 jr nz,2BEF ;25 2/3 ROM0:2BF7 C9 ret ;29 4 ROM0:2BF8 11 92 2F ld de,2F92 ;32 3 Charge l'alphabet et un "CL." (?) ROM0:2BFB 21 00 82 ld hl,8200 ;35 3 ROM0:2BFE 01 40 02 ld bc,0240 ;38 3 ROM0:2C01 1A ld a,(de) ;40 2 ROM0:2C02 22 ldi (hl),a ;42 2 ROM0:2C03 22 ldi (hl),a ;44 2 ROM0:2C04 13 inc de ;46 2 ROM0:2C05 0B dec bc ;48 2 ROM0:2C06 79 ld a,c ;49 1 ROM0:2C07 B0 or b ;50 1 ROM0:2C08 20 F7 jr nz,2C01 ;53 2/3 ROM0:2C0A C9 ret ;57 4 ROM0:2C0B 2A ldi a,(hl) ;59 2 ROM0:2C0C 12 ld (de),a ;61 2 ROM0:2C0D 13 inc de ;63 2 ROM0:2C0E 0B dec bc ;65 2 ROM0:2C0F 79 ld a,c ;66 1 ROM0:2C10 B0 or b ;67 1 ROM0:2C11 20 F8 jr nz,2C0B ;70 2/3 ROM0:2C13 C9 ret ;74 4 ROM0:2C14 21 00 D0 ld hl,D000 ;77 3 ROM0:2C17 AF xor a ;78 1 ROM0:2C18 E0 00 ld (FF00+00),a ;joypad ;81 3 ROM0:2C1A 22 ldi (hl),a ;83 2 (D000)=0 Valeur précedente joypad ROM0:2C1B 22 ldi (hl),a ;85 2 (Game#)=0 Numéro du jeu choisi dans la page courante ROM0:2C1C 22 ldi (hl),a ;87 2 (Page#)=0 Numéro de la page courante ROM0:2C1D 3D dec a ;88 1 ROM0:2C1E 22 ldi (hl),a ;90 2 (D003)=$FF ROM0:2C1F 3E C8 ld a,C8 ;92 2 ROM0:2C21 E0 47 ld (FF00+47),a ;lcd back pa;95 3 Palette:11 00 10 00 ROM0:2C23 AF xor a ;96 1 ROM0:2C24 E0 42 ld (FF00+42),a ;lcd scroll ;99 3 ROM0:2C26 E0 43 ld (FF00+43),a ;lcd scroll ;2 3 ROM0:2C28 3E 91 ld a,91 ;4 2 ROM0:2C2A E0 40 ld (FF00+40),a ;lcd ctrl ;7 3 Ecran on, tiles@$8000, BG on ROM0:2C2C C9 ret ;11 4 ROM0:2C2D 21 81 2E ld hl,2E81 ;14 3 ROM0:2C30 CD CB C1 call C1CB ;20 6 $2CDE ici, afficher texte ROM0:2C33 06 01 ld b,01 ;22 2 ROM0:2C35 0E 04 ld c,04 ;24 2 position (y,x) du nombre de jeux ROM0:2C37 F0 81 ld a,(FF00+81) ;27 3 A=nombre de jeux ? ROM0:2C39 CD 97 C1 call C197 ;33 6 $2CAA ici, affiche le nombre de jeux ROM0:2C3C C3 16 C3 jp C316 ;37 4 $2E29 ici ROM0:2C3F 3E 01 ld a,01 ;39 2 ROM0:2C41 E0 90 ld (FF00+90),a ;42 3 ROM0:2C43 3E 04 ld a,04 ;44 2 ROM0:2C45 E0 91 ld (FF00+91),a ;47 3 ROM0:2C47 01 D0 00 ld bc,00D0 ;50 3 ROM0:2C4A 21 00 D4 ld hl,D400 ;53 3 ROM0:2C4D FA 02 D0 ld a,(Page#) ;57 4 ROM0:2C50 57 ld d,a ;58 1 ROM0:2C51 B7 or a ;59 1 ROM0:2C52 28 0D jr z,2C61 ;61 2/3 ROM0:2C54 09 add hl,bc ;63 2 ROM0:2C55 3D dec a ;64 1 ROM0:2C56 20 FC jr nz,2C54 ;67 2/3 ROM0:2C58 3E 01 ld a,01 ;69 2 ROM0:2C5A C6 0D add a,0D ;71 2 ROM0:2C5C 15 dec d ;72 1 ROM0:2C5D 20 FB jr nz,2C5A ;75 2/3 ROM0:2C5F E0 90 ld (FF00+90),a ;78 3 ROM0:2C61 0E 02 ld c,02 ;80 2 ROM0:2C63 F0 91 ld a,(FF00+91) ;83 3 ROM0:2C65 3C inc a ;84 1 ROM0:2C66 FE 12 cp 12 ;86 2 ROM0:2C68 C8 ret z ;88 2/5 ROM0:2C69 E0 91 ld (FF00+91),a ;91 3 ROM0:2C6B 47 ld b,a ;92 1 ROM0:2C6C F0 90 ld a,(FF00+90) ;95 3 ROM0:2C6E E5 push hl ;99 4 ROM0:2C6F 21 81 FF ld hl,FF81 ;2 3 ROM0:2C72 BE cp (hl) ;4 2 ROM0:2C73 E1 pop hl ;7 3 ROM0:2C74 28 02 jr z,2C78 ;9 2/3 ROM0:2C76 30 1A jr nc,2C92 ;11 2/3 ROM0:2C78 F5 push af ;15 4 ROM0:2C79 CD 8D C1 call C18D ;21 6 ROM0:2C7C CD CB C1 call C1CB ;27 6 ROM0:2C7F F1 pop af ;30 3 ROM0:2C80 3C inc a ;31 1 ROM0:2C81 E0 90 ld (FF00+90),a ;34 3 ROM0:2C83 3E 20 ld a,20 ;36 2 ROM0:2C85 12 ld (de),a ;38 2 ROM0:2C86 13 inc de ;40 2 ROM0:2C87 7D ld a,l ;41 1 ROM0:2C88 E6 0F and 0F ;43 2 ROM0:2C8A 28 D5 jr z,2C61 ;46 2/3 ROM0:2C8C 2C inc l ;47 1 ROM0:2C8D 20 F4 jr nz,2C83 ;50 2/3 ROM0:2C8F 24 inc h ;51 1 ROM0:2C90 18 F1 jr 2C83 ;54 3 ROM0:2C92 CD F1 C1 call C1F1 ;60 6 ROM0:2C95 06 14 ld b,14 ;62 2 ROM0:2C97 3E 20 ld a,20 ;64 2 ROM0:2C99 12 ld (de),a ;66 2 ROM0:2C9A 13 inc de ;68 2 ROM0:2C9B 05 dec b ;69 1 ROM0:2C9C 20 FB jr nz,2C99 ;72 2/3 ROM0:2C9E 18 C1 jr 2C61 ;75 3 ROM0:2CA0 E5 push hl ;79 4 ROM0:2CA1 CD 97 C1 call C197 ;85 6 ROM0:2CA4 3E 2E ld a,2E ;87 2 ROM0:2CA6 12 ld (de),a ;89 2 ROM0:2CA7 13 inc de ;91 2 ROM0:2CA8 E1 pop hl ;94 3 ROM0:2CA9 C9 ret ;98 4 ROM0:2CAA 21 00 00 ld hl,0000 ;1 3 Affiche le nombre de jeux en décimal ROM0:2CAD FE 0A cp 0A ;3 2 ROM0:2CAF 38 05 jr c,2CB6 ;5 2/3 ROM0:2CB1 D6 0A sub 0A ;7 2 ROM0:2CB3 24 inc h ;8 1 ROM0:2CB4 18 F7 jr 2CAD ;11 3 ROM0:2CB6 6F ld l,a ;12 1 ROM0:2CB7 CD F1 C1 call C1F1 ;18 6 ROM0:2CBA 3E 20 ld a,20 ;20 2 ROM0:2CBC 12 ld (de),a ;22 2 ROM0:2CBD 13 inc de ;24 2 ROM0:2CBE 7C ld a,h ;25 1 ROM0:2CBF FE 0A cp 0A ;27 2 ROM0:2CC1 38 11 jr c,2CD4 ;29 2/3 ROM0:2CC3 D6 0A sub 0A ;31 2 ROM0:2CC5 FE 0A cp 0A ;33 2 ROM0:2CC7 F5 push af ;37 4 ROM0:2CC8 3E 32 ld a,32 ;39 2 ROM0:2CCA DE 00 sbc a,00 ;41 2 ROM0:2CCC 1B dec de ;43 2 ROM0:2CCD 12 ld (de),a ;45 2 ROM0:2CCE 13 inc de ;47 2 ROM0:2CCF F1 pop af ;50 3 ROM0:2CD0 38 02 jr c,2CD4 ;52 2/3 ROM0:2CD2 D6 0A sub 0A ;54 2 ROM0:2CD4 F6 30 or 30 ;56 2 ROM0:2CD6 12 ld (de),a ;58 2 ROM0:2CD7 13 inc de ;60 2 ROM0:2CD8 7D ld a,l ;61 1 ROM0:2CD9 F6 30 or 30 ;63 2 ROM0:2CDB 12 ld (de),a ;65 2 ROM0:2CDC 13 inc de ;67 2 ROM0:2CDD C9 ret ;71 4 ROM0:2CDE 2A ldi a,(hl) ;73 2 Afficher texte ROM0:2CDF FE 00 cp 00 ;75 2 $00:ret ROM0:2CE1 28 17 jr z,2CFA ;77 2/3 ROM0:2CE3 FE FE cp FE ;79 2 $FE:relocate (y,x) ROM0:2CE5 28 14 jr z,2CFB ;81 2/3 ROM0:2CE7 FE FD cp FD ;83 2 $FD:? ROM0:2CE9 28 05 jr z,2CF0 ;85 2/3 ROM0:2CEB 12 ld (de),a ;87 2 ROM0:2CEC 13 inc de ;89 2 ROM0:2CED C3 CB C1 jp C1CB ;93 4 ROM0:2CF0 2A ldi a,(hl) ;95 2 ROM0:2CF1 47 ld b,a ;96 1 ROM0:2CF2 2A ldi a,(hl) ;98 2 ROM0:2CF3 12 ld (de),a ;0 2 ROM0:2CF4 13 inc de ;2 2 ROM0:2CF5 05 dec b ;3 1 ROM0:2CF6 20 FB jr nz,2CF3 ;6 2/3 ROM0:2CF8 28 E4 jr z,2CDE ;9 2/3 ROM0:2CFA C9 ret ;13 4 ROM0:2CFB 2A ldi a,(hl) ;15 2 ROM0:2CFC 47 ld b,a ;16 1 ROM0:2CFD 2A ldi a,(hl) ;18 2 ROM0:2CFE 4F ld c,a ;19 1 ROM0:2CFF CD F1 C1 call C1F1 ;25 6 ROM0:2D02 18 DA jr 2CDE ;28 3 ROM0:2D04 11 00 98 ld de,9800 ;31 3 ROM0:2D07 78 ld a,b ;32 1 ROM0:2D08 CB 3F srl a ;34 2 ROM0:2D0A CB 1B rr e ;36 2 ROM0:2D0C CB 3F srl a ;38 2 ROM0:2D0E CB 1B rr e ;40 2 ROM0:2D10 CB 3F srl a ;42 2 ROM0:2D12 CB 1B rr e ;44 2 ROM0:2D14 82 add a,d ;45 1 ROM0:2D15 57 ld d,a ;46 1 ROM0:2D16 79 ld a,c ;47 1 ROM0:2D17 83 add a,e ;48 1 ROM0:2D18 5F ld e,a ;49 1 ROM0:2D19 F0 44 ld a,(FF00+44) ;lcd y-loc ;52 3 ROM0:2D1B FE 90 cp 90 ;54 2 ROM0:2D1D 20 FA jr nz,2D19 ;57 2/3 ROM0:2D1F C9 ret ;61 4 ROM0:2D20 0E 2F ld c,2F ;63 2 ROM0:2D22 C3 14 C2 jp C214 ;67 4 ROM0:2D25 0E 20 ld c,20 ;69 2 ROM0:2D27 26 98 ld h,98 ;71 2 ROM0:2D29 2E A1 ld l,A1 ;73 2 ROM0:2D2B FA 01 D0 ld a,(Game#) ;77 4 ROM0:2D2E FE 0D cp 0D ;79 2 ROM0:2D30 38 02 jr c,2D34 ;81 2/3 ROM0:2D32 D6 0D sub 0D ;83 2 ROM0:2D34 47 ld b,a ;84 1 ROM0:2D35 AF xor a ;85 1 ROM0:2D36 CB 38 srl b ;87 2 ROM0:2D38 CB 1F rr a ;89 2 ROM0:2D3A CB 38 srl b ;91 2 ROM0:2D3C CB 1F rr a ;93 2 ROM0:2D3E CB 38 srl b ;95 2 ROM0:2D40 CB 1F rr a ;97 2 ROM0:2D42 85 add a,l ;98 1 ROM0:2D43 6F ld l,a ;99 1 ROM0:2D44 78 ld a,b ;0 1 ROM0:2D45 8C adc a,h ;1 1 ROM0:2D46 67 ld h,a ;2 1 ROM0:2D47 F0 44 ld a,(FF00+44) ;lcd y-loc ;5 3 ROM0:2D49 FE 91 cp 91 ;7 2 ROM0:2D4B 20 FA jr nz,2D47 ;10 2/3 ROM0:2D4D 71 ld (hl),c ;12 2 ROM0:2D4E C9 ret ;16 4 ROM0:2D4F CD 0D C2 call C20D ;22 6 ROM0:2D52 CD 5C C3 call C35C ;28 6 ROM0:2D55 20 26 jr nz,2D7D ;30 2/3 ROM0:2D57 FA 00 D0 ld a,(D000) ;34 4 ROM0:2D5A B7 or a ;35 1 ROM0:2D5B 20 07 jr nz,2D64 ;37 2/3 ROM0:2D5D 3E FF ld a,FF ;39 2 ROM0:2D5F EA 03 D0 ld (D003),a ;43 4 ROM0:2D62 28 EE jr z,2D52 ;46 2/3 ROM0:2D64 4F ld c,a ;47 1 ROM0:2D65 FA 03 D0 ld a,(D003) ;51 4 ROM0:2D68 B7 or a ;52 1 ROM0:2D69 28 09 jr z,2D74 ;54 2/3 ROM0:2D6B CD 67 C3 call C367 ;60 6 ROM0:2D6E 3D dec a ;61 1 ROM0:2D6F EA 03 D0 ld (D003),a ;65 4 ROM0:2D72 20 DE jr nz,2D52 ;68 2/3 ROM0:2D74 21 00 30 ld hl,3000 ;71 3 ROM0:2D77 2B dec hl ;73 2 ROM0:2D78 7C ld a,h ;74 1 ROM0:2D79 B5 or l ;75 1 ROM0:2D7A 20 FB jr nz,2D77 ;78 2/3 ROM0:2D7C 79 ld a,c ;79 1 ROM0:2D7D FE 04 cp 04 ;81 2 Gestion des touches ROM0:2D7F 28 0E jr z,2D8F ;83 2/3 Haut ROM0:2D81 FE 08 cp 08 ;85 2 ROM0:2D83 28 25 jr z,2DAA ;87 2/3 Bas ROM0:2D85 FE 20 cp 20 ;89 2 ROM0:2D87 28 3D jr z,2DC6 ;91 2/3 B page suivante ROM0:2D89 FE 10 cp 10 ;93 2 ROM0:2D8B 28 50 jr z,2DDD ;95 2/3 A launch rom ROM0:2D8D 20 C3 jr nz,2D52 ;98 2/3 ROM0:2D8F CD 12 C2 call C212 ;4 6 Haut ROM0:2D92 FA 01 D0 ld a,(Game#) ;8 4 ROM0:2D95 B7 or a ;9 1 ROM0:2D96 20 0B jr nz,2DA3 ;11 2/3 ROM0:2D98 21 02 D0 ld hl,D002 ;14 3 ROM0:2D9B 35 dec (hl) ;17 3 ROM0:2D9C CD 16 C3 call C316 ;23 6 ROM0:2D9F FA 06 D0 ld a,(D006) ;27 4 ROM0:2DA2 3C inc a ;28 1 ROM0:2DA3 3D dec a ;29 1 ROM0:2DA4 EA 01 D0 ld (Game#),a ;33 4 ROM0:2DA7 C3 3C C2 jp C23C ;37 4 ROM0:2DAA CD 12 C2 call C212 ;43 6 Bas ROM0:2DAD FA 01 D0 ld a,(Game#) ;47 4 ROM0:2DB0 21 06 D0 ld hl,D006 ;50 3 ROM0:2DB3 BE cp (hl) ;52 2 ROM0:2DB4 38 09 jr c,2DBF ;54 2/3 ROM0:2DB6 21 02 D0 ld hl,D002 ;57 3 ROM0:2DB9 34 inc (hl) ;60 3 ROM0:2DBA CD 16 C3 call C316 ;66 6 ROM0:2DBD 3E FF ld a,FF ;68 2 ROM0:2DBF 3C inc a ;69 1 ROM0:2DC0 EA 01 D0 ld (Game#),a ;73 4 ROM0:2DC3 C3 3C C2 jp C23C ;77 4 ROM0:2DC6 CD 12 C2 call C212 ;83 6 B ROM0:2DC9 21 02 D0 ld hl,D002 ;86 3 ROM0:2DCC 34 inc (hl) ;89 3 ROM0:2DCD CD 16 C3 call C316 ;95 6 ROM0:2DD0 21 01 D0 ld hl,D001 ;98 3 ROM0:2DD3 FA 06 D0 ld a,(D006) ;2 4 ROM0:2DD6 BE cp (hl) ;4 2 ROM0:2DD7 30 01 jr nc,2DDA ;6 2/3 ROM0:2DD9 77 ld (hl),a ;8 2 ROM0:2DDA C3 3C C2 jp C23C ;12 4 ;Launch rom: ROM0:2DDD F0 44 ld a,(FF00+44) ;lcd y-loc ;15 3 ROM0:2DDF FE 90 cp 90 ;17 2 ROM0:2DE1 38 FA jr c,2DDD ;20 2/3 Attends le VBlank ROM0:2DE3 AF xor a ;21 1 ROM0:2DE4 E0 40 ld (FF00+40),a ;lcd ctrl ;24 3 Eteins l'écran ROM0:2DE6 21 00 80 ld hl,8000 ;27 3 Vide la VRAM ROM0:2DE9 01 00 20 ld bc,2000 ;30 3 ROM0:2DEC AF xor a ;31 1 ROM0:2DED 22 ldi (hl),a ;33 2 ROM0:2DEE 0B dec bc ;35 2 ROM0:2DEF 78 ld a,b ;36 1 ROM0:2DF0 B1 or c ;37 1 ROM0:2DF1 20 F9 jr nz,2DEC ;40 2/3 ROM0:2DF3 3E 91 ld a,91 ;42 2 Rallume l'écran ROM0:2DF5 E0 40 ld (FF00+40),a ;lcd ctrl ;45 3 ROM0:2DF7 21 02 D0 ld hl,D002 ;48 3 ROM0:2DFA AF xor a ;49 1 ROM0:2DFB BE cp (hl) ;51 2 ROM0:2DFC 28 06 jr z,2E04 ;53 2/3 Premiere page: pas besoin d'offset pour le # du jeu ROM0:2DFE 06 0D ld b,0D ;55 2 ROM0:2E00 80 add a,b ;56 1 Sinon, offset = (# page * 13) ROM0:2E01 35 dec (hl) ;59 3 ROM0:2E02 20 FC jr nz,2E00 ;62 2/3 ROM0:2E04 4F ld c,a ;63 1 ROM0:2E05 FA 01 D0 ld a,(Game#) ;67 4 ROM0:2E08 81 add a,c ;68 1 ROM0:2E09 4F ld c,a ;69 1 ROM0:2E0A 06 00 ld b,00 ;71 2 ROM0:2E0C 21 00 D2 ld hl,D200 ;74 3 ROM0:2E0F 09 add hl,bc ;76 2 ROM0:2E10 7E ld a,(hl) ;78 2 ROM0:2E11 EA 00 20 ld (2000),a ;ROM select ;82 4 ($2000)=($D200+# du jeu) le bit 7 sert à dire si ROM0:2E14 F5 push af ;86 4 le jeu choisi est celui dans lequel le menu est intégré ROM0:2E15 21 00 D3 ld hl,D300 ;89 3 ROM0:2E18 09 add hl,bc ;91 2 ROM0:2E19 7E ld a,(hl) ;93 2 ROM0:2E1A EA 00 40 ld (4000),a ;RAM select ;97 4 ($4000)=($D300+# du jeu) ROM0:2E1D F1 pop af ;0 3 ROM0:2E1E 31 FE FF ld sp,FFFE ;3 3 ROM0:2E21 CB 7F bit 7,a ;5 2 jp $100 sauf si jeu du menu: jp $150 ROM0:2E23 C2 50 01 jp nz,0150 ;9 3/4 ROM0:2E26 C3 00 01 jp 0100 ;13 4 ROM0:2E29 FA 04 D0 ld a,(D004) ;17 4 ROM0:2E2C CB 7E bit 7,(hl) ;20 3 ROM0:2E2E 28 01 jr z,2E31 ;22 2/3 ROM0:2E30 77 ld (hl),a ;24 2 ROM0:2E31 BE cp (hl) ;26 2 ROM0:2E32 30 02 jr nc,2E36 ;28 2/3 ROM0:2E34 36 00 ld (hl),00 ;31 3 ROM0:2E36 3E 0D ld a,0D ;33 2 ROM0:2E38 20 03 jr nz,2E3D ;35 2/3 ROM0:2E3A FA 05 D0 ld a,(D005) ;39 4 ROM0:2E3D 3D dec a ;40 1 ROM0:2E3E EA 06 D0 ld (D006),a ;44 4 ROM0:2E41 C3 2C C1 jp C12C ;48 4 ROM0:2E44 3E 10 ld a,10 ;50 2 ROM0:2E46 CD 40 C3 call C340 ;56 6 ROM0:2E49 CB 37 swap a ;58 2 ROM0:2E4B 4F ld c,a ;59 1 ROM0:2E4C 3E 20 ld a,20 ;61 2 ROM0:2E4E CD 40 C3 call C340 ;67 6 ROM0:2E51 B1 or c ;68 1 ROM0:2E52 C9 ret ;72 4 ROM0:2E53 E0 00 ld (FF00+00),a ;joypad ;75 3 ROM0:2E55 F0 00 ld a,(FF00+00) ;joypad ;78 3 ROM0:2E57 F0 00 ld a,(FF00+00) ;joypad ;81 3 ROM0:2E59 F0 00 ld a,(FF00+00) ;joypad ;84 3 ROM0:2E5B F0 00 ld a,(FF00+00) ;joypad ;87 3 ROM0:2E5D F0 00 ld a,(FF00+00) ;joypad ;90 3 ROM0:2E5F F0 00 ld a,(FF00+00) ;joypad ;93 3 ROM0:2E61 F0 00 ld a,(FF00+00) ;joypad ;96 3 ROM0:2E63 F0 00 ld a,(FF00+00) ;joypad ;99 3 ROM0:2E65 F0 00 ld a,(FF00+00) ;joypad ;2 3 ROM0:2E67 F0 00 ld a,(FF00+00) ;joypad ;5 3 ROM0:2E69 F0 00 ld a,(FF00+00) ;joypad ;8 3 ROM0:2E6B 2F cpl ;9 1 ROM0:2E6C E6 0F and 0F ;11 2 ROM0:2E6E C9 ret ;15 4 ROM0:2E6F 21 00 D0 ld hl,D000 ;18 3 ROM0:2E72 CD 31 C3 call C331 ;24 6 ROM0:2E75 4F ld c,a ;25 1 ROM0:2E76 AE xor (hl) ;27 2 ROM0:2E77 A1 and c ;28 1 ROM0:2E78 71 ld (hl),c ;30 2 ROM0:2E79 C9 ret ;34 4 ROM0:2E7A 0E 00 ld c,00 ;36 2 ROM0:2E7C 00 nop ;37 1 ROM0:2E7D 0D dec c ;38 1 ROM0:2E7E 20 FC jr nz,2E7C ;41 2/3 ROM0:2E80 C9 ret ;45 4