Il y a longtemps, j’avais testé le ROM-inator II, dans sa version Mega (8 Mo). Et un post traînait dans l’interface : celui qui explique comment modifier manuellement la ROM.
Premier truc à savoir, il existe plusieurs cartes, mais l’actuelle a une capacité assez faible (2 Mo). J’avais expliqué pourquoi, mais en gros le créateur ne trouve tout simplement plus de puces. Pour programmer la ROM, il faut évidemment une ROM programmable mais aussi un appareil pour la programmer. Il n’est malheureusement plus en vente mais vous pouvez en fabriquer un, les plans sont open source.
Je ne vais pas vous expliquer comment hacker totalement la ROM. Je ne connais pas l’ASM 68000 et j’ai déjà joué (il y a longtemps) avec le bruit de démarrage des Mac.
Une ROM maison
Ce que je vais faire ici, c’est simplement intégrer un système directement en ROM. Je l’avais expliqué dans la première partie : la ROM permet de démarrer directement en ROM (ou en RAM) sur un système interne. C’est dérivé de la fonction intégrée dans la ROM du Macintosh Classic, mais avec plus d’espace. Une ROM de Macintosh IIsi (qui marche sur plusieurs types de Mac) nécessite 512 ko, il reste donc 1,5 Mo, 3,5 Mo ou 7,5 Mo (selon le type de ROM programmable) pour les données. Et avec la compression développée par l’auteur (fc8, les outils sont là) il est possible d’intégrer une image disque de 2,2 Mo, 5,5 Mo ou 12 Mo dans la ROM.
Premièrement, l’image disque. Elle doit avoir une taille maximale qui dépend de votre barrette SIMM, et avoir une capacité multiple de 64 ko. Le plus simple est d’utiliser une image disque vide, disponible sur cette page. Maintenant, il faut la remplir. Il existe différentes solutions, de Mini vMac à Basilisk en passant par l’installation d’un système basique sur un Mac directement. J’ai tenté avec un Mac, j’ai dû modifier les ressources de l’image disque pour la monter, et ensuite j’ai copié un système basique (System 7.1, un jeu) à l’intérieur.
Une fois l’image disque prête, il faut la compresser avec l’outil dédié (fc8). La commande est basique, et la seule chose à vérifier c’est que le fichier compressé ne dépasse pas la taille de la ROM physique (donc 1,5, 3,5 ou 7,5 Mo en gros). Dans mon cas, pas de soucis : mon image fait ~5 Mo.
./fc8 -b:65536 mondisque.dsk mondisque.fc8
L’étape suivante consiste à concaténer la ROM elle-même et l’image disque. On peut charger la ROM sur le site de l’auteur. Même chose, le total ne doit pas dépasser la capacité de la barrette (2, 4 ou 8 Mo).
cat iisi+romdrv1.2.rom mondisque.fc8 > marom.rom
Maintenant, le flash. Il faut le programmeur, le logiciel et une barrette. On choisit la bonne capacité en haut, une vérification et quelques réglages basiques (beaucoup d’options ne servent que pour des cas précis) et on attend. Le programme est un peu instable : j’ai dû redémarrer entre différents essais, mais ça fonctionne tout de même.
Maintenant, il faut tester. J’ai placé la ROM dans un Macintosh IIsi avant de démarrer en pressant Q
(A
pour les gens avec un clavier QWERTY). Dans ce mode, un RAMdisk sauve les modifications sur le système de fichiers. C’est un peu lent, mais l’OS démarre sans soucis. En pressant R
(démarrage en ROM uniquement), ça ne fonctionne pas, mais ça doit venir de mon image disque : il y a visiblement des fichiers que l’OS essaye de modifier au démarrage. Ca doit se régler, mais je n’ai pas essayé. En mode RAMdisk, Prince of Persia démarre, et ça c’est cool. Le motif sur les captures vient de la carte de capture et des modes vidéo un peu bizarres du Macintosh IIsi.
Je vous mets deux vidéos pour montrer ce que ça donne.
Le message d’erreur n’est-il pas lié au fait que le système souhaiterait reconstruire le bureau au démarrage, les fichiers Desktop DB et Desktop DF (ou leurs équivalents sous le système 7.1) doivent ne pas être bons ou correspondre aux données du disque ROM (ou encore être absents) et le système veut les créer ou les recréer, mais pas possible…