[VG-5000] création d'une cartouche ROM

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve à nos bouzes.

Modérateurs : Carl, Papy.G, fneck

Avatar du membre
6502man
Messages : 8394
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par 6502man » 20 avr. 2017 17:27

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 :D

Ca fait drole d'entendre une telle musique sur un VG5000 :lol: :lol: :lol:

En plus on peut continuer à utiliser le BASIC en musique :lol: :lol: :wink:


Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Avatar du membre
Mokona
Messages : 187
Enregistré le : 17 déc. 2016 23:01
Localisation : Nord Est des Yvelines
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par Mokona » 20 avr. 2017 18:22

Excellent.

Markerror
Messages : 1190
Enregistré le : 31 oct. 2011 20:21
Localisation : Orléans
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par Markerror » 21 avr. 2017 08:13

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 :mrgreen: .

Avatar du membre
Carl
Modérateur
Messages : 9669
Enregistré le : 08 avr. 2007 13:21
Localisation : www.dole.org
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par Carl » 21 avr. 2017 09:09

Super ! 8)

Carl

Avatar du membre
Carl
Modérateur
Messages : 9669
Enregistré le : 08 avr. 2007 13:21
Localisation : www.dole.org
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par Carl » 21 avr. 2017 09:14

Phil,
Pour le fun, tu pourrais envisager d'implémenter l'extension de ROM "LGRAPH" :roll:
lgraph.jpg
lgraph.jpg (25.21 Kio) Vu 368 fois
lgraph_vg5000k7.zip
(1.67 Kio) Téléchargé 13 fois
zone.jpg
zone.jpg (37.83 Kio) Vu 368 fois
Carl

Avatar du membre
fneck
Site Admin
Messages : 11448
Enregistré le : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par fneck » 21 avr. 2017 10:23

Très intéressant l’extension musique en ROM du VG5000, belle réalisation 8)

Avatar du membre
6502man
Messages : 8394
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par 6502man » 21 avr. 2017 16:10

@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 :wink:
Et merci :wink: 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 :wink:
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 :wink:

J'imagine que ton player est bien plus évolué et surtout utilise les partitions des trackers :D

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
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 :wink:
XYM_Vg5K.zip
(102.93 Kio) Téléchargé 15 fois

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 !
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Avatar du membre
Carl
Modérateur
Messages : 9669
Enregistré le : 08 avr. 2007 13:21
Localisation : www.dole.org
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par Carl » 21 avr. 2017 18:09

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

Markerror
Messages : 1190
Enregistré le : 31 oct. 2011 20:21
Localisation : Orléans
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par Markerror » 21 avr. 2017 20:25

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 :-).

Avatar du membre
6502man
Messages : 8394
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par 6502man » 21 avr. 2017 20:36

Voila l'assemblage en $5000 ;
VGXYM_$5000.ASM.BIN.zip
(334 Octets) Téléchargé 15 fois
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Markerror
Messages : 1190
Enregistré le : 31 oct. 2011 20:21
Localisation : Orléans
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par Markerror » 21 avr. 2017 21:40

Merci ! Bon, le mystère s'épaissit, les deux sources produisent le même code. Une nuit de sommeil apportera sûrement conseil :-).

Avatar du membre
6502man
Messages : 8394
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par 6502man » 21 avr. 2017 22:22

Curieux, n'y aurait il pas inversion des adresses registres et datas :roll:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Avatar du membre
6502man
Messages : 8394
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par 6502man » 21 avr. 2017 22:35

J'ai écrit une bêtise précédemment concernant la compatibilité de cette cartouche avec la VG5216 :oops:

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

www.6502man.com

To bit or not to bit.
1 or 0.

Avatar du membre
6502man
Messages : 8394
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par 6502man » 22 avr. 2017 10:06

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 :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Avatar du membre
Carl
Modérateur
Messages : 9669
Enregistré le : 08 avr. 2007 13:21
Localisation : www.dole.org
Contact :

Re: [VG-5000] création d'une cartouche ROM

Message par Carl » 22 avr. 2017 10:28

Phil,

Les configurations possibles sont celles-ci ?

VG5000 > VG5301 > VG5216 > VU0031

VG5000> VG5301 > VG5232

Répondre