MSX Village forum

L'école [EN COURS] Screen12 en continu. Numérisé sur pc et joué sur msx.

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/10/2013 à 07h19


Après de nombreux testes, j'ai pu trouve pas mal de choses inatendus aVec le vdp 9958, mais aucune solution quant à la numérisation en screen 12 a la volée.

J'ai bien trouvé à tâtons des effets visuels inatendus mais je garde cela pour un poste qui sera consacré aux effets spéciaux.

Je me suis résolu à générer le films avec bmp2msx avec une excellente qualité au final.

Notez que le programme n'est absolument pas optimise, mais très flexible à modifier.
Les dix premières images sont excessivement longues à être jouées et l'on sent bien une nette amélioration à partir de la onzième. Edité par igal Le 28/10/2013 à 18h26


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

Villageois

Rang

Avatar

Inscrit le : 08/07/2013 à 23h09

Messages: 366

Le 28/10/2013 à 10h32
Impressionnant !! :|


Kris - Old CPU addict
   
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 28/10/2013 à 10h56
Super cool le slideshow. :top

Je me demande ce que ça donnerait avec un processeur plus rapide :heink
Est ce que le VDP ou l'interface IDE seraient à la ramasse ou est ce qu'on pourrait envisager au moins 2 images par seconde. :hum
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/10/2013 à 15h06
Actuellement, avec le Player de Hit9918, ca tourne à 2 images par seconde.

Pour aller plus vite, il y a la possibilité de couper l'image en Haut et en Bas de sorte à obtenir une sorte de Cinémascope. Après quoi, en basculant en 60Hz, l'image est quasi en plein écran et le nombre d'image "pourrait" passer à 3 images par seconde. J'ai pas encore essayé mais ca devrait le faire.

A sujet, je suis confronté au problème suivant:

Actuellement, je charge les images avec la ligne de commande suivante:
360 N=1
370 ON ERROR GOTO 420
380 SET PAGE N AND 1, (N AND 1) XOR 1
390 BLOAD"H:image"+MID$(STR$(N),2)+".sc8",S
400 N = N + 1
410 GOTO 370

Ces lignes de commande (Merci jipe) génèrent des fichiers sous la forme suivante:
IMAGE1.SC8
IMAGE2.SC8
IMAGE3.SC8
IMAGE4.SC8
IMAGE5.SC8
IMAGE6.SC8
IMAGE7.SC8
IMAGE8.SC8
IMAGE9.SC8
IMAGE10.SC8
IMAGE11.SC8

afin d'avoir un temps identique pour le chargement de toutes les images, je voudrais pouvoir charger les fichiers sous cette forme:

IMGX0001.SCC
IMGX0002.SCC
IMGX0003.SCC
IMGX0004.SCC
IMGX0004.SCC
IMGX0005.SCC
IMGX0006.SCC
IMGX0007.SCC
IMGX0008.SCC
IMGX0009.SCC
IMGX0010.SCC
IMGX0011.SCC
...
..
.
IMGX9999.SCC

Ce qui permettrait d'avoir un temps identique quant à la lecture de IMGX0001.SCC et IMGX9999.SCC

@Fabf: Il s'agit du baptême de mon beau frère :top

Je prépare la vidéo avec ma soeur, avec un certain Marin champion du monde de parachutisme. Il fallait au moins ça :lol


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 28/10/2013 à 15h30
Déjà à la ligne 410 tu peux reboucler sur 380.
ON ERROR GOTO n'a pas besoin d'être chargé à chaque passage.

Pour le choix de la vidéo :p j'ai le vertige.
Je reconnais quand même que ce doit être une drôle d'expérience. :oups
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/10/2013 à 16h02
En fait, mon problème,c'est pas la vitesse mais le nom de images.

Je avec VirtualDub je suis obligé de nommer tel que:
IMAGE1.SCC

Je voudrais pouvoir nommer:
XXXX0001.SCC
XXXX0002.SCC
Etc...etc...

J'ai bien essayé de modifier => BLOAD"H:image"+MID$(STR$(N),2)+".sc8",S mais impossible de trouver la bonne formule :fou







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

Le 28/10/2013 à 16h17
est tu obligé de commencer a 1 avec virtualdub ?

si tu peux choisir commence a 1000




:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/10/2013 à 16h45
@Jipe: J'ai pu nommer de sorte à obtenir:

IMGX1000.BMP
IMGX1001.BMP
IMGX1002.BMP
Etc etc... :top

Pour cela, avec VirtualDub j'ai fait:
EXPORT / IMAGES SEQUENCE =>
FileName => IMGX1
Finame suffix => BMP
Minimum of number digits => 3


Ma soeur:

http://youtu.be/Ho3bIv83XEs

La prochaine vidéo, ce sera ma nièce :lol Edité par igal Le 28/10/2013 à 18h03


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 28/10/2013 à 21h36
La question que je me posais c'était juste de savoir lequel, parmi les trois composants en action, favoriserais un affichage plus rapide.

Je sais pas si c'est youtube qui fait ça mais ça donne pas l'impression de 2 images seconde.
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/10/2013 à 22h56
C'est parce que j'utilise pas le Player de Hit9918, mais mon programme que je peux modeler facilement pour expérimenter ce que je veux.

Pour utiliser le Player de Hit9918, il faut passer par les 3 étapes suivantes:

1) Préparation 16Mo de Ram
Code TEXT :
 
10 poke &hf676,1 : poke &hf677,&hc0 : poke &hc000,0 : new


2) Capture 16Mo de Ram (en réalité, limité à 256 images max pour le moment)
Code TEXT :
 
0 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
 


