TRANSYLVANIA conversion AMSTRAD CPC

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Répondre
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

TRANSYLVANIA conversion AMSTRAD CPC

Message par 6502man »

Donc on va essayer de centraliser les discussions concernant cette conversion sur ce topic.

Toute aide est la bienvenue :wink:

1) Choix de la représentation graphique et du mode graphique ?
  • 1a : vectoriel/bitmap
    1b : 320X200 4 couleurs / 160x200 16 couleurs
2) Choix du modèle minimum de CPC ?
  • 2a : 464 => 64Ko ( 42Ko basic / ?? Ko assembleur )
    2b : 6128 => 128Ko ( 42Ko basic / ?? Ko assembleur )
3) Conversion des graphismes ?

4) Création des bruitages et musiques ?
Dernière modification par 6502man le 16 avr. 2013 10:00, modifié 1 fois.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par 6502man »

Pour commencer : un petit test des performances du CPC en mode vectoriel.

Voici les DATAS (basic) pour créer une des scènes du jeu :

Il suffit de lire les DATAS et tracer les lignes ;)

Les datas sont organiser par triplet comme ceci :
  • 1er chiffre :
    128= début d'un tracé de ligne
    160= point d'une ligne
    2eme et 3eme chiffre coordonnées du point
Par exemple pour les 2 premiers triplets ( 128,63,32,160,70,32 ) cela donnerai LINE (63,32,70,32) et ainsi de suite et a chaque fois que le 1er chiffre d'un triplet est 128 il faut commencer un nouveau tracé ;)


Toutes les optimisations sont les bienvenues ;)

Code : Tout sélectionner

