@@ -210,6 +210,8 @@ static void UNROM512HSync(void) {
|
||||
}
|
||||
|
||||
void UNROM512_Init(CartInfo *info) {
|
||||
int mirror;
|
||||
|
||||
memset(fceumm_flash_buf, 0x00, fceumm_flash_buf_size);
|
||||
flash_state = 0;
|
||||
flash_bank = 0;
|
||||
@@ -222,7 +224,21 @@ void UNROM512_Init(CartInfo *info) {
|
||||
else
|
||||
chrram_mask = 0x60;
|
||||
|
||||
SetupCartMirroring(info->mirror, (info->mirror >= MI_0) ? 0 : 1, 0);
|
||||
mirror = (head.ROM_type & 1) | ((head.ROM_type & 8) >> 2);
|
||||
switch (mirror) {
|
||||
case 0: // hard horizontal, internal
|
||||
SetupCartMirroring(MI_H, 1, NULL);
|
||||
break;
|
||||
case 1: // hard vertical, internal
|
||||
SetupCartMirroring(MI_V, 1, NULL);
|
||||
break;
|
||||
case 2: // switchable 1-screen, internal (flags: 4-screen + horizontal)
|
||||
SetupCartMirroring(MI_0, 0, NULL);
|
||||
break;
|
||||
case 3: // hard four screen, last 8k of 32k RAM (flags: 4-screen + vertical)
|
||||
SetupCartMirroring(4, 1, VROM + (info->vram_size - 8192));
|
||||
break;
|
||||
}
|
||||
bus_conflict = !info->battery;
|
||||
latcheinit = 0;
|
||||
WLSync = UNROM512LSync;
|
||||
|
||||
@@ -22,9 +22,6 @@
|
||||
#ifndef _FCEU_INES_H
|
||||
#define _FCEU_INES_H
|
||||
|
||||
extern uint32 ROM_size;
|
||||
extern uint32 VROM_size;
|
||||
|
||||
typedef struct {
|
||||
char ID[4]; /*NES^Z*/
|
||||
uint8 ROM_size;
|
||||
@@ -34,6 +31,12 @@ typedef struct {
|
||||
uint8 reserve[8];
|
||||
} iNES_HEADER;
|
||||
|
||||
extern uint8 *ROM;
|
||||
extern uint8 *VROM;
|
||||
extern uint32 ROM_size;
|
||||
extern uint32 VROM_size;
|
||||
extern iNES_HEADER head;
|
||||
|
||||
void NSFVRC6_Init(void);
|
||||
void NSFMMC5_Init(void);
|
||||
void NSFAY_Init(void);
|
||||
|
||||
Reference in New Issue
Block a user