MSX Village forum

Le Village Compétences MSXiennes En quoi t'es bon ou un peu ?

RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 10/11/2010 à 13h38
Bonjour tout le monde,

Je suis en train de développer un jeu de plateforme MSX1 en coopération (ce n'est pas la 1ère fois que je le dis :lol ) et j'aurais aimé savoir si dans le village, il y avait des personnes ayant des connaissances en musique PSG et/ou en bruitage car c'est un peu là que "mon" bas blesse.

Pour montrer un peu où j'en suis, je vous met une petite ROM de démo.
AlternateEarthMegarom.zip

Les touches :

F1 : Switch de perso (PL1 = Samantha = partie haute, PL2 = Kimiko = partie basse)
F2 : Pause

Flêche de directions pour se déplacer, monter et descendre les échelles.
CRTL (sur le PC via Emulation) : Saut.

Samantha (rouge) a un double saut.
Kimiko (bleu) peut marcher un certain temps au dessus du vide (comme les persos d'USAS)

La montée de l'échelle sur l'écran de départ est pour tester sinon vous sortez de la map.

Pour finir, ce ne sont pas les sprites finaux et le moteur du jeu n'est pas encore place. Je n'ai codé que le moteur physique (et encore des mises aux points à faire)
   
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 781

Le 10/11/2010 à 18h06
Très bon boulot RibbSayan :top

Cela présage d'un jeu en 1 contre 1 comme Spy VS Spy, ou en coopération :hum ou en solo comme sur la démo, voire les 3 .

Tu travailles avec ASMSX ou autre chose?

Je viens de regarder mon code pour ufo et c'est un peu le foutoir je peux faire un tuto si tu veux :fou .

Sans parler de tuto, car je débute en ASM je peux donner ce que je fais pour le tir pour l'appliquer au saut du personnage par exemple.


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 10/11/2010 à 23h07
Et non, ce n'est pas un jeu 1 contre 1 mais un jeu de coopération. Soit en jouant seul et en "switchant" d'un personnage à un autre, soit en jouant à 2 joueurs en même temps.

D'ailleurs, même si je ne l'utilise pas pour l'instant, tout est déjà codé. Le jeu à 2, les barres de vies, les barres d'experience. Ainsi que toutes les touches du clavier et des manettes (Gestion du front montant de touche et les touches appuyés en cours)

Pour l'instant, je n'ai pas du tout prévu de faire un versus mais bon, c'est en dev !

Je travaille avec asMsx effectivement. Pour l'instant, je suis en train d'étudier les replayer de bruitages AY... et de musiques PT3... Mais bon, les tests c'est long.

Je cherchais surtout à savoir si quelqu'un connaissait un peu les registres de son pour MSX. Et d'autres bonnes volontés :)
   
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 12/11/2010 à 22h33
MSXOsaure, j'aurais aimé savoir si tu connaissais un peu les routine bios pour la détections de sprites ?
Je suis en train de lire des posts sur MRC sur le sujet, mais ça reste encore assez obscure à comprendre.

Sinon par rapport à la rom que j'ai mis à disposition, je peux mettre aussi à dispo le code asMSX. Je suis pour le partage des infos :)
   
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 781

Le 12/11/2010 à 22h45
Je suppose que tu parles de détection des collisions? ou du 5ème sprite?

Pour savoir comment intégrer une musique voir les sources serait plus simple en effet!


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 13/11/2010 à 10h56
Justement, je ne sais pas de quoi je parle. Je recherche pleins d'infos sur la collision de sprites.
J'essaie de tout comprendre pour finir mon jeu :)

Je n'ai pas eu le temps de tester les replayers (son AY... et musique PT3...) Je te le mets à disposition.
Je les ai récupéré sur MRC.
Replayer.zip

Je n'ai pas actuellement à disposition l'éditeur de bruitage (fonctionnant sur PC avec quelques banks à dispo comme des bruitages d'aleste, vampire killer et d'autres) mais il est trouvable sur MRC (ou chez moi quand j'y serai :) )

   
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 781

Le 13/11/2010 à 17h03
RibbSayan :
Justement, je ne sais pas de quoi je parle. Je recherche pleins d'infos sur la collision de sprites.

J'essaie de tout comprendre pour finir mon jeu :)



Je n'ai pas eu le temps de tester les replayers (son AY... et musique PT3...) Je te le mets à disposition.

Je les ai récupéré sur MRC.

Replayer.zip



Je n'ai pas actuellement à disposition l'éditeur de bruitage (fonctionnant sur PC avec quelques banks à dispo comme des bruitages d'aleste, vampire killer et d'autres) mais il est trouvable sur MRC (ou chez moi quand j'y serai :) )




Une chose à la fois, pour l'instant la musique!



Avec ce que tu m'as donné, facile de l'intégrer! il suffit de transformer la LOOP du programme example.asm en sous programme intégré à ton programme, sans oublier les différents éléments d'initialisation et d'appel aux programmes attenants!

Il faut aussi avoir les fichiers nécessaires à la lecture des PT3 et le fichier PT3 auquel on a retiré les 99 premiers octets (c'est dit dans le Readme.txt)



Au début de ton programme:

Code ASM :
        ; --- INITIALISATION ---                            PT3 !!!!!!!!!!!
        di                    ; Disable interrupts
        ld    hl,MUSIC-99            ; hl <- initial address of module - 99
        call    PT3_INIT            ; Inits PT3 player
        ei                    ; Enable interrupts
        halt                    ; Synchro
        halt                    ; Synchro




En fin de programme:

Code ASM :
        ; --- INCLUDE PT3-ROM.ASM in ROM code ---                            PT3 !!!!!!!!!!!
REPLAYER:    .INCLUDE    "PT3-ROM.ASM"
 
        ; --- INCLUDE MUSIC in ROM code (don't forget to strip first 99 bytes of PT3 module ---
MUSIC:        .INCBIN        "MUSIC.99"
 




Ton sous-programme:

Code ASM :
 GST_MUSIQUE:
                                PT3!!!!!!!!!!!!!!!
        di                    ; Disable interrupts
        call    PT3_ROUT            ; Write values on PSG registers
        call    PT3_PLAY            ; Calculates PSG values for next frame
        ; --- You can place here your favourite FX system and write the values to AYREGS label ---
;----------------------- LES BRUITAGES à Intégrer!    ---------------    
        ; --- so on next frame the FX will be played automatically when calling PT3_ROUT       ---
        ei                    ; Enable interrupts
    ret




Sous programme que tu appelles par un call GST_MUSIQUE dans ta boucle principale.



Enfin les labels "mémoires" pour stocker les données en .page3

Code ASM :
        .page   3
        .INCLUDE    "PT3-RAM.ASM"


Aplacer tout de suite après .page3 (avant les tiens), sinon ça foire!



Voici un exemple avec mon programme UFO et un PT3 récupéré sur le net.

ufopt3.zip



REste quelques problèmes:



  1. Une fois la musique finie, elle s'arrête et ne boucle pas :hum
  2. Je ne vois pas comment intégrer les fichiers afx ou les bank d'afx? (j'ai l'éditeur et les sample), si tu as une piste. :sick
  3. Merci pour le partage de tes explorations. :top







EDIT! : ça y est j'ai trouvé! enfin je crois, je dois faire des tests, je te tiens au jus.


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 781

Le 14/11/2010 à 00h38
Passons donc aux bruitages,

Là j'avoue que ça foire un peu avec la musique mais je pense tenir le fonctionnement :s qui est similaire à celui du player PT3

Au départ on charge le programme:
Code ASM :
; --- INITIALISATION ---SFX !!!!!!!!!!!
di; Disable interrupts
ldhl,ayFX_BANK1; On sélectionne l'adresse des bank de sons dans hl
callayFX_SETUP; Inits AYFX player
ei; Enable interrupts


En fin de programme: (ufo.afb peut être remplacé par n'importe quelle autre banque de sons)
Code ASM :
; --- INCLUDE AyFX in ROM code ---SFX !!!!!!!!!!!
ayFX:.INCLUDE"ayfx-ROM.ASM"
; -----include banque de sons------
ayFX_BANK1:.INCBIN"ufo.afb"


on intègre le player d'effets dans le player PT3 en remplaçant la ligne:
;----------------------- LES BRUITAGES à Intégrer!---------------
par:
Code ASM :
; --- You can place here your favourite FX system and write the values to AYREGS label ---
call ayFX_PLAY
; --- so on next frame the FX will be played automatically when calling PT3_ROUT       ---


Enfin, comme pour le PT3 il faut réserver sa place en RAM:D
Code ASM :
        .page   3
.INCLUDE"PT3-RAM.ASM"
.INCLUDE"ayFX-RAM.ASM"


Maintenant comment faire appel à un son bien précis de ma banque :hum
Il suffit d'intégrer les ligne de codes suivantes au moment opportun.
Code ASM :
lda,1      ; je mets dans l'accumulateur (a) le N° du son que je veux jouer. (1à256)
ldc,4      ; je mets dans C la priorité à laquelle le son doit être joué (0à15).
call ayFX_INIT; j'initialise
ret

Par exemple si la banque 1 contient le son "tir" ici il sera joué mais s'il y a le bruit d'une explosion au même moment et que ce dernier est prioritaire (C<4) alors ce sera l'explosion qui sera joué.

Le désavantage de ce player d'effets sonores c'est qu'il se contente d'un seul canal, par contre il s'intègre bien à la musique et une banque peut contenir 255 sons ce qui permet de voir venir!

J'ai encore des problèmes au niveau gestion du volume et du bruit sur les bruitages, il existe 2 versions du player, il reste à voir laquelle est la plus efficace!


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 781

Le 14/11/2010 à 00h52
Passons aux Sprites, ce petit extrait de Pratique du MSX2 devrait t'aider:

Code TEXT :
0013EH RDVDP ReaD VDP status register
Nom : RDVDP
Adresse : 0013EH/ROM
Type : MSX1 - 1 -
Rôle : lecture du registre d'état du VDP
Entrée : rien
Sortie : A - contenu du registre
Modifie : rien
Note : Voici le détail du contenu du registre d'état du processeur vidéo (voir le chapitre sur le processeur vidéo pour plus de précisions sur ce registre)
 
b7   b6   b5   b4   b3   b2   b1   b0
!    !    !    !    !    !    !    !
!    !    !    +----+----+----+----+----- N° du 5ème sprite
!    !    +------------------------------ 2 sprites en collision
!    +----------------------------------- 5 sprites même ligne
+---------------------------------------- flag d'interruption


Un simple test bit 5 te dira s'il y a collision ou non, attention enable interrupt (ei)!
Code ASM :
 
callRDVDP
bit5,a
retnz ; retour si pas de collision

... puis batterie de test pour savoir quels sprites sont en collision car notre MSX ne sait pas le dire!


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 14/11/2010 à 10h27
Merci pour toutes ces informations, je vais tester les bruitages et la musique dans le courant de la semaine (weekend en famille sans MSX :) )


   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie