Logicielsmoto.com
http://www.logicielsmoto.com/phpBB/

Outillage pour développement de jeux sur TO8
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=620
Page 4 sur 40

Auteur:  Bentoc [ 22 Mar 2021, 22:03 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Suite à la fabrication d'une carte son pour TO8, voici une capture sur machine réelle.
Désolé pour la faible qualité vidéo ... c'est ma première capture.

phpBB [video]


Nouveautés:
- Raster pour le dégradé du ciel (avec apparition en fondu)
- Raster pour les couleurs de l'ile et des reflets de l'eau
- effet de vague rendus en temps réel (chacune des 15 lignes est un sprite) à l'aide d'une table d'offset de 66 valeurs comme dans le code d'origine.

A la fin de la video on a 42 sprites a l'écran (une majorité immobile évidement donc pas rafraichis au niveau de l'affichage, il ne faut pas abuser, mais leur code objet est exécuté et leurs données sont bien en mémoire).
J'ai ajouté la lecture du theme de Marble Zone pour montrer le SN76489 en action. Le petit bug de mon adaptation de PSGlib pour gérer la compression a été corrigé. La loop fonctionne sans problème.
Taille des données des musiques:
Intro: 958 octets
Marble Zone: 3860 octets (alors que le vgm fait 15,5ko !)
SEGA (pcm): 24948 octets

Utilisation de la RAM pour les données :
Code:
Free space on page 5 : 4 octets
Free space on page 6 : 31 octets
Free space on page 7 : 9 octets
Free space on page 8 : 94 octets
Free space on page 9 : 100 octets
Free space on page 10 : 15 octets
Free space on page 11 : 318 octets
Free space on page 12 : 2167 octets
Free space on page 13 : 443 octets
Free on page 14 : 1265 octets
Free on page 15 : 10 octets


Je me suis bien amusé avec les raster que j'avais toujours rêvé de mettre en œuvre, c'était l'occasion. ça permet de rajouter 14 couleurs supplémentaires à l'écran, pas mal ! et comme les couleurs supplémentaires ne sont nécessaires qu'en bas de page (72 lignes de raster) ça ne bloque "que" 5000 cycles par frame, ce qui permet de faire défiler l'ile avec l'effet de reflets sur l'eau.

Le code est à jour sur GitHub, les .fd et .sd sont dans le répertoire Sonic2/Disk/

