Jump to content

Mame 0.88 is Released !


Recommended Posts



0.88 (includes 0.87u5 whatsnew.txt details)


General Improvements



Emulation of Sega FD1094 encrypted 68k CPUs, this will allow for significant progress

in the emulation of the remaining encrypted Sega games.  Note that we require working

CPUs to extract encryption data from in order to emulate the encrypted titles, see

http://cgfm2.emuviews.com/ for more details.  As a result of this code several of the

encrypted games will now boot (astorm, ddcrew, wb3a, wb3b, tetris, ddux, sonicbom etc.)

[Charles MacDonald - extracting data from CPUs,

   Nicola Salmoria - decryption code]


Misc fixes from Mame32Plus

ay.diff: add save state support for AY8910 and friends

crbaloon.diff: add music support

darius.diff: adjust FM/ADPCM balance

f3.diff: fix landmakr sound loading

harddriv.diff: fix undersized array causing memory trashing

mario.diff: added save state support

qsound.diff: added save state support

renegade.diff: fixed missing break; in MCU simulation

s16.diff: adjust FM/ADPCM balance

scsp.diff: fixed undersized array causing stack trashing

ssv.diff: fixed hypreac2 sound loading


i960 and model 2 update [R.Belmont, ElSemi]


- Fixed bug in movl (ElSemi)



- Removed hotd and lastbrnx hacks, the i960 fix

obsoletes them

- Added port 0 switching, player 2 start works in

several games now (ElSemi)

- Added working timer support, including timer IRQs

- Updated game status listing


Fixed some c99 related compiler issues [Jeff Mitchell, Lawrence Gold]


update to ppmast93 driver, still not playable [David Haywood]


Discrete sound changes [Derrick Renaud]


Discrete Sound Changes


* Continued cleanup of code to make it more readable


New Discrete Modules Added


* DISCRETE_NOTE - counter circuit used to create tones/music.

* DISCRETE_INTEGRATE - various op amp integration (ramp) circuits.

* DISCRETE_OP_AMP_TRIG_VCA - Did not know what to call this. :naughty:  Basically it

is a programable voltage controlled amp.  But uses only an on/off trigger.  It

has resistors to select the rise/fall times.  Also it is not a true VCA.  It

actually adjusts amplitude by clipping more/less off the bottom of the input

signal.  But it is a common circuit.


Game Driver Changes


* polaris - complete sound rewrite to use new component value code.  Hooked up

watchdog timer.


New watchdog functionality [Derrick Renaud]


Game Driver Changes


* dominos, sprint1, sprint2, dragrace, canyon, nitedrvr - added watchdog and

set to proper time using new MDRV_WATCHDOG_VBLANK_INIT function.

* firetrk, montecar, superbug, pacman, polaris - changed watchdog to proper

time using new MDRV_WATCHDOG_VBLANK_INIT function.

* galpania, galpanib - changed to MDRV_WATCHDOG_VBLANK_INIT because these

games need watchdog init at game start.


Core Changes


Changed watchdog to allow it to start at machine run start.  If not used, the

previous watchdog functionality is retained.  Only define 1 of the 2 watchdogs

per game.  If both are defined then  MDRV_WATCHDOG_VBLANK_INIT will be used



* MDRV_WATCHDOG_VBLANK_INIT(watch_count)- Initializes the watchdog in

MACHINE_DRIVER_.  watch_count is the # of vertical blanking intervals before a

forced reset.  If the time is unkown then you can use these defaults:



* MDRV_WATCHDOG_TIME_INIT(time)- Initializes the watchdog in MACHINE_DRIVER_.

time is the time in seconds before a forced reset.


New function to enable/disable the watchdog in game.

watchdog_enable(0 or 1) - used to 0=disable or !0=enable.


Made a macro that calculates the pulse time of a 74LS122 or LS123.


r is in Ohms.  c is in Farads.

c must be greater then 1000pF to use this function



Added runtime option to disable validity checks [Derrick Renaud]


Added run time option:


     Forces MAME to skip doing the code validity checks. The default is

     OFF (-noskip_validitychecks).

This new option will default to doing the test and force you to confirm you

do not want to use it.  This way users can test their submissions easily and

then speed things up when confirmed ok.


NOTE: DO NOT disable the checks when submitting code


Fixed voodoo code broken by cleanup in u3 [Aaron Giles]


Fixed qdrmfgp broken by cleanup in u3 [Olivier Galibert]


Fixed cut and paste error in chdman [René Single]


