Update README.md

This commit is contained in:
Turingon 2024-08-13 20:59:16 +00:00
parent d95d27d5c9
commit bccf7f813b

View file

@ -1,13 +1,35 @@
# QBoy
QBoy is pronounced as "cube-y"
A Game Boy emulator written in C, C++ and Qt for Linux, Windows and Android
![An image of the original Game Boy from 1989](https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Game-Boy-FL.jpg/220px-Game-Boy-FL.jpg)
## Introduction
QBoy is a Game Boy emulator written in C and a GUI implemented with C++ and Qt. I am largely following a [blog](https://www.inspiredpython.com/course/game-boy-emulator/let-s-write-a-game-boy-emulator-in-python) which implemented the emulator in Python.
QBoy is a Game Boy emulator written in C (the C-library would implement the processor emulation) and a GUI implemented with C++ and Qt for graphics and timing. I am largely following a [blog](https://www.inspiredpython.com/course/game-boy-emulator/let-s-write-a-game-boy-emulator-in-python) which implemented the emulator in Python.
I already implemented a Intel-8080 emulator. The original 1989 Game Boy used an 8-bit Z80 (LR35902) CPU, which supports the Intel-8080 instructions and more but with even more power running at 4.19 MHz! Thus the intuition should be transferable, however the GB will be much more complex than the previous project.
Here the motivation for why someone should write a GB emulator:
![Tim Jacobs: Why YOU Shoud Write A Gameboy Emulator](https://youtu.be/ElwhYW5wjts)
## Goals
- [] Successfully emulate The Legend of Zelda Link's Awakening
- [ ] Successfully emulate The Legend of Zelda Link's Awakening (not all machine instructions need to be implemented)
- [ ] Create a Citra/Yuzu-style GUI which can locate the game files in a directory and allows for button mapping
- [ ] Create an installable package for PC
- [ ] Create a Hugo website for it hosted on GitLab
- [ ] Look into GBC emulation
- [ ] Look into GBA emulation
### Implementation tasks
- [ ] Read the basics and assembling the necessary literature and sources
- [ ] Write a disassembler (very similar to the Intel-8080 emulator)
- [ ] Implement an interactive debugger (similar to the Intel-8080 emulator)
- [ ] Implementing a Qt API and basic UI for both PCs and Android
- [ ] GB Graphics (Vertical Blanking, Blitting, Scrolling and Sprites; this was hard with the i8080)
- [ ] Version 1 Milestone: LoZ: LA works + GUI works + Hugo website running
- [ ] Code optimizations from the guide