|
- #ifndef NESE_MAPPER_H_
- #define NESE_MAPPER_H_
-
- #include <stdbool.h>
-
- #include "ines.h"
-
-
- struct nes_Memory;
-
- struct nes_Mapper {
- int max_chr_banks;
- int (*init)(struct nes_Mapper*, const ines_Header*, struct nes_Memory*);
- bool (*write_rom)(struct nes_Mapper*, uint16_t addr, uint8_t val);
- bool (*write_sram)(struct nes_Mapper*, uint16_t addr, uint8_t val);
- bool (*write_apu)(struct nes_Mapper*, uint16_t addr, uint8_t val);
- uint8_t (*read_apu)(struct nes_Mapper*, uint16_t addr);
- void (*hsync)(struct nes_Mapper*);
- void (*vsync)(struct nes_Mapper*);
- void (*ppu_bus)(struct nes_Mapper*, uint16_t addr);
- void (*ppu_mem_mode)(struct nes_Mapper*, uint8_t mode);
- void* data;
- };
- typedef struct nes_Mapper nes_Mapper;
-
-
- extern const nes_Mapper* nes_mappers[256];
-
-
- #endif // NESE_MAPPER_H_
|