Commit Graph

350 Commits

Author SHA1 Message Date
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