| Présentation | Hardware | Programmation | Links | Divers | Contact |

Kit de Programmation pour Game Boy

Dernière mise à jour : 19/2/2006

Sommaire

1- Introduction
2- Schéma de l'interface
3- Nomenclature des composants de l'interface
4- Exemples de montages et typons
5- Les cartouches:
-La cartouche SRAM 32Ko
-La cartouche MBC5 (64Ko<->4Mo)
6- Les logiciels
7- Quelques photos

Introduction

Le Kit proposé ici permettra de programmer une cartouche GameBoy à base de SRAM, enfichable dans le port cartouche de la Game Boy. L'interface liée au PC permettra donc d'écrire dans la carte SRAM, de lire dans la carte SRAM, de lire les cartouches Game Boy, et éventuellement de programmer des EEPROM 5V, etc. Pour faire fonctionner ce kit il vous faut un PC (ou autre mais le programme de transfert est fait pour DOS et Windows) avec un port parallèle bidirectionnel.

ATTENTION:
Cette est interface incompatible avec les cartouches GameBoy Advance !!!!
Les cartouches GBA s'alimentent avec une tension de 3.3V et non pas de 5V!!!
L`utilisation de cette interface avec une cartouche GBA peut endommager la cartouche.

GB kit

Le schéma de l'interface

Schema

Comme vous pouvez le voir, le montage est composé principalement d'un 8255. Notons que ce composant est une interface pour périphériques. On  trouve ce composant pour quelques euros chez Espace Composant Electronique par exemple, ainsi que tous les autres composants. La seule chose difficile à trouver est le support pour cartouche GAME BOY: il faut chercher une GameBoy HS ou une Super Game Boy HS. (Ce problème peut être évité en ajoutant un connecteur spécifique sur la cartouche à programmer: voir ci-dessous)

Pour le montage plusieurs solutions sont possible : Vous pouvez le faire sur une plaque à pastille avec quelques fils (ce que j'ai fais), ou utiliser les différents typons existants. Concernant l'implémentation du support de cartouche, je vous conseille d'utiliser une nappe 34 fils (type floppy) pour pouvoir réutiliser facilement le support sur d'éventuel autre montage. Ci-contre le brochage que je suggère pour la nappe 34 broches. Le brochage est relatif au connecteur présent sur la carte.
Si vous n'avez pas de support cartouche GameBoy vous pouvez utiliser ce connecteur pour brancher la cartouche à programmer à l'aide d'une nappe floppy 34 broches. Il faut juste prévoir dans ce cas la mise en place du connecteur 34 broches sur la cartouche.

Pour information voici le brochage d'une cartouche GameBoy:

GB pinout
Socket
Socket
Socket

Nomenclature des composants

U1 : 82C55A
U3 : 74(HCT)04
U2 : Régulateur 5V 7805
D2 DEL1 : 1 LED
D1 : 1 Diode
RN1,RN2 : reseau de resistance 8*10K (ou 16 resistances de 10K)

R1 : Résistance 330 ohms
R2,R3 : Résistance 4.7Kohms
R4,R5,R6,R7 : Résistance 10Kohms
C1 : Condensateur chimique de 220uF 50 V.
C4 : Condensateur chimique de 100uF 10 V.
C2,C3,C5,C6,C8 : Condensateur 100nF.
C7 : Condensateur chimique de 10uF.

J1 : 1 Connecteur 34 broches (embase à 2 rangées de 17 contacts HE-10
J3 : Connecteur
Une nappe 34 broches (nappe de lecteur de DK...)
1 Support cartouche Game Boy.
DIVERS : Quelques straps , Un câble imprimante,...

Exemples de montages et typons

Attention : Les typons suivant ne respectent pas forcement à 100% le schéma présenté ci-dessus.

Ce typon a été réalisé par JeeB afin de faire entrer la carte de l`interface dans le boîtier du Cartio de Reiner Z:

Typon version JeeB Version JeeB dcp_4852.jpgBottom view

Une version plus compacte a été réalisée par POILKLMPO :

Typon version POILKLMPO Version POILKLMPO

Version câblé (sans typon) :

interface2.jpg

Les cartouches

