Rekai Nyangadzayi Musuka
a904503b90
chore: document IO registers
2021-06-09 13:43:46 -05:00
Rekai Nyangadzayi Musuka
1449ed3765
fix(joypad): reimplement joypad
2021-06-07 17:23:48 -05:00
Rekai Nyangadzayi Musuka
83994e6adc
chore(gui): add two windows to top menu
2021-06-07 17:05:55 -05:00
Rekai Nyangadzayi Musuka
dd86330e1d
fix(bus): Fix address calculation error in Echo RAM
2021-06-07 00:22:11 -05:00
Rekai Nyangadzayi Musuka
d5e67568dd
chore(bus): temporarily disable VRAM and OAM gates
...
There appears to be severe timing issues in the ppu which result in
regressions with these gates enabled. They are commented out for now,
but will be re-enabled once the timing issues in the PPU are fixed
2021-06-07 00:01:40 -05:00
Rekai Nyangadzayi Musuka
e8e6c41dbe
fix(dma): initial version of dma transfer now works
2021-06-06 23:57:54 -05:00
Rekai Nyangadzayi Musuka
d623800005
fix: apply clippy suggestions
2021-06-06 21:30:08 -05:00
Rekai Nyangadzayi Musuka
c428e934d8
fix(bus): improve guards for illlegal memory IO
2021-06-06 21:18:19 -05:00
Rekai Nyangadzayi Musuka
ef4e54aba6
chore: restrict what should be pub or not
2021-06-06 20:47:11 -05:00
Rekai Nyangadzayi Musuka
878edd4082
chore: replace pub with pub(crate) when possible
2021-06-06 19:14:28 -05:00
Rekai Nyangadzayi Musuka
b7b213b6b9
chore(bus): implement read/write blocks when dma is active
2021-06-05 20:53:35 -05:00
Rekai Nyangadzayi Musuka
2e42513d71
chore(cartrige): rewrite error to be more descriptive
2021-06-04 13:47:49 -05:00
Rekai Nyangadzayi Musuka
811a9f9cc9
feat(dma): implement non-working dma transfer
2021-06-04 13:47:06 -05:00
Rekai Nyangadzayi Musuka
778e04e645
feat(ppu): account for OBJ ENABLE bit in LCDC
2021-06-03 02:16:03 -05:00
Rekai Nyangadzayi Musuka
aeaaee8c6c
fix(ppu): fix bugs in code that grabs sprite tiles
...
PPU now supports 8x16 tiles
2021-06-03 02:14:59 -05:00
Rekai Nyangadzayi Musuka
138aba52c1
fix(ppu): fix integer overflow error in bg fetcher
2021-06-03 00:41:21 -05:00
Rekai Nyangadzayi Musuka
66c2b51e10
chore(ppu): fix silly spelling mistake
2021-06-03 00:16:25 -05:00
Rekai Nyangadzayi Musuka
be39c249e1
chore(ppu): reimplement WindowLineCounter behaviour
2021-06-03 00:13:51 -05:00
Rekai Nyangadzayi Musuka
112454aa59
chore(ppu): reimplement fifo pixel merging logic
2021-06-02 23:32:39 -05:00
Rekai Nyangadzayi Musuka
cd21c90722
chore(ppu): rename ppu/registers.rs to ppu/types.rs
2021-06-02 23:31:57 -05:00
Rekai Nyangadzayi Musuka
c60bf704ff
chore(cpu): Ensure Cycles is the size of an u32
2021-06-02 23:09:45 -05:00
Rekai Nyangadzayi Musuka
50ba300d23
chore(gui): ensure all windows are disabled by default
2021-06-02 23:06:20 -05:00
Rekai Nyangadzayi Musuka
86f3a897f1
feat(egui): add timer window
2021-06-02 02:44:32 -05:00
Rekai Nyangadzayi Musuka
b1bf6c5868
feat: integrate eui and pixels-rs for debug info
2021-06-02 01:50:35 -05:00
Rekai Nyangadzayi Musuka
96cf705966
chore: update dependencies
2021-05-31 23:24:20 -05:00
Rekai Nyangadzayi Musuka
9ea26d4a05
chore: improve performance of match statements
2021-05-19 02:52:32 -05:00
Rekai Nyangadzayi Musuka
e89e89df5b
chore(ppu): refactor small part of bg fetcher
2021-05-08 15:52:43 -05:00
Rekai Nyangadzayi Musuka
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
Rekai Nyangadzayi Musuka
705194eced
chore(ppu): rename PixelFetcher properties
2021-05-08 15:13:26 -05:00
Rekai Nyangadzayi Musuka
5917ca203f
chore(ppu): rename pixel fetcher and background fetcher variables
2021-05-08 14:31:20 -05:00
Rekai Nyangadzayi Musuka
48abc97505
chore(ppu): add bytes() method to Pixels
2021-05-08 14:06:41 -05:00
Rekai Nyangadzayi Musuka
f7b2aa60a6
chore: update dependencies
2021-05-07 23:16:08 -05:00
Rekai Nyangadzayi Musuka
a67aec55e2
chore(ppu): rename ppu property
2021-05-05 20:25:15 -05:00
Rekai Nyangadzayi Musuka
f6cf5393b6
chore(ppu): fix logic error in shifter
2021-05-05 20:24:09 -05:00
Rekai Nyangadzayi Musuka
6575eb5531
chore(bus): ensure no read-only bits are overwritten by the cpu
2021-05-05 19:23:01 -05:00
Rekai Nyangadzayi Musuka
f4e0a024eb
chore: update .gitignore
2021-05-05 18:37:11 -05:00
Rekai Nyangadzayi Musuka
af3edde2ab
chore(ppu): rearrange/reimplement some behaviour
2021-05-05 17:47:06 -05:00
Rekai Nyangadzayi Musuka
abdff1251e
fix: properly implement LY==LYC behaviour
2021-05-05 08:29:39 -05:00
Rekai Nyangadzayi Musuka
b36f4441fa
chore(ppu): change signature of get_obj_low_addr
2021-05-05 00:14:14 -05:00
Rekai Nyangadzayi Musuka
2cf85b0add
fix(ppu): fix off by one error when grabbing sprite address
2021-05-05 00:01:19 -05:00
Rekai Nyangadzayi Musuka
b57df3d2a7
chore(ppu): rename Pixel to Pixels
...
Since the Pixel struct represents 8 pixels in a 2BPP format, I felt like
the name of the type needed to represent this
2021-05-04 22:55:34 -05:00
Rekai Nyangadzayi Musuka
6b0bba48f9
chore(build): remove verbose flags from cargo
2021-05-04 22:17:15 -05:00
Rekai Nyangadzayi Musuka
5bdf5d4084
chore(build): add dependency to CI build config
2021-05-04 22:15:58 -05:00
Rekai Nyangadzayi Musuka
2a7377c724
chore(ppu): reimplement offset calculation for obj fetcher
2021-05-04 22:11:03 -05:00
Rekai Nyangadzayi Musuka
6f919acafb
chore(bus): remove 0xFF7F matches from read and write_byte
2021-05-04 21:38:37 -05:00
Rekai Nyangadzayi Musuka
834b1bd9fd
chore(cpu): remove branching code in instructions
...
also, rename a couple of methods
2021-05-04 00:50:22 -05:00
Rekai Nyangadzayi Musuka
5a59c31b72
fix(joypad): fix bug where gameboy overwrites read only bits
2021-05-03 23:37:30 -05:00
Rekai Nyangadzayi Musuka
4abb2833c4
chore: implement gamepad controls
2021-05-03 23:11:39 -05:00
Rekai Nyangadzayi Musuka
1e19854ab0
feat: reimplement joypad status register
2021-05-03 03:27:23 -05:00
Rekai Nyangadzayi Musuka
66414075da
fix(ppu): fix bug when loading sprite pixels into FIFO
2021-05-01 16:22:44 -05:00