Rekai Nyangadzayi Musuka
6f76571d6c
chore: update README
2021-11-05 22:40:31 -03:00
Rekai Nyangadzayi Musuka
55da5a29d8
chore: remove more getters
2021-11-01 18:04:22 +09:00
Rekai Nyangadzayi Musuka
548945a4ee
chore: remove imports of tracing macros
2021-10-30 16:41:06 +09:00
Rekai Nyangadzayi Musuka
b9519d9b7a
chore(bus): stub some CGB IO registers
2021-10-30 14:02:05 +09:00
Rekai Nyangadzayi Musuka
01278ca83f
chore: reduce size of public interface
2021-10-30 10:28:20 +09:00
Rekai Nyangadzayi Musuka
080c1e7518
fix(bus): don't panic on non-existent cartridge
2021-10-28 22:19:38 -03:00
Rekai Nyangadzayi Musuka
293e5762c3
chore: small code-cleanup changes
2021-10-20 02:48:44 -03:00
Rekai Nyangadzayi Musuka
ce121864d2
feat: implement cartridge saving
...
Implemented for MBC1, MBC2, MBC3 and MBC5
2021-09-20 04:13:25 -03:00
Rekai Nyangadzayi Musuka
5882678bc5
chore: inline some functions
continuous-integration/drone/push Build was killed
Details
2021-09-20 01:34:41 -03:00
Rekai Nyangadzayi Musuka
bcd67cb317
chore: begin refactor of public api
2021-09-20 01:34:21 -03:00
Rekai Nyangadzayi Musuka
aa22e93049
chore: clean up TODO messages
continuous-integration/drone/push Build is passing
Details
2021-08-15 23:31:27 -05:00
Rekai Nyangadzayi Musuka
16c2dd81fc
fix(bus): remove dead code
2021-08-14 15:02:25 -05:00
Rekai Nyangadzayi Musuka
8625bec059
feat: clock bus on instruction read-write
...
continuous-integration/drone/push Build is failing
Details
Commit also includes general work towards passing mem-timings.
Note: while cpu_instrs.gb passes, instr_timing.gb and mem_timing.gb both
are stuck in infinite loops (Currently, it seems like a timing issue).
This is a major regression that hopefully shouldn't last for too long.
2021-08-14 00:10:51 -05:00
Rekai Nyangadzayi Musuka
a549b9feef
chore(bus): suppress warning
2021-08-02 21:55:07 -05:00
Rekai Nyangadzayi Musuka
7112cd15e3
chore(cpu): refactor SM83 implementation
...
continuous-integration/drone/push Build is passing
Details
Instruction::decode no longer requires mutable access to the CPU
2021-07-31 20:29:13 -05:00
Rekai Nyangadzayi Musuka
2af673d7c5
chore: remove various warnings
continuous-integration/drone/push Build is passing
Details
2021-07-28 16:25:29 -05:00
Rekai Nyangadzayi Musuka
903cfacad3
fix(apu): replace mpsc with spsc ringbuffer
continuous-integration/drone/push Build is passing
Details
2021-07-28 02:01:04 -05:00
Rekai Nyangadzayi Musuka
9d0e099a97
chore: remove unnecessary derivations from structs
2021-07-28 00:09:07 -05:00
Rekai Nyangadzayi Musuka
c7e3cb5b35
fix(apu): abstract Apu read/write using BusIO trait
continuous-integration/drone/push Build is passing
Details
2021-07-25 18:19:27 -05:00
Rekai Nyangadzayi Musuka
e4d77d66ba
fix(apu): abstract wave RAM behind BusIO trait
2021-07-25 18:03:11 -05:00
Rekai Nyangadzayi Musuka
9e36e86c14
fix(apu): increase accuracy of apu
...
continuous-integration/drone/push Build is passing
Details
Due to this, not all instruments work. This is a regression and will be
fixed in a later commit when presumably the implementation of the APU is
a bit more correct
2021-07-25 17:42:09 -05:00
Rekai Nyangadzayi Musuka
6f6c308d84
fix(apu): implement write guards for Ch1 & Ch1 when disabled
2021-07-18 22:10:32 -05:00
Rekai Nyangadzayi Musuka
f429d72882
chore(bus): remove panics in IO bus read/write failures with stderr msgs
2021-07-18 21:52:22 -05:00
Rekai Nyangadzayi Musuka
c1430594cf
chore(apu): change access modifiers of some methods
2021-07-18 20:58:02 -05:00
Rekai Nyangadzayi Musuka
a1eadc0bc4
chore(apu): rename sound/snd to apu
continuous-integration/drone/push Build is passing
Details
2021-07-14 23:45:01 -05:00
Rekai Nyangadzayi Musuka
ea53f97312
chore(snd): refactor APU implementation
2021-07-14 23:34:00 -05:00
Rekai Nyangadzayi Musuka
08bd33b4d4
fix(snd): replace Audio Sync solution with a faster one
continuous-integration/drone/push Build is passing
Details
2021-07-14 22:35:37 -05:00
Rekai Nyangadzayi Musuka
2b5926e533
chore(snd): Make AudioReceiver and AudioSender structs generic
2021-07-14 22:34:57 -05:00
Rekai Nyangadzayi Musuka
44b605970f
chore(snd): rename some structs
2021-07-12 10:03:45 -05:00
Rekai Nyangadzayi Musuka
b13444c885
feat(snd): simplify audio buffer
...
continuous-integration/drone/push Build is passing
Details
The audio buffer now is held by crossbeam. The developers of said
library could write a batter queue than I could anyday
2021-07-11 23:48:16 -05:00
Rekai Nyangadzayi Musuka
3b772c7c49
feat(snd): synchronize audio with rest of system
...
In it's current form I think this is actually rather inefficient. It's
also not very accurate since I throw away a lot of samples for no real
good reason. More improvements to thiss will be coming henceforth
2021-07-11 23:22:17 -05:00
Rekai Nyangadzayi Musuka
91d19a7e66
chore(snd): mask unreadable bits from return values
2021-07-09 21:16:33 -05:00
Rekai Nyangadzayi Musuka
ce630baa5d
feat(snd): implement audio playback using rodio
continuous-integration/drone/push Build is failing
Details
2021-07-09 01:25:52 -05:00
Rekai Nyangadzayi Musuka
0fa818a1a6
chore(snd): reimplement NR52 & implement sampling for ch2
...
Also add rodio as dependency for audio
2021-07-08 22:36:28 -05:00
Rekai Nyangadzayi Musuka
39af03aebf
chore(bus): stub 0xFF4D
2021-07-01 23:09:02 -05:00
Rekai Nyangadzayi Musuka
fc4a898177
chore: reorganize select parts of codebase
2021-06-27 20:28:29 -05:00
Rekai Nyangadzayi Musuka
278953ab78
chore(snd): implement shift amount for channel 3 volume
2021-06-24 01:13:58 -05:00
Rekai Nyangadzayi Musuka
67e2a6ad79
feat(snd): implement ch 1,2,3 and 4 length function
2021-06-24 01:00:07 -05:00
Rekai Nyangadzayi Musuka
0c843b9ca9
feat(snd): implement volume envelope in ch1, 2 and 4
2021-06-23 21:49:25 -05:00
Rekai Nyangadzayi Musuka
d9db3e404f
fix(ppu): stub IO address 0xFF7F
...
Tetris now runs without requiring any local modifications
2021-06-15 01:19:40 -05:00
Rekai Nyangadzayi Musuka
fe8598fd61
feat(snd): implement ch4
2021-06-15 01:11:18 -05:00
Rekai Nyangadzayi Musuka
5b041d4713
chore(bus): rename sound property to snd
2021-06-15 00:30:08 -05:00
Rekai Nyangadzayi Musuka
909972d36e
feat(snd): implement channel 3
2021-06-15 00:29:31 -05:00
Rekai Nyangadzayi Musuka
e45c13f719
feat(sound): implement NR10
2021-06-14 23:51:37 -05:00
Rekai Nyangadzayi Musuka
6a7ff66274
chore(sound): implement channel 2 registers
2021-06-14 23:37:30 -05:00
Rekai Nyangadzayi Musuka
17024c439a
chore(ppu): emu now properly handles VRAM and OAM write guards
2021-06-09 22:04:06 -05:00
Rekai Nyangadzayi Musuka
2b7958f5f3
chore(bus): add a select few read/write guards
2021-06-09 20:48:31 -05:00
Rekai Nyangadzayi Musuka
50efe12aec
chore: change how bus components are clocked
2021-06-09 19:41:10 -05:00
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