ca m'arrive encore aujourd'hui, mais bon après tu percutes de suite .
Développement Shoot them up
Modérateurs : SirG, Redfield1, shubibiman, Laucops
- touko
- NECromancer
- Messages : 2297
- Inscription : lun. 31 mars 2008 14:32
Re: Développement Shoot them up
LOL, bienvenu chez ceux qui se sont fait au moins enfler 1 fois avec ça 
ca m'arrive encore aujourd'hui, mais bon après tu percutes de suite .
ca m'arrive encore aujourd'hui, mais bon après tu percutes de suite .
- Hero_Tonma
- Push Run Button!
- Messages : 89
- Inscription : lun. 20 juil. 2015 14:26
Re: Développement Shoot them up
J'en suis encore à me demander pourquoi ça boucle pas des fois ... avant de me rendre compte que j'ai mis un jmp au lieu d'un jsr !!!
J'ai encore besoin de vous les loulous. J'ai avancé sur mon scroll et il marche bien, même très bien, je suis content de moi. Même si pour l'instant je scroll de haut en bas.
Mon soucis vient du banking. Mon tableau est gros, j'ai 584 lignes de
Code : Tout sélectionner
scrtab2
.db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
.db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
...
Code : Tout sélectionner
PC Engine Assembler (v3.22, 2/06/2011, Tomaitheous Release)
pass 1
(Warning. Opcode crossing page boundary $8000, bank $03)
pass 2
segment usage:
USED/FREE
ZP $2000-$2040 [ 65] 65/ 191
BSS $2200-$2933 [1844] 1844/6348
BANK 0 4106/4086
CODE $E010-$F00F [4096]
CODE $FFF6-$FFFF [ 10]
BANK 1 1382/6810
CODE $C000-$C565 [1382]
BANK 2 8192/ 0
CODE $6000-$7FFF [8192]
BANK 3 8178/ 14
CODE $800E-$9FFF [8178]
BANK 4 5022/3170
CODE $8000-$939D [5022]
---- ----
27K 13K
TOTAL SIZE = 40KJ'utilise "stw #scrtab2,<_si ; address of the character table" pour loader l'adresse. Elle doit avoir une adresse proche de 4000 dans la Bank 2
Edit*: Je viens de me rendre compte que la Bank 3 commence à $800E au lieu de $8000
Je commence mes datas avec :
Code : Tout sélectionner
.bank MAIN_BANK+1
.ORG $6000Edit2* : J'ai fait d'autres tests en voyant la valeur .ORG $8000, si je dépasse $FFFF, il boucle sur $0000. Pas top, on doit pouvoir écrire dans des banks au dessus de $FFFF sinon on a aura pas de place pour un max de data et sprites.
- touko
- NECromancer
- Messages : 2297
- Inscription : lun. 31 mars 2008 14:32
Re: Développement Shoot them up
Normal tu sors de l'adressage physique du CPU $0000 à $FFFF .
Les banks (si je dis pas n'importe quoi) sur hucard vont de $00 à $7F, chaque bank stocke 8ko de données .
Chaque MPR te permet d'accéder a un espace de $2000 avec :
MPR0 maps $0000-1FFF
MPR1 maps $2000-3FFF
MPR2 maps $4000-5FFF
MPR3 maps $6000-7FFF
MPR4 maps $8000-9FFF
MPR5 maps $A000-BFFF
MPR6 maps $C000-DFFF
MPR7 maps $E000-FFFF
Donc il faut mapper la/les BANK(S) où sont stocké tes données sur un des MPR,et y accéder via la plage d'adresses du MPR correspondant .
Donc si tu fais:
cela veux dire qu'il faudra faire:
Bien sur si ton fichier fait plus de 8ko, il serra mis automatiquement sur les banks suivantes si besoin .
EX: si ton fichier fait 10ko il prendra la bank $60(8ko) entière et une partie de la bank $61(2ko) .
Donc si tu banques sur un autre MPR que le 3(par exemple le 4) , il faudra recalculer l'adresse du pointeur si tu te bases dessus .
EX: lda mon_pointeur_vers_donnees , x // va charger une donnée comme ça lda $6000 , x (car définie par le .org $6000)
Maintenant si tu es sur que ta donnée commence au début de la bank, et que tu la mappes sur le MPR4 tu peux faire :
lda $8000 , x
Les banks (si je dis pas n'importe quoi) sur hucard vont de $00 à $7F, chaque bank stocke 8ko de données .
Chaque MPR te permet d'accéder a un espace de $2000 avec :
MPR0 maps $0000-1FFF
MPR1 maps $2000-3FFF
MPR2 maps $4000-5FFF
MPR3 maps $6000-7FFF
MPR4 maps $8000-9FFF
MPR5 maps $A000-BFFF
MPR6 maps $C000-DFFF
MPR7 maps $E000-FFFF
Donc il faut mapper la/les BANK(S) où sont stocké tes données sur un des MPR,et y accéder via la plage d'adresses du MPR correspondant .
Donc si tu fais:
Code : Tout sélectionner
.bank $60
.org $6000
#incbin mon_pointeur_vers_donnees , "donnees.bin" ......
Code : Tout sélectionner
lda #bank(mon_pointeur_vers_donnees)
tam #3 // sur le MPR3 qui va de l'adresse $6000 à $7FFF
EX: si ton fichier fait 10ko il prendra la bank $60(8ko) entière et une partie de la bank $61(2ko) .
Donc si tu banques sur un autre MPR que le 3(par exemple le 4) , il faudra recalculer l'adresse du pointeur si tu te bases dessus .
EX: lda mon_pointeur_vers_donnees , x // va charger une donnée comme ça lda $6000 , x (car définie par le .org $6000)
Maintenant si tu es sur que ta donnée commence au début de la bank, et que tu la mappes sur le MPR4 tu peux faire :
lda $8000 , x
Dernière modification par touko le jeu. 21 janv. 2016 16:23, modifié 1 fois.
- Hero_Tonma
- Push Run Button!
- Messages : 89
- Inscription : lun. 20 juil. 2015 14:26
Re: Développement Shoot them up
Génial, merci beaucoup.
Si je comprends bien, je bank sur la carte externe des banks de 8k et après j'ai accès à 8 MPR (soit 64ko, je suis bon en Math
)
Donc je peux, par exemple placer en bank 60, $8000 les datas level1 et en bank 61, $8000 les datas du level2.
Après je n'ai plus qu'à écrire lien vers la bonne bank.
J'ai fait un test en ajoutant des datas sur les banks suivant celle de mon tableau à la même adresse et en faisant un lda #bank(nomTableau) tam #4, je récupère bien mon tableau.
J'aurais certainement encore des questions la dessus, quand je vais aujouter pleins de datas et de sprites, je vais certainement bugger.
J'arrive donc à avoir mon tableau comme il faut pour le scrolling, mais seulement sur les 2ko de ma bank en $8000, la partie qui bascule sur le MPR5 déconne. Mais je vais trouver !!! Merci mille fois.
Si je comprends bien, je bank sur la carte externe des banks de 8k et après j'ai accès à 8 MPR (soit 64ko, je suis bon en Math
Donc je peux, par exemple placer en bank 60, $8000 les datas level1 et en bank 61, $8000 les datas du level2.
Après je n'ai plus qu'à écrire lien vers la bonne bank.
J'ai fait un test en ajoutant des datas sur les banks suivant celle de mon tableau à la même adresse et en faisant un lda #bank(nomTableau) tam #4, je récupère bien mon tableau.
Code : Tout sélectionner
pass 1
(Warning. Opcode crossing page boundary $A000, bank $61)
pass 2
segment usage:
USED/FREE
ZP $2000-$2040 [ 65] 65/ 191
BSS $2200-$2933 [1844] 1844/6348
BANK 0 4106/4086
CODE $E010-$F00F [4096]
CODE $FFF6-$FFFF [ 10]
BANK 1 1390/6802
CODE $C000-$C56D [1390]
BANK 2 4126/4066
DATA $6000-$701D [4126]
BANK 3 0/8192
BANK 4 0/8192
BANK 5 7936/ 256
DATA $A000-$BEFF [7936]
BANK 6 0/8192
...
BANK 5F 0/8192
BANK 60 8192/ 0
DATA $8000-$9FFF [8192]
BANK 61 1136/7056
DATA $A010-$A47F [1136]
BANK 62 0/8192
...
BANK 7E 0/8192
BANK 7F 4126/4066
DATA $8000-$901D [4126]
---- ----
31K 993K
TOTAL SIZE = 1024KJ'arrive donc à avoir mon tableau comme il faut pour le scrolling, mais seulement sur les 2ko de ma bank en $8000, la partie qui bascule sur le MPR5 déconne. Mais je vais trouver !!! Merci mille fois.
- touko
- NECromancer
- Messages : 2297
- Inscription : lun. 31 mars 2008 14:32
Re: Développement Shoot them up
Oui, et tu peux même les mapper sur les autres MPRS, faudra juste faire attention à l'dresse pour accéder aux données .Donc je peux, par exemple placer en bank 60, $8000 les datas level1 et en bank 61, $8000 les datas du level2.
Pense à remapper la bank $61 sur le MPR 4 une fois la bank $60 complètement lue ..J'arrive donc à avoir mon tableau comme il faut pour le scrolling, mais seulement sur les 2ko de ma bank en $8000, la partie qui bascule sur le MPR5 déconne. Mais je vais trouver !!! Merci mille fois.
J'ai indiqué 8ko mais c'est plus,en réalité c'est 8192 octets .
Pour plus de facilité tu peux mapper la bank $60 sur le MPR4 et la $61 sur le MPR5, ça te permet d'accéder à ton tableau d'une traite .
Tu as inséré ton fichier comment dans la bank ??
dans le .lst de ton projet tu dois avoir une ligne comme ça:
Code : Tout sélectionner
212 03:6178 _Level2_layer1_base_gfx:
213 03:6178 .incbin "bckgnds/Level2/bckgnds/gfx/Level2_layer1_base.gfx"
- Hero_Tonma
- Push Run Button!
- Messages : 89
- Inscription : lun. 20 juil. 2015 14:26
Re: Développement Shoot them up
Merci, ça va m'être super utile le fichier lst. J'étais toujours en train de calculer de tête les adresses, je vais gagner un temps fou.
Pour mon tableau, j'ai essayé de le mettre à la suite mais ça bug ... par contre en changeant de MPR ça tourne, le problème est que je dois utiliser deux noms de label pour l'adresse.
J'ai testé en faisant :
lda #bank(scrtab2)
tam #4
lda $A000
tam #5
Mais j'ai du mal boucler dans mon code, une coquille qui traîne. En tout cas mon code avec le même banking marche.
J'ai commencé la partie sonore avec le code de test dans la doc officiel avec le PSG. J'arrive à écrire les registres et sortir un malheureux son (un waveform en continu pour être précis).
Je suis partie sur le mml pour joueur des notes et ça fonctionne. Je dois encore mettre un compteur pour pouvoir boucler. Chaque note devant être jouée à chaque frame * la longueur par défaut. Il me reste à décoder certaines valeurs et faire des tests. Peut-être créer un convertisseur de note si je trouve des partitions au format texte.
Les formats PCE que j'ai sont : "W3T200L4V15O2AO3C#DD#ED#DC#O2AO3C#DD#ED#DC#DF#GG#AG#GF#O2AO3C#
ABCDEFG = notes
T = tempo
L = longueur de la tenue de la note par défaut
V = volume du Channel
O = Octave (aigu / grave)
On peut varier la longueur d'une note en mettant A5 par exemple.
Les # je sais pas ce que c'est ... peut-être un demi-ton mais haut ou bas ?
Le W je sais pas non plus. J'opte pour la waveform définie comme (SIN, SQUARE, ...)
Pour mon tableau, j'ai essayé de le mettre à la suite mais ça bug ... par contre en changeant de MPR ça tourne, le problème est que je dois utiliser deux noms de label pour l'adresse.
J'ai testé en faisant :
lda #bank(scrtab2)
tam #4
lda $A000
tam #5
Code : Tout sélectionner
.BANK $10
.ORG $8000
scrtab2
.db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
.db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
.db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
.db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
...
...
.BANK $11
.ORG $A000
.db $80, $80, $80, $80, $85, $86, $85, $86, $80, $80, $80, $80, $80, $80, $65, $66
.db $67, $68, $80, $80, $80, $80, $80, $80, $65, $66, $67, $68, $59, $5A, $17, $17J'ai commencé la partie sonore avec le code de test dans la doc officiel avec le PSG. J'arrive à écrire les registres et sortir un malheureux son (un waveform en continu pour être précis).
Je suis partie sur le mml pour joueur des notes et ça fonctionne. Je dois encore mettre un compteur pour pouvoir boucler. Chaque note devant être jouée à chaque frame * la longueur par défaut. Il me reste à décoder certaines valeurs et faire des tests. Peut-être créer un convertisseur de note si je trouve des partitions au format texte.
Les formats PCE que j'ai sont : "W3T200L4V15O2AO3C#DD#ED#DC#O2AO3C#DD#ED#DC#DF#GG#AG#GF#O2AO3C#
ABCDEFG = notes
T = tempo
L = longueur de la tenue de la note par défaut
V = volume du Channel
O = Octave (aigu / grave)
On peut varier la longueur d'une note en mettant A5 par exemple.
Les # je sais pas ce que c'est ... peut-être un demi-ton mais haut ou bas ?
Le W je sais pas non plus. J'opte pour la waveform définie comme (SIN, SQUARE, ...)
- Luciole
- NECromancer
- Messages : 3320
- Inscription : mar. 10 mai 2005 15:19
- Localisation : Calais
- touko
- NECromancer
- Messages : 2297
- Inscription : lun. 31 mars 2008 14:32
Re: Développement Shoot them up
Oui, et ça sert aussi bcp à comprendre que des fois tes fichiers ne sont pas à l'adresse/bank où tu penses qu'ils sontMerci, ça va m'être super utile le fichier lst. J'étais toujours en train de calculer de tête les adresses, je vais gagner un temps fou.
Rien ne t'empêche d'insérer ton fichier en un seul coup, et de créer un pointeur (ou plus) à la mano .Pour mon tableau, j'ai essayé de le mettre à la suite mais ça bug ... par contre en changeant de MPR ça tourne, le problème est que je dois utiliser deux noms de label pour l'adresse.
Code : Tout sélectionner
mon_pointeur2 .equ pointeur_fichier_départ + $3000 // par exemple
Code : Tout sélectionner
Mais j'ai du mal boucler dans mon code, une coquille qui traîne. En tout cas mon code avec le même banking marche.
Le mml n'est pas très compliqué en soit, mais se taper une musique à la mano tout seul, faut vraiment savoir ce que tu fais .Je suis partie sur le mml pour joueur des notes et ça fonctionne. Je dois encore mettre un compteur pour pouvoir boucler. Chaque note devant être jouée à chaque frame * la longueur par défaut. Il me reste à décoder certaines valeurs et faire des tests. Peut-être créer un convertisseur de note si je trouve des partitions au format texte.
Les formats PCE que j'ai sont : "W3T200L4V15O2AO3C#DD#ED#DC#O2AO3C#DD#ED#DC#DF#GG#AG#GF#O2AO3C#
ABCDEFG = notes
T = tempo
L = longueur de la tenue de la note par défaut
V = volume du Channel
O = Octave (aigu / grave)
On peut varier la longueur d'une note en mettant A5 par exemple.
Les # je sais pas ce que c'est ... peut-être un demi-ton mais haut ou bas ?
Le W je sais pas non plus. J'opte pour la waveform définie comme (SIN, SQUARE, ...)
Sinon y'a un truc qui permet de prendre un fichier midi est le passer en mml,mais faut peaufiner après, perso j'en suis pas capable .
- Hero_Tonma
- Push Run Button!
- Messages : 89
- Inscription : lun. 20 juil. 2015 14:26
Re: Développement Shoot them up
BientôtLuciole a écrit :Une date pour une tite vidéo démo?

Plus sérieusement, j'ai que le début du début. Et pis le graphisme est du rip sauvage. En plus mon scroll vertical va de haut en bas plutôt que l'inverse. Je vais regarder pour l'inverser, c'est pas dur mais faut revoir ma lecture du fichier concernant mes datas pour la map. Y aura 2 vidéos, une pour un jeu de plateforme et une pour un shoot vertical.
Je vais tester le convertisseur midi mml pour voir ce que ça donne. En fait, je sais même pas faire du midi ...
Pour mon tableau dans 2 banks. Je commence au début ($8000) et j'augmente mon index jusqu'un truc genre $A800. Mais dès que je dépasse la première bank ($9FFF), j'ai des données aléatoires. Par contre quand je test le début de chaque directement, indépendamment l'un de l'autre, ça marche.
- touko
- NECromancer
- Messages : 2297
- Inscription : lun. 31 mars 2008 14:32
Re: Développement Shoot them up
C'est pas grave vu la tonne de musiques midi qui existeJe vais tester le convertisseur midi mml pour voir ce que ça donne. En fait, je sais même pas faire du midi ...
je pense que c'est ton code qui doit mal gérer le passage entre les 2 banks .Pour mon tableau dans 2 banks. Je commence au début ($8000) et j'augmente mon index jusqu'un truc genre $A800. Mais dès que je dépasse la première bank ($9FFF), j'ai des données aléatoires. Par contre quand je test le début de chaque directement, indépendamment l'un de l'autre, ça marche.. Donc en théorie ça marche, Il faudra que je reprenne un code source avec seulement cette partie là pour voir mon erreur.
Hero_Tonma
Membre
Messages: 71
Inscription: Lun 20 Juil 2015 15:26
- Hero_Tonma
- Push Run Button!
- Messages : 89
- Inscription : lun. 20 juil. 2015 14:26
Re: Développement Shoot them up
J'en suis même carrément d'accord avec toitouko a écrit :je pense que c'est ton code qui doit mal gérer le passage entre les 2 banks .
Pour le plus grand plaisir des yeux, 2 vidéos de mes premiers essais en asm. Ca tourne à 60 fps mais les petits ralentissements sur la vidéo viennent de la compression.
https://youtu.be/Ky7fHuG37pc
https://youtu.be/5xWYfWPLvTw
- pckid
- NECrophage
- Messages : 1516
- Inscription : lun. 26 sept. 2005 11:32
- Localisation : ile de france
Re: Développement Shoot them up
Génial mon poto, tu as fait un bon boulot ! c'est cool çà !
=============================
Pc Kid Renait , et hop !!!
=============================
Pc Kid Renait , et hop !!!
=============================
- shubibiman
- Administrateur
- Messages : 16392
- Inscription : jeu. 23 sept. 2004 14:26
- Localisation : Meet me at Shubibi's
Re: Développement Shoot them up
Pour le shmup, tu as repris des graphismes d'un jeu existant ou tu les as créés toi-même ?
Beau boulot en tout cas !
Beau boulot en tout cas !
"You are truly the PCE game clearing master"
*****Membre du FLPCE Canal Historique*****
*****Membre du FLPCE Canal Historique*****
- Hero_Tonma
- Push Run Button!
- Messages : 89
- Inscription : lun. 20 juil. 2015 14:26
Re: Développement Shoot them up
Merci.
Je m'occupe que du code.
Pour le shoot vertical, c'est Banshee CD32 et le vaisseau de ansimuz
Pour le plateforme, c'est PsychoFox
Je m'occupe que du code.
Pour le shoot vertical, c'est Banshee CD32 et le vaisseau de ansimuz
Pour le plateforme, c'est PsychoFox
- Redfield1
- Administrateur
- Messages : 6218
- Inscription : mar. 21 sept. 2004 05:08
- Localisation : Aero-City
Re: Développement Shoot them up
C'est prometteur !