3) Player 16Mo de Ram
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


Il faut donc capturer avec le listing qui se trouve à l'étape 2. Le problème c'est que pour le SCREEN12, on peut pas capturer en YJK sur un 9958.
C'est la raison pour laquelle j'ai utilisé BMP2MSX qui le fait excellemment bien même si c'est moins fun que de tout faire sur MSX :p

Une fois mes images prêtes, je voudrais bien les "injecter" dans la RAM pour qu'elles puissent être jouées par le Player mais je sais pas comment les "transporter" en Ram.

Pour bien faire, il faudrait que je demande à Hit9918 de:
A) faire un petit outil qui permet d'injecter les images importés de n'importe ou. (Permet d'injecter des images crées avec BMP2MSX en SCREEN12)
B) Ne plus limiter les images à 256 en se limitant à un nombre "maximum" d'un registre bien précis du VDP.(réduit un petit peu la vitesse de comptage des images)
C) Laisser la possibilité de modifier la superficie d'image à copier de sorte à en réduire la raille. (permet un gros gain de vitesse en réduisant la taille des images)
D) Permettre une interaction avec les touches directionnelles. Haut, Bas, Gauche, Droite. (permet d'accéder à tel ou tel scénario selon la touche pressée)

La préparation de la vidéo est très simple puisqu'il suffit de:

Virtual Dub:
1) Ouvrir la vidéo
2) Vidéo/frame rate => Convert to FPS (2 ou 3 selon les Player qui lira la vidéo)=> Ok
3) Vidéo/Filters/Add => Resise => ok (tout en haut à droite ??? X 212) => Ok
4) Add => Null transform => Ok => Cropping => (Réduire symétriquement ??? X 212 jusqu'à obtenir 256 X 212) => Ok =>Ok
5) Files/Export/Image Séquence (Entrer les informations ci dessous)
filename => IMAGE
Filname Suffix => .BMP
Minimum Number of Digits in => 1
Directory to hold => Indiquer le répertoire de sortie
OutPut Format => Windows BMP
Valider avec OK pour générer les fichiers.

BMP2MSX
MSX Screen Mode => SCEEN12
OutPut => File and Preview
Coché => Auto file Name
Setting to Use => Last convert
Dither Patarn => Random Dots
Source color => 8 bit.
SC10-12 Algolithm => Error fix (Give Brightnes)
Coché => Reclac J and K
Tout le reste est grisé et/ou décoché

Il suffit de faire glisser toutes les images créées précédemment avec VirtualDub et laisser travailler plusieurs minutes si nécessaires. (même si cela semble avoir freezé)


Voici le SCREEN 12 => http://www.youtube.com/watch?v=szg2rHS7yRY



Voici la Source =>http://www.youtube.com/watch?v=PJFwII4rUsE
Edité par igal Le 28/10/2013 à 22h56


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

Le 29/10/2013 à 10h34
en fait l'affichage est tributaire de la vitesse de l'unitée de sauvegarde employée
avec un kit 7MHz ou un turbo-r et un disque SCSI on peux descendre le temps entre 2 images

il existe 2 moyens de numériser en screen 12 sur MSX :
l'interface HBI-V1 de SONY mais elle est en NTSCd'origine
un montage sorti dans les MSX MAGAZINE japonais a faire soit même


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 29/10/2013 à 11h06
@Jipe: actuellement, la lecture des 2 images par seconde est possible avec le player de Hit9918.
Le problème est que je ne sais pas comment injecter mes IMAGES.SCC créées avec BMP2MSX sur les 16Mo de RAM de sorte à ce que le player de hit9918 puisse les lire.
Je viens de poser la question sur Msx.Org. Je pense qu'il donnera la solution pour faire cela.

On pourrait peut peut être gagner du temps en vitesse de lecture en s’adressant à deux médias simultanément?

Actuellement on a ça:
Code TEXT :
 
360 N=1
370 'ON ERROR GOTO 420
380 SET PAGE N AND 1, (N AND 1) XOR 1
390 BLOAD"H:image"+MID$(STR$(N),2)+".sc8",S
400 N = N + 1
410 GOTO 370
 


Peut être quelque chose de ce genre:
360 N=1
370 'ON ERROR GOTO 420
380 SET PAGE N AND 1, (N AND 1) XOR 1
390 BLOAD"H:IMPAIRES"+MID$(STR$(N),2)+".sc8",S
400 N = N + 1
401 SET PAGE N AND 1, (N AND 1) XOR 1
402 BLOAD"F:PAIRES"+MID$(STR$(N),2)+".sc8",S
403 N = N + 1
410 GOTO 370

Je suis septique sur la méthode, mais l'idée de basculer d'un média à l'autre devrait apporter un plus :moue

Edit: Je suis curieux des modifs pour numériser en SCREEN12 mais surtout en SCREEN5 si possible :p Edité par igal Le 29/10/2013 à 11h07


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

Le 29/10/2013 à 11h18
il n'y a pas de modifs du 8280 pour numériser en screen 12

la modif que j'ai porte uniquement sur les screens 5 et 7 en luminance

la le scanner est inaccessible suite au retour de RGC et mon second PC avec le SCSI est déconnecté de mon réseau
il y des jours comme ça ou ça va de travers :(


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 29/10/2013 à 16h31
Voici un courte séquence que j'ai fait sur mon MSX que j'ai sorti en catimini et qui va vite retourner dans le placard jusqu'à demain :p

Encore une fois, il s'agit pas du Player de Hit9918. Il faut s'attendre à une vitesse deux fois plus rapide qu'en ce moment :top

http://youtu.be/F_XIUchY1jQ





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