Publisher
greenfox
GodotBoy GDExtention
Note: I strongly recommend you check out the template on Itch. https://greenf0x.itch.io/godotboy-template. This version does not get updated as often. The GitLab link is always the most cutting edge, but perhaps not the most stable.
GodotBoy allows you to load ROMs from everyone's favorite 80s portable game console as well as it's 90s counter part. You can add an emulator to you game. The repo includes some examples of using these as a pickup, or as part of a control surface.
The sample is the most minimal example I could come up with and a ROM created from GBStudio (another MIT licensed project)
It's a GDExtention written in Rust with GodotRust and RBoy.
0.1.4: It now supports Windows, Linux, Linux on ARM64, and Android (on ARM64, but no reason it can't support Android x86 if anyone wants that). 0.2.0: Added support for GBA, but requires a BIOS file. Maybe someday figure out how to remove that requirement. v0.4.0 note: this was removed, it is beyond the scope of this project. If this is of interest to you, find me on BlueSky. 0.3.0: Now has support for Web exports. Requires Threads and Extension support in web exports. 0.4.0: Memory tools added! GBStudio added the script memory map to the exports, so you can now use the memory read/write tooling to trigger events in Godot or modify the game at run time.
Itch.io Link: https://greenf0x.itch.io/godotboy-template GodotRust: https://github.com/godot-rust/gdext RBoy: https://github.com/mvdnes/rboy
Godot Boy
An emulator for a certain portable game device. But running in Godot.
The best place to find the most updated version is on Itch.io. This is the easiest way to get the latest stable version.
If you need a Mac binary (for editor use or release), you will need to compile it yourself for codesign reasons.
To Compile
Prerequsits
Install Rust compiler with Rustup. If you already have Rust compiler installed, make sure it's updated. I occasionally update this project and they often update their Rust dependency version (rustup update
).
Building
./buildSystem.sh
basically does everything you need. It will output to GodotProject/addons/godot_boy
, if you want to extract this to your own Godot project. If your running on Windows, you'll need to install/use GitBash to run this script (which is bundled with most Git clients).
You can build anything (except Mac) on Linux. Windows can only build Windows dll (maybe you could make it work and give me a merge request, but I'm not working on that). If you want to see what dependencies you need for various platforms, check out my docker/*.dockerfile
s. The Android builds assume you have some android tooling installed.
./buildSystem.sh --help
$ ./buildSystem.sh --help
./buildSystem.sh usage:
-d or --debug
set build to debug (default)
-r or --release
set build to release
-w or --windows
set build to Windows
-l or --linux
set build to Linux
-a or --arm
set build to Arm64
-x or --x64
set build to amd64
--all
build Windows (x64), linux (x64/ARM), and Android (x64/ARM)
Note: only works on Linux with all prerequisite installed!
-h or --help
print this help
Memory Explorer!
This window is used for debugging memory of the running emulator. It is intended to help you pull data out of the running game. The hope here is that we can get strings out of this and we can get achievement triggers.
Use:
- In Debug Builds, Ctrl+Shift+M (it will not work in release builds)
,
and.
moves lines back and forth.- Shift +
,
and.
moves pages back and forth. -
and=
will add lines to the pages.- Top left corner lets you enter memory addresses directly that will become your offset, use this to skip around memory directly
- top row will be added to your address for columns.
- The right column is ASCII attempts at strings (
·
means no renderable text)- this might be expandable