MSX Village forum

La Place des Développeurs Questions sur les debuggers et l'assembleur z80

CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 08/04/2020 à 18h40

Reprise du message précédent

   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10484

Le 09/04/2020 à 08h55
voici ma config , je suis sous Windows 7

et l'erreur que çà donne avec le fichier STA










:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10484

Le 09/04/2020 à 09h07
pour couper la musique il faut d'abord savoir que dans la config 2+ on utilise la FM-PAC pour jouer la musique

dans le Disc Station c'est la commande APRLOPLL
avec un éditeur Hexa-décimal on peux la trouver vers l'adresse B0000H
qui correspond au Secteur 580H

https://www.msx.org/wiki/MSX-MUSIC_programming

il suffit d'activer le mixeur pour voir que la musique est jouée dans le MM

a noter aussi que les configs MSX2 de BlueMSX ont la FM-Pac et la MoonSound par défaut



:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10484

Le 09/04/2020 à 16h51
au fait je n'ai toujours pas compris si tu voulais simuler l'appui sur espace ou bien piéger cet appui


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 09/04/2020 à 17h31
je voulais simuler un appui , ma routine détecte quand le menu est là et elle simule l'appuie elle sur space ou triggerA pour lancer le jeu

pour les autres jeux des DS , si le jeu est pas le 1er choix de menu il y aura un petit rajout dans la routine avant de simuler l’appuie sur space/triggerA:
ma routine mettra la valeur 01 si c'est le 2eme , 02 si c'est le 3eme etc, au byte $23C0


----

pour la config 2+ le réglage était là parce que j'avais joué à des jeux 2+ , mais je vais me remettre en 2 Edité par CRT Le 10/04/2020 à 09h43
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10484

Le 10/04/2020 à 11h30
d'abord je vais parler d'un utilitaire bien pratique pour taper et desassembler rapidement quelques codes Z80 : SHEM

on charge le DSK ici : shem.dsk

pour le lancer on tape SHEM et return

on arrive sur cette page



la touche TAB permet d'avoir un menu d'aide



maintenant voici la routine 00141H qui permet de scruter le clavier



et vue sous Shem pour tester un appui sur la touche espace



en fait j'ai tapé les octets du code Z80 dans Shem a partir de 100H puis appué sur CTRL D pour obtenir cette vue







:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10484

Le 10/04/2020 à 15h23
pour faire un point d'arrêt il suffit de remplacer 2 octets par 18 FE qui fait un JR sur lui même


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 10/04/2020 à 18h58
intéressant SHEM , j'irai voir ca :top



j'ai un petit bug dans ma routine :

elle simule pas d'appuie sur space/trigger, et si j’appuie moi sur space/triggerA , le menu fait style de lancer le jeu mais revient au menu

(l’hameçonnage est bon , j'avais testé une simple routine qui allait écrire dans un byte dans la ram puis qui rejumpait sans problème dans le code du jeu)


c'est parti pour un peu de debugage :tea
Edité par CRT Le 10/04/2020 à 19h11
   
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 10/04/2020 à 20h04
le lien pour shem déconne , ca lance pas le téléchargement mais ouvre une page web avec de la purée de caracteres ASCII ;)
   
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 11/04/2020 à 05h14
bug résolu , fallait remettre Z comme avant :tchin


me reste a trouver comment appuyer sur space ou trigger A :hum :fou Edité par CRT Le 11/04/2020 à 05h20
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10484

Le 11/04/2020 à 08h46
je remet shem en .RAR
en fait c'est un DSK
shem.rar


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 11/04/2020 à 08h58
j'ai fait une routine test pour faire un input mais ca fait pas d'input :fou :




j'ai attendu que l'ecran du menu est là , puis j'ai mis dans la mémoire via le debugger


j'ai remplacé c397dd par c3d000 pour m'incruster à $d000 , puis je fait à la fin le c397dd

