MSX Village forum

L'école [RESOLU] AUDIO Stéréo / VIDEO Screen 8 (Real Time Movie) Audio Stéréo avec 2 Music Module et Vidéo avec Effets spéciaux 256 couleurs

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10349

Le 07/10/2013 à 14h30

Reprise du message précédent

pas étonnant que je n'ai rien compris a l'option fixer , mon 8280 2+ est modifié en hard sur la synchro

en tout cas c'est le seul programme basic qui permet la digit sans une boucle de tempo
sinon il faut laisser le temps pour avoir toute l'image digitalisée


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 07/10/2013 à 15h02
C'est une solution intermédiaire.

Même si elle demande à être répété après un reboot, elle a le mérite d'éviter la modification HardWare :top

Par contre, je suis étonné que tu ais encore des Demi ou tiers d'image numérisées....Comme dans mes ancienne versions...

Je n'ai plus rencontré ce problème peut être depuis l'ajout de SCREEN8,,,,,3 qui bascule le mode en "Entrelacé" et donc deux fois moins de Pixels à transporter et donc deux fois plus rapide/performant :moue

Dans tous les cas, je n'ai plus du tout ce soucis avec le listing proposé quelques postes plus haut.

Je voulais te soumettre la partie BLOAD proposée par hit9918 de Msx.ORG

Voici l'extrait:
Code TEXT :
 
0 GOTO 270
270 SET VIDEO 0,0,0:SCREEN0:COLOR 1,15,15
280 PRINT"4) LANCER LA VISIONNEUSE
290 PRINT"
295 PRINT" OPERATIONS POSSIBLES:
300 PRINT" [STOP] => FAIRE UN ARRET SUR IMAGE
310 PRINT" [CTRL]+[STOP] => QUITTER LE PROGRAMME
320 ON STOP GOSUB360:STOP ON:A$=INKEY$:IF A$=""THEN320
321 SCREEN 8,,,,,2:COLOR ,,0:N=1
322 ON ERROR GOTO 327
323 SET PAGE N AND 1, (N AND 1) XOR 1
324 BLOAD"H:image"+MID$(STR$(N),2)+".sc8",S
325 N = N + 1
326 GOTO 322
327 IF ERR = 53 THEN 328 ELSE SCREEN 0 : PRINT"error in line:";ERL : ERROR ERR : REM err 53 , file not found
328 RESUME 329
329 GOTO 321:'END
 


Regarde la dernière vidéo, on y voit le comportement de ce BLOAD qui est rapide mais un peu désynchronisé!
Les 20 Premières seconde je fait BSAVE et ensuite je lance le BLOAD ;)

T'aurais pas une idée pour équilibré le temps d'affichage de chaque images plutôt que de voir...

J'utilise cet appareil:
http://www.cgv.fr/IMG/pdf/20130605_14_VG_Etimo_1T-1e_notice.pdf Edité par igal Le 07/10/2013 à 15h41


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10349

Le 07/10/2013 à 15h09
tu m'as mal compris , avec ton programme la digit se fait entiérement du 1er coup

je vais essayer le programme modifié ;)


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 07/10/2013 à 16h44
Le 60hz permet un affichage parfait ey tres rapide par contre mon lecteur video affiche en 50hz seulement ce qui m empecheche de numeriser correctement en 60hz. Faut que lise les video avec la wii en 60hz


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10349

Le 07/10/2013 à 17h27
j'ai un peu modifié
defint a-z pour plus de vitesse pour les variables
le compteur commence a 100 pour éviter les opérations de STR$
le visionnage se fait en boucle

