Mercurial > repos > blastem
comparison sft_mapper.c @ 2253:fd68fe5f723e
Add support for mapper used in Super Fighter Team release of Legend of Wukong
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 12 Dec 2022 20:51:19 -0800 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2252:6a07b13894f7 | 2253:fd68fe5f723e |
---|---|
1 #include "genesis.h" | |
2 | |
3 void* sft_wukong_write_b(uint32_t address, void *context, uint8_t value) | |
4 { | |
5 if (!(address & 1)) { | |
6 return context; | |
7 } | |
8 m68k_context *m68k = context; | |
9 genesis_context *gen = m68k->system; | |
10 printf("wukong mapper write: %X - %X\n", address, value); | |
11 uint16_t *old = m68k->mem_pointers[gen->mapper_start_index]; | |
12 if (value & 0x80) { | |
13 m68k->mem_pointers[gen->mapper_start_index] = gen->cart; | |
14 } else { | |
15 m68k->mem_pointers[gen->mapper_start_index] = gen->cart + 1 * 1024 * 1024; | |
16 } | |
17 if (old != m68k->mem_pointers[gen->mapper_start_index]) { | |
18 m68k_invalidate_code_range(m68k, 0x200000, 0x3C0000); | |
19 } | |
20 | |
21 return context; | |
22 } | |
23 | |
24 void* sft_wukong_write_w(uint32_t address, void *context, uint16_t value) | |
25 { | |
26 return sft_wukong_write_b(address | 1, context, value); | |
27 } |