5 DATA 1347
10 DATA 128,63,32,160,70,32,160,76,34,160,75,37,160,87,42,160
20 DATA 100,37,160,110,39,160,122,33,160,130,34,160,141,29,160,146
30 DATA 30,160,154,28,160,159,23,160,158,20,128,77,38,160,65,47
40 DATA 160,59,52,160,52,58,160,49,68,160,46,77,160,48,87,160
50 DATA 52,93,160,53,98,160,59,104,128,66,36,160,62,41,160,55
60 DATA 44,160,53,42,160,53,36,160,55,33,128,43,33,160,47,36
70 DATA 160,48,40,160,47,46,160,46,49,160,42,54,160,37,55,160
80 DATA 30,51,160,31,45,160,37,39,160,42,37,160,46,36,128,35
90 DATA 53,160,36,48,160,34,44,128,36,42,160,38,45,160,41,41
100 DATA 160,41,38,128,44,38,160,44,42,160,42,45,160,39,50,160
110 DATA 40,54,128,40,34,160,32,38,160,27,40,160,24,37,160,22
120 DATA 31,160,25,25,128,3,34,160,8,36,160,12,35,160,14,39
130 DATA 160,17,44,160,18,50,160,23,57,160,24,63,160,29,71,160
140 DATA 26,82,160,26,92,160,24,103,128,28,72,160,0,72,128,45
150 DATA 49,160,39,51,128,34,50,160,30,49,128,255,156,160,242,159
160 DATA 128,73,33,160,66,35,160,58,34,160,53,35,128,58,31,160
170 DATA 52,32,160,46,31,160,40,34,160,30,32,160,27,29,128,29
180 DATA 38,160,27,35,128,32,37,160,29,34,160,24,35,128,13,37
190 DATA 160,7,39,160,3,38,160,0,39,128,30,35,160,34,36,128
200 DATA 64,37,160,59,39,160,55,37,160,53,37,128,47,39,160,44
210 DATA 40,128,26,29,160,29,27,160,22,24,160,15,27,160,16,29
220 DATA 160,10,31,160,5,30,160,6,33,160,2,35,160,0,32,128
230 DATA 247,65,160,252,66,160,252,69,160,243,75,160,237,73,128,253
240 DATA 66,128,252,69,160,252,75,160,247,72,128,253,75,160,255,77
250 DATA 160,250,82,160,243,80,160,240,78,160,243,75,128,231,72,160
260 DATA 234,75,160,235,77,160,226,80,160,222,76,128,235,77,160,238
270 DATA 79,160,240,78,128,227,80,160,232,82,160,237,79,128,247,82
280 DATA 160,242,84,160,240,87,160,246,90,160,253,91,160,252,82,128
290 DATA 0,78,160,3,76,128,233,82,160,237,85,160,235,87,160,227
300 DATA 87,160,222,84,160,225,80,128,240,86,160,237,85,128,234,89
310 DATA 160,240,87,128,246,91,160,244,94,160,238,95,160,233,93,128
320 DATA 237,95,160,240,97,160,234,102,160,225,99,160,225,96,128,0
330 DATA 91,160,3,93,128,253,93,160,250,96,160,255,99,128,253,92
340 DATA 160,252,91,128,246,93,160,249,95,160,245,99,160,239,98,128
350 DATA 207,93,160,204,97,160,209,100,160,215,96,160,210,93,128,220
360 DATA 94,160,215,95,128,225,100,160,219,100,160,214,98,128,244,100
370 DATA 160,249,102,160,248,106,160,250,101,128,255,108,128,247,101,160
380 DATA 240,103,160,234,102,128,237,103,160,233,105,160,234,109,160,241
390 DATA 110,128,247,64,160,251,60,128,247,65,160,244,64,160,239,66
400 DATA 160,235,69,160,243,68,160,248,70,128,239,69,160,239,73,160
410 DATA 234,73,160,230,71,160,234,68,128,231,72,160,227,72,160,223
420 DATA 74,160,228,74,160,229,78,128,223,75,160,221,77,160,217,78
430 DATA 160,215,82,160,219,84,160,221,83,128,218,84,160,215,87,160
440 DATA 220,90,160,224,87,160,232,88,160,234,89,160,232,92,160,226
450 DATA 92,160,224,95,160,230,96,160,234,93,160,231,92,128,223,89
460 DATA 160,227,90,160,228,91,128,215,81,160,212,82,160,210,84,160
470 DATA 207,86,160,207,88,160,213,90,160,215,87,160,213,84,160,209
480 DATA 84,128,221,90,160,225,92,160,223,95,160,219,93,160,220,90
490 DATA 128,213,90,160,217,91,160,219,93,128,212,90,160,210,92,160
500 DATA 207,93,128,231,96,160,229,99,160,222,101,160,219,103,160,224
510 DATA 105,160,229,102,128,206,88,160,202,89,160,198,93,160,204,95
520 DATA 128,198,93,160,194,95,160,192,99,128,252,82,160,248,84,160
530 DATA 251,87,128,249,86,160,249,88,160,247,90,128,253,102,160,254
540 DATA 103,128,248,106,160,253,106,128,253,106,160,254,111,160,247,111
550 DATA 160,244,109,160,248,106,128,241,103,160,244,105,160,246,107,160
560 DATA 243,109,128,192,98,160,159,92,160,133,90,160,107,84,160,92
570 DATA 80,160,81,78,160,72,77,160,110,58,160,138,42,160,163,31
580 DATA 160,187,18,128,158,19,160,163,15,160,161,9,128,253,59,160
590 DATA 235,66,160,226,72,128,251,52,160,199,99,160,195,102,160,201
600 DATA 105,160,209,103,160,211,100,128,217,100,160,218,102,160,214,105
610 DATA 160,210,104,128,233,107,160,227,104,160,220,106,160,218,108,160
620 DATA 226,111,160,231,109,160,233,108,128,215,105,160,218,105,128,49
630 DATA 72,160,82,72,128,64,48,160,76,46,160,86,49,160,96,48
640 DATA 160,109,51,160,120,47,160,127,48,128,17,50,160,12,47,160
650 DATA 2,50,160,0,48,128,24,104,160,21,108,160,30,104,160,39
660 DATA 105,160,44,106,160,47,103,160,55,104,160,59,104,128,193,99
670 DATA 160,197,99,128,192,99,160,196,102,160,193,104,160,183,103,160
680 DATA 185,100,160,189,99,128,192,104,160,193,105,160,196,106,160,199
690 DATA 104,128,211,106,160,207,108,160,213,109,160,215,107,160,213,104
700 DATA 128,25,84,160,17,86,160,0,83,128,159,159,160,127,144,160
710 DATA 120,140,160,116,136,160,113,128,160,109,120,160,101,112,160,97
720 DATA 107,160,84,103,160,80,99,160,68,90,160,49,86,128,96,159
730 DATA 160,82,142,160,83,136,160,86,123,160,79,111,160,67,105,160
740 DATA 64,101,160,62,98,160,56,95,160,52,94,128,26,92,160,17
750 DATA 91,160,5,93,160,0,90,128,0,132,160,8,135,160,14,132
760 DATA 160,24,133,160,33,137,160,31,140,160,40,142,160,44,138,160
770 DATA 57,141,160,61,147,160,60,150,160,69,154,160,72,157,160,82
780 DATA 159,128,187,18,160,190,12,160,189,9,160,181,2,128,191,3
790 DATA 160,192,6,160,194,8,160,196,5,160,197,1,128,203,0,160
800 DATA 200,7,160,200,10,160,197,12,160,201,12,160,215,8,160,223
810 DATA 6,128,219,3,160,211,2,160,201,0,160,193,3,160,187,2
820 DATA 160,177,3,160,172,4,160,164,2,160,160,0,128,201,13,160
830 DATA 194,15,160,190,18,160,186,19,128,160,9,160,155,5,160,152
840 DATA 3,160,150,0,160,144,0,128,195,6,160,193,6,128,204,97
850 DATA 160,199,99
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par jester »