Code TEXT :
100 '   SAVE"DIGITIZE.BAS"
110 DEFINT A-Z
120 ON STOP GOSUB420:STOP ON:N=100
130 SET ADJUST(8,-0):WIDTH 80:COLOR 1,15:CLS:'MODE TEXTE NOIR ET BLANC
140 PRINT"1) PRESSER UNE TOUCHE LORSQUE L'IMAGE EST CORRECTEMENT RECADREE
150 A$=INKEY$:IF A$=""THEN150
160 SET VIDEO 2,0,0:COLOR 1,15,5
170 SCREEN8,,,,,2:A$=INKEY$:IF A$=""THEN170
180 SCREEN8,,,,,3:'MODE ENTRELACE FIXE LA STABILITE
190 SCREEN0:PRINT"2) INITIALISASITION DU RAM DISK  ; UN INSTANT
200 CALL RAMDISK(0):CALL RAMDISK(4000):'RAMDISK
210 PRINT"3) LANCER LA NUMERISATION A LA VOLEE
220 PRINT"
230 PRINT"   OPERATIONS POSSIBLES:
240 PRINT"   [STOP] => FAIRE UN ARRET SUR IMAGE
250 PRINT"   [CTRL]+[STOP] => SAUVER UNE/DES IMAGES
260 PRINT"   [CTRL]+[STOP]+[ESPACE] => QUITTER LA NUMERISATION
270 PRINT"
280 A$=INKEY$:IF A$=""THEN280
290 SCREEN8:COLOR 255,255,255
300 COPY SCREEN0:ON STOP GOSUB 310:STOP ON:GOTO300
310 COPY SCREEN0:N$=RIGHT$(STR$(N),3):BSAVE"H:IMAGE"+N$+".SC8",0,&HD3FF,S:N=N+1:A$=INKEY$:IF A$=""THEN300ELSE320
320 NS=N:SET VIDEO 0,0,0:SCREEN0:COLOR 1,15,15
330 PRINT"4) LANCER LA VISIONNEUSE
340 PRINT"
350 PRINT"   OPERATIONS POSSIBLES:
360 PRINT"   [STOP] => FAIRE UN ARRET SUR IMAGE
370 PRINT"   [CTRL]+[STOP] => QUITTER LE PROGRAMME
380 ON STOP GOSUB420:STOP ON:A$=INKEY$:IF A$=""THEN380
390 SET VIDEO 0,0,0:N=100
400 COLOR ,,0:SCREEN8
410 N$=RIGHT$(STR$(N),3):BLOAD"H:IMAGE"+N$+".SC8",S:N=N+1:IFN=NSTHENN=100:GOTO410ELSE410
420 SET VIDEO 0,0,0:SCREEN0:COLOR 1,15,15:WIDTH 80


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 07/10/2013 à 22h20
Voici le Chargeur de hit9918 en action:

watch?v=pmw87w7i6rQ


J'ai basculé le MSX en 60Hz avec [VDP (10)=0]
La vitesse de chargement est assez impressionnante pour du Basic :D

http://youtu.be/g8vGnnDzhl4

Voici le résulta obtenu avec le loader de Hit9918 sur BlueMSX.

http://youtu.be/i1Gu1zuV450
Pour faire simple:
Si on BSAVE en 50 Hz il faut BLOAD en 60Hz.
Si on BSAVE en 60Hz il faut BLOAD en 50Hz.

@Jipe: Une fois cette règle appliquée, ce chargeur semble être la bonne voix vu la vitesse de chargement/ :top affichage

Edit: A force de chercher, je suis encore une fois tombé sur la solution au problème.

Si vous numérisez en 50Hz, il suffit de basculer l'affichage de 50Hz vers 60Hz pour ensuite revenir à 50Hz avant BLOAD et comme par enchantement, l'affichage devient cohérent.
Ce qui donne la ligne de commande suivante:

10 Démarrage du MSX en 50Hz.
15 VDP(10)=3:VDP(10)=2
20 SCREEN8,,,,,2 => Perte de la Synchro.
30 SCREEN3,,,,,3 => Fixe la Synchor.
40 SET VIDEO 2,0,0 => Super Impose.
50 BSAVE....=> Transfert les GFX de la VRAM à le RAM DISK.
60(a) VDP(10)=0 => Fixe l'affichage des images qui seront affichées par le Loader.
70 BLOAD.... => Affiche les images stockées dans le RAM DISK.

Pour info, le Bug d'affichage avec la méthode de Hit9918 n'est pas la faute du 8280 puisque BlueMsx reproduit le même Bug.

Il commence à prendre une bonne tournure ce petit programme :top Edité par igal Le 09/10/2013 à 12h53


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 08/10/2013 à 12h20
Mais au final, Igal, qu'est-ce que tu veux faire ? :hum
J'avoue ne pas très bien comprendre ...

Digitaliser un film au format MSX et le rejouer avec un player ? C'est plus facile à partir d'un PC et EVA.
Et de toutes façons, le MSX ne possède pas les capacités pour pouvoir te donner un fps suffisant ...

:hum


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/10/2013 à 15h04
A faire mumuse avec un rendu d'une image par seconde :fou

1) Je BSAVE un film sur CF avec BlueMSX à la vitesse de 500%
2) J'obtiens 80 Frames.
3) Je copies ces Frames sur ma CF (réelle)
4) J'exécute le LOADER.
5) Voici le résulta:


http://youtu.be/rtJaUAnS5m8
(Désolé pour la fluorescence, mon appareil s'est remis à déconner :sick )



Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 08/10/2013 à 19h15
a cette vitesse on profite bien des formes de la nana :top
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/10/2013 à 19h21
Ca devrait aller un peu plus vite par la suite. :p

Par contre, je suis limité à 256 fichiers générés lorsque je créer mon film sur la CF Disk E:

Je suppose que c'est la limite du BASIC :moue

Vous savez si on peut passer outre?


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10349

Le 08/10/2013 à 19h30
les fichiers sont t'ils a la racine de la CF

si oui essai de créer un répertoire


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/10/2013 à 20h04
Effectivement, je suis à la Racine de E:

Vais essayer de faire ça dans un répertoire dédié :top


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5794

Le 08/10/2013 à 20h32
Faudra que j'essai tout ca un jour ^^' vraiment interessant!



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/10/2013 à 20h59
Pour le plaisir de Chalom et des autres, une petite démo à lancer sur vos MSX2, MSX2+ et Turbo-R

PFOLIO.zip

1) Décompressez PFOLIO.ZIP (4Mo)
2) Copiez le répertoire PFOLIO sur un CF, SD, HD ou encore CD :D (25Mo)
3) Entrez dans le répetoire PFOLIO
4) Lancez le fichier PFOLIO.ASC

Il y a 468 IMAGES à raison d'une image par seconde environ.
Si vous manquez de place, vous pouvez supprimer des fichiers IMAGESxxx.SC8 en décimant par les derniers.

N'hésitez pas si vous avez des remarques :oups







Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10349

Le 09/10/2013 à 11h24
pour faire un directory sous DOS

MKDIR NOM

ou plus simplement

MD NOM

et sous BASIC

CALL MKDIR ("NOM")


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 11/10/2013 à 15h44
Merci Jipe :)

@MsxLégend: tu vas pouvoir exploiter les 16Mo de la Playsoniq :D

Ca fait quelques jours que je traîne sur Msx.Org et par coup de chance, hit9918 s'est intéressé à ma question.

Autre coup de bol, il a vraiment l'air de maîtriser le sujet puisque.

Avant tout, il est recommandé de ne pas charger le DOS mais de démarrer directement sous BASIC.
Nb: Malgré tout, je démarre sous DOS pour ensuite revenir sous BASIC et cela fonctionne sous certaines conditions :top

Voici le code permettant d'exploiter jusqu'à 16Mo sur Différents Slots et/ou SubSlots.
Vous trouverez à la suite de chaque Listing la modification à apporter pour l'utilisation de la [Numérisation en Temp Réel].

16MOPREP.ASC
Code TEXT :
 
10 poke &hf676,1 : poke &hf677,&hc0 : poke &hc000,0 : new
 

Nb: Ce code est préalable et permet de transférer le BASIC sur une autre adresse.

16MOCAPT.ASC
Code TEXT :
 
10 clear 200,&hd000 : p% = &hd000 'loading asm there
20 defusr0 = p%+2 '+2: skip module length
30 gosub 5000 'load asm code
40 LI% = p% 'ldir function. call with usr(%LD)
50 gosub 5000 'load asm code
 
60 screen 8
70 m = 1 'mapper start.
 
71 pp = (inp(&ha8) AND &b110000)/16 : ss = 0 'slot currently selected in page2/&h8000 to primary pp%, secondary ss%=0
 
110 for i = 0 to 9999 'count images i
120 color ,i AND 255 : cls : cls
 
200 for j = 0 to 2
 
220 defusr1 = (128 + ss * 4 + pp)*256 '*256 to get in akku A register of AF
230 defusr4 = &h8000 'tell 16k page in HL register
240 u%=usr(&h24) 'ENASLT bios function to set slot/subslot
250 out &hFE,m
300 defusr2 = 16384
310 defusr3 = &h8000 'DE 'ram target address
320 defusr4 = 16384*j 'HL 'vram source address
330 u%=usr(&h59) 'vram to ram
340 m = m + 1 : if m = 256 then gosub 600
 
440 next j
 
461 defusr1 = (128 + ss * 4 + pp)*256 '*256 to get in akku A register of AF
462 defusr4 = &h8000 'tell 16k page in HL register
463 u%=usr(&h24) 'ENASLT bios function to set slot/subslot
464 out &hFE,m
465 defusr2 = 5120'that snippet down between line 192 and 212. waste a whole 16k page for simple logic
466 defusr3 = &h8000
467 defusr4 = 16384*3
468 u%=usr(&h59)
469 m = m + 1 : if m = 256 then gosub 600
 
490 next i
 
500 screen 0 : color 15,4 : END
 
600 m = 1 : ss = ss + 1'to next subslot / next 4 megs bank
610 if ss <= 3 then return
620 return 500'done
 
 
4999 STOP 'when above code forgot END
5000 read a$ : if a$ = "END" then return
5010 poke p%,val("&h"+a$) : p%=p%+1 : goto 5000
 
