GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Colecovision et Megacart

3 participants

Aller en bas

Colecovision et Megacart Empty Colecovision et Megacart

Message par Invité Sam 22 Nov - 9:41

A la demande de Mister bfg Michel Louvet, voici donc un tuto de mon premier essai de génération d'une Megacart pour Colecovision.

Programmation de la MegaCart pour faire du bank Switching

Le bank switching d’une MegaCart  consiste juste à lire une adresse spécifique de la mémoire pour changer d ebank.
Sdcc permet de faire du bank switching dans sa dernière version mais j’ai pas trouvé cela simple.
Le plus simple est de réaliser cela par une lecture de ce type :
char dummyx = *((volatile char*)0xFFFF); // switch to bank 0


Les 64 octets du haut de la mémoire de la Coleco  ( FFC0h-FFFFh) sont réservés pour le switch de banks. Bien entendu, ne pas mettre de données à cet endroit.


La bank choisie est de 16K et se trouve dans la plage d’adresses C000h-FFFFh.
Donc, l’EPROM doit être réalisée de la sorte :
bank0 = EPROM 0000h-3FFFh
bank1 = EPROM 4000h-7FFFh
bank2 = EPROM 8000h-BFFFh
etc …


Les premiers 16K de la cartouche (8000h-BFFFh) sont fixes et doivent toujours contenir le contenu de la bank de 16K la plus élevée de la cartouche. Aussi, ces données vont donc apparaitre 2 fois si la dernière bank est choisie lors du bank switching (8000h-BFFFh et C000h-FFFFh).

Pour utiliser ce mode, j’utilise donc :
Sdcc dans sa version 3.3.0, pas de modification particulière de crt0, cela fonctionne sans (testé sur Hard avec un AtariMax).


Mon outil de lecture des fichiers ihx cvmkcart.exe pour réorganiser les différentes bank dans la rom finale. Les fichiers ihx sont générés par le linker et ne ne sont que des fichiers de données binaires de la future rom.


Exemple avec 2 images sur cette video youtube :



Chaque image est dans une banque différente , mais pour rappel, le switch se fait dans la mémoire c000h et donc, on doit déclarer les données dans cette banque.

On switch de bank comme indiqué dans le fichier banksw.c de l'exemple :
unsigned char dummy;
#define SWITCH_IN_BANK0  { dummy=(*(volatile unsigned char*)0xFFFC); } // b0 with 64k
#define SWITCH_IN_BANK1  { dummy=(*(volatile unsigned char*)0xFFFD); } // b1 with 64k


Pour faire le siwthc dans le code :
 SWITCH_IN_BANK0;

Ensuite, cela se fait à la compilation en utilisant l’ordre --constseg ou encore codeseg si on a aussi du code dans la bank voulue.
image1.rel: image1.c
 $(CC) $(CFLAGS) -c -mz80 --vc --no-std-crt0 --constseg bank1 image1.c

image2.rel: image2.c
 $(CC) $(CFLAGS) -c -mz80 --vc --no-std-crt0 --constseg bank2 image2.c



Ensuite, lors de la phase de link, on déclare les différentes banks que l’on a utilisé via cette option :
LDFLAGS += -mz80 --no-std-crt0 -Wl-b_bank1=0xc000 -Wl-b_bank2=0xc000 --code-loc 0x8048 --data-loc 0x7000


Ici, bank1 et bank2 sont declarées via l’option –Wl-b_, le reste est standard pour la compilation.
Enfin, on utilise plus l’outil par défaut de création de la rom mais mon outil, en spécifiant le nombre de banks, le nom du fichier ihx et le nom de la rom finale.
Dans notre exemple :  cvmkcart -icrtcv.ihx -b2 $(TARGET).rom

L’exemple fourni fait le switch entre les 2 banks de départ pour mettre soit la première, soit la seconde image dans la bank c000h.
Ne pas oublier d’ouvrir la rom avec l’option megacart dans BlueMsx sinon, ça fonctionera pas 
En lien, le fichier exe de création ainsi que l’exemple.
http://www.portabledev.com/media/coleco/banksw/cvmkcart.exe
http://www.portabledev.com/media/coleco/banksw/banksw.zip
avatar
Invité
Invité


Revenir en haut Aller en bas

Colecovision et Megacart Empty Re: Colecovision et Megacart

Message par bfg Lun 24 Nov - 12:56

Bon, ben je peux déjà annoncer que BombJack utilisera une mégacart :) :)  !! Ça marche !
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Colecovision et Megacart Empty Re: Colecovision et Megacart

Message par Invité Lun 24 Nov - 13:00

tant mieux 😄 , faut toujours que je réponde à ton mail ou tu as trouvé tout seul les réponses ?
En fait, j'ai aussi répondu à ton mail ^^ Colecovision et Megacart 418468
avatar
Invité
Invité


Revenir en haut Aller en bas

Colecovision et Megacart Empty Re: Colecovision et Megacart

Message par bfg Lun 24 Nov - 13:21

Ben disons que j'ai réussit à faire fonctionner le bignou, mais que je ne percutais pas vraiment comment ça marchait. J'ai réussit à le déduire, et ton mail à conforté ma propre explication Mr. Green
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Colecovision et Megacart Empty Re: Colecovision et Megacart

Message par erikrom2 Lun 1 Déc - 21:33

pour un novice ...
possibilité  d’intégrer un jeu en 2x32k ou 4x 16k ? sur une cartouche ?
elle fonctionnera sans SGM ? supergame module ?

si oui mais c'est énorme

a moins que ce soit ceci ?
http://www.colecovision.dk/sem.htm

MegaCart 2 is the new
ColecoVision Super Game Cartridge = SGC

"Every new future OpCode Game will be stored in this Cartridge"
"Save your game data on it without the use of batteries."

The MegaCart 2 is a production name for the new MegaCart, and the official name is Super Game Cartridge.
 The Super Game Cartridge is a kind of media cartridge, a PCB that fits inside a regular Coleco cartridge casing, allowing games to be larger than 32K.
Up to 32 KB of Save RAM. to save any game data, like high score, save points, etc.
And 128 KB of MegaRAM. Allows even more advanced games, like MSX MegaROM games.
It is to find in the cartridge, not the Super Game Module.




terrible  amoureux
erikrom2
erikrom2
Infirmier

Masculin Nombre de messages : 3286
Age : 56
Localisation : var
Date d'inscription : 18/10/2005

http://retrogamer.blog4ever.com/blog/index-199671.html

Revenir en haut Aller en bas

Colecovision et Megacart Empty Re: Colecovision et Megacart

Message par Invité Mar 2 Déc - 13:58

erikrom2 a écrit:pour un novice ...
possibilité  d’intégrer un jeu en 2x32k ou 4x 16k ? sur une cartouche ?
elle fonctionnera sans SGM ? supergame module ?

si oui mais c'est énorme
Oui, c'est exactement cela.
Pas de SGM, une cartouche toute simple, avec la ROM en plus et effectivement, la possibilité d'avoir de la mémoire réinscriptible pour la sauvegarde des scores (comme dans un certain Bagman  What a Face ).
avatar
Invité
Invité


Revenir en haut Aller en bas

Colecovision et Megacart Empty Re: Colecovision et Megacart

Message par drfloyd Mer 3 Déc - 8:13

La sauvegarde des scores, un truc qui manquait vraiment à la Coleco à l'époque. Je notais mes scores sur un papier et faisait un top 10 avec un crayon de bois et une gomme !

_______________________________________________________
Colecovision et Megacart Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181467
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum