Giter Site home page Giter Site logo

gameboycore's Introduction

GameboyCore

Build Status Build status codecov GitHub release Docs

GameboyCore is a Gameboy/Gameboy Color emulator library written in C++.

A library? Yes. This is a dependency free C++11 library. GameboyCore does not open a window to render frames, it does not collect user input or play audio. GameboyCore emulates the Gameboy system and provides the audio/video output through the GameboyCore API.

This means the emulation logic and GUI logic of an emulator are separate. As long as the target platform has a C++11 compiler that platform can run GameboyCore!

GameboyCore running as:

The above application are somewhat incomplete however they all demonstrate GameboyCore working for the given environment.

Building

The GameboyCore library does not have any dependencies and can be compiled using any C++11 compiler. The tools contained in this repo, however, do have additional dependencies that need to be installed. All dependencies should be findable by CMake.

Fetch source:

git clone https://github.com/nnarain/gameboycore
cd gameboycore
git submodule update --init --recursive

To build the library, simply run cmake.

mkdir build && cd build
cmake ..
cmake --build . --target gameboycore

Building Tests

Install gtest and build with BUILD_TESTS=ON. Optionally you can setup benchmarks by installing google-benchmark.

cmake .. -DBUILD_TESTS=ON
cmake --build . --target check
cmake --build . --target bench

A few test ROMs can be run as well.

cmake --build . --target run_test_roms

Building Tools

Enable building tools by specifying BUILD_TOOLS=ON. If building tools is enabled, all will be built by default. Disable building tools with WITH_<tool name>=OFF.

All tools are compiled with the latest C++ standard.

Debugger:

  • Used for running Gameboy ROMs and inspecting the core
  • Depends on SFML

RomInfo

  • Used for printing the information in the ROM header

gameboycore's People

Contributors

corymonroe avatar nnarain avatar

Watchers

 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.