----------------------
- 01845: [Core] all games: cheats are broken
- 01846: [Misc.] -CHEAT trigger causes MAME crash with PSX-type CPU drivers
Source Changes
--------------
Updated cheat system
- Locked search region when malloc fails to allocate gigantic memory
instead of fatal error. Also locked zero malloc error in case of
search speed = all memory in 32-bit CPU. And added search region
range checker to lock a search region with a big risk
- Fixed a bug that old code is always converted to specified
separator in enable/disable menu
- Refined new cheat format.
* Rewritten cheat format again. newest format is
":gamename::type::address::data::extend_data:(description:comment)"
Expanded type field now requires 10 bytes (not 8 bytes) and
it divides internal cpu (2 bytes) and type (8 bytes) parameters
* Removed VWrite, VRWrite. The flag of Value Selection is merged
into expanded type field now.
* Added CBit (Condition Bit). This checks bit in read data then
set or clear bit in case of true.
* Rearranged cheat code viwer based on newest cheat format
- Fixed unworking Load Old Format option. If you want to load old or
older format code, set it (default is OFF)
- Renamed functions/structures based on coding guidlines
All structures and included parameters are completed
- Merged resize_*_no_dispose() into resize_*()
- Removed the hack of search region for SH-2 CPU because required
region is now set as expected without this hack
Sent: Mon 6/2/2008 2:00 PM
To: submit@mamedev.org
Subject: Fixed input in wpksocv2
Fixed some dips and added correct inputs for wpksocv2, despite still missing the correct input for begin the left right movement the game is almost playable.
Bye Sonikos.
Subject: [patch] memory_region madness
The memory_region and memory_region_length functions are probably the
two most common functions in MAME that don't take a machine parameter
but probably should given the direction MAME has been going in
removing global variable references. Attached are massive patches to
accomplish this. I wish they could be smaller, but sadly, this is
butchery, not brain surgery.
The first patch makes some simplifications to help the second patch
along. It is a general improvement as well, and hopefully can be
applied even if the second patch is rejected. Specifically:
1. Introduced/updated some include files for files that export
functions whose apis will need to be changed (cps1.h, decocrpt.h,
ms32.h, pgm.h, fd1089.h, konami1.h). In the case of konami.c, I
renamed the file konami1.c and changed the api and callers to only
require one function export.
2. Pulled memory_region*() calls out of for loops and folded the
occasional duplicated call. The compiler can't likely infer that the
results are constant, so this should be a minor performance win as
well.
- 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)