Philippe essaie de garder un peu d'espoir... il demande de tracer des lignes... mais il oublie de signaler qu'il faut aussi la fonction de remplissage, et c'est la qu'est l'os car je ne vois pas de fonction FILL toute faite dans le locomotiv Basic.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par 6502man »

:wink: il faut bien un peu de suspense de surprise :wink:

Je ne connais absolument pas le CPC mais je suppose qu'il doit bien y avoir des routines de remplissages de crée vu l’énorme communauté autour du CPC !

Mais dèja il faudrait voir si le dessin ce fait en 3 secondes ou 50 secondes :roll:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par Daniel »

Le dessin vectoriel, même en assembleur, est long. En Basic, c'est insupportable. Pareil pour le remplissage. La conversion en bitmap, comme vous l'avez faite pour Exelvision, est probablement la seule solution viable, sinon personne ne voudra jouer. L'inconvénient est d'augmenter la taille des graphiques.
Daniel
L'obstacle augmente mon ardeur.
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par Markerror »

Bonsoir,

Je suis d'accord avec Daniel, à mort les routines vectorielles pour dessiner les graphismes d'un jeu d'aventure ! C'est certes peu gourmand en mémoire, mais pour le reste, cela n'a ni la rapidité ni la qualité d'une image bitmap quand elle est bien travaillée.

Pour la routine de FILL, cela existe sur le Basic 1.1 du 6128. Pour les autres machines, il y en a des pelletées sous forme de RSX. Après, il faut en trouver une qui accepte de faire des tramages si le MODE 1 est le mode graphique retenu. Au pire, on peut récupérer la routine de fill d'un jeu.

Markerror
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par 6502man »

Le vectoriel seras certainement plus lent.

Mais attendons l'avis de Baptiste puisque c'est lui l'initiateur de cette conversion ?


@Markerror:
- quel est le mappage RAM des 464 et 6128 ( basic, asm, vidéo) ?
- et quel est la taille d'un écran graphique en mode 0 ou 1 ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par Markerror »

Hop, avant de foncer au boulot, les réponses !

Ram utilisable en Basic sur CPC : 42ko à la louche
Ram vidéo : 16ko dédiée (pas comme sur Exelvision :-) ).

Le mode graphique n'a aucune importance quant à la quantité de ram utilisée.
C'est d'ailleurs finalement un petit défaut du CPC, car cette taille est conséquente
et le Z80 a du coup un peu de mal à gérer tout ce bazar :-).

Pour le langage machine, soit on limite la quantité de ram utilisable par le Basic avec
la commande MEMORY et on utilise la zone "préservée" pour des routines, soit pour
de petites routines, on profite des quelques "trous" dans la zone allouée au système
(le plus classique étant la zone ram &BE80-&BEFF).

Plus d'infos ici : http://tj.gpa.free.fr/html/coding/cpc_ram.htm
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par jester »

