Overview
At this point fpt has reached the initial goal of playing Tetris. Tetris is one of the simplest ROMs available for the original GameBoy. Accordingly, fpt features which enabled playing the game were prioritized:
- Most LR35902 instructions have been implemented.
- The PPU has basic support for tiles and objects.
- Support for the gameboy buttons was added.
- A builtin debugger for the emulator is provided.
- A GUI using egui can be used to play and debug the game - https://github.com/pineman/fpt/tree/main/fpt-egui.
- The current timer is a randomly generated number.
fpt-1stRelease-tetris_04.mp4
What's Changed
- Initial setup by @pineman and @joajfreitas in #1
- VM loop by @joajfreitas in #11
- Decoder by @joajfreitas in #12
- visibility? by @pineman in #13
- fix add by @pineman in #14
- Finish the loads by @joajfreitas in #15
- ALU instructions by @pineman in #16
- Implement jumps by @joajfreitas in #17
- Implement stack operations by @joajfreitas in #19
- Test INC r16 by @diogotito in #20
- Implement cp instructions by @joajfreitas in #21
- Fix jumps by @joajfreitas in #22
- Abstract
mem
array in a memory::Bus by @diogotito in #24 - Ppu by @joajfreitas in #28
- Game Boy Colo by @diogotito in #29
- A simplistic simulation for PPU "dots" by @joajfreitas and @diogotito in #30
- move to cargo workspace by @pineman in #31
- Lua shenanigans by @diogotito in #33
- Isolated gui by @joajfreitas in #34
- Debug ppu by @pineman in #37
- Rc<RefCell> by @diogotito in #38
- slow mode by @pineman in #39
- scrolling logo!!! by @pineman in #40
- Console + code viewer + fixes by @pineman in #41
- move code listing to array by @pineman in #44
- Trying to fix stack overflow in GitHub CI by @diogotito in #45
- 🗑️Fix the stack overflow caused by a static array of String by @joajfreitas in #46
- Run test roms by @joajfreitas and @diogotito in #47
- Add basic breakpoints and watchpoints by @pineman in #49
- Initialize CPU and hardware registers to post-bootrom values by @diogotito in #50
- Add input buttons by @pineman in #51
- Provide a function fpt::Gameboy that skips the bootrom by @diogotito in #52
- Interrupts by @pineman in #54
- Fix debugger by @joajfreitas in #55
- Implement timer interrupt by @joajfreitas in #59
- Run test roms by @joajfreitas and @pineman in #65
- Fix copyright notices by @joajfreitas in #65
- Fix cpu tests by @joajfreitas in #68
- Fix fake bootrom loading by @pineman in #71
- Fix BIT instructions zero flag behavior by @pineman in #72
- Restructure of memory by @joajfreitas in #73
- Deploy github pages with project docs by @joajfreitas in #74
- 'step' debugger command by @pineman in #79
- fix step on interrupts by @pineman in #80
- Fix: writes to 0x2000 are ignored since it is the MBC by @pineman in #81
- Fix slowness introduced in step PR by @pineman in #82
- Mbc3 by @joajfreitas in #86
- Remove memory/lib.rs by @joajfreitas in #90
- Objs by @joajfreitas in #93
- wasm: load rom button by @pineman in #96
- sprite transparent pixel by @pineman in #97
- pretend MBC1 is MBC3 & quickly implement HALT by @pineman in #98
- Update README.md by @pineman in #99
- Upload v0.1 demo recording to GitHub by @diogotito in #100
- Submit reencoded tetris demo by @joajfreitas in #101
Full Changelog: https://github.com/pineman/fpt/commits/v0.1
Release assets
File | Platform | checksum |
---|---|---|
fpt-x86_64-unknown-linux-gnu | x64 Linux | checksum |