Changed the window title text for the gamecube controller interface when the Triforce Baseboard is connected
Added new buttons: test, service and coin to the Triforce Baseboard UI
Changed code to use new buttons
Fixed a bug that connected the SP1 device twice
Removed AddSP1Device function and fixed the code to automatically connect the Triforce Baseboard when a Triforce game is detected
Updated BootID structure
Changed how the region and maker for Triforce games are loaded
It is useful enough for the Code widget to be enabled the first time
debugging is enabled, but it should not be re-enabled every time the
setting is toggled off and then back on. This also ensures that the
interface is consistent if debugging is enabled without using the
checkbox.
Dolphin never emulated the AHBPROT register before, but the default
value when reading from unimplemented MMIO registers used to be -1,
which happened to match what AHBPROT reads as when all restrictions are
disabled. In 6f25e20c6a I changed the
default to 0 to match observed hardware behavior in the memory range of
the command processor. This broke libogc's DI_Init() which checks
AHBPROT for full hardware access (presumably to ensure that bypassing
IPC for Video DVDs will work).
Refactored AMMediaboard.cpp to remove legacy memory patching, introducing cryptographic key handling for Triforce IPL commands
Enhanced DVDInterface.cpp to ensure cover closure during initialization for Triforce IPL
Adjusted VideoInterface.cpp region flags for Triforce IPL compatibility
Added detailed comments to clarify new logic and removed outdated code
Added loading of region for Triforce games from boot.id
Prevent test menu access without SegaBoot present
Changed insert coin button to X
Fix a copy-paste error causing MemoryWidget's splitter to load the wrong
state data when creating the MemoryWidget.
For me this caused the side panel to be scrunched up every time I
started Dolphin, but the exact effects probably depend on the state of
your MemoryWidget and CodeWidget.
Fix two bugs that occurred when viewing a memory range starting shortly
before 0xffffffff.
Bug 1: When there was at least one visible memory address at or after
0x0 none of the values would be displayed even when some of the
addresses were valid. This happened because the loop condition in
GetValues immediately returned false since m_address_range.first >
m_address_range.second, causing m_values to be empty. This in turn led
every address to be considered INVALID_MEMORY in UpdateColumns.
Bug 2: When m_address_range.second was equal to 0xffffffff GetValues
would enter an infinite loop. This happened because address would
overflow to 0 after printing the last value in the table, causing the
loop condition address <= m_address_range.second to be true forever.