- rewrote PowerPC implementation as a dynamic recompiler on top
of the universal recompiler engine
- wrote a front-end to analyze PowerPC code paths and register usage
- wrote a common shared module with C implementations of tricky
CPU behaviors
- added separate CPU types for the variants supported, instead of
relying on a hidden model enum
- rewrote the serial port emulation for the 4xx series to be more
accurate and not rely on separate DMA handlers
- rewrote the MMU handling to implement a software TLB that faults
in pages and handles changed bits appropriately
- implemented emulation of the PowerPC 603's software TLB, which
allows the model 3 games to run without a hack to disable the MMU
Updated the PowerPC disassembler to share constants with the rest of
the core, and to more aggressively use simplified mnemonics, especially
for branches. [Aaron Giles]
Universal recompiler:
- fixed frontend to handle opcode widths different from bus width
- added several new opcodes:
* (D)GETFLGS - copies the UML flags to a destination operand
* FDRNDS - rounds a double precision value to single precision
- renamed several opcodes:
* SETC -> CARRY
* XTRACT -> ROLAND
* INSERT -> ROLINS
- consolidated the following opcodes:
* LOAD?U -> LOAD
* LOAD?S -> LOADS
* STORE? -> STORE
* READ?U -> READ
* READ?M -> READM
* WRITE? -> WRITE
* WRITM? -> WRITEM
* SEXT? -> SEXT
* FTOI?? -> FTOINT
* FFRI? -> FFRINT
* FFRF? -> FFRFLT
- removed some opcodes:
* FLAGS - can be done with GETFLGS/LOAD4/ROLINS
* ZEXT - can be achieved with AND
* READ?S - can be achieved with READ/SEXT
- updated C, x86, and x64 back-ends to support these opcode changes
- updated disassembler to support these opcode changes
MIPS3 dynamic recompiler:
- updated to use new/changed opcode forms
- changed context switch so that it only swaps a single pointer
Konami Hornet changes: [Aaron Giles]
- updated to new PowerPC configurations
- updated some memory handlers to be native 8-bit handlers
- cleaned up JVS implementation to work with new serial code
- added fast RAM for the work RAM to give a small speed boost
Konami GTI Club changes: [Aaron Giles]
- updated to new PowerPC configurations
- updated some memory handlers to be native 8-bit handlers
Konami Viper/ZR107 changes: [Aaron Giles]
- updated to new PowerPC configurations
Sega Model 3 changes: [Aaron Giles]
- updated to new PowerPC configurations
- reimplemented/centralized interrupt handling
- these games are broken for the moment
Fixed crasher due to some Konami games using 8 layers in
the K056832 implementation, even though it was only written
for 4. [Aaron Giles]
Added fisttp opcode to i386 disassembler. [Aaron Giles]
added support for per-scanline y scroll. Fixes level 5 and boss explosions.
00778: gunnail: The background in stage 5 is wrong.
00779: gunnail: After you kill a boss, always a number of vertical lines will appear.
Cleaned-up and organized both drivers.
Added more technical notes.
Hooked Xtals and sound devices/interfaces.
Added elvis to the h8/3337 driver.
New games marked as GAME_NOT_WORKING
------------------------------------
Elvis? [Roberto Fresca]
- Added Microbus support, clock divisor selection, and CKO mode selection to the COP420
- Changed Thayer's Quest keyboard interface to at least slightly resemble the schematics
Added all games that fit in this hardware, plus dumper notes (when available) and hardware descriptions.
New games marked as GAME_NOT_WORKING
------------------------------------
Carta Magica (Ver 1.8) [Roberto Fresca]
Laser 2001 (Ver 1.2) [Roberto Fresca]
Magic Drink (Ver 1.2) [Roberto Fresca]
Millennium Sun [Roberto Fresca]
NtCash [Roberto Fresca]
Super Space 2001 [Roberto Fresca]
Unknown italian gambling game [Roberto Fresca]
Wizard (Ver 1.0) [Roberto Fresca]
- Reworked the input system for Sigma Poker 2000.
- Promoted Sigma Poker 2000 to 'WORKING' state.
- Updated technical notes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Sigma Poker 2000 [Roberto Fresca]
Replaced the Capitani Coraggiosi sound ROM with another one from the alt version. The only difference between both sets are 4 bytes at begining of the sound ROM. The header starts with 4x 0x20 instead of zeroes.
Added La Perla Nera Gold, plus two sets of Europa 2002. All games are running in the same hardware.
Added the respective dumper/hardware notes plus some comparative notes.
Corrected some typos.
New games marked as GAME_NOT_WORKING
------------------------------------
Capitan Uncino (Ver 1.2) [David Haywood]
Capitani Coraggiosi (Ver 1.3) [David Haywood]
La Perla Nera (Ver 2.0) [David Haywood]
La Perla Nera Gold (Ver 2.0) [Roberto Fresca]
Europa 2002 (Ver 2.0, set 1) [Roberto Fresca]
New clones added
----------------
Europa 2002 (Ver 2.0, set 2) [Roberto Fresca]
- Styling changes
- Added instruction cycle counts.
- Added interrupt support.
- Added HALT support.
- Fixed INT instruction.
- Added incomplete support for DIV and MUL instructions.
- Fixed MOV [#nnnn],BA and MOV [#nnnn],HL instructions.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Deroon DeroDero [nuapete, David Haywood]
** note, the guys decapping this will have to dump the internal eeprom too, I suspect the internal ROM is the same between games, and the EEPROM contains the password and game specific data.
this DOES NOT fix mantis 1829, which appears to be a bug in the validation code causing it to hang on startup attempting to validate
PORT_BIT( 0xf0, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(5) PORT_KEYDELTA(5) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE PORT_FULL_TURN_COUNT(12) \
or
PORT_BIT( 0xf0, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_WRAPS PORT_SENSITIVITY(5) PORT_KEYDELTA(5) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) PORT_REVERSE PORT_FULL_TURN_COUNT(12)