view sega_mapper.h @ 2118:c5d0edf1d7e7

Fix some null-pointer dereference crashes on a ROM that abuses V28/V30 mode switching
author Michael Pavone <pavone@retrodev.com>
date Sun, 06 Mar 2022 22:36:21 -0800
parents 3748a2a8a4b7
children b9cd3c64652d
line wrap: on
line source

#ifndef SEGA_MAPPER_H_
#define SEGA_MAPPER_H_
#include "serialize.h"

uint16_t read_sram_w(uint32_t address, m68k_context * context);
uint8_t read_sram_b(uint32_t address, m68k_context * context);
m68k_context * write_sram_area_w(uint32_t address, m68k_context * context, uint16_t value);
m68k_context * write_sram_area_b(uint32_t address, m68k_context * context, uint8_t value);
m68k_context * write_bank_reg_w(uint32_t address, m68k_context * context, uint16_t value);
m68k_context * write_bank_reg_b(uint32_t address, m68k_context * context, uint8_t value);
void* write_med_ram0_w(uint32_t address, void *vcontext, uint16_t value);
void* write_med_ram1_w(uint32_t address, void *vcontext, uint16_t value);
void* write_med_ram2_w(uint32_t address, void *vcontext, uint16_t value);
void* write_med_ram3_w(uint32_t address, void *vcontext, uint16_t value);
void* write_med_ram4_w(uint32_t address, void *vcontext, uint16_t value);
void* write_med_ram5_w(uint32_t address, void *vcontext, uint16_t value);
void* write_med_ram6_w(uint32_t address, void *vcontext, uint16_t value);
void* write_med_ram7_w(uint32_t address, void *vcontext, uint16_t value);
void* write_med_ram0_b(uint32_t address, void *vcontext, uint8_t value);
void* write_med_ram1_b(uint32_t address, void *vcontext, uint8_t value);
void* write_med_ram2_b(uint32_t address, void *vcontext, uint8_t value);
void* write_med_ram3_b(uint32_t address, void *vcontext, uint8_t value);
void* write_med_ram4_b(uint32_t address, void *vcontext, uint8_t value);
void* write_med_ram5_b(uint32_t address, void *vcontext, uint8_t value);
void* write_med_ram6_b(uint32_t address, void *vcontext, uint8_t value);
void* write_med_ram7_b(uint32_t address, void *vcontext, uint8_t value);
void sega_mapper_serialize(genesis_context *gen, serialize_buffer *buf);
void sega_mapper_deserialize(deserialize_buffer *buf, genesis_context *gen);

#endif //SEGA_MAPPER_H_