save etat initial A
32 a0c0 _________ save A en $a0c0
save etat initial E
7b _____________ met E en A
32 a2c0 _________ save A en $a2c0
fait un CALL $9300
3e 15 ___________ met 15 dans A (15 pour registre PSG #15)
1e 00 ___________ met 00 dans E ( 00 pour space ????? ou 01 pour triggerA ???? )
cd 9300 _________ fait un CALL $9300 (WRTPSG)
restaure etat initial E
3a a2c0 _________ met $a2c0 en A
5f _____________ met A en E
restaure etat initial Z
3e ff ___________ met ff en A
fe 00 __________ compare A à 00
restaure etat initial A
3a a0c0 ________ met $a0c0 en A
rejump routine jeu _______
c3 97dd ________ " jp ** " jump $97dd


NOTE : hier j'avais testé une routine test qui elle devait écrire une valeur dans un byte en RAM , elle fonctionne parfaitement donc c'est le call qui fonctionne pas
Edité par CRT Le 11/04/2020 à 09h31
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10484

Le 11/04/2020 à 09h32
j'ai recherché les appels a la routine de scrutation du clavier Call 0141H

on y voit que les touches shift , X et space marchent pour lancer le jeu dans le menu

0000 3e06 ld a,06h
0002 cd4101 call 0141h
0005 cb47 bit 0,a shift
0007 2002 jr nz,000bh
0009 cba6 res 4,(hl)
000b 3e05 ld a,05h
000d cd4101 call 0141h
0010 cb6f bit 5,a x
0012 2002 jr nz,0016h
0014 cba6 res 4,(hl)
0016 cb7f bit 7,a
0018 2002 jr nz,001ch
001a cbae res 5,(hl)
001c 3e08 ld a,08h
001e cd4101 call 0141h
0021 cb47 bit 0,a space
0023 2004 jr nz,0029h
0025 cba6 res 4,(hl)
0027 cbae res 5,(hl)
0029 cb6f bit 5,a
002b 2002 jr nz,002fh
002d cb86 res 0,(hl)
002f cb77 bit 6,a
0031 2000 jr nz,0033h


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 11/04/2020 à 10h01
mais la question est comment faire pour appuyer sur X ou space ou shift ou triggerA :fou :fou :fou :fou :fou :fou :fou :fou :fou

   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10484

Le 11/04/2020 à 10h32
a mon avis on ne peut pas simuler un appui , il faut détourner la routine
voici en plus la gestion de la manette qui est juste avant
pas encore trouvé comment les directions sont gérées

0021 f3 di
0022 3a17c0 ld a,(0c017h)
0025 4f ld c,a
0026 0c inc c
0027 3ae0f3 ld a,(0f3e0h)
002a e6df and 0dfh
002c 32e0f3 ld (0f3e0h),a
002f ed79 out (c),a
0031 3e81 ld a,81h
0033 ed79 out (c),a
0035 3e0f ld a,0fh registre 15
0037 1e8f ld e,8fh 10001111
0039 cd9300 call 0093h wrtpsg
003c 3e0e ld a,0eh registre 14 lecture Joystick
003e cd9600 call 0096h rdpsg
0041 2124c0 ld hl,0c024h
0044 77 ld (hl),a
0045 3e0f ld a,0fh registre 15
0047 1ecf ld e,0cfh 11001111
0049 cd9300 call 0093h wrtpsg
004c 3e0e ld a,0eh registre 14 lecture Joystick
004e cd9600 call 0096h rdpsg
0051 a6 and (hl)
0052 77 ld (hl),a C024H
0053 3e06 ld a,06h ligne 6
0055 cd4101 call 0141h scan keyboard matrix
0058 cb47 bit 0,a Shift
005a 2002 jr nz,005eh
005c cba6 res 4,(hl)
005e 3e05 ld a,05h ligne 5
0060 cd4101 call 0141h scan keyboard matrix
0063 cb6f bit 5,a X
0065 2002 jr nz,0069h
0067 cba6 res 4,(hl)
0069 cb7f bit 7,a
006b 2002 jr nz,006fh
006d cbae res 5,(hl)
006f 3e08 ld a,08h ligne 8
0071 cd4101 call 0141h scan keyboard matrix
0074 cb47 bit 0,a Space
0076 2004 jr nz,007ch
0078 cba6 res 4,(hl)
007a cbae res 5,(hl)
007c cb6f bit 5,a
007e 2002 jr nz,0082h
0080 cb86 res 0,(hl)
0082 cb77 bit 6,a
0084 2002 jr nz,0088h
0086 cb8e res 1,(hl)
0088 cb67 bit 4,a
008a 2002 jr nz,008eh
008c cb96 res 2,(hl)
008e cb7f bit 7,a
0090 2002 jr nz,0094h
0092 cb9e res 3,(hl)
0094 f3 di
0095 3a17c0 ld a,(0c017h)


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 11/04/2020 à 10h41
:| , moi j'intercale juste des routines dh'abitude qui joue avec la ram :siffle

en tout cas merci de ton attention JIPE :top Edité par CRT Le 11/04/2020 à 11h04
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie