EPOCH Cassette Vision
-
Hello!
Petites news du projet.
J'ai mis en place une bonne partie des fenêtres du prototype V2.
Dans le prototype V1 pratiquement tout était dans une unique fenêtre avec 3 onglets, ce qui faisait beaucoup d'infos affichées.
J'ai réparti les informations en plusieurs fenêtres. Tout n'est pas encore fonctionnel mais récupéré pas mal de choses de la V1 qu'il faudra que je corrige et que complète.Fenêtre splash à l'ouverture:
Fenêtre principale:
Fenêtre d'ouverture de fichier:
Fenêtre des commandes de "l'émulateur" (c'est pas encore vraiment un émulateur mais bon...):
Fenêtre du code de la ROM Programme:
Fenêtre des graphismes de la ROM Pattern:
Fenêtre du PLA (Programmable Logic Array):
Fenêtre des registres et de la pile A:
Fenêtre de la mémoire (RAM):
Fenêtre des 2 piles NRM:
Fenêtre des contrôles de la console:
Fenêtre de la liste des instructions existantes:
La suite au prochain épisode.
Bon week-end à tous et à toutes.
@++
EPOCH84 (aka MaaaX ^^)Fenêtre de la liste des adresses valides (décimales, binaires et polynomiales):
-
Hello!
Petite news de fin de semaine sur l'avancée du prototype V2:
- J'ai refait les parties Palette et Timing (horloges et signaux verticaux et horizontaux).
- J'ai amélioré un peu l'IHM.
- Je suis en train de "finaliser" le chargement de fichiers (.CART, .ROM, .BIN...) qui était partiellement faits en V1.
La suite au prochain épisode.
@++
EPOCH84 (aka MaaaX^^)
-
Hello World!
Petites news du vendredi:
-
J'ai fini le chargement des fichiers ROM .CART (format ROM propriétaire de EmuCV), des fichiers ROM .BIN "program" et "packed pattern" (tous les bits de données sont à la suite et pas alignés sur des octets).
Pour les programme je détecte s'il s'agit d'un jeu sorti à l'époque (EPOCH ) et j'applique le 6BJ/PLA correspondant.
Il me reste à faire le chargement des fichiers ROM .BIN "unpacked pattern" (données alignées sur des octets) et ROM .TXT Pattern mais on verra ça plus tard. -
L'ID de la cartouche et le nom du programme sont maintenant affichés dans la fenêtre du programme et sont modifiables.
-
J'ai avancé sur l'affichage de la fenêtre pattern où il manquait pas de choses sur le proto V1.
Les pattern inclinés sont maintenant bien gérés et les répétitions X, Y et XY le sont partiellement mais j'y travaille. -
Dans la fenêtre 6BJ/PLA "Progammable Logic Array", les valeurs sont maintenant modifiables et influe sur les autres fenêtres (modif PLA=>affichage pattern / modif 6BJ => impact sur le code).
Je continue de travailler sur la fenêtre des patterns...
@++
A la semaine prochaine.
EPOCH 84 (aka MaaaX^^) -
-
Petite news du vendredi:
- J'ai fini la fenêtre des Patterns (ROM des graphismes). Il est maintenant possible d'y éditer les Patterns. Avec la fenêtre PLA qui est aussi éditable, la partie source graphique est terminée. J'ai pensé à un petit outil pour superposer des patterns (dans plusieurs jeux existants des sprites sont composés de plusieurs patterns supersposés)... mais on verra ça plus tard, c'est pas la priorité.
- J'ai fait quelques améliorations sur la fenêtre du programme (ROM du programme). Le code n'est pas encore modifiable mais je m'en occuperai plus tard.
- Je travaille maintenant à reprendre tous les opcodes pour prendre en charge ceux qui manquaient en V1.
A suivre...
EPOCH84 (aka MaaaX ^^) -
Un peu de retard dans le journal de projet cette semaine because semaine mouvementée et pas beaucoup de temps libre (j'habite en Ardèche, pluie diluviennes, écoles et garderies fermées, tout ça tout ça...)
Je travaille toujours sur la mise à jour de la description du jeu d'instructions (ce qui apparaît dans la fenêtre Programme et dans la fenêtre Liste des Opcodes).
Pour mémoire je sais maintenant ce que font tous les Opcodes, y compris l'Opcode buggé et les Opcodes en dehors du jeu d'instructions "officiel" que Tetsuji publie sur son site.
C'est très laborieux et long à faire mais ça avance bien.Après les descriptions il faudra que je m'occupe de l'implémentation proprement dite des instructions.
La suite au prochain épisode.
@++
EPOCH 84 (aka MaaaX^^) -
merci pour tes interventions c'est ma série préféré
-
Bonjour,
Voici les news de la semaine dernière que je n'ai pas eu le temps d'envoyer:
- Je suis toujours sur la mise à jour des descriptions pour tous les opcodes et je continue.
- J'ai déjà traité les descriptions pour les opcodes de 0x000 (0) à 0x1ff (511), ce qui comprends l'opcode 0x2a8 buggué
A suivre...
-
Petite coquille:
@MaaaX said in EPOCH Cassette Vision:- J'ai déjà traité les descriptions pour les opcodes de 0x000 (0) à 0x1ff (511), ce qui comprends l'opcode 0x2a8 buggué
En fait j'ai traité les opcodes 0x000 (0) à 0x2ff (767). J'ai donc traité les 768 premiers opcodes.
- J'ai déjà traité les descriptions pour les opcodes de 0x000 (0) à 0x1ff (511), ce qui comprends l'opcode 0x2a8 buggué
-
Hello World!
Pas beaucoup d'avancée cette semaine étant donné ma charge de travail et que mon boulot a pas mal (pour ne pas dire beaucoup) débordé sur mon temps libre .
J'avais déjà traité les opcodes de 0x000 (0) à 0x2ff (767) ça c'est bon!
Je viens de traiter aussi les opcodes 0x800 (2048) à 0xfff (4095), qui correspondent à des instructions de saut JP et JS. Ce qui représentent une bonne partie des opcodes et qui ne m'a pas demandé trop de travail. Ca c'est bon!
Là je continue de travailler sur les libellés des opcodes 0x300 (768) à 0x3ff (1023) et je me suis rendu compte que l'ancien code qui fonctionnait pour la V1 ne pouvait pas fonctionner pour les nouveaux opcodes (ceux qui n'étaient pas connus/gérés en V1).
Il faut donc que je change de paradigme et que je traite tout ou partie des libellés d'opcode comme je le ferai dans le traitement des opcodes à proprement dit...C'est pas clair? C'est normal.
Pour essayer de faire un peu plus clair : certains opcodes font en réalité plus de choses que ce qu'indique leur libellé. Dans les libellés on ignore simplement tout ce qui est fait mais qui n'a pas d'incidence.
Donc pour les libellés je triche un peu et je ne me base que sur des groupes d'opcodes afin de simplifier le code et de gagner en performance au démarrage de l'application.
Par exemple: je connais les opcodes des instructions qui ne font rien de significatif => je met "NOP" (No OPeration) en face sans regarder ce qu'elles font dans le détail vu que ce qu'elles font n'a aucune incidence sur l'état actuel ou futur de la machine (exemple d'action sans incidence: brancher la sortie du registre A1 sur la ligne (1) et brancher la ligne (1) sur l'entrée du registre A1 => ça donne l'opération A1=>A1, bref ça fait quelque chose mais qui ne change rien).Pour les opcodes 0x300 (768) à 0x3ff (1023) ça ne marche plus en V2 parce que les anciens tests "succincts" de la V1 sont maintenant invalides et sortent n'importe quoi pour les nouveaux opcodes.
Pour ce groupe c'est tellement compliqué qu'il faut que teste plus dans le détail ce qu'elles font. Donc nouveaux tests plus détaillés. Donc nouveau code.Je n'ai pas trop de le temps maintenant d'expliquer comment ça fonctionne dans le détail mais si ça vous intéresse dites le moi et prendrai un peu plus de temps.
@++
MaaaX ^^ (alias EPOCH84) -
@MaaaX
Juste un petit message pour te souhaiter bon courage.
Comme tu t'en doutes même si on en comunique pas beaucoup ici, on suit ça d'un oeil. -
Salut MaaX avec 2 A
Merci! C'est sympa!
La R&D c'est un peu long mais on va y arriver.
Je ne suis pas trop présent sur le Discord Beta mais je discute de temps en temps avec BK.@++
MaaaX avec 3 A ^^ (aka EPOCH84). -
EHLO,
Ca avance. Je n'ai pas encore fini les opcodes de 0x300 à0x3ff mais c'est en bonne voie.
BYE