Je vous propose d'attendre surtout l'initiateur de cette conversion. Dans cette histoire je ne ferais rien d 'autre que lui refiler les archives de ressources et répondre aux questions, après c'est lui qui fera les choix artistiques et technologiques...
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par 6502man »

Oui tout a fait Baptiste est l'initiateur de cette conversion alors il lui revient le droit de choisir comment orienté son projet ;)

@Baptiste: Sait tu programmer en assembleur sur CPC ou as tu des connaissances en assembleur et l'architecture du CPC ?

Je pense que la participation de Markerror pour la partie assembleur est très bien, puisqu'il connait très bien le CPC ;)
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Baptiste
Messages : 121
Inscription : 11 mars 2013 15:17
Localisation : Vernouillet (78)

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par Baptiste »

Bonjour,

Je suis d'accord sur le fait que l'utilisation du graphisme vectoriel alourdira le déroulement du jeu.

Je vois plutôt la conversion ainsi :

Affichage :
En mode 1 : 4 couleurs (320x200) afin de préserver la finesse du jeu d'origine.
L'écran de jeu sera séparé en 2 parties :
- La partie supérieure pour les images (280x160 me semble t-il sur la version Exelvision) (en ko cela fait 11,2 ko par image non compressée).
- La partie inférieures pour le texte (5 lignes, avec une hauteur de caractères de 8px, soit 40px).

Les images peuvent être chargées à la demande, ce qui exclue une version K7 du jeu. Ce sera uniquement une version disquette. Sans compression, on peut stocker environ 30 images sur une disquette CPC (15 par face). Il existe des méthodes de compression d'images pour augmenter le stockage. Par compte le délai de chargement d'une image peut être d'une ou 2 secondes. Il faudra tout de même une routine assembleur pour l'afficher. Au pire, j'ai une routine ASM prête à l'emploi, mais qui sert surtout à l'affichage des sprites. Je pourrais découper l'images en tuiles, et recoller les morceaux avec cette routine.

Pour les palettes, il faudra s'assurer d'avoir toujours une couleur claire (blanche, jaune, cyan...) pour le texte.

Le jeu de caractères (fonte) peut-être générée directement dans le BASIC. On peut personnaliser la police, il y a des fonctions pour ça.

La méthode de récupération des images:
Une fois que l'on aura mis au point la routine de chargement et d'affichage d'une image, je développerai un convertisseur PC->CPC spécifique. Le convertisseur convertira un fichier bitmap ou une image du presse-papier en fichier CPC lisible par la routine. Je l'ai déjà fais lorsque j'ai développé ACTK (Amstrad CPC Toolkit).

Le développement :
Pour commencer à concevoir, j'ai besoin du scénario "à plat", c'est à dire l'ensemble de la carte du jeu, avec les différents textes, images, chemins, pièges, objets... J'imagine que pour la version Exelvision, les auteurs ont déjà fais ce travail. A vot' bon coeur...;)

Le moteur en lui même doit être relativement rapide à développer.

Je capitalise, tu capitalises, nous capitalisons... :
Je profiterai bien de cette conversion pour créer un outil utilisable par tous pour créer ce type de jeu pour CPC. Je pense qu'il sera également possible de l'adapter pour d'autres plateformes (Exelvision, Thomson...)

Les besoins :
Je peux développer l'ensemble des outils pour générer les fichiers de données (textes, carte, images...), et le code BASIC du jeu. J'ai tous les outils pour générer des images disque pour émulateur, et générer une vraie disquette. J'ai un 464 et un 6128 en état de marche.

Il me manquera les connaissances en ASM, notement pour améliorer l'affichage des images.

Les délais :
Bon, ben je suis comme vous tous, je fais ça sur mon temps libre :) Mais je ferai un point d'avancement au minimum 1 par mois.

Baptiste.
Rien ne sert de courir, en plus tu risques de tomber.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par jester »

