[VG-5000] création d'une cartouche ROM
Modérateurs : Papy.G, fneck, Carl
Re: [VG-5000] création d'une cartouche ROM
Test aujourd'hui du AY-3 sur VG5000.
J'ai fait un player que j'ai intégré en fin de ROM Basic, il n'y a qu'a charger les donnèes de la musique et lancer la routine ROM
Ca fait drole d'entendre une telle musique sur un VG5000
En plus on peut continuer à utiliser le BASIC en musique
J'ai fait un player que j'ai intégré en fin de ROM Basic, il n'y a qu'a charger les donnèes de la musique et lancer la routine ROM
Ca fait drole d'entendre une telle musique sur un VG5000
En plus on peut continuer à utiliser le BASIC en musique
- Mokona
- Messages : 1041
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: [VG-5000] création d'une cartouche ROM
Excellent.
Re: [VG-5000] création d'une cartouche ROM
ah ah, je vois que tu as réussi à maîtriser les interruptions, c'est joli ! Tu as bricolé le player CPC Soundtrakker (ou soundtrakker 128) je suppose, la musique me dit quelque chose.
A l'écoute, on ne dirait pas qu'il y a des effets de perturbations, tu pourrais diffuser ton exécutable pour que j'essaie sur ma VG5232 ? Si j'ai des soucis avec, je saurais que TotO m'en veut personnellement .
A l'écoute, on ne dirait pas qu'il y a des effets de perturbations, tu pourrais diffuser ton exécutable pour que j'essaie sur ma VG5232 ? Si j'ai des soucis avec, je saurais que TotO m'en veut personnellement .
- Carl
- Modérateur
- Messages : 13290
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
- Carl
- Modérateur
- Messages : 13290
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: [VG-5000] création d'une cartouche ROM
Phil,
Pour le fun, tu pourrais envisager d'implémenter l'extension de ROM "LGRAPH" Carl
Pour le fun, tu pourrais envisager d'implémenter l'extension de ROM "LGRAPH" Carl
- fneck
- Site Admin
- Messages : 17490
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [VG-5000] création d'une cartouche ROM
Très intéressant l’extension musique en ROM du VG5000, belle réalisation
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: [VG-5000] création d'une cartouche ROM
@Markerror: le player n'est inspiré d'aucun autre existant hormis ceux que j'avais fait pour Oric, Exelvision et MSX qui utilisent ma compression perso, simpliste
Et merci pour l'information sur les interruptions du VG5000, par contre j'ai désactivé le compteur d'interruption car la musique était trop lente, est ce du au fait que le Basic tourne derrière ou autre ???
Voici le code que j'ai implanté en $3E40, tu peux le re-assembler avec une adresse RAM pour tester :
On peut faire certainement mieux, mais le but était de tester le PSG sur VG5000
les données sont les valeurs des registres brut exporter du PSG format YM, converti pour l'occasion en XYM avec une compression simple avec un utilitaire "maison" mais qui fait gagné pas mal de place en RAM (16Ko pour 50/60Ko) et est décompressé à la volée.
Il reste à insérer l'extinction du son du PSG en fin de musique, une simple boucle d'envoi $00 aux 16 registres du PSG
J'imagine que ton player est bien plus évolué et surtout utilise les partitions des trackers
Et voici les données à charger en $8000, j'ai voulu en même temps tester la RAM et le PSG en condition réel
Est ce que ça vaut le coût que je modifie ce player pour l'intégrer en fin de ROM Basic pour ceux qui voudrait sonoriser leurs programmes ?
Il faut juste prévoir un CLEAR,xxxx pour protéger la zone des données de la musique, et prendre en paramètre l'adresse des données musique, et peut être un flag pour boucler la musique !
@Carl:
- Que fait LGRAPH ?
- comment est il appelé dans les programmes BASIC ?
1) le problème est qu'il est situé en RAM si on veux le mettre en ROM il faut modifier le programme en conséquence (translater toutes les adresses) !
2) la taille 1181 octets dépasse la taille dispo en fin de ROM BASIC !
Et merci pour l'information sur les interruptions du VG5000, par contre j'ai désactivé le compteur d'interruption car la musique était trop lente, est ce du au fait que le Basic tourne derrière ou autre ???
Voici le code que j'ai implanté en $3E40, tu peux le re-assembler avec une adresse RAM pour tester :
On peut faire certainement mieux, mais le but était de tester le PSG sur VG5000
les données sont les valeurs des registres brut exporter du PSG format YM, converti pour l'occasion en XYM avec une compression simple avec un utilitaire "maison" mais qui fait gagné pas mal de place en RAM (16Ko pour 50/60Ko) et est décompressé à la volée.
Il reste à insérer l'extinction du son du PSG en fin de musique, une simple boucle d'envoi $00 aux 16 registres du PSG
J'imagine que ton player est bien plus évolué et surtout utilise les partitions des trackers
Code : Tout sélectionner
;-------------------------------
; VG5000
;
; TEST CARTOUCHE ROM (VG5301) AND AY-3 (VG5232)
;
; (c) 2017 6502man
;
;-------------------------------
;
AY3 .EQU $8002
TotFrame .EQU $8000
;IntCount .EQU $8004
PSG_Adr .EQU $FF
PSG_Data .EQU $FE
Int .EQU $47D0
.org $3E40
Init
DI
push AF
push BC
push DE
push HL
push IX
push IY
; on prepare les variables pour le player
LD DE,AY3+3-2 ; nombre total de frame à jouer
LD HL,TotFrame ; variable en RAM (compteur de frames)
LD A,(DE)
LD (HL),A
INC DE
INC HL
LD A,(DE)
LD (HL),A
LD DE,AY3+25-2 ; Position des données
LD HL,AY3 ; variable en RAM (pointeur des données)
LD A,D
LD (HL),A
INC HL
LD A,E
LD (HL),A
; on met en place l'interruption.
LD HL,Int
LD A,$C3
LD (HL),A
INC HL
LD DE,%START
LD A,E
LD (HL),A
INC HL
LD A,D
LD (HL),A
; LD HL,IntCount
; LD A,7
; LD (HL),A
pop IY
pop IX
pop HL
pop DE
pop BC
pop AF
EI
RET
;/////////////////////////////////////////
START
DI ; desactive INT pour musique
push AF
push BC
push DE
push HL
push IX
push IY
; LD HL,IntCount ; test si 6eme occurence d'appel
; DEC (HL) ; de l'interruption
; JP NZ,FinInt
;
; LD HL,IntCount ; remet le compteur à 7
; LD A,7
; LD (HL),A
LD HL,AY3 ; variable en RAM (pointeur des données)
LD A,(HL)
LD D,A
INC HL
LD A,(HL)
LD E,A
BoucleAY3
LD C,00
LD A,(DE) ; on lit le premier octet de compression XYM
LD H,A ; on reserve l'octet
INC DE
LD A,(DE) ; on lit le deuxieme octet de compression XYM
LD L,A ; on reserve l'octet
INC DE
LD B,$09 ; compteur de décalage bits des 2 octets lu précedement
Frame
DEC B
JP Z,Oct2
LD A,C
OUT (PSG_Adr),A
INC C
SLA H ; décale 1 bit à gauche et récupére l'état du bit dans Carry
JP NC,Frame
LD A,(DE)
OUT (PSG_Data),A
INC DE
JP Frame
Oct2
LD B,$07 ; compteur de décalage des bits 2 octets lu précedement
Frame2
DEC B
JP Z,EndFrame
LD A,C
OUT (PSG_Adr),A
INC C
SLA L ; décale 1 bit à gauche et récupére l'état du bit dans Carry
JP NC,Frame2
LD A,(DE)
OUT (PSG_Data),A
INC DE
JP Frame2
EndFrame
; test fin de la musique ?
LD HL,TotFrame+1 ; variable en RAM
DEC (HL)
JP NZ,Continueplay
LD HL,TotFrame ; variable en RAM
DEC (HL)
LD A,$00
CP (HL)
JP Z,Exit
Continueplay
; mise à jour du pointeur
LD HL,AY3 ; variable en RAM (pointeur des données)
LD A,D
LD (HL),A
INC HL
LD A,E
LD (HL),A
FinInt
pop IY
pop IX
pop HL
pop DE
pop BC
pop AF
EI ; retabli INT
RET
Exit
LD HL,Int
LD A,$C9 ; arrete l'interruption.
LD (HL),A
;Eteindre le son du AY-3
JP FinInt
ENDFILE
.END
Est ce que ça vaut le coût que je modifie ce player pour l'intégrer en fin de ROM Basic pour ceux qui voudrait sonoriser leurs programmes ?
Il faut juste prévoir un CLEAR,xxxx pour protéger la zone des données de la musique, et prendre en paramètre l'adresse des données musique, et peut être un flag pour boucler la musique !
@Carl:
- Que fait LGRAPH ?
- comment est il appelé dans les programmes BASIC ?
1) le problème est qu'il est situé en RAM si on veux le mettre en ROM il faut modifier le programme en conséquence (translater toutes les adresses) !
2) la taille 1181 octets dépasse la taille dispo en fin de ROM BASIC !
- Carl
- Modérateur
- Messages : 13290
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: [VG-5000] création d'une cartouche ROM
Phil,
après le chargement de Lgraph, la machine reboot et plusieurs nouvelles commandes basic sont disponible (uniquement valable avec l'extension VG5216)
la doc : http://vg5000.free.fr/docs/livres/VG521 ... sation.pdf
Carl
après le chargement de Lgraph, la machine reboot et plusieurs nouvelles commandes basic sont disponible (uniquement valable avec l'extension VG5216)
la doc : http://vg5000.free.fr/docs/livres/VG521 ... sation.pdf
Carl
Re: [VG-5000] création d'une cartouche ROM
Bon, je dois pas être doué...
J'ai assemblé en &"5000" le player avec Winape et après chargement de la bête et des datas, je n'obtiens que des bruits, pas de sons mélodieux . On entend bien derrière un rythme qui correspondrait à priori à la musique, mais rien de plus sinon du souffle.
Je dois zapper quelque chose, mais là, je ne vois pas trop:-(. Tu pourrais asssembler en &"5000" ton source et poster le fichier binaire, histoire que je le compare avec le mien ?)
Pour la coupure du son, il suffit plutôt de mettre à zéro les trois registre de volume. Ca pourrait d'ailleurs faire l'objet d'une petite commande dans la ROM système, c'est un peu pénible d'être obligé d'éteindre électriquement le VG5000 quand on veut couper une musique . Un petit patch du Basic avec une commande SILENCE ou autre serait pas mal .
J'ai assemblé en &"5000" le player avec Winape et après chargement de la bête et des datas, je n'obtiens que des bruits, pas de sons mélodieux . On entend bien derrière un rythme qui correspondrait à priori à la musique, mais rien de plus sinon du souffle.
Je dois zapper quelque chose, mais là, je ne vois pas trop:-(. Tu pourrais asssembler en &"5000" ton source et poster le fichier binaire, histoire que je le compare avec le mien ?)
Pour la coupure du son, il suffit plutôt de mettre à zéro les trois registre de volume. Ca pourrait d'ailleurs faire l'objet d'une petite commande dans la ROM système, c'est un peu pénible d'être obligé d'éteindre électriquement le VG5000 quand on veut couper une musique . Un petit patch du Basic avec une commande SILENCE ou autre serait pas mal .
Re: [VG-5000] création d'une cartouche ROM
Voila l'assemblage en $5000 ;
Re: [VG-5000] création d'une cartouche ROM
Merci ! Bon, le mystère s'épaissit, les deux sources produisent le même code. Une nuit de sommeil apportera sûrement conseil .
Re: [VG-5000] création d'une cartouche ROM
Curieux, n'y aurait il pas inversion des adresses registres et datas
Re: [VG-5000] création d'une cartouche ROM
J'ai écrit une bêtise précédemment concernant la compatibilité de cette cartouche avec la VG5216
En fait la cartouche est compatible avec la VG5216, en connectant la VG5216 derrière la cartouche.
Pour m'en assurer je ferais le test soit demain soit lundi ....
En fait la cartouche est compatible avec la VG5216, en connectant la VG5216 derrière la cartouche.
Pour m'en assurer je ferais le test soit demain soit lundi ....
Re: [VG-5000] création d'une cartouche ROM
Je viens de faire le test avec la cartouche ROM et la VG5216, ca fonctionne très bien le VG5000 affiche 30xxx octets au boot
- Carl
- Modérateur
- Messages : 13290
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: [VG-5000] création d'une cartouche ROM
Phil,
Les configurations possibles sont celles-ci ?
VG5000 > VG5301 > VG5216 > VU0031
VG5000> VG5301 > VG5232
Les configurations possibles sont celles-ci ?
VG5000 > VG5301 > VG5216 > VU0031
VG5000> VG5301 > VG5232