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
Rekai Nyangadzayi Musuka
45466a5733
feat: implement clap for cli and improve error messages
2021-03-22 21:41:22 -05:00
Rekai Nyangadzayi Musuka
d7d9fd857f
fix: squash bugs in cpu intrucion implementation
2021-03-21 21:16:23 -05:00
Rekai Nyangadzayi Musuka
8a1540c9e9
fix: replaced unnecessary &mut self with &self
2021-03-21 19:56:38 -05:00
Rekai Nyangadzayi Musuka
dc45688e4f
feat: implement timers
2021-03-21 03:03:03 -05:00
Rekai Nyangadzayi Musuka
4db6f1de6e
chore: move LR35902_CLOCK_SPEED to lib.rs
2021-03-21 02:10:56 -05:00
Rekai Nyangadzayi Musuka
b548610fdb
chore: re-enable scrolling
2021-03-21 02:08:29 -05:00
Rekai Nyangadzayi Musuka
fe586d77ac
feat: stub 0xFF05
2021-03-21 02:01:19 -05:00
Rekai Nyangadzayi Musuka
15da6cb7d2
fix: squash several bugs in MBC1 implementation
2021-03-21 01:52:29 -05:00
Rekai Nyangadzayi Musuka
5a42d76f1e
feat: implement LCDSTAT interrupt
2021-03-21 00:01:21 -05:00
Rekai Nyangadzayi Musuka
c64417fdce
fix: horizontally flip ppu so the Nin***** logo is readable
2021-03-20 23:24:06 -05:00
Rekai Nyangadzayi Musuka
7462061937
chore: be more specific with integer types
2021-03-20 22:19:55 -05:00
Rekai Nyangadzayi Musuka
f78651d8d7
feat: implement programmable background palette
2021-03-20 22:19:13 -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
fc303b6265
chore: rename "as u8" to "as Self" when implementing From Trait
2021-03-20 21:10:48 -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
0f4dec8a38
feat: implement cpu timing for emulator
...
When running the GB Boot ROM, a garbled Nin***** logo will appear
2021-03-20 19:56:26 -05:00
Rekai Nyangadzayi Musuka
d76b3b6101
chore: make Cycles::new a const fn
2021-03-20 19:55:39 -05:00
Rekai Nyangadzayi Musuka
2401cf7190
chore: implement default for cycles
2021-03-20 19:55:02 -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
fb38ef3f68
feat: emu slowly draws scanline to pixelbuffer
2021-03-18 21:06:57 -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
06821bf880
fix: improve types of heap allocated arrays
2021-03-16 22:51:41 -05:00
Rekai Nyangadzayi Musuka
528b88eeb7
feat: implement Obj Palette 0 and 1
2021-03-16 02:36:09 -05:00
Rekai Nyangadzayi Musuka
8af434da07
fix: have the PPU use the CPU-writable Display Mode enum
2021-03-16 02:35:01 -05:00
Rekai Nyangadzayi Musuka
8c25e6f976
chore: fix spelling mistake
2021-03-16 02:31:07 -05:00
Rekai Nyangadzayi Musuka
19f642eafe
chore: make clippy happy
2021-03-16 01:05:13 -05:00
Rekai Nyangadzayi Musuka
bfde24cc8d
fix: reimplement some ppu structs as bitfield macros
2021-03-16 00:27:27 -05:00
Rekai Nyangadzayi Musuka
ef4cc8c3b6
chore: standardize the error message of a subet of unreachable! calls
2021-03-15 23:53:55 -05:00
Rekai Nyangadzayi Musuka
3b5d94adfc
fix: reimplement flags register to be a bitfield
2021-03-15 23:35:20 -05:00
Rekai Nyangadzayi Musuka
f57cf2b312
fix: switch to bitfield macros in serial.rs
2021-03-15 22:52:26 -05:00
Rekai Nyangadzayi Musuka
d0410c4dfd
fix: modify access parameters in timer.rs
2021-03-15 22:51:12 -05:00
Rekai Nyangadzayi Musuka
f17bb032cc
fix: implement bitfield macros in timer.rs
2021-03-15 22:41:41 -05:00
Rekai Nyangadzayi Musuka
1a8506c04f
chore: improve code quality
2021-03-15 22:36:27 -05:00