Baptiste a écrit : Le développement :
Pour commencer à concevoir, j'ai besoin du scénario "à plat", c'est à dire l'ensemble de la carte du jeu, avec les différents textes, images, chemins, pièges, objets... J'imagine que pour la version Exelvision, les auteurs ont déjà fais ce travail. A vot' bon coeur...;)
Il faut voir avec 6502man, je n'ai jamais vu ce genre documents tout en un mais juste des collections de texte, etc.
On a beaucoup travaillé à l'arrache en fait.
La philosophie du jeu aussi fait qu'il n'y a pas vraiment de script formel pour chaque scène... et surtout l'auteur d'origine est resté sur un programme classique bien bordélique en évitant cette notion de script.
Dans le cas contraire on ce serait pas embêté avec du Basic et on aurait pondu un interpréteur en ASM.
Baptiste a écrit : Le moteur en lui même doit être relativement rapide à développer.
pas temps que ça car il est très adhoc à chaque plate-forme et surtout l'original est un truc à la hebdogiciel...
Baptiste a écrit : Je capitalise, tu capitalises, nous capitalisons... :
Je profiterai bien de cette conversion pour créer un outil utilisable par tous pour créer ce type de jeu pour CPC. Je pense qu'il sera également possible de l'adapter pour d'autres plateformes (Exelvision, Thomson...)
Comme je l'ai dis,le programme original (et aussi la version Exelvision) n'est pas du tout un moteur de jeu d'aventure interprétant un script mais un gros bordel à la hebdogiciel... c'est sans espoir de ce coté la. Et y aurait-il un intérêt pour ce genre de jeu d'aventure très élémentaire: ce n'est ni un Zork ou The Pawn pour l'aspect interpréteur textuel (à des années lumières), ni un AGI de Sierra pour le coté aventure animé. Je dirais que ce style de jeu n'en vaut vraiment pas la peine... Mais si tu veux développer un moteur de jeu AGI, SCI ou Lucas arts, ça m'intéresse :wink:
Baptiste
Messages : 121
Inscription : 11 mars 2013 15:17
Localisation : Vernouillet (78)

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par Baptiste »

jester a écrit :Il faut voir avec 6502man, je n'ai jamais vu ce genre documents tout en un mais juste des collections de texte, etc.
On a beaucoup travaillé à l'arrache en fait.
La philosophie du jeu aussi fait qu'il n'y a pas vraiment de script formel pour chaque scène... et surtout l'auteur d'origine est resté sur un programme classique bien bordélique en évitant cette notion de script.
Oui, mais comme c'est une conversion, j'imagine que pour respecter le jeu original vous avez établi un "chemin de fer". Les images et textes ont bien une association propre. De même pour le cheminement du joueur. Si à l'écran 10, je choisi d'aller au NORD, il y a bien un scénario établi pour dire quelle image et quelle texte afficher ensuite... C'est cela dont j'ai besoin. Sinon, ça va me prendre une éternité de refaire le jeu en faisant toutes les combinaisons possibles.
Rien ne sert de courir, en plus tu risques de tomber.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par jester »

Oui, Philippe a tous les DATA qui permettent de scripter en partie tout cela (c'est la raison du temps de chargement de la version Exelvision par exemple)... mais il y a pleins d'exception dans tous les sens, d'où le "bordèlisme" du code.
Car Philippe est parti du code Basic d'origine qu'il a adapté en exelBasic, et je sais qu'il a cherché a amélioré beaucoup d'aspects méthodologiques... mais il n'a pas pu tout lisser, et cela explique aussi que nous n'avons pas un super document qui lie parfaitement toutes les informations. Mais ce que tu cites il y a...
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TRANSYLVANIA conversion AMSTRAD CPC

Message par 6502man »

Oui c'est ca il n'y a pas de plan ni de script défini !

Juste le code basic APPLE II original sur lequel j'ai fait un gros travail de compréhension, de conversion et d'améliorations.

J'ai une liste des lieux et des objets mais pas de plan ni de schéma relationnel entre chaque lieux et/ou objets !

Donc si j'ai bien compris Baptiste, tu veux réécrire complétement le jeux en Basic ?
Le programme original est déjà en Basic pour la partie logique, pourquoi tout refaire ???

Et tu veux te débrouiller seul de ton côté (programmation, graphismes et sons) ?

Je t"envoie par mail les éléments logiques (lieux et objets) que j'ai sous la main ainsi que le code basic original Apple II et le code Basic de la conversion EXELVISION.

Pour les ressources graphiques et sons Jester auras certainement les derniers versions, si tu préfère tu peux récupérer celles des version AMIGA/ST ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Répondre