Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Pokemon Pinball #154

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

Fix Pokemon Pinball #154

wants to merge 10 commits into from

Conversation

alloncm
Copy link
Owner

@alloncm alloncm commented Jan 15, 2025

  • Pokemon Pinball no longer crash on boot
    • Fix the stat register not updating the PPU mode when disabled
    • Add support for 0x1E cart mode (MBC5)
    • Fix MBC5 to ignore out of bounds cart ram (sram) writes and reads
  • Improve the debugger
    • Update docs and help command
    • Add bank specifier to the watch commands
    • Add watch values and r/w modes to the watch command
    • Improve some commands text output

- break addresses are now "address:bank"
- Better output messages
- watch prints the value
- Add comment for the menu mutex
- Fix cart memory size
- Add support for 0x1E cart type (MBC5)
- Fix MBC5 out of range ram access, now ignore / return 0xFF instead of crashing
- Fix PPU mode when the PPU is disabled (was the last mode, now its HBLANK)
Turns out (after long debugging session againts sameboy's debugger)
that upon access to the mbc5 ram (maybe all the mbc's?)
the address is masked with the max address of the ram chip
Copy link
Owner Author

@alloncm alloncm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also add an integration test for all the mbc's ram access

@@ -38,15 +38,16 @@ impl<'a> Mbc for Mbc5<'a> {
2=>self.rom_bank_number_register = (self.rom_bank_number_register & 0xFF00) | value as u16,
// high bit 9
3=>self.rom_bank_number_register = (self.rom_bank_number_register & 0x00FF) | ((value as u16) << 8),
4|5=>self.ram_bank_number = value,
4|5=>self.ram_bank_number = value & 0xF,
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure the rest of the mbc's are fixed too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant