Mapper 092

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

Post Reply
User avatar
zeroone
Posts: 939
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Mapper 092

Post by zeroone »

Mapper 092 is related to Mapper 072 as the wiki suggests, but it is not as simple as a different PRG setup. Per FCEUX:

Code: Select all

//------------------ Map 092 ---------------------------
// Another two-in-one mapper, two Jaleco carts uses similar
// hardware, but with different wiring.
// Original code provided by LULU
// Additionally, PCB contains DSP extra sound chip, used for voice samples (unemulated)

static void M92Sync(void) {
	uint8 reg = latche & 0xF0;
	setprg16(0x8000, 0);
	if (latche >= 0x9000) {
		switch (reg) {
		case 0xD0: setprg16(0xc000, latche & 15); break;
		case 0xE0: setchr8(latche & 15); break;
		}
	} else {
		switch (reg) {
		case 0xB0: setprg16(0xc000, latche & 15); break;
		case 0x70: setchr8(latche & 15); break;
		}
	}
}

void Mapper92_Init(CartInfo *info) {
	Latch_Init(info, M92Sync, NULL, 0x80B0, 0x8000, 0xFFFF, 0);
}
Bits 4 and 5 are used to select the appropriate PRG or CHR bank. In addition, all lower 4 bits are used for both the PRG and CHR bank.

FCEUX's implementation maybe incomplete, but we should add this to the wiki.
lidnariq
Site Admin
Posts: 11621
Joined: Sun Apr 13, 2008 11:12 am

Re: Mapper 092

Post by lidnariq »

The big difference in FCEUX's source here is that it claims that ALL bankswitching accesses use the address bus, not the data bus. This is suspicious; we don't know of any non-pirate games that do that. Additionally, Nestopia's implementation disagrees.

The magic numbers in FCUEX's source do not contradict the description in mapper 72; for both Soccer (unknown board) and Yakyuu'88 (JF-19) PRG bank is updated when the byte written has its 128s bit set and CHR bank is updated when the byte written has its 64s bit set.
Post Reply