Hardcore Retrogaming

Démarré par upsilandre, Novembre 09, 2013, 04:00:23 PM

« précédent - suivant »

dheen

Enfaite je parlé des créer d'autres metatiles avec des tuiles existantes, pour amener de la diversité. mais la aussi la place n'est pas suffisante.

je pense que ca serait dommage de noircir la scene de combat, comme tu l'a dit elle amene a l'immersion du jeux, et si tu remet dans le contexte de l'epoque c'etait une belle demo technique :)


upsilandre

Citation de: dheen le Août 10, 2015, 04:05:58 PM
Enfaite je parlé des créer d'autres metatiles avec des tuiles existantes, pour amener de la diversité. mais la aussi la place n'est pas suffisante.
On peut effectivement étendre la bibliotheque de metatile. l'encodage tel qu'il est permet de monter jusqu'a 32 metatiles sans rien avoir a changer dans les fondations du code donc on pourrait en ajouter 8 et ca fait seulement 40 octets donc facile a caser quelque part. Mais quelle nouvelle metatile tu voudrais faire avec uniquement les tuiles qui compose celles ci?




A la rigueur on peut faire 8 metatiles qui soit des combinaisons de paturage et de desert pour des transitions moins anguleuse. Ca donnerait ca



C'est pas genial.
Non faudrait de nouvelles tuiles comme ils ont fait pour la version US en créant 12 nouvelles tuiles pour faire un jolie littoral mais c'est parce qu'ils ont pu éliminer 12 tuiles dans la police de caractère.


upsilandre

Ou alors des vignes et des arbres isolé  :o



upsilandre

J'ai fais encore un peu de hacking sur le jeu.
Dans la piece ou tu debutes y a un coffre avec une clé qui te sert a sortir de la piece et les clés sont des consommables (elles ne servent qu'une fois) ensuite faut attendre la moitié du jeu pour pouvoir acheter des clés. Et bien maintenant cette premiere clé est magique et non consomable, elle te permet d'ouvrir toutes les portes du jeu :)

C'est comme un reve de gosse de pouvoir hacker les jeux de notre enfance comme je veux. Gamin je trouvais ca assez mysterieux ces cheat codes sortie de nulle part qui permettait de briser un jeu, parfois des jeux qui nous avait fait longuement souffrir.



Puis en tentant de hacker le systeme de sauvegarde par code j'ai trouvé plus ou moins une reponse au dernier mystere, a savoir ce qu'il y avait dans la bank 3 de la ROM graphique (autre que la table de pointeur des textes qui doit pas occuper beaucoup de place). Et en fait ca a l'aire d'etre principalement du code CPU, de vrai bout de programme chargé en RAM.
Dans la bank 1 ils ont donc mis des données destiné au CPU (le texte) et dans la bank 3 c'est a priori plutot du code pure.
Si je dis ca c'est parce que j'y ai trouvé tout l'algo de décryptage des codes de sauvegarde.


Tout le morceau encadré en rouge c'est juste le bout de programme qui sert a decrypter les codes de sauvegarde (et qui je le repete n'a donc en théorie rien a faire dans la ROM destiné aux patterns graphiques).
Ce bout de code occupe la place de 70 tuiles soit l'equivalent de toutes les tuiles qui servent pour tout l'environnement du jeu!

Donc voila en réalité le vrai coupable, celui qui occupe le plus de place sur la cartouche, c'est le programme du jeu.
C'est la grande difference avec notre epoque ou la place occupé par le code est totalement insignifiante face aux données/assets alors qu'a cette epoque y avait tellement peu de place que le code occupait une grosse partie du stockage. D'autant plus sur le 6502 qui etait un CPU rapide mais avec un jeu d'instructions basique (et peu de registre) qui necessite parfois une succession d'instructions pour faire une operation simple et donc occupe un peu plus de place que du code Z80 (Master System, Coleco, MSX...) par exemple.



dheen

Hum, a l'époque l'optimisation faisait vraiment partie du boulot de dev. et il avais une vrai conscience des limitation du hard.

maintenant, ça a beaucoup changé....

Du coup pour DQ je suppose que le code a du etre pas mal optimisé dans les version suivante (en plus du changement de format du mapper, pour améliorer grandement les choses)

upsilandre

