Map 25 support
This commit is contained in:
parent
66b0f0350e
commit
73c3236904
@ -86,12 +86,17 @@ uint32_t load_rom(char* filename) {
|
|||||||
|
|
||||||
uint32_t rammask;
|
uint32_t rammask;
|
||||||
uint32_t rommask;
|
uint32_t rommask;
|
||||||
|
|
||||||
|
if(filesize > (romprops.romsize_bytes + romprops.offset)) {
|
||||||
|
romprops.romsize_bytes <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
if(romprops.header.ramsize == 0) {
|
if(romprops.header.ramsize == 0) {
|
||||||
rammask = 0;
|
rammask = 0;
|
||||||
} else {
|
} else {
|
||||||
rammask = ((uint32_t)1024 << (romprops.header.ramsize)) - 1;
|
rammask = romprops.ramsize_bytes - 1;
|
||||||
}
|
}
|
||||||
rommask = ((uint32_t)1024 << (romprops.header.romsize)) - 1;
|
rommask = romprops.romsize_bytes - 1;
|
||||||
|
|
||||||
uart_putc(' ');
|
uart_putc(' ');
|
||||||
uart_puthex(romprops.header.ramsize);
|
uart_puthex(romprops.header.ramsize);
|
||||||
|
|||||||
@ -60,7 +60,7 @@ end
|
|||||||
|
|
||||||
/* HiROM: SRAM @ Bank 0x20-0x3f, 0xa0-0xbf
|
/* HiROM: SRAM @ Bank 0x20-0x3f, 0xa0-0xbf
|
||||||
Offset 6000-7fff */
|
Offset 6000-7fff */
|
||||||
assign IS_SAVERAM = ((MAPPER == 3'b000) ? (!SNES_ADDR[22]
|
assign IS_SAVERAM = ((MAPPER == 3'b000 || MAPPER == 3'b010) ? (!SNES_ADDR[22]
|
||||||
& SNES_ADDR[21]
|
& SNES_ADDR[21]
|
||||||
& &SNES_ADDR[14:13]
|
& &SNES_ADDR[14:13]
|
||||||
& !SNES_ADDR[15]
|
& !SNES_ADDR[15]
|
||||||
@ -78,6 +78,9 @@ assign IS_ROM = ( (MAPPER == 3'b000) ? ( (!SNES_ADDR[22]
|
|||||||
|(SNES_ADDR[22]))
|
|(SNES_ADDR[22]))
|
||||||
: (MAPPER == 3'b001) ? ( (SNES_ADDR[15] & !SNES_ADDR[22])
|
: (MAPPER == 3'b001) ? ( (SNES_ADDR[15] & !SNES_ADDR[22])
|
||||||
|(SNES_ADDR[22]) )
|
|(SNES_ADDR[22]) )
|
||||||
|
: (MAPPER == 3'b010) ? ( (!SNES_ADDR[22]
|
||||||
|
& SNES_ADDR[15])
|
||||||
|
|(SNES_ADDR[22]))
|
||||||
: 1'b0);
|
: 1'b0);
|
||||||
|
|
||||||
assign SRAM_ADDR_FULL = (MODE) ? AVR_ADDR
|
assign SRAM_ADDR_FULL = (MODE) ? AVR_ADDR
|
||||||
@ -87,7 +90,10 @@ assign SRAM_ADDR_FULL = (MODE) ? AVR_ADDR
|
|||||||
:(MAPPER == 3'b001) ?
|
:(MAPPER == 3'b001) ?
|
||||||
(IS_SAVERAM ? SNES_ADDR[14:0] & SAVERAM_MASK
|
(IS_SAVERAM ? SNES_ADDR[14:0] & SAVERAM_MASK
|
||||||
: {1'b0, SNES_ADDR[22:16], SNES_ADDR[14:0]} & ROM_MASK)
|
: {1'b0, SNES_ADDR[22:16], SNES_ADDR[14:0]} & ROM_MASK)
|
||||||
: 21'b0);
|
:(MAPPER == 3'b010) ?
|
||||||
|
(IS_SAVERAM ? (SNES_ADDR[14:0] - 15'h6000) & SAVERAM_MASK
|
||||||
|
: ({!SNES_ADDR[23], SNES_ADDR[21:0]} & ROM_MASK))
|
||||||
|
: 23'b0);
|
||||||
|
|
||||||
assign SRAM_BANK = SRAM_ADDR_FULL[22:21];
|
assign SRAM_BANK = SRAM_ADDR_FULL[22:21];
|
||||||
assign SRAM_ADDR = SRAM_ADDR_FULL[20:1];
|
assign SRAM_ADDR = SRAM_ADDR_FULL[20:1];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user