GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

[ 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 Précédent  1 ... 6 ... 8, 9, 10 ... 21 ... 34  Suivant

Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par dub Mer 18 Fév 2015 - 19:34

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

dub
Patient contaminé

Nombre de messages : 476
Date d'inscription : 27/08/2008

http://www.pixelretro.com

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Stef Mer 18 Fév 2015 - 19:55

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
Stef
Interne
Interne

Masculin Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Jeu 19 Fév 2015 - 9:44

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 ?
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par dub Jeu 19 Fév 2015 - 10:58

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.
dub
dub
Patient contaminé

Masculin Nombre de messages : 476
Age : 54
Localisation : France
Date d'inscription : 27/08/2008

http://www.pixelretro.com

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Jeu 19 Fév 2015 - 12:04

Dub:Un seul mot ... MERCI Mr. Green

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
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par dub Jeu 19 Fév 2015 - 12:18

Ok. tant mieux MDR

J'allais t'envoyer
help do
do pc = 0
http://www.ballyalley.com/ml/ml_tools/MESS_Debugger.txt
dub
dub
Patient contaminé

Masculin Nombre de messages : 476
Age : 54
Localisation : France
Date d'inscription : 27/08/2008

http://www.pixelretro.com

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Invité Jeu 19 Fév 2015 - 12:24

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
avatar
Invité
Invité


Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Jeu 19 Fév 2015 - 12:45

Dub: Mr. Green. 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 ?
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par F.L Jeu 19 Fév 2015 - 12:54

pour repondre à sa place, et si je ne dis pas de betises,
la rom compilée avec Bex utilise un fichier raw . @+
F.L
F.L
Docteur *
Docteur *

Masculin Nombre de messages : 3432
Age : 49
Localisation : hérault
Date d'inscription : 11/06/2012

http://fl.basic.free.fr

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Invité Jeu 19 Fév 2015 - 13:03

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 :
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 !! Wink
avatar
Invité
Invité


Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Jeu 19 Fév 2015 - 16:26

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.
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Invité Jeu 19 Fév 2015 - 16:40

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é.
avatar
Invité
Invité


Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Jeu 19 Fév 2015 - 17:47

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
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Invité Jeu 19 Fév 2015 - 18:29

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.
avatar
Invité
Invité


Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Jeu 19 Fév 2015 - 19:47

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 ... :) ...
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Invité Jeu 19 Fév 2015 - 20:28

On va y arriver !!!! Razz Mr. Green

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. Wink

A bientôt !
avatar
Invité
Invité


Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Ven 20 Fév 2015 - 9:08

Ah ben voilà ... Mr. Green

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
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Invité Ven 20 Fév 2015 - 9:50

Alleluia !! Very Happy
Oui je pense que ca venait du header manquant car il pose problème avec Bex. Wink
Bon courage !
avatar
Invité
Invité


Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Ven 20 Fév 2015 - 15:25

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.
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par F.L Sam 21 Fév 2015 - 14:20

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
@+
F.L
F.L
Docteur *
Docteur *

Masculin Nombre de messages : 3432
Age : 49
Localisation : hérault
Date d'inscription : 11/06/2012

http://fl.basic.free.fr

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Sam 21 Fév 2015 - 23:26

Merci, c'est pas de l'asm, mais ca va quand même me permettre de comprendre à quoi servent les adresses ... :)
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Lun 23 Fév 2015 - 14:34

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 ?
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par nemokantio Lun 23 Fév 2015 - 18:07

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.
avatar
nemokantio
Patient contaminé

Masculin Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Stef Lun 23 Fév 2015 - 20:03

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
Stef
Interne
Interne

Masculin Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Lun 23 Fév 2015 - 20:29

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 .... papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 435303

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
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Invité Lun 23 Fév 2015 - 20:34

Je n'ai qu'un mot a dire : merci !!!! Very Happy
Je reprend le taf demain et donc moins de temps pour le dev. 
A bientôt.
avatar
Invité
Invité


Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par nemokantio Lun 23 Fév 2015 - 20:55

@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.


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
avatar
nemokantio
Patient contaminé

Masculin Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Lun 23 Fév 2015 - 22:18

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à ?... Mr. Green

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
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par nemokantio Mar 24 Fév 2015 - 9:35

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.
Mr. Green 

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 !
avatar
nemokantio
Patient contaminé

Masculin Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par Stef Mar 24 Fév 2015 - 10:40

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
Stef
Interne
Interne

Masculin Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

papi commando - [ TERMINE ] - Papi Commando Megadrive Edition ! - Page 9 Empty Re: [ TERMINE ] - Papi Commando Megadrive Edition !

Message par tfdi Mar 24 Fév 2015 - 17:10

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.
tfdi
tfdi
Patient contaminé

Masculin Nombre de messages : 550
Age : 52
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

Page 9 sur 34 Précédent  1 ... 6 ... 8, 9, 10 ... 21 ... 34  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum