Giter Club home page Giter Club logo

gambatte-speedrun's Introduction

Gambatte-Speedrun

Fork of Gambatte (authored by sinamas), with local changes for Pokémon Speedruns, as well as other speedrunning communities. Under GPLv2.

Below is a brief list of the major differences between Gambatte-Speedrun and the upstream version of Gambatte.


Emulation core

  • Original Game Boy games playable in Game Boy Color mode (emulated properly)
  • Super Game Boy emulation (to match the SGB2 platform/framerate)
  • Cycle-based RTC option (for "proper" RTC behavior when using speedups/pauses/savestates)
  • Other various emulation fixes, improvements, and configuration options

Speedrun features

  • Timing parity with official consoles (bootroms required; GBP/SGB2 hard reset fades emulated)
  • Emulator version and ROM info displayed in the title bar, and in on-screen display after hard resets
  • Disabling of undesired functionality for speedruns (e.g. cheats, turbo, framerate changes, etc.)

Software updates

  • Updated to build using Qt5 (instead of Qt4)
  • Buildable as a shared library, for programmatic use of the emulation core

Building from source

Distributable binaries can be built on Windows using MSYS2 and the qt5-static package, or on macOS using Homebrew and the qt package with its macdeployqt tool. See INSTALL.md for detailed information on how to set up the build environment.

The amount of setup you need to do depends on what parts of the project you are planning to use.

Shared Library

If you only wish to build Gambatte-Speedrun's libgambatte shared library (for use in scripting, "botting", TASing, or other programming projects), and have the basic build environment set up, you can run the following from the project's root directory, regardless of platform:

$ sh scripts/build_shlib.sh

Gambatte-Speedrun (i.e. the full-blown emulator)

After completing all the Qt-specific build steps in INSTALL.md, running the following in the project's root directory should build the "PSR" version of Gambatte-Speedrun:

$ sh scripts/build_qt.sh

To instead build the "non-PSR" version, with additional selectable platforms (GB, GBC, GBA, SGB2), create gambatte_qt/src/platforms.pri with the following (before running build_qt.sh):

# platform support
# GBP is hardcoded
DEFINES += SHOW_PLATFORM_GB
DEFINES += SHOW_PLATFORM_GBC
DEFINES += SHOW_PLATFORM_GBA
DEFINES += SHOW_PLATFORM_SGB

Testrunner

To be able to run the upstream hwtests suite on Gambatte-Speedrun, you must acquire the DMG and CGB bootroms. Name the DMG bootrom bios.gb, the CGB bootrom bios.gbc, and move both into the test directory.

Run the following in a terminal from the project's root directory to assemble and run all hwtests:

$ (cd test && sh scripts/assemble_tests.sh)
$ sh scripts/test.sh

Note that the first line (with assemble_tests.sh) only needs to be run one time, or until the contents of the hwtests directory change.

gambatte-speedrun's People

Contributors

sinamas avatar dabomstew avatar gifvex avatar entrpntr avatar casualpokeplayer avatar bentley avatar jangler avatar tikevin83 avatar sarasmiseth avatar stringflow 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.