Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
348 commits
Select commit Hold shift + click to select a range
a2bc2c7
Make the clippy happy
diogotito Oct 9, 2023
98b5467
Implement 16-bit INCs
diogotito Oct 9, 2023
1821426
Add testing function for INC r8 instructions
diogotito Oct 9, 2023
ed305ea
Test INC r8 more thoroughly
diogotito Oct 9, 2023
f1f0184
Test INC r16
diogotito Oct 10, 2023
ad6d1ed
pretend I'm decoding Z80 opcodes
diogotito Oct 10, 2023
e38387c
Enough with the bit patterns!
diogotito Oct 10, 2023
1797d5a
Cut INC r16 tests from 120 to 24
diogotito Oct 10, 2023
fcc6148
Merge pull request #20 from pineman/inc-r8
diogotito Oct 10, 2023
bdcde36
Titofy some tests
joajfreitas Oct 10, 2023
67787c0
Implement cp instructions
joajfreitas Oct 10, 2023
6886a5c
not implemented
pineman Oct 13, 2023
ba3dd2b
BIT instructions
pineman Oct 13, 2023
c4da0a1
Start fixing jumps, pc was not well set
joajfreitas Oct 12, 2023
ef50132
Remove dbg
joajfreitas Oct 13, 2023
5abba91
Implement display for Instruction
joajfreitas Oct 13, 2023
f3efc2b
General fixes :)
joajfreitas Oct 13, 2023
22924ad
I fuck the jumps and then I leave
joajfreitas Oct 13, 2023
1f10a4e
RES instructions
pineman Oct 13, 2023
8a7cc42
SET instructions
pineman Oct 14, 2023
843ef6c
SCF, CCF, CPL
pineman Oct 14, 2023
12ffcb6
AND, OR
pineman Oct 14, 2023
46c4ebb
Fixed the jumps
joajfreitas Oct 14, 2023
c43d8e5
fix HL+, HL-
pineman Oct 14, 2023
6fe1d16
adc, hl_ind
pineman Oct 14, 2023
2c17fd5
adc immediate
pineman Oct 14, 2023
216ec32
I make the ppu
joajfreitas Oct 14, 2023
2ab77e2
Write most DECs (except the indirect one)
diogotito Oct 14, 2023
26df871
Do the indirect INC and DEC
diogotito Oct 14, 2023
b14c990
add gameboy manual
pineman Oct 14, 2023
e85cc5d
SIM JA ARRANJEI OS TESTES
diogotito Oct 14, 2023
35612cc
I lied
diogotito Oct 14, 2023
f3b3a88
toma pinheiro cala-te
diogotito Oct 14, 2023
372e0d0
Implement ret
joajfreitas Oct 14, 2023
5e34e52
I make the SUB
pineman Oct 14, 2023
7582356
Remove dbg
joajfreitas Oct 14, 2023
a737c92
test addi16
pineman Oct 14, 2023
aba7936
SBC
pineman Oct 14, 2023
4e12b4b
Only compare WRAM in eq()
diogotito Oct 14, 2023
5cf3d16
RLCA RRCA RLA RRA
pineman Oct 14, 2023
148cdc3
RLC
pineman Oct 15, 2023
787e9fe
rotates done, need DRY
pineman Oct 15, 2023
8eae6cc
Add The Ultimate Game Boy Talk to README.md
diogotito Oct 15, 2023
0f02ac9
New module to model Game Boy's Memory Map
diogotito Oct 15, 2023
ca582f6
Add titles to link references
joajfreitas Oct 15, 2023
f355050
now my rotates are DRY
pineman Oct 15, 2023
c827f7c
shifts done
pineman Oct 15, 2023
9f25761
swaps
pineman Oct 15, 2023
ff85d6c
missing loads
pineman Oct 15, 2023
214f105
Update memory.rs
diogotito Oct 15, 2023
07606d8
Turn memory::map::INTERRUPT_SWITCH into a single address
diogotito Oct 15, 2023
1453bfb
Add const VRAM to memory::map
diogotito Oct 15, 2023
d9cdeed
💅 code janitor scrubbing the floor
pineman Oct 15, 2023
319a054
I fix the jumps & janitor RET 💅
pineman Oct 15, 2023
c61950a
extra dbg
pineman Oct 15, 2023
6ee995b
Barebones debugger
joajfreitas Oct 15, 2023
318ff0b
Breakpoints for debugger
joajfreitas Oct 15, 2023
ce0f64a
switch to dmg
pineman Oct 15, 2023
6591750
Debugging bootrom
joajfreitas Oct 15, 2023
7324aaf
dissassembly of dmg bootroms
joajfreitas Oct 15, 2023
6d02cc9
Abstract `mem` array into a memory::Bus
diogotito Oct 15, 2023
8a126a9
Running the full bootrom
joajfreitas Oct 15, 2023
6abebd6
Implement RST
joajfreitas Oct 15, 2023
9f13bb1
Update README.md
diogotito Oct 15, 2023
9cc009a
Make the markdown linter happy
diogotito Oct 15, 2023
35021ce
fuck fors
diogotito Oct 15, 2023
04983f0
Improve debugger
joajfreitas Oct 15, 2023
4766f2b
Improve debugger
joajfreitas Oct 15, 2023
40df9ba
add two more sub test cases
pineman Oct 15, 2023
d460c02
Add test ROMs and debuggers to README.md
diogotito Oct 16, 2023
794fbea
Add methods to bus to handle bootrom and rom
joajfreitas Oct 16, 2023
f6a7266
💅 Fix the tests
joajfreitas Oct 16, 2023
d4ac74f
Connect ppu to memory bus
joajfreitas Oct 16, 2023
5bde096
Add gameboy struct for ppu cpu and memory
joajfreitas Oct 16, 2023
fb071bb
INSTALL PIXELS
diogotito Oct 17, 2023
b2b95cb
👾 pixels ftw 👾
diogotito Oct 17, 2023
87a71b3
Forward debug and load rom to from gameboy to cpu
joajfreitas Oct 18, 2023
989a5fb
add getter for the cpu in the gameboy
joajfreitas Oct 18, 2023
8356913
Allow bus to be actually shared between ppu and cpu
joajfreitas Oct 18, 2023
f02591f
I fix the RSTs
pineman Oct 23, 2023
b4f8c6d
basic RETI todo: master IE
pineman Oct 23, 2023
0384a9f
code janitor 💅
pineman Oct 23, 2023
08daca8
code janitor missed a spot 💅
pineman Oct 23, 2023
4c40f75
Merge pull request #29 from pineman/gui-pixels
pineman Oct 23, 2023
d7fac8d
Merge pull request #28 from pineman/ppu
pineman Oct 23, 2023
e0fa5d4
extract scale
pineman Oct 23, 2023
33ad473
remove warning
pineman Oct 23, 2023
47c8856
XGH
joajfreitas Oct 23, 2023
045b28a
add roms dir to gitignore
pineman Oct 23, 2023
8708d59
XGH
joajfreitas Oct 23, 2023
7520bed
no more XGH
pineman Oct 23, 2023
0cf6fb1
i remove the println
pineman Oct 23, 2023
910f516
better dmg.asm
pineman Oct 28, 2023
7b1676f
Appease the clippy
Oct 28, 2023
ded6ed2
Start simulating PPU "dots"
diogotito Oct 25, 2023
f1608a9
Random stuff with Tito
joajfreitas Oct 25, 2023
7d89f7b
Habemos window
diogotito Oct 25, 2023
198af3e
Cool viz with ppu
joajfreitas Oct 25, 2023
e36122c
Now the ppu is surely done
joajfreitas Oct 26, 2023
b067aaa
Better pixel transfer logic
joajfreitas Oct 26, 2023
96a0248
Fixed some ppu bugs
Oct 28, 2023
2d71b03
comment
pineman Oct 28, 2023
1e654b4
Unify debug and main commands
Oct 28, 2023
bc298ca
remove gui
Oct 28, 2023
3302c7f
Fix clippy warnings
Oct 28, 2023
353d087
I fmt
pineman Oct 28, 2023
32d5cf3
remove debug flag from cpu
pineman Oct 29, 2023
51b41b2
code janitor 💅
pineman Oct 29, 2023
8b26c5b
appease clippy
pineman Oct 29, 2023
6c6a66e
move to cargo workspace
pineman Oct 29, 2023
a0dc692
move main.rs to fpt-cli package
pineman Oct 29, 2023
8e58229
fix ci
pineman Oct 29, 2023
cd6221a
remove helpful comment
pineman Oct 29, 2023
b92c023
Merge pull request #31 from pineman/workspace
pineman Oct 29, 2023
485ad3e
Fix debugger panic on non existing function
joajfreitas Oct 29, 2023
b242dcd
Test one tile to VRAM
Oct 30, 2023
149dfae
Appease the fmt
Oct 30, 2023
9483130
Rename pixels to bytes in Tile struct
diogotito Oct 30, 2023
f8cdb0b
Add "screenshot" command to debugger
diogotito Nov 1, 2023
5c1ff9c
Ignore screenshot files (PGM and PPM)
diogotito Nov 1, 2023
8010fc1
Open all standard Lua libraries
diogotito Nov 1, 2023
6ddaf33
What's a default method doing outside an impl Default? 💅
diogotito Nov 4, 2023
7060b38
what
diogotito Nov 4, 2023
3940271
Transition between states in PPU one dot earlier
diogotito Nov 4, 2023
db89bed
Refactor tile.rs tests a little
diogotito Nov 5, 2023
494ebf8
I don't like the name TileMap
diogotito Nov 5, 2023
9712e3f
I don't like the name TileMap
diogotito Nov 5, 2023
2563b92
Extract PGM screenshot code to new "debugger::utilities" module
diogotito Nov 5, 2023
a8b71ca
Test that shows a frame being rendered, scanline by scanline
diogotito Nov 7, 2023
30732cb
Advance 1 scanline instead of 1 dot
diogotito Nov 7, 2023
c924367
Isolated gui
Oct 31, 2023
f68855d
kinda working
joajfreitas Oct 31, 2023
ac6f74b
Remove zmq socket from ppu
joajfreitas Nov 7, 2023
1b3e65f
Fix clippy warnings
joajfreitas Nov 8, 2023
e13a215
Unbreak break with built-in ALIASES
diogotito Nov 2, 2023
45eb235
scary _G metatable __index contraption 👻
diogotito Nov 2, 2023
b7797f3
Use zmq gameboy with debugger
joajfreitas Nov 8, 2023
6ea6728
janitor 💅
pineman Nov 11, 2023
63c92a9
RUSTFLAGS causes recompilation of all deps
pineman Nov 11, 2023
d015e14
:facepalm:
pineman Nov 12, 2023
9a0079b
tmp
pineman Nov 11, 2023
8216710
grid macro
diogotito Nov 12, 2023
9191275
oops
diogotito Nov 12, 2023
64c5f12
remove unused imports
diogotito Nov 12, 2023
2df484d
test
pineman Nov 12, 2023
b46ace8
test
pineman Nov 12, 2023
cda37ef
Merge branch 'wasm-tito'
pineman Nov 12, 2023
3f0e442
readme for egui
pineman Nov 12, 2023
e272ad2
i dont get it
pineman Nov 12, 2023
c8d7f80
Stop wasting CPU time
diogotito Nov 12, 2023
703c92c
smush CI
pineman Nov 12, 2023
c15ebad
remove experiment; good enough for now
pineman Nov 12, 2023
370f337
comment
pineman Nov 12, 2023
c76a772
que inovação incrível
pineman Nov 12, 2023
679ab20
tweak
pineman Nov 12, 2023
af727ef
Ah, yeah! This is happenin'!
diogotito Nov 13, 2023
15dee18
I can make menu items
diogotito Nov 13, 2023
1baa3bb
ESPERA
pineman Nov 20, 2023
ed97cba
I comment
pineman Nov 20, 2023
2673e2e
switch to wgpu
pineman Nov 21, 2023
13c8f4d
revert to glow & cleanup
pineman Nov 26, 2023
5895475
update to egui 0.24.0
pineman Nov 26, 2023
b043f82
allow running one cycle instead of whole inst
pineman Nov 26, 2023
8af1486
test
pineman Nov 27, 2023
38fe5f2
swiftly add gameboy to the egui loop
pineman Nov 27, 2023
e9ac255
fix rom loading
pineman Dec 2, 2023
fcd6b6a
remove timing
pineman Jan 6, 2024
3df6d8f
fix ci
pineman Jan 6, 2024
9a426d3
Copy registers from pandocs
pineman Jan 6, 2024
6803759
actually fix ci
pineman Jan 8, 2024
e50c208
Update dependencies across all Cargo.toml
diogotito Mar 4, 2024
373a1dc
misc good stuff
pineman Mar 10, 2024
42507bd
remove sha
pineman Mar 11, 2024
3f0b643
debug tile viewer: Draw a single tile
pineman Mar 16, 2024
4a95fdb
draw all tiles
pineman Mar 16, 2024
619b755
Draw the map as well
pineman Mar 17, 2024
0130a47
remove extra stuff
pineman Mar 17, 2024
f9c0d26
fmt
pineman Mar 17, 2024
e7fc30b
rearrange
pineman Mar 17, 2024
06aff8d
one big texture for tiles
pineman Mar 17, 2024
e888cfe
tile viewer: Draw borders
pineman Mar 17, 2024
594b818
bg map viewer with viewport
pineman Mar 17, 2024
db5f042
cargo fmt
pineman Mar 17, 2024
4a878ab
clippy
pineman Mar 17, 2024
bd62923
check lcdc.6
pineman Mar 17, 2024
00945ac
use bitwise
pineman Mar 17, 2024
3d3aca4
clippy pls stop
pineman Mar 17, 2024
cf444d9
pre commit hook: cargo fmt and clippy
pineman Mar 17, 2024
4f4b3fb
Merge pull request #37 from pineman/debug-ppu
pineman Mar 17, 2024
8a82173
tv and bmv texture scale
pineman Mar 18, 2024
85cc72b
expose struct Debugger from fpt-cli
diogotito Mar 18, 2024
f814260
Put Arc<Mutext<Gameboy>> in both GUI and Debugger
diogotito Mar 19, 2024
66f8460
Change Arc<Mutex<Gameboy>> to Rc<RefCell<Gameboy>>, as mandated by Cl…
diogotito Mar 19, 2024
acc9a9e
remove step; needs rethinking
pineman Mar 22, 2024
3deb9f4
slow mode
pineman Mar 23, 2024
4350f7f
unneeded borrow_muts
pineman Mar 25, 2024
f9caab8
move stuff
pineman Mar 25, 2024
c5f97c1
Merge pull request #39 from pineman/slow-mode
pineman Mar 25, 2024
dc9105c
I remembered how to work with references to arrays!
diogotito Mar 25, 2024
fdbdf17
Nicer todo!()s
diogotito Mar 25, 2024
d9f57c5
Add IME internal flag to LR35902 and implement DI and EI
diogotito Mar 25, 2024
3b67d3e
Rename frame() to advance_frame()
diogotito Mar 25, 2024
995c271
Touch up BG and Window tile addressing logic
diogotito Mar 25, 2024
1a29b88
oops, I golfed
diogotito Mar 27, 2024
8a7d9cd
ungolf get_tile a little
diogotito Mar 27, 2024
a7c2232
I prefer it like this
diogotito Mar 27, 2024
58384dc
💅 Turn comments in memory::map into doc-comments
diogotito Mar 27, 2024
9905d61
stuff
pineman Mar 29, 2024
a303fb4
scrolling logo!!!!
pineman Apr 1, 2024
6afffba
fix comments
pineman Apr 1, 2024
845ebc6
Merge pull request #40 from pineman/scrolling-logo
pineman Apr 2, 2024
bedc4cf
EI takes one instruction to run
pineman Apr 27, 2024
d37dddd
a lot of changes
pineman May 5, 2024
c9b8312
rudimentary disasm
pineman May 5, 2024
de246cd
Instruction cannot be formatted by the default formatter
joajfreitas May 5, 2024
e427d21
Fix cargo check warnings
joajfreitas May 5, 2024
8764781
Run cargo fmt
joajfreitas May 5, 2024
662daa4
?
joajfreitas May 5, 2024
4cbbc61
wip
pineman May 5, 2024
2cac7e4
make space for debug console
pineman May 5, 2024
9865fb8
slow factor radio
pineman May 5, 2024
622bc4c
console prototype
pineman May 6, 2024
909bc2e
solve clippy
pineman May 6, 2024
6a7fc78
console progress
pineman May 12, 2024
38846fc
fix grids
pineman May 12, 2024
5d2fdf6
Update toolchain file
joajfreitas May 18, 2024
72dbabe
code view!
pineman May 19, 2024
3b1cade
remove todo
pineman May 19, 2024
0c85268
remove dbg
pineman May 19, 2024
7f79f30
unload bootrom properly
pineman May 20, 2024
cbc5495
misc
pineman May 20, 2024
056e04c
pandocs calls this the BANK register
pineman May 20, 2024
f6133cc
king of todos
pineman May 21, 2024
87deb87
tuples are convenient!
pineman May 22, 2024
cb5a3c4
move register write triggers to set_mem8
pineman May 22, 2024
d814c2b
nits
pineman May 22, 2024
6a69599
deconstruct
pineman May 22, 2024
572bd94
Merge pull request #41 from pineman/graphical-debugger
pineman May 22, 2024
d915a0c
properly fail pre-commit hook
pineman May 23, 2024
cff3968
Avoid copying VRAM to Vec<u8>
diogotito May 23, 2024
a511d0d
code listing array
pineman May 23, 2024
375132a
better names
pineman May 23, 2024
4867ca1
fill
pineman May 25, 2024
69e68ba
Merge pull request #44 from pineman/code-listing
pineman May 25, 2024
d760649
more useful slow factor
pineman May 23, 2024
2fbc399
update rgbds link
pineman May 26, 2024
17ac707
nitpicking
pineman May 26, 2024
829b795
fix stupid copy paste by... me
pineman May 26, 2024
13cf570
WIP
diogotito May 27, 2024
bbfc903
My first unsafe!
diogotito Jun 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: main

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings


jobs:
CI:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Version
run: rustc --version
- name: Run rustfmt
run: cargo fmt --check
- name: Unit tests
run: cargo test -- --nocapture
- name : Clippy
run: cargo clippy --all-features
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
/target
.idea
.vscode/
.zed
roms
TODO.md
.fpt_debug_history
*.pgm
*.ppm
screenshots/
.DS_Store
2 changes: 2 additions & 0 deletions .rustfmt.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
unstable_features = true
group_imports = "StdExternalCrate"
1 change: 0 additions & 1 deletion .tool-versions

This file was deleted.

Loading