[Python] Un mémo pour faire fonctionner une ROM créée avec GBDK avec PyBoy

C'est un mémo pour faire fonctionner la ROM créée par GBDK avec PyBoy. Cette implémentation est publiée dans le référentiel suivant. https://github.com/Kazuhito00/pyboy-gbdk-examples

Qu'est-ce que PyBoy

Un émulateur de gameboy écrit en Python. Il semble qu'ils développent non seulement un émulateur, mais aussi une plate-forme pour un apprentissage amélioré. https://github.com/Baekalfen/PyBoy

Qu'est-ce que GBDK

Abréviation de GameBoy Developers Kit, logiciel gratuit qui vous permet de développer des logiciels gameboy en langage C ou assembleur. http://gbdk.sourceforge.net/

Installation GBDK

  1. Téléchargez l'unité principale GBDK à partir du lien ci-dessous
    https://sourceforge.net/projects/gbdk/files/gbdk/
    Dans cet exemple, la version Windows ([gbdk-2.95-win32.zip](https: /) /sourceforge.net/projects/gbdk/files/gbdk-win32/2.95/gbdk-2.95-win32.zip/download)) est utilisé.
  2. Décompressez dans n'importe quel dossier tel que "C: \ gbdk"
  3. Ajoutez "C: \ gbdk \ bin" à la variable d'environnement système de Windows
    * Si vous décompressez autre chose que "C: \ gbdk", vous devez changer le chemin en fonction de l'emplacement de la réponse.

PyBoy

  1. Installez SDL2
     Ubuntu: sudo apt install libsdl2-dev
     Fedora: sudo dnf install SDL2-devel
     macOS: brew install sdl2
     Windows: (New-Object Net.WebClient).DownloadFile('https://www.libsdl.org/release/SDL2-devel-2.0.10-VC.zip', 'SDL2-devel-2.0.10-VC.zip')
      : Expand-Archive -Force 'SDL2-devel-2.0.10-VC.zip' C:\SDL2\
      : setx PYSDL2_DLL_PATH C:\SDL2\SDL2-2.0.10\lib\x64
      : setx PATH "%PATH%;C:\SDL2\SDL2-2.0.10\lib\x64"
  2. Installez PyBoy avec pip
    python3 -m pip install --upgrade pip
    python3 -m pip install pyboy

Hello World Vous pouvez créer un halo avec printf ().

hello_world.c


#include <stdio.h>
#include <gb/gb.h>
#include <gb/console.h>

int main(void)
{
    gotoxy(0, 0);  //Spécifier les coordonnées du dessin
    printf("Hello World\n");
}

Compilé avec le compilateur LCC de GBDK.

c:\gbdk\bin\lcc -Wa-l -Wl-m -Wl-j -DUSE_SFR_FOR_REG -c -o hello_world.o hello_world.c
c:\gbdk\bin\lcc -Wa-l -Wl-m -Wl-j -DUSE_SFR_FOR_REG -Wl-yt2 -Wl-yo4 -Wl-ya4 -o hello_world.gb hello_world.o

Lancer avec PyBoy

from pyboy import PyBoy

#Démarrer PyBoy
color_palette = [0xd6e895, 0xacc04c, 0x527d3e, 0x264a2e]  #Spécification de la palette de couleurs de type Gameboy
pyboy = PyBoy('hello_world.gb', color_palette=color_palette)

while not pyboy.tick():
    pass

Succès si la fenêtre suivante apparaît. 2020-06-20 (7).png

c'est tout.

Recommended Posts

[Python] Un mémo pour faire fonctionner une ROM créée avec GBDK avec PyBoy
Mémo connecté à HiveServer2 d'EMR avec python
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Faites fonctionner l'imprimante de reçus avec python
Essayez d'exploiter Facebook avec Python
Comment démarrer par lots un programme Python créé avec le notebook Jupyter
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
Passer la liste de Python vers C ++ par référence dans pybind11
Convertir un mémo à la fois avec Python 2to3
Mémo pour demander des KPI avec python
Créé un voyage de fléchettes avec python (news)
J'ai essayé de communiquer avec un serveur distant par communication Socket avec Python.
Un mémo organisé en renommant les noms de fichiers dans le dossier avec python
Notez que l'environnement Python de Pineapple peut être modifié avec pyenv
Notez que le serveur d'exécution de Django est moss en Python 2.7.11 fourni avec Homebrew
Comment lire un fichier CSV avec Python 2/3
Envoyer un message à LINE avec Python (LINE Notify)
Je veux faire un jeu avec Python
Essayez de créer un code de "décryptage" en Python
Décidez d'une mission de laboratoire avec Python (fiction)
Un mémo lors de la création d'un environnement python avec miniconda
Étapes pour créer un bot Twitter avec Python
Essayez de créer un groupe de dièdre avec Python
Liste de tâches simple créée avec Python + Django
Notes sur la création d'un environnement python par les débutants
Lire ligne par ligne à partir d'un fichier avec Python
Je veux écrire dans un fichier avec Python
Zubu amateur veut démarrer Python
[Python] A créé une classe pour jouer des vagues de péché en arrière-plan avec pyaudio
[Keras] Mémo personnel pour classer les images par dossier [Python]
Comment convertir / restaurer une chaîne avec [] en python
Mémo pour créer votre propre Box avec le Python de Pepper
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Mémo de visualisation par Python
Faisons un outil de veille de commande avec python
Python Ver. Présentation de WebPay avec un peu de code
Essayez le fonctionnement de la base de données avec Python et visualisez avec d3
Une histoire sur la façon dont les utilisateurs de Windows 10 ont créé un environnement pour utiliser OpenCV3 avec Python 3.5
Introduction aux mathématiques à partir du mémo d'étude Python Vol.1
Utiliser Kinesis avec Python
Comment publier des pages GitHub avec Pelican, un générateur HTML statique créé par Python
Je veux travailler avec un robot en python.
De l'achat d'un ordinateur à l'exécution d'un programme sur python
Faire fonctionner Blender avec Python
Comment enregistrer une table récupérée par python en csv
Un mémo que j'ai touché au magasin de données avec python
[Python] Création d'une méthode pour convertir la base en 1 seconde
Un mémo sur la création d'une application Django (Python) avec Docker
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
[Python] Supprimer en spécifiant une balise avec Beautiful Soup
Comment faire fonctionner l'API Discord avec Python (enregistrement de bot)
[Automatisation] Utilisez GitLab avec Python pour faciliter la gestion des requêtes
Publier / télécharger une bibliothèque créée en Python vers PyPI
Utiliser Excel avec Python (1)
Je veux faire fonctionner un ordinateur quantique avec Python
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
Mémo de "Cython-Accélérer Python en fusionnant avec C"