* Support 2 MIB mapper 314 (Y2K 76-in-1)
* Mapper 57: Forgot one Sync() statement
* Mapper 83: Correction for 256 KiB PRG+512 KiB CHR games
* Mapper 114: Use NES 2.0 submapper field if available to differentiate between scrambling patterns
* NES 2.0: Support exponential notation of PRG/CHR sizes, thus adding support for 4 KiB and 8 KiB ROM files.
* Add mapper 553.
* Correct the database regarding the Nanjing game Pegasus Senya
* Add submapper 5 (HST-162) to mapper 176
* Add mapper 436
* Mapper 176.5 has a CNROM latch as well, though it works a bit differently than submapper 1's
* Added mapper 429
* Added mapper 380 submapper 1
* Added mapper 437
* Added mapper 456
* Forgot to include math.h for pow
* Added mapper 434
* Added mapper 452
* Added mapper 438
* Added mappers 391 and 444, corrected the mixup with BS-110 and NC7000M
* Added mapper 443. Added menu-switching funcionality to mapper 444
Co-authored-by: NewRisingSun <8vytz1+dhp372pv94ebg@sharklasers.com>
Excerpt from nesdev:
NESten's Mapper DLL v1.0 contained an incorrect implementation of T3H53 as iNES mapper 059 and UNIF mapper BMC-T3H53. The UNIF implementation was improved in NESten's Mapper DLL v1.2 while the iNES implementation was not, causing confusion about what kind of cartridge the unimproved mapper 59 was supposed to be. As Nintendulator's mapper DLL is based on NESten's mapper DLL, this was carried over to Nintendulator. Presumably as a result of this confusion, FCEUX and others put the correct implementation of T3H53 at INES Mapper 060, displacing the "Reset-based NROM-128 4-in-1" in the process.
With that said above, im following nesdev's notes and change the
following:
- Reassign Mapper 60 as Mapper 59.
- Add BMC-T3H53, a UNIF cart using the same UNIF-board D1038 which is
assigned as iNES Mapper 59
- Add the Reset-Based NRON-128 mapper, Mapper 60
- Unif shows ROM_size and VROM_size in bytes, while codebase expects these to be
in chunks of 16K for prg and 8K for chr. Update Unif to represent size as its
expected to be.
- Change PRGRomSize and CHRRomSize to represent sizes in bytes to make it consistent
with the rest of the size-related variables in struct CartInfo.
- removes whitespaces on boardnames - as stated, some names can have whitespaces
- ignore character case when comparing - similar to above, boardnames can also be
uppercase or lowercase in some.
- fixes (if necessary), update and cleanup the following boards that now dont need alternate mappings:
- this is part of migrating unif to be usuable in ines mappers
- boards affected in this commit are:
SUPERVISION16IN1, GS-2004, GS-2013, UNL-SMB2J, MARIO1-MALEE2, UNL-SA-9602B, UNL-KS106C / RESETNROM-XIN1
UNL-AC08, NES-NTBROM, BMC-K-3033, BMC-GN-26, BMC-GHOSTBUSTERS63IN1, BMC-830425C-4391T
BMC-830134C, BMC-891227 / BMC-CTC-12IN1, BMC-JC-016-2, UNL-T4A54A, UNL-8157, BMC-T-262
(might have forgotten to list some...)
- Part of migrating UNIF to NES 2.0 conversion, which should make
each unif roms to be compatible with each other. Some roms have
separate prg and chr banks, which mapper has to do separate banking
for such file versions.
- This change would also make the boards to be easily usuable iNes/Nes 2.0.
Currently reads and sets the following:
- mapper number up to 4095, prg rom size, chr rom size
- chr ram (volatile + non-volatile), region (ntsc, pal, dendy or multi-region)
todo: submapper handling, w-ram and prg nvram at least...
- As stated, prevent a potential crash on some certain roms using split rom banks. This is done by counting the number of prg/chr banks loaded and using this as limit count during mapper bank switching.
- Update related boards.