James Posted February 3, 2006 Share Posted February 3, 2006 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:MAME32qaMAME32FXMAMEplus!MAME32Hp4MAME32plus (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.103u52006-02-04* fixed: mame32 bug: during auditing, show audit property sheet (#2017 English board) Link to comment Share on other sites More sharing options...
Agozer Posted February 4, 2006 Share Posted February 4, 2006 What is a Neo-Geo watchdog? This is the first time I've heard that term. Link to comment Share on other sites More sharing options...
James Posted February 4, 2006 Author Share Posted February 4, 2006 What is a Neo-Geo watchdog? This is the first time I've heard that term.<{POST_SNAPBACK}>A form of protection. Link to comment Share on other sites More sharing options...
Robert Posted February 5, 2006 Share Posted February 5, 2006 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now