Logicielsmoto.com

Nous sommes le 28 Mar 2024, 17:16

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 598 messages ]  Aller à la page Précédente  1 ... 3, 4, 5, 6, 7, 8, 9 ... 40  Suivante
Auteur Message
MessagePosté: 06 Avr 2021, 16:59 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Ah oui effectivement ... je viens de regarder le source de c6809 et pour les INCBIN et INCDAT il y a bien un "fopen".
Mais pour l'INCLUD de c6809 il faut bien que le contenu de tous les .asm soient dans un seul et même fichier avec des sections (include) ?

Pour les macros, mea-culpa ... je n'avais pas trop creusé le sujet. Je suis certain qu'il y a une doc pour c6809, mais je ne l'ai pas trouvé "facilement".
Avec lw j'ai un manuel de 43 pages, ce qui me permet de rentrer plus vite dans le sujet.
Maintenant c6809 est très bien et m'a rendu de nombreux services, et je ne l'ai certainement pas exploité a fond ...

C'est moi qui suis impressionné par tous ces trucs de fou furieux que vous avez réalisé durant ces 20 dernières années.
SDDrive, DCMOTO, Exomizer, Mission: Liftoff (qui m'a fait m'intéresser de nouveau au TO8), la T.2, les démos de PULS, ...
J'ajoute la montagne d'infos que Sam nous donne sur les forums, la rapidité du support de Daniel sur DCMOTO ...

Franchement c'est un bonheur d'être ici, du coup j'ai un peu honte d'avoir "laché" mon TO8 dans les années 90 et de vous rejoindre que maintenant.
Je rêvais de faire de l'assembleur à l'époque, mais impossible de mettre la main sur des livres qui traitaient de ça, j'étais trop jeune pour trouver par moi même je pense.
Si seulement j'avais eu un manuel assembleur en plus de celui du basic livré avec la machine ... Bref on ne refait pas le passé.
J'ai réellement appris la programmation à l'IUT d'info, je me souviens encore avoir demandé au prof "c'est quand qu'on voit les goto ?" ... la honte :sol:
A l'époque on avait des cours de C, Java et un peu d'asm x86.

J'essaye de m'astreindre à 3 ou 4h de code tous les soirs pour avancer + un peu le matin avant le boulot. En essayant de rester focalisé sur les fonctions essentielles à développer.

PS: j'ai aussi bcp de respect pour tous ceux qui ont réussi à mener leurs réalisations jusqu'au bout, en particulier les devs de l'époque, peu importe la qualité technique.
Je repense à "Mission Très Spéciale" qui est certainement le jeu sur lequel j'ai passé le plus de temps et dont l'auteur reste inconnu (dommage).
On a passé quelques jours l'été dernier en famille a "perçer" la solution, Il a fallu ouvrir le code pour trouver, c'était trop difficile autrement (en tout cas pour moi).


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 06 Avr 2021, 17:04 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Bentoc a écrit:
Je serai curieux de voir le code. Tu as décompilé tout le code ?

Non j'ai mis un point d'arrêt en mémoire vidéo et regardé comment il recopiait les trucs à l'écran... Bah c'est du LDD/STD. Aucun PSHU/PULU alors que ca me semblait possible.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 06 Avr 2021, 17:09 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Samuel Devulder a écrit:
Bentoc a écrit:
Je serai curieux de voir le code. Tu as décompilé tout le code ?

Non j'ai mis un point d'arrêt en mémoire vidéo et regardé comment il recopiait les trucs à l'écran... Bah c'est du LDD/STD. Aucun PSHU/PULU alors que ca me semblait possible.


Dommage ... je suis également curieux de voir ce que ça aurait donné avec une routine optimisée.
Comme tu dis on verra ça peut être "un jour" ;-)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Avr 2021, 00:58 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Je pense comme Fool-DupleX, vous allez vite à faire les choses :D chui un escargot à coté de vous lol

En tout cas ça me motive de plus en plus :good:

Comme à chaque avancement j'ai le besoin de dire encore bravo. :jap:

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Avr 2021, 01:11 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Bentoc a écrit:
ça implique que les ressources n'ont pas d'adresses définies comme on le faisait "à l'époque". Le positionnement en ROM et en RAM est dynamique en fonction de la taille des objets (code, images, ...) et index et change à chaque compilation, en fonction des éléments modifiés.

Pas d'obstacle insurmontable pour le moment ... ça roule mais la route est longue.

