Giter VIP home page Giter VIP logo

gbcc's Introduction

GBCC is a cross-platform Game Boy and Game Boy Color emulator written in C, with a focus on accuracy. See the website or the manpage for details.

Table of Contents

Install

Prebuilt packages

Packages for Windows and Ubuntu 20.04 are generated on each commit. To download them, navigate to the actions tab (you'll need to be logged in to GitHub to do this). Select the latest "Build Packages" job that succeeded, and look for the artifacts dropdown.

Note that the GTK3 GUI is disabled on the prebuilt Windows packages, as the necessary .DLLs and icon themes increase the size dramatically, to about 25MiB (compared to about 2MiB for the SDL2 version). If you want the GTK3 version on Windows, either download a proper release (whenever I make one), or build it yourself (I've made it dead easy, honest!).

Linux

Install the necessary dependencies, e.g. for Ubuntu:

sudo apt-get install libsdl2-dev libpng-dev libepoxy-dev libopenal-dev

# Optional dependencies
sudo apt-get install clang  # Preferred compiler
sudo apt-get install meson  # Preferred build system
sudo apt-get install libgtk-3-dev  # For the GTK3 GUI
sudo apt-get install scdoc  # For the manpage

To build with meson:

# With clang:
CC=clang LDSHARED="clang -shared" meson build && ninja -C build

# Or without clang:
meson build && ninja -C build

Or to build without:

clang -o gbcc -O3 -flto src/*.c src/sdl/*.c \
        -lepoxy -lpng -lSDL2 -lpthread -lopenal

clang -o gbcc-gtk -O3 -flto src/*.c src/gtk/*.c \
        -lepoxy -lpng -lSDL2 -lpthread -lopenal \
        $(pkg-config --cflags --libs gtk+-3.0)

Building with clang is highly recommended, as it currently produces a binary about twice as fast as gcc.

Arch

GBCC is available on the AUR:

# With clang:
export CC=clang LDSHARED="clang -shared"
yay -S gbcc-git

# Or without clang:
yay -S gbcc-git

As above, building with clang is highly recommended.

macOS

GBCC is available as a head-only brew formula. You can build & install it with

brew install --HEAD philj56/gbcc/gbcc

Note that the GTK3 GUI is disabled by default, as OpenGL under GTK on macOS has pretty appalling performance at the time of writing. It can be enabled by passing --with-gtk+3 to the above command.

Windows

Support for building on windows is provided by MSYS2. Download and install MSYS2. The first time you run it after install, you'll probably have to update, so in a MinGW64 prompt run:

pacman -Syu

This will do some stuff, then prompt you to restart MSYS2 and update again.

After you've updated, building GBCC is easy:

git clone https://github.com/philj56/gbcc.git
cd gbcc/windows
./msys2.sh --install-deps

# After the first build, --install-deps is not required.

This will place the SDL2 build & necessary .DLLs in a folder called dist, which you can then copy wherever you like. As with macOS, the GTK3 GUI is disabled by default, although not for performance reasons (see Prebuilt packages). It can be enabled by passing --with-gtk to the msys2.sh script mentioned above.

Android

You can get GBCC on Google Play, or from the project repo.

gbcc's People

Contributors

philj56 avatar georgehb avatar francois-berder avatar jsoligny avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.