GithubHelp home page GithubHelp logo

allkern / geebly Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 2.0 2.51 MB

A Gameboy/Color Emulator and API written in C++

License: GNU Lesser General Public License v3.0

C++ 58.95% PowerShell 0.31% Makefile 0.28% C 38.35% GLSL 2.10%

geebly's Introduction

Geebly

A Game Boy/Color Emulator and Emulation API written in C++


Geebly running Dangan GBGeebly running the Gejmbåj demoGeebly running Super Mario Bros. DeluxeGeebly running Donkey Kong Country

Usage

Linux

geebly <settings> <file>

Windows

./geebly <settings> <file> or geebly <settings> <file>

Settings

There are different settings for every part of the emulation engine, Boot ROM/BIOS related settings are prefixed with a B, general emulation settings are prefixed with a E, etc. Common settings' shorthands usually are just one letter long though.

Here's all the settings currently present in the CLI:

Setting Shorthand Description Default
--master-volume -v Set the master volume (float or int)
  • 0.0 = Silence
  • 1.0 = Max
  • > 1.0 = Clipping
1.0
--mono -m Disable stereo sound No
--debug -d Launch with debugger Disabled
--boot -b Specify a boot ROM "dmg_boot.bin"
--scale -s Set the display scale 1
--no-patch-bios-checks/--patch-bios-checks -checks/-no-checks Patch Boot ROM checks No patches
--skip-bootrom -no-boot Skip the Boot ROM Don't skip
--vram-access-emulation/--no-vram-access-emulation vram-access/-no-vram-access Enable/Disable VRAM/OAM mode 2 & 3 inaccessibility emulation Enabled
--cgb-mode -cgb Change model to Game Boy Color Disabled
--enable-joyp-irq-delay/--disable-joyp-irq-delay -joyp-irq-delay/-no-joyp-irq-delay Enable/disable JOYP IRQ delay Enabled
--gui -g Launch GUI Enabled
--ntsc-codec -ntsc Enable NTSC codec Disabled
--sgb-mode -sgb Change model to Super Game Boy Disabled
--no-logs -n Disable logging Disabled
--blend-frames -i Enable frame blending/interpolation Enabled

Tests

Geebly passes 77 tests on Daid's shootout

Building

I've improved both Windows and Linux build systems a lot, and tested them in various systems. I made sure to cover all possible scenarios.

Linux

Building in Linux hosts with apt is really simple:

git clone https://github.com/Lycoder/Geebly
cd Geebly
make environment
make

make environment will set up the build environment, this includes cloning the various repositories the emulator depends on, these are ocornut/imgui, skaslev/gl3w, Lycoder/lgw and Lycoder/sdl_shader. It also installs sdl2-dev and sdl2-ttf-dev

Windows

Building in Windows hosts is a little bit more involved, and usually requires actions after the build is completed, its also really simple nonetheless.

Keep in mind the scripts provided require Powershell and script execution enabled (See this)

git clone https://github.com/Lycoder/Geebly
cd Geebly
./prepare-build
./build-win

Assuming you have a C++20-compatible compiler, it should build no problems. It might complain about -m64, in that case, your compiler doesn't support 64-bit builds, just remove the flag.

The emulator should compile fine, but you might run into some problems after its built.

Troubleshooting

Common issues:

  • The UI system requires the font Ubuntu Mono to be in the current directory to work, just download the font here, then copy the file UbuntuMono-Regular.ttf to Geebly's folder and rename it to "ubuntu-mono.ttf"
  • The program might not start, in that case, you're probably lacking DLLs inside the folder you're running the emulator from, just copy SDL2.dll and SDL2_ttf.dll to your folder. Keep in mind the prepare-build script already copies those two DLLs to the root Geebly folder, if its still complaining, you might be lacking some compiler DLLs, such as: libstdc++-7.dll, and similar.

Please open an issue or just PM me on Discord (Lycoder#8480) if you find any more issues

geebly's People

Contributors

allkern avatar lushobarlett avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

geebly's Issues

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.