Commit Graph

414 Commits

Author SHA1 Message Date
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 1e27875dc3 fix(cpu): fix timing issue involving when the bus is clocked 2021-07-14 21:15:52 -05:00
Rekai Nyangadzayi Musuka 1566d60fd4 fix(ppu): add fifo delay when BG fifo is not empty 2021-07-14 21:11:31 -05:00
Rekai Nyangadzayi Musuka ab99e24f64 chore: modify commented out debug statement 2021-07-14 21:10:44 -05:00
Rekai Nyangadzayi Musuka 192bdffd64 fix(ppu): PPU cycle count increases even if LCDC bit 7 says otherwise
continuous-integration/drone/push Build is passing Details
2021-07-12 21:32:50 -05:00
Rekai Nyangadzayi Musuka afdfcfce2c chore: add _debug_log function to cpu.rs 2021-07-12 21:08:38 -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 3754325e30 chore(cartridge): silence warning 2021-07-11 23:47:05 -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 45dc27301c chore: enable/disable gamepad input at compile time 2021-07-11 15:45:37 -05:00
Rekai Nyangadzayi Musuka db421c58f8 chore(snd): Don't repeat yourself
continuous-integration/drone/push Build is passing Details
2021-07-11 13:15:55 -05:00
Rekai Nyangadzayi Musuka ce6a83425f feat(snd): implement channel 3 2021-07-11 00:16:25 -05:00
Rekai Nyangadzayi Musuka d145ae44f3 feat(snd): implement channel 4 2021-07-10 22:36:48 -05:00
Rekai Nyangadzayi Musuka 3dbf026d33 fix(snd): increase accuracy of when to sample from APU 2021-07-10 22:35:54 -05:00
Rekai Nyangadzayi Musuka 7ab6e120f9 feat(snd): implement ch1 & envelopes for ch1 and ch2 2021-07-10 18:56:54 -05:00
Rekai Nyangadzayi Musuka 3c28dd7a6b fix(snd): clock channel 2 every T-cycle 2021-07-10 14:00:22 -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 40ca0abb72 feat: implement keyboard controls 2021-07-09 19:19:52 -05:00
Rekai Nyangadzayi Musuka 468f7c0f83 chore: update dependencies 2021-07-09 18:53:14 -05:00
Rekai Nyangadzayi Musuka 548f3867d4 chore(main): remove windows-specific code 2021-07-09 17:25:38 -05:00
Rekai Nyangadzayi Musuka 367eb60238 chore: update CI config
continuous-integration/drone/push Build is failing Details
2021-07-09 01:30:40 -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 9b3a5d49d2 chore: update error messages in expect() calls 2021-07-08 18:50:58 -05:00
Rekai Nyangadzayi Musuka 4f3fc3136d chore: print cartridge info in stderr
continuous-integration/drone/push Build is passing Details
2021-07-05 01:10:10 -05:00
Rekai Nyangadzayi Musuka 48e81ff426 fix(cartridge): fix bug preventing MBC1 from working
continuous-integration/drone/push Build is passing Details
2021-07-05 00:43:02 -05:00
Rekai Nyangadzayi Musuka 18b790a777 chore(cartridge): update MBC1 (still broken)
continuous-integration/drone/push Build is passing Details
2021-07-05 00:14:56 -05:00
Rekai Nyangadzayi Musuka 39af03aebf chore(bus): stub 0xFF4D 2021-07-01 23:09:02 -05:00
Rekai Nyangadzayi Musuka 559cb54385 chore(snd): add enabled property to all channels
Also, rename lsfr property to shift_register
2021-07-01 22:27:42 -05:00
Rekai Nyangadzayi Musuka 9b6c302890 chore: update build badge
continuous-integration/drone/push Build is passing Details
2021-06-29 23:22:25 -05:00
Rekai Nyangadzayi Musuka a0ecac0915 chore: remove debug feature listing from cargo.toml 2021-06-27 20:52:40 -05:00
Rekai Nyangadzayi Musuka fd7f0655ef chore: satisfy clippy 2021-06-27 20:31:59 -05:00
Rekai Nyangadzayi Musuka fc4a898177 chore: reorganize select parts of codebase 2021-06-27 20:28:29 -05:00
Rekai Nyangadzayi Musuka c5aafab3ef feat(snd): implement trigger event behaviour for lfsr 2021-06-24 01:28:00 -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 b8b3563bca chore(snd): tighten use of access modifiers 2021-06-24 00:40:10 -05:00
Rekai Nyangadzayi Musuka 249d96b443 chore(snd): update select bitfield names 2021-06-24 00:00:28 -05:00
Rekai Nyangadzayi Musuka d2e37da2b0 feat(snd): implement sweep behaviour 2021-06-23 23:51:30 -05:00
Rekai Nyangadzayi Musuka 29237f0a2c chore(timer): clean up if let statement 2021-06-23 21:49:46 -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 1bc5de7cff chore(cartridge): incremental improvements to MBC1 2021-06-23 17:12:54 -05:00
Rekai Nyangadzayi Musuka dbcab4b5ec chore: update dependencies 2021-06-22 19:42:34 -05:00
Rekai Nyangadzayi Musuka b89515a0c1 fix(ppu): calculating window position is now signed
This allows for the window to display properly in Link's Awakening
2021-06-17 18:48:04 -05:00
Rekai Nyangadzayi Musuka 0b50e4eae9 fix(ppu): implement slightly better SCX discarding 2021-06-17 18:29:22 -05:00
Rekai Nyangadzayi Musuka aa0e3399f6 chore(ppu): fix integer overflow 2021-06-17 17:43:04 -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