diff --git a/TODO.md b/TODO.md index a277ee9..e8f5983 100644 --- a/TODO.md +++ b/TODO.md @@ -1,10 +1,17 @@ +- [ ] Why are some sprites flipped around? - [x] Figure out why sprites aren't drawing - wasn't writing to OAM DMA correctly -- [ ] try out code coverage +- [x] try out code coverage https://github.com/xd009642/tarpaulin https://medium.com/@gnanaganesh/robust-rust-how-code-coverage-powers-rust-software-quality-417ef3ac2360 https://blog.balthazar-rouberol.com/measuring-the-coverage-of-a-rust-program-in-github-actions -- [ ] Why are some sprites flipped around? +- [ ] integrate code coverage into CI +- [ ] migrate to bitfields (from bitflags) + - https://docs.rs/bilge/latest/bilge/ + - https://gitlab.com/SmartAcoustics/sparrow/-/blob/master/sparrow-bitpacker/src/bitfields.rs + - https://github.com/wrenger/bitfield-struct-rs + - https://github.com/gregorygaines/bitfields-rs + - [ ] Try an external debugger and setting breakpts - [ ] Debugger view - show both pattern tables beside the UI diff --git a/src/apu/README.md b/src/apu/README.md index 067e506..c2df875 100644 --- a/src/apu/README.md +++ b/src/apu/README.md @@ -1,5 +1,20 @@ # APU - Audio Processing Unit +Another great APU ref: +https://www.slack.net/~ant/nes-emu/apu_ref.txt + +Read about relevant synthesis: +https://www.slack.net/~ant/bl-synth/ + +Deep divin +https://forums.nesdev.org/viewtopic.php?t=8602 + +Other people asking about APU: +- https://github.com/amhndu/SimpleNES/issues/24 +- https://www.reddit.com/r/rust/comments/16kx8i2/how_to_implement_apu_for_my_nes_emulator/ +- https://www.reddit.com/r/EmuDev/comments/16kx80n/how_to_implement_apu/ +- https://github.com/OneLoneCoder/olcNES/blob/master/Part%20%237%20-%20Mappers%20%26%20Basic%20Sounds/olcNes_Sounds1.cpp + Rust libs: - synthesis, has osc for common wavs.. will it work well to generate one for each register? diff --git a/src/apu/mod.rs b/src/apu/mod.rs index 96a0315..a01d12c 100644 --- a/src/apu/mod.rs +++ b/src/apu/mod.rs @@ -41,7 +41,7 @@ impl Apu { pub fn tick_cpu_cycles(&mut self, cycles: usize) { for _ in 0..cycles { self.cpu_cycles += 1; - // or just cpu_cycles %2 + // or just `cpu_cycles %2` self.is_between_apu_cycle = !self.is_between_apu_cycle } }