MSX Village forum

La Place des Développeurs [EN COURS] Gradius 4 remake. Remake du Stage 2 de Gradius 4

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 12/10/2014 à 20h12
Afin de mettre en pratique mes avancées sur le SCROLL Hardware, j'ai entrepris de "convertir" Graidus 4 sur MSX2+.

J'ai mis en place une technique d'importation des graphismes à l'aide de Virtual Dub.

En gros....

1) Je télécharge la Vidéo.
2) Je convertis la Vidéo en AVI.
3) J'ouvre avec Virtual Dub.
3b) Je change le Frame Rate à 1 FPS.
3c) Je plaque un filtre pour réduire à 212 pixels de Hauteur.
3d) Je plaque un filtre Null transforme en "trancher" des bribes de 256 X 64 Pixels
3e) Je fais Export => BMP
4) Je reconstruit la Mappe avec Paint.Net
5) J'applique la méthode permettant le SCROLL Horizontal décrit ci dessous.

La première ligne est la source original.
La seconde ligne est le résulta incohérent conséquence du moteur. (Moteur très tordu :lol )
La troisième schématise la conséquence du moteur.
La quatrième ligne montre le découpage nécessaire aux "contre-mesures"
La cinquième ligne est la nouvelle source qui devra t être scrollée pour un résulta identique à la source originale.



Voici le gabarit:





6) Les Bribes allant de 0-1 à 0-44 peuvent être réduites à 1 Pixel de long. (Gain de temps important)
7) Il est possible de "Swapper" entre les SCREEN 12 et SCREEN 10 afin de modifier la palette graphique de l'ensemble de l'écran en temps réel :top

Voici la vidéo qui m'a servi à importer la Mappe:

https://www.youtube.com/watch?v=DY2t-62xMhQ

Si tout va bien, demain je posterai la mappe :top Edité par igal Le 12/10/2014 à 20h15


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5492

Le 12/10/2014 à 20h51
ca c'est cool ta technique de la mort !
Ca peut servir !


banniere-ericb59e
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1488

Le 13/10/2014 à 11h01
Je te souhaite bon courage dans ton projet, Igal.
Personnellement, je pense que tu touches aux limites du BASIC MSX et que tu vas très vite te heurter à des impossibilités.

Mais je sais aussi que ce n'est pas ce qui t'arrête ^^ Edité par Metalion Le 13/10/2014 à 13h38


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)
   
Kris Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 08/07/2013 à 23h09

Messages: 366

Le 13/10/2014 à 13h20
Courage pour la suite, la map est plutot prometteuse :)


Kris - Old CPU addict
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 13/10/2014 à 19h58
Voici la mappe après nettoyage mais surtout avant sa séance te torture :lol


Maintenant que la mappe est extraite, passons tout ça à la moulinette :fou


La moulinette en question c'est ce filtre qui progresse par 2 Pixels :D


Voici le résulta: (Ne vous fiez pas à la vitesse :oups )

http://youtu.be/Rvng-5EBdYE

A défaut de transparence, je vais élaguer les images pour alléger la quantité des données à charger/afficher ;)


Ca c'est pour demain :tchin


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

Maire-adjoint

Rang

Avatar

Inscrit le : 06/10/2009 à 18h27

Messages: 613

Le 13/10/2014 à 21h33
Dis-donc mais ça m'intéresse ton projet de refaire un Gradius pour MSX. Courage pour le faire en BASIC ! :tchin


MSX Turbo-R FS A1GT - 1 Mo de RAM - Disque dur SCSI Syquest cartouches de 270 Mo - Lecteur CD. Musique, musique, musique et encore musique !
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 13/10/2014 à 22h07
J'ai espoir d'obtenir une vitesse de déroulement acceptable.

Une fois les parties en vert soustraites aux bribes et le renomage des Bribes de en hexadécimal par groupe de 0 à F le scroll devrait être acceptable.


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 14/10/2014 à 15h30
Finalement, c'est pas mal du tout juste en rangeant par groupe de 16 Fichiers.

Afin de limiter au maximum les temps d'accès au fichiers, j'ai donc séparé en répertoire et sous répertoires pour ne garder que 16 Fichiers nommés de 0 à F.

Je n'ai même pas eu à soustraire les surfaces vertes comme décrit au dessus :top

http://youtu.be/DmAB6xfNEy0

Demain, (Si j'ai le temps) j'essaierai de faire varier varier progressivement toutes les couleurs afficher à l'écran sans ralentissement :D








Voici une méthode qui devrait permettre de modifier les décors lors d'un scrolling.

Voici le schéma que j'ai imaginé dans mon cerveau mala...Biiiiip.. :fou



La technique permet d'afficher un décors "pré-éxistant" et rangé rationnellement.

Le sous programme est appelé par:

Code TEXT :
 
10 'SAVE"HPLAY15.asc",A
20 'CALL CHDIR ("h-0")
30 'PLAYER DE BRIBES HORIZONTAL [22X(2X256)]+[(106X(4X256)]
40 VDP(10)=0:SCREEN 10:SET PAGE 0,1:VDP(12)=&B001000000:VDP(6)=&B00111111:VDP(7)=&B00000000:BLOAD"prima.sca",S:CALL CHDIR ("h-0")
50 N=2:P=0:R=0:X=100:Y=100
 
60 IF P=0THEN CALL CHDIR (".."):CALL CHDIR ("H-0"):GOSUB 220
70 IF P=1THEN CALL CHDIR (".."):CALL CHDIR ("H-1"):GOTO220
80 IF P=2THEN CALL CHDIR (".."):CALL CHDIR ("H-2"):GOTO220
90 IF P=3THEN CALL CHDIR (".."):CALL CHDIR ("H-3"):GOTO220
100 IF P=4THEN CALL CHDIR (".."):CALL CHDIR ("H-4"):GOTO220
110 IF P=5THEN CALL CHDIR (".."):CALL CHDIR ("H-5"):GOTO220
120 IF P=6THEN CALL CHDIR (".."):CALL CHDIR ("H-6"):GOTO220
130 IF P=7THEN CALL CHDIR (".."):CALL CHDIR ("H-7"):GOTO220
140 IF P=8THEN CALL CHDIR (".."):CALL CHDIR ("H-8"):GOTO220
150 IF P=9THEN CALL CHDIR (".."):CALL CHDIR ("H-9"):GOTO220
160 IF P=10THEN CALL CHDIR (".."):CALL CHDIR ("H-A"):GOTO220
170 IF P=11THEN CALL CHDIR (".."):CALL CHDIR ("H-B"):GOTO220
180 IF P=12THEN CALL CHDIR (".."):CALL CHDIR ("H-C"):GOTO220
190 IF P=13THEN CALL CHDIR (".."):CALL CHDIR ("H-D"):GOTO220
200 IF P=14THEN CALL CHDIR (".."):CALL CHDIR ("H-E"):GOTO220
210 IF P=15THEN CALL CHDIR (".."):CALL CHDIR ("H-F"):P=0
 
220 CALL CHDIR ("0")
222  BLOAD"0",S,0-11264:GOSUB 1510
224  BLOAD"1",S,0-11264:GOSUB 1510
226  BLOAD"2",S,0-11264:GOSUB 1510
228  BLOAD"3",S,0-11264:GOSUB 1510
230  BLOAD"4",S,0-11264:GOSUB 1510
232  BLOAD"5",S,0-11264:GOSUB 1510
234  BLOAD"6",S,0-11264:GOSUB 1510
236  BLOAD"7",S,0-11264:GOSUB 1510
238  BLOAD"8",S,0-11264:GOSUB 1510
240  BLOAD"9",S,0-11264:GOSUB 1510
242  BLOAD"A",S,0-11264:GOSUB 1510
244  BLOAD"B",S,0-11264:GOSUB 1510
246  BLOAD"C",S,0-11264:GOSUB 1510
248  BLOAD"D",S,0-11264:GOSUB 1510
250  BLOAD"E",S,0-11264:GOSUB 1510
252  BLOAD"F",S,0-11264:GOSUB 1510
254 R=R+1:CALL CHDIR (".."):CALL CHDIR ("1")
256 BLOAD"0",S,0-11264:GOSUB 1510
258 BLOAD"1",S,0-11264:GOSUB 1510
260 BLOAD"2",S,0-11264:GOSUB 1510
262 BLOAD"3",S,0-11264:GOSUB 1510
264 BLOAD"4",S,0-11264:GOSUB 1510
266 BLOAD"5",S,0-11264:GOSUB 1510
268 BLOAD"6",S:GOSUB 1510
270 BLOAD"7",S:GOSUB 1510
272 BLOAD"8",S:GOSUB 1510
274 BLOAD"9",S:GOSUB 1510
276 BLOAD"A",S:GOSUB 1510
278 BLOAD"B",S:GOSUB 1510
280 BLOAD"C",S:GOSUB 1510
282 BLOAD"D",S:GOSUB 1510
284 BLOAD"E",S:GOSUB 1510
286 BLOAD"F",S:GOSUB 1510
288 R=R+1:CALL CHDIR (".."):CALL CHDIR ("2"):GOTO 300
290 IF R=3THEN CALL CHDIR ("3"):GOTO 300
292 IF R=4THEN CALL CHDIR ("4"):GOTO 300
294 IF R=5THEN CALL CHDIR ("5"):GOTO 300
296 IF R=6THEN CALL CHDIR ("6"):GOTO 300
298 IF R=7THEN CALL CHDIR ("7"):GOTO 300
300 IF R=8THEN R=0 : P=P+1 : GOTO 60
301 BLOAD"0",S:GOSUB 1510
302 BLOAD"1",S:GOSUB 1510
304 BLOAD"2",S:GOSUB 1510
306 BLOAD"3",S:GOSUB 1510
308 BLOAD"4",S:GOSUB 1510
310 BLOAD"5",S:GOSUB 1510
312 BLOAD"6",S:GOSUB 1510
314 BLOAD"7",S:GOSUB 1510
316 BLOAD"8",S:GOSUB 1510
318 BLOAD"9",S:GOSUB 1510
320 BLOAD"A",S:GOSUB 1510
322 BLOAD"B",S:GOSUB 1510
324 BLOAD"C",S:GOSUB 1510
326 BLOAD"D",S:GOSUB 1510
328 BLOAD"E",S:GOSUB 1510
330 BLOAD"F",S:GOSUB 1510
332 R=R+1:CALL CHDIR (".."):GOTO 290
1500 '
1510 X=X+2AND255:COPY(0,0)-(3,3),0TO(X,Y),0:VDP(27)=(N+7)/8:VDP(28)=-NAND7:COPY(H,0)-(H+1,212),1TO(H,0),0:H=H+2AND255:N=N+2AND255:IFSTRIG(0)THENCOPY(0,0)-(1,1),0TO(X+100AND255,Y),0
1515 S=STICK(0):ONS+1 GOSUB 1530,1560,1590,1620,1650,1690,1720,1750,1780:RETURN
1520 '
1530 'STATIQUE
1540 RETURN
1550 RETURN
1560 'HAUT
1570 Y=Y-2AND255:RETURN
1580 '
1590 'DIAGO HAUT DROITE
1600 X=X+2AND255:Y=Y-2AND255:RETURN
1610 '
1620 'DROITE
1630 X=X+2AND255:RETURN
1640 '
1650 'DROITE BAS
1660 X=X+2AND255:Y=Y+2AND255:RETURN
1670 '
1680 '
1690 'BAS
1700 Y=Y+2AND255:RETURN
1710 '
1720 'DIAGO BAS GAUCHE
1730 X=X-4AND255:Y=Y+2AND255:RETURN
1740 '
1750 'GAUCHE
1760 X=X-4AND255:RETURN
1770 '
1780 'DIAGO HAUT GAUCHE
1790 X=X-4:Y=Y-2:RETURN
 



410 ' Boucle du moteur principale
420 '
430 S=STICK(0):ONS+1GOSUB510,570,640,710,770,840,910,980,1040
440 PUTSPRITE0,(X,Y),11,0:PUTSPRITE1,(X,Y),0,0:PUTSPRITE2,(-X,X),9,0
450 PUTSPRITE3,(-X,-Y),15,0:PUTSPRITE4,(-Y,X),8,0:PUTSPRITE5,(VDP(27),X),1,0
460 GOTO 430
470 '
480 '
490 ' SP gestion mouvement: STATIQUE
500 '
510 IFSTRIG(0)THENPOKE&HCFFF,11:A=USR2(0):PUTSPRITE1,(X+50,Y),3,0
520 IFX<1THENX=0:'N=N-1:GOSUB1380
530 VDP(27)=VDP(27)+1AND255:X=X-1:RETURN

Edité par igal Le 22/10/2014 à 19h28


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

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 16/10/2009 à 18h53

Messages: 683

Le 14/10/2014 à 18h36
Bravo Igal ! Quelle inventivité ! Ca m'intéresse grandement aussi ! :top :top


MSX1 Sony HB501F / MSX2+ FSA1FX / MSX2+ FSA1WX / MSX2+ FSA1WSX / MSX Turbo-R ST / MSX Turbo-R GT
Moonsound 2.0 & DalSoRi - Interface CF & CF Card Interface - MegaFlash SCC 512Ko & 2x512ko - SRam 512Ko - Megaflashrom SCC + SD
MSX4Ever !!
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie