Rekai Nyangadzayi Musuka
c90b9ab024
fix(ppu): fix sprite buffer bug
...
Now, the background renders like it should and some sprites do load,
though they aren't where they're supposed to be
2021-04-20 04:26:28 -05:00
Rekai Nyangadzayi Musuka
4f4c867a63
fix(ppu): ensure better timings for sprite fetcher
2021-04-20 03:14:00 -05:00
Rekai Nyangadzayi Musuka
db1b40fe2d
fix(ppu): clear oam on hblank
2021-04-20 03:13:40 -05:00
Rekai Nyangadzayi Musuka
0361d04248
feat(ppu): implement broken ppu fifo renderer
2021-04-20 01:27:32 -05:00
Rekai Nyangadzayi Musuka
38460577b9
chore(ppu): move bg fetcher code into fetcher functions
2021-04-18 02:43:34 -05:00
Rekai Nyangadzayi Musuka
2acdaaeec2
chore(ppu): rename types and improve code quality
2021-04-18 01:45:09 -05:00
Rekai Nyangadzayi Musuka
b43c8ac7c9
feat(cartridge): grab title from the ROM
2021-04-14 01:21:45 -05:00
Rekai Nyangadzayi Musuka
cbd085c25b
chore: use Default::default instead of Type::Default
2021-04-13 23:02:13 -05:00
Rekai Nyangadzayi Musuka
e9f129dbee
fix(ppu): move frame/pixel buffer from the stack to the heap
2021-04-13 22:55:11 -05:00
Rekai Nyangadzayi Musuka
12a51b115a
feat(ppu): reimplement ppu as fifo pixel renderer
2021-04-11 02:07:25 -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
2733bbe6d7
feat(ppu): implement window rendering
2021-04-08 17:10:24 -05:00
Rekai Nyangadzayi Musuka
e2fa72aa0e
chore: remove unecessary eprintln! statements
2021-04-08 00:02:54 -05:00
Rekai Nyangadzayi Musuka
0538522aa2
chore: update readme
2021-04-08 00:02:37 -05:00
Rekai Nyangadzayi Musuka
cf3b79f0dc
chore(cpu): move RST behaviour to a method
2021-04-07 23:05:22 -05:00
Rekai Nyangadzayi Musuka
0eb40a8109
feat: comply with the fourth individual blargg test rom
2021-04-07 22:37:33 -05:00
Rekai Nyangadzayi Musuka
067ed03de3
feat: comply with test 03 of blargg's cpu_instrs test rom
2021-04-07 20:12:05 -05:00
Rekai Nyangadzayi Musuka
6db132ad48
feat(cartridge): handle MBC-less games like tetris
...
TODO: This will panic whenever a write is attempted on the MBC-less
cartridge. This would be fine if games held the implicit rules given by
the hardware, however this is not the case. We will have to modify the
NoMBC implementation to ignore writes to the cartrige (while still
documenting them just in case of bugs)
2021-04-05 01:43:26 -05:00
Rekai Nyangadzayi Musuka
823e4b1e0a
chore: follow rust style guides
2021-04-05 01:40:26 -05:00
Rekai Nyangadzayi Musuka
9b77d6c6c3
fix(cpu): ensure that timer, lcd and sound runs regardless of HALT
2021-04-05 01:20:18 -05:00
Rekai Nyangadzayi Musuka
9d2fbd2427
chore: remove unecessary print statements
2021-04-05 01:20:03 -05:00
Rekai Nyangadzayi Musuka
748c32c446
fix(cpu): use enums only of maintaining IME register state
2021-04-05 01:10:03 -05:00
Rekai Nyangadzayi Musuka
77c7c610d0
chore(cpu): rename ImeSet to ImeEnabled
2021-04-05 00:53:46 -05:00
Rekai Nyangadzayi Musuka
a15a6a25b6
feat(cpu): properly implement EI instruction
2021-04-05 00:52:12 -05:00
Rekai Nyangadzayi Musuka
4ace092257
chore: update cargo.lock
2021-04-05 00:50:53 -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
7c9bff61f6
fix(ppu): add missing check for enabled interrupt
2021-04-04 01:50:49 -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
cb1bcdb859
feat(cpu): implement DAA instruction
2021-04-04 01:03:44 -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
2bf877d1ec
fix(cpu): Ensure mask the high bits of the flag register
...
There was a bug where POP AF returned 0x1301. In this example, the A
register would be set to 0x13, and the Flag register woud be set to
0x01, which is an invalid state considering only bits 4 -> 7 of the flag
register are used. This commit masks the flag register with & 0xF0
whenever it is read or written to so that we can ensure that only the
high bits can ever be potentially set
2021-03-26 20:25:30 -05:00
Rekai Nyangadzayi Musuka
15781b3d5a
fix(instructions): correct the flags being set in ADD HL, r16
2021-03-26 20:19:48 -05:00
Rekai Nyangadzayi Musuka
a6d5553035
fix(cartridge): reimplement apply_rom_size_bitmask
2021-03-26 20:18:49 -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
e5fb07c4d1
chore: refactor parts of instruction.rs
2021-03-23 20:22:11 -05:00
Rekai Nyangadzayi Musuka
501d93c37b
chore: clean up code in one instruction
2021-03-23 18:21:59 -05:00
Rekai Nyangadzayi Musuka
1b7d778c1d
chore: clean up some instruction code
2021-03-23 02:11:40 -05:00
Rekai Nyangadzayi Musuka
6f11640f24
chore: replace CALL instruction with RST in interrupt handler
2021-03-23 02:11:06 -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
9301a36682
chore: remove all unwraps from the project
2021-03-22 21:48:12 -05:00