The forgotten mem.c/h changes.

This commit is contained in:
OBattler
2025-01-16 23:27:44 +01:00
parent 467fdb2110
commit 458f721897
2 changed files with 38 additions and 12 deletions

View File

@@ -460,7 +460,9 @@ extern void mem_init(void);
extern void mem_close(void);
extern void mem_reset(void);
extern void mem_remap_top_ex(int kb, uint32_t start);
extern void mem_remap_top_ex_nomid(int kb, uint32_t start);
extern void mem_remap_top(int kb);
extern void mem_remap_top_nomid(int kb);
extern void umc_smram_recalc(uint32_t start, int set);

View File

@@ -3019,8 +3019,8 @@ umc_smram_recalc(uint32_t start, int set)
umc_page_recalc(c, set);
}
void
mem_remap_top_ex(int kb, uint32_t start)
static void
mem_remap_top_ex_common(int kb, uint32_t start, int mid)
{
uint32_t c;
int offset;
@@ -3123,37 +3123,61 @@ mem_remap_top_ex(int kb, uint32_t start)
mem_mapping_set_addr(&ram_remapped_mapping2, (start * 1024) + 0x00020000, 0x00020000);
mem_mapping_set_exec(&ram_remapped_mapping2, ram + 0x000d0000);
mem_mapping_set_addr(&ram_mid_mapping, 0x000c0000, 0x00010000);
mem_mapping_set_exec(&ram_mid_mapping, ram + 0x000c0000);
mem_mapping_set_addr(&ram_mid_mapping2, 0x000f0000, 0x00010000);
mem_mapping_set_exec(&ram_mid_mapping2, ram + 0x000f0000);
if (mid) {
mem_mapping_set_addr(&ram_mid_mapping, 0x000c0000, 0x00010000);
mem_mapping_set_exec(&ram_mid_mapping, ram + 0x000c0000);
mem_mapping_set_addr(&ram_mid_mapping2, 0x000f0000, 0x00010000);
mem_mapping_set_exec(&ram_mid_mapping2, ram + 0x000f0000);
}
} else {
mem_mapping_set_addr(&ram_remapped_mapping, start * 1024, size * 1024);
mem_mapping_set_exec(&ram_remapped_mapping, ram + start_addr);
mem_mapping_disable(&ram_remapped_mapping2);
mem_mapping_set_addr(&ram_mid_mapping, 0x000a0000, 0x00060000);
mem_mapping_set_exec(&ram_mid_mapping, ram + 0x000a0000);
mem_mapping_disable(&ram_mid_mapping2);
if (mid) {
mem_mapping_set_addr(&ram_mid_mapping, 0x000a0000, 0x00060000);
mem_mapping_set_exec(&ram_mid_mapping, ram + 0x000a0000);
mem_mapping_disable(&ram_mid_mapping2);
}
}
} else {
mem_mapping_disable(&ram_remapped_mapping);
mem_mapping_disable(&ram_remapped_mapping2);
mem_mapping_set_addr(&ram_mid_mapping, 0x000a0000, 0x00060000);
mem_mapping_set_exec(&ram_mid_mapping, ram + 0x000a0000);
mem_mapping_disable(&ram_mid_mapping2);
if (mid) {
mem_mapping_set_addr(&ram_mid_mapping, 0x000a0000, 0x00060000);
mem_mapping_set_exec(&ram_mid_mapping, ram + 0x000a0000);
mem_mapping_disable(&ram_mid_mapping2);
}
}
flushmmucache();
}
void
mem_remap_top_ex(int kb, uint32_t start)
{
mem_remap_top_ex_common(kb, start, 1);
}
void
mem_remap_top_ex_nomid(int kb, uint32_t start)
{
mem_remap_top_ex_common(kb, start, 0);
}
void
mem_remap_top(int kb)
{
mem_remap_top_ex(kb, (mem_size >= 1024) ? mem_size : 1024);
}
void
mem_remap_top_nomid(int kb)
{
mem_remap_top_ex_nomid(kb, (mem_size >= 1024) ? mem_size : 1024);
}
void
mem_reset_page_blocks(void)
{