Coder Social home page Coder Social logo

pyboycartridge's Introduction

PyBoyCartridge

Abstract

Following the PyBoy project, which covered emulation of the Nintendo Game Boy, this project continues the development from another perspective. Emulation is the process of mimicking an existing system. To achieve a good or perfect emulation, one has to probe the existing system to find details, which might not have been documented. This could be an odd behavior, which has become part of the system, but not from the intention of the original design. This project takes on the aspect of physically interacting with a Game Boy, to advance the development of the emulator. The project will first focus dumping of game cartridges, by connecting it to a microcontroller and sequentially ask for each byte it stores. Afterwards, the process gets turned around to connect a microcontroller to the Game Boy as if it was a cartridge. This will open the possibility of running test code on the Game Boy to pinpoint the undocumented behavior.

Status

All the code could use a bit of streamlining, but it works as described in the report.

The cartridge-dumper seems to be working flawlessly for MBC 1,2 and 3. I haven't made any illustration of how to connect all the wires, but the code should be fairly self-explanatory. If somebody requests it, I'll write up some details on how to get started -- and don't hold back, just create an issue :)

Emulating cartridges still needs work - see the report. The short explanation is, that I couldn't get the code to trigger on the interrupt-pin. But the code is ready-to-go, if somebody gets it to be triggered at the right time. Because of the very slim reaction time, I wrote a few lines of AVR-assembler, but it's fairly straight forward. You possibly could get the same optimization in C, but I didn't want the uncertainty.

License

Creative Commons BY-NC-SA 4.0 http://creativecommons.org/licenses/by-nc-sa/4.0/

pyboycartridge's People

Contributors

baekalfen avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  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.