Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Alex d'Or : date, heure et lieu (...) / News: VOTRE ATTENTION / Jeux: Emain Ablach / News: Bientôt un nouveau RPG Maker / News: Alex d'Or : la liste des jeux (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

42 connectés actuellement

36819272 visiteurs
depuis l'ouverture

1256 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

2M Games

Blog Alioune Fall

Planète Glutko

Leo-Games

Zarok

Alex d'Or

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Jeux en développement > [Homebrew GBC]Hero Fantasy the King's Sword


Monos - posté le 31/08/2025 à 06:13:47 (57447 messages postés) -

❤ 2

Vive le homebrew

Hero Fantasy the king's Sword sur GBC



image


Synopsis
Un Nécromancien règne sur le monde, vous êtes envoyé par le roi pour retrouver une épée dans un "donjon" qui pourra permettre de le terrasser. (Dans un autre jeu peut être)

Le Donjon
Le Donjon est découpés en 4 niveaux. Le Big Boss se trouve au 4em niveau.

Clef et Objet
Le jeu est plutôt (waou), un jeu d'exploration, il faut trouver les 4 objets et les 4 clefs avant d'aller affronter le Big boss qui détient l'épée !

Cœur, Bouclier, Potion

Le héro possède un compteur de Cœur (vie), un compteur de Bouclier et un compteur de Potion.
Bon les potions c'est quand le joueur est empoissonné pour se guérir.
Les Boucliers sont des "points vie supplémentaire" mais certain monstre osef des bouclier.
Les cœurs ba une fois à 0, c'est le Game Over

Le system simple de combat...
Je ne voulais pas compliquer la création du jeu et des systèmes. C'est mon premier jeu en Assembleur.
Le system est simple, Quand le joueur touche un monstre, ce dernier attaque le joueur.
Un monstre à deux types de caractéristique :
Force et Surper Force !
Chaque point de Force diminue les boucliers du joueur et quand il y a plus de bouclier, ça retire des cœurs.
Et la Super Force attaque directement les coeurs en passant outre les boucliers !!!

Une fois l'attaque du monstre effectué, ce dernier meurt et lâche un objet. (Coeur, Bouclier, Potion)

Faire sa carte !!!
Le jeu est pensé pour que le joueur dessine une carte des 4 niveaux. (Ce n'est pas procédural)
Cela fait partie du jeu !




C'est partie pour le plaisir de porter mon jeu HFKS sur la petite console de Nintendo. La Game Boy color.
Voici donc le journal de développement en espérant que la démarche peut plaire.
Voici le topic dans les jeux terminés. Lien qui vous permet d'en apprendre plus sur ce jeu.

Le développement sur la GBC (Game Boy Color pour les intimes) est un nouveau challenge pour moi. Le jeu sera réalisé en Assembleur.
Mais c'est quoi l'assembleur ?



L'assembleur
L'assembleur est un le seul langage qu'un processeur connait. Bon pour être beaucoup plus précis il existe un langage assembleur par type de processeur...

Votre processeur possède des fonctions de base donc 99% des fonctions sont liées à la gestion de la mémoire et de déplacement de valeur d'un point A à un point B avec des additions soustraction, des tests... Chaque fonction possède un ou plusieurs "numéros" pour les identifier.

Exemple : $A9 qui veux dire charge dans la case mémoire A (ou Registre A) du processeur la prochaine valeur !
donc par exemple
$A9,77
Veux dire charge (mémorise) la valeur 77 dans le registre A.

Ah c'est ça qu'on appelle le code machine ou langage machine qui est donc une suite de valeur qui représente une instruction propre au processeur et des donnés qui se trouve après.

Alors programmer comme ça on peut, mais vite illisible. A oui cet encodage fonctionne que pour le processeur dit 6502, pas pour les autres processeurs...  Pour faire la même chose sur un Z80 par exemple (Master system pour prendre exemple), c'est $3E,77 (pour mémoriser 77 dans le registre A)

Ce qui rend donc les programmes qui sont écrits en 6502 (Nes par exemple) incompatible avec du Z80 (Master system par exemple)...

Donc je disais, écrire ses programmes directement avec en binaire/hexa ce n'est pas très pratique, l'homme à donc trouvé une autre façon d'écrire du code assembleur beaucoup plus lisible. Le langage assembleur ! (ou les langages assembleur car il y a un langage pour chaque type de processeur !!!).

En gros que d'écrire $78,77 dans notre programme, on utilise des instructions mnémotechniques.
LDA #77 !  (Load A)
Derrière il y a un petit programme qui va transformer le LDA #77 en $A9,77 si on utilise un assembleur 6502.
Le logiciel porte le doux nom de Compilateur.  (Pour le processeur Z80 le code à écrire pour la même situation est ld a,77).
Les logiciels assembleur possède aussi d'autre fonction comme posséder un logiciel près processeur. Ce logiciel permet de simplifier la tache par exemple pour créer des macros, des variables nommés , et d'autre fonction utile pour un peu simplifier la tache.

Pour continuer dans la même idée quand vous programmez en langage c,c++ par exemple, c'est la même chose. En gros vous un premier logiciel qui va transformer votre code C/C++ en langage Assembleur, puis après c'est au tour du compilateur de passer de l'assembleur en code machine ... Pour ça qu'on dit que le C/C++ (comme d'autre lange) est un langage compilé.

Il existe aussi des langages dit interprété... Là c'est un logiciel déjà tout fait qui existe et va charger votre fichier. Va lire la première instruction, la décoder et déclencher son effet ! Lire la 2em instruction, décoder, et déclencher son effet.
Sur les vieilles machines ça existe aussi, et le soucie c'est que c'est lent. L'étape lecture/décodage prend du temps!

Bon sur notre machine actuelle ça passe très bien car on a des processeurs booster à l'hormone ! Mais sur des processeur 8/16 bits c'est quand même très lent. Donc dialoguer directement avec le processeur fait gagner de la vitesse. Donc pour ça que nos vieux jeux des années 80/90 sont à 99% en assembleur. (surtout sur console, sur les micros ce n'est toujours vrais, il y a eu beaucoup de jeu  pro écrit en basic sur les vieux micro 8bits)

Les caractéristiques de la Game Boy Color
Bon faire un jeu sur une vielle machine ce n'est pas comme sur PC, on a besoin de connaitre les caractéristiques de machine. (A vrais dire on a besoin de connaitre son architecture. On va y revenir plus tard.

Processeur : Le Game Boy Color possède un Zilog 80 (modifié...) en tant que processeur.  Le processeur est cadencé à 4,194 MHz avec une option a 8,389 MHz.

Ram La Game Boy Color possède 8ko de Ram. C'est 4 fois plus que la nes (2 ko) et identique à la master system.
           Il y a un system de ram supplémentaire qui n'est pas présent sur la Game boy simple. La GBC à 16ko supplémentaire de Ram découpé en 4 (4 banks de 4 ko). Ce qui veux dire qu'un moment T sur ses 16ko , il y a que 4ko disponible pour la console. Il faut échanger les banks pour avoir accès à 4 autres ko ! Je reviendrais sur ce system beaucoup plus tard.
         
Mémoire vidéo La GBC possède aussi une mémoire vidéo propre au processeur graphique (mémoriser les tiles, la tilemap, sprite) qui est de 8ko aussi.

Résolution La résolution d'affichage et de 160x144px

Palette de couleur
La GBC possède un nuancier de 32768 couleurs (5bits pour le rouge, Vert et Bleu) mais cela reste un nuancier. La GBC fonctionne en palette de couleur.
La GBC permet de définir 16 palettes de 4 couleurs. Donc la première couleur de chaque palette est transparente). sur les 16 palettes, 8 est pour le system de tuiles et 8 pour le system de sprites.
Pour Information la nes fonctionne de la même manière mais avec seulement 8 palettes. 4 pour les tuiles et 4 pour les sprites avec un nuancier moins fourni...

Sprite: La GBC possède un system de sprite. Les sprites sont comme des tiles, des morceaux de 8x8pixel. Le GBC permet de gérer 40 sprites. (Maximum 10 sur une ligne.)

Sur Nes c'est 64 sprites en mémoire mais seulement 8 sur une ligne.
Comme sur la nes il est possible de flipper les sprites horizontalement et verticalement.


La cartographie mémoire de la Game Boy Color
Programmer une machine rétro, il faut connaitre sa cartographie, savoir ou on place les données variables du jeu, où se trouve le code du jeu, il existe des adresses mémoire


$0000-$00FF (256 Octets), Rom Interne pour lancer la console. Désactivé après.
$0100-$012F (64 Octets) Header de la cartouche.
$0140-$3FFF (16ko) Banque fixe de la Rom cartouche.
$4000-$7FFF (16ko) Banque interchangeable par le MBC (Zone du Bank Switching)
$8000-$9FFF (8ko) Vram. (Peut être échangé par une autre banque de 8ko)
$A000-$BFFF (8ko) Ram Externe contenue dans la cartouche et qui peut être échangé par le contrôleur MBC
$C000-$CFFF (4ko) Ram Fixe
$D000-$DFFF (4ko) 7 banques de 4ko de ram qui peut être échangé. (Bank Switching) soit 28ko de ram de disponible.
$E000-$FDFF   Miroir de la Ram à ne pas utiliser pour éviter des bug !
$FE00-$FE9F (160 octets) OAM Data sprite à copier par DMA
$FEA0-$FEFF (96 octets) Non utilisé, pas touche
$FF00-$FF7F (128 octets) Registre Entrée et de Sortie (Ecran, son, Timer....)
$FF80-$FFFE (127 octets) Hight Ram (Ram rapide intégré au processeur)
$FFFF   Registre interruption


La Tools Chaine de développement
Le jeu sera réalisé en Cross Dev sur Windows. Pour les consoles nous n'avons pas le choix de passer sur des micros ordinateurs.
Alors que sur micro-ordinateur nous pouvons utiliser le support initiale (ou émulateur) avec des logiciels dédiés ou des langages de programmation existant au démarrage de la machine. 99% des ordinateurs 8 bits booté sur un langage Basic au démarrage de ce dernier.
Le Cross dev existe aussi.

Nous avons besoin d'un logiciel pour écrire le code du jeu. Le basic NotePad de Windows fonctionne mais j'ai pris par habitude d'utiliser le Notepad++. Simple, avec un petit espace de travail. Pour moi c'est suffisant. Quand je code sur pc c'est ce que j'utilise.

Il existe d'autre logiciel existe comme Visual Studio code, Sublime Text et j'en passe. On peut ajouter des extensions, paramétrer tout ça au petit oignon, surlignement et plein de truc encore mais j'ai l'impression on passe plus de temps à paramétrer le logiciel que de programmer. Donc je reste simple et jai pas besoin de tout ce toin toin ! Note pad++ et basta.

Il nous faut un logiciel qui transforme notre code en code machine qui va cibler le processeur de la Game Boy Color. Le Compilateur.
Personnellement j'aime beaucoup le compilateur VASM. Ou plutôt dire ses compilateur VASM. Car il y a plusieurs compilateurs de cette suite. Du Z80, Du GBZ80, du 6009, du 6502,du 68000.... Bref c'est nikel. ET chaque compilateur à aussi plusieurs mode pour sa syntaxe. Standard, amélioré... Perso j'utilise le mode Oldstyle. Donc à l'ancienne.

Niveau Emulateur bgb et Emulicious. Toujours voir sur plusieurs émulateur mais le meilleur émulateur reste la vrais machine.

Et le logiciel rgbfix pour ajouter correctement les headers du fichier et divers petite chose pour rentre notre fichier binaire lisible pour la Game Boy Color.

Organisation de mon dossier

La programmation permet de s'organiser comme nous le souhaitons dans les dossiers. Il n'y a rien imposé comme dans Rpg Maker. J'ai pris une petite habitude d'organisation. C'est ma manière de faire et je ne prêtent pas que cela soit la meilleure. Juste une habitude qui me convient à l'heure actuel.

J'ai mon dossier parent qui est le dossier de la console ou du micro ordinateur.
Dans celui ci souvent j'ai divers dossier comme documentation, tools, vbcc (qui contient le compilateur) et projets.

Dans projet j'ai un dossier par projet, la HFKS.

Dans celui si j'ai un dossier bin pour sauvegarder le fichier binaire du programme. La rom du jeu.
Divers dossier comme mokup, dossier de recherche ou autre dossier information.
mon dossier code source que je nomme src.
et le fichier bat de compilation.

dans le dossier src j'ai aussi plusieurs dossier.
Un dossier class pour les fichiers code source de type Class. Ce n'est pas l'objet mais j'ai pris une habitude de programmer en plusieurs fichier même en assembler et de séparer mes fonctions par catégorie.
Un dossier define, qui contiens des noms de variables lié à des adresse mémoire.
header qui sont souvent le ou les headers des machines.
Macro pour l'écriture de macro en assembleur. (Je reviendrais sur ça plus tard)
et scene qui contient les scènes du programme. (Title Screen, Game, Game Over...).
Oui, la programmation sur RPG MAKER en ruby ma beaucoup inspiré.
Je peux aussi avoir des dossier DATA, et DATA_RAW.
A la racine de ce dossier j'ai mon petit fichier main.asm qui est le fichier à compiler. Dans celui si il y a des directive "include" qui va lier les autres fichier...

-Game Boy

--Documentation

--Projets
----hfks
-------bin
-------mokup

-------src
---------class
---------define
---------header
---------macro
---------scene
---------main.asm

-------compilation.bat

--tools
--vbcc


Mon fichier Bat de compilation
Et oui écrire son code dans un fichier ne fait pas ce fichier lisible sur une machine. Cela reste un fichier text.
Il faut passer à l'étape de compilation.
Pour ça j'ai pris l'habitude de faire un fichier bat sur Windows avec des lignes de commandes. J'écris mon code, je lance le bat pour compiler et je charge mon bin généré dans l'émulateur.

..\..\vbcc\bin\vasmz80_oldstyle.exe src\main.asm -Fbin -gbz80 -dotdir -o bin\hfks.gb

Ma petite ligne de commande pour compiler. j'appelle le compilateur Z80 de vbcc en mode oldstyle, je lui passe mon fichier main.asm et d'autre paramètre comme lui dire : Attention prend l'option GB avec le -z80 et balance moi un fichier binaire sans en tête avec -Fbin.
Et sauvegarde le fichier binaire dans le dossier bin et qui porte le nom hfks.gb...

Pour les personnes qui connaissent un peu l'écriture de commande bat ou autre je ne cible pas directement mon compilateur. Je fais des liens relatifs. (coucou les ..\ ) ce qui me permet de placer mon dossier ou je veux, sur d'autre ordinateur mais ça doit être le dossier au complet...

Bon c'est ma manière de fonctionner.

J'utilise aussi un logiciel qui permet de bien faire un header pour le GB. Ayant déjà travaillé un petit peux sur la GB j'utilise cette ligne de commande.

..\..\tools\rgbfix.exe -v -p 0 bin\hfks.gb

Mais je dois mettre la main dans le cambouis pour voir si c'est "compatible" pour la game boy color.

La machine
Programmer sur émulateur c'est bien, on a pas mal d'outils de pour le débogage. (Traceur de mémoire, on peut voir ce qu'il y a dans la mémoire vidéo...) Mais ce n'est pas fidèle à une vraie machine.
Je possède une Game Boy color et deux GBA. (La 1er et la lite)
Je possède aussi une cartouche spéciale qui me permet de place mon fichier binaire sur une carte SD, de l'intégrer dans cette cartouche qui une fois dans la machine cible, permet de lancer le jeu comme si c'était une vraie cartouche. C'est super pratique.
image
La carte flash dit Everdrive de chez Krizz


Fin du premier chapitre
Voilà, c'est la fin du premier chapitre. J'ai installé ma Tools chaine. Je dois maintenant écrire mon fichier main.asm et commencer à me pencher sur la machine hihi.

Signer du nez ?


Nemau - posté le 01/09/2025 à 20:40:16 (55430 messages postés) - admin -

❤ 0

( ° 3°)

À quand un jeu sur l'écran LCD du test de grossesse de Mme Monos ? :D (je fais référence à ce qui avait été fait pour Doom ^^)

Quel RPG Maker choisir ?Polaris 03Kujira no Hara sur Steam • Ocarina of Time PC


Monos - posté le 01/09/2025 à 21:25:32 (57447 messages postés) -

❤ 0

Vive le homebrew

Je ne sais meme pas sur quoi ça tourne.

Edit :
Avec un peu de recherche ce n'est pas vraiment un test de grossesse. Il y a eu modification de l'écran et du "processeur" donc voila.

Signer du nez ?


Nemau - posté le 02/09/2025 à 15:18:49 (55430 messages postés) - admin -

❤ 0

( ° 3°)

Han les tricheurs !

Quel RPG Maker choisir ?Polaris 03Kujira no Hara sur Steam • Ocarina of Time PC


Monos - posté le 05/09/2025 à 06:49:27 (57447 messages postés) -

❤ 1

Vive le homebrew

image
Je viens de fini ce matin d'adapter les graphismes pour la Game Boy. (Reste deux petit tiles à faire comme le petit bouclier et coeur pour du 8x8.

Demain matin je vais me pencher pour intégrer maintenant les données graphiques dans la game boy color. Avec la période des vendanges, j'ai très peux de temps pour moi pour le moment

Signer du nez ?


Créacoda - posté le 05/09/2025 à 14:58:31 (2295 messages postés)

❤ 0

Ça aurait pu être cool de prendre la palette du gameboy non?


Monos - posté le 05/09/2025 à 19:37:32 (57447 messages postés) -

❤ 0

Vive le homebrew

Je fais ça sur ma game boy color pour avoir de la couleur pour les clefs et portes ...

Signer du nez ?


Nemau - posté le 05/09/2025 à 20:37:50 (55430 messages postés) - admin -

❤ 1

( ° 3°)

Si ce sont les couleurs de la GBC il doit y avoir moyen d'obtenir des couleurs moins criardes, moins saturées. Mais après je ne sais pas à quel point c'est compliqué de les obtenir. Bonne continuation dans tous les cas.

Quel RPG Maker choisir ?Polaris 03Kujira no Hara sur Steam • Ocarina of Time PC


Monos - posté le 05/09/2025 à 20:52:07 (57447 messages postés) -

❤ 1

Vive le homebrew

Si j'ai 32 nuances de rouge de vert et de bleu pour recomposer une couleur mais je verrais tout sa sur machine reel

Signer du nez ?


Monos - posté le 12/09/2025 à 04:48:29 (57447 messages postés) -

❤ 0

Vive le homebrew

J'ai repris mes lives de programmation (le matin souvent)
Lien
Il y a des archives. Et en ce moment ba je programme sur cette game boy color...

Signer du nez ?

Index du forum > Jeux en développement > [Homebrew GBC]Hero Fantasy the King's Sword

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Jouables en ligne | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers