Commit Graph

126 Commits

Author SHA1 Message Date
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 811a9f9cc9 feat(dma): implement non-working dma transfer 2021-06-04 13:47:06 -05:00
Rekai Nyangadzayi Musuka 86f3a897f1 feat(egui): add timer window 2021-06-02 02:44:32 -05:00
Rekai Nyangadzayi Musuka 9ea26d4a05 chore: improve performance of match statements 2021-05-19 02:52:32 -05:00
Rekai Nyangadzayi Musuka abdff1251e fix: properly implement LY==LYC behaviour 2021-05-05 08:29:39 -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 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 9003617459 chore: rename properties in bus.rs 2021-04-27 04:06:08 -05:00
Rekai Nyangadzayi Musuka b43c8ac7c9 feat(cartridge): grab title from the ROM 2021-04-14 01:21:45 -05:00
Rekai Nyangadzayi Musuka 5931fe95e3 feat(ppu): implement (broken) sprite renderer 2021-04-09 00:35:41 -05:00
Rekai Nyangadzayi Musuka 7425384fb1 chore: convert select base 10 constants to base 16 2021-04-08 20:32:32 -05:00
Rekai Nyangadzayi Musuka 770b081f98 feat(ppu): stub sprite attribute table 2021-04-08 20:28:30 -05:00
Rekai Nyangadzayi Musuka 23de87e482 chore: remove panics when gameboy performs certain actions 2021-04-08 19:23:29 -05:00
Rekai Nyangadzayi Musuka 41081e9cce feat(bus): implement echo RAM 2021-04-08 17:58:33 -05:00
Rekai Nyangadzayi Musuka e2fa72aa0e chore: remove unecessary eprintln! statements 2021-04-08 00:02:54 -05:00
Rekai Nyangadzayi Musuka 62bd88945f chore: rename a couple of interrupt instances to "int" instead of
"interrupt"
2021-04-04 01:52:53 -05:00
Rekai Nyangadzayi Musuka 777abd1c10 chore: rename some symbols 2021-04-04 01:31:31 -05:00
Rekai Nyangadzayi Musuka 4dd7a0d9ce chore: fix several clippy warnings 2021-04-04 01:19:39 -05:00
Rekai Nyangadzayi Musuka 25e44f3e49 chore: fix condition when logs are printed 2021-03-27 15:07:17 -05:00
Rekai Nyangadzayi Musuka 2b05571c49 chore: rename Cycles newtype to Cycle 2021-03-27 12:10:18 -05:00
Rekai Nyangadzayi Musuka bce14348f8 feat: enable halt and rework timer registers 2021-03-27 11:56:47 -05:00
Rekai Nyangadzayi Musuka a82e3d3372 feat: implement HALT behaviour
note: while the logic is there, the instruction currently does not do
anything because we don't halde it in Cpu::step(). The code that does is
currently commented out and there should be some underlying bugs still
present. Nevertheless it is a good start
2021-03-23 23:05:27 -05:00
Rekai Nyangadzayi Musuka c16f318fd1 fix: remove unnecessary allocation when loading boot rom 2021-03-23 21:21:18 -05:00
Rekai Nyangadzayi Musuka 48ac8317a8 fix(bus): fix off by one error when reading from boot rom 2021-03-23 21:01:33 -05:00
Rekai Nyangadzayi Musuka 342e6616ac chore: improve unreachable! and panic! error messages 2021-03-22 22:33:56 -05:00
Rekai Nyangadzayi Musuka 2813b762dd chore: replace select unreachable! macros with todo! and unreachable! 2021-03-22 21:52:28 -05:00
Rekai Nyangadzayi Musuka 45466a5733 feat: implement clap for cli and improve error messages 2021-03-22 21:41:22 -05:00
Rekai Nyangadzayi Musuka dc45688e4f feat: implement timers 2021-03-21 03:03:03 -05:00
Rekai Nyangadzayi Musuka fe586d77ac feat: stub 0xFF05 2021-03-21 02:01:19 -05:00
Rekai Nyangadzayi Musuka 5a42d76f1e feat: implement LCDSTAT interrupt 2021-03-21 00:01:21 -05:00
Rekai Nyangadzayi Musuka b213a6e545 feat: make 0xFF0F aware of joypad struct interrupt bool 2021-03-20 21:21:55 -05:00
Rekai Nyangadzayi Musuka 36e572b783 feat: implement Joypad register 2021-03-20 21:11:45 -05:00
Rekai Nyangadzayi Musuka cd0eac9d37 chore: improve code quality
Removed a lot of magic constants. Gave them descriptive variable names
2021-03-20 20:26:49 -05:00
Rekai Nyangadzayi Musuka f365633c1e fix: allow for the ppu to modify interrupt flags 2021-03-20 19:53:56 -05:00
Rekai Nyangadzayi Musuka 558f9e7c72 feat: implement cpu interrupts 2021-03-18 21:07:19 -05:00
Rekai Nyangadzayi Musuka 4663e8c960 chore: unifty read_byte and write_byte across hardware 2021-03-17 00:29:36 -05:00
Rekai Nyangadzayi Musuka adeb6ca8a9 feat: implement window x, window y and ly compare registers 2021-03-16 22:52:43 -05:00
Rekai Nyangadzayi Musuka 528b88eeb7 feat: implement Obj Palette 0 and 1 2021-03-16 02:36:09 -05:00
Rekai Nyangadzayi Musuka 19f642eafe chore: make clippy happy 2021-03-16 01:05:13 -05:00
Rekai Nyangadzayi Musuka 3d82465b04 chore: clean up code 2021-03-15 22:08:47 -05:00
Rekai Nyangadzayi Musuka 8989d3f1d7 fix: convert sound.rs structs to bitfields 2021-03-15 21:16:11 -05:00
Rekai Nyangadzayi Musuka d30ce4dbb2 chore: improve code quailty 2021-03-15 19:19:40 -05:00
Rekai Nyangadzayi Musuka b053260c8b feat: don't embed gb boot rom in emulator 2021-01-27 22:07:31 -06:00
Rekai Nyangadzayi Musuka b5d3a2c675 feat: implement MBC1 2021-01-20 01:39:24 -06:00
Rekai Nyangadzayi Musuka b70c398e14 feat: implement registers 0xFF01 and 0xFF02 2021-01-19 01:40:07 -06:00
Rekai Nyangadzayi Musuka 68c9557c43 chore: improve code quality 2021-01-19 01:36:44 -06:00
Rekai Nyangadzayi Musuka 1da01a318d feat: emulator now sucessfully runs boot rom 2021-01-19 00:30:32 -06:00
Rekai Nyangadzayi Musuka 9b4c95ce4c feat: reimplement cycles newtype 2021-01-18 22:54:38 -06:00
Rekai Nyangadzayi Musuka 2fc7ac3833 feat: add pixels-rs and winit as dependencies 2021-01-18 20:47:09 -06:00
Rekai Nyangadzayi Musuka 9203b61533 fix: implement 0xff41 and fix CALL instruciton 2021-01-18 02:22:45 -06:00
Rekai Nyangadzayi Musuka c0b8b8bda2 feat: implement more registers 2021-01-17 21:13:59 -06:00
Rekai Nyangadzayi Musuka 70de3b9142 feat: stub 0xff40 and 0xff47 2021-01-17 19:25:53 -06:00
Rekai Nyangadzayi Musuka 92218a227d feat: implement 0xff24 sound register 2021-01-17 18:58:57 -06:00
Rekai Nyangadzayi Musuka 251f4e8d6d feat: implement several sound i/o registers 2021-01-17 17:33:12 -06:00
Rekai Nyangadzayi Musuka 834423fe18 feat: stub sound register 0xff26 2021-01-03 02:05:46 -06:00
Rekai Nyangadzayi Musuka 1b53363095 feat: stub 0xff0f and 0xffff from interrupt 2021-01-03 01:38:31 -06:00
Rekai Nyangadzayi Musuka e693ad8a3c feat: create timer struct and stub 0xff07 2021-01-03 01:21:19 -06:00
Rekai Nyangadzayi Musuka 911f0f9c86 feat: stub work ram 2021-01-03 00:28:07 -06:00
Rekai Nyangadzayi Musuka 8048495cbc chore: move ppu vram from stack to heap 2021-01-02 23:58:49 -06:00
Rekai Nyangadzayi Musuka fb0772c671 chore: remove duplicate code 2021-01-02 22:49:25 -06:00
Rekai Nyangadzayi Musuka fe74f80ddf chore: format code 2020-12-24 00:34:48 -06:00
Rekai Nyangadzayi Musuka 26df683cff chore: move vram buffer to PPU struct 2020-12-24 00:27:06 -06:00
Rekai Nyangadzayi Musuka 677a584ba7 chore: stub vram, start work on ppu, fix set_register bug 2020-12-23 21:24:58 -06:00
Rekai Nyangadzayi Musuka 2a234f4d14 feat: implement ability to boot straigt to cartridge 2020-12-23 19:39:37 -06:00
Rekai Nyangadzayi Musuka 1502cc3ec2 chore: add debug information to bus.rs 2020-12-23 03:43:49 -06:00
Rekai Nyangadzayi Musuka 4d2e0e33f2 feat: implement fetch, decode, execute loop 2020-12-23 03:25:16 -06:00
Rekai Nyangadzayi Musuka 213c5e5cb3 Implement more instructions 2020-09-04 00:41:19 -05:00
Rekai Nyangadzayi Musuka e0235094bb Implement basic layout of Gameboy Emulator 2020-08-29 18:38:27 -05:00
Rekai Nyangadzayi Musuka 0401bb7e49 Restart Project 2020-08-25 12:10:38 -05:00
Rekai Musuka f97bf9dbb7 Stub Bus, and CPU, implement some opcode decoding. 2020-08-06 01:05:16 -05:00
Rekai Musuka b274d61f56 Restart Project 2020-08-05 21:54:30 -05:00
Rekai Musuka a3cd9166ab Implement Register methods, and stub ADD opcodes 2020-08-05 03:23:50 -05:00
Rekai Musuka 8b475cb4cf Restart GB Emulator 2020-08-04 17:58:48 -05:00