• Stars
    star
    399
  • Rank 108,092 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created about 12 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Gameboy Color emulator

gomeboycolor

This project is a work in progress and is no way near complete!

Nintendo Gameboy Color emulator

This is a backend library that provides the core emulator runtime, it is designed to be used in conjuction with a frontend.

Available frontends:

You are welcome to visit the github page for this project by clicking here

FAQ

Backend?

This module will emulate the hardware of the Gameboy Color.

You can write a 'frontend' to receive the screen data and render it to a medium of your choosing, along with handling keyboard inputs, and something to handle saving battery saves.

See the _examples directory for a simple example of how to write a frontend. Alternatively, look at the 'Available frontends' above.

Features?

  • ⚠️ Mostly works. It is not a perfect emulator by any means and some games might not function correctly.
    • βœ… blargg CPU tests pass
    • βœ… blargg memory timing tests pass
  • βœ… Supports battery saves for ROMS that allow you to save state
  • ❌ Audio is NOT implemented right now
  • ⚠️ Does not support RTC clock on MBC3 (although games can still be played)

How do I build it?

This is a 'library' module, no build required.

License

MIT License

Copyright (c) 2013-2018 Daniel James Harper

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

simple-computer

the scott CPU from "But How Do It Know?" by J. Clark Scott
Go
1,871
star
2

gomeboycolor-wasm

WASM port of gomeboycolor
HTML
115
star
3

go-lambda-invoke

Go
84
star
4

stegtool

Steganography tool
Rust
53
star
5

theunwrapper

HTML
42
star
6

steg

Steganography library
Rust
30
star
7

blinkt-tube-status

Python
14
star
8

gomeboycolor-glfw

Gameboy Color Emulator (libglfw frontend)
Go
14
star
9

pngrun

Executable PNGS
Rust
8
star
10

bf

brainfuck compiler in Java
Java
7
star
11

gmail-mailer

Programatically send emails using a given gmail account. No username/passwords needed, just use your OAUTH credentials
Ruby
6
star
12

simpleCPU

Go
6
star
13

kindlemail

Push items to your kindle via the personal document service
Ruby
6
star
14

testproject

Source for "Getting started with ClojureScript and Noir #1"
Clojure
5
star
15

djhworld.github.io

thoughts
HTML
4
star
16

dropwizard-jooq

JOOQ integration for Dropwizard
Java
4
star
17

bigdan-table

daniel's bigtable implementation
Java
3
star
18

count

Count unique entries in line delimited input from stdin
Go
2
star
19

card

Estimates cardinality (count-distinct) of inputs using HyperLogLog++ algorithm
Go
2
star
20

ScalaPythonChallenges

Solutions to the Python Challenges series in Scala
Scala
2
star
21

strex

An extension to the strings library that takes inspiration from Data.List in Haskell (for strings only)
Go
2
star
22

rosetta-warn

Plugin for xbar that displays a warning icon on your OSX status bar when applications are running under Rosetta, and outputs the processes in a menu.
Shell
2
star
23

articlr-backend

Ruby
1
star
24

Daniel

Small utility functions and things for various tasks.
Haskell
1
star
25

XboxLiveStatus

Displays the status of given XBL gamertags
1
star
26

redis-mq

Redis helpers for pub/sub and queue processing in Clojure apps. Great for prototyping stuff quickly
Clojure
1
star
27

ReallyEZTV

Parses data from EZTV RSS feeds into a more friendly format. Most shows in the EZTV RSS feeds have a "Show/Season/Episode" hierarchy, my system just takes that and converts them into a usable data structure. This application sits on top of Sinatra to provide a frontend for that data. Please note this code is very, very messy and could easily be improved but this is my first "project" as such after spending a bit of time getting up to speed with the basics of Ruby
Ruby
1
star