67e2447d3f
chore(ppu): rename window_stat to win_stat
2021-10-20 03:16:37 -03:00
37cf3d92e4
chore(ppu): refactor OAM Scan implementation
2021-10-20 03:14:30 -03:00
293e5762c3
chore: small code-cleanup changes
2021-10-20 02:48:44 -03:00
64230973f1
chore: suggest inline for hot code
2021-09-24 16:16:14 -03:00
142231d355
chore(ppu): remoe unnecessary brackets
2021-09-21 12:13:55 -03:00
227928e8ca
Revert "fix(ppu): explicity choose to use sign extension"
...
This reverts commit 1001b0b124eae6bfe13f9199637dc8ae52c93f47.
2021-09-21 12:09:35 -03:00
1001b0b124
fix(ppu): explicity choose to use sign extension
2021-09-21 09:52:12 -03:00
71ce3f43e0
chore: satisfy clippy
2021-09-20 04:15:05 -03:00
5882678bc5
chore: inline some functions
continuous-integration/drone/push Build was killed
2021-09-20 01:34:41 -03:00
bcd67cb317
chore: begin refactor of public api
2021-09-20 01:34:21 -03:00
6087e3b20b
chore: remove Cycle struct and begin scheduler design
2021-09-12 04:56:34 -03:00
c2f2e2194b
chore(ppu): improve accuracy of pixel fifo
2021-08-14 23:47:16 -05:00
d68257bb29
fix(ppu): improve accuracy of SCX discard
2021-08-14 22:03:01 -05:00
e27d6dc25b
chore(ppu): rename discriminants of fetcher state
2021-08-14 22:02:41 -05:00
8625bec059
feat: clock bus on instruction read-write
...
continuous-integration/drone/push Build is failing
Commit also includes general work towards passing mem-timings.
Note: while cpu_instrs.gb passes, instr_timing.gb and mem_timing.gb both
are stuck in infinite loops (Currently, it seems like a timing issue).
This is a major regression that hopefully shouldn't last for too long.
2021-08-14 00:10:51 -05:00
7112cd15e3
chore(cpu): refactor SM83 implementation
...
continuous-integration/drone/push Build is passing
Instruction::decode no longer requires mutable access to the CPU
2021-07-31 20:29:13 -05:00
9d0e099a97
chore: remove unnecessary derivations from structs
2021-07-28 00:09:07 -05:00
1d8fb8d32a
fix(ppu): delay ppu by one cycle on scx fifo discard
continuous-integration/drone/push Build is passing
2021-07-16 21:01:52 -05:00
fd9a5b51ba
chore(ppu): reimplement background/window/sprite priority
2021-07-15 22:29:51 -05:00
1566d60fd4
fix(ppu): add fifo delay when BG fifo is not empty
2021-07-14 21:11:31 -05:00
192bdffd64
fix(ppu): PPU cycle count increases even if LCDC bit 7 says otherwise
continuous-integration/drone/push Build is passing
2021-07-12 21:32:50 -05:00
9b3a5d49d2
chore: update error messages in expect() calls
2021-07-08 18:50:58 -05:00
fc4a898177
chore: reorganize select parts of codebase
2021-06-27 20:28:29 -05:00
b89515a0c1
fix(ppu): calculating window position is now signed
...
This allows for the window to display properly in Link's Awakening
2021-06-17 18:48:04 -05:00
0b50e4eae9
fix(ppu): implement slightly better SCX discarding
2021-06-17 18:29:22 -05:00
aa0e3399f6
chore(ppu): fix integer overflow
2021-06-17 17:43:04 -05:00
8149352e63
fix(ppu): Discard SCX mod 8 pixels from fifo
...
As of right now, the implementation of this is rudimentary. There are
currently some visual bugs that still need to get worked out
2021-06-12 13:42:57 -05:00
daeb02f7c9
fix(ppu): DMA takes priority over OAM Scan
2021-06-12 13:41:27 -05:00
482d226cd6
fix(ppu): properly implement $8800 addressing mode
2021-06-10 00:37:49 -05:00
17024c439a
chore(ppu): emu now properly handles VRAM and OAM write guards
2021-06-09 22:04:06 -05:00
50efe12aec
chore: change how bus components are clocked
2021-06-09 19:41:10 -05:00
a904503b90
chore: document IO registers
2021-06-09 13:43:46 -05:00
e8e6c41dbe
fix(dma): initial version of dma transfer now works
2021-06-06 23:57:54 -05:00
ef4e54aba6
chore: restrict what should be pub or not
2021-06-06 20:47:11 -05:00
878edd4082
chore: replace pub with pub(crate) when possible
2021-06-06 19:14:28 -05:00
b7b213b6b9
chore(bus): implement read/write blocks when dma is active
2021-06-05 20:53:35 -05:00
811a9f9cc9
feat(dma): implement non-working dma transfer
2021-06-04 13:47:06 -05:00
778e04e645
feat(ppu): account for OBJ ENABLE bit in LCDC
2021-06-03 02:16:03 -05:00
aeaaee8c6c
fix(ppu): fix bugs in code that grabs sprite tiles
...
PPU now supports 8x16 tiles
2021-06-03 02:14:59 -05:00
138aba52c1
fix(ppu): fix integer overflow error in bg fetcher
2021-06-03 00:41:21 -05:00
66c2b51e10
chore(ppu): fix silly spelling mistake
2021-06-03 00:16:25 -05:00
be39c249e1
chore(ppu): reimplement WindowLineCounter behaviour
2021-06-03 00:13:51 -05:00
112454aa59
chore(ppu): reimplement fifo pixel merging logic
2021-06-02 23:32:39 -05:00
cd21c90722
chore(ppu): rename ppu/registers.rs to ppu/types.rs
2021-06-02 23:31:57 -05:00
e89e89df5b
chore(ppu): refactor small part of bg fetcher
2021-05-08 15:52:43 -05:00
fd2b64496c
chore(ppu): refactor reset behaviour in fetchers
...
and other components like window_stat and the window line counter
2021-05-08 15:35:16 -05:00
705194eced
chore(ppu): rename PixelFetcher properties
2021-05-08 15:13:26 -05:00
5917ca203f
chore(ppu): rename pixel fetcher and background fetcher variables
2021-05-08 14:31:20 -05:00
48abc97505
chore(ppu): add bytes() method to Pixels
2021-05-08 14:06:41 -05:00
a67aec55e2
chore(ppu): rename ppu property
2021-05-05 20:25:15 -05:00