Map 25 support

This commit is contained in:
ikari 2009-09-08 00:50:09 +02:00
parent 66b0f0350e
commit 73c3236904
2 changed files with 15 additions and 4 deletions

View File

@ -86,12 +86,17 @@ uint32_t load_rom(char* filename) {
uint32_t rammask;
uint32_t rommask;
if(filesize > (romprops.romsize_bytes + romprops.offset)) {
romprops.romsize_bytes <<= 1;
}
if(romprops.header.ramsize == 0) {
rammask = 0;
} 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_puthex(romprops.header.ramsize);

View File

@ -60,7 +60,7 @@ end
/* HiROM: SRAM @ Bank 0x20-0x3f, 0xa0-0xbf
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[14:13]
& !SNES_ADDR[15]
@ -78,6 +78,9 @@ assign IS_ROM = ( (MAPPER == 3'b000) ? ( (!SNES_ADDR[22]
|(SNES_ADDR[22]))
: (MAPPER == 3'b001) ? ( (SNES_ADDR[15] & !SNES_ADDR[22])
|(SNES_ADDR[22]) )
: (MAPPER == 3'b010) ? ( (!SNES_ADDR[22]
& SNES_ADDR[15])
|(SNES_ADDR[22]))
: 1'b0);
assign SRAM_ADDR_FULL = (MODE) ? AVR_ADDR
@ -87,7 +90,10 @@ assign SRAM_ADDR_FULL = (MODE) ? AVR_ADDR
:(MAPPER == 3'b001) ?
(IS_SAVERAM ? SNES_ADDR[14:0] & SAVERAM_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_ADDR = SRAM_ADDR_FULL[20:1];