Citation de: dheen le Août 10, 2015, 09:26:05 PM
Du coup pour DQ je suppose que le code a du etre pas mal optimisé dans les version suivante (en plus du changement de format du mapper, pour améliorer grandement les choses)
Je pense que je vais quand meme essayer un peu DQ4 pour voir.
DQ1 je le connais par coeur maintenant c'est peu de le dire :lol: J'arrive meme tres bien a y jouer en japonais.

J'ai pas pu m'empecher de faire un dernier hack (apres faut que j'arrete) et celui la me plait bien  :D
Dans DQ tu debutes dans un chateau avec la particularité d'apercevoir dès le debut le chateau du boss final de l'autre coté de la rive mais dont tu ne pourra acceder qu'a la fin apres un long detour et quelques items speciaux pour debloquer le chemin





Bon ba j'ai fais venir quelques pelleteuses et j'ai construit un sentier direct vers le boss et ca marche  :roll:




upsilandre

Tu met $04 a l'adresse $E4 en RAM et ca active le trigger comme si t'avais tué le boss et du coup tu peux te deplacer sur la map sans combat, pratique.
Tu met $FF a l'adresse $BE toujours en RAM et t'as un equipement (arme/armure/bouclier) full.

upsilandre

Namco qui fetes PacMan avec un jeu inspiré par le glitch du level 256 de la version original, belle référence, bravo.  :laporte:



Coca_Impact

J'ai tout ratrappé...T'as bien gratté dis moi ! Et c'est pas pour me déplaire, c'est vraiment passionnant, je me dmande toujours comment tu as pu avoir une telle maîtrise de tout ça, alors que j'imagine que il ny'a pas grand chose en français à son propos...GG pour les hack en tout cas  :laporte: ( même si c'est peut-être pas ça qui t'as pris le plus de temps...)

upsilandre

Faut se dire que c'est moins complique que ce qu'il y parait.
La j'ai testé 2 autres outils de Fceux. Le code/data logger et le trace logger et la encore c'est génial et super utile. Ils ont vraiment tout prevu. Cette emulateur est un vrai petit bijoux, chapeau les mecs qui bossent sur ce genre d'emulateur pendant des années. La j'ai fini le tour des outils Fceux, si jamais je me met a coder sur NES ca me sera utile.


Attention exercice oculaire.
Voila la ROM graphique de super Mario



Tout est la, a cette epoque y avait pas de mapper et donc qu'une seul bank 8Ko pour les graphismes.
Est ce que vous voyez quelque chose de particulier dans ces patterns?

Coca_Impact

Il y a du code en bas à droite non ?

upsilandre

:boyle:  :yeah:  :jospin:

On voit effectivement en bas a droite un paquet de données destiné au CPU (c'est pas du code mais c'est pareil, c'est pour le CPU) qui encore une fois n'a donc rien a faire la. Pourtant Mario je l'ai lancé plein de fois en mode debug mais j'avais jamais fait attention.
On voit l'equivalent de 19 tuiles soit 304 octets de donnée destiné au CPU stocker dans la ROM graphique. J'ai bien sure regardé a quoi correspondait ces données et ce sont les informations qui servent au CPU a construire l'ecran titre. C'est une sorte de tilemap mais dans un format compressé assez avancé (Mario n'utilise pas de metatile mais un vrai format de compression de tilemap). En tout cas ca indique au CPU quelle tuile utiliser pour l'ecran titre et ou les placés. Ainsi ils ont réunit au meme endroit les data (pattern) et metadata (tilemap) peut etre parce qu'ils ont fait ca en dernier.




L'ecran titre c'est juste le panneau et le menu de selection, le reste c'est juste le debut du jeu qui sert de background.
Mais malgres ce genre d'astuce (utiliser le debut du jeu comme background de l'ecran titre) on voit que beaucoup des tuiles du tileset background (celui de droite sur fond bleu) sont utilisés uniquement pour l'affichage du titre. A peu pret un quart du tileset (en comptant donc le bout de donnée CPU).
Malgres les astuces l'ecran titre reste toujours quelque chose de gourmand dans les jeux de cette epoque et qui devait chaque fois etre un peu un dileme. On pourrait sans doute ecrire un dossier rien que sur les ecrans titres.

Coca_Impact


upsilandre

Non non non

Par contre j'ai quand meme testé vite fais DQ4 et FF3.
FF3 semble plus tourné vers les combats qui semble plus aboutis en terme de mecanique, d'interface plus ergonomique, de dynamisme, de visuel, un bestiaire plus riche... DQ4 par contre semble plus tourné vers l'exploration avec un monde qui semble plus grand et clairement plus de lieu a visiter avec j'imagine plus de pnj et de dialogue. Ce qui a du faire le succes de la série j'imagine.

Dans DQ4 ils ont quasiment tout compressé meme le texte et les patterns des sprites du bestiaires. La cartouche (512Ko donc les plus grosses de la NES) est vraiment pleine a craqué. Quand j'avais appliqué sur toutes les roms NES mon petit programme qui enlevait les redondances et espace vide d'au moins 16 octets pour voir a peu pret le niveau d'optimisation de l'espace ROM, DQ4 etait ressortit comme la cartouche la plus remplit en donnée juste apres Kirby (mais qui utilise une carotuche 768ko, la seule) preuve de son niveau de compression, elle faisait meme un meilleur score que les jeux qui utilisent des cartouches 640ko.




Mais ce qui m'impressionne dans ces 2 jeux c'est le bestiaire vraiment chouette pour de la NES.



J'ai enlevé les color swap pour mieux voir la variété. Les styles sont differents mais tres réussit pour de la NES, le nombre de couleur par sprite est elevé pour de la NES et ca a forcement ete pas mal de casse tete pour les graphistes. Le bestiaire de DQ4 est encore plus riche en couleur mais c'est lié a la simplicité de leur mode de combat qui n'affiche rien d'autre que les monstres.

Sur NES t'as seulement 8 palettes simultanément  (la moitié pour les sprites et l'autre pour le bg) de 3 couleurs.
FF3 affiche un morceau de décor pendant les combats pour situer l'action et qui utilise deja une palette + les 4 personnages du joueurs qui sont des sprites et utilisent en tout 3 palettes +  l'interface qui est travaillé visuellement et utilise aussi une palette + une palette réservé a certain effet (coup d'épée, affichage des point de dommage...). Reste seulement 2 palettes pour les ennemis! et seulement des tuiles de background, pas de possibilité d'utiliser des trick en superposant background et sprites pour plus facilement contourner la limite de 3 couleurs.
Du coup ca a du etre un sacré casse tete pour les graphistes de FF d'autant que differents monstres peuvent etre combiné sur l'ecran, il a fallu donc que les monstres qui se combine utilise la meme double palette pas le choix. Ces contraintes ont du limiter les libertés artistiques et les combinaisons de monstre (et aussi de color swap, y en a d'ailleurs moins que sur DQ qui mise beaucoup la dessus pour etendre son bestiaire)

De son coté DQ a toutes les palettes a dispo pour les monstres. Les combats n'affichent ni décors, ni les heros, ni aucun FX d'aucune sorte, et l'interface est en noir et blanc. On pouvait pas faire plus minimaliste. Du coup a priori c'est une liberté maximum pour les graphistes qui produisent les monstres qui peuvent chacun etre associé a au moins 2 palettes personnalisé au choix (et en combinaison background + sprite) et ensuite pouvoir combiner les differents monstres a l'ecran comme ils veulent car chacun aura ses palettes, et aussi ajuster le colo swap de chaque monstre comme il le souhaite.

Donc sur DQ4 ca donne un bestiaire peut etre encore plus travaillé artistiquement mais force de reconnaître qu'il y a une génération d'ecart sur la représentation des combats. FF3 releve le défie de rendre les combats dynamique et ergonomique.
Malgres le fait que dans les 2 jeux on reste sur de simple image statique pour représenter les monstres, DQ4 se contente de ca alors que FF3 affiche un décor (juste une bande mais ca suffit a situer l'action), anime tes personnages pendant le combat, te permet de sélectionner a l'ecran qui tu attaques avec une véritable GUI pour visualiser tout ca et pendant la phase active tu visualises qui attaque qui grace a de simple translations des personnages et a des fx visuel, tu visualises aussi les degats qui s'affiche sur les monstres... bref plein de petites choses qui mettent une génération d'ecart a DQ4. Meme l'effet pour faire disparaître un monstres mort est bien foutu.
Ils se sont vraiment cassé la tete. Mais les approches et priorités des 2 jeux sont differentes.



pippoletsu

DQ IV était le testamznt d'enix sur NES, ils ont tout donné.