9999 'the callbios code. runs on any address.
10000 DATA 55,00,3A,63,F6,FE,02,28
10010 DATA 04,CD,C0,00,C9,21,E1,E9
10020 DATA 22,AC,F3,CD,AC,F3,11,24
10030 DATA 00,19,ED,5B,F8,F7,73,23
10040 DATA 72,2A,9C,F3,E5,F1,ED,4B
10050 DATA 9E,F3,ED,5B,A0,F3,2A,A2
10060 DATA F3,DD,2A,A4,F3,FD,2A,A6
10070 DATA F3,CD,00,00,ED,43,9E,F3
10080 DATA ED,53,A0,F3,22,A2,F3,DD
10090 DATA 22,A4,F3,FD,22,A6,F3,F5
10100 DATA E1,2A,9C,F3,C9,END
 
 
19999 'LDIR : RET
20000 DATA ED,B0,C9,END
 


16MOPLAY.ASC
Code TEXT :
 
10 clear 200,&hd000 : p% = &hd000 'loading asm there
20 defusr0 = p%+2 '+2: skip module length
30 gosub 5000 'load asm code
40 LI% = p% 'ldir function. call with usr(%LD)
50 gosub 5000 'load asm code
 
60 screen 8
70 m = 1 'mapper start.
 
71 pp = (inp(&ha8) AND &b110000)/16 : ss = 0 'slot currently selected in page2/&h8000 to primary pp%, secondary ss%=0
 
110 for i = 0 to 9999 'count images i
120 set page i and 1,(i and 1) xor 1
 
200 for j = 0 to 2
 
220 defusr1 = (128 + ss * 4 + pp)*256 '*256 to get in akku A register of AF
230 defusr4 = &h8000 'tell 16k page in HL register
240 u%=usr(&h24) 'ENASLT bios function to set slot/subslot
250 out &hFE,m
300 defusr2 = 16384
310 defusr3 = 16384*j 'DE 'vram target address
320 defusr4 = &h8000 'HL 'ram source address
330 u%=usr(&h5c) 'ram to vram
340 m = m + 1 : if m = 256 then gosub 600
 
440 next j
 
461 defusr1 = (128 + ss * 4 + pp)*256 '*256 to get in akku A register of AF
462 defusr4 = &h8000 'tell 16k page in HL register
463 u%=usr(&h24) 'ENASLT bios function to set slot/subslot
464 out &hFE,m
465 defusr2 = 5120'that snippet down between line 192 and 212. waste a whole 16k page for simple logic
466 defusr3 = 16384*3
467 defusr4 = &h8000
468 u%=usr(&h5c)
469 m = m + 1 : if m = 256 then gosub 600
 
490 next i
 
500 screen 0 : color 15,4 : END
 
600 m = 1 : ss = ss + 1'to next subslot / next 4 megs bank
610 if ss <= 3 then return
620 return 500'done
 
 
4999 STOP 'when above code forgot END
5000 read a$ : if a$ = "END" then return
5010 poke p%,val("&h"+a$) : p%=p%+1 : goto 5000
 
9999 'the callbios code. runs on any address.
10000 DATA 55,00,3A,63,F6,FE,02,28
10010 DATA 04,CD,C0,00,C9,21,E1,E9
10020 DATA 22,AC,F3,CD,AC,F3,11,24
10030 DATA 00,19,ED,5B,F8,F7,73,23
10040 DATA 72,2A,9C,F3,E5,F1,ED,4B
10050 DATA 9E,F3,ED,5B,A0,F3,2A,A2
10060 DATA F3,DD,2A,A4,F3,FD,2A,A6
10070 DATA F3,CD,00,00,ED,43,9E,F3
10080 DATA ED,53,A0,F3,22,A2,F3,DD
10090 DATA 22,A4,F3,FD,22,A6,F3,F5
10100 DATA E1,2A,9C,F3,C9,END
 
 
19999 'LDIR : RET
20000 DATA ED,B0,C9,END
 


Voici un Pack qui regroupe les Listing:
PORTE FOLIO.zip

Nb: Le Fichier 012.ASC permet de mieux comprendre le processus et le différents fixes nécessaires qu 8280 équipé d'un VDP9958 sans fixe Hardware.
Ce Fichier doit encore être complété avec les avancées de Jipe pour un gain de vitesse :top

Nb: Les Fichiers 16MOPREP.ASC, 16MOCAPT.ASC et 16MOPLAY.ASC sont aussi modifiés pour le [8280 Fixe] et la numérisation à la volée :top



Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie