Salut,
Pour info, voici la version finale de la Twilighte board.
Pour faire rapide sur les détails techniques hardware (cela ne veut pas dire que le soft est fait 🙂 :
- Ports joysticks type atari (*2)
- Lecture sdcard à 46KB/Sec (max 32GB)
- Lecture clé USB (max 32GB)
- Support souris, joystick USB
- 512KB d'eeprom
- 512KB de RAM
- Hardware upgradable (ports d'extensions internes pour support d'une nouvelle carte avec d'autres fonctionnalités)
- SRAM et eeprom programmable via un soft disponible sur la machine (donc tout ce qui est kernel, basic and co se programment avec la carte et c'est tout).
Au niveau software :
- Démarrage des .tap (limite software : pas de démarrage en multitap)
- jouer avec un joystick sur les jeux atmos (et oric-1) et jeux orix natifs
- Lancement de forth
- Lancement de debugger (monitor)
- OS type linux, gestion des répertoires, malloc, fork, free, liste de process (pas multitache mais pas mal de trucs codés pour que cela le soit)
- Possibilité de démarrer FTDOS et de lire directement la disquette sur jasmin (pas testé totalement, mais il n'y a pas de raison que cela ne fonctionne pas)
- Gestion des banques par versions qui s'upgraderont à chaque release avec un outil
Ce qui pourrait être fait au niveau software mais pas fait :
- démarrer sedoric et lire sur sdcard
- démarrer ftdos et lire sur sdcard (xldos etc)
- mettre la rom oric-1 pour démarrer les jeux oric-1 (en parallèle de celle de l'atmos)
- faire du cache RAM
- gérer l'extended memory (ie avoir accès à 512KB de RAM pour ce qu'on veut)
Ce qui ne peut pas marcher:
- pas de FDC donc, pas possible de démarrer certains jeux qui tapent sur le FDC (mais wait and see 🙂
Voilà, la carte a été pensée pour :
- qu'elle soit upgradable matériellement et au niveau soft facilement
- avoir un hardware ultime tout seul sur la table avec l'oric qui permet de tout faire (tout ce qui existe sur oric hors fdc)
- avoir la rapidité de réaction (Toutes les roms sont codées en asm), car la sdcard dépote.
Petite vidéo montrant la mise à jour de la ROM (ici, j'update le kernel, le shell et la rom basic11 - car elles font parties du même secteur sur l'eeprom). Cela programme donc 4 banques.
C'est le même principe pour les 32*16KB de roms (avec le même soft renommé depuis en orixcfg).
L'écriture en ram par exemple se fait par ce soft aussi (mais ici, nous pouvons upgrader banque par banque). L'utilisation de la RAM supplémentaire n'est pas dédiée à mettre de la ROM (c'est à dire du code pur), cela peut faire cache/buffer, libs, musique etc.
Désolé pour la qualité, le smartphone a du mal à faire le focus
Bravo ! DQP, je modifierai la mienne et la reprogrammerai...
Merci Jede
A+
@voyageur Je t'avais envoyé un mp le mois dernier pour cela. Je ne sais pas si tu l'avais vu 🙂
Petite vidéo, je pense que je l'avais déjà montré.
Cela montre comment basculer sur les autres roms en ligne de commande. La commande bank affiche les 7 banques courantes. Noter que la banque 4 et 3 contiennent Monitor et forth, puis nous voyons 2 roms de 16KB vides.
Avec la commande "twil -s1", on passe à un autre jeu de 16*4 banques (comme si on changeait de cartouche mais ici c'est logiciel).
Quand on refait "bank", on peut voir que les banques 4, 3, 2 et 1 affichent désormais empty rom, car nous sommes passés sur un jeu de 64KB de banques vides
Les questions/réponses éventuelles :
- Pourquoi n'afficher que 7 banques au lieu de les afficher toutes (32*16KB de roms et 32*16KB de ram) => j'ai voulu garder compatible le code entre le telestrat et l'atmos. Ce n'est pas une limite matérielle mais bien software surtout qu'il faudrait recoder certaines parties du kernel pour gérer ces 64 banques en même temps
- Est ce que toutes ses roms sont reprogrammables en ligne de commande : Oui, ici c'est le soft qui est limitant car je n'ai pas fini d'écrire orixcfg qui permet de reprogrammer ce qu'on veut au niveau des RAM et des ROMS (en revanche, rien empeche de le faire sans l'outil à coup de C/Asm)
Concernant le hardware global et le soft, beaucoup d'idées ont été prises du monde CPC :
Pour le hard, la twilighte card est l'équivalent de ce matériel sur cpc : flashgordon+ramcard+albireo (c'est surtout parce qu'en meeting je suis avec les CPCistes 🙂
Au niveau software, Assinie et moi avons beaucoup discuté la dessus, et il y aussi des idées reprises du basic locomotive (CPC encore :). Les ROMs ont un format particulier : à la fin de la ROM sur une dizaine d'octets; il y a une signature, une annonce de commande disponibles. Donc, une ROM rajoutée apporte ses propres commandes et ces commandes peuvent être lancées en ligne de commande sans bidouille.
La partie joystick n'est ni plus ni moins que le fonctionnement des joysticks sur telestrat
Nouvelle vidéo qui montre le chargement d'un code dans une banque 16KB de RAM.
J'ai un peu bidouillé le binaire actuel de loading de rom en eeprom afin de montrer ce chargement en RAM.
C'est un peu long à charger car le code n'est pas optimisé du tout, on lit sur sdcard octet par octet. Normalement, on pourrait charger à 46KB/sec dans cette RAM si on faisait autrement.
Ici nous voyons qu'un bank a été fait pour vérifier que nous avions 4 rom empty (ces ROMs sont lues de l'eeprom physique).
On lance orixcfg (qui a été bidouillé pour l'occasion).
On appuie sur w (qui va loader de la sdcard monitor.r64 qui est la ROM monitor dupliquée 4 fois volontairement). On voit le compteur de chargement du fichier dans les 4 banques (j'avais dit que c'était un peu long dans ce code là 🙂
On quitte orixcfg pour revenir au prompt.
La commande twil est appelée pour passer sur le jeu 0 de banque (puis bank pour montrer que nous n'avons plus les empty rom car nous sommes passé sur un autre jeu.
On tape "twil -w" pour dire qu'on passe sur le jeu de banques 0 en RAM
On tape bank, et on trouve nos 4 banques monitor chargées en RAM.
Questions réponses :
- Est ce qu'on peut charger un seul .rom dans une banque SRAM ? Oui, c'est le logiciel qui manque pour le faire (c'est en cours). Ceci n'est pas vrai sur l'eeprom car il faut détruire les 64KB du secteur pour pouvoir le réécrire.
- Est c'est compliqué d'utiliser cette SRAM supplémentaire ? Il y a 1 registre sur la carte qui permet de définir quel jeu de 64KB on veut utiliser/voir. Un registre pour dire qu'on passe sur la RAM ou sur la ROM (1 bit sur un registre) enfin un registre qui dit sur quel numéro de banque on switche.
- Est ce qu'on peut charger n'importe quelle ROM sur oric (atmos, oric-1 et autre rom custom ?) : Oui même si elle n'est pas au bon format Orix (l'idéal serait de modifier la ROM pour éviter les effets de bords : "bank" pourrait planter car il ne reconnait pas le format de la ROM, cela ralentira un peu aussi la routine qui essaie de trouver la commande tapée au prompt car Orix ne retrouvera les commandes.) => ce qui veut dire qu'on peut charger une ROM oric-1 qui va lire sur un vrai lecteur K7, ou une autre ROM Oric-1 qui lit sur sdcard, une autre qui lit sur port usb sur la clé et plein d'autres choses.
- Est ce qu'on peut charger une animation de 512KB et la stocker en RAM pour la jouer ? Oui mais je doute qu'on trouve une grosse différence entre une copie de RAM vers la plage hires et une lecture "en burst" sur la sdcard, il y aura une différence, mais pas sûr que cela se voit tout de suite 🙂
Sinon à la question, est ce que je peux jouer à Zorgons ?
La réponse est oui car la rom basic a été modifiée par Assinie pour lire sur sdcard. C'est pas le truc que je montre en 1er car je ne suis pas trop un nostalgique des jeux Oric dans les 80's
Mais on pourrait très bien avoir la ROM oric-1 non modifiée et la rom atmos non modifiée : et avoir la possibilité de jouer aux jeux atmos ou oric-1 sans modification hardware.
La commande bank permet de lancer une rom même quand cette ROM n'est pas au bon format Orix.
Il suffit de faire "bank 1" et cela lancera la rom 1 (qui peut contenir la ROM oric-1
Autre vidéo : utilisation d'un joypad USB (sur la prise DB9 avec une interface entre les deux qui convertit les directions du joypad usb vers les signaux pour DB9 : Interface TOM2 qui ne fait pas partie de la carte)
Noter le CAPS, c'est la rom basic11 qui tourne et donc, les joysticks sont accessibles de la rom atmos (les joysticks car il y a deux ports permettant de jouer à deux si le code le gère)
Autre vidéo. J'avais porté Oricium pour que cela démarre avec Orix (pas besoin de le lancer avec la rom basic). J'ai fait rapidement la gestion joystick.
La voici (elle n'est pas optimale, on pourrait améliorer, j'utilise des joypad usb car moins de fils sur le bureau, mais un joypad/joystick normal en DB9 fonctionne de la même manière).
Les joysticks repondent bien...Je crois que la souris peut passer aussi par le Tom2, ca permettrait de rajouter un pointeur a l'ecran, quel dommage que l'interface ijk joystick ne peut par fournir l'alim comme la Twilighte card...
Les joysticks repondent bien...Je crois que la souris peut passer aussi par le Tom2, ca permettrait de rajouter un pointeur a l'ecran, quel dommage que l'interface ijk joystick ne peut par fournir l'alim comme la Twilighte card...
Au niveau hardware, cela répond bien. C'est au niveau software, il y a moyen de faire plus fluide.
Oui la souris peut être gérée par TOM2, déjà testé, mais comme il faut se taper le code du décalage de la souris (comme la souris amiga ou atari), c'est un peu du cpu intensif pour faire le calcul, le code traine, je ne sais plus qui l'avait fait.
C'est pourquoi le port USB règle ce pb, car c'est hardware, les positions X et Y sont renvoyées par le contrôleur, c'est même possible d'avoir la notification de déplacement de la souris par IRQ, mais je ne l'ai pas cablé pour éviter les conflits d'IRQ (ce sera la version future avec sans doute un registre d'IRQ pour éviter que le soft interroge tout le monde pour savoir qui a fait l'irq)
Le chargement + exécution est de l'ordre de la seconde (37KB chargés ici) pour oricium
Ah ouais...classe. 😎 😎 😎
WAOU !! C'est vraiment hallucinant ce qu'on voit dans ce thread !!
L'état de sidération dans lequel me place ce genre de réalisation m'empêche de trouver les mots jutes pour décrire ce que je ressens.
Mais je peux quand même formuler 2-3 constats auxquels j'arrive en contemplant ces démos:
- Jede est le mec qui, de mon point de vue, est le mieux placé pour faire rentrer l'Oric dans le 22ème siècle.
- Il y a des gens qui font vivre l'Oric comme une relique .. et il y en a d'autres qui le font vivre comme une machine. Je place Jede dans la seconde catégorie.
Chapeau l'artiste !!! Époustouflant !!
Autre vidéo, chargement d'un .tap sur la rom basic atmos.
On lance la rom avec basic11, puis cload
adaptation de la rom atmos pour démarrer des .Tap : Assinie