ps: mon implémentation des rasters ne fonctionne pas bien sur DCMOTO (problème d'émulation du timer). A lancer sur vrai machine pour le moment.

Auteur:  Samuel Devulder [ 22 Mar 2021, 23:43 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Punaise, ca rend super bien. :love: Félicitations, c'est super beau !!! :bien: Chapeau :jap:

Auteur:  Bentoc [ 23 Mar 2021, 09:09 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Merci sam !

Auteur:  adnz [ 23 Mar 2021, 11:00 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

holalaaa, on dirait une console de jeu :jap:

Avec les fondus et tout ...

Comment ta géré les fondus d'éléments séparés sans toucher aux couleurs des autres sprites ?
ta plusieurs fois la même couleur alors ?

Auteur:  Bentoc [ 23 Mar 2021, 11:38 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Pour appliquer les raster, j'ai utilisé l'IRQ mis en place pour le son et qui doit se déclencher une fois par frame.
L'IRQ est synchronisée sur la ligne en haut du dégradé du ciel.
(En fait il y a deux IRQ : un avec juste le son utilisée au début de l'intro, l'autre avec son + raster)

Quand on n'est pas dans l'IRQ, on déclenche le code des objets, l'affichage des sprites ...
Un des objets (RasterFade) se charge de calculer les valeurs de couleur pour les lignes de raster.
Il prend en entrée une couleur et effectue un fondu (frame par frame) vers une palette de destination.

L'IRQ avant de jouer le son, effectue le refresh des 72 lignes de raster.
Le fond de l'écran (ciel+eau) est une seule couleur (15), la dessus pas de problème, c'est facile.
Quand deux lignes de ciel sont identiques, on en profite pour changer une autre couleur.

Quand l'IRQ se déclenche on a déjà "rendu" à l'écran les deux personnages, il ne reste donc que le bas de l'emblème. On peut donc réutiliser tous les index couleurs dont on a plus besoin.

On commence par les 4 couleurs de vert de l'ile, puis plus bas les 4 couleurs de terre ...
en utilisant les couleurs qui se "libèrent" au fur et à mesure que l'emblème n'a plus a être dessiné.

C'est la partie "fun" car il faut identifier à la main quelles couleurs ne sont plus utilisées et faire le décompte ligne à ligne pour paramétrer tout ça dans un tableau de données.
Comme j'étais "large" :p j'ai entrelacé les lignes du dégradé du ciel.

Un dernier truc : en plus du fondu, RasterFade fait un palette cycle sur une couleur de l'eau, c'est discret mais c'est bien présent.

Je t'invite à regarder le code pour plus de détail (release v0.0.3)
Il n'est pas super optimisé, mais il est a peu près organisé ;-)

Auteur:  adnz [ 23 Mar 2021, 13:08 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Ta fais un noeud dans mon cerveau là :W
( Faudrait déjà que j'arrive juste à changer une couleur différente d'une ligne sur 1 balayage d'écran en ASM avant d'aller plus loin lol )
super, c'est vraiment top...

Pour rester dans le sujet Sonic voila mon petit cover pour vous distraire un peu
https://www.wide-dot.com/projets/oastudio/covers/sonic.mp4

Auteur:  Bentoc [ 23 Mar 2021, 13:47 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

J'adore ! :sol:

Jolie page d'accueil aussi pour ton site wide-dot.com
Ouverture pour bientôt ?

Auteur:  adnz [ 23 Mar 2021, 13:58 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Merci,
Bah pour le site je voulais faire un truc en rapport avec le retro game par rapport aux jeux homebrew, nouveaux jeux sur des vielles machines, voir même des projets futurs, puis à la base c'est pour mes projets en cours concernant tout ce monde là !

Mais pas le temps de faire ça tout seul en faite ! j'ai "10000" projets perso que ça soit en retro game ou musique et réparation d'ordi, j'ai même "restauré" un fauteuil boule 'SPHERE' pour me faire un siège de jeu ;) ...

Bref trop de truc tout seul, ça avance mais doucement... voilà pour la parenthèse !

Auteur:  Fool-DupleX [ 23 Mar 2021, 15:57 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Je suis cette aventure depuis le début et ce n'est pas bluffé que je suis par les résultats, c'est littéralement atomisé ! Je savais que Thomson nous avait caché les pouvoirs magiques du TO8, mais là ... C'est terriblement réconfortant de se dire que oui, les petits camarades qui rigolaient de ma machine, avaient bien tort finalement. :love:

Félicitations !

Auteur:  Bentoc [ 23 Mar 2021, 17:35 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Merci pour vos messages ... moi qui pensais que vous alliez finir par vous lasser de cette intro ;-)

Auteur:  adnz [ 23 Mar 2021, 18:09 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

lol rien qu'a moi j'ai du faire la moitié de tes vus sur le youtube mdr

Auteur:  Bentoc [ 25 Mar 2021, 12:26 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

L'anomalie de l'émulation du timer étant corrigé dans la dernière version "développement" de dcmoto : http://dcmoto.free.fr/emulateur/dcmoto_20210324.zip
Les raster s'affichent correctement sous l'émulateur maintenant ! Merci Daniel.

J'ai avancé hier soir sur l'intégration de la Mégarom T.2. Je pense avoir les idées claires sur le sujet pour pouvoir entamer le dev.
Mon builder génèrera maintenant automatiquement une image disquette et une image rom pour la T.2

Voici le diagramme qui en ressort:
Fichier(s) joint(s):
TO8 game engine-Memory Map.jpg
TO8 game engine-Memory Map.jpg [ 246.56 Kio | Vu 7111 fois ]


On aura le choix dans le cas d'une T.2 de venir charger en RAM des données exomizées présentes sur la ROM (même principe que la disquette), ou d'exécuter certaines routines directement depuis la ROM (paramétrable au niveau de chaque objet).
Le changement principal vient de l'inversion de la zone de "montage" des pages cartouches et data, ce qui implique maintenant de charger des demi pages pour pouvoir faire l'inversion des deux plans de 8ko, car les données seront écrites dans les pages en zone data et exécutées dans la zone cartouche.

Voilà pour les news ... au boulot maintenant et à dans qq jours ... ou semaines !

Ah dernière info : je vais passer de c6809 à LWASM, qui me permettra d'avoir plus de possibilités (macros, étiquettes localisées, IFDEF, BINCLUDE, INCLUDE sans avoir besoin de concat les fichiers, ... et surtout un linker)
Quelqu'un l'utilise ?

Auteur:  Neotenien [ 03 Avr 2021, 15:08 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Fool-DupleX a écrit:
Je suis cette aventure depuis le début et ce n'est pas bluffé que je suis par les résultats, c'est littéralement atomisé ! Je savais que Thomson nous avait caché les pouvoirs magiques du TO8, mais là ... C'est terriblement réconfortant de se dire que oui, les petits camarades qui rigolaient de ma machine, avaient bien tort finalement. :love:

Félicitations !


C'est sûr!!

C'est juste dommage que les Thomson, même TO8, n'aient pas de synthétiseurs musicaux, même si, en jouant sur les IRQ (TO only, pas les MO qui ne sont conservé que toutes les 1/10s), on peut jouer de la musique de fond au max avec une interrup toutes les 1/2000 s (Sam Devulder a fait de super truc avec ça, idem pour Prehisto)

Côté processeur, apparemment, le 6809 à 1MHz semble valoir les 3.5 MHz de l'Amstrad ou du MSX... Un truc sympa à fare est de monter l'émulateur DC Moto à 3.5 MHZ et même 2 MHz et de tester Enduro Racer, Crazy Cars ou Grand prix 500cc avec ça, et à 2 MHz on dépasse la vitesse des C64, et même quasiment des ZX Spectrum (à 3.5 MHz) qui lui, ne fonctionne quasiment que comme le mode tracé du TO.

A 4 MHz, les jeux sus cité sont au moins aussi rapide que pour un ST. J'ai dans l'idée de faire une vidéo montrant la vitesse de ces jeux sur Thomson s'ils étaient à 4 MHz. J'ai testé enduro racer et c'est vraiment trop rapide. Je regrette quand même de ne pas être à 2 MHz parce que je crains que pour l'adaptation de Bubble Bobble, quand on a 10 billes en + des sprites, ça soit vraiment ralenti. A moins que je ne trouve une astuce, du genre afficher les sprite 1er cycle/2 (soit toutes les 1/6s) et les bulles 2ème cycle/2... Jsé pas...

Auteur:  Fool-DupleX [ 06 Avr 2021, 08:12 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Sur MO5, l'interruption système est à 50 Hz, pas à 1/10 de s. La seule différence avec les TO est que sa fréquence est fixe, c'est tout. Ca ne gêne en rien pour faire de la musique en tâche de fond, par exemple avec le synthétiseur vocal MEA8000 bien connu.

Pour le reste, il me semble que ce n'est pas très réaliste de vouloir faire tourner le 6809 à 4 MHz pour prouver qu'il est plus puissant qu'un Z80. Oui, le 6809 utilise 2 à 3 fois moins de cycles externes pour exécuter ses instructions, mais c'est dû au fait qu'il quadruple l'horloge externe avec une quadrature de phase. Il tourne donc déjà en réalité à 4 MHz en interne quand il reçoit une horloge à 1 MHz. D'autre part, l'horloge système sur les Thomson est à 16 MHz et toute la machine est synchrone, y compris les RAM et le sérialisateur vidéo. Donc si tu voulais faire ça en vrai, il faudrait revoir toute la conception de la machine et remettre en cause son principe synchrone de fonctionnement même. Par ailleurs, une horloge système à 64 MHz n'a aucun sens avec les composants de l'époque. Les RAMs avaient une latence de 120 ns, par exemple. Sans compter la consommation excessive et la dissipation thermique.

Il y a eu des versions améliorées du 6809 à 1.5 et 2 MHz, mais ce serait impossible de les faire tourner à ces vitesses dans un Thomson. Même en supposant un nouveau gate-array pour produire les sous-horloges adaptées à partir de l'horloge système standard de 16 MHz, ça coincera avec les I/Os et la RAM à cause de cette histoire de synchronicité justement (notamment par le fait qu'il ne reste plus de place pour le rafraichissement des RAM : sur Thomson, les cycles idle en externe du processeur, i.e. la phase de décodage, sont mis à profit pour caser le rafraichissement entre les cycles de fetch).

A contrario, avec le 6309, on gagne environ 15% en performance par rapport au 6809 à vitesse d'horloge identique, mais c'est simplement dû au fait qu'il utilise 15% moins de cycles en moyenne pour décoder et exécuter les instructions.

Auteur:  Samuel Devulder [ 06 Avr 2021, 12:47 ]
Sujet du message:  Re: Outillage pour développement de jeux sur TO8

Oui et puis pour aller plus vite, il faut voir à optimiser les jeux car bien peu le sont vraiment. J'avais regarder le code de SLAP-FLIGHT à l'occasion de la video de Neotenien, et rien que sur la routine d'affichage il y a moyen de gagner pas mal de cycles. Je m'étais dit que je ferais un fil à l'occasion par ici sur son optimisation un jour, mais bon.. "un jour" on sait ce que ca veut dire en pratique... :W

Page 4 sur 40 Heures au format UTC + 1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/