Fixed mayday inputs [stefan Jokisch]


Fixed Puzzle Club dips [brian Troha]


Input Port System Update [Aaron Giles]

PORT_INCLUDE() works the same as before.


PORT_MODIFY("tag") allows you to modify any given input port by specifying

its tag.


Any PORT_BIT() entries that you put after a PORT_MODIFY will nuke any

matching entries in the previous definition, allowing you to overwrite them

with new stuff.


I also added a few new functions:


readinputportbytag_safe() takes a tag and a default value. If the tag is not

found, the default value is returned.




port_tag_to_handler32() -- these 3 new functions take a tag string, find the

input port, and return the appropriate handler. They can be used in AM_READ,

so instead of:


   AM_RANGE(0x00, 0x00) AM_READ(input_port_1_r)


You can use


   AM_RANGE(0x00, 0x00) AM_READ(port_tag_to_handler8("MyPortName"))


I've modified exidy.c to use these features as a testbed. Let me know if you

see any problems.


Memory system changes / fixes [Aaron Giles]

* added explicit casting to the memory handler width when computing the

shifted data/mask values for read/write handlers -- this should in theory

fix R. Belmont's 64-bit issues


* added memory_install_read/write8/16/32/64_matchmask_handler functions to

allow dynamic installation of match/mask (AM_SPACE-style) memory ranges -- 

this should satisfy Frank P's request for the astrocade driver


* changed masking behavior for match/mask pairs so that an AM_SPACE with an

AM_MASK does not expand the explicitly-specified mask value -- this should

fix dwidel's problem getting Pac-Man accurate


* changed dynamic bank assignment to always assign a bank if you have

explicitly specified a mask value via AM_MASK -- this should allow mirroring

via AM_MASK if you want to, though AM_MIRROR is still preferred


Fixed OKI banking in Fixeight bootleg [Quench]


More changes [Derrick Renaud]


Game Driver Changes


* firetrk, montecar - added proper CPU clock frequency change when going

in/out of service mode.


Core Changes


Fixed some last remaining issues with the new watchdog.  The watchdog would

not remain disabled after a watchdog_enable(0) in some conditions.


Added a new function to change CPU clock speed in game.  The current scaling

factor will still apply.  eg. If you force the CPU to change clock to 1MHz

while the scaling is at 50%, the effective CPU speed will be 500kHz.  Then

reading the clock speed will give 1MHz, because clock scaling is transparent

to the driver.


/* Returns the current CPU's actual unscaled running clock speed */

int cpunum_get_clock(int cpunum);


/* Sets the current CPU's clock speed and then adjusts for scaling */

void cpunum_set_clock(int cpunum, int clock);


Fixed some problems in Steel Force [Pierpaolo Prazzoli]



New Games supported or promoted from GAME_NOT_WORKING status:



F1 Grand Prix Star II [brian Troha]

roms redumped


Sonic Boom [Charles MacDonald, Nicola Salmoria]


Mighty Warriors [Pierpaolo Prazzoli]

some sprite problems


Twins [David Haywood]

missing eeprom


Greyhound Selection [Pierpaolo Prazzoli]


BMC Bowling [Tomasz Slanina]

missing music, some wrong gfx


Field Combat [Tomasz Slanina]

bad sprite colours


Gallop Racer 3 [smf]

sound problems


Tank 8 [stefan Jokisch]


New Clones supported or promoted from GAME_NOT_WORKING status:



Tetris (Sega) (2 encrypted sets) [Charles MacDonald, Nicola Salmoria]


Wonderboy 3 (2 encrypted sets) [Charles MacDonald, Nicola Salmoria]


Greyhound trivia (alt questions) [Pierpaolo Prazzoli]


Astro Blaster (version 2a) [Mash]


New Non-Working games / clones supported



D.D. Crew [Charles MacDonald, Nicola Salmoria]

some issues with system18 emulation


Dynamite Dux (original) [Charles MacDonald, Nicola Salmoria]

some issues with system16 emulation


BC Story (set 2) [David Haywood]

more protection issues?


Super GX [Mash]

bad rom


Skelagon [Mash]

bad rom


Virtua Formula

same issues as VR



Download Mame32 v0.88

Edited by James
Link to comment
Share on other sites

I was just asking As I never seen anything better in that emulator. But if you like it thats good. :devilboy:

Ah ok. i though that there's something terribly wrong in MAME32FX and you wanted to give me some constructive feedback. :lol:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...