diff --git a/README.md b/README.md index 47035548efcf9dd957c6d1d63d3cb9120a0eacdc..3f0b56c647c295c0b43c32be7d5bcb0e2958ae69 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# [Boytacean](https://boytacean.pages.dev) +# [Boytacean](https://boytacean.joao.me) A Game Boy emulator that is written in Rust 🦀. @@ -6,7 +6,7 @@ A Game Boy emulator that is written in Rust 🦀. ## Features -* Supports Game Boy (DMG) emulation +* Game Boy (DMG) emulation * Simple navigable source-code * Web and SDL front-ends * Support for multiple MBCs: MBC1, MBC2, MBC3, and MBC5 @@ -22,10 +22,16 @@ For the Web front-end... * Fullscreen browser mode * Debug mode - VRAM and registers +What's missing... + +* Audio emulation APU +* Game Boy Color (GBC) emulation + ## Deployments | Provider | Stable | URL | | --------- | ------- | ---------------------------------------------------------------- | +| Cloudfare | `True` | [boytacean.joao.me](https://boytacean.joao.me) | | Cloudfare | `True` | [boytacean.pages.dev](https://boytacean.pages.dev) | | Cloudfare | `True` | [prod.boytacean.pages.dev](https://prod.boytacean.pages.dev) | | Cloudfare | `True` | [stable.boytacean.pages.dev](https://stable.boytacean.pages.dev) | diff --git a/src/cpu.rs b/src/cpu.rs index fe7f9c1b1f11fcd5f3aeb3e0de8414a2db810532..629691bb69ad76d7eea9300c6a61b69947a618a2 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -115,7 +115,7 @@ impl Cpu { panic!("Invalid PC area at 0x{:04x}", pc); } - // @todo this is so bad, need to improve this by an order + // @TODO this is so bad, need to improve this by an order // of magnitude, to be able to have better performance if self.halted && (((self.mmu.ie & 0x01 == 0x01) && self.mmu.ppu().int_vblank()) @@ -127,8 +127,9 @@ impl Cpu { } if self.ime { - // @todo aggregate all of this interrupts in the MMU, as there's - // a lot of redundant code involved in here + // @TODO aggregate all of this interrupts in the MMU, as there's + // a lot of redundant code involved in here which complicates the + // readability and maybe performance of this code if (self.mmu.ie & 0x01 == 0x01) && self.mmu.ppu().int_vblank() { debugln!("Going to run V-Blank interrupt handler (0x40)"); @@ -148,7 +149,7 @@ impl Cpu { return 24; } - // @todo aggregate the handling of these interrupts + // @TODO aggregate the handling of these interrupts else if (self.mmu.ie & 0x02 == 0x02) && self.mmu.ppu().int_stat() { debugln!("Going to run LCD STAT interrupt handler (0x48)"); @@ -168,7 +169,7 @@ impl Cpu { return 24; } - // @todo aggregate the handling of these interrupts + // @TODO aggregate the handling of these interrupts else if (self.mmu.ie & 0x04 == 0x04) && self.mmu.timer().int_tima() { debugln!("Going to run Timer interrupt handler (0x50)"); @@ -188,7 +189,7 @@ impl Cpu { return 24; } - // @todo aggregate the handling of these interrupts + // @TODO aggregate the handling of these interrupts else if (self.mmu.ie & 0x10 == 0x10) && self.mmu.pad().int_pad() { debugln!("Going to run JoyPad interrupt handler (0x60)"); diff --git a/src/mmu.rs b/src/mmu.rs index 00edcbce3eaa722512b0df36c2e9b399b94a141e..5d5d1563c28c3d190e4d3909e48c6b69084d793f 100644 --- a/src/mmu.rs +++ b/src/mmu.rs @@ -282,7 +282,7 @@ impl Mmu { match addr & 0x00ff { // 0xFF46 — DMA: OAM DMA source address & start 0x0046 => { - // @todo must increment the cycle count by 160 + // @TODO must increment the cycle count by 160 // and make this a separated dma.rs file debugln!("Going to start DMA transfer to 0x{:x}00", value); let data = self.read_many((value as u16) << 8, 160);