From 975200834ecefd2c05b5f7b292172d222fa751e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ni=C3=B1o=20D=C3=ADaz?= Date: Mon, 15 Jan 2018 23:43:47 +0000 Subject: [PATCH] Fix WRAMX BANK offset in the right place MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ROMX and WRAMX bank numers are stored in an object file as their number minus one. This means that this offset has to be applied somewhere. The old code applied the fix for ROMX and WRAMX in two different places. It looks like the patch that added support for WRAMX didn't set the offset correctly in 'src/link/assign.c'. When this was fixed, it was done in the wrong place, in 'src/asm/asm.y'. This patch moves the fix to 'src/link/assign.c'. Signed-off-by: Antonio Niño Díaz --- src/asm/asmy.y | 3 --- src/link/assign.c | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/asm/asmy.y b/src/asm/asmy.y index 3cc62841..998bb708 100644 --- a/src/asm/asmy.y +++ b/src/asm/asmy.y @@ -59,9 +59,6 @@ static void bankrangecheck(char *name, uint32_t secttype, int32_t org, stype, bank, minbank, maxbank); } - if (secttype == SECT_WRAMX) - bank -= minbank; - out_NewAbsSection(name, secttype, org, bank); } diff --git a/src/link/assign.c b/src/link/assign.c index fbb813d9..aa447c58 100644 --- a/src/link/assign.c +++ b/src/link/assign.c @@ -39,10 +39,10 @@ const enum eSectionType SECT_MAX = SECT_OAM; const struct sSectionAttributes SECT_ATTRIBUTES[] = { {"WRAM0", BANK_INDEX_WRAM0, 0, 0, BANK_COUNT_WRAM0}, {"VRAM", BANK_INDEX_VRAM, 0, 0, BANK_COUNT_VRAM}, - {"ROMX", BANK_INDEX_ROMX, -1, 1, BANK_COUNT_ROMX}, + {"ROMX", BANK_INDEX_ROMX, -BANK_MIN_ROMX, BANK_MIN_ROMX, BANK_COUNT_ROMX}, {"ROM0", BANK_INDEX_ROM0, 0, 0, BANK_COUNT_ROM0}, {"HRAM", BANK_INDEX_HRAM, 0, 0, BANK_COUNT_HRAM}, - {"WRAMX", BANK_INDEX_WRAMX, 0, 0, BANK_COUNT_WRAMX}, + {"WRAMX", BANK_INDEX_WRAMX, -BANK_MIN_WRAMX, BANK_MIN_WRAMX, BANK_COUNT_WRAMX}, {"SRAM", BANK_INDEX_SRAM, 0, 0, BANK_COUNT_SRAM}, {"OAM", BANK_INDEX_OAM, 0, 0, BANK_COUNT_OAM} };