mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Return bank 0 for labels in HRAM
Instead of returning the internal representation of the linker, return 0 when using BANK() on a label in HRAM. Also, generate a warning when calculating the bank of labels in OAM and HRAM, as there is no valid reason for doing it, so it's likely a programming mistake. Signed-off-by: AntonioND <antonio_nd@outlook.com>
This commit is contained in:
@@ -68,13 +68,22 @@ getsymbank(SLONG symid)
|
|||||||
errx(1, "*INTERNAL* UNKNOWN SYMBOL TYPE");
|
errx(1, "*INTERNAL* UNKNOWN SYMBOL TYPE");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nBank == BANK_WRAM0 || nBank == BANK_OAM) return 0;
|
if (nBank == BANK_WRAM0 || nBank == BANK_ROM0) {
|
||||||
if (nBank >= BANK_WRAMX && nBank < (BANK_WRAMX + BANK_COUNT_WRAMX))
|
/* This can have practical uses. */
|
||||||
|
return 0;
|
||||||
|
} else if (nBank == BANK_OAM) {
|
||||||
|
warnx("Trying to calculate BANK() of label in OAM.");
|
||||||
|
return 0;
|
||||||
|
} else if (nBank == BANK_HRAM) {
|
||||||
|
warnx("Trying to calculate BANK() of label in HRAM.");
|
||||||
|
return 0;
|
||||||
|
} else if (nBank >= BANK_WRAMX && nBank < (BANK_WRAMX + BANK_COUNT_WRAMX)) {
|
||||||
return nBank - BANK_WRAMX + 1;
|
return nBank - BANK_WRAMX + 1;
|
||||||
if (nBank >= BANK_VRAM && nBank < (BANK_VRAM + BANK_COUNT_VRAM))
|
} else if (nBank >= BANK_VRAM && nBank < (BANK_VRAM + BANK_COUNT_VRAM)) {
|
||||||
return nBank - BANK_VRAM;
|
return nBank - BANK_VRAM;
|
||||||
if (nBank >= BANK_SRAM && nBank < (BANK_SRAM + BANK_COUNT_SRAM))
|
} else if (nBank >= BANK_SRAM && nBank < (BANK_SRAM + BANK_COUNT_SRAM)) {
|
||||||
return nBank - BANK_SRAM;
|
return nBank - BANK_SRAM;
|
||||||
|
}
|
||||||
|
|
||||||
return nBank;
|
return nBank;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user