I was told that the tedious reason that the proposed submappers for Mapper 185 are not official is the lack of test ROMs. I have attempted to produce such for the second (lidnariq's) proposal, meaning submappers 4..7 indicate the CHR bank number for which CHR ROM is not disabled. The test ROM attempts to identify the submapper used, or in the absence of a valid submapper, which one of the two described heuristics is used by the emulator. 000.NES is set to mapper 0 and should return "invalid", 185.NES lacks a NES 2.0 header and should be identified as submapper 0, the other ones are NES 2.0-headered ROMs with the different submappers set in the header, which should be identified by the test ROM as such.
Attached find also a Nintendulator source implementing this second proposal. If "NEW_HEURISTIC" is 1, then the games' protection check is evaded by just disabling CHR ROM for the first two PPU writes, and enabling it afterwards. As it was predicted, this works for all Mapper 185 games, including the rev1 Seicross. Nevertheless, I still think submappers are the cleaner way to do things.
Normal Nestopia refuses to run the Mapper 185 test ROMs because they are not found in Nestopia's internal database.
Mapper 185 Submapper test ROMs
Moderator: Moderators
-
- Posts: 1510
- Joined: Thu May 19, 2005 11:30 am
Mapper 185 Submapper test ROMs
- Attachments
-
- 185_testroms.zip
- (14.56 KiB) Downloaded 411 times
-
- mapper185.cpp
- (1.99 KiB) Downloaded 387 times
Re: Mapper 185 Submapper test ROMs
Nestopia using db set pin ce to working game.
this Nestopia Plus!
case 4:
this->chr.Pin(26) = L"/CE";
this->chr.Pin(27) = L"/CE";
name = "CNROM with CHR disable";
id = Type::STD_CXROM;
break;
case 5:
this->chr.Pin(26) = L"CE";
this->chr.Pin(27) = L"/CE";
name = "CNROM with CHR disable";
id = Type::STD_CXROM;
break;
case 6:
this->chr.Pin(26) = L"/CE";
this->chr.Pin(27) = L"CE";
name = "CNROM with CHR disable";
id = Type::STD_CXROM;
break;
case 7:
this->chr.Pin(26) = L"CE";
this->chr.Pin(27) = L"CE";
name = "CNROM with CHR disable";
id = Type::STD_CXROM;
break;
this Nestopia Plus!
case 4:
this->chr.Pin(26) = L"/CE";
this->chr.Pin(27) = L"/CE";
name = "CNROM with CHR disable";
id = Type::STD_CXROM;
break;
case 5:
this->chr.Pin(26) = L"CE";
this->chr.Pin(27) = L"/CE";
name = "CNROM with CHR disable";
id = Type::STD_CXROM;
break;
case 6:
this->chr.Pin(26) = L"/CE";
this->chr.Pin(27) = L"CE";
name = "CNROM with CHR disable";
id = Type::STD_CXROM;
break;
case 7:
this->chr.Pin(26) = L"CE";
this->chr.Pin(27) = L"CE";
name = "CNROM with CHR disable";
id = Type::STD_CXROM;
break;
-
- Posts: 1510
- Joined: Thu May 19, 2005 11:30 am
Re: Mapper 185 Submapper test ROMs
With the test ROMs provided and the proposal on which they are based having been implemented in at least one other emulator, unless somebody objects, I will move this (lidnariq's) specification from the submapper proposals to the main submapper wiki page.
-
- Posts: 1510
- Joined: Thu May 19, 2005 11:30 am
Re: Mapper 185 Submapper test ROMs
NesCartDB, and as a consequence, the Nesdev wiki, claim that the protected version of Seicross came later (by calling it "Version 2.0"). What is that based on? It would make no sense to release an unprotected version first and a protected one later. The protection-bearing PRG ROM is marked NBE-SE-0, indicating that it is the first version. The unprotected ROM still has the protection check inside it, but an RTS placed before it. (The never-protected U.S. version ROM has the protection checking code removed completely.)
Based on all this, I would say that the protected version came first and the unprotected version came second.
Based on all this, I would say that the protected version came first and the unprotected version came second.
Re: Mapper 185 Submapper test ROMs
The unprotected dump of Seicross in NesCartDB is made with UVEPROMs. The only thing that we can say with certainty is that the UVEPROMs in it were manufactured in the 6th week of 1986, so the cart couldn't have been made before then.