I was thinking of making my own mapper which would be able to bankswitch tile by tile.
The microcontroller I want to use is ATMEGA1284P.
It works from 2.6 to 5.5V. It has 40 pins. It has 16kB RAM, 4kB EEPROM, 128Kb Flash and 8MHz at 5V.
This is the address space of the mapper:
This is the program memory space (Flash memory) of the microcontroller:
The CHR-ROM banks will be all 512B in size. Each one can point to a CHR-ROM bank internal or external, internal or external RAM or to a virtual bank with virtually mapped tiles from wherever the programmer desires.
Tell me. Will this microcontroller take that with just 8MHz? Will it have enough pins for what it's doing? Will there need to be extra multiplexers to reduce the pin usage?
The microcontroller I want to use is ATMEGA1284P.
It works from 2.6 to 5.5V. It has 40 pins. It has 16kB RAM, 4kB EEPROM, 128Kb Flash and 8MHz at 5V.
This is the address space of the mapper:
Code:
0x5000-0x5FFF = Mapper-NES communication
0x6000-0x7FFF = Changeable save memory. Internal or external RAM is used during the runtime. Upon using a save command, all save data is saved to microcontroller Flash memory
0x8000-0x9FFF = Changeable PRG-ROM bank internal or external or internal or external RAM bank
0xA000-0xBFFF = Same
0xC000-0xDFFF = Same
0xE000-0xFFFF = Changeable PRG-ROM bank internal or external. Returns back to initial upon reset
0x6000-0x7FFF = Changeable save memory. Internal or external RAM is used during the runtime. Upon using a save command, all save data is saved to microcontroller Flash memory
0x8000-0x9FFF = Changeable PRG-ROM bank internal or external or internal or external RAM bank
0xA000-0xBFFF = Same
0xC000-0xDFFF = Same
0xE000-0xFFFF = Changeable PRG-ROM bank internal or external. Returns back to initial upon reset
This is the program memory space (Flash memory) of the microcontroller:
Code:
0x000000-0x007FFF = Mapper's code
0x008000-0x017FFF = Internal PRG-ROM, CHR-ROM and non-volatile save banks (64kB)
0x180000-01FFFF = Bootloader code for programming the mapper and flashing a new game
0x008000-0x017FFF = Internal PRG-ROM, CHR-ROM and non-volatile save banks (64kB)
0x180000-01FFFF = Bootloader code for programming the mapper and flashing a new game
The CHR-ROM banks will be all 512B in size. Each one can point to a CHR-ROM bank internal or external, internal or external RAM or to a virtual bank with virtually mapped tiles from wherever the programmer desires.
Tell me. Will this microcontroller take that with just 8MHz? Will it have enough pins for what it's doing? Will there need to be extra multiplexers to reduce the pin usage?