La cartouche SRAM 32Ko:

Maintenant que vous avez l'interface vous pouvez faire la carte SRAM.
La carte présentée ici est assez modeste par sa capacité (32Ko) mais elle est assez simple à faire:
JeeBCart4.jpg

Le schéma de la cartouche SRAM 32Ko:

SRAM32KO_GBCARTRIDGE_001.jpg
Voici le typon de JeeB (51mm * 56mm) et son schéma d'implantation des composants. Cliquer pour agrandir... Cliquez pour agrandir ...
JeeBCart3.jpg
La cartouche finie
JeeBCart2.jpg
Dans la GameBoy
JeeBCart1.jpg
La cartouche en pleine action

Nomenclature des composants

U1 : SRAM 32Ko (61C256...)
D1,D2 : Diode 1N4148
R1 : Résistance 4.7K
R2 : Résistance 10K
C1 : Condensateur chimique de quelques uF (4.7uF-10uF)
C2 : Condensateur 100nF
SW1,SW2: Interrupteur 2 positions
SW3: bouton poussoir

Mode d`emploi de la cartouche SRAM32K

1 - Mettez la cartouche dans l`interface et mettez la cartouche en mode écriture et activ\E9
2 - Envoyez l`image de la ROM de la cartouche. Si le message "cartouche programm\E9e, prot\E9ger l'\E9criture" continuez sinon r\E9insérez la cartouche dans la l`interface (mauvais contacts....)
3 - Mettez la cartouche en repos et en lecture (ne pas éteindre l`interface et ne pas retirer la cartouche)
4 - Une fois en repos retirez la cartouche et insérez-la dans la GB.
5 - Allumez la GB
6 - Mettez la cartouche en mode lecture et activ\E9e.
7 - Effectuez un RESET sur la GB sans éteindre la GB avec le bouton de la cartouche.
8 - Normalement le soft tourne.
9 - Pour éteindre (si vous voulez garder le soft dans la cartouche ) mettez la cartouche en repos et éteindre la GB.
10 - Retirez la cartouche de la GB.

Quelques remarques

- Le composant servant de RAM est une puce de mémoire cache récupérée sur une carte mère de 486 HS. Vous pouvez acheter ce genre de puce pour 18 F (Refs: Ms62256, IS 61C256, UM 61256, ...)

- Le bouton reset est un bouton poussoir qui est accessible \E0 la surface arri\E8re de la cartouche....

- Sous la pile, il y a une pastille de cuivre. Celle-ci doit \EAtre \E9tam\E9e pour ne pas avoir de faux contacts. Il en est de m\EAme pour les contacts du connecteur. Ils sont \E9tam\E9s \E0 l'\E9tain au fer \E0 souder.

- L'interrupteur autorisant ou non l'écriture est à mettre sur écriture pour que la carte soit programmée.

- l' interrupteur "SLEEP MODE" doit toujours être mis sur repos AVANT d'éteindre la Game Boy ou l'interface sinon il y a de fortes chances que le programme dans la SRAM soit effacé.

La cartouche MBC5:

Pour faire une cartouche de plus de 32Ko il faut utiliser un contrôleur : Le MBC5. Le MBC5 est un composant présent dans les cartouches GameBoy commerciales (le MBC5 est le dernier de la série des MBC...), assurant la gestion des ROMs de plus de 32Ko. Il permet d'accéder dans une `fenêtre` (de 16Ko) à n`importe quelle autre partie de la ROM de la cartouche, la ROM étant alors segmenté en `BANK` Le BANK0 étant toujours accessible entre l`adresse 0h et 3FFFh. Les 255 autres Bank sont accessibles entre 4000h et 7FFFh. Pour sélectionner un bank il faut écrire son numéro à l`adresse 2000h-2FFFh, ensuite le MBC5 donne accès à cette partie de la rom dans la fenêtre de 16Ko (entre 4000h et 7FFFh).
Le MBC5 permet ainsi d`avoir des cartouches de 4 Mo alors que la Game Boy ne sait adresser que 32Ko de mémoire via le port cartouche ! (le bus d`adressage du Z80 est de 16Bits : 64Ko adressables directement : la mémoire interne et les périphériques internes prennent 32Ko d`adressage. Il ne reste plus que 32Ko pour les cartouches). Le MBC5 permet aussi de gérer de la RAM interne à la cartouche (pour les sauvegardes...).
mbc5.gif
brochage du MBC5
Pour faire une cartouche de plus de 32Ko, on peut utiliser une cartouche commerciale contenant un MBC5 et désactiver la ROM d`origine pour la remplacer par une puce de SRAM (ou EEPROM...).
Pour cela il suffit de couper la piste au niveau de la broche CE (Chip Enable) de la ROM et de brancher cette broche au +5V (ou mettre un switch si vous voulez revenir au jeu d`origine...). Ci-contre le brochage des PROM des cartouches GameBoy.
Une fois désactivée, on soude une nappe de type IDE (40 Broches) sur les points essentiels pour pouvoir gérer la RAM sur un circuit à l`extérieur de la cartouche:
Bus de données : D0-D7
Bus d'adressage : A0-A15 et RA16-RA22 (extension pour la ROM) , et AA13-AA16 (extension pour le backup SRAM)
Bus de contrôle : /RD /WR /RAMCS /CS /RESET
Alimentation : +5V et Masse
23c64000.gif
lh534.gif
Pour pouvoir écrire dans la puce de remplacement il faut ajouter une ligne d`écriture puisque le MBC5 prend la ligne /WR. Pour cela on ajoute ce circuit entre la puce à programmer et la GameBoy: writeg.gif

Voici donc le schéma d`une cartouche SRAM de 1Mo:

cart1.gif

Voici un exemple de modification en image : cartt2.jpgcartt1.jpg
La cartouche ci-contre est de 2Mo (16MB). Elle est basée sur de la SRAM non-volatile DS1270Y de chez Dallas. MBC5card.jpg

Logiciels

dosico.gif Pour Msdos:
Téléchargez le programme de transfert ici.
!!Attention cette version est abandonnée!!
(Ce programme DOS ne fonctionne pas sous Windows NT/2000/XP. Prendre GameBoy Trans-fer 32 à la place).
N'oubliez pas de configurer votre port imprimante en mode bidirectionnel (EPP ou ECP) dans le BIOS. Une fois que vous avez correctement branché l'interface au PC et son alimentation, mettez-la en route et lancez GBT.COM . Si le programme n'indique pas "INTERFACE NON DéTECTéE..." c'est bon signe sinon il y a un problème.
Pour compléter le test éteignez l'interface et insérez une cartouche Game Boy et rallumez l'interface: Vous devriez voir le nom du jeu sur l'écran avec quelques autres informations.
Appuyez alors sur F4, le programme fera un checksum de la cartouche, et si à la fin du cycle il n'y a pas d'erreur alors l'interface fonctionne parfaitement.
winico.gif Pour Windows 95/98/NT:
GameBoy Trans-fer 32 (sources ici)
Ce programme est basé sur TVicPort pour l'accès au port parall\E8le.
Une nouvelle version est en cour de préparation. gbt32.gif
tux.gif Pour Linux:
Il existe une version de readplus pour linux adapté pour cette interface ICI.
Seule la lecture des cartouches est supportée par cette version.

- Téléchargez gbbasic pour tester la cartouche SRAM de 32Ko ou cette Demo si vous avez une GameBoy color.
- Téléchargez sdk pour Game Boy pour programmer en ASSEMBLEUR ou en C  sur GameBoy.
- Téléchargez ce fichier zip contenant tasm et l`émulateur no$gmb pour programmer en ASM sur Game Boy.

- Téléchargez gbspec.txt, un document indispensable pour programmer sur GameBoy.

- Allez sur le site: http://www.devrs.com/gb/ pour les utilitaires de programmation pour Game Boy (Programmes, Codes sources,etc....)

Et pour finir quelques photos :

La demo Skinke de jumalauta La demo Skinke de jumalauta La demo Skinke de jumalauta

"mental respirator" by phantasy "mental respirator" by phantasy "mental respirator" by phantasy

Bonne programmation ! ;)


(C) HxC2001 / Jean-François DEL NERO