MSX Village forum

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

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 03/04/2020 à 15h20

Reprise du message précédent

sans être indiscret tu travaille sur quel jeu ?

je te met 2 jeux qui ont étés bricolés Maze Runner et The KIng of Swamp , en fait les Disc Station 27-2 et 30-2 ont vu leur loader shuntés pour demarrer directement les jeux mais ils font toujours 720k

Downloads.rar


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 03/04/2020 à 15h42
king of swamp II #32-2

et merci pour le liens des 2 de fait déjà Edité par CRT Le 03/04/2020 à 15h44
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 03/04/2020 à 16h29
un petit utilitaire qui permet de fouiller dans les DSk
https://sites.google.com/site/slumpmax/development/msx-home-computer/msxsee


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 04/04/2020 à 02h38
bon j'ai un peu bloqué :fou

Voila la base de l'algo pour "king swamp II" #32-2

note: j'ai l'habitude pour différencier dans mes notes de mettre $ devant l'adresse quand je parle en boutisme comme le cpu en little-indian , et derriere quand je parle en big-indian

J'ai analysé la ram:
-Dès que le menu est là (et meme 1ou 2seconde avant qu'il apparaisse à l’écran) , le byte 000000$ de la "ram mapped" a la valeur c3 ,
-quand le jeu est lancé le byte 000012$ de la "ram mapped" a la valeur 26

l'algo à faire est :
Si "000000$ = C3" ET "000012$ 26" ALORS "mettre input space"

ce qui donne en langage z80 :

sauvegarde de A avant de commencer
32 xx xx save A quelque part dans la ram avant de commencer
regarde si $000000 = c3
3A 00 00 charge $000000 en A
FE c3 compare à C3
28 02 si = c3 va à regarde si $120000 ≠ 26
18 07 va à retour routine jeu
regarde si $120000 = 26
3A 12 00 charge $120000 en A
FE 26 compare à 26
20 06 si pas 26 va a mettre input espace
retour routine jeu
3A xx xx remet A comme avant
C3 xx xx rejump routine jeu
mettre input espace
xxxxxx
xxxxxxx
retour routine jeu
3A xx xx remet A comme avant cette routine
C3 xx xx rejump routine jeu

!! peut-être il y a des fautes car va t il aller à l'adresse sur 2bytes dans la bonne bank ?? je ne connais le mapping et la bank


Je bloque sur le memory mapping :hum , je ne sais pas ou mettre ca dans la disquette, ni dans quel bank il sera dans le memory mapping du MSX
Pour l'input je comprend pas comment le faire en langage machine , me semble c'est que expliqué pour le logiciel assembleur



je vais aussi essayer pour faire ca plus propre de remplacer l’écran menu par une image noire (comme ca on ne le voit plus une 1/2s) et enlever la musique du menu (sinon on l'entend 2s)

Edité par CRT Le 05/04/2020 à 15h32
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 04/04/2020 à 11h32
pour sauvegarder A il y l'instruction PUSH AF qui sauvegarde le registre
pour le restorer POP AF

https://fr.wikibooks.org/wiki/Programmation_Assembleur_Z80/Jeu_d_instructions


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 04/04/2020 à 13h59
j'ai regardé le loader modifié de maze runner en fait c'est un chargement par secteur

001f fd2ac1fc ld iy,(0fcc1h) Slot 0
0023 dd214100 ld ix,0041h DISSCR dissable screen display
0027 cd1c00 call 001ch Appel 1CH CALSLT
002a af xor a
002b 32ffc0 ld (0c0ffh),a
002e 2103c0 ld hl,0c003h
0031 115fc0 ld de,0c05fh
0034 010800 ld bc,0008h
0037 edb0 ldir
0039 1157c0 ld de,0c057h
003c 0e09 ld c,09h String output DE=adress of string
003e cd7df3 call 0f37dh Appel DOS
0041 0e1a ld c,1ah Set disk transfert adress
0043 110001 ld de,0100h
0046 cd7df3 call 0f37dh Appel DOS
0049 118005 ld de,0580h sector number
004c 21001f ld hl,1f00h H=number of sector to read, L=drive number
004f 0e2f ld c,2fh Absolute sector read
0051 cd7df3 call 0f37dh Appel DOS
0054 c30001 jp 0100h
0057 4c ld c,h
0058 6f ld l,a
0059 61 ld h,c
005a 64 ld h,h
005b 69 ld l,c
005c 6e ld l,(hl)
005d 67 ld h,a


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 04/04/2020 à 16h22
j'ai utilisé ce logiciel pour dessasembler
http://www.inkland.org.uk/dz80/
et j'ai ajouté les commentaires avec un traitement de texte (ConText)


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 04/04/2020 à 16h27
Pour la pile je sais :top , mais j'ai l'habitude de pas m'en servir dans le hacking (toujours peur qu'il efface la plus ancienne valeur de la pile et que le prog doit s'en resservir)

Edité par CRT Le 04/04/2020 à 17h52
   
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 04/04/2020 à 16h32
Merci JP pour le logiciel Edité par CRT Le 04/04/2020 à 16h38
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 04/04/2020 à 16h38
les octets suivants ne sont pas du code mais du texte
0057 4c L
0058 6f o
0059 61 a
005a 64 d
005b 69 i
005c 6e n
005d 67 g


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 04/04/2020 à 18h44
JIPEMSX :
J'ai récupéré un Wiki Japonais sur les Disc Station que j'ai traduit
ci joint en.RAR DS.rar


tu t'es trompé JIPE , c'est l'archive des disc station 25b 26b 28a
   
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 04/04/2020 à 18h47
pour les disc station de mon cotés j'avais trouvé 2 liens sympa :

http://eggerland.msxblue.com/msxjapan.htm

http://giovannimax.blog120.fc2.com/blog-entry-106.html
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 04/04/2020 à 19h33
le bon lien : DS TEXT MSX.rar


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 05/04/2020 à 15h21
je suis entrain d'analyser la doc http://map.grauw.nl/resources/msx_io_ports.php :fou

Pour simuler un appuie sur la touche A de la manette si j'ai bien compris:
faut mettre la valeur 01 au port B (r#15) du PSG GPIO

ce byte il est à quel adresse dans le memory mapping ? Edité par CRT Le 05/04/2020 à 15h58
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 05/04/2020 à 16h12
le Msx ne marche pas avec des adresses en mémoire pour le clavier et les manettes
il se sert de ports I/O input/output

le plus facile est de faire appel aux Routines du Bios
000D5H GTSTCK get joystick status
et
000D8H GTTRIG get trigger button status

quelques livrespour aider : http://www.msxlegend.sitew.com/Livres_et_Notices.A.htm

télécharge pratique du MSX2
et regarde la page 39 du PDF


:noel
Site web    
CRT Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 17/03/2018 à 12h50

Messages: 51

Le 05/04/2020 à 16h22
je pensait qu'il était mirroiré dans le memory mapping :heink
c'est la 1ere fois que je hack sur ordi , je hack des jeux consoles , ca change pleins de chose sur ordi :fou :fou Edité par CRT Le 05/04/2020 à 16h23
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie