Jump to content

Mame v0.103u5, Intermediate Update !


James

Recommended Posts

In addition to the official release, the MAME team periodically releases updates to the most recent official release. These are packaged as diff/patch files and should be applied by switching to the base of your MAME source tree (where the makefile lives) and executing:

 

patch -p0 -E <diffname.diff

 

where diffname.diff is the name of the.diff file that contains the patch.

 

0.103u5

---------

 

MAMETesters Bugs Fixed

---------------------------

esb065gre [Mathis Rosenhauer]

 

Source Changes

------------------

Undid fix for turbofrc37b1gre since it broke more things than it fixed. [Pierpaolo Prazzoli]

 

Fixed minor color issue in Cookie & Bibi. [David Haywood]

 

Updates to the Hyperstone core: [Pierpaolo Prazzoli]

- Removed nested delays

- Added better delay branch support

- Fixed PC seen by a delay instruction, because a delay instruction should use the delayed PC (thus allowing the execution of software opcodes too)

 

Hooked up watchdog for NeoGeo games and removed a number of hacks. [David Haywood]

 

Fixed hanging at the end of level 3 in klondkp. [Pierpaolo Prazzoli]

 

Fixed inputs in Renju Kizoku, Neratte Chu, Mayjinsen 2 and some dips

in Neratte Chu, Mayjinsen 2. [sonikos]

 

Improved auto_malloc so it uses less memory and doesn't have a hard-coded limit on the maximum number of allocations. Also audited the use of auto_malloc in the code and removed unnecessary checks for NULL (since auto_malloc doesn't return if it fails). [Atari Ace]

 

Fixed osd_fopen error reporting to return the correct value if you hit MAX_OPEN_FILES. [Nathan Woods]

 

Changed several byte operands in the i386 disassembler to be disassembled as unsigned rather than signed. [Nathan Woods]

 

Discrete sound updates: [Derrick Renaud]

- Added new DISCRETE_CSVLOG module that lets you log discrete nodes as CSV (comma separated values) data.

- Modified discrete core to use the clock specified in the MDRV_SOUND_ADD line.  If the clock is specified as 0, then the discrete emulation will default to the audio sample rate clock.

- Tweaked Phoenix Effect 2 sound to be more accurate matching oscilloscope data.  Changed the Phoenix discrete clock rate to a fixed rate of 120000 allowing the simulation to be more accurate with less alaising noise at the cost of speed.

- Fixed the bug in the DISCRETE_NOTE module that produced notes 1 count off.

 

Added support for registers that are not to be displayed in the register list. This is useful for registers like AX on i386, so that AX can be used in expressions but not represented on the register list. Simply precede the register name with '~' to prevent display. [Nathan Woods, Aaron Giles]

 

Added support for the various x86 8-bit and 16-bit derived registers, as hidden registers in the i386 core. [Nathan Woods]

 

Fixed background music in ESB. Updated IRQ frequency and divider to match the schematics. [Mathis Rosenhauer]

 

Improved dip switches for rocktrv2. [Chaneman]

 

Separated the allocation of graphics data from the decoding. This fixes the crashes that were introduced in u4, and will allow for decoding progress to be reported eventually. [Aaron Giles]

 

Made a clean-up pass over all the makefiles. rules.mak is gone now, replaced by cpu.mak and sound.mak. mame.mak has been reorganized. All the makefiles are now commented and should be easier to follow. [Aaron Giles]

 

Rewrote artwork scaling function to compute accurate sum over all contributing pixels. This produces better results when scaling high resolution artwork down to lower resolutions. Kept existing bilinear filter for scaling low resolution art to higher resolutions. [Aaron Giles]

 

New games added or promoted from NOT_WORKING status

------------------------------------------------------------------

Hidden Catch (World) [Pierpaolo Prazzoli]

Fortress 2 Blue Arcade [Pierpaolo Prazzoli]

 

New clones added

--------------------

Several more NeoGeo bootlegs [Razoola, David Haywood]

Jumbo Ozaki Super Masters Golf (Japan) [Team Japump]

Miss Puzzle (Nudes) [brian Troha]

 

http://www.mamedev.org/

 

Derivative Builds:

MAME32qa

MAME32FX

MAMEplus!

MAME32Hp4

MAME32plus (Ash build)

 

Dats:

MAMEinfo

 

Notes:

February 03, 2006

 

MAME32FX 0.103u5 released.

 

- Updated to MAME 0.103u5 - MAME32 0.103

- Disabled second monitor display in Sega Multi32 games. (Outrunners, etc.)

MAME Plus! 0.103u5

2006-02-04

* fixed: mame32 bug: during auditing, show audit property sheet (#2017 English board)

Link to comment
Share on other sites

If you want to get technical, this is what's in the diff:

+

+    - The watchdog timer will reset the system after ~0.13 seconds

+      On an MV-1F MVS system, the following code was used to test:

+          000100  203C 0001 4F51            MOVE.L  #0x14F51,D0

+          000106  13C0 0030 0001            MOVE.B  D0,0x300001

+          00010C  5380                      SUBQ.L  #1,D0

+          00010E  64FC                      BCC.S    *-0x2 [0x10C]

+          000110  13C0 0030 0001            MOVE.B  D0,0x300001

+          000116  60F8                      BRA.S    *-0x6 [0x110]

+      This code loops long enough to sometimes cause a reset, sometimes not.

+      The move takes 16 cycles, subq 8, bcc 10 if taken and 8 if not taken, so:

+      (0x14F51 * 18 + 14) cycles / 12000000 cycles per second = 0.128762 seconds

+      Newer games force a reset using the following code (this from kof99):

+          009CDA  203C 0003 0D40            MOVE.L  #0x30D40,D0

+          009CE0  5380                      SUBQ.L  #1,D0

+          009CE2  64FC                      BCC.S    *-0x2 [0x9CE0]

+      Note however that there is a valid code path after this loop.

+

+  -----

+

+    The watchdog is used as a form of protecetion on a number of games,

+    previously this was implemented as a specific hack which locked a single

+    address of SRAM.

+

+    What actually happens is if the game doesn't find valid data in the

+    backup ram it will initialize it, then sit in a loop.  The watchdog

+    should then reset the system while it is in this loop.  If the watchdog

+    fails to reset the system the code will continue and set a value in

+    backup ram to indiate that the protection check has failed.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...