MAME 0.81u4 was released on 8 April 2004.
The known contributors for this version are, in alphabetical order:
The known contributions for this version are, in the order specified in the whatsnew:
- Pierpaolo Prazzoli fixed the Hyperstone CPU core:
- Added addressing of next byte if in load / store instructions using Displacement Address Mode PC is used as register destination
- Added local registers wrap around modulo 64
- Added trap instructions to the dasm
- Added some debug info when high global registers are written
- Fixed some wrong format in the dasm
- Changed reset to act as an exception, as the doc claims (before it crashed if reset was used as an exception)
- Aaron Giles contributed Killer Instinct fixes:
- cleaned up memory maps
- found second bitmap page, fixing a bunch of video problems and romoving the egregious hack I had in there before
- fixed sound reset and initialization
- all diagnostics pass
- fixed coinage dipswitches
- added 2 alternate ROM sets for each game
- Aaron Giles fixed the MIPS DRC:
- Fixes an edge case where a memory access like: lw r3,$0(r0) would leave the stack in a funny state and lead to a crash.
- Instructions of the form: ld r10,0(r10) Would load the low word into r10 first, and then use the modified r10 (plus 4) as the address of the high word. Bad bad bad. Fixes the sky graphics in several of the kinst2 levels.
- smf made some ZN improvements: 24-bit rendering support for Judge Dredd
- Angelo Salese updated the 'jalmah' driver: kakumei and kakumei2 now boot but neither are playable due to protection
- Nathan Woods contributed misc Updates:
- Fixes the afore mentioned problem with x86drc.c
- Adds in a new (windows only) mode for opening files whereby files can be opened for read/write, but changes are not actually not written to the original file but rather to a temporary file. This trick is used by the MESS testing facility so that tests do not mutate the images they operate on.
- Small cleanups
- Replaces a #ifdef MESS/#else/#endif combo with a usage of the APPNAME macro
- Ville Linde updated the SPI / 386 drivers:
- raidnfgt now runs normally and correctly through attract mode and gameplay, modulo the encrypted graphics. Still kinda mesmerizing :-)
- viperp1 starts to boot now, but doesn't get very far
- R. Belmont hooked up the Z80 bankswitching, so sound started playing in some games (notably Raiden Fighters).
- Mariusz Wojcieszek fixed the sprites in groovef which is now playable, adds some RBG0 scrolling which greatly improves background graphics in cotton2, cottonbm, grdforce and othellos
- Aaron Giles made some Debugger fixes:
- This is a quick attempt to make the debugger more useable with the new memory system. The masking of addresses and data should now be working properly again.
- Also, you can go to any memory window and type 'P' to view program address space, or 'T' to view data address space.
- Aaron Giles added OSD 'NO EXECUTE' Support:
- This patch introduces two new OSD functions:
- For most platforms, these can just map to malloc and free. However, starting with WinXP SP2, if you are running on a processor that supports the NO_EXECUTE bit (currently only 64-bit AMD chips), standard user-mode memory allocations won't allow you to put code in them and execute it.
- Since this is exactly what x86drc.c does, I've added the two functions above. On Windows, these map to calling VirtualAlloc and VirtualFree, which allow you to specify the read/write/execute states of the pages thus allocated.
- Aaron Giles cleaned up the Lethal Justice / Egg Venture drivers:
- merged memory maps
- fixed video size in Egg Venture to correct flicker
- switched to VIDEO_RGB_DIRECT
- removed unnecessary ROM regions and memcpy'ing
- Curt Coder fixed and cleaned up the Rockola driver:
- Fantasy/Nibbler/Pioneer Balloon
- Correct CPU frequency from schematics
- Hooked up SN76477 sound for BOMB effect
- Merged memory maps
- Cleaned up driver a bit
- Fixed dips
- Enabled debug inputs
New games supported or promoted from GAME_NOT_WORKING
New clones added
New games marked as GAME_NOT_WORKING