A scriptmodule to install a Godot "emulator" for RetroPie.

RetroPie Godot Engine "Emulator"

GitHub release (latest by date) GitHub license

A scriptmodule to install a Godot "emulator" for RetroPie.

Retropie-Godot-Banner

Thanks to @efornara (for creating FRT - A Godot "platform" targeting single board computers) you can now play 2D games made with the Godot Engine on the Raspberry Pi (and other single-board computers) using RetroPie.

If you are running RetroPie on an x86/x86_64 Linux PC you can also play Godot games, since the Godot "emulator" is actually the official Linux/X11 export template.

Table of contents

🎮 Where to find games made with Godot

There are plenty of games made with Godot, most of them hosted on https://itch.io.

You can find Godot games using the following links:

Most games are free to dowload, some are "pay what you want" with a suggested price (including free) and a few are paid. If you like the game, consider supporting the authors 😊 .

✔️ Compatibility list

Take a look at the compatibility list to check which games work.

Everyone can contribute to the list by starting a discussion.

🛠️ Setup script

Install the script

cd ~
git clone https://github.com/hiulit/RetroPie-Godot-Game-Engine-Emulator.git
cd RetroPie-Godot-Game-Engine-Emulator/
sudo chmod +x setup-godot-engine-scriptmodule.sh

Update the script

cd ~/RetroPie-Godot-Game-Engine-Emulator/
git pull

🚀 Usage

./setup-godot-engine-scriptmodule.sh [OPTIONS]

If no options are passed, you will be prompted with a usage example:

USAGE: ./setup-godot-engine-scriptmodule.sh [OPTIONS]

Use '--help' to see all the options.

The script assumes that you are running it on a Raspberry Pi with the RetroPie-Setup folder being stored in ~/RetroPie-Setup. If your setup differs, you can pass the path where your RetroPie-Setup folder is stored as a parameter, like this:

./setup-godot-engine-scriptmodule.sh [OPTION] "/path/to/your/RetroPie-Setup"

📖 Options

  • --help: Prints the help message and exit.
  • --version: Shows the script version.
  • --install [path]: Installs the godot-engine scriptmodule.
    • Path: The location of the RetroPie-Setup folder.
    • Default: ~/RetroPie-Setup.
  • --uninstall [path]: Uninstalls the godot-engine scriptmodule.
    • Path: The location of the RetroPie-Setup folder.
    • Default: ~/RetroPie-Setup.
  • --update [path]: Updates the godot-engine scriptmodule.
    • Path: The location of the RetroPie-Setup folder.
    • Default: ~/RetroPie-Setup.

Install the Godot "emulator" from RetroPie-Setup

Once you've successfully installed the scriptmodule, run:

sudo ~/RetroPie-Setup/retropie_setup.sh

Go to:

  • Manage packages
  • Manage optional packages
  • godot-engine
  • Install from source

The script installs all the major versions of Godot for maximum compatibility:

  • 2.1.6
  • 3.0.6
  • 3.1.2
  • 3.3.4
  • 3.4

A new godot-engine folder will be created in ~/RetroPie/roms, where you can install the Godot games using the .pck and .zip extensions.

Uninstall the Godot "emulator" from RetroPie-Setup

Run:

sudo ~/RetroPie-Setup/retropie_setup.sh

Go to:

  • Manage packages
  • Manage optional packages
  • godot-engine
  • Remove

Update the Godot "emulator" from RetroPie-Setup

Before updating the "emulator", you must update the setup script and the scriptmodule.

Run:

# Update the setup script.
cd ~/RetroPie-Godot-Game-Engine-Emulator/
git pull
# Update the scriptmodule.
./setup-godot-engine-scriptmodule.sh --update

Then, to update the Godot "emulator", run:

sudo ~/RetroPie-Setup/retropie_setup.sh

Go to:

  • Manage packages
  • Manage optional packages
  • godot-engine
  • Update from source

How to install Godot games

When you download a game from https://itch.io, the downloaded .zip usually contains 2 files:

  • The Godot executable.
  • The game data.

The later is, most of the times, a .pck file. That's the one we want!

Those .pck files will most likely be found on the Linux downloads (maybe on the Windows downloads too).

If you can't find a .pck file on neither the Linux nor the Windows downloads, you can try the Mac/OSX downloads. You'll have to:

  • Unzip the .zip file.
  • Go to Contents -> Resources (the .pck file should be in this folder).

To install it, just copy the .pck file to ~/RetroPie/roms/godot-engine.

Scraping games

A scraper for games hosted on https://itch.io is bundled with this script.

Check out its documentation.

You can find it in EmulationStation's RetroPie menu.

EmulationStation RetroPie menu

Using a GPIO/Virtual keyboard

⚠️ When using a GPIO/Virtual keyboard, the actual keyboard won't work anymore. But you can always remove the GPIO/Virtual keyboard (see below).

As of v1.2.0, when using the FRT "emulator", you can use a GPIO/Virtual keyboard, such as GPIOnext or Adafruit's Retrogame.

Add/Remove a GPIO/Virtual keyboard

Run:

sudo ~/RetroPie-Setup/retropie_setup.sh

and then go to:

  • Configuration/tools
  • godot-engine

Select GPIO/Virtual keyboard.

GPIO/Virtual keyboard dialog

You will be prompted with a menu showing all the results from the command cat /proc/bus/input/devices. Select the GPIO/Virtual keyboard that you want.

If you want to to reverse that action, follow the same steps and select None.

ℹ️ Troubleshooting

A game doesn't launch or crashes

Useful information about errors can be found at /dev/shm/runcommand.log.

If the game you are trying to play doesn't work, it will most likely be because it was made with another version of Godot. Try changing the Godot "emulator" version in the runcommand.

If you downloaded the game from https://itch.io, there's a good chance the author stated which version of Godot that game uses.

In case none of the "emulators" work, it could be something related to the video driver.

Video issues

See VIDEO ISSUES.

Audio issues

See AUDIO ISSUES.

🎨 How to create a new Godot system for an EmulationStation theme

As there is no way to create a script to automate this, because themes don't have the same structure, the best way is to manually create a new system in your preferred theme.

  • Download the Godot system.svg.
  • Download the Godot controller.svg.
  • Copy any system folder in your theme (e.g. /etc/emulationstation/themes/[THEME]/nes).
  • Rename it as godot-engine.
  • Move the Godot system.svg and controller.svg to the godot-engine/art folder.

NOTE:

The folder structure in the theme you are using might differ. Take a look at how this particular theme works to create the godot-engine folder accordingly. You might need to delete extra icons that are not needed.

🤖 Pre-made Godot systems

I've created a couple of ready-to-use Godot systems:

  • For the Carbon theme, which is the default EmulationStation theme that comes with RetroPie.
  • For the Pixel theme, my personal favourite theme.

If you want to add a new theme, feel free to open a pull request.

The default EmulationStation theme is installed automaticaly and can't be deleted.

To install a Godot system, copy the theme/[THEME]/godot-engine folder from this repository to /etc/emulationstation/themes/[THEME].

Or you can run:

sudo ~/RetroPie-Setup/retropie_setup.sh

and then go to:

  • Configuration/tools
  • godot-engine

Select Install themes.

Install themes dialog

Select the theme you would like to install.

Select themes dialog

Carbon theme

Godot system for EmulationStation's Carbon theme

Pixel theme

Godot system for EmulationStation's Pixel theme

🗒️ Changelog

See CHANGELOG.

👤 Author

hiulit

🤝 Contributing

Feel free to:

🙌 Supporting this project

If you love this project or find it helpful, please consider supporting it through any size donations to help make it better ❤️ .

Become a patron

Suppor me on Ko-Fi

Buy me a coffee

Donate Paypal

If you can't, consider sharing it with the world...

... or giving it a star ⭐️ .

Thank you very much!

👏 Credits

Thanks to:

📝 Licenses

Comments
  • Sound issues on RPi3 / Adding an override.cfg

    Sound issues on RPi3 / Adding an override.cfg

    Hi, thanks a lot for this great script, exactly what I was searching for :-)

    I did some tests of running godot games from itch.io on a Raspberry Pi 3 with Retropie yesterday. I did not find any game running without issues yet, but found a fix for all sound issues which is described here: https://github.com/godotengine/godot/pull/43928#issuecomment-738163105

    Putting a file named override.cfg into ~/RetroPie/roms/godot-engine with the following content does apply this fix to all games in that folder:

    [audio]
    mix_rate=48000
    output_latency=20
    

    Now I think this file could be put there by default on RPi3 (and probably also RPi2/1/0) boxes. Or be added there by an option in the config script, similar to the "Force GLES2" option.

    This file may also have the possibility to override other settings contained in the .pck files which do cause issues on RPi systems. The parameters are described here: https://docs.godotengine.org/de/stable/classes/class_projectsettings.html

    I could try to come up with a pull request implementing the audio fix for RPI3 if it makes sense. And possibly test on RPi2 and RPI0.

  • Create hotkey button à la Retropie

    Create hotkey button à la Retropie

    In RetroPie, you can select a key/button to act as a hotkey button that, combined with other keys/buttons, can perfome different functions.

    For example: Hotkey + Start = Quit

  • Check for minor version updates to install binaries

    Check for minor version updates to install binaries

    Now, every time we release even a patch, we have to release the same binaries over and over.

    New binaries should only be updated when a new minor update is released.

  • Settings files are not installed correctly when updating the script

    Settings files are not installed correctly when updating the script

    Don't use use RetroPie-Setup/tmp folder as a temporary folder, because it gets messes up when installing/updating/removing the "emulator" via RetroPie-Setup.

    Use our own temporary folder, for example ~/tmp/godot-engine

  • Bumped to v1.3.1

    Bumped to v1.3.1

    Added

    • New Godot binaries compiled for the Raspberry Pi 4 (godot-engine-2.1.6-rpi4).

    Fixed

    • An audio issue affecting the Raspberry Pi 4. All FRT and Godot "emulators" for the Raspberry Pi 4 have been updated with that fix.

    Changed

  • Bumped to v1.3.0

    Bumped to v1.3.0

    Added

    • Support for the Raspberry Pi 4.
    • New Godot binaries compiled specifically for the Raspberry Pi 4 (godot-engine-x.x.x-rpi4).
    • A new option in the scriptmodule's configuration menu to force Godot to use the GLES2 video driver on single-board computers, such as the Raspberry Pi.
    • A compatibility list to check which games work.

    Changed

    • Updated FRT binaries to v0.9.8.
    • Updated Godot versions (3.2.3).
  • Mouse mode is ignored when game is run on emulator

    Mouse mode is ignored when game is run on emulator

    Wrote a quick pong game that uses mouse x and y to operate paddles. Mouse mode should be captured and works on windows. But when run on the Pi3+ with retropie mouse cursor is visible and not centered. So I don't know if retropie is drawing a mouse cursor on top of the game or if it's a video issue. Using GLES2.

    I can send the pck if you need.

  • Control mappings are not correct

    Control mappings are not correct

    Hello, I am using a PiBoy DMG which is running a vanilla RetroPie and Raspberry Pi 4. Everything works great apart from the control. The mapping is not correct. Is there any way I can fix that?

  • Changing splash screen breaks emulator

    Changing splash screen breaks emulator

    Hello, I ported a game with this emulator to retropie and it works great but every time I set a custom splash screen png (from the godot settings menu) it fails to load, I have it saved as a 1920x1080 png with sRGB profile embedded (exported from illustrator) is there a particular setting that works best for it to work?

operator to install cluster manager and klusterlet.

registration-operator Minimum cluster registration and work Community, discussion, contribution, and support Check the CONTRIBUTING Doc for how to con

Dec 14, 2022
gokp aims to install a GitOps Native Kubernetes Platform

gokp gokp aims to install a GitOps Native Kubernetes Platform. This project is a Proof of Concept centered around getting a GitOps aware Kubernetes Pl

Nov 4, 2022
Install hubble-ui on GKE Dataplane V2

GKE Hubble Export This is a grpc server wrapper that re-export the cilium agent's observer service and peer service from the local domain socket. And

Jan 2, 2023
The missing package manager for golang binaries (its homebrew for "go install")

Bingo: The missing package manager for golang binaries (its homebrew for "go install") Do you love the simplicity of being able to download & compile

Oct 31, 2022
Operator Permissions Advisor is a CLI tool that will take a catalog image and statically parse it to determine what permissions an Operator will request of OLM during an install

Operator Permissions Advisor is a CLI tool that will take a catalog image and statically parse it to determine what permissions an Operator will request of OLM during an install. The permissions are aggregated from the following sources:

Apr 22, 2022
Gostall - Run go install ./cmd/server and not have the binary install in your GOBIN be called server?

GOSTALL Ever wanted to run go install ./cmd/server and not have the binary insta

Jan 7, 2022
Stop using install.sh! Start using install.yml! DAJE...

Daje - A general purpose Ansible dotfiles installer Configure one time and run everywhere. What is this I've never liked using a big bash script to in

Nov 14, 2022
Kakoune syntax highlighting for the Godot Engine / Godot Scripting Language gdscript
Kakoune syntax highlighting for the Godot Engine / Godot Scripting Language gdscript

gdscript-kak Kakoune syntax highlighting for the Godot Engine / Godot Scripting Language gdscript. Adds basic syntax highlighting to your .gd files fo

Mar 2, 2021
NES emulator, written in Go
NES emulator, written in Go

Fergulator This is an NES emulator, written in Go. It's fairly new and very much a work in progress, so not all games run yet and not all features are

Dec 21, 2022
A ZX Spectrum Emulator written in Go
A ZX Spectrum Emulator written in Go

GoSpeccy - An evolving ZX Spectrum 48k Emulator GoSpeccy is a free ZX Spectrum (Speccy for friends) emulator written in Go. Quick start Installing and

Nov 28, 2022
A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. 🎛️
A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. 🎛️

??️ go-feature-flag A feature flag solution, with YAML file in the backend (S3, GitHub, HTTP, local file ...). No server to install, just add a file i

Dec 29, 2022
Command not found? Install it right there!
Command not found? Install it right there!

Tii On most GNU/Linux systems, when a command is not found, a message showing what can be run to install the command is printed.

Aug 10, 2022
Chip-8 emulator written in Go
Chip-8 emulator written in Go

Welcome to Chippy ?? Chippy is a CHIP-8 emulator that runs Chip-8 public domain roms. The Chip 8 actually never was a real system, but more like a vir

Dec 3, 2022
GameBoy Color emulator written in golang.
GameBoy Color emulator written in golang.

?? Worldwide 日本語のドキュメントはこちら GameBoyColor emulator written in golang. This emulator can play almost all ROMs work without problems and has many feature

Dec 26, 2022
🕹️ A basic gameboy emulator with terminal "Cloud Gaming" support
🕹️ A basic gameboy emulator with terminal

Gameboy.Live ??️ Gameboy.Live is a Gameboy emulator written in go for learning purposes. You can simply play Gameboy games on your desktop: Or, "Cloud

Jan 1, 2023
Lightweight network boot/install server (DHCP, TFTP, HTTP)

netbootd netbootd is a lightweight network boot server, designed for maximum flexibility and with "batteries included" approach in mind, serving as a

Dec 22, 2022
Mettaur is GBA emulator written in golang.
Mettaur is GBA emulator written in golang.

Mettaur Mettaur is GBA emulator written in golang. Warning: This emulator is WIP, so many ROMs don't work correctly now. Run Please download latest bi

Dec 25, 2022
Kafka implemented in Golang with built-in coordination (No ZooKeeper, single binary install, Cloud Native)

Jocko Distributed commit log service in Go that is wire compatible with Kafka. Created by @travisjeffery, continued by nash. Goals: Protocol compatibl

Aug 9, 2021
Gopher2600 is an Atari 2600/VCS Emulator.
Gopher2600 is an Atari 2600/VCS Emulator.

Gopher2600 Gopher2600 is an emulator for the Atari 2600 written in the Go language. The accuracy of the emulation is very high and the 6507, TIA and R

Dec 8, 2022
A GameBoy emulator written in Go

gogoboy A GameBoy emulator written in Go About this project This project is a proof of concept of building emulators with test driven development. I'v

Aug 20, 2022