From ca0e373a2c4ea20c3f00b6b35cc7a20b734860e9 Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Tue, 29 Aug 2023 13:55:21 +0100 Subject: [PATCH] remove decompression heap (#660) --- src/boot/memory.c | 36 ------------------------------------ src/buffers/buffers.c | 1 - src/buffers/buffers.h | 2 -- src/engine/level_script.c | 2 +- src/game/memory.h | 2 -- 5 files changed, 1 insertion(+), 42 deletions(-) diff --git a/src/boot/memory.c b/src/boot/memory.c index 5d06b47c..c086f8b0 100644 --- a/src/boot/memory.c +++ b/src/boot/memory.c @@ -419,42 +419,6 @@ void *load_segment_decompress(s32 segment, u8 *srcStart, u8 *srcEnd) { return dest; } -void *load_segment_decompress_heap(u32 segment, u8 *srcStart, u8 *srcEnd) { - UNUSED void *dest = NULL; - -#ifdef GZIP - u32 compSize = (srcEnd - 4 - srcStart); -#else - u32 compSize = ALIGN16(srcEnd - srcStart); -#endif - u8 *compressed = main_pool_alloc(compSize, MEMORY_POOL_RIGHT); -#ifdef GZIP - // Decompressed size from end of gzip - u32 *size = (u32 *) (compressed + compSize); -#endif - if (compressed != NULL) { -#ifdef UNCOMPRESSED - dma_read(gDecompressionHeap, srcStart, srcEnd); -#else - dma_read(compressed, srcStart, srcEnd); -#endif -#ifdef GZIP - expand_gzip(compressed, gDecompressionHeap, compSize, (u32)size); -#elif RNC1 - Propack_UnpackM1(compressed, gDecompressionHeap); -#elif RNC2 - Propack_UnpackM2(compressed, gDecompressionHeap); -#elif YAY0 - slidstart(compressed, gDecompressionHeap); -#elif MIO0 - decompress(compressed, gDecompressionHeap); -#endif - set_segment_base_addr(segment, gDecompressionHeap); - main_pool_free(compressed); - } - return gDecompressionHeap; -} - void load_engine_code_segment(void) { void *startAddr = (void *) _engineSegmentStart; u32 totalSize = _engineSegmentEnd - _engineSegmentStart; diff --git a/src/buffers/buffers.c b/src/buffers/buffers.c index 93e980ed..77d3cd37 100644 --- a/src/buffers/buffers.c +++ b/src/buffers/buffers.c @@ -9,7 +9,6 @@ #include "config.h" #include "audio/synthesis.h" -ALIGNED8 u8 gDecompressionHeap[0xD000]; ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(AUDIO_HEAP_SIZE)]; ALIGNED8 u8 gIdleThreadStack[THREAD1_STACK]; diff --git a/src/buffers/buffers.h b/src/buffers/buffers.h index 941df2e0..eba91275 100644 --- a/src/buffers/buffers.h +++ b/src/buffers/buffers.h @@ -10,8 +10,6 @@ #include "config.h" #include "audio/data.h" -extern u8 gDecompressionHeap[]; - extern u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(AUDIO_HEAP_SIZE)]; extern u8 gIdleThreadStack[THREAD1_STACK]; diff --git a/src/engine/level_script.c b/src/engine/level_script.c index 622f9e24..3dad0c35 100644 --- a/src/engine/level_script.c +++ b/src/engine/level_script.c @@ -310,7 +310,7 @@ static void level_cmd_load_mario_head(void) { } static void level_cmd_load_yay0_texture(void) { - load_segment_decompress_heap(CMD_GET(s16, 2), CMD_GET(void *, 4), CMD_GET(void *, 8)); + load_segment_decompress(CMD_GET(s16, 2), CMD_GET(void *, 4), CMD_GET(void *, 8)); sCurrentCmd = CMD_NEXT; } diff --git a/src/game/memory.h b/src/game/memory.h index 7785c5c2..e7ad8336 100644 --- a/src/game/memory.h +++ b/src/game/memory.h @@ -60,13 +60,11 @@ u32 main_pool_pop_state(void); void *load_segment(s32 segment, u8 *srcStart, u8 *srcEnd, u32 side, u8 *bssStart, u8 *bssEnd); void *load_to_fixed_pool_addr(u8 *destAddr, u8 *srcStart, u8 *srcEnd); void *load_segment_decompress(s32 segment, u8 *srcStart, u8 *srcEnd); -void *load_segment_decompress_heap(u32 segment, u8 *srcStart, u8 *srcEnd); void load_engine_code_segment(void); #else #define load_segment(...) #define load_to_fixed_pool_addr(...) #define load_segment_decompress(...) -#define load_segment_decompress_heap(...) #define load_engine_code_segment(...) #endif