[ TERMINE ] - Papi Commando Megadrive Edition !
+32
upsilandre
neimad
Rahow
xtopher
Ricco59_59
pckid
oofwill
vincent2105
ShiningBZH
ichigobankai
Spirale
iGeekPSG
kawickboy
beddy
Kouris
buz18
grostonton
Kristof
nemokantio
MrBurns11
Doc_Skunkovitch
Stef
tfdi
iwillbeback
chiss
F.L
bfg
Bonaf
philip
dub
Urbinou
drfloyd
36 participants
Page 9 sur 34
Page 9 sur 34 • 1 ... 6 ... 8, 9, 10 ... 21 ... 34
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Avec Mess, j'ai un trace en temps réel de Monster world 4.
Alors ce que tu fais, tu lances en ligne de commande :
mess megadriv -cart nomdufichier.bin -debug
voili voilou, ça marche peut être avec mame, mais pas testé.
Sinon, si tu passes par une interface genre messui, tu as dans les propriétés un onglet debug, avec un activate integrated debugger.
Ah oui, après il faut aller dans le menu debug et choisir "Run to next CPU" pour aller sur le Z80
Alors ce que tu fais, tu lances en ligne de commande :
mess megadriv -cart nomdufichier.bin -debug
voili voilou, ça marche peut être avec mame, mais pas testé.
Sinon, si tu passes par une interface genre messui, tu as dans les propriétés un onglet debug, avec un activate integrated debugger.
Ah oui, après il faut aller dans le menu debug et choisir "Run to next CPU" pour aller sur le Z80
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
tfdi a écrit:Concrètement, j'ai pris Gens2.12 (classique), quand je charge une rom, il l'exécute directement, ce qui fait qu'évidemment, je n'ai pas le temps de voir quoi que ce soit.
Comment faire pour qu'il n'execute pas la rom directement, et pouvoir la tracer dès la premiere ligne de code ?
Ca peut paraitre c** ... mais je n'ai rien vu au niveau des menus.
Si tu traces dés le début du code, tu vas mettre un temps dingue pour retrouver l'endroit ou tu voulais tracer le code.
Peut être Gens Tracer pourrait effectivement t'aider, sinon dans le debugger de Gens 2.12 classique, en appuyant sur TAB tu fais un reset général, du coup tu te retrouves au tout début de l'execution, après tu traces. Voici un topic avec quelques unes des commandes supportées par le debugger de Gens mais tu en as plus ('H' pour générer une H-Int et 'J' pour générer une V-Int si je me souviens bien) :
http://forums.sonicretro.org/index.php?showtopic=1058
Mais sinon ce que je te conseilles, c'est de faire une boucle infinie juste avant l'endroit ou tu veux tracer ton code.
Ainsi le code se loque à cette endroit et avec le debugger tu passes l'instruction qui fait la boucle (BEQ / BNE ou BRA suivant la compilateur) avec la touche 'N', cette touche te permet d'incrémenter le Program Counter de 2, selon les instructions il faut appuyer 1 ou plusieurs fois sur 'N' pour passer à l'instruction suivante.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Dub:Tu as un lien pour télécharger Mess directement stp ?
Stef:Sur Gens, tu fais Open ROM, la rom s'exécute directement. J'ai beau essayé d'appuyer sur X, qui est censé afficher l'écran de debug, il ne se passe rien. Si j'affiche la fenetre de débug du 68000 et du Z80 en passant par les menus, je vois le programme s'executer, avec le rafraichissement des registres, mais l'appui sur T ca fait que dalle .... ^^. Si j'appui sur TAB, il ré-exécute la ROM directement.
Si je le mets en pause, évidemment, il n'est pas au début du code, mais affiche la ligne en partant du PC, ce qui est normal. Une fois en pause et sur la ligne du PC, j'ai beau appuyer sur T, ca fait que dalle. Je n'ai pas vu dans le lien du forum que tu donnes la possibilité de changer la valeur des registres, pas possible non plus ?
Stef:Sur Gens, tu fais Open ROM, la rom s'exécute directement. J'ai beau essayé d'appuyer sur X, qui est censé afficher l'écran de debug, il ne se passe rien. Si j'affiche la fenetre de débug du 68000 et du Z80 en passant par les menus, je vois le programme s'executer, avec le rafraichissement des registres, mais l'appui sur T ca fait que dalle .... ^^. Si j'appui sur TAB, il ré-exécute la ROM directement.
Si je le mets en pause, évidemment, il n'est pas au début du code, mais affiche la ligne en partant du PC, ce qui est normal. Une fois en pause et sur la ligne du PC, j'ai beau appuyer sur T, ca fait que dalle. Je n'ai pas vu dans le lien du forum que tu donnes la possibilité de changer la valeur des registres, pas possible non plus ?
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
https://www.dropbox.com/s/mwege3sjqg5bmby/messui149.zip?dl=0
Un petit lien vers mess 0.149 Normalement, c'est bon. J'ai enlevé toutes les roms de machines inutiles pour toi. L'interêt de mess, c'est tu peux debug un bon paquet de console et d'ordi ou d'arcades...
Dans le menu debug, tu peux ouvrir une nouvelle fenêtre pour avoir le Z80 d'un côté et le 68000 de l'autre. F5 pour démarrer et F10 pour looper. Tu as le menu Devics ou Images pour mounter l'image megadrive.
Un petit lien vers mess 0.149 Normalement, c'est bon. J'ai enlevé toutes les roms de machines inutiles pour toi. L'interêt de mess, c'est tu peux debug un bon paquet de console et d'ordi ou d'arcades...
Dans le menu debug, tu peux ouvrir une nouvelle fenêtre pour avoir le Z80 d'un côté et le 68000 de l'autre. F5 pour démarrer et F10 pour looper. Tu as le menu Devics ou Images pour mounter l'image megadrive.
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Dub:Un seul mot ... MERCI
Il ne me manque qu'un petit truc, on peut modifier le contenu des registres ? Si oui comment ? Y a une doc quelque part ?
EDIT:C'est bon j'ai trouvé pour modifier le contenu des registres, c'est un SUPER OUTIL !! ... :)
Vetea:Tu peux me passer le fichier son que tu as utilisé pour TestPapi.bin stp ?... j'ai un problème de son sous l'émulateur Fusion que je ne comprends pas avec les 2 fichiers RAW que tu m'as passé.
Il ne me manque qu'un petit truc, on peut modifier le contenu des registres ? Si oui comment ? Y a une doc quelque part ?
EDIT:C'est bon j'ai trouvé pour modifier le contenu des registres, c'est un SUPER OUTIL !! ... :)
Vetea:Tu peux me passer le fichier son que tu as utilisé pour TestPapi.bin stp ?... j'ai un problème de son sous l'émulateur Fusion que je ne comprends pas avec les 2 fichiers RAW que tu m'as passé.
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Ok. tant mieux
J'allais t'envoyer
help do
do pc = 0
http://www.ballyalley.com/ml/ml_tools/MESS_Debugger.txt
J'allais t'envoyer
help do
do pc = 0
http://www.ballyalley.com/ml/ml_tools/MESS_Debugger.txt
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Pas de problème !
Voici les 2 fichiers sons en .OGG d'origine :
https://dl.dropboxusercontent.com/u/108143465/Sons%20.OGG%20Papi%20x%202.zip
Voici les 2 fichiers sons en .OGG d'origine :
https://dl.dropboxusercontent.com/u/108143465/Sons%20.OGG%20Papi%20x%202.zip
Invité- Invité
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Dub: . Merci pour la doc du debuggueur :)
Vetea:Merci pour les fichiers :). Ta rom TestPapi.bin, c'est du bex compilé ? J'ai vu que c'est le 68000 qui bosse pour jouer la musique, et pas le Z80. Le format de fichier qu'utilise Bex, c'est lequel, l'ogg ?
Moi, quand j'ai compilé ton source asm, avec la routine qui utilise le Z80, aucun soucis de compilation, sauf que quand je lance la rom avec Fusion, c'est pas une musique que j'ai, ce sont simplement des "bruits". Aucun crash, rien de particulier, si ce n'est que je n'ai pas la musique, t'as la musique sous fusion toi ?
Vetea:Merci pour les fichiers :). Ta rom TestPapi.bin, c'est du bex compilé ? J'ai vu que c'est le 68000 qui bosse pour jouer la musique, et pas le Z80. Le format de fichier qu'utilise Bex, c'est lequel, l'ogg ?
Moi, quand j'ai compilé ton source asm, avec la routine qui utilise le Z80, aucun soucis de compilation, sauf que quand je lance la rom avec Fusion, c'est pas une musique que j'ai, ce sont simplement des "bruits". Aucun crash, rien de particulier, si ce n'est que je n'ai pas la musique, t'as la musique sous fusion toi ?
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
pour repondre à sa place, et si je ne dis pas de betises,
la rom compilée avec Bex utilise un fichier raw . @+
la rom compilée avec Bex utilise un fichier raw . @+
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Oui c'est du BEX compilé avec les 2 fichiers sons RAW en 8 bits unsigned à 12Khz.
La ROM TestPapi.bin n'utilise pas le Z80, il s'agit d'une routine que m'avait donné F.L utilisant le 68000.
Si tu veux travailler avec la version Z80 voici ma dernière ROM de test :
https://dl.dropboxusercontent.com/u/108143465/Papi%20Z80%20Music.bin
Le listing BEX :
Tu dois avoir le Driver Z80 ainsi que le .ASM du lecteur.
Voila, j'espère que tu as tout !!
La ROM TestPapi.bin n'utilise pas le Z80, il s'agit d'une routine que m'avait donné F.L utilisant le 68000.
Si tu veux travailler avec la version Z80 voici ma dernière ROM de test :
https://dl.dropboxusercontent.com/u/108143465/Papi%20Z80%20Music.bin
Le listing BEX :
- Code:
'On charge notre routine ASM principale
incasm Z80wavp.asm
'On joue la 1ere piste
call codestart
init:
gosub screene
Screene:
cls
ink 0
pallettes paletteTITRE,1,0,64
palettes paletteGENERALE,0,0,16
'Ecran titre
loadtiles tilesTITRE,545,160
Reload mapdataTITRE
For Y = 1 To 25
For X = 1 To 40
ReadInt AuxInt
DrawTile 160+AuxInt+palette(1), X-1, Y
Next
Next
'Boucle principale
while 1
locate 20,7
print "PRESS A TO RESET MUSIC !!"
if joypad(0).6 then valid=2
if valid=2 then
call init_Z80 'Arret de la musique & Init Hard du Z80
valid=3
end if
'Temporisation de l'initialisation
if valid=3 then Ta++
if ta>25 then
ta=1
valid=1
call codestart 'On joue la piste 2
end if
wend
return
tilesTITRE:
datafile TilePapi.bin,BIN
paletteTITRE:
datafile PalettePapi.bin,BIN
mapdataTITRE:
datafile TileMapPapi.bin,BIN
paletteGENERALE: 'Palette des éléments du jeu
dataint $0000,$00EE,$0224,$004E,$000E,$00E0,$0E00,$008E ' couleurs 0,1,2,3,4,5,6,7
dataint $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ' couleurs 8,9,A,B,C,D,E,F
Tu dois avoir le Driver Z80 ainsi que le .ASM du lecteur.
Voila, j'espère que tu as tout !!
Invité- Invité
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
J'ai dû mal m'exprimer, désolé.
Il me faudrait un source complet fonctionnel qui joue 1 fichier musique, avec le .asm pour le code 68000, le BIN du Z80, et le fichier musique prêt à être utilisé. De telle manière que je n'ai plus qu'à compiler le tout avec asm68k, pour vérifier que tout est OK.
Là actuellement, j'ai un source asm, un bin du Z80 de 448 octets, et 2 fichiers RAW, quand je compile le tout en BIN et que j'essaye ca sous FUSION, pas de plantage rien, j'ai des "bruits" mais c'est pas la musique, et ca s'arrête là. Aucune erreur à la compilation, FUSION accepte bien la ROM, le Z80 tourne bien, mais je n'ai pas de musique !?
J'en déduis donc que ma "base" de travail n'est pas bonne.
Il me faudrait un source complet fonctionnel qui joue 1 fichier musique, avec le .asm pour le code 68000, le BIN du Z80, et le fichier musique prêt à être utilisé. De telle manière que je n'ai plus qu'à compiler le tout avec asm68k, pour vérifier que tout est OK.
Là actuellement, j'ai un source asm, un bin du Z80 de 448 octets, et 2 fichiers RAW, quand je compile le tout en BIN et que j'essaye ca sous FUSION, pas de plantage rien, j'ai des "bruits" mais c'est pas la musique, et ca s'arrête là. Aucune erreur à la compilation, FUSION accepte bien la ROM, le Z80 tourne bien, mais je n'ai pas de musique !?
J'en déduis donc que ma "base" de travail n'est pas bonne.
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Quand tu compile avec Asm68K, n'oublies pas le "/p", en mode pure binary.
Après je t'ai tout donné mais je vais revérifié.
Après je t'ai tout donné mais je vais revérifié.
Invité- Invité
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Le code s'exécute, c'est pas un problème de compilation.
Y a un problème de son, ou y a peut etre une version de soft que j'utilise qui ne va pas, je ne sais pas, mais en tout cas là simple compilation avec les fichiers tel que j'ai, ca ne fonctionne pas, y a pas de musique, juste des "bruits".
Tiens, j'ai refait un fichier rar complet avec ce que j'utilise, y a le BIN, et tout ce que qu'il faut pour compiler. Tu peux essayer de compiler et de lancer sous FUSION stp ? Essaye aussi le fichier player.bin sous fusion, tu verras ce que ca fait.
Le fichier rar:
http://sendbox.fr/pro/rpwok4xzkfmv/Test_play_MDZ80.rar.html
Y a un problème de son, ou y a peut etre une version de soft que j'utilise qui ne va pas, je ne sais pas, mais en tout cas là simple compilation avec les fichiers tel que j'ai, ca ne fonctionne pas, y a pas de musique, juste des "bruits".
Tiens, j'ai refait un fichier rar complet avec ce que j'utilise, y a le BIN, et tout ce que qu'il faut pour compiler. Tu peux essayer de compiler et de lancer sous FUSION stp ? Essaye aussi le fichier player.bin sous fusion, tu verras ce que ca fait.
Le fichier rar:
http://sendbox.fr/pro/rpwok4xzkfmv/Test_play_MDZ80.rar.html
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Le player.bin donne un écran noir sans sons.
Pour le reste, je vais regarder ça sur mon T200 ou se trouvent tous mes travaux.
Pour le reste, je vais regarder ça sur mon T200 ou se trouvent tous mes travaux.
Invité- Invité
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Y a pas de son au départ, si t'attends un peu, à un moment t'entends des "bruits". Le Z80 pédale bien pourtant.
Compile avec mon asm68k que j'ai mis dans le fichier, qu'on ai la même version, et prend tous les fichiers que je t'ai envoyé pour voir si le BIN au final fonctionne, moi ca ne le fait pas.
Après, si toi tu compiles d'autres fichiers et qu'au final ca tourne, renvoi moi le pack complet, avec ton asm68k stp ... :) ...
Compile avec mon asm68k que j'ai mis dans le fichier, qu'on ai la même version, et prend tous les fichiers que je t'ai envoyé pour voir si le BIN au final fonctionne, moi ca ne le fait pas.
Après, si toi tu compiles d'autres fichiers et qu'au final ca tourne, renvoi moi le pack complet, avec ton asm68k stp ... :) ...
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
On va y arriver !!!!
Voici le pack complet avec lequel j'ai pu compiler avec ASM68K ( compris dedans ) :
- 2 fichiers sons RAW - 8 Bits unsigned 12Khz
- Code source Z80WAVP
- Drivers Z80
- Rom Test.bin
- ASM68K
https://dl.dropboxusercontent.com/u/108143465/Projet%20MD%20-%20Z80%20Music.zip
Dans cette version, 2 morceaux sont joués à la suite.
Je pense que cette fois ci, tu as toutes les sources.
A bientôt !
Voici le pack complet avec lequel j'ai pu compiler avec ASM68K ( compris dedans ) :
- 2 fichiers sons RAW - 8 Bits unsigned 12Khz
- Code source Z80WAVP
- Drivers Z80
- Rom Test.bin
- ASM68K
https://dl.dropboxusercontent.com/u/108143465/Projet%20MD%20-%20Z80%20Music.zip
Dans cette version, 2 morceaux sont joués à la suite.
Je pense que cette fois ci, tu as toutes les sources.
A bientôt !
Invité- Invité
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Ah ben voilà ...
Là après compilation il y a bien la zik .... ^^
Il manquait donc l'entête de la rom dans le source asm. Ok, je vais pouvoir zieuter ca maintenant :)
Là après compilation il y a bien la zik .... ^^
Il manquait donc l'entête de la rom dans le source asm. Ok, je vais pouvoir zieuter ca maintenant :)
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Alleluia !!
Oui je pense que ca venait du header manquant car il pose problème avec Bex.
Bon courage !
Oui je pense que ca venait du header manquant car il pose problème avec Bex.
Bon courage !
Invité- Invité
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
J'imagine qu'une rom avec 2 headers dans le fichier BIN, ca ne doit pas plaire du tout à l'émulateur ... ^^.
Quand tu compiles du code avec BEX, il génère déjà un Header, si tu mets un autre Header dans le source ASM, je comprend bien que ca ne peut pas fonctionner ... :)
J'ai maintenant bien compris ton problème, en ayant fait vite fait des modifs dans le source en asm68k, j'ai enfin pu voir ce qu'il se passe plus exactement.
D'après mes premiers tests et mes premières déductions, ca va être plus compliqué que prévu, il faut modifier le code en asm68k (ca c'est pas un problème), mais il faut aussi modifier le code en asm Z80. C'est là que ca risque de poser un problème, c'est que le Z80 moi j'y connais que dalle ... ^^.
Quelqu'un aurait un descriptif de la structure exacte d'un fichier RAW ?
Sinon, la routine en asm68k qui permet de "jouer" un fichier raw sur la megadrive que t'as filé FL pourrait m'aider.
Quand tu compiles du code avec BEX, il génère déjà un Header, si tu mets un autre Header dans le source ASM, je comprend bien que ca ne peut pas fonctionner ... :)
J'ai maintenant bien compris ton problème, en ayant fait vite fait des modifs dans le source en asm68k, j'ai enfin pu voir ce qu'il se passe plus exactement.
D'après mes premiers tests et mes premières déductions, ca va être plus compliqué que prévu, il faut modifier le code en asm68k (ca c'est pas un problème), mais il faut aussi modifier le code en asm Z80. C'est là que ca risque de poser un problème, c'est que le Z80 moi j'y connais que dalle ... ^^.
Quelqu'un aurait un descriptif de la structure exacte d'un fichier RAW ?
Sinon, la routine en asm68k qui permet de "jouer" un fichier raw sur la megadrive que t'as filé FL pourrait m'aider.
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
tfdi a écrit:Sinon, la routine en asm68k qui permet de "jouer" un fichier raw sur la megadrive que t'as filé FL pourrait m'aider.
hello
voici pour t'aider :
https://www.dropbox.com/sh/sf3uh8b0s0mjods/AABqH0b0_EXMzBkPgJnSVlqha?dl=0
dans ce dossier, tu as la routine et le fichier raw qui va avec. cette routine vient de moon, du forum Bex
@+
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Merci, c'est pas de l'asm, mais ca va quand même me permettre de comprendre à quoi servent les adresses ... :)
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Y a quelqu'un qui connait l'asm Z80 qui pourrait faire des modifs du programme chargé de faire jouer le fichier au Z80 en collaboration avec moi ?
Je peux m'occuper de la partie en asm68k, mais il me faudrait quelqu'un pour la partie en asm Z80.
Le but serait de pouvoir faire jouer la zik par le Z80, en boucle ou pas, de choisir et de pouvoir faire "tourner" les ziks, à volonté, dans un premier à partir du code asm68k (le 68k effectue la mise en place de la routine, envoi les adresses et la longueur et éventuellement des options au Z80) et le Z80 joue le rôle du player en suivant les "ordres" du 68k. Au final, on devrait même pouvoir intégrer ca dans BEX pour que ce soit accessible à partir du basic, et donc par les développeurs qui ne touchent pas à l'asm.
Un volontaire pour bosser là dessus avec moi ?
Je peux m'occuper de la partie en asm68k, mais il me faudrait quelqu'un pour la partie en asm Z80.
Le but serait de pouvoir faire jouer la zik par le Z80, en boucle ou pas, de choisir et de pouvoir faire "tourner" les ziks, à volonté, dans un premier à partir du code asm68k (le 68k effectue la mise en place de la routine, envoi les adresses et la longueur et éventuellement des options au Z80) et le Z80 joue le rôle du player en suivant les "ordres" du 68k. Au final, on devrait même pouvoir intégrer ca dans BEX pour que ce soit accessible à partir du basic, et donc par les développeurs qui ne touchent pas à l'asm.
Un volontaire pour bosser là dessus avec moi ?
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Je veux bien essayer, mais par contre tu devras me dire quelles modifs faire...
Et là j'ai repris le boulot donc j'aurai moins de temps.
Et là j'ai repris le boulot donc j'aurai moins de temps.
nemokantio- Patient contaminé
- Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Je vais essayer de faire un wrapper pour les drivers sons SGDK pour BEX, je pense que ca aidera pas mal de monde car c'est un probleme qui revient souvent (gestion du son avec bex).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
En fait, dans un premier temps, je ne vois pas du tout comment fonctionne l'exécution en // du Z80. Tu pourrais désassembler le source du Z80 et le commenter ? Il fait 448 octets, ca va être rapide à faire pour quelqu'un qui connait le Z80.
J'ai essayé plusieurs trucs à partir du code 68k, mais il y a un truc qui m'échappe forcément, ca ne fonctionne pas, et le Z80 n'en fait qu'à ca tête ....
Bizarrement, en voulant tracer la rom sous mess, dès que je charge la rom compilée, mess "plante" direct, impossible de tracer cette rom, il doit manquer un truc lors de la compilation (checksum?).
Fusion signale une erreur de checksum à l'exécution, mais il le lance quand même, je suppose que mess doit planter à cause de l'erreur de checksum, mais ce n'est qu'une supposition.
Stef:Dans l'idéal, ce serait bien que ce soit le Z80 qui joue la zik, pour que le 68k fasse autre chose pendant ce temps.
J'ai essayé plusieurs trucs à partir du code 68k, mais il y a un truc qui m'échappe forcément, ca ne fonctionne pas, et le Z80 n'en fait qu'à ca tête ....
Bizarrement, en voulant tracer la rom sous mess, dès que je charge la rom compilée, mess "plante" direct, impossible de tracer cette rom, il doit manquer un truc lors de la compilation (checksum?).
Fusion signale une erreur de checksum à l'exécution, mais il le lance quand même, je suppose que mess doit planter à cause de l'erreur de checksum, mais ce n'est qu'une supposition.
Stef:Dans l'idéal, ce serait bien que ce soit le Z80 qui joue la zik, pour que le 68k fasse autre chose pendant ce temps.
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Je n'ai qu'un mot a dire : merci !!!!
Je reprend le taf demain et donc moins de temps pour le dev.
A bientôt.
Je reprend le taf demain et donc moins de temps pour le dev.
A bientôt.
Invité- Invité
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
@tfdi
Le source du fichier z80wavd, que j'ai passé en structure de l'assembleur de winape.
Mais qui compile bien en .bin et a donné le fichier de 448 octets.
Il faut enlever le write "Z80wavd.bin" si tu utilises un autre assembleur z80.
Le source du fichier z80wavd, que j'ai passé en structure de l'assembleur de winape.
Mais qui compile bien en .bin et a donné le fichier de 448 octets.
Il faut enlever le write "Z80wavd.bin" si tu utilises un autre assembleur z80.
- Code:
; NOTE This file is in DOS (ASCII) encoding !!! Use EDIT or change the font
; to TERMINAL if you're using any non-DOS text editor !!!
; TæEE co.(TM) Z80 WAVPLAY version 0.1
; If you're going to make something out of this, don't hesitate to contact
; me if you need any help !!! I would like to know if you are going to use
; this in your program(s).
; If you modify this code you must send me the modified version of this !!!
; If you don't agree, you're not allowed to modify this code !!!
; E-mail tmeeco@hot.ee, tmeeco@vongodric.com
; Web-site http//www.hot.ee/tmeeco
; Copyright (C) 2007 TæEE co.(TM)
write "Z80WAVD.BIN" ; propre à l'assembleur de winape pour écrire un fichier bin
FMPORT1 EQU &4000 ; YM2612 Data port, set 1
FMPORT2 EQU &4001 ; YM2612 Index port, set 1
FMPORT3 EQU &4002 ; YM2612 Data port, set 2
FMPORT4 EQU &4003 ; YM2612 Index port, set 2
BANKREG EQU &6000 ; Bank register
WAVADDRL EQU &0040 ; WAV file address L
WAVADDRM EQU &0041 ; WAV file address M
WAVADDRH EQU &0042 ; WAV file address H
COMMAND EQU &0043 ; Command from 68K program
TIMECONS EQU &0044 ; Time constant
BANKS EQU &0045 ; Bank switch counter
WAVLENL EQU &0046 ; WAV lenght L
WAVLENM EQU &0047 ; WAV lenght M
WAVLENH EQU &0048 ; WAV lenght H
BPLAYL EQU &0049 ; Bytes played L
BPLAYM EQU &004A ; Bytes played M
BPLAYH EQU &004B ; Bytes played H
; ########################### Code starts here ##############################
ORG &0000
DI ; Disable ints
LD SP, &2000 ; Setup stack
IM &01 ; Set int mode 1
JP StartOfProg ; Jump to start
DB "TæEE co.(TM) Z80 WAVPLAY - ver 0.1 - 2007.JAN "
DS 1 ; modif par moi pour s'aligner sur le org &0038
; ########################## Interrupt handler ##############################
ORG &0038
InterruptHandler ; Do nothing in this program
RETI
DS 70 ; modif par moi sur s'aligner sur le org &0080
; ############################## Main code ##################################
ORG &0080
StartOfProg
CALL ResetYM2612
CALL InitYM2612
CheckIfSTOP1 ; Check if we're STOPPED
LD A, (COMMAND)
OR A
JP Z, CheckIfSTOP1 ; Loop while COMMAND = 0
CALL SetupBankStuff
PCMloop
LD A, (HL) ; Load sample
INC HL ; Increase address
INC DE ; Increase Bank end counter
LD B, H ; PUSH HL - Use reg because its faster
LD C, L
LD (FMPORT2), A ; Output sample, this code is slow enough (can't play
; over 32KHz) so we don't need to "wait before write
; loop". The rest of the code acts as it.
CheckIfSTOP ; Check if we're STOPPED
LD A, (COMMAND)
OR A
JP Z, CheckIfSTOP ; Loop while COMMAND = 0
EXX ; Do nothing to get desired sample rate
LD A, (TIMECONS)
LD B, A ; Comment all of it to get maximum speed while
DelayLoop ; keeping full functionality
DJNZ DelayLoop
EXX
; JP WAVnotPlayed ; Uncomment for maximum speed (+ static after the end)
LD HL, BPLAYL ; Increase bytes played counter
LD A, (HL) ; NOTE I H8 Z80 when it comes to WORDs and more !!!
ADD A, 1
LD (HL), A
INC HL
LD A, (HL)
ADC A, 0
LD (HL), A
INC HL
LD A, (HL)
ADC A, 0
LD (HL), A
LD HL, WAVLENL ; Check if WAV is played
LD A, (BPLAYL)
CP (HL)
JP NZ, WAVnotPlayed
INC HL
LD A, (BPLAYM)
CP (HL)
JP NZ, WAVnotPlayed
INC HL
LD A, (BPLAYH)
CP (HL)
JP NZ, WAVnotPlayed
CALL SetupBankStuff
JP PCMloop
WAVnotPlayed
LD H, B ; POP HL
LD L, C
LD A, &80 ; Check if bank is played
CP D
JP NZ, NoBankChange
LD HL, BANKS ; Setup bank
INC (HL)
LD A, (BANKS)
LD HL, BANKREG
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
XOR A
LD (HL), A
LD (HL), A
LD DE, 0 ; Reset Bank end counter
LD H, &80 ; Start from start of Bank
NoBankChange
JP PCMloop
; ################## All the routines we're going to use ####################
SetupBankStuff ; Setup Bank, address within Bank and Bank counter
LD A, (WAVADDRM) ; Set Bank
RLCA
LD HL, BANKREG
LD (HL), A
LD A, (WAVADDRH)
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
RRA
LD (HL), A
XOR A ; Setting last 2 bank-bits is pointless because I'm
LD (HL), A ; going to load data only from the ROM area.
LD (HL), A
LD (BPLAYL), A ; Reset Bytes played counter
LD (BPLAYM), A
LD (BPLAYH), A
LD A, (WAVADDRL) ; Set Z80 address in Bank
LD L, A
LD A, (WAVADDRM)
OR &80
LD H, A
LD A, (WAVADDRM) ; Set Bank count
RLA
AND &01
LD B, A
LD A, (WAVADDRH)
SLA A
OR B
LD (BANKS), A
LD BC, 4 ; Get lenght of WAV
ADD HL, BC
LD A, (HL)
LD (WAVLENL), A
INC HL
LD A, (HL)
LD (WAVLENM), A
INC HL
LD A, (HL)
LD (WAVLENH), A
LD BC, 51 ; Skip the rest of the header
ADD HL, BC
LD A, H
AND &7F
LD D, A
LD E, L
RET
ResetYM2612 ; Quick n' Dirty OPL2/OPL3 style reset on YM2612
LD B, &21
FMresetLoop ; I know that I'm writing to some non-existant regs
XOR A ; but if not, this won't be dirty anymore
CALL WriteFMset1
CALL WriteFMset2
INC B
LD A, &B6
CP B
JP NZ, FMresetLoop
RET
InitYM2612
LD A, &80 ; Enable DAC
LD B, &2B
CALL WriteFMset1
LD A, &C0 ; CH6 both channels
LD B, &B6
CALL WriteFMset2
LD A, &80 ; Point to DAC reg
LD B, &2A
CALL WriteFMset1
RET
WriteFMset1 ; Write data to YM2612 register set 1
LD HL, FMPORT1 ; B = index, A = data
BIT 7, (HL)
JP NZ, WriteFMset1
LD (HL), B
WriteFMset11
BIT 7, (HL)
JP NZ, WriteFMset11
LD (FMPORT2), A
RET
WriteFMset2 ; Write data to YM2612 register set 2
LD HL, FMPORT1 ; B = index, A = data
BIT 7, (HL)
JP NZ, WriteFMset2
LD HL, FMPORT3
LD (HL), B
WriteFMset22
BIT 7, (HL)
JP NZ, WriteFMset22
LD (FMPORT4), A
RET
IdleLoop
JR IdleLoop
ALIGN 448
nemokantio- Patient contaminé
- Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Nemokantio:Super. Bon, mes déductions étaient bonnes, j'avais bien compris ce qu'envoyait le 68k au Z80, et le fonctionnement de "base" entre les 2.
Il reste une chose que je ne comprends pas. J'ai renvoyé au Z80 l'adresse d'une 2ieme zik, réinit l'adresse $A00040, 41 (la routine asm68k n'envoi que l'adresse d'octet L et M), renvoyé un #4 sur $A00044, et un #1 sur $A00043, mais comment lui faire recommencer (au Z80) le nouveau morceau à zéro ? C'est là que je sèche à priori.
J'ai essayé plein de truc, mais j'ai un peu de mal à comprendre comment fonctionner la lecture du fichier par le Z80 ? Interruption ? simple Boucle par le Z80 ? Il faut resetter un truc (chipset son ?) pour qu'il redémarre ?
Bref ... c'est là que tu peux me dire ce qui peut être fait ?
Si c'est une boucle de lecture "basique" ou en interrupt, on peut utiliser un octet genre un flag, dans la ram du Z80, qui si il est mis par exemple à $1, réinit le chipset, et recommence à jouer un morceaux en partant de zéro, en prenant en compte la nouvelle adresse en $A00040-41, et aussi le $A00043 et 44 ?
Si c'est jouable, il ne reste qu'à réserver l'octet à une adresse "fixe" au niveau de la ram du Z80, comme ca au changement de zik, le 68k modifie l'octet donne les nouveaux params, et c'est repartie ?
Il faudrait à ce moment là que dans la boucle de lecture du Z80, en cas de passage de l'octets "flag" de $0 à $1, tu réinitialises ce qu'il faut (chipset son, si il faut?), et qu'il lance la zik à partir du nouveau fichier indiqué par le 68k.
Je ne sais pas si ce que j'écris est vraiment clair là ?...
Si c'est pas faisable, pour une raison x, tu peux m'expliquer plus en détails le fonctionnement de la routine Z80 ?..
On peut se faire un session teamspeak si tu veux pour en discuter plus facilement. Si t'es partant, je t'enverrai en mp l'adresse d'un serveur teamspeak, ce sera peut être plus simple de vive voix ?
Il reste une chose que je ne comprends pas. J'ai renvoyé au Z80 l'adresse d'une 2ieme zik, réinit l'adresse $A00040, 41 (la routine asm68k n'envoi que l'adresse d'octet L et M), renvoyé un #4 sur $A00044, et un #1 sur $A00043, mais comment lui faire recommencer (au Z80) le nouveau morceau à zéro ? C'est là que je sèche à priori.
J'ai essayé plein de truc, mais j'ai un peu de mal à comprendre comment fonctionner la lecture du fichier par le Z80 ? Interruption ? simple Boucle par le Z80 ? Il faut resetter un truc (chipset son ?) pour qu'il redémarre ?
Bref ... c'est là que tu peux me dire ce qui peut être fait ?
Si c'est une boucle de lecture "basique" ou en interrupt, on peut utiliser un octet genre un flag, dans la ram du Z80, qui si il est mis par exemple à $1, réinit le chipset, et recommence à jouer un morceaux en partant de zéro, en prenant en compte la nouvelle adresse en $A00040-41, et aussi le $A00043 et 44 ?
Si c'est jouable, il ne reste qu'à réserver l'octet à une adresse "fixe" au niveau de la ram du Z80, comme ca au changement de zik, le 68k modifie l'octet donne les nouveaux params, et c'est repartie ?
Il faudrait à ce moment là que dans la boucle de lecture du Z80, en cas de passage de l'octets "flag" de $0 à $1, tu réinitialises ce qu'il faut (chipset son, si il faut?), et qu'il lance la zik à partir du nouveau fichier indiqué par le 68k.
Je ne sais pas si ce que j'écris est vraiment clair là ?...
Si c'est pas faisable, pour une raison x, tu peux m'expliquer plus en détails le fonctionnement de la routine Z80 ?..
On peut se faire un session teamspeak si tu veux pour en discuter plus facilement. Si t'es partant, je t'enverrai en mp l'adresse d'un serveur teamspeak, ce sera peut être plus simple de vive voix ?
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Le souci, c'est que je ne suis pas l'auteur de la routine.
Vetea m'avait demandé de lui assembler en bin au départ.
Donc j'essaie de deviner ce qu'elle fait.
Là j'ai l'impression qu'elle boucle sur PCMloop.
Tu as essayé la commande qui réinitialise le z80, il me semble qu'il y en a une.
Sinon on peut toujours essayer de rajouter un test juste avant le JP PCMLoop.
Style : LD A,(&4C) ; on choisit l'adresse &4C pour le flag
OR A
JR NZ,StartOfProg ; saut si pas nul
N'hésite pas à utiliser winape (même si tu n'aimes pas le cpc), son assembleur est très pratique.
Là je ne le ferai pas suis au boulot !
Vetea m'avait demandé de lui assembler en bin au départ.
Donc j'essaie de deviner ce qu'elle fait.
Là j'ai l'impression qu'elle boucle sur PCMloop.
Tu as essayé la commande qui réinitialise le z80, il me semble qu'il y en a une.
Sinon on peut toujours essayer de rajouter un test juste avant le JP PCMLoop.
Style : LD A,(&4C) ; on choisit l'adresse &4C pour le flag
OR A
JR NZ,StartOfProg ; saut si pas nul
N'hésite pas à utiliser winape (même si tu n'aimes pas le cpc), son assembleur est très pratique.
Là je ne le ferai pas suis au boulot !
nemokantio- Patient contaminé
- Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
tfdi a écrit:Stef:Dans l'idéal, ce serait bien que ce soit le Z80 qui joue la zik, pour que le 68k fasse autre chose pendant ce temps.
Tout les drivers que j'ai écris fonctionne que sur le Z80, aucune utilisation du 68000, d'où une intégration probablement facile dans BEX :) Il faut juste réécrire les méthodes de controle du driver en basic (pour envoyer des commandes au driver Z80). Une chose que j'aimerai savoir, est-ce qu'il est facile de placer des fichiers BIN à des emplacements alignés en mémoire avec BEX. Genre si je veux que mon BIN soit aligné sur une adresse multiple de 256, c'est possible ça ? Car mon driver Z80 nécessite que les musiques soient alignées en mémoire.
Sinon le schéma classique de fonctionnement du Z80 dans la MD :
- le 68000 prend le bus du Z80 (Z80 stoppé)
- le 68000 upload le code (driver) du Z80 dans la mémoire de travail (8 ko) du Z80.
- le 68000 rend le BUS au Z80
- le 68000 déclenche un reset du Z80
et c'est parti :)
Ensuite pour envoyer une commande :
- le 68000 prend le bus du Z80 (Z80 stoppé)
- le 68000 écrit les commandes dans les emplacements dédiés de la mémoire du Z80.
- le 68000 rend le BUS au Z80
et c'est tout.
J'imagine que dans BEX tu as quelques fonctions pour controler l'accès au BUS et le reset du Z80 non ?
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: [ TERMINE ] - Papi Commando Megadrive Edition !
Nemokantio:Je suis un buse complète en Z80, je n'ai absolument rien sur mon pc qui permette de compiler du Z80, et mon niveau de connaissance de ce processeur est d'exactement zéro. Je suis incapable d'écrire une seule ligne de code.
Stef:Je ne peux pas te dire pour BEX. Initialement, je voulais filer un coup de main à Vetea, pour qu'il ai sa routine de play de musique via le Z80. Je parle asm68000, et au départ on a démarré la dessus, je m'aperçois par contre qu'en fait, le 68k ne fait pas grand chose .. :) .. et que c'est plus le job d'un programmeur en asm z80.
Vu le peu que j'ai vu, le code en asm68k est enfantin, mais ce n'est pas le 68k qui fait le plus gros job, c'est le z80.
Stef:Je ne peux pas te dire pour BEX. Initialement, je voulais filer un coup de main à Vetea, pour qu'il ai sa routine de play de musique via le Z80. Je parle asm68000, et au départ on a démarré la dessus, je m'aperçois par contre qu'en fait, le 68k ne fait pas grand chose .. :) .. et que c'est plus le job d'un programmeur en asm z80.
Vu le peu que j'ai vu, le code en asm68k est enfantin, mais ce n'est pas le 68k qui fait le plus gros job, c'est le z80.
tfdi- Patient contaminé
- Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010
Page 9 sur 34 • 1 ... 6 ... 8, 9, 10 ... 21 ... 34
Sujets similaires
» [ TERMINE ] - Papi Commando Megadrive Edition !
» [ WIP ] - Papi Commando Tennis Megadrive - SGDK
» Papi Commando - Arcade edition !
» [VDS] Papi commando megadrive :)
» Papi Commando - RAMPAGE ! *Megadrive*
» [ WIP ] - Papi Commando Tennis Megadrive - SGDK
» Papi Commando - Arcade edition !
» [VDS] Papi commando megadrive :)
» Papi Commando - RAMPAGE ! *Megadrive*
Page 9 sur 34
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum