From 00000971d753e4868d8e02d30547380052952d36 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Tue, 24 Jun 2025 21:53:18 +0300 Subject: [PATCH] Describe addresses correctly in unbanked portions of RAM and ROM --- Cocoa/GBHexStatusBarRepresenter.m | 2 +- Core/debugger.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Cocoa/GBHexStatusBarRepresenter.m b/Cocoa/GBHexStatusBarRepresenter.m index c3be66f..1739811 100644 --- a/Cocoa/GBHexStatusBarRepresenter.m +++ b/Cocoa/GBHexStatusBarRepresenter.m @@ -136,7 +136,7 @@ if (!_gb) { return [NSString stringWithFormat:@"$%llX", offset]; } - return @(GB_debugger_describe_address(_gb, offset + _baseAddress, _bankForDescription, false, isRangeEnd)); + return @(GB_debugger_describe_address(_gb, offset + _baseAddress, offset < 0x4000? -1 :_bankForDescription, false, isRangeEnd)); } diff --git a/Core/debugger.c b/Core/debugger.c index 0a92a68..2a003e7 100644 --- a/Core/debugger.c +++ b/Core/debugger.c @@ -2775,6 +2775,9 @@ const char *GB_debugger_describe_address(GB_gameboy_t *gb, if (bank == (uint16_t)-1) { bank = bank_for_addr(gb, addr); } + if ((addr >> 12) == 0xC) { + bank = 0; + } if (exact_match) { const GB_bank_symbol_t *symbol = GB_map_find_symbol(get_symbol_map(gb, bank), addr, prefer_local); if (symbol && symbol->addr == addr) return symbol->name;