|
- #include "map.h"
-
-
- typedef struct {
- uint8_t* prg_rom;
- int prg_rom_size;
- uint8_t* prg_ram;
- int prg_ram_size;
- uint8_t* chr_rom;
- int chr_rom_size;
-
- uint8_t reg_shift;
- uint8_t reg_control;
- uint8_t reg_chr_0;
- uint8_t reg_chr_1;
- uint8_t reg_prg;
- } mmc1_mapper;
-
- /*
- int mmc1_init(nes_mapper* nes_map, nes_cart* cart) {
- nrom_mapper* map = malloc(sizeof(nrom_mapper));
- nes_map->data = map;
- if (NULL != map) {
- map->prg_rom = cart->prg_rom;
- map->prg_rom_size = cart->prg_rom_size;
- map->chr_rom = cart->chr_rom;
- map->chr_rom_size = cart->chr_rom_size;
- map->prg_ram = cart->wram;
- map->prg_ram_size = nes_mem_wram_size;
-
- map->shift_reg = 0;
- }
- return (NULL == map ? -1 : 0);
- }
-
- void nrom_done(nes_mapper* nes_map) {
- free(nes_map->data);
- }
-
- static inline uint8_t* nrom_prg_addr(nrom_mapper* map,
- uint16_t addr) {
- if (addr > map->prg_rom_size) {
- addr &= 0x3FFF;
- }
- return &(map->prg_rom[addr]);
- }
-
- uint8_t nrom_prg_read(nes_mapper* map, uint16_t addr) {
- return *(nrom_prg_addr((nrom_mapper*)map->data, addr));
- }
-
- void nrom_prg_write(nes_mapper* map, uint16_t addr, uint8_t val) {
- // No ROM writes.
- }
-
- uint8_t* nrom_chr_addr(nes_mapper* nes_map, uint16_t addr) {
- nrom_mapper* map = (nrom_mapper*)nes_map->data;
- return &map->chr_rom[addr % map->chr_rom_size];
- }
-
- */
-
- nes_mapper mapper_mmc1 = {
- /*
- .init = mmc1_init,
- .done = mmc1_done,
- .prg_read = mmc1_prg_read,
- .prg_write = mmc1_prg_write,
- .chr_addr = mmc1_chr_addr,
- .vram_addr = mmc1_chr_addr,
- */
- };
|