It is currently Fri Feb 22, 2019 1:08 pm

All times are UTC - 7 hours

Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Wed Mar 28, 2018 9:08 am 

Joined: Thu May 19, 2005 11:30 am
Posts: 852
If a particular cartridge PCB has hard-wired mirroring that cannot be selected via solder pads or jumpers, should the hard-wiring be enforced in an emulator's mapper emulation code, or set via the iNES header?

The concrete example is Magic Kid GooGoo. The ROM image on Lost Levels is set to Horizontal Mirroring, even though the game needs Vertical Mirroring. FCEUX just hardcodes Vertical Mirroring right into the mapper emulation code. Initially, this seemed like a hacky solution to me for a mis-headered ROM using a singleton mapper. But then I wondered whether this should be considered correct for PCBs without solder pads. It would reflect the logic on that particular PCB, at the cost of losing flexibility if a second game with a similar PCB but different mirroring shows up.

(Edit: Added link to FCEUX source code.)

Last edited by NewRisingSun on Wed Mar 28, 2018 9:15 am, edited 1 time in total.

PostPosted: Wed Mar 28, 2018 9:10 am 
Formerly WheelInventor
User avatar

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1920
Location: Gothenburg, Sweden
Letting the header decide is less complex, more open-ended, and secure from hard-to-pinpoint problems that may arise from user cases.

imo If a ROM image has a bad header, it should be corrected; not hidden.

then again, it is an unlikely homebrew candidate given its obscurity.

mapper info: ... r.txt?dl=0

_________________ - personal NES blog

PostPosted: Wed Mar 28, 2018 10:53 am 
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 7224
Location: Canada
Yes, the ideal solution is that unless the mapper has an explicit control conflict with nametables, use the mirroring bit verbatim. This also means you have to header your ROMs correctly.

Though in this particular case, I think this is just the practical problem that the emulator author doesn't have control of what headers are out there. This is a single game mapper, and its header is wrong in the available version. There's no board variants. Even if there were ROMhacks, they would need the same mirroring anyway.

I assume zeromus felt it was more important to just let people run the one ROM that actually exists that people have and actually want to run, rather than having to run support for everyone who doesn't know how to fix a header. (Opionions differ; I'm sure byuu would have just told people to go fix their header.)

...or the "but what if I want to homebrew this mapper with a different mirroring" request: not actually a meaningful problem until someone puts their money where their mouth is and has something real they want to run.

So, yes in the ideal case it shouldn't, but in the real case that we have... who cares?

PostPosted: Wed Mar 28, 2018 11:39 am 
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 4138
For mappers with fully mapper controlled mirroring, I still made it default to what is specified in the iNES header. This would fix DxROM games that got mistagged as MMC3.

Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 7 hours

Who is online

Users browsing this forum: No registered users and 10 guests

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group