diff --git a/sw/picocart64_v1/memmap_custom.ld b/sw/picocart64_v1/memmap_custom.ld index 5533e45..bb18a00 100644 --- a/sw/picocart64_v1/memmap_custom.ld +++ b/sw/picocart64_v1/memmap_custom.ld @@ -263,7 +263,7 @@ SECTIONS *(.n64_rom.header) . = 16; *(.n64_rom.mapping) - . = 32768; + . = (32768 + 16); *(.n64_rom) } > N64_ROM } diff --git a/sw/picocart64_v1/n64_pi_task.c b/sw/picocart64_v1/n64_pi_task.c index d6d7154..2558523 100644 --- a/sw/picocart64_v1/n64_pi_task.c +++ b/sw/picocart64_v1/n64_pi_task.c @@ -94,7 +94,7 @@ void n64_pi_run(void) do { // Pre-fetch from the address #if COMPRESSED_ROM - uint32_t chunk_index = rom_mapping[(last_addr & 0xFFFFFF) >> COMPRESSION_SHIFT_AMOUNT]; + uint16_t chunk_index = rom_mapping[(last_addr & 0xFFFFFF) >> COMPRESSION_SHIFT_AMOUNT]; const uint16_t *chunk_16 = (const uint16_t *)rom_chunks[chunk_index]; next_word = swap8(chunk_16[(last_addr & COMPRESSION_MASK) >> 1]); #else diff --git a/sw/picocart64_v1/rom_vars.h b/sw/picocart64_v1/rom_vars.h index d834f01..cdf5952 100644 --- a/sw/picocart64_v1/rom_vars.h +++ b/sw/picocart64_v1/rom_vars.h @@ -1,4 +1,4 @@ -#define MAPPING_TABLE_LEN (16384 - 8) +#define MAPPING_TABLE_LEN (16384) #define COMPRESSED_ROM 1 #define COMPRESSION_SHIFT_AMOUNT 10