First major step in splitting up machine classes in NEC PC98 family tree:
* Splits up derivative HWs into own state machine and files (pc98ha.cpp, pc9821.cpp and pc9801_epson.cpp);
* Adds a preliminary uPD4991a parallel RTC, used by pc98ha;
* Fix -26, -86, -118 C-bus sound board dips or jumper settings;
* Fix default sound card for pc9821 (-86) and pc9821ce2 / pc9821cx3 (-118);
* Adds preliminary MAD Factory Otomichan-kai C-bus sound board;
* Adds boilerplate code for C-bus installing board I/Os, avoiding the possible inconvenience of board(s) getting silently unmapped by other installed boards;
* Major refactoring of HW dip switches readouts, using required_ioports instead of scattering things around in PPI hooks;
* Extensive QA rundown, including research on missing features and undumped machines.
pc9801.cpp: Don't passthrough mouse irq frequency when cycle setting is setup too, fixes jastrike mouse input on options menu.
pc9801.cpp: Fix kanji RAM window LR readback, makes telenetm to properly display 8x16 chars on RS and derivative machines.
pc8801.cpp: fixed OPNA RAM readback, allowing SWs to playback ADPCMs properly.
New machines marked as NOT_WORKING
----------------------------------
PC-98LT [anonymous]
PC-98HA "Handy98" [anonymous]
PC-9821Nr15 (98NOTE Lavie) [flyingharuka]
PC-9821Nr166 (98NOTE Lavie) [flyingharuka]
PC-9821Nw150 (98NOTE Lavie) [flyingharuka]
PC-9821Ra266 (98MATE R) [flyingharuka]
PC-9821Cx3 (98MULTi CanBe) [flyingharuka]
PC-9801VX [qazmko1029]
PC-9801US [CoolMod]
- Also, 8237 board improvements from previous commit now work when loading loose .nes files.
New working software list additions (nes.xml)
-----------------------------------
2 in 1 - The Lion King & Bomber Boy [NewRisingSun]
9 in 1 [NewRisingSun]
Added more modern generic I/O interfaces with implementation backed by stdio, osd_file and core_file, replacing io_generic. Also replaced core_file's build-in zlib compression with a filter.
unzip.cpp, un7z.cpp: Added option to supply abstract I/O interface rather than filename.
Converted osd_file, core_file, archive_file, chd_file and device_image_interface to use std::error_condition rather than their own error enums.
Allow mounting TI-99 RPK from inside archives.
- Rewrote 8237 to support games that were previous attached to sg_boog device. pocahon2, the only game previously using 8237, no longer crashes in its intro story.
- Removed all the old commented out sg_boog code.
- Added initial support for the 8237A variant and its one game, mc_9king.
Software list items promoted to working (nes.xml)
---------------------------------------
2 in 1 (J-M2)
2 in 1 (King005)
2 in 1 Super 808
5 in 1 (SPC005)
9 in 1 King001
Mortal Kombat 3 Extra 60 (Asia)
Mortal Kombat 3 Extra 60 (Asia, Alt)
Super 308 3 in 1
New working software list additions (nes.xml)
-----------------------------------
1993 Heroe Series 4 in 1 (JY-001) [NewRisingSun, taizou]
1994 Super HiK 4 in 1 (JY-001) [NewRisingSun, taizou]
1994 Super HiK 4 in 1 (JY-002) [NewRisingSun, taizou]
1994 Super HiK 4 in 1 (JY-003) [NewRisingSun, taizou]
1995 Super HiK 4 in 1 (JY-008) [NewRisingSun, taizou]
1995 Super HiK 4 in 1 (JY-024) [NewRisingSun, taizou]
1995 Super HiK 4 in 1 (JY-038) [NewRisingSun, taizou]
1995 Super HiK 4 in 1 (JY-039) [NewRisingSun, taizou]
1995 Super HiK 4 in 1 (JY-040) [NewRisingSun, taizou]
1995 Super HiK 4 in 1 (JY-043) [NewRisingSun, taizou]
1997 Super HiK 4 in 1 (JY-047) [NewRisingSun, taizou]
1995 Super HiK 4 in 1 (JY-047) [NewRisingSun, taizou]
1996 Super HiK 4 in 1 (JY-057) [NewRisingSun, taizou]
1996 Super HiK 4 in 1 (JY-058) [NewRisingSun, taizou]
1995 Super HiK 4 in 1 (JY-023) [MLX]
1997 Super HiK 4 in 1 (JY-024) [MLX]
1996 Super HiK 4 in 1 (JY-072) [MLX]
Mario Series 4 in 1 (JY-013) [anonymous]
- Reorganized sglionk (Super Game bootleg games) around lookup tables for its register/address scrambling.
- Implemented Boogerman in terms of sglionk, since it is functionally identical with different scrambling permutations.
New working software list additions (nes.xml)
-----------------------------------
The Lion King (pirate, alt 2) [Consolethinks]
Software list items promoted to working (nes.xml)
---------------------------------------
Boogerman (Rus)
Made pbobble parent of bublbust, as it seems to be more widespread and
more complete. Also fixed some ROM labels for bublbust.
Made tbyahhoo parent of mtwinbee as the latter has substantial content
removed rather than being localised, making it less complete.
Applied srcclean to JSON files in bgfx subtree.
- Removed MK6 and MK7 sets that were listed as extracts from this cart.
- Marked all Yu Yu Hakusho Final bootlegs (what MK7 really is) as partially supported since they all have significant background graphics issues.
New working software list additions
-----------------------------------
2 in 1 - Mortal Kombat 6 & Mortal Kombat 7
----------------------------------
Zelos (Japan, main unit) [Phil Bennett]
New working clones
------------------
The Killing Blade / Ao Jian Kuang Dao (ver. 100) [XeD]
- Got boards gs2004 and gs2013 working and merged them into related classes (they differ solely by a fixed bank number).
- Simplified tf9in1 board and fixed its graphics issues (sets mc_20a, mc_tf9).
New working software list additions (nes.xml)
-----------------------------------
Tetris Family 5 in 1 [NewRisingSun]
Software list items promoted to working (nes.xml)
---------------------------------------
Tetris Family 6 in 1 (GS-2004)
Tetris Family 12 in 1 (GS-2013)
- Merged two devices (for identical mappers 225 and 255).
- Larger-sized carts now work (sets mc_110, mc_115).
- Added 4 nibbles of work RAM that presumable affect in-game settings.
- Removed set mc_110a which was listed as being a possible corrupt dump. It only contained half of mc_110's PRG ROM—in repeated 256K chunks.
Software list items promoted to working (nes.xml)
---------------------------------------
115 in 1
New working software list additions (nes.xml)
-----------------------------------
1994 Super HiK 3 in 1 (JY-007) [famiac, NewRisingSun]
1995 Super 8-in-1 (JY-050) [Consolethinks, NewRisingSun]
Super 8-in-1 Gold Card Series (JY-085) [Consolethinks, NewRisingSun]
Super 8-in-1 Gold Card Series (JY-086) [Consolethinks, NewRisingSun]
In the original code all values are signed integers, so m_dynindex would
overflow and become negative, then the modulus of a negative value by a
positive one would generate a negative result and finally the next array
read would make the program crash.
Also the maximum value plus one of m_dynindex is not generally a
multiple of m_dynamic and this would cause a jump in the values of
liveindex.
- Remove the hotspot read tracker. This was never robustly implemented, but changes to the memory system made it much less useful, and the "speedup opportunities" which it aimed to determine are not very important from a current emulation standpoint.
- Remove the CURSP/GENSP state symbol and the generic sp() getter. Stacking semantics vary too much between CPU architectures for this to be of much use. (A "SP" symbol has been added to a few CPU cores whose stack pointers were otherwise not being registered.)
- Remove the cached pointer to device_state_interface and the state() fast accessor from device_t. Most users of device_state_interface either already had a pointer to the specific CPU device type or needed to check first for the presence of the interface.
- Change the PC memory write tracker to use pcbase(), which works even when the instruction callback is masked out, instead of peeking at the PC history index.
- Remove some obsolete watchpoint-related definitions from machine.h.
- Improved support for Super HiK 300-in-1 related multicarts. Fixes graphics in some games and gets a 9999-in-1 working.
- Added missing board support for 500-in-1 and related multicarts. These are correctly assigned to mapper 217 in the .nes loader.
Software list items promoted to working
---------------------------------------
255 in 1
500 in 1
500 in 1 (Alt)
2000 in 1 (No Splash, No Rev, Alt Mapper)
9999 in 1 (Anim. Splash, Rev 13)
9999999 in 1 (Alt)
- Complete rewrite of disassemblers, using standard names for OPRs
- Clear MBR in cycle 1 when AMB is not specified
- Perform AMB before COM (tx0_64kw)
- Fix characters printed on Flexowriter (bit order was incorrectly reversed)
- Modernize logging in CPU device
- Only call the debugger hook once per instruction cycle
* Fixed friended derived classes.
* Added "a2" prefix to device short names uesd for crude namespacing.
* Added the prefix header explicitly so it will build without PCH.
* Fixed bizarre mixed space and tab indenting.
* pengseal: Fixed company and title screen graphics.
* dongdong: Added device for this unique board (should have been marked not working.)
* mc_sg20: Fixed graphics fixed in all games, no longer randomly resets to Bomberman mid-game in Hogan's Alley.
* mc_190: Refactored code - this is the same as mc_sg20 with a mirroring bit.
* mc_1994: Corrected banking code - all games work now.
* mc_4ck1: Runs now, although Contra has some incorrect tiling issues; added jumper setting.
* mc_6m23: Fixed graphics in all games (light gun still not working due to non-bus issues).
* magicdrg: Fixed background tiling.
Software list items promoted to working
---------------------------------------
1994 Super HIK 14 in 1 (G-136)
4 in 1 1993 (CK-001)
4 in 1 1993 (CK-001, Alt)
New working software list additions
-----------------------------------
19 in 1 (K-3088) [anonymous]
Software list items promoted to working
---------------------------------------
4 in 1 (411120-C)
* Don't set initial signal state in machine config - do it on start.
* No need to reset child devices on machine reset, that's done for you.
* Put ROMs in the same order as machine macros.
* clshroad.cpp: Add tilemap color bank, fix lightning flashing and color cycling for Fire Battle;
clshroad.cpp: Hand-tuned all clock frequencies for clshroad and halved vblank irq rate, syncing video and sound timings in logical sense;
* wiping.cpp, wiping.cpp: Convert to Xtal and add tentative screen raw params;
* audio/wiping.cpp: Make custom audio to actually not divide internally by 2;
* clshroad.cpp: minor realign documentation
New working software list additions (nes.xml)
-----------------------------------
Powerful 250 in 1 [NewRisingSun]
Software list items promoted to working (nes.xml)
---------------------------------------
Powerful 255 in 1
------------------
Air Inferno (World) [Trol]
New clones marked as NOT_WORKING
--------------------------------
Time Crisis 3 (TST3 Ver. A) [system11, rtw]