La vache, ca c'est une approche moderne de la programmation sur 8bits. :voyons: Je n'aurais jamais eu cette idée là perso (j'suis trop vieux, je suis rester dans le mode "comme avant"). :bien: :jap:

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Avr 2021, 18:22 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Samuel Devulder a écrit:
Bentoc a écrit:
Je serai curieux de voir le code. Tu as décompilé tout le code ?

Non j'ai mis un point d'arrêt en mémoire vidéo et regardé comment il recopiait les trucs à l'écran... Bah c'est du LDD/STD. Aucun PSHU/PULU alors que ca me semblait possible.


Quand c'est optimisé avec les PULU/PSHU, ça peut aller jusquà' 3 fois plus vite qu'avec les LDD, mais franchement je ne suis pas fan de cette technique, pour moi c'est pas de la programmation propre. Les piles devraient servir pour les fonctions récursive AVEC un contrôle sur les dépassement d'espace mémoire autorisées (si on veut faire un labyrinthe "parfait" avec la programmation récursive, c'est possible à condition de se dire "aller j'alloue 100 octets pour cette procédure entre $A900 et $A100". C'est d'ailleurs sans doute ce que Sam a du détecter pour des programmes compilés en Pascal Base.

Je compte quand même me servir de ces piles pour la prochaine étape de Bubble Bobble. Je me demaande si c'est ce qu'à utilisé l'auteur de "Wip Zezito" avec la version TO8 ? Il a fiat une putain de routne assembleur pour du scrolling, mais en utilisant un max de mémoire du TO (en fait il a copié plusieurs écran en continue dans la RAM).

L'Hitachi 6309 a une instruction en Hard qui permet de faire de la copie (ou du transfert ? La doc n'est pas claire là dessus ?) de bloc de mémoire en une seule instruction (et utilisant le registre W), même les 68k n'ont pas cette instruction!! Le "move" des 68000 ne le fait que pour les w ou des L et nécessite donc une boucle.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Avr 2021, 18:27 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
J'ai une question quand même...

Je n'ai pas lu tout le fil de cette discussion;, mais Bentoc comptes-tu faire une version Thomson de Sonic 2 ? C'est quand même un jeu hyper speed, avec un tas d'éléments qui scrollent à donf, et, même si le C64 est capable de faire ça (avec un jeu récent qui a obtenu une note excellente), je ne suis pas sûr que ça soit possible sur Thomson.. Il existe une version Atari 2600 de Sonic the Edge, avec beaucoup moins d'élément de décor (juste ceux en avant plan), ça scrolle plutôt pas mal. On est quand même loin du processeur de la megadrive.

Mais c'st intéressant de voir que de tels projets ambitieux se développent pour le Thomson (et je continue à croire que s'il y avait un 6309 à 4 MHz en processeur, ça aurait été l'ordi 8 bits le plus chantmé de l'époque.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Avr 2021, 20:17 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Neotenien a écrit:
J'ai une question quand même...

Je n'ai pas lu tout le fil de cette discussion;, mais Bentoc comptes-tu faire une version Thomson de Sonic 2 ? C'est quand même un jeu hyper speed, avec un tas d'éléments qui scrollent à donf, et, même si le C64 est capable de faire ça (avec un jeu récent qui a obtenu une note excellente), je ne suis pas sûr que ça soit possible sur Thomson.. Il existe une version Atari 2600 de Sonic the Edge, avec beaucoup moins d'élément de décor (juste ceux en avant plan), ça scrolle plutôt pas mal. On est quand même loin du processeur de la megadrive.

Mais c'st intéressant de voir que de tels projets ambitieux se développent pour le Thomson (et je continue à croire que s'il y avait un 6309 à 4 MHz en processeur, ça aurait été l'ordi 8 bits le plus chantmé de l'époque.


L'objectif premier est de produire un outil pour développer des jeux sur TO8, avec :
- un builder java (génération de sprites compilés, calcul des positions des données/code en RAM, génération de l'image fd, ...)
- un moteur de jeu (gestion de l'affichage des sprites, exécution du code des objets, ...)
- des routines pour la gestion du son, affichage de fond en tiles ...
Tout ça le plus générique possible, c'est à dire sans être focalisé sur un type de jeu en particulier.

Je n'ai pas prévu d'inclure de gestion de scrolling dans ce moteur de jeu, je mise plutôt sur :
- la capacité à gérer "un maximum" de sprites à l'écran
- des animations de sprite fluides
- la gestion de grandes "map" de niveau avec des fond en tile (ça va être le prochain "défi")

J'utilise le code de Sonic 2 comme modèle pour le moteur de jeu, car le source est hyper bien documenté et que partant du principe que le jeu est rapide, que le moteur est à 90% semblable à Sonic 1, il doit être bien codé ;-) Sonic 2 c'est 90 000 lignes d'assembleur ... respect

Pour pouvoir faire mes tests il me fallait aussi des graphismes prêts à l'emploi, les animations qui vont avec ... et le code ASM d'IA des personnages, what else ? :ange:

Je pense qu'un jeu avec des fonds fixes rafraichit rapidement (en 3 ou 4 frames) qui permet de parcourir une grande map sera beaucoup plus satisfaisant qu'un jeu avec un scroll et toutes les concessions qui vont avec quand il n'y a pas d'accélération matérielle (petite map ou alors animation au ralenti, ou alors zone d'affichage réduite ...)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Avr 2021, 20:33 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Sur le papier tu devrais dessiner le fond à chaque fois, je suppose.

Mais si c'est trop lent, tu peux juste avancer "écran par écran" et donc afficher le fond nettement moins souvent: Sonic irait à fond à droite, puis l'écran se redessine et Sonic reprendrait à l'extrême gauche. A voir si c'est nécessaire, mais ca ne me semble pas totalement délirant (on garde l'impression de vitesse par la fréquence du changement d'écran). Par contre ca fait moins fidèle à l'original.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Avr 2021, 21:02 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
C'est ce que j'ai prévu, quand le personnage sort de l'écran :
- on fait un refresh complet du fond
- on dessine un layer de tile
- le personnage apparait à l'opposé de la sortie (+- un éventuel recentrage)

Comme tu le dis l'impression de vitesse est conservée, à condition que l'affichage du fond soit performant et que ça s'enchaine bien.
Ce n'est pas fidèle à l'original, mais je suis quand même curieux de voir ce que ça donne.
Traverser plusieurs écrans "fixe" à toute vitesse ça devrait bien rendre je pense.

Un Prince of Persia ou Flashback serait plus adapté ... mais une fois le moteur développé je préfèrerai travailler sur un jeu "original".
Sonic 2 n'est qu'un support au développement du moteur de jeu même si je compte aller le plus loin possible dans son implémentation, pour en faire qq chose de jouable.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 07 Avr 2021, 22:51 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Citation:
et je continue à croire que s'il y avait un 6309 à 4 MHz en processeur, ça aurait été l'ordi 8 bits le plus chantmé de l'époque

Oui mais voilà, ton idée est impossible. Impossible sur plan technique (4 MHz pour un 6809 et pour un Thomson, c'est les condamner à les cramer), impossible sur le plan industriel (Thomson avait une license pour produire le 6809 à travers sa filiale EFCIS mais aucun autre processeur) et impossible chronologiquement, puisque le 6309 est sorti en 1988, soit après que Thomson a arrêté la micro. Et de toute manière, le 32 bits était là depuis 1979 avec le 68000, donc il était bien temps de tirer la prise sur les 8 bits. On ne réécrit pas l'histoire.

A contrario, les ingénieurs de Thomson avaient développé une machine complète autour du 68000 (qui aurait dû s'appeler TO16) et déjà rencontré les gens de ARM pour la génération suivante. Ca, ça aurait été de la bombe, c'était réaliste et même avant-gardiste. Mais pour le coup, c'est le top management qui a dit ça suffit les "conneries" (de leur point de vue).

Citation:
franchement je ne suis pas fan de cette technique, pour moi c'est pas de la programmation propre. Les piles devraient servir pour les fonctions récursive

Technique pourtant présente dans le BASIC Microsoft des Thomson. Et les piles servent en définitive assez peu pour faire des fonctions récursives, même si elles sont pratiques pour ça. Elles servent avant tout à sauver et restaurer les contextes d'exécution. C'est pour cela qu'il y a une pile S (système) et une pile U (utilisateur) sur le 6809. Pour différencier la gestion des contextes entre l'utilisateur et le système et éviter que l'un ne piétine l'autre. C'est dans cet esprit en tout cas que ça a été conçu.

L'auteur de Zezito s'appelle Sandro Mestre, il m'avait contacté il y a 2-3 ans en arrière pour raffiner ses techniques de codage sur Thomson. Nous avions notamment longuement échangé sur les techniques pour synchroniser toute l'exécution au cycle près en assembleur et les différences entre MO5 et TO8 (puisque le MO5 n'a pas de double buffering). Je lui ai d'ailleurs fourni un MO5 clavier mécanique :-)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 08 Avr 2021, 01:37 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
En vrai on a rarement besoin de fonctions récursives dans la vie réelle. En plus sur 8bits avec de la mémoire réduite, manger trop de trucs sur la pile n'est pas une bonne idée. Et puis bon U c'es avant tout un registre d'adresse et entre un "LDY ,U++" ou "PULU Y", mon choix est vite fait :)

C'est vrai qu'Alessandro (w_OO_d si je ne m'abuse) avait pas mal travaillé sur des moteurs de sprites thomson avec des trucs super efficaces, et des idées innovatives, mais il est passé depuis sur d'autres machines pour son jeu (Acorn je crois bien).

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 08 Avr 2021, 22:31 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Je parlais éventuellement d'un nouveau Thomson 8 bits à sortir en 88, oui je suis au courant pour le TeoDor (5 ont été produits, c'est une sorte de super Atari ST (avec 256 couleur par pxl) à la sauce OS9).

Sinon, j'ai aussi créé mes routine de sprites bm16 générique (c'est déjà le cas, en moins de 255 octet pour le tout, affichage de sprite de n'importe quelle dimension, à n'importe quel emplacement du moment que c'est un multiple de 2 en horizontal, le mode bm 16 ne permettant pas d'avoir un) ainsi qu'un moteur de scrolling non pas de 8 en 8 px comme c'est le cas des jeux de l'éditeur Sprites (Voir Space tunnel) mais en 2x2 si possible. Slap fight sur TO8 avait un scrolling vertical vraiment correct. Quant à l'excellent "Avebnger" (un jeu à la Zelda MAIS avec un vrai scrolling, certe sur un écran réduit).

Je pense qu'il est possible sur TO8 d'avoir un jeu à la super mario avec même une musique de fond... Certe en 6 img/s mais c'est mieux que rien.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 09 Avr 2021, 09:16 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Neotinien, tu dis beaucoup de choses qui sont inexactes, que ce soit ici ou dans tes videos youtube. Ce serait bien que tu vérifies tes sources et que tu fasses un peu de fact-checking avant de parler.

Théodore (correctement écrit, merci) ce n'est pas du tout un super Atari-ST avec 256 couleurs. Son chip graphique était un Intel 82716 et il avait un disque dur de 20 Mo. On est sur autre chose, tout comme avec la machine à base de ARM qui a été esquissée pratiquement dans la foulée (Théodore n'était même pas finalisé, quoique très avancé).

Quant à sortir un 8 bits en 1988 ... C'aurait été du suicide, le 386 et le PC étaient déjà bien implantés (les tout premiers 486, c'est 1989), seul le 68000 résistait encore à Intel sur le marché grand public. Il faut arrêter les fantasmes.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 14 Avr 2021, 07:39 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Fool-DupleX a écrit:
Quant à sortir un 8 bits en 1988 ... C'aurait été du suicide, le 386 et le PC étaient déjà bien implantés (les tout premiers 486, c'est 1989), seul le 68000 résistait encore à Intel sur le marché grand public. Il faut arrêter les fantasmes.


Ça n'a pas arrêté Amstrad qui a sorti l'Amstrad Plus et la GX4000 en 1990. Le positionnement était plutôt malin, en faisant une console de jeu plutôt qu'un ordinateur, car les CPU 16bit sont arrivé un peu plus tard sur les consoles (avec la Megadrive et la Super Nintendo).

Par contre, ils ont ajouté pas mal de choses pour avoir une machine répondant a ce besoin: sprites, scrolling hardware, etc. Sur une console de jeu, c'est surtout de ça qu'il y a besoin, pas tellement d'un CPU surpuissant. Sur un ordinateur, c'est mieux de se concentrer sur le CPU et la quantité de RAM plutôt que sur les composants vidéo.

Mais bon, de toutes façons, ça s'est pas fait chez Thomson et c'est pas maintenant qu'ils vont changer d'avis sur la question :lol:


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 598 messages ]  Aller à la page Précédente  1 ... 3, 4, 5, 6, 7, 8, 9 ... 40  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 35 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com