Professional Documents
Culture Documents
127u8
-------
Source Changes
--------------
Updated Dip Switches and Inputs for 'yesnoj' (taito_f2.c driver).
[stephh]
Changed Cube Quest laserdisc override logic. It's still a little hacky
but this works better than the previous attempt. [Aaron Giles]
Updated segac2 driver to use updated megadriv code. [David Haywood]
Removed speedups from sokyugrt, they break the game (make it too slow)
the SH2 DRC is sufficient. [David Haywood]
Did most of the protection work for Double Dealer. It appears to use
a funky video register setting involving locations $8c1e0-8c1ef range
for cards movements so it isn't playable yet. [Angelo Salese]
Added DIP LOCATIONS to items in the driver and cleaned up some of the
comments mentioning duplicate dips configurations. Not fully
understanding how the FREE PLAY was implemented, I left that not to
show a location. [Tafoid]
0.127u7
-------
Source Changes
--------------
Removed unneeded UI keys by removing the constants. Readded
UI_ON_SCREEN_DISPLAY to be changed again in the "Inputs" menu.
[stephh]
Checked, via Z80 code analysis, inputs and Dip Switches for the
following games in snk.c driver: [stephh]
- ikari, ikaria, ikarinc, ikarijp, ikarijpb
- victroad, dogosoke, dogosokb
- bermudat, bermudaj
- worldwar, bermudaa
- psychos, psychosj
Fixed the i8051 AJMP opcode to take 2 bytes instead of 3. [Grull Osgo]
Fixed old regression bug in Sengoku Mahjong that made the controls
not work when the V30 CPU core was converted to 16-bit. Specifically,
the game accesses the multiplexer with a word write instead of a byte
write. [Angelo Salese]
Checked, via Z80 code analysis, inputs and Dip Switches for the
following games in snk.c driver: [stephh]
- gwar, gwarj, gwara, gwarb
- chopper, choppera, chopperb, legofair
- tdfever, tdfeverj, tdfever2
- fsoccer, fsoccerj, fsoccerb
Space Duel: Added the P10/11 dip switch (only 4 switches instead of
the standard 8) [Franklin Bowen]
0.127u6
-------
Source Changes
--------------
NeoGeo Update: [Johnboy]
* Updated Neo-Geo game pcb infos
* 2020bba: Marked MVS and AES version
* sonicwi2: Added correct sized v2
* kof95 / kof95a:
. Renamed kof95 to kof95h
. Renamed p1 to correct chip label
. Added note
. Renamed kof95a to kof95
. Renamed p1
* samsho3 / samsho3a:
. Renamed samsho3a to samsho3
. Renamed samsho3 to samsho3h
. Renamed p1 to correct chip label
. Marked AES version
* kof98 / kof98n:
. Renamed m1 in kof98 to correct chip label
. Renamed m1 in kof98n to correct chip label
(kof98n should be latest revision, cart had very high SN
1xx.xxx)
* kof97: Marked MVS version
* samsho5 / samsho5h:
. Correct text layer size
. Marked samsho5h AES version
* neogeo:
. Updated system set to what is found on NEO-MVH MV1FS
. Added note
* ms5pcb:
. Hooked up bios dip
. Renamed bios to correct chip label
. Renamed p1 / p2 to correct chip label, marked NO_DUMP
. Added note
Converted Z80 CTC to a proper device. Updated all drivers. Added new
item to the interface which is the tag of a CPU to take the base clock
from. [Aaron Giles]
merit.c: [couriersud]
* Implemented palette & colour decoding from crt 200 schematics.
* Hooked up 6845
* Hooked up lscnblk line
* Fixed Phraze Craze gfx rom ordering
* Clocks from schematics
* Ram palette moved to static var. This should not be in RAM.
* Added save state support
expro02.c: [DITraI4D0]
- fixed DIPSW
- added graphics decode routine (probably it can be simpler)
video/kaneko16.c [DITraI4D0]
- tilemap scroll position is different for expro02, so added new
function (is it better to fix current one?)
Fixed edge case bug in the Cube Quest line CPU involving adding with
carry. [Matt Ownby]
0.127u5
-------
Source Changes
--------------
Added newest Naomi 2 BIOS. [Brian Troha]
Added generic timer devices, which simply allocate a timer but don't
prime it. This is the preferred method for allocating timers, and may
eventually be the only mechanism for doing so in the future.
[Aaron Giles]
0.127u4
-------
Source Changes
--------------
Added redump of indytemc. There's sprite/playfield flipping issues,
hence GAME_IMPERFECT_GRAPHICS. [Dazzer]
Changed Namco NB-x to use real C75 BIOS, read controls the real
hardware way. [R. Belmont]
Changed Namco NA-2 to use real C70 BIOS. Removed sound and input
simulation code. Changed the NA-1/2 MCU type to M37702. [Phil Bennett]
Fixed refresh rate and interrupts in sg1000a driver, added 8255PPI and
coin counter. [Curt Coder]
Improved DIP switch handling and added DIP locations in epos.c. [Tafoid]
Separate NBA Jam TE from NBA Jam as they are not technically clones of
each other. [Atari Ace]
Verified cpu clocks and corrected/verified OKI M6295 frequencies and pin
for Shadow Force. [Corrado Tomaselli]
0.127u3
-------
Source Changes
--------------
Implemented m90 playfield 1 and playfield 2 y-offset table. This
fixes, at least, the water effect in riskchal and the text fading
effect in the matchit2 demo. [Pierpaolo Prazzoli, Tomasz Slanina]
Started changing naomi gdrom sets to load the CHDs. [David Haywood]
Added checks to ensure that tags used for CPUs, sound chips, regions,
and devices follow some basic rules: they should be less than 15
characters long, be all lower-case, and only contain letters, numbers,
underscores, or dots (no spaces). This is to ensure that they can be
used properly in debugger expressions and don't get too long or
unwieldy to type (even 15 chars is rather long). Fixed up all tags in
the system that failed these checks. [Aaron Giles]
Added new laserdisc callback for vsync begin and changed the update
callback to be called at the end of VBLANK. Also added functions to
set the slider speed, advance the slider, and directly control the
video/audio squelch. In addition, there is a new status function to
get the slider position in general terms. [Aaron Giles]
Fixed bug that would cause watchpoints to trigger if you had a memory
window open to the watchpoint address. [Aaron Giles]
Further updates to the PR-8210 ROM simulation. Still not quite there
but the system is much better understood now. Added layout to the
PR-8210 which displays the state of the front-panel LEDs.
[Aaron Giles]
Clickable input support. Layouts can now have items which when clicked
will alter the state of an input port. This is done via the new
attributes 'inputtag' and 'inputmask', which specify an input port tag
and mask. When the given element is clicked, the state of the element
changes to 1 and the given bits in the input port are set the same as
if you had pressed the equivalent switch. [Nathan Woods]
Moved more static data into const and added some more explicit
initialization. [Atari Ace]
Added LSI BIOS to the Atari System 1 driver. Made the System 1 BIOS
a proper BIOS. Removed restriction that BIOS-related ROMs must
immediately follow the BIOS definition. [Kevin Eshbach, Aaron Giles]
Updated the Sega System 1 driver with more board information on the
Choplifter bootleg and updated the placeholders for the pals that need
to be dumped. [Kevin Eshbach]
Updated the WWF Wrestlefest driver rom names. Added save state support
to the WWF Wrestlefest driver. [Kevin Eshbach]
C352 cleanup: Removed an unused volume table dating from before the
volume was (correctly) implemented as linear. [Olivier Galibert]
0.127u2
-------
MAMETesters Bugs Fixed
----------------------
- 00596: [DIP/Input] pocketrc: The car turns only to the right and
there is no way to calibrate controls. (smf)
- 02075: [DIP/Input] mooncrgx: Cabinet DIP setting is duplicated.
(MikeDX)
- 02137: [DIP/Input] rockduck: DIP setting for LIVES is incorrect
(MikeDX)
- 02179: [DIP/Input] lethalej: lethalej crosshairs backwards
(Luigi30, MikeDX)
- 02035: [DIP/Input] gwarb: Guerrilla War bootleg doesn't need a
rotary joy (robiza)
- 02174: [Sound] dkongjr and clones + mario and clones + pestplce:
Music speed regression (Aaron Giles)
- 02173: [Crash/Freeze] radarscp, radarsc1: Hang or Reset before game
start. (Aaron Giles)
Source Changes
--------------
Optimized DISCRETE_RCDISC_MODULATED. Added X_TALs to circus. Optimized
DISCRETE_RCINTEGRATE and DISCRETE_555_ASTABLE. Optimized
DISCRETE_555_ASTABLE_CV and DISCRETE_MIXER. Optimized DISCRETE_555_CC.
The 555 and mixer changes also speed up just about every current
discrete game. [Derrick Renaud]
Added updated information about Sorcer Striker and moved Fix Eight
bootleg PCB layout down by the roms like the other layouts in the
driver. [Brian Troha]
Added redumped roms for the Bubble Symphony (bootleg with OKI6295)
set. [Brian Troha]
Added Cruis'n USA and new Raiden DX/2 readme. Cleaned up some
documentation in raiden2.c. Renamed "Raiden DX (set 2)" to "Raiden DX
(Tuning license)", and renamed ROMs to match the actual PCB.
[Guru]
Fixed Dip Switches and Inputs for 'aso', 'alphamis', 'arian' (same as
'alphamis'), 'tnk3', 'tnk3j' (same as 'tnk3') and 'athena'. [stephh]
Began the "big IO_MAP merge of 2008". A number of drivers have had
their I/O space address maps merged. [Andrew Gardner]
Changed the default bootleg gwar pcb to be joystick only, and removed
code duplication. Fixed jcross cabinet dip switches. [Nicola Salmoria]
Replaced aso ROMs (which were possibly from a bootleg) with split ones
that are definitely from an original. Renamed ROMs across sets
accordingly. [Nicola Salmoria]
Added decryption of 39in1. Doesn't get far due to very odd RAM check
routine. [Andreas Naive]
Fixed Dip Switches and Inputs for 'hal21', 'hal21j' (same as 'hal'),
'fitegolf', 'fitegol2' (same as 'fitegolf') and 'countryc'. [stephh]
Added Fist of the North Star and (partial) Demolish Fist sets
(Atomiswave) and decryption. [Andreas Naive]
Added PCB info for Hard Yardage & earlier World Class Bowling.
Corrected a few rom names. [Brian Troha]
Concluded input port cleanups for drivers W->Z. Changed Primal Rage
start buttons into input buttons. Removed unused protection bit in
Driver's Edge. Introduced a new PORT_CUSTOM which returns a tagged
input that can be used to route bits from one port into another.
[Fabio Priuli]
0.127u1
-------
Source Changes
--------------
Changed DIRECTINPUT & DIRECT3D handling, so they can be overridden by
environment variables. [smf]
Changed 68000 IRQ support so that the IRQ lines explicitly simulate
a standard demux chip connected to the IRQ lines. This means that the
sequence:
cpunum_set_input_line(5, ASSERT_LINE);
cpunum_set_input_line(3, ASSERT_LINE);
cpunum_set_input_line(3, CLEAR_LINE);
now works as expected. This required fixes to several Atari and other
drivers. [Olivier Galibert]
Additional input port cleanups in the cps1, deco, pgm, psikyo, nbmj,
and jaleco drivers. [Fabio Priuli]
Added 8303 ROM to the games using it and updated MCU simulation to
match the new findings. [Nicola Salmoria]
Fixed bug when writing AVI files with more than one RIFF chunk.
Added missing chdman error messages when extracting to an AVI file.
[Aaron Giles]
Fixed problem that would cause the "Return To Prior Menu" menu item to
not stick if one is calling ui_menu_reset() with
UI_MENU_RESET_REMEMBER_POSITION, and that menu item is selected.
[Nathan Woods]
Added save state for discrete node->output to ensure that input nodes
save states. [couriersud]
Added some initial logic to boot and run the PR-8210 ROM (i8049)
in ldplayer.c. Currently this is disabled behind a compile-time
switch. Once this is working, the plan is to incorporate this into
the existing PR-8210 emulation, but we're not there yet. [Aaron Giles]
Fixed Dip Switches and Inputs for 'jcross' and 'sgladiat'. [stephh]
Changed slider controls into a menu. For now, removed the old direct
access mechanism; instead, you must access the sliders via the main
menu. While in the menu, you can use the ~ key to turn off the menu
display and leave only the bar display, in order to see more of the
screen. [Aaron Giles]
0.127
-----
Source Changes
--------------
Converted adp to 4bpp rendering. [robiza]
Fixed bug in identifying the custom sound driver for the laserdisc.
[Aaron Giles]
Added new driver for Cube Quest. This includes CPU cores for the three
bitslice processors, as well as laserdisc support for the hacked
laserdisc that was used to drive the games.
[Philip Bennett, Joe Magiera, Warren Ondras]
Updated cps1 to use proper gfx ROMs (+ PALs) for varthj, and to load
correct A-Board PALs for QSound games. [Nicola Salmoria]
Reduced YM2612 DAC level relative to FM. This better matches real
hardware. [R. Belmont]
0.126u5
-------
Source Changes
--------------
Updated the FD1089 decryption algorythm to use the real keys generated
by the LCG as found by Andreas Naive. The algorithm is more complex
than it should be, but I haven't been able to simplify it more. The
keys are still embedded in the source. It would now be reasonable to
move them to external files; however, for several games we only have
partial keys so the files would need to be BAD_DUMP. [Nicola Salmoria]
Added readmes for Cosmo, Don Den Lover, Beatmania (CHD dumping),
Dragon Master, Gals Panic, Fantasia II, Grand Tour, New Dyna Blaster
Global Quest, Daytona "To The MAXX" upgrade, Namco System FL, Great
Sluggers, Gun Nail, Gun & Frontier, Elevator Action Returns, Battle
Bakraid, Koro Koro Quest, Gigas (bootleg), Race Drivin', Hexa, IQ
Block, Open Golf Championship, Macross Plus, Malzak, Puzzle Club,
Naomi, Puzzle Star, Puckman Pockimon, Raiden 2, Raiden Fighters 2
(single board), Light Bringer, Landmaker, Knuckle Bash 2, Mahjong
Fight Club, Vivid Dolls, Tower and Shaft, Star Soldier Vanishing
Earth, Stone Ball, Sky Lancer, Squash, Winning Spike, Versus Net
Soccer, Undercover Cops, War Gods, Space Fever, Strikers 1945, Rohga,
Super Eagle Shot, Treasure Hunt (stv), Tickee Tickats, Great 1000
Miles Rally 2 and Super Monaco GP. [Guru, Andrew Gardner]
Added the Plotting PAL to the Japanese set. Also corrected the PAL
ROM name. [Brian Troha]
Fixed NMI on Mad Alien sound CPU. This fixes shot sound and various
other sound glitches. Marked madalien and madalina as Imperfect
Graphics. They are missing an effect. When you shoot an enemy in the
dark, the whole screen lights up. Basically the headlights fill the
whole screen. [Guru, Derrick Renaud]
updated Alpha 8302 MCU simulation to match newly dumped internal ROM.
Added the ROM to Champion Baseball 2. [Nicola Salmoria]
Added video level detection and reporting to ldverify. [Aaron Giles]
Fix coolridr crash with DRC, now hangs waiting for impossible
conditions again. [R. Belmont]
Fixed bug that prevented the cheat engine from working when the
debugger was disabled. [Aaron Giles]
Moved several include files from mame/ to emu/, as they were included
by generic components in emu/ and thus should have no dependencies
on the MAME code. [Aaron Giles]
Space = play/pause
Alt = toggle frame display
Left = scan forward (when playing) or step forward (when paused)
Right = scan backward (when playing) or step backward (when paused)
0-9 = enter numbers for search
Enter = execute search to frame
[Aaron Giles]
Corrected rom names with PCB locations for Lady Bug and verified the
dump against an original Universal Lady Bug PCB. Added information
about the Universal PCB number and prom type. [Brian Troha]
Fixed the i386 CPU core's BSR implementation for the case where the
high bit is set. [Atari Ace]
Fixed sfiii3's title animation and the linear zoom effect that
OopsWare didn't improve properly since 0.122u7. [Joshua Chang]
0.126u4
-------
Source Changes
--------------
Added information to the 1943 driver (video) about priorities encoded
in PROM. [robiza]
Changed laserdisc support to parse white flags and other data from
the VBI data directly, rather than relying on the textual metadata.
Expanded video frame cache to 3. Changed the way frames are assembled
to decrease the likelihood of getting an interlaced weave. Fixed sound
creation so that it is done at reset time instead of device start,
when the sound devices aren't yet live. [Aaron Giles]
Fixed bug in winwork that caused the creation of single work items to
return NULL, and thus lead to massive memory leaks when using A/V
CHDs. [Aaron Giles]
Changed the IDE interfaces to default to choosing the region with the
same tag as the device for its master disk (assuming no slave). Added
support for specifying explicit master/slave disk regions as part of
the configuration, though slave disks are still not supported yet.
[Aaron Giles]
Added readmes for Galaga, The Outfoxies, Splatter House, Top Racer,
Kyros No Yakata, Bombs Away, Meikyuu Hunter G, Crazy Kong, Moero Pro
Yakyuu Homerun Kyousou, Lucky & Wild, Match It, Country Club,
Enforce, Elevator Action, Chuka Taisen, The New Zealand Story,
Buck Rogers Zoom 909, Head On, Victorious Nine, Youma Ninpou Chou,
Pairs, Woodpecker, Slap Fight, Alcon, Tiger Heli, Superman,
WWF Superstars, Area 51, Animalandia Jr, Avengers In Galactic Storm,
Alien 3: The Gun, Aquajack, and Missile Command. [Guru]
Added proper laserdisc support for MACH 3, Us vs. Them, and Cobra
Commander (MACH 3 hardware). Old laserdisc hacks are now removed.
The code now talks to the standard Pioneer PR-8210 interface. Also
removed hacky "target list" from the MACH 3 ROMs; this information
is now decoded on the fly from the right channel laserdisc audio.
[Aaron Giles]
Reinstated the cheat menu. It now displays all loaded cheats and
allows for them to be activated. All known cheat behaviors should
be working now. Cheats are toggled on/off with the left/right
arrow keys. Oneshot cheats are activated by hitting enter. Pressing
enter on other cheats resets them to their default values.
[Aaron Giles]
Fixed Rim Rockin' Basketball to use the HD6309 core. [Tim Lindner]
Changed cheat escaping to automatically escape && & < and <=
to and band lt and le. [Aaron Giles]
0.126u3
-------
Source Changes
--------------
More documentation on the Kiki KaiKai MCU. [Guru, Brian Troha]
Updated to build with the latest DirectX SDK, which doesn't support
Direct 3D 8 & Direct Input 7. By default, the makefile is set up to
compile the old way, but you can set DIRECT3D=9 and DIRECTINPUT=8 in
windows.mak or on the command-line to build with a more modern SDK.
[smf, RansAckeR, uRebelScum]
Cleaned up ROM definition flags and removed some ugly hacks that had
existed previously. Expanded to support up to 256 BIOSes. Updated
ROM_COPY to support specifying a tag for the source region. Also
updated the address map AM_REGION macro to support specifying a
tag for the region. [Aaron Giles]
Updated debugger windows to display the CPU and region tags where
appropriate. [Aaron Giles]
Updated -listxml to output region class and tag for each ROM entry.
[Aaron Giles]
Fixed menu handling so it doesn't swallow the tab key. [Aaron Giles]
Added new option 'cheatpath' to specify one or more paths for cheat
files. Removed old option 'cheat_file'. [Aaron Giles]
Updated xmlfile.c to specify the line number for each node, for more
accurate error reporting. [Aaron Giles]
Removed old cheat.c/.h and replaced them with code that will read and
write the new XML-based cheat format using the new cheatpath option
(cheats still need to be enabled in order to load at all). Note that
the cheats are not implemented yet, but they are fully parsed. To test
saving, whenever a cheat file is successfully loaded, it is immediately
written back out as 'output.xml' to the cheat directory for validation.
[Aaron Giles]
0.126u2
-------
Source Changes
--------------
Robustified key behavior when the debugger is visible. Should now
properly ignore the "break into debugger" keypress and not allow
related characters to filter through. Removed some hacks related to
making that work in the past. [Aaron Giles]
Changed short names for STV BIOS back to single words. [Brian Troha]
Changed -listxml to now output the tag names for CPUs and sound chips.
[Aaron Giles]
Changed the 6532 RIOT device into a proper device. Rewrote the
logic to be simpler and leverage the new attotime functions. Changed
the I/O port setters to specify a mask, and changed the I/O port
callbacks to pass in the previous value. Updated tourtabl and
gameplan drivers to use the new device interface. [Aaron Giles]
Fixed 8257 DMA terminal count stop for autoload mode and added
callback function existance check. [Miodrag Milanovic]
Completed removal of all explicit calls to input_port_read_indexed().
[Fabio Priuli]
Moved more items out of .data by either applying const, removing the
non-zero initializer (if its overwritten by init/reset) or by adding
appropriate initialization code. [Atari Ace]
0.126u1
-------
NOTE: The cheat engine is disabled as of this version. It is
currently undergoing a desperately-needed complete redesign and
rewrite from scratch. By the time 0.127 is ready, we should have
support for the vast majority of existing cheats working once
again.
Source Changes
--------------
makemeta changes: [Aaron Giles]
* Split out Manchester code parsing into a separate utility module.
* Rewrote Manchester code parsing to be clock based.
* Updated makemeta to call the new functions.
* Changed makemeta to parse a different format for metadata.
* Fixed Huffyuv decompression in aviio.
* Added more robust logic to parse out the white flag.
Newest Japanese Naomi BIOS added [batman2509, starke/peap]
Added new module uiinput.c which manages input for the user interface.
The OSD is responsible for pushing mouse events and character events
to this interface in order to support mouse movement and text-based
input (currently only used for the select game menu). Added support
for navigating through the menus using the mouse.
[Nathan Woods, Aaron Giles]
Redesigned the UI menus so that they can maintain a richer state. Now
the menus can be generated once and reused, rather than requiring
them to be regenerated on each frame. All menus also share a comment
eventing system and navigation through them is managed centrally.
Rewrote all the menus to use the new system, apart from the cheat
menus, which are now disabled. Reorganized the video menu to make it
easier to understand. [Aaron Giles]
Fixed edge case in the DRC front-end that would incorrectly tag the
end of a sequence as "return to start" even if the last instruction
did not abet the starting instruction. [Aaron Giles]
Added save state suport to Konami CPU & Aliens. [Nicola Salmoria]
Moved kodb to fcrash.c (which will probably end up being the home of
the cps1 bootlegs). [David Haywood]
Changed the ROM loading code to actually alter the region flags based
on the CPU endianness and bus width when creating the region, rather
than fixing them up on the fly. This means that callers to
memory_region_flags() will get the correct results. [Aaron Giles]
The 'size' field is always required, and can be b/w/d/q for byte, word,
dword, and qword accesses. [Aaron Giles]
0.126
-----
MAMETesters Bugs Fixed
----------------------
- 01896: [Misc.] bigfight, cyclwarr: Access Violation crash
(Aaron Giles)
- 01964: [Misc.] gtg2j: Access Violation (Aaron Giles)
- 01951: [Misc.] cybrcycc: Crash during intro. (Aaron Giles)
- 01965: [Misc.] driveyes: Access Violation (Aaron Giles)
- 01983: [Cheat System] Force Range cheats not working (couriersud)
- 00388: [Graphics] gaia: sometimes fails to display shadows beneath
enemies or the sprites of the old man that talks to you.
(David Haywood)
- 01984: [Cheat System] Incorrectly populating empty spacer comment
cheats (Aaron Giles)
- 01980: [Cheat System] Enable Cheats menu only showing the first 24
cheats for ANY game (Aaron Giles)
- 01971: [Cheat System] Cheat menu flickers. (Aaron Giles)
- 01967: [Misc.] output.c unregister_client crash (Jeff Shanholtz)
- 01963: [Misc.] screenless systems: memory leak with -mngwrite
(Aaron Giles)
- 01854: [Graphics] All sets in thepit.c: Player 2 in cocktail mode
has screen reversed (couriersud)
- 01952: [Cheat System] sfex2p: Cheat crash. (Shimapong)
- 01968: [Cheat System] -CHEAT trigger causes MAME crash when starting
or exiting with some sets. (Shimapong)
- 01969: [Cheat System] some problem with cheat system (Shimapong)
Source Changes
--------------
Replaced kodb set with complete dump from known bootleg board
(different gfx rom layout). Added wofhfh bootleg from mame32plus.
Added SF2 Magic Turbo Delta bootleg as non-working. [David Haywood]
Fix scrolling speed in case a cheat dat has invalid (i.e. 0) settings.
[couriersud]
0.125u9
-------
Source Changes
--------------
SH2 core: [R. Belmont]
* refactored to separate out things that aren't part of the
interpreter.
* converted context struct to go through a pointer
Fixed some save state problems in the DCS driver. Still comes out
garbled on a load, however. Extended memory.c to support up to 4096
banks. [Aaron Giles]
Adds rom loading for the cadillacs & dinosaurs sets with PICs, and
for several similar punisher sets. No good dumps of the PICs exist,
and this is mainly for reference so that we don't forget the graphic
rom loading on them. They don't work. They're basically the same set
from different PCBs, so one will probably be removed eventually.
[David Haywood]
0.125u8
-------
Source Changes
--------------
Updated config.txt to describe debugger. Turned off debugger flag by
default. [Aaron Giles]
Fixed input port read during init on most (Super) System 22 games.
[R. Belmont]
0.125u7
-------
Source Changes
--------------
Fixed input port read at init time in grchamp.c. [Curt Coder]
Fixed input port read validation. The previous check was way too
aggressive, and prevented CUSTOM_INPUT handlers from reading other
ports. This one sets an "all clear" flag as soon as the configuration
data is loaded. [Aaron Giles]
dkong.c: Merge driver init code for drakton and strtheat [couriersud]
* made decryption for drakton and strtheat more compact
* moved decryption and driver init code into dkong.c
* deleted drakton.c and strtheat.c
Fixed poor default CLUT handling in the voodoo driver. [Aaron Giles]
0.125u6
-------
Source Changes
--------------
MIPS3 recompiler: [Aaron Giles]
* added UML comments for common state variables
* removed some unused fields
* implemented LL/LLD/SC/SCD (only works single-processor for now)
Created common virtual TLB managment module. Updated MIPS and PowerPC
code to make use of it. [Aaron Giles]
Added new option: -snapsize, which lets you specify the target
resolution for snapshots and movies. The existing behavior is still
the default: create snapshots and movies at native pixel
resolutions. [Aaron Giles]
0.125u5
-------
Source Changes
--------------
Updated 68681 DUART: [Mariusz Wojcieszek]
- converted to device interface
- converted to 8 bit device
- added input and output port
- added X1/16 timer
In the i8051 core, timer 0's second split counter was incorrectly
checking the Timer 1 Run Control Bit. Fixed it. [Jim Stolis]
Firebeat driver:
- added VBLANK IRQ clear
- added ATAPI IRQ clear
- tried to add UART IRQ clear but it doesn't yet work
- most of the games start to show something again with these changes
- added fast RAM region
0.125u4
-------
Source Changes
--------------
Made it possible to pass a NULL errorbug to input_port_config_alloc().
Fixes -listxml crashes. [Nathan Woods]
Adjusted NamcoNA output rate to match pitch with F/A and Cosmo Gang
the Puzzle soundtrack CDs. [R. Belmont]
Updated the 53c810 SCSI adapter to pass IRQ state with the IRQ
callback. [R. Belmont]
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
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. [Sonikos]
Made duplicate input port bits an error now that all the warnings are
fixed. [Aaron Giles]
0.125u3
-------
Source Changes
--------------
Changed default DIP switches in onetwo.c. Common coinslot mode seems
broken, or our code is wrong. [David Haywood]
Fixed COP420 instructions JSRP, LBI, LQID, and SKT. Draco now has
sound. Also fixed COP420 instructions XAS and INIL. Fixed cycle count
for extended opcodes. Added CKO general purpose input. [Curt Coder]
Fixed behavior of toggle switches so that they don't lose their value
when the UI is up. They also can now be used for multibit DIP switch
settings in which case they toggle through all the options. Added
new functions input_field_select_next_setting() and
input_field_select_previous_setting() which can be used to iterate
properly through DIP switches. Fixed the behavior for cases where
conditional ports are in play (you could get stuck). Changed uimenu.c
to call these instead of implementing its own. [Aaron Giles]
Added support for a NULL set of input ports, used by the empty driver.
[Aaron Giles]
Made gijoe not crash, but still don't understand what the original
code was trying to do. [David Haywood]
Moved suprpool to a better match hardware. Fixed the ROM load and
added a list of PCB components. [Roberto Fresca]
Added new option -snapname which lets you provide a template for how
snapshot names are generated. See config.txt for details. [Aaron Giles]
Fixed bug that caused DIP switches to be improperly read from game
cfg file in certain circumstances. [Aaron Giles]
* Deleted unused hacks of default search region for Neo Geo and
TMS34010
0.125u2
-------
Source Changes
--------------
Fixed long-standing bug with Emeralda text colors. A sprite
attribute exists which signals an alternate interpretation of
palette ram. Fixed priority for the bitmap layer used in Numan
Athletics. [Phil Stroffolino]
UML:
* Added back-end validation mechanism, and a handful of tests as
examples. This will be expanded in the future.
* Added several new opcodes:
- SAVE dumps the entire virtual machine state to a struct
- RESTORE applies the data in a struct to the live state
- LZCNT counts leading zeros in an operand
- XTRACT extracts a bitfield to another register (rlwinm)
- INSERT inserts a bitfield into a register (rlwimi)
* Added new back-end function get_info() which returns information
from the back-end about how many actual registers will be
mapped.
x86 back-end:
* Implemented all new opcodes.
* Implemented get_info() function.
* Fixed several bugs relating to shifts/rotates and optimizing out
cases incorrectly.
x64 back-end:
* Implemented all new opcodes.
* Implemented get_info() function.
* Added defines for new Penryn opcodes to x86emit.h.
* Added support for ROUNDSS and ROUNDSD on Penryn architectures.
This hasn't been tested. If you have a Penryn-based system,
give it a try.
* Fixed several bugs relating to shifts/rotates and optimizing out
cases incorrectly.
C back-end:
* Implemented all new opcodes.
* Implemented get_info() function.
* Cleaned up operand sizing.
* Fixed several errors that made it not work on bigendian systems
MIPS DRC:
* Added some instrumentation for the MMU. To enable it, turn on
PRINTF_MMU at the top of the file.
* Fixed front-end so that virtual no-op instructions are still
targeted as branch targets.
* Fixed front-end to mark the beginning of each sequence as
needing TLB validation, since any sequence can be jumped to
from anywhere.
* Redid the MIPS3 TLB implementation. Fixed the exception vector
and type handling. Changed the bitfields to directly map from
the MIPS TLB format. Added distinction between TLB fill and TLB
valid/modified exceptions.
* Added separate modes for user, supervisor, and kernel modes.
Each mode does proper verification of addresses now and
generates address errors for invalid accesses.
* Fixed several bugs in the TLB implementation; not everything
works yet but it's a lot closer.
* Made COP0 access checking mandatory in non-kernel modes.
* Fixed several crashes when recompiling virtual no-ops.
* Fixed TLB bug where entries for virtual address 0 were present
by default.
* Fixed bug in the map variable implementation that would
sometimes result in incorrectly recovered values.
* Implemented IDT instructions. All invalid instruction asserts
are now runtime-only.
* Added support to map a few common registers to machine registers
if the machine supports it. Currently only x64 on Windows has
enough free registers to do so, though PowerPC will almost
certainly be able to take advantage of this. Gives a minor
speedup.
* Updated to use INSERT and XTRACT where appropriate.
* Cleaned up register usage to free up one machine register for
x64 on Linux.
Some work on lwings.c: Input clean up, added dip locations, fixed
lwingsb life DIP switches, and merged machine drivers. [Sonikos]
Updated Gorf sample volume to match new samples from Chris Law.
[Chris Law]
0.125u1
-------
Source Changes
--------------
Improved cbombers sprites [Philip Bennett]
Add feature to the cia6526: in READ operation the value can be forced
by a external circuit; this feature is necessary for MESS. [robiza]
Marked the sound roms on Q*Bert's Qubes as bad and changed the flag to
imperfect sound. The current sound cpu roms are the same as on a
normal Q*Bert board, which is incorrect. At least three sound effects
are present in the real qq-snd roms but not the Q*Bert qb-snd ones.
[Lord Nightmare]
Fixed the ROZ effect in Namco NA1 driver. ROZ tilemap is actually an
additional tilemap. Fixes a bug where a "roz enable" test was causing
a normal layer to be rendered with ROZ effects in-game. There is no
roz enable register - it's always available for mixing with other
tilemaps and sprites. This also adds a missing NAMCO logo zoom/spin
effect in Emeralda's attract mode. [Phil Stroffolino]
Rewrote the Gaelco video ram encryption, which finally makes sense.
The key observation was that when decrypting the second word, both
encrypted and decrypted bits of the first word are used. Many thanks
to Javier Valero for the detailed information that made this possible.
[Nicola Salmoria]
Fixed coin inputs, added validator input, and added notes on inputs to
the tmaster driver. [Luigi30]
The old 32-bit and 64-bit MIPS recompilers are now officially
retired. The new system provides similar performance (within
5% generally) to the old system and has similar compatibility.
The only currently known issues are some problems with the
two Gauntlet 3D games.
Found the proper algorithm to decrypt the blue TAB PCB in the funworld
driver. Replaced the old decryption tables with the proper decryption
scheme. Updated technical notes. [Roberto Fresca]
Shift+F12 still produces MNGs for now, though this might change
in the future.
Fixed crash in dynax games due to missing MSM6242 device. [Dirk Best]
Changed Black tiger main Z80 clock to 6MHz and sound Z80 clock to
3.579545MHz as verified on PCB. [Corrado Tomaselli]
0.125
-----
Source Changes
--------------
Added video enable/disable feature in m90 driver. [robiza]
Added xchg and a few other missing opcodes to x86emit.h. [Aaron Giles]
0.124u5
-------
Source Changes
--------------
snookr10 updates: [Roberto Fresca]
- Decrypted the apple10 tile matrix.
- Partially decrypted the apple10 color codes.
- Added encryption notes.
- Updated technical notes.
Merged memory maps for tunhunt, tumblep, tugboat, trucocl, and truco.
[Andrew Gardner]
Massive update to ROM naming in the CPS1 driver, also loading smaller
eproms for Japanese sets instead of the larger mask ROMs where
possible. Added information about B-Board revisions where possible.
There is still work to do on this regard but this is a first step in
untangling the mess. [Nicola Salmoria]
0.124u4
-------
Source Changes
--------------
Improvements to aerfboo2: [robiza]
- fix bg1 and bg2 offset
- fix sprites
- promoted to "working" (NO SOUND)
Added a macro for the CDP1869 interface, and made write handlers
optional. [Curt Coder]
Fixed 2 opcodes for quizf1: now the little machines move correctly.
[robiza]
Changed the inline validity checks to work around GCC bug #35885.
[Wilbert Pol]
0.124u3
-------
Source Changes
--------------
PSX core updates: [smf]
- removed casts and removed unnecessary decoding from NCLIP.
- added signed values to PAIR & PAIR64.
- renamed PAIR64.lw to PAIR64.q
- tidied up DPCS, improved flag calculation and added support for
lm/sf fields.
- added sf/lm support to INTPL, improved flag calculation &
calculates correct rgb
- fixed calculation of bit 31 of GTE FLAG register, when writing
to it directly.
- added lm mode to OP and fixed the calculation.
- added lm mode to SQR.
Fixed crosshair update when the game is not polling the coordinates.
[smf]
Merged CPS1, CPS2 memory maps and some tweaks from schematics, though
to get perfect memory maps dumps of the A-board PALs would be needed.
[Nicola Salmoria]
Added machine parameter and macros for the CDP1802 callback functions.
This seems to have fixed the player sprite flashing in Destroyer/
Altair/Draco. [Curt Coder]
Added support in the T-11 core for an external vector via irq_callback.
Apparently the hardware actually did support this and it is necessary
for emulating the BK 0010/11 computer in MESS. [Aaron Giles]
0.124u2
-------
Source Changes
--------------
Changed the system to show a message if coin-lockout is active and
a coin key is pressed. [couriersud]
Reverted previous SCSI CD change which broke some games. [R. Belmont]
Fixed an erroneous debug change which leaked into the last version of
the namcona1 update. [Pierpaolo Prazzoli]
Rewrote INP recording from scratch, since all old INPs are broken
anyways. Header now includes timestamp, which overrides the default
time base for MAME's system time. Each frame recorded now gets a
timestamp. Analog ports are recorded once per frame and interpolated.
Analog port calculations are all done in fixed point for consistent
results. A bunch of other minor tweaks in the input port code.
NOTE: There may still be a few changes to the final INP format.
[Aaron Giles]
Improved graphic decoding for Legionnaire, the BK3 tiles are now
correctly extracted from the TXT region, map screen has correct
tiles now. [David Haywood]
Removed CPS1 tile kludges and replaced with per-game ROM mapping
tables. Ideally, the ROM mapping should be derived from mapping of
the PALs found on the B board. Note that this is a significant change
and some new bugs might be caused by it. Unlike previous bugs,
where extra garbage tiles would appear in the games, the new bugs
would be tiles or sprites MISSING--so they will be harder to notice.
This would happen because in some cases the 16x16 regions of the gfx
ROMs can be used by both scroll2 and sprites, while in other cases
they must be separated. [Nicola Salmoria]
Added mising TC0060DCA sound mixer to the Taito Z driver. Marked one
dblaxle ROM as BAD_DUMP. [Nicola Salmoria]
Fixed nec v30 dasm when a "real-time encrypted cpu" is used. Also
fixed Execution Clocks for add,addc,and,or,xor,cmp,sub,subc
instructions. [robiza]
Updated all cores using 8-bit handlers to explicitly call the 8-bit
handlers with the appropriate endianness. [Aaron Giles]
Fixed a few games which were calling n-bit handlers directly to use
the generic forms. In the future, this is all the access drivers will
have. [Aaron Giles]
Enabled roz tilemap in emeraldia, but it's not centered in the right
position when it's not in its original dimension. [Pierpaolo Prazzoli]
Cleaned up the Machine usage in the osd/windows files and added the
running_machine parameter where possible. [Oliver Stoenberg]
0.124u1
-------
Source Changes
--------------
Renamed galaxian.c -> galaxold.c. Updated all drivers accordingly.
[Aaron Giles]
NODE_XXX = NODE_SUB(XXX, 0)
NODE_XXX = NODE(XXX)
NODE_XXX_YY = NODE_SUB(XXX, YY) with YY != 00
This should e.g. make discrete sound emulation easier when dealing
with e.g. flip flops (Q & QQ) and binary counters.
* Added sanity checks to check consistency issues introduced by this
change
* Modules specify number of outputs ==> Certain special modules
(WAVELOG) may no longer be used as input nodes
* Removed explicit (NODE_XX + expr) from a couple of drivers
Add input ITEM_IDs for additional axes and switches. Also added
ITEM_IDs for up to 4 hats/POVs. [couriersud]
Merged memory maps for half of the W drivers. Also made a couple of
random touchups for X, Y, and Z drivers. [Andrew Gardner]
Fixed DS2401 state loading now that the digital i/o board's serial
number has been changed to a const by not saving it. As the serial
number cannot be changed at run time it was rather pointless. [smf]
Various SCSI devices register state items by their disk ID, which are
not unique across device types. Introduced a device-type offset for
CD-ROMs so their registrations don't clash with harddisks.
[R. Belmont]
Fixed tilemap viewer to draw the whole tilemap when categories are
used. Added new option TILEMAP_DRAW_ALL_CATEGORIES to do this
efficiently. Updated several drivers to use this instead of rendering
each category independently where appropriate. [Nicola Salmoria]
Added new makefile flag VERBOSE which enables gcc's verbose output
during compile. [Marc Sandusky]
Fixed CPS1 background color. This fixes 3 wonder (game start) and
mtwins (explosion during attract). It seems to break Varth, however,
and has dubious effects on the boot sscreens of avsp, sfa3 and
possibly other CPS2 games. [Nicola Salmoria]
0.124a
------
0.124
-----
[SCSI] Fixed case when no device exists (e.g. running the sys573 BIOS
directly). [R. Belmont]
Got most of the Konami PPC games running again. [R. Belmont]
Changed the zombraid gun input ports to work with the calibrated
settings. [Derrick Renaud]
Added validity check to ensure input port tags don't have duplicates.
Fixed several drivers where there were duplicates. [Aaron Giles]
Redid video timing in orbit with raw parameters. Added full memory map
and a few other cleanups. [Aaron Giles]
Source Changes
--------------
Added a new device type for timers. Where applicable, added a parallel
set of timer functions that take a device_config instead of an
emu_timer. Added MDRV_TIMER_* macros to define the timers in the
machine driver. Implemented both periodic and scanline-based timer
variants. Modified Space Encounters and Centipede to make use of this
feature. Going forward, this is the preferred way of creating periodic
timers. [Zsolt Vasvari]
Conerted the MPU4 driver to use an HD6845, as the Hitachi part was on the
PCB, while also using it to generate the VBLANK, rather than hardcoding
a value. Added the pulldown resistor to the network, and added all the
conditional inputs. Please note that on the later Cabinet Types (Ready
Steady Go-1 onwards), the 10p slot is locked out (location of the true
register for this is unknown), but the input setting is correct - you
have to use Coin 2 or higher to get money in. [James Wallace]
Source Changes
--------------
Fixed flickering in Electric Yo-Yo. Changed qix driver to use the
MC6845's VSYNC notification for interrupts. [Zsolt Vasvari]
Fixed the crash in Galaga caused by the slightly altered video timing.
[Zsolt Vasvari]
Changed how the PowerPC MMU is enabled at compile time, to cut down
on the amount of unused functions in MAME. [Nathan Woods]
Adds some new 6845 varieties: MC6845-1, H46505, HD6845 and SY6545-1.
[Zsolt Vasvari]
Moved crosshair code from video.c into its own module. Simplified
crosshair logic and made it screen device based. [Zsolt Vasvari]
Phase 2 of the Deal 'Em input changes (these work well with the
default cabinet type, I need to do some conditional input work
to fix them fully), and also a conversion to the resnet code.
Unfortunately, this still doesn't fix the apparently needed
transparency. [James Wallace]
Source Changes
--------------
MC6845 updates: [Zsolt Vasvari]
* now signalling both 0->1 and 1->0 transitions of synching pins
* added mc6845_assert_light_pen_input; uses a timer for latching
the light pen address
* added reset device function
* implemented VSYNC height computation difference between the
Motorola and the Rockwell devices
* since the Commodore 40xx computers program an HSYNC width that
extends past the end of the scanline, I am clamping it in lack
of anything better to do
* added support for the Commodore 6545-1 device type
* added support for the status register
* better variable names
* more asserts
Fixed SH4 refresh ticks value of 0, makes awbios not blow up the
timer system. [R. Belmont]
Updated dkong driver to use two discrete structs which were previously
not being used: [couriersud]
* dkong walk using a jump struct
* radarscp using a dkong 555 struct
Naomi: Use defines instead of magic numbers for IRQ sources, add
VBL-out. [R. Belmont]
Moved watchdog processing logic into its own module. [Zsolt Vasvari]
Replaced sprite multiplexing hack in tp84.c with
video_screen_update_now() on sprite RAM write. General driver
clean-up. [Zsolt Vasvari]
Defined new set of memory handler functions which are similar but
which pass a const device_config * in place of the running_machine *.
These are called read8_device_func, etc. Added macros
READ8_DEVICE_HANDLER() for specifying functions of this type.
[Aaron Giles]
Added the new display types to the listxml DTD. [Oliver Stoneberg]
Internal address map constructor changes: [couriersud]
* pass running_machine parameter to construct_map_##_name
* change "Machine->" to "machine->" in AM_BASE_MEMBER, AM_SIZE_MEMBER
* pass Machine in construct_address_map
0.123u3
-------
Source Changes
--------------
Corrected clock speeds for the megasys1.c boards. Yes, the games
actually ran _THAT_ slow! [Brian Troha]
bionicc.c: [couriersud]
* Added cpu clocks from schematics
* Comment about z80 nmi generation
Removed the confirmed bad dump of Virtua striker 2 2000. [Brian Troha]
Added typedefs for all the machine config callback functions at the
top of driver.h. [Aaron Giles]
Added support for original Omega Race state PROM. [Mathis Rosenhauer]
Added basic support for the NEC uPD7801, uPD78C05, and uPD78C06 CPUs
to the uPD7810 cpu core. [Wilbert Pol]
Some improvements to the 6850 ACIA CTS pin checking logic and the MPU4
ACIA clock logic. [James Wallace]
One-line fix for the z80pio. At the moment when the interrupt control
word is sent (with interrupts enabled), an interrupt occurs. In
reality, interrupts are disabled until the interrupt mask byte is
sent. [Robert]
0.123u2
-------
Source Changes
--------------
csk.c driver improvements: [Mirko Buffoni]
* Added DIPLOCATION macros to all Dip Switches. All DSW are verified
through test mode.
* Fixed custom_io_r which is used for protection but also for
keyboard input.
Fixed build with external zlib. [R. Belmont]
Fixed Dip Switches (especially coinage) and inputs for 'mpatrol' and
'troangl' (and their clones). Tried to "unify" the two drivers (I
still think that some things can be merged). Added iremipt.h source
file (same purpose as taitoipt.h). Fixed Dip Switches and inputs for
'alpha1v'. The game is now more playable to me but I left the
GAME_NOT_WORKING flag as I think there are still some things to look
at). [stephh]
Added and hooked up AICA (Naomi sound chip). Naomi boot sounds now
play. Since it's an SCSPx2 with ADPCM instead of FM it's already
feature-complete except filter envelopes. A bug in the ARM7 core
causes incorrect pan/level values to be computed in e.g. the Naomi
SOUND TEST menu. This is not a defect in the AICA.
[ElSemi, Deunan Knute, kingshriek, R. Belmont]
Fixed Dip Switches (especially coinage) and inputs for '10yard' (and
its clones). Tried to "unify" the driver with m52 and m57 drivers
(I still think that some things can be merged). [stephh]
Fixed one or two dips in the mirage.c driver and found the "service"
switch and likely start of inputs. [Brian Troha]
Connected the Shadow Warriors buttons like they are wired on the
original pcb (which is jamma). [Corrado Tomaselli]
Fixed a few corner cases in the 6840 emulation based on running the
MPU4 test ROMs, and added the ability to dynamically alter the
external clock frequencies in game. [James Wallace]
Fixed some incorrect rom dumps for Double Dragon 3 (Some of the dumps
were based of the bootleg and not the original.) and updated the name
and location to actually match that of a real board. [Kevin Eshbach]
Added missing SH4 instructions and bugfixed the FPU. Improved Naomi
I/O board emulation and added working controls. [Samuele Zannoli]
Changed all drivers using the MC6845 chip to use the new device
interface. Removed mc6845_config. [Zsolt Vasvari]
Removed the unnecessary pen array lookup from some INDEXED16 drivers.
[Zsolt Vasvari]
Removed implicit screen #0. This means that ALL DRIVERS MUST
EXPLICITLY DECLARE THEIR SCREENS. Updated all drivers to do
so. While there, grouped all MDRV_SCREEN_* parameters together.
Also removed unnecessary VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR.
Also removed VBLANK and bitmap format information from vector
games. This was painful and very tedious. [Aaron Giles]
0.123u1
-------
Source Changes
--------------
Removed 'type' parameter from tilemap_create. [Zsolt Vasvari]
audio/dkong.c: [couriersud]
* fix dkong audio over-modulation issue with DAC sound
* surround the fix with a DK_REVIEW define for later review.
Further altered the Exidy 440 code in preparation for moving to proper
sound chip emulation. [Zsolt Vasvari]
Fixed DIP switches and inputs for all games in cvs.c. [stephh]
Added more accurate emulation of the priority system and the beam
logic in stactics. Removed color table. Centered crosshair. Used
proper game orientation. Unified memory maps. Switched game to use the
artwork system. Set GAME_IMPERFECT_GRAPHICS until artwork is created.
[Zsolt Vasvari]
In the cps2 driver, Changed the GAME definitions to reflect how many
players and how many buttons there are for each game. Rewrote the
INPUT_PORTS definitions to use PORT_INCLUDE, PORT_MODIFY and
PORT_CUSTOM macros. Added a few notes about the inputs when I thought
they were needed to avoid wrong bug reports. Started to clean the
driver. [stephh]
Did some cleanup of the 'special case' mess that the rallyx driver
has become. [Zsolt Vasvari]
Changed qix.c to RGB32 mode and made its videoram_w do the partial
updating instead of a per scanline timer. [Zsolt Vasvari]
Fixed 'mario' and 'masao' memory maps to match the Dip Switches port
name. [stephh]
Added DIP locations for sitv, sicv, invadpt2, lrescue, invasion. Fixed
coin2 for superinv & invasion. [RansAckeR]
Several more risky challenge opcodes. You can now see "gameplay".
[robiza]
0.123
-----
Source Changes
--------------
Fixed crash in debugcmt with starting with no game on the command-line.
[Andrew Gardner]
Fixed ADPCM in m62 games. Did some additional cleanup. [Aaron Giles]
0.122u8
-------
Source Changes
--------------
Added deprecat.h that contains some deprecated/discouraged contructs.
The idea is to create extra work if a driver wants to use these and
hopefully gives an incentive to look for an alternate solution. Added
#include of deprecat.h that rely on these contructs. Removed a bunch
of unneccassary #include's from these files. [Zsolt Vasvari]
Fixed the CPS driver to at least display the correct clock in the
driver info, by degrading the clock through alternate means.
[David Haywood]
Added PCB layouts for Penguin Bros & Puzzle De Bowling based on
Hi-res pics. Corrected the seta2.c 68301 base clock as 50MHz / 3
(16.66666MHz) as all the Seta2 hardware has a 50MHz OSC. Secondary OSC
are for other chips (28MHz and or 32.53047MHz). [Brian Troha]
Simplified video code and adjusted some set names in the leland
driver. [Zsolt Vasvari]
Removed non-existent, second M6295 from Hit the Ice. Fixes missing
sounds (e.g. team select screen). Hit the Ice/Violence Fight now
share the same sound CPU memory maps. [Philip Bennett]
Verified the sound roms for Rock'n 3 and added proper names. Added
PCB layout for sound rom board only. [Brian Troha]
Cleaned up pooyan driver. Save states, full memory maps, proper NMI
generation, etc. Flipped video to align better with Time Pilot.
[Aaron Giles]
Changed 6840 interrupt handling to work like the recent 6821 changes.
Updated MPU4 driver accordingly. Updated Scorpion 2 driver to match
MPU4 coding style. [James Wallace]
Added dip locations to about half the games in seta.c. [Brian Troha]
Fixed reset crashes in all Z180 games. Removed the various busy loop
and non-exact optimzations from the Z180 core. [Zsolt Vasvari]
Added H8/3007 & H8/3044 variants with their memory maps. Preliminary
implementation of the H8/3007 timers. [Luca Elia]
0.122u7
-------
Source Changes
--------------
Added internal divider on m680* series CPUs (except the original
m6800). Updated clocks on all games using them to remove the explicit
divider. [Aaron Giles]
Changed one of the cheat calls back to using more generic switch
detection so they can be triggered via joysticks. [Aaron Giles]
Added dip locations to Real Break. Filled in a couple of dips for the
Pachinko Gindama Shoubu games. [Brian Troha]
Fixed default debugger memory view width for CPUs with >byte-sized
minimum. Made menu updating dynamic at click time, fixing issues with
incorrect checkmarks. [Aaron Giles]
Fixed saving i8085 callbacks across a reset. Added 'pull' callback for
the SID pin. This is needed by the Red Alert voice board.
[Zsolt Vasvari]
Fixed i8051 timers from firing when not enabled. Checking TCON alone
is not enough to invoke timers. Added IE SFR flags in conditional.
[Jim Stolis]
Added all the known Naomi BIOS dumps along with descriptions and
information about region bytes & version numbers. [Brian Troha]
Added support for the BLX opcode in ARM7 THUMB mode. [SGINut]
Removed the use of the global Machine from a number of places in the
code. [Zsolt Vasvari]
Removed all peplus memory hacks and game specific DRIVER_INIT. There
are now just two DRIVER_INIT, one for normal boards and one for
superboards. Temporarily disabled AutoHold Cheat but documented
addresses for future update. [Jim Stolis]
0.122u6
-------
Source Changes
--------------
Swinging Singles cleanup: [Tomasz Slanina]
- hooked up crt6845
- converted to tilemaps
- simplified protection(?) emulation
- removed tilemap, a bit more low level video hw emulation
- fake colors
sauro.c: [couriersud]
* revert promsize to 256 for trckydoc
Disabled code in the TMS5220 that set the Buffer Empty flag after a
stop frame. This fixes Victory. This might be the incorrect fix but
the old code wasn't working either. [Zsolt Vasvari]
Hooked up revx dcs reset line. Signaled IRQ on correct CPU when DCS
sends data back (duh). [Aaron Giles]
Adds dips for Water Balls. Adds dip port locations to all dips.
[Brian Troha]
Verified and changed cpu frequencies and oki m6295 pin 7 on the
following pcbs: Asuka&Asuka, Cadash, Equites h/w games and sound
board, F1GP, Super Formula, Gladiator, Ping Pong king, Great
Swordsman, Irem m52 sound board, Tropical Angel, Explosive Breakers,
Magical Crystal, Mad Gear, Roller Aces, Chinese Hero, Simpsons,
Golfing Greats, Time Pilot 84. [Corrado Tomaselli]
Hand fixed Road Runner's corrupted ROM. We are 99.99% sure that the
bad bytes are the same as the Desert Gun ones. [Zsolt Vasvari]
Added clocks to the MCR sound boards and some of the MCR games. Added
TMS5220 variants TMS5200 and TMC0285 as proper chips. Changed MCR
squawk & talk to use the TMS5200 as documented. [Aaron Giles]
First pass at fixing the cpu clock speeds on the playstation based
hardware. The system 10 & 12 clock speeds have been raised as they
run on an upgraded chipset. The internal divide in the CPU core has
been set to 4 as we have no wait states, incorrect dma timing,
no gpu timing, no dma bus stealing and no gte timing. [smf]
0.122u5
-------
Source Changes
--------------
Fixed flipped tilemap offset for scramble and clones (playable
cocktail mode). [couriersud]
Added code to debug 64-bit builds to allocate all address space below
4GB to help find 64-bit errors. Added environment variable
OSDDEBUGMALLOC which, if set, explicitly overrides the debug malloc
debug settings. Added environment variable OSDDEBUG4GB which, if set,
explicitly overrides the new 64-bit address space allocations. (Sadly
this is necessary due to some D3D drivers being 64-bit unclean....)
[Aaron Giles]
Fixed winwork to use proper tchar functions for getenv. [Aaron Giles]
Fixed bug where the 64-bit DRC was not saving rbp. [Aaron Giles]
Simplified Y-unit DMA rendering, fixing bugs and removing the macro
voodoo. [Aaron Giles]
Removed a bunch of dead code from othunder.c. [Zsolt Vasvari]
audio/dkong.c: [couriersud]
* fixed LS123 constant to match TI datasheet diode circuit constant
Added correct DIP switch settings for Big Fight. Also corrected Cycle
Warriors DIP switches. [Philip Bennett]
sauro.c: [couriersud]
* Hooked up sp0256 sound
* analyzed and commented some ports
* added palette_bank support without real success
Fixed 2650 disassembly of the sense and flag bits. Fixed incorrect
argument order in OUT instruction. Corrected spacing. [Zsolt Vasvari]
Fixed hang/crash on empty config file. [Wilbert Pol]
Added MESS PC-Engine emulatation system. Fixed MAME debug build under
VC2003. [David Haywood]
Unified memory maps in tmnt.c and twin16.c. Reversed ROM set names
of Cuebrick World and Japan versions. Changed some function names to
reflect parent set. [Zsolt Vasvari]
Changed Konami drivers to allocate and decode graphics using the same
layouts. Removed the layout parameter from the decodechar() calls.
[Atari Ace]
Made INPs compatible between 64-bit MAME and 32-bit MAME. [Chad]
Complete taitosj memory map from Nicola's ancient notes. General code
clean-up. [Zsolt Vasvari]
"Fix" for full screen switch, which makes no sense, but is included
based on empirical evidence that is somehow works. [Emuman]
0.122u4
-------
Source Changes
--------------
Corrected btoads clocks according XTALs on the PCB. [Aaron Giles]
Updated Naomi driver, now boots and shows some test menus (press F2
to get into test, use 9 to navigate). Also hooked up ROM board PIO
and skeleton for DMA. [R. Belmont, Samuele Zannoli, ElSemi]
Changed 6522 emulation such that when writing to the ACR register with
the timer 1 in continuous counting mode, the timer 1 value should not
be reloaded but keep on counting. [Wilbert Pol]
Fixed crash when saving state of older DCS-based games. Added save
state support to the midvunit driver. [Aaron Giles]
Added sound to Cycle Warriors and Big Fight. Corrected OKI M6295
clock values. [Philip Bennett]
Fixed missing arrow in Venture on the zoomed out map, and the
incorrect fading twister in Hard Hat. [Zsolt Vasvari]
0.122u3
-------
Source Changes
--------------
Fixes clocks for Orbs. [David Haywood, Tomasz Slanina]
Added new file xtal.h, documenting all known arcade PCB clock cystals.
Drivers should be updated to use these as a basis for their clocks,
and the list should be augmented as additional crystals are found.
[Guru, Aaron Giles]
Implemented a few SysCtrl, Maple, and PVR/HOLLY bits for Naomi. The
BIOS gets slightly further but is nowhere near starting up.
[R. Belmont]
0.122u2
-------
Source Changes
--------------
Fixed M65C02 optimization. [Peter Trauner]
0.122u1
-------
Source Changes
--------------
Zeus updates: [Aaron Giles]
* Figured out data format of 2 matrix form.
* Extracted data for lights.
* Added backface culling which mostly works but fails sometimes, so
it is disabled.
* Started on some initial lighting calculations.
* Cleaned up zeus wave RAM accessors.
* Changed rendering code to allow for greater parallelism on multicore
systems.
* Removed some vestigial zeus 2 hacks.
* Reduced visible area to remove artifacts.
* Made right/bottom vertices inclusive to fix some gapping issues.
* Fixed invasn lightgun offset.
Zeus 2 hardware:
* Fixed ROM loading, added banking support.
* Separated zeus 2 video implementation from zeus implementation.
* Implemented direct pixel accesses; enough to get startup screens
to show.
* Hooked up ZPRAM.
* Fixed digital inputs for crusnexo.
* Fixed default screen parameters to match the games.
Fixed bug that would cause events to leak through to the game when the
debugger was up. [Aaron Giles]
0.122
-----
Source Changes
--------------
Continued to add const qualifiers on remaining items in the project.
[Atari Ace]
Fixed Hopper Empty and Coin-Out Timeout issues in the peplus.c driver.
[Jim Stolis]
0.121u4
-------
Source Changes
--------------
Added new option -update_in_pause which enables updating the screen
bitmap while the game is paused. This is useful for debuggin in
some scenarios (and gets in the way in others). [Olivier Galibert]
Added missing consts to the files in the emu, lib, and osd
directories. [Atari Ace]
Updated inputs in qrouka to support the 3rd and 4th stick. [Sonikos]
Changed M37710 CPU to use the CPU clock for its internal timer rather
than a hard-coded value. Fixes tempo in Namco NA-1 games.
[Phillip Bennett]
0.121u3
-------
Source Changes
--------------
Fixed colors in loverboy. [David Haywood]
Added an assert to ensure that the sound clear latch value is only
set at init time, since its value is not saved. [Aaron Giles]
Source Changes
--------------
Added speedup hack to the mosaicf2 driver. [David Haywood]
Fixed the m6800 cpu core so that the cpu variants can be compiled
independently once again. [Atari Ace]
More formally separated the RSP core from the N64 driver. [Atari Ace]
Switched some #defines in the core over to enums. Also adjusted the
GAME macro so that it results in const data, and that it is defined
in terms of the more generic GAMEL macro. [Atari Ace]
Fixes the M68008 data bus to properly use 8-bit accesses. [Curt Coder]
Moved redundant check for bank switching out of inline code, which
nets a small speedup in the midwunit driver. [Christophe Jaillet]
Added save state support to a number of Konami custom chips. [Lei Wu]
Add -pipe flag for GCC in makefile (GCC will pipe between cpp, cc and
as rather than using temporary files, which speeds up compiling).
[Vas Crabb]
Unified timer callbacks. All timer callbacks are now passed both a
pointer and a parameter. The pointer can only be set at timer
allocation time; the parameter can be changed whenever the timer
is adjusted. Removed most explicit uses of timer_*_ptr functions in
favor of the more generic routines. [Aaron Giles]
Source Changes
--------------
Added an API to access the current amiga_machine_interface.
[Nathan Woods]
0.121
-----
Source Changes
--------------
Updated DIP locations in the following drivers: [Vas Crabb]
- bublbobl.c: bublbobl, tokio
- cps1.c: all games
- dunhuang.c: dunhuang
- mario.c: marked all as active high (confirmed from manuals)
- segag80r.c: astrob2, astrob1, spaceod and pignewt
- segag80v.c: all games, fixed switch ordering
0.120u4
-------
Source Changes
--------------
Made some minor changes in the inline code. The result of
atomic_add32 isn't used a lot of the time, so the final addition was
brought out to allow it to be optimized away. Removed the unnecessary
delta argument from atomic_increment32 and atomic_decrement32 in
eminline.h, and added implementations. Changed the condition for
using rgbsse.h to include 32-bit platforms with SSE enabled.
[Vas Crabb]
Did a major clean-up of the input ports in ssv.c. Brought out the
common joystick, mahjong and quiz input setups, and then used
PORT_INCLUDE to pull them in when needed. Also brought out the
common coinage settings, to avoid needless repetition. [Vas Crabb]
Updated the Tube Panic driver, fixing the background scroll-in (it's
smooth again now). The problem was caused by wrong synchronization
between main and slave CPUs. Also modified the video driver to be
scanline accurate and implemented more accurate interrupt handling.
[Jarek Burczynski]
Altered TTL low high levels in res_net.c. This will broaden the color
range a bit. Since the results are normalized, there is only a limited
effect visible. [couriersud]
Cleaned up inputs and added dip locations in ms32.c. Also fixed dips
in "47pie2" and "akiss". [Sonikos]
Fixed a bug in the i8051 core that improperly fired the Timer2
interrupt when it wasn't enabled. [Jim Stolis]
Split up the MPU4 driver into a core and driver set up a la NeoGeo.
Also made some timer fixes, and added some new ROMs added.
[James Wallace]
Added support for indicating that DIP switches are reversed in the
DIP locations view. [Vas Crabb]
Added DIP locations for Midway Tron and the Nintendo Donkey Kong
series (dkong.c). [Vas Crabb]
Unified poly.c callbacks so that tri and quad callbacks work the
same way. [Aaron Giles]
0.120u3
-------
Source Changes
--------------
Cleaned up the inline assembly for both x86 and PPC, enabled the
mul32 family assembly stuff on 32-bit x86, and fixed some compiler
warnings on 64-bit GCC. In addition: [Vas Crabb]
* Provided single-precision reciprocal approximation code for
PowerPC and x86 with SSE2.
* Filled in all other TBD functions in eigccx86.h for completeness.
* Conditionalised some code in eigccppc.h so that it isn't used
when the compiler has 64-bit instructions available.
Added DIP locations to several SSV games (in ssv.c). [Vas Crabb]
Corrected some errors in the SH4 core and implemented store queues
and the basics of DMA. Added a call to simulate dma transfers with
external devices. [Samuele Zannoli]
Updated model3.c to use the new poly code, and changed much of the
low-level implementation to make things easier. [Aaron Giles]
0.120u2
-------
Repaired the IC24 timer behaviour to fix some of Deal 'Em's bugs,
and also added inputs. [James Wallace]
Added support for CR-589 firmware to the System 573 driver. Made
substantial changes to the SCSI support, making it require fewer
hacks, and allowing one device to be derived from another. Also
added save state support. [smf]
0.120u1
-------
Source Changes
--------------
Documented information about the various Cannonball sets.
[stephh]
Fixed a crash in the input system when you configure joypads and
then unplug them and press Esc on the system info screen.
[R. Belmont]
Defined strict types for CPU and sound chips. Removed unnecessary
cpu_ prefix from several structure members. [Atari Ace]
Fixed the m4510 cpu core from not updating the instruction cycle
counter. [Wilbert Pol]
Fixed memory access for m6509 instructions 91 and b1. [Wilbert Pol]
Fixed a corner case in the SCSP involving timers which are polled
with their IRQ enable shut off. [R. Belmont]
0.120
-----
Source Changes
--------------
Added "native" architecture option to the makefile. Use this to have
gcc automatically pick the most appropriate architecture based on
the system that it is compiling on. [Christophe Jaillet]
Hooked up the KL5C80 communications CPU to the HNG64 BIOS and emulated
some of its features. [Andrew Gardner, Justin Kerk]
Changed 6821 PIA logging so that it only logs core messages once.
[Tim Lindner]
Further tweaked the work code to appropriately check for work items
versus checking for the number of outstanding items. [Aaron Giles]
0.119u4
-------
NOTE TO OSD PORTERS: The work interfaces have changed again. Please
read details below. The updated interfaces remove functionality, so
in the end it should be simpler(!) to port.
Source Changes
--------------
Moved Hayaoshi Quiz Ouza Ketteisen to its own driver. [David Haywood]
Added coin counters to cabal bootleg and hooked up the 2 sample player
CPUs in cabal bootleg. It seems there still are some problems, because
the coin up music is played during the game. [Pierpaolo Prazzoli]
Added the repeat count register (reg 0x34) access and immediate value
load to the MB86233 core (needed by Pilot kids). [El Semi]
Added two more filters to the headon crash sound. Now, only the
envelopes for the crash sound filters are missing. [couriersud]
Fixed 64-bit DRC bug that broke kinst in the previous release.
[Aaron Giles]
Updated Voodoo code to use the new work functions. It now queues
small scanline chunks as independent items rather than using shared
items. Updated code to also copy some parameters to allow for greater
overlapping of emulation and rendering. [Aaron Giles]
0.119u3
-------
IMPORTANT NOTE FOR OSD PORTERS: This build requires a pair of new
primitives in the OSD synchronization module, as well as some extended
functionality in the work item management. See below for details.
Source Changes
--------------
Fixed Cabal (joystick) submission from previous release.
[David Haywood]
Made a few improvements to dealem (well you can see the game now..)
[David Haywood]
Added the rom loading for the various 5*XX roms, which are dumped but
not yet hooked up. [David Haywood]
Defined two new inline functions that are built on the new OSD
primitives: osd_compare_exchange_ptr(), which performs an atomic
compare/exchange on a pointer of the appropriate size, and
osd_sync_add() which atomically adds a value to a location in memory.
[Aaron Giles]
Changed implementation of OSD work queues that are created with the
WORK_QUEUE_FLAG_MULTI hint. Such queues now create n-1 threads, where
n in the number of logical processors in the system. This allows the
main thread to continue accomplishing things while other threads
process the work. If the main thread subsequently calls
osd_work_queue_wait(), it will then dynamically "jump in" and help
the other threads complete all the work items. [Aaron Giles]
Changed the 3dfx Voodoo emulation code to take advantage of the new
threading mechanisms above. It now creates a work queue with the
WORK_QUEUE_FLAG_MULTI flag set, and uses shared work items to spread
rasterization work across multiple processors. Note that this support
should be considered experimental; under some circumstances it is
known to deadlock. If you encounter problems, set OSDPROCESSORS to 1
to effectively produce the previous behavior. [Aaron Giles]
Added "top 20" dedicated rasterizers for all the Seattle games and
Gauntlet Legends/Dark Legacy. These improve rasterization performance
by another 10-20%. [Aaron Giles]
0.119u2
-------
Source Changes
--------------
Changed gfx_decode structures so that they are defined abstractly
by macros rather than directly specifying the structures. Added
new macros GFXDECODE_START/GFXDECODE_ENTRY/GFXDECODE_END to
describe the gfx_decode information. Converted all drivers over to
using the new macros. [Atari Ace]
Cleaned up input ports in sg1000a.c. Added DIP switch for the coins
in dokidoki and service switch. Added DIP switch for flip screen in
psychic5. [sonikos]
Cleans up the input port for macrossp.c driver and adds dip
locations. [Brian Troha]
Cleaned up code to make code and data static where possible and
remove some dead code. [Atari Ace]
Added sound hardware and fixed sound ROM loading in Model 3 games.
[R. Belmont]
Switched MIPS3 64-bit DRC over to new system that is more aggressive
about register allocation and mapping. Sadly, there is little to no
obvious performance benefit, but the resulting code is better
organized. [Aaron Giles]
Created new generic x86/x64 logging system x86log, and updated both
MIPS3 DRC cores to use it. [Aaron Giles]
0.119u1
-------
Source Changes
--------------
Fixed crash/display corruption in System C2 and System 18 games.
[David Haywood]
Added minimal built-in layout for showing the lamps in Video Pinball.
[Mr. Do!]
Big Model 2 update. There's so much stuff improved, I'm just going to
list what's not working: [Ernesto Corvi, El Semi]
- There's still a glitch on the triangle parser somewhere.
Noticeable on the Sega logo in motoraid, the selection arrow in
dynamcop's player select screen and many other games. It might be
the culprit of the road in daytona looking wacky.
- There's a problem with the z clipping. Some tri's close to the
camera are clipped before they should. Some others should be
clipped but are not, and are blocking the viewport for a frame
or two.
- Sub-windows are not implemented yet. Visible on dynacop's mission
select, Sega Rally car select, and others.
- Most decal textures flicker on and off between frames. Maybe a z
coordinate float resolution issue after projection?
- Textures wrap by default. They should only wrap when the
appropriate flag is set only. Not sure what to do when we're not
wrapping.
Fixed some Dip Switches and added some extra notes to othunder.c
driver. Also added some notes to opwolf.c driver. [stephh]
Updated Voodoo drawing code to track changes to the front buffer and
allow skipping unrendered frames for more even framerates.
[Aaron Giles]
Fixed hang when attempting to move windows with the debugger active
and multithreading enabled. [Aaron Giles]
Added support in the debugger memory view for 8-byte chunk sizes.
Fixed long-standing bug that failed to show unmapped logical addresses
as asterisks. Also added new menu items to the Windows debugger to
support viewing logical or physical memory. [Aaron Giles]
0.119
-----
Source Changes
--------------
Improved graphics and cleaned up driver for srmp6.
[David Haywood, Tomasz Slanina]
Fixed input port so that shadfrcj doesn't skip straight to the end
sequence. [stephh]
Fixed recent changes to the MB86233 core that broke Virtua Racing.
[Aaron Giles]
0.118u6
-------
MAMETesters Bugs Fixed
----------------------
cave0118u5red [Aaron Giles]
radikalb0118u5red [Aaron Giles]
chdrewrite0118u5red [smf]
pacland0118u5yel [Aaron Giles]
sspaceat0118u1red [Aaron Giles]
yamato0118u5red [Aaron Giles]
ym2203_0118u1yel [Aaron Giles]
profiler0116u2yel (maybe) [Aaron Giles]
Source Changes
--------------
Updated TMS5220 core to use shifts instead of divides for the
parameter interpolation. Also added support for internal clamping to
8-bit output when using the internal DAC. [Lord Nightmare]
Fixed regression that caused CHD games to crash if the CHD was not
present. Also fixed change that required write access to CHDs. [smf]
Made a cleanup pass through the new x86emit.h code emitters, changing
the way memory is referenced and replacing macros with inline
functions. [Aaron Giles]
Updated MIPS and PowerPC drc cores to use the new emitters. Removed
the old macro-based ones in x86drc.h. [Aaron Giles]
0.118u5
-------
Source Changes
--------------
Updated memconv.h to convert from basically any to any widths
(8/16/32/64), on both little and big endian. Also added macros to
create the stubs for the most commonly used mappings, both in the
1:1 fashion, or the LSB/MSB/LSW/MSW style. [Ernesto Corvi]
Changed all comparison for CPU and sound chip types to compare
against CPU_DUMMY or SOUND_DUMMY instead of 0. Also updated usages
of sndti_to_sndnum() so that they use sndti_exists() where appropriate.
[Atari Ace]
Added new core library utility module palette.c for managing palettes.
Renamed emulator-specific palette code to emupal.c and restructured
to live on top of the core library code. [Aaron Giles]
0.118u4
-------
Source Changes
--------------
Converted the inputs in galaga.c to tags, using INCLUDE/MODIFY for
clones, and fixing the conditional extra lives dips in xevious and
digdug (bosco and galaga still need doing). Also added much more
information on the digdug sets, thanks to some excellent work by
stephh. [Alex Jackson]
Fixed DIP switches for Oscar (Japan Revision 0). [Corrado Tomaselli]
Added new module x86emit.h which supports dynamic code generation for
both x86 and x64 systems. This new system is a far more complete
solution, though not all opcodes are defined yet. The interface for
this is also cleaner than the previous one defined in x86drc.h.
Existing DRC cores are still using the old interface, but the new one
is preferred for new development. [Aaron Giles]
Fixed recently introduced bug in the mips3 core that caused the C
core to launch off into nowhere after the first instruction.
[Aaron Giles]
0.118u3
-------
Source Changes
--------------
Updated dacholer.c driver with now all known Dip Switches. [stephh]
Added new AM_READ_PORT() macro which lets you define an input port
read callback based on a port tag. This is now preferred over the
previous technique of calling port_tag_to_handler() within an
AM_READ() macro. Updated all drivers that were using the latter
pattern to the new system. [Atari Ace]
Fixed subtle monymony regression from 0.36b10(!) [Atari Ace]
Improved the MCU simulation for aladbl so now the game handles coins
correctly. Fixed the Inputs to match an arcade cabinet and added
Dip Switches according to the game M68000 code. [stephh]
Changed NEC V30 CPU core to use a 16-bit data bus. Updated affected
drivers: raiden, raiden2, m72, m90, m92, m107, segas32, hng64,
deadang, dynduke, sengokmj, shanghai, lockon, tatsumi, fantland,
twins, gunpey, ttchamp. Separated V-series disassembler from the
i386 disassembler and updated it to use proper register and
opcode terminology. [Aaron Giles, Philip Bennett, Pierpaolo Prazzoli]
Changed I8086 CPU core to use a 16-bit data bus. Updated affected
drivers: gottlieb, leland, tx1, fantland, tetriunk. Cleaned up
naming of CPUs (i86 -> i8086, etc.) [Aaron Giles]
0.118u2
-------
NOTE: If you are experiencing sound stuttering due to not being able
to run your display at >60Hz, please give the -speed option a try.
You should be able to run MAME at a small emulation speed decrease
in order to get the game under your monitor's refresh rate.
Source Changes
--------------
Fixed recently introduced regression in nemesis driver. [Atari Ace]
Updated amspdwy.c driver to fix the DIP Switches for 'amspdwy' which
are slightly different than the ones for 'amspdwya' which were
correct. [stephh]
0.118u1
-------
Source Changes
--------------
Fixed behavior of auto_realloc() so that it always reallocs from its
original pool. [Atari Ace]
Fixed two minor bugs in the COP400 CPU disassembler. Hooked up the
internal 64 bytes of DATA RAM to the core. [Andrew Gardner]
Significantly revamped the tilemap rendering code. There are now only
two tilemap types, based on whether or not you want transparency
based on pen or color. All existing tilemap effects are built on top
of these two modes. The internal tilemap handling code has been
reorganized and simplified in a number of cases. For most games, this
change is transparent (har har), apart from the change in tilemap
type values. Several concepts within the tilemap system now have
different terminology for clarity and to remove some ambiguous naming
('priority', for example, was overloaded). A small tutorial and better
documentation is now present at the top of tilemap.h and provides
more details of the changes. [Aaron Giles]
0.118
-----
Source Changes
--------------
Changed INI parsing so that mame.ini is parsed twice, picking up
changes to the inipath. [Aaron Giles]
Changed windows builds so that all tools use the utf8_main entry
point consistently. [Aaron Giles]
0.117u3
-------
Added some basic cdrom switching to the system 573 driver. Hooked it
up for best of cool dancers to work and the Club versions. Added
DIP locations. Moved fake switches to the configuration menu. [smf]
Separated build tools from general tools. Build tools are now located
in the build/ subdirectory. [Aaron Giles]
Added new tool src2html which is used to convert the MAME source tree
to HTML format with linked include files and color coded keywords
and comments. [Aaron Giles]
0.117u2
-------
Source Changes
--------------
Imola GP updates: [Phil Stroffolino]
- renamed from "monzagp"
- the leds are fully mapped
- fixes for blitter modes, that affect the "tunnel" area
- dipswitch/port fixes; game now starts in attract mode, rather
than immediately starting
- placeholder (handpicked) colors
Updated DIP switches for topland & ainferno according to their
manuals. [Fabio Priuli]
Made some minor code quality changes across the code: [Atari Ace]
- avoided exporting a few global variables
- fixed variable names that conflicted with typedef names
- removed some shadow variables that were bugs or unnecessary
- removed extraneous #defines
Fixed up sc61860 core, f3853 core, and pckeybd.c to work with new
timing code. [Nathan Woods]
Added support for 14- and 16-segment LED displays to the MAME
artwork system. [Dirk Best]
Added support back for the "none" option for the various *_device
options. [Nathan Woods]
Moved INI file handling fully into the core. As a side-effect of this
change, <exename>.ini is no longer parsed. Changed -createconfig to
always output mame.ini instead of <exename>.ini as a result.
[Aaron Giles]
Added support for page up/page down generically in menus. Also made
pause toggle work while menus are visible. [Aaron Giles]
0.117u1
-------
Source Changes
--------------
Fixed bug in screenless systems. [Nathan Woods]
Fixed crash in chd code if reading beyond the end of the file.
[Roman Scherzer]
Moved Sand Scorpian and Gals Panic over to use the Pandora emulation.
Also fixed some problems in the pandora emulation which improves the
sprites in Djboy. [David Haywood]
Fixed a few bugs in the change lanes video emulation. [Adam Bousley]
Updated the monzagp driver into a somewhat playable state. There are
still some graphics problems. LEDs still need to be hooked up for
score/time-remaining display. [Phil Stroffolino]
Reworked input system to push more features into the core. Cleaned
up architecture to properly separate dependencies. Please note that
this change only addresses the lower layer of input handling. The
upper layer (i.e., input port handling at the driver layer) remains
the same. [Aaron Giles]
* Removed the concept of os_code from the system. Now all codes
are defined via a set of macros in input.h. Each code is a 32-bit
value that encodes a device class, device index, item class,
item modifier, and item ID.
* Moved support for the following options into the core: -mouse,
-joystick, -lightgun, -steadykey, -offscreen_reload, -joy_deadzone,
-joy_saturation, -paddle_device, -adstick_device, -pedal_device,
-dial_device, -trackball_device, -lightgun_device,
-positional_device, -mouse_device. The OSD layer should simply
register all devices at osd_init() time and allow the core to
enable/disable them according to the options.
* Added new option: -joystick_map. This option allows for a 9x9 grid
to be specified which controls analog-to-digital mapping of
joystick inputs.
Added support for frame update callbacks, similar to pause and exit
callbacks but called at the same time as osd_update(). [Aaron Giles]
Added "empty" driver which is used to host the game selection screen
when no valid game is selected. [Aaron Giles]
0.117
-----
Source Changes
--------------
Added save state support to bzone.c games. [R. Belmont]
Fixed some bugs involving empty or null ROM regions. [Nathan Woods]
Added alpha blending effects to the CPS driver and improved sprite
positioning. [David Haywood]
Deduced a few more opcodes for gussun. The game now boots and you
can coin up. [robiza]
0.116u4
-------
Source Changes
--------------
Changed system1 driver back to using SN7489A. [Lord Nightmare]
Fixed the road graphics, fixed the rest of the missing gfx, added
collision detection, and added save states to the changela driver.
Also fixed the colors. [Adam Bousley]
Fixed a few places where driver code was not properly hooked up.
Most cases were benign, but in a couple of instances, save state
support was disconnected, and in one case it fixes a potential crash.
[Atari Ace]
Added support to chdman to cope with toc files created with cue2toc.
[smf]
0.116u3
-------
Source Changes
--------------
Simplified CPS3 decryption function. [Nicola Salmoria]
0.116u2
-------
Source Changes
--------------
Fixed regressions in Gridlee and Gomoku. [Zsolt Vasvari]
Initial cut at working CPS3 driver. Basically works but has a lot
more work to be done to finish it up.
[David Haywood, Andreas Naive, Tomasz Slanina, ElSemi, Philip Bennett]
Fixed minor cycle timing issue in 6809 CPU core. [Ernesto Corvi]
Neo-Geo updates: [Zsolt Vasvari]
* Fixed several regressions from previous update
* Added LED outputs
* Improved smaller visible area configuration
0.116u1
-------
Source Changes
--------------
Fixed scanline address reporting in the qix driver. [Zsolt Vasvari]
Updated CPS2 decryption bit order to match what is likely the original
order. [Nicola Salmoria]
Improved MCU timing and communication in the qix driver. Still a few
issues remain. [Aaron Giles]
0.116
-----
Source Changes
--------------
Major Donkey Kong driver update: [couriersud]
- Implemented discrete sound from schematics: dkong, radarscp
- Implemented discrete background from schematics for radarscp and
various effects:
- blue to black to blue background
- exact priorities
- Grid will flip open and close, vertical flipping on hit.
- Changed inputs for radarscp
- Color generation from schematics (resistor mixer) for
radarscp, dkong, dkongjr and dkong3
0.115u4
-------
Source Changes
--------------
Fixed a number of games to explicitly use the SN76489 now that it
behaves differently from the SN76496. [Lord Nightmare]
0.115u3
-------
Source Changes
--------------
Fixed PIA numbers in revamped Spiders driver. [Zsolt Vasvari]
Updated TIA graphics code is the code from the MESS repository. Also
updated tourtabl driver to accommodate the changes. [Wilbert Pol]
Fixed Space Firebird so that the sprites are opaque with respect to
each other and bullets, but transparent with respect to the star
field. [Zsolt Vasvari]
Fixed subtle behavior in handling of PIA port A. This allows for the
removal of hacks in the Qix driver and the Williams driver.
[Zsolt Vasvari]
Updated PIA interfaces to support masks for port A/B inputs. This
allows proper behavior of unconnected pins, according to the specs.
Updated a number of games to use the new interfaces. [Zsolt Vasvari]
Fixed bug that failed to initialize all IRQ states in the 6809 core
on a reset. Also fixed cycle timing and removed obsolete code from
the core. [Ernesto Corvi, Zsolt Vasvari]
0.115u2
-------
Source Changes
--------------
Merged in a couple of minor tweaks from MAME Plus! [MAME Plus!]
Added a new opcode for Match It 2. There still are 4 unknown opcodes
and the "no tiles" bug before it will be promoted to working status.
[Pierpaolo Prazzoli]
Fixed the CDP1869 to fill the border area with the background color.
Added cropping to the Cidelsa games. [Aaron Giles]
Corrected speaker locations and placement for Gorf and Wizard of Wor.
Added missing mux to Gorf's audio, which controls speech versus
sound effects during the game. [Aaron Giles]
0.115u1
-------
Source Changes
--------------
Added support for playback of "extended" INP files that are commonly
found on compete sites. [David Haywood]
Added lswx and stswx opcodes to the PowerPC core. [Ville Linde]
Corrected the pulse shape of the timer output in the MPU4 driver,
and also correctly identified the AY sound chip as an AY8913.
[James Wallace]
Merged leprechn driver into the gameplan driver and added correct
video timings. [Zsolt Vasvari]
Cleaned up the dorachan driver. Replaced fake color map with actual
color PROM decoding. [Zsolt Vasvari]
Added DIP switches for Excite League. [Barry Harris, Yasuhiro Ogawa]
Moved Win32 UTF-8 wrappers into a new module (winutf8.c), and added
some new wrappers that Oliver Stoeneberg created for MAME32.
[Nathan Woods]
Identified a couple of new opcodes in the Irem V30 CPU which improves
matchit2. [Pierpaolo Prazzoli]
Added correct video timings for the Williams games. [Aaron Giles]
0.115
-----
Source Changes
--------------
Additional ARM7 core fixes: [R. Belmont]
* Fixed SWI instruction in Thumb mode
* Rewrote SWP instruction to work properly
* Added some missing change_pc()s
Moved Space Stranger/Space Stranger 2 into its own driver and fixed
cocktail mode. [Zsolt Vasvari]
0.114u4
-------
Source Changes
--------------
Updated clocks in Arkanoid based on measurements from a real PCB.
[Tormod Tjaberg]
Removed some unnecessary NULL checks and fixed some incorrect usage
of auto_malloc. [Atari Ace]
Added a cpu core for a cpu nicknamed minx. This cpu core is used to
emulate the cpu in the nintendo pokemon mini handheld console.
[Wilbert Pol]
Moved the -verbose option into the core. Added new function
mame_printf_verbose() which is governed by this option. Changed all
existing verbose output to use the new functions. [Aaron Giles]
0.114u3
-------
Source Changes
--------------
Additional CDP1802 updates, taken from MESS. [Curt Coder]
Corrected Moustache Boy main cpu interrupt rate, main cpu clock freq,
and screen refresh rate according to measurements on a real PCB.
[Tormod Tjaberg]
Separated the DECO and Mitchell games in the simpl156 driver and added
more extensive documentation. [Brian Troha]
Further improved the ROZ layer emulation in the K001604. [Ville Linde]
Konami ZR107 update: [Ville Linde]
- Fixed sound hardware check in Winding Heat
- Changed to use the correct tilemap chip type
- Hooked up analog controls
- Fixed texture rom loading and texture decoding
- Improved the 2D tilemaps
Added support for aliasing sound types. This allows minor variants in
sound cores to share the same fundamental "type" so that the same
sndti_* functions can be used regardless of the subtype. [Aaron Giles]
Changed location of save state files. Now they are placed in the
<savestate>/<gamename> directory. Auto-generated save state files have
the name "auto.sta". All other save state files are named <slot>.sta.
[Aaron Giles]
0.114u2
-------
Source Changes
--------------
Fixed cdp1802 DMA emulation. [Curt Coder]
Converted Roller Aces to stereo sound like the real hardware. Fixed
the clocks and NMI rates to match the PCB. [Corrado Tomaselli]
Added save state support to the Midway Y, T, X and Wolf Unit games.
[Aaron Giles]
0.114u1
-------
In the COp420 core, fixed the XABR opcode, added LBI skip for
extended opcodes, and fixed the CPU name in save states. Added
GAME_SUPPORTS_SAVE flag to the Cidelsa games. Draco still has no
sound though. [Curt Coder]
Added DIP locations to the mario, mrdo, sheriff, and spacefb drivers.
[Justin Szczap]
Got the Hang Pilot driver working. The analog controls are still
missing, however, so it's still marked as non-working. [Ville Linde]
Fixed bug that caused video glitches when frameskipping due to using
out of sync textures. [Nathan Woods]
Updated video timing in the Sega System 16, Hang On, Out Run, and
X-Board games according to measurements from the boards. [Aaron Giles]
Fixed internal timer counting in the TMS32025 core. This makes the
music in Cool Pool and 9 Ball Shootout bearable. [Aaron Giles]
0.114
-----
Source Changes
--------------
Fixed autoframeskip so it doesn't immediately spike on startup or
after a pause. [Dave Dribin]
Fixed bug introduced in the memory pool code when hashing was added.
[Nathan Woods]
Updated Virtua Racing to use the TGP core, based on guessing from the
Daytona TGP code. [Ernesto Corvi]
Added save state to several Atari games: batman, eprom, eprom2, klaxp1,
klaxp2. Also added general save state support to the atarijsa and
atarigen modules. [couriersud]
Adds save state support to the Cidelsa games and fixed reset behavior.
[Curt Coder]
Added validity checks to ensure that LSB_FIRST and PTR64 are set
correctly for the current platform. [Aaron Giles]
0.113u3
-------
Source Changes
--------------
Added proper MC8123 decryption code. Hooked up a number of games that
were using the chip, making many of them playable. [Nicola Salmoria]
Fixed several SHARC opcodes where data transfer was done regardless
of the condition. This fixes many things, like the upside-down
geometry in Model 2B games. And also, probably all the remaining
clipping issues in Gradius 4. At least the planet zooming out in the
intro works now. [Ville Linde]
Replaced old Sega System E driver with new one based on HazeMD.
[David Haywood]
Added save state support to the gaelco3d driver. Also added save
state support to tms32031.c and dmadac.c. [couriersud]
Fixed an interrupt delay slot problem in the SHARC core. [Ville Linde]
Added extensive (but still WIP) FD1094 debugging tools for help in
brute force searching for keys. [Aaron Giles]
0.113u2
-------
Updated NeoGeo driver to the new video timing code and raw screen
parameters. [Zsolt Vasvari]
Updated Gridlee and Bally/Sente driver to use new video timing code
and raw screen parameters. [Zsolt Vasvari]
Updated Voodoo-based games to use the new video timing code and newer
MAME timers. [Zsolt Vasvari]
Update to Sprint 4. This fixes the gear shift levers which were broken
with a recent previous change, and improves a few other bits.
[Stefan Jokisch]
Changed the Windows OSD work code to only allocate events for items
when necessary, in order to conserve system resources. [Aaron Giles]
Moved support for the following options into the core: [Aaron Giles]
-state <x>
-autosave
-playback <file>
-record <file>
-mngwrite <file>
-wavwrite <file>
-rotate
-ror
-rol
-autoror
-autorol
-flipx
-flipy
-artwork_crop
-use_backdrops
-use_overlays
-use_bezels
-brightness <x>
-contrast <x>
-gamma <x>
-pause_brightness <x>
-antialias
-beam <x>
-flicker <x>
-sound
-samples
-volume <x>
-ctrlr
-log
-debug
-debugscript <file>
-bios <x>
-cheat
-skip_gameinfo
Added srcclean tool to the tools directory. This is the tool that is
run over the source before each release to do some minor code tidying.
[Aaron Giles]
0.113u1
-------
NOTE TO OSD PORTERS: There are some major changes happening in this
version. Most importantly, throttling and frameskipping are now part
of the core. Please read the whatsnew carefully!
MAMETesters Bugs Fixed
----------------------
janptr96_0110u4gra [Mike Ellery]
dokidoki0111u5gra [Mike Ellery]
Source Changes
--------------
Began converting drivers over to the new more accurate video timing
functions (video_screen_* functions instead of cpu_*). This first
batch includes all the games using the TMS34010 chip and the Atari
games that use atarigen.c. [Zsolt Vasvari]
Added DIP switch locations based on information from the manuals for
the following drivers: Karnov, Magmax, Omega Race, Spiders, Bagman,
and Bank Panic. [Justin Szczap]
Fixed a crash when verifying samples when a sample has a NULL name.
[Nathan Woods]
Built the iButton data for keyboardmania 2nd mix and Pop'n Music 7.
With this update Pop'n Music will also show the self tests.
[Ville Linde]
Fixed the rest of the Atari games and the Cinematronics CCPU games to
use the newer video timing system. Also fixed reset problem in
Destroyer. [Zsolt Vasvari]
Updates drivers from C-E to use the newer video timing system.
[Zsolt Vasvari]
Added a new mechanism for building in fonts. A new tool, png2bdc can
convert a specially formatted PNG file into a binary cached MAME font.
This cached font can be embedded into MAME. A new default small UI
font is now included, and built via this process to replace the old
hard-coded one. The new font is proportional, so there is better use
of limited screen real estate in small video modes. Some balancing/
tweaking of the actual font still needs to be done, and some basic
functionality still needs to be added to png2bdc. Consider this a
work-in-progress. [Aaron Giles]
0.113
-----
Source Changes
--------------
Removed unnecessary idle skipping code from the m92 and deco32
drivers. This allows removal of a couple of now-unused functions
from cpuexec. [Zsolt Vasvari]
Fixed the model2.c ROM definitions for some games that weren't even
loading and made the infamous unknown z-sort mode not a fatal error.
[R. Belmont]
Fixed bug where the window thread would stop processing events when
mame was paused. [BUT]
Fixed all analog controls for the newly enabled validity checks
including the following: [Derrick Renaud]
Split the sprint4 and ultratnk drivers again. Brought the Sprint 4
driver up to date. [Stefan Jokisch]
Added save state support to Combatribes and Jail Break. [Kevin Eshbach]
Fixed regression in Nintendo games that did not specify a clock for
the NES APU. [Aaron Giles]
Defined several new exit codes for "unknown game" and "invalid config"
and changed the Windows OSD layer to output them. [Aaron Giles]
Removed obsolete joystick calibration junk from the osdepend layer.
If anyone needs this functionality, I will look into providing a way
for the OSD code to add menus in the UI. [Aaron Giles]
0.112u4
-------
Source Changes
--------------
Discrete sound for Checkmate: [Derrick Renaud]
* new DISCRETE_ADJUSTMENT_TAG module that uses tags instead of port
numbers. Updated all games to use it, because it is now the
preferred method.
* added PORT_CROSSHAIRs to triplhnt.
Added support for more flexible word wrapping with CJK characters.
Also added wrapping on hyphens. [MAME Plus! team, Aaron Giles]
Removed a big pile of goofiness from the DMA-driven DAC driver now
that it is no longer necessary. [Aaron Giles]
Removed custom sound code from cchasm and replaced it with a simple
DAC implementation. [Aaron Giles]
0.112u3
-------
Source Changes
--------------
Modified ledutil to save the LED state when returning from pause.
[Bob Seidel]
Fixed the crashing in debug builds and added controls for Ski Champ.
[Ville Linde]
Updated makefile to remove the map file when making clean. [Dirk Best]
Created new utility module pool.c for managing memory pools. Rebuilt
auto_malloc on top of this concept. [Nathan Woods]
Added sprite rotation to the realbrk driver. This fixes the jigging
reels in the pachinko games and the cue position and orientation in
the pool games.
Added discrete sound for Amazing Maze. Also added new Discrete
modules: DISCRETE_LOOKUP_TABLE & DISCRETE_LOGIC_JKFLIPFLOP.
[Derrick Renaud]
Fixed the small graphic issues in the Cidelsa driver. Draco still has
imperfect colors. [Curt Coder]
Fixed naming and identification of several Neo Geo ROMs. [JohnBoy]
Connected brightness support on the CPS1 board (not just CPS2) after
verifying that the real board does support it. [MAME Italia forum]
0.112u2
-------
Source Changes
--------------
Improved the cidelsa driver: [Curt Coder]
- rewrote the cdp1802 cpu emulation as a state machine
- fixed Draco dips and inputs (what a strange game!)
- added NVRAM to Destroyer/Draco (Altair has no battery on the PCB)
- fixed some clocks
Added discrete filters to the new Namco 54xx sound effects. Also
implemented filters for the 52xx sound effects in preparation for
future changes. [Derrick Renaud]
Many more CPS2 keys added. Removed all XORs and support for them from
MAME. [Nicola Salmoria, Andreas Naive]
Properly idenitified sound ROMs for Altered Beast set 2. [Brian Troha]
Changed font scaling again. Fonts 24 pixels tall and above are scaled
the old way. Fonts smaller than that are scaled via integral scale
factors and adjusted the new way. [Aaron Giles]
0.112u1
-------
makefile
docs/
src/
emu/ (generic emulation files from the old src/ directory)
cpu/ (CPU cores from src/cpu)
sound/ (sound cores from src/sound)
debug/ (debugger code from src/debug)
audio/ (generic audio files from src/sndhrdw)
layout/ (generic layout files from src/layout)
machine/ (generic machine files from src/machine)
video/ (generic video files from src/vidhrdw)
lib/ (libraries)
util/ (various files with light dependencies from src)
zlib/ (zlib library)
expat/ (expat library)
Source Changes
--------------
Improvements to the Cidelsa driver: [Curt Coder]
- Fixed the disassembly of cdp1802 opcode LSKP
- Changed the cdp1802 opcode OUT to increment R(X) after calling the
write handler
- Set cdp1869 display size and visible area according to data sheet
- Added cdp1869 CFC emulation (probably never used by anything but
just for completeness' sake)
- Cleaned up driver
Added save state support for all games in gng.c, gunsmoke.c, lasso.c,
solomon.c and terracre.c. [Vas Crabb]
Replaced implementation of Namco 54xx sound chip with new MB8844 CPU
core running the original embedded ROM code. Removed old sound core.
Pole Position and Bosconian no longer require samples as a result.
[Nicola Salmora, Ernesto Corvi, Guru]
Changed 6809/6309 CPU cores to call the MAME debugger when CWAI/SYNC
is used. [Nathan Woods]
Improved ZIP file searching to look first for name + CRC match, second
for CRC-only match, and lastly for name-only match. [Ben Rudiak-Gould]
Changed file2str to work for any binary file and output the data as
an array of bytes rather than a string. [Aaron Giles]
Made UI font size computations more flexible. This ensures that fonts
are scaled vertically by an integral factor and should produce nice
proportions for most fonts now. [Aaron Giles]
Changed the way the tiny build works. There is now the concept of a
SUBTARGET. By default SUBTARGET is set equal to TARGET (which is mame)
and everything builds as normal. The makefile that is included is now
src/$(TARGET)/$(SUBTARGET).mak. Thus, to do a tiny build, you now
have to specify "make SUBTARGET=tiny". This will produce an output
executable with a name $(TARGET)$(SUBTARGET) (mametiny in this case).
[Aaron Giles]
0.112
-----
To recognize all the work that has gone into the project, this
version's whatsnew includes all the whatsnew reports dating back to
the 3rd release of MAME. Take a good look at the full history of MAME!
Also a big thanks goes out to everyone who has contributed. Although
I am certain there are some people left out of this list, it should
give an indication of just how many people truly care about preserving
arcade history:
XingXing xvi
Source Changes
--------------
Fixed popping in Berzerk speech. [Lord Nightmare]
Updated the dooyong driver to use the new-style banking system. Also
added some preliminary save state support. [Vas Crabb]
Rewrote faux x86 assembly in the Irem GA20 sound core. [R. Belmont]
Source Changes
--------------
Fixed the data fetch and scrolling calculation for almost all video
modes in the Amiga driver. [Ernesto Corvi]
Improved validity check for coinage order so that it prints out the
correct order if an error is detected. [Ernesto Corvi]
Added preliminary support for the built-in effects DSP in the SCSP,
which lots of games use for reverb, QSound, and other effects.
[ElSemi]
Removed archaic i8080_EXACT flag from the 8085 core. [Zsolt Vasvari]
Updated Midway 8080 driver to use properly computed video timings and
scanline interrupts. [Zsolt Vasvari]
Rewrote the SN76477 emulator from scratch. The main difference between
the old one and the new one is that it is based on measurements from a
real chip. Also the emulator is fully analog, meaning that
timings/frequencies, etc. are based on voltage levels. This gives a
much more true-to-life emulation where the weird behavior of the real
chip comes emulated for free. The code itself is also a lot simpler
and more understandable. [Zsolt Vasvari, Derrick Renaud]
Added the missing volume and frequency controls to the Berzerk driver
and s14001a core. Fixed the issue with random words being spoken
instead of the proper ones. Word is now latched at the proper time.
[Lord Nightmare]
Updated Sega System 16/18 drivers to be mono, and swapped button 1/2
to match instruction card. [Corrado Tomaselli]
==========================================================================
0.111u5
Source Changes
--------------
Fixed a 6502 register naming bug, and fixed a size bug in the
SC61860 disassembler. [Nathan Woods]
Fixed missing sound interfaces from the MESS sound core merge.
[Nathan Woods]
Cleaned up memory maps in the MPU4 and BFM drivers. Redesigned the
MPU4 code so that the DRIVER_INIT only needs to take an address in
the ROM for the lookup table for CHR generation to be done.
[James Wallace]
Removed XORs from almost all CPS2 games in place of proper emulation
of the encryption. [Nicola Salmoria]
Fixed flip screen switch and changed COIN3 to SERVICE1 in the contra.c
driver. [Canim]
Cleand up and fixed DIP switches and inputs for the nmg5 driver.
[stephh]
Fixed PRNG noise in the TMS5110/5220 code and added signal wrapping
to match the patent. [Lord Nightmare]
==========================================================================
0.111u4
Source Changes
--------------
Added two new convenience macros for input ports: PORT_DIPUNUSED and
PORT_DIPUNUSED_DIPLOC. [stephh]
Updated DIP switches in the cave driver and added locations. [stephh]
Unified the Forgotten Worlds driver with the cps1 driver and
connected the OKI6295 pin control properly. [David Haywood]
Major rewrite of the Midway 8080 black & white driver, separating it
from the huge 8080bw driver and making the following changes:
[Zsolt Vasvari, Derrick Renaud]
Added support for the lamp matrix to the video callback in the
Scorpion 2 driver, and updated lamps and inputs to better fit the
new UI. VFD support has been moved to a configuration switch, as
the output is actually always occurring - the switch mimics the
effect of plugging in or removing the VFD from the control point.
[James Wallace]
Added a validity check that input port names are valid UTF-8 strings.
[Nathan Woods]
Added cdp1869 video emulation to the Cidelsa driver. The games still
don't work due to timing and interrupt issues. [Curt Coder]
Added new macro BITMAP_ADDR that can be used for addressing into
bitmaps. Removed the use of bitmap->line[] in the core code. The
line[] array will eventually be obsoleted, so stop using it.
[Aaron Giles]
[Aaron Giles]
Added support in chd.c for lossy compressors, computing CRCs and other
hashes based on the decompressed output in those cases. Also added
support for asynchronous reads/writes using the new osd work item
interfaces. [Aaron Giles]
Fixed several bugs in the Windows implementation of the osd work item
interfaces. [Aaron Giles]
Fixed several bugs and improved emulation of the Z80 SIO chip.
[Aaron Giles]
==========================================================================
0.111u3
OSD porters take note of the changes to the OSD core routines.
Source Changes
--------------
Fixed several issues with the new Unicode support. [Nathan Woods]
Added code to validate that banks are only set to point to memory
that has been allocated via auto_malloc(). Currently disabled
pending further review. [Nathan Woods]
Fixed several glitches and crashes related to the input port and
unicode changes from u2. [Aaron Giles]
Created a new library called osdcore, which is now built and linked
to each executable. Moved all definitions of expected components of
osdcore into new header file osdcore.h, and added consistent
documentation for them all. Removed osd_tool.c, and moved the
necessary parts of its functionality into osdcore. [Aaron Giles]
Defined a new set of interfaces for osdcore which creates an
abstract interface for queueing work items to be potentially executed
on a secondary thread. Implemented the Windows versions of these
routines, but have not done any testing yet. [Aaron Giles]
==========================================================================
0.111u2
Source Changes
--------------
Initial support for Unicode in the core and Windows OSD: [Nathan Woods]
- text file reading/writing now automatically handle UTF-8 conversion
- a number of Windows functions internally manage TCHARs
- new Windows compile-time option UNICODE can be used to build MAME
as a Unicode application (see windows.mak)
Improved cycle timings in the ARM CPU core. Altered the deco32 CPU
clocks to be more realistic. [Aaron Giles]
==========================================================================
0.111u1
MAMETesters bugs fixed (there are probably more)
-----------------------
jspecter074gra [Robert]
spcenctr36b16gre [Robert]
spcewars0108u3red [Robert]
invad2ct0110u4gre [Robert]
mngrecording0110u1ora [Buddabing]
ninjaw0104u2gre [robiza]
orunners0105u4gre [robiza]
twinbee0105yel [Mamesick]
gwarrior0108u1yel [Mamesick]
tst_galx0101u3 [Atari Ace]
m660_0108yel [Atari Ace]
shootouj0102red [Mamesick]
Source Changes
--------------
Added more documentation for the 8080bw driver. It describes the ports
and bits for those games with no sound. In most cases, sample sounds
have been attached, in order to assist with further development. The
games modified are: invrvnge/invrvnga, rollingc, spcenctr, gunfight,
m4, gmissile, schasrcv, 280zzzap, lagunar, lupin3, phantom2, blueshrk,
desertgu, ballbomb, yosakdon/yosakdoa, and shuttlei. Two games were
marked NO_SOUND although they actually do have sound: these are cosmo
and dogpatch. [Robert]
Fixed a problem with the chirp tables of both the tms5220 and the
tms5110. Also backported Jarek's PRNG implementation from tms5110.c
to tms5220.c so it no longer relies on rand(). [Lord Nightmare]
Converted some isolated parts of the Win32 OSD code to use 'TCHAR'
strings rather than simple 'char' strings. [Nathan Woods]
Fixed a few more assertions lurking with the new stricter disassembler
checks. [Aaron Giles]
Patched some protection checks in Funny Strip and Rebus. Neither game
works yet. [Tomasz Slanina]
Fixed copy/paste bug in the Irem sound hardware dealing with MSM5235
chips. [Mamesick]
Moved msm6242 real time clock to its own file. [Luca Elia]
==========================================================================
0.111
Source Changes
--------------
Properly removes the "Autocenter Speed" from the UI when not used.
[Derrick Renaud]
==========================================================================
0.110u5
Source Changes
--------------
Added the final filtering stages to the sound, proper watchdog and
memory mirroring to the circusc driver. Also added PORT_DIPLOCATION
info and save state support. [Derrick Renaud]
Removed the "Autocenter Speed" menu entry for Analog Controls that do
not use it. [Derrick Renaud]
Moved the ST-V protection related code into stvprot.c and added some
notes about the decathlete protection and renamed stvhacks to
stvinit, because it contains most of the inits as well as the
speedhacks. [David Haywood]
Added serial in/out support to the Amiga hardware. Added hooks for
output pins and light pen positioning. Also fixed the horrible static
at startup in the debug build. [Aaron Giles]
Removed the illusion from the rendering system that you could pass in
arbitrary palettes. The system palette is all that is supported.
[Aaron Giles]
==========================================================================
0.110u4
Source Changes
--------------
Rewrote the Dragon's Lair driver from the schematics. Added new
module machine/laserdsc.c which has laserdisc emulation for the
PR-7280 and LD-V1000 laserdisc players. Full emulation of the
laserdisc is pending support for CHD audio/video and high quality
rips, but you can operate the game and see the frame numbers that
would be displayed. Added built-in layout to display the scores,
lives, and credit information. [Aaron Giles]
Added some hacks to windows.mak to allow limping compilation under
Windows Vista. To make these work set an environment variable called
VISTA_MINGW_ROOT equal to the base of your mingw directory, and add
%VISTA_MINGW_ROOT%\libexec\gcc\mingw32\3.4.2 to your PATH environment.
There are still a few issues, but this will let you build with MSVC,
and will compile most of the code with gcc (minus a couple of Windows
OSD files). Hopefully the mingw folks will resolve these issues.
[Aaron Giles]
==========================================================================
0.110u3
Source Changes
--------------
Added raw decryption table to choko. Enabled the use of the large
CHD-based tables by default. [David Haywood]
Added support for split CHD files. CHD files can be transparently
split into multiple pieces and left that way during read access.
Modifications to split files are always written to the last file.
A new command chdman -split is now available to split an existing
CHD file. [Aaron Giles]
Added new option -fontpath to control where the font files are loaded
from. [Aaron Giles]
==========================================================================
0.110u2
Source Changes
--------------
Added support for using CHDs to decrypt CPS2 games. This code is
disabled for the moment, but will be enabled in the future. Only a
handful of games have complete tables so far. These tables are huge
(~4GB) and uncompressable until the encryption algorithm is
understood. [David Haywood]
Added support for the Triple Hunt 8-track audio. [Derrick Renaud]
Fixed crash bug in romcmp when comparing ZIP files. [Aaron Giles]
==========================================================================
0.110u1
Source Changes
--------------
* Menu
- Major update for classic search menu.
- Arranged the cheat general menu a bit.
- Improved item display for selection type code on the code
edit screen.
- Added entry index parameter to EditCheatMenu().
* Watchpoint
- Added watchpoint for ROM region.
- Improved adding watch from cheat list.
* Activation key
- Added save activation key.
- Added 2nd activation key.
- Added show activation key message option.
* Others
- Refined command code format.
Added flip screen offsets needed with new video parameters in the
pacman.c driver. [Aaron Giles]
==========================================================================
0.110
Source Changes
--------------
Fixes auditting sets where all the roms in the clone are also in the
parent. [smf]
Fixed assertions in 6809 and 6502 diassemblers caused by stricter
checking introduced in u5. [Aaron Giles]
==========================================================================
0.109u5
Source Changes
--------------
Improved flash emulation and added support for Fujitsu flash chips.
Switches Konami games over to new flash chips. [smf]
Added new symbol 'curpc' for all CPUs which represents the value of
the current instruction pointer, to avoid naming conflicts with the
'pc' register in other contexts. Changed this to be the default
value for the disassembly window in the Windows version of the
debugger (OSD ports will need to do likewise). [Aaron Giles]
==========================================================================
0.109u4
Source Changes
--------------
Added new debugger command 'history' which dumps the most recent
instructions executed. [Aaron Giles]
==========================================================================
0.109u3
Source Changes
--------------
Fixed dip switches and added second player controls for beaminv
driver. [stephh]
mame_printf_error
mame_printf_warning
mame_printf_info
mame_printf_debug
==========================================================================
==========================================================================
0.109u2
Fixed bug in memory map dumping code that caused wrong addresses
to be dumped. [Wilbert Pol]
Fixed crash in the Win32 debugger code with small window sizes.
[Samuele Zannoli]
Fixed bug in the bilinear software scaler that would read out of
bounds on a bitmap. [Aaron Giles]
==========================================================================
0.109u1
IMPORTANT NOTE TO OSD DEVELOPERS: The file I/O interface has changed
significantly. It is now much simpler. Please read osdepend.h for
full details on how the new OSD-defined functions work. In addition,
you must now use the options.c to specify your search paths. If you
are parsing standard command line options and INI files, this work
is relatively straightforward. Otherwise, you can manually call
options_set_string() for each of the search paths to configure them
from whatever options store you are using.
Source Changes
--------------
More findout.c/getrivia.c improvements: [wolf676]
- added ticket dispenser to Trivia/Sexual Trivia
- found last unknown dipswitch in Selection/Poker
- added missing "Payout" button; payout hardware unknown
- added missing "Play / Raise" button and its lamp 9
- added "Button 12 ?" to selection, function unknown
- re-added PORT_IMPULSE(2) to poker games buttons because they do
not like it if two or more buttons are held; trivia games still
respond better without this
- changed coin_lockout_global to coin_lockout_w(0) and
coin_lockout_w(1) for 2 coin slots in selection;
- added missing lamps 11 (coin slot 2), 12 and 13 (unknown)
to selection
Hooked up ARM ROM for kovsh, though it doesn't work yet. [ElSemi]
Converted all the toaplan2.c games to mono since the PCBs are JAMMA
without external stereo connectors. [Corrado Tomaselli]
==========================================================================
0.109
Source Changes
--------------
Fixed ES5503 behavior for voice volumes > 127 (cures missing
sounds/music notes in several Apple IIgs demos and games).
[R. Belmont]
==========================================================================
0.108u5
Source Changes
--------------
Fixed priority in galivan and danger (and clones). Added save state
support to all games in galivan.c. Fixed portability issue in DAC
audio save states. [Vas Crabb]
Rewrote the Atari vector generators, using the schematics and actual
state machine PROMs. The state machine is now emulated so timing
should be much more realistic. Clipping hardware in bzone and others
is emulated instead of hardcoded. Improved accuracy of clocks and
various other bits of cleanup. [Mathis Rosenhauer]
Implemented some port conditions for gmgalax, so you only see the
relevant DIP switches for the active game. [Canim]
Numerous fixes to the cheat engine. [ShimaPong]
Updated the TN2A03 CPU to match the proper cycle timings and
unsupported opcodes revealed by Blargg's NES chip test. [Wilbert Pol]
==========================================================================
0.108u4
Source Changes
--------------
Added support for reverse-order entry in the BFM code. [El Condor]
Updated the MPU4 layout and added more documentation. [El Condor]
Fixed flipscreen mode for liquidk and other games using the same
Taito graphics chips. [Robzia]
Added save state support for YM3812, YM3526 and uPD7759 sound chips,
and Prehistoric Isle video hardware. Also added partial save state
support for the Y8950 sound chip. [Vas Crabb]
Did a bit of object-orienting the core. All core init functions now
take a running_machine parameter. All exit, reset, and pause
callbacks now require a running_machine parameter to register, and
pass in the running_machine when called. [Aaron Giles]
Did some cleanup and de-Achoization of the palette code. Removed some
features used only by Grand Champion, which only complicated things
for all the other drivers. Marked Grand Champion as imperfect graphics
until it gets rewritten. [Aaron Giles]
More Turbo work: cleaned up the sound code, added support for proper
speaker placement in all games, a few other minor fixes. Sprite
scaling is still not 100%, but I need some real hardware to verify.
Apart from that, no further work is planned. [Aaron Giles]
==========================================================================
0.108u3
Source Changes
--------------
Added workaround for crash in the sound code under some edge cases.
[David Haywood]
Fixed background ROM loading in the new wbmlbg set. [David Haywood]
Overhauled and corrected the DIP switches in the trivia and quiz
games in the findout driver. [wolf676]
Fixed a few dips and added diplocation setting for Wonder Stick
in the nmg5.c driver. [Brian Troha]
Added new ROM loading option, ROM_IGNORE() which works just like
ROM_CONTINUE() except that you don't need to load the data anywhere.
It can be used when larger ROMs are present and only a portion of the
data is used. See solomon.c for an example. [Aaron Giles]
==========================================================================
0.108u2
Source Changes
--------------
Attempted to fix the bad Space Odyssey ROM by using data from the
previous dump. It is still marked BAD_DUMP (we would like to get an
actual dump), but the new Space Odyssey is now playable. [MASH]
==========================================================================
0.108u1
Source Changes
--------------
Fixed some DIP switches in bigrun and wildplt, and changed UK region
to Europe in f1gpstar and f1gpstr2. [Sonikos]
Fixed inputs in the Sega G80 vector games which were broken in the
last release cycle. [Aaron Giles]
==========================================================================
0.108
Source Changes
--------------
==========================================================================
0.107u4
Source Changes
--------------
Fixed the dips for Apache 3 and Dark Mist. [Brian Troha]
Converted the VFD display in the BFM games to use a second screen
rather than hacking onto the main screen. [El Condor]
Added new render target layer config flag to disable screen overlays.
[Aaron Giles]
video_screen_get_hpos
video_screen_get_vpos
video_screen_get_hblank
video_screen_get_vblank
video_screen_get_time_until_pos
Added new layout element component type "text", which lets you draw
text in the built-in MAME font onto an element in a layout. This
can be used for basic lamps and built-in layouts. See maxaflex.c for
an example. [Aaron Giles]
Added built-in layouts for Turbo, Subroc 3D, Buck Rogers, Atari
Football, Atari Baseball, and Super Speed Racer using the new
primitives. [Aaron Giles]
==========================================================================
0.107u3
Source Changes
--------------
Added support for real Bubble Bobble MCU. [Trinity, Nicola Salmoria]
Minor cleanup and speed hack removal in the konamigx.c [R. Belmont]
More improvements to the 6840 timer module. Updated the MPU4 driver
to the most recent implementation. Convert Cosmic Chasm over to
using the new system. [El Condor]
65816/377xx update: [R. Belmont]
* Made block transfer instructions interruptable as they are on
both actual chips (previously a single opcode could eat >400,000
cycles with obvious consequences for interrupt timing)
* M377xx block transfers move one less byte than the 65816, fixed
Properly documented and connected the MCU code in the Namco System 1,
System 86, Baraduke, Pacland, and Sky Kid drivers. [Brian Troha]
Added new option -video none which can be used for CPU benchmarking
without the overhead of the video system. [Aaron Giles]
Fixed bug that caused the sound sampling code to not track changes in
the refresh rate. [Aaron Giles]
==========================================================================
0.107u2
Source Changes
--------------
Implemented CNT pin and some serial features of the 6526 CIA chip.
[Nathan Woods]
Rewrote Zaxxon driver from the schematics. This is still a WIP (not
finished yet): [Aaron Giles]
* correct clock speeds and video timing
* complete memory maps
* connected universal sound board to Ixion and Razmataz
* simplified video code and merged common cases together
* palette derived from resistor weights
* background positioning still a little off
==========================================================================
0.107u1
Source Changes
--------------
Fixed memory write ordering bug in the 68000 core. [Charles MacDonald]
Removed NEW_RENDER definition and all support for the old rendering
system from the core. Cleaned up a bunch of useless and deprecated
code as a result. [Aaron Giles]
Changed the behavior for supporting overscan and other effects. The
width and height of a screen control the overall bitmap size. The
visible area of a screen specify its non-blanked boundaries (and
default visible area, as before). [Aaron Giles]
==========================================================================
0.107
NOTE: This is the first full release of MAME with the new rendering
system. Before freaking out that things don't work the way you
expected, please read the docs/newvideo.txt file that gives some
suggestions for how to set up your base configuration. If you still
encounter issues, then run your system with the -v option and post
about your problem at http://mametesters.org.
Source Changes
--------------
Fixed gamma and brightness ranges in the UI to match the limits from
the command line. [Aaron Giles]
Fixed assertion when the MAME window was minimized. [Aaron Giles]
==========================================================================
0.106u13
Source Changes
--------------
Some more fixes for the DTD in the -listxml output. [Krick]
Fixed bug that caused -prescale in Direct3D mode to fail in the last
release. [Aaron Giles]
==========================================================================
0.106u12
Source Changes
--------------
Added multiple input controls in -listxml output for games with more
than one type. Added pedal control type. Added more info on analog
controls as defined in the driver: minimum, maximum, sensitivity,
keydelta, and reverse. This required the 'control' attribute in the
XML to be moved into an element. There can now be more than one
'control' element in the input secction. [uRebelScum]
Fixed bug that prevented the contrast from pushing vector games to
their maximum brightness. [Aaron Giles]
Fixed bug in JED parsing code that would checksum fuses beyond the
number explicitly specified. Some programs write extra fuse data
beyond the end and this should not be part of the checksum. Also made
the checksum parsing more flexible to handle JED files with extra 0
digits in the file checksum. [Aaron Giles]
Changed the core makefile to put back specific rules for building
EXEs to promote more commonality with platforms that don't put an
extension on executable files. [Aaron Giles]
0.106u11
--------
Source Changes
--------------
Changed XML output so that BIOS sets, ROM sets, and disks are output
in the defined order. [MadSkunk]
Improved memory map and clock speeds for the MPU4 driver. [El Condor]
Moved clipping into the core, rather than relying on the OSD layer to
do the work. Removed the PUSH_CLIP and POP_CLIP primitives as they
are no longer necessary. Added U/V coordinates to the primitives.
[Aaron Giles]
Fixed the rendering order so that overlays mixed with backdrops work
as expected. Note that over-rendering backdrop pieces (like gollygho
does) may not be supported in the future. [Aaron Giles]
Removed vector intensity controls as they are redundant with the new
contrast controls. [Aaron Giles]
Added X and Y offset/scale controls for each screen. This allows you
to control the actual position of the screen within its container. In
order to see beyond the game-configured visible area, the game must
have set up the screen size to be larger than the core visible area.
The Williams drivers have been updated as an example. Eugene Jarvis
mentioned that if you adjust your monitor, you can see the stack in
Robotron off to the right, and now you can in MAME as well. The values
configured in the OSD are saved in the config file for each game.
[Aaron Giles]
==========================================================================
0.106u10
Source Changes
--------------
Added dual screen support for the Dynax games, TX1, RockMS, some of
the Nichibutsu mahjong games, and Subs. [David Haywood]
Added support for +/- keys in the palette view. Added "tick marks"
when a large number of palette or gfx entires are displayed to
indicate which row/column the header refers to. [Aaron Giles]
Made the UI keys for navigating the graphics/palette viewer
configurable. [Aaron Giles]
Converted all the internal layouts into .lay files and updated all
remaining drivers to use the new layouts. [Aaron Giles]
==========================================================================
0.106u9
Source Changes
--------------
Updated the Tecmo Bowl, Gaelco 2, X-Men 6p, and Megatech drivers to
support dual screens. [David Haywood]
Added "left half" and "right half" to the Darius layouts so you can
stretch three screens over two, though you need to explicitly set
them either in the UI or using the -view0 and -view1 parameters on
the command line. [Aaron Giles]
Fixed edge case where the extra pixel on non-wrapping textures would
sometimes lead to exceeding the maximum texture size. [Aaron Giles]
==========================================================================
0.106u8
MAMETesters bugs fixed (there are probably more)
-----------------------
listxmlvaridation0106u7ora [Aaron Giles, VGR]
screenshot0106u5ora [Aaron Giles]
Source Changes
--------------
Moved some common code into taito_en.c (taito ensoniq sound system).
[David Haywood]
Added 16-bit color support for the DirectDraw renderer (only used if
switchres is off or in a window). Fixed 16-bit line rendering in the
software rasterizer. [Aaron Giles]
Fixed ddraw bug where switching views sometimes didn't clear out the
edges of the screen. [Aaron Giles]
* Palette/colortable mode:
[ ] - switch between palette and colortable modes
up/down - scroll up/down one line at a time
pgup/pgdn - scroll up/down one page at a time
home/end - move to top/bottom of list
enter - switch to graphics viewer
* Graphics mode:
[ ] - switch between different graphics sets
up/down - scroll up/down one line at a time
pgup/pgdn - scroll up/down one page at a time
home/end - move to top/bottom of list
left/right - change color displayed
r - rotate tiles 90 degrees clockwise
- + - increase/decrease the number of tiles displayed per row
enter - switch to tilemap viewer
* Tilemap mode:
[ ] - switch between different tilemaps
up/down/left/right - scroll 8 pixels at a time
shift+up/down/left/right - scroll 1 pixel at a time
control+up/down/left/right - scroll 64 pixels at a time
r - rotate tilemap view 90 degrees clockwise
- + - increase/decrease the zoom factor
enter - switch to palette/colortable mode
Note that both graphics and tilemap modes only display data at an
integral scale factor so you are limited based on the resolution of
your render target. For -video ddraw, you can get more pixels by
using -prescale to scale the screen. For -video d3d, the render
target is at your screen's native resolution already. [Aaron Giles]
Screenshots are now properly rotated again. Also, MAME now saves one
screenshot per visible screen for multi-screen games (i.e., cyberbal
will write two PNGs per snapshot taken if both screens are visible).
[Aaron Giles]
Changed the way built-in layouts are handled. There is now a new
layout directory in the source which contains actual .lay files.
These are converted at compile time into .lh files which are
#included by various drivers and then referenced. The built-in set
of horizontal, vertical, and dual screen layouts are also handled
this way now instead of being dynamically generated. In order to
support things like "native" aspect ratios, a limited form of
variable substitution is now done on most of the XML attributes when
they are read. [Aaron Giles]
Added triple screen support to the Darius and Ninja Warriors drivers,
and dual screen support to the Warrior Blade driver. [Aaron Giles]
==========================================================================
0.106u7
Source Changes
--------------
Added back support for DirectDraw. Unlike the old support, this
requires DirectX 7 or later. There is now a new option to control
what video system is being used for rendering. Use -video d3d to use
Direct3D. Use -video ddraw to use DirectDraw. And use -video gdi to
force the use of GDI for rendering. Also added back the -hwstretch
option to control whether or not DirectDraw does stretching. Added
support for the -prescale option when using DirectDraw as well. It
should also work ok with multiple screens. [Aaron Giles]
Improved font logic so that small fonts are scaled more appropriately
at low resolutions. It's not perfect, but works well for most games
when running with the new DirectDraw option, which always renders
games at minimum resolution. [Aaron Giles]
==========================================================================
0.106u6
Source Changes
--------------
Updated astdelux and omegrace built-in overlays for the new render
system.
Added workaround to make the V60 core work properly on GCC 4.x
(tested on 4.1.1). [R. Belmont]
Moved thread priority logic out of ticker.c and into winmain.c where
it really belongs. [Aaron Giles]
==========================================================================
0.106u5
Source Changes
--------------
Fixed bug where the gamename was reallocated out from under us by
the new config system. [Nathan Woods]
Fixed ESC key not cancelling out of initial UI screens. [Aaron Giles]
==========================================================================
0.106u4
Source Changes
--------------
Fixed crash when passing an invalid driver name on the command line.
Centralized the approximate matching logic into driver.c so other
ports can use it as well. [Aaron Giles]
Now properly extracting path from driver name and adding it to the
rompath so that drag & drop of ZIP files works once again.
[Aaron Giles]
==========================================================================
0.106u3
SECONDARY WARNING: The command line and INI parsing code was
rewritten. If you notice any problems with handling of parameters
in either case, please report the bugs on http://mametesters.org.
Source Changes
--------------
Added save state support to the 1942, 1943 and 1945kiii drivers.
[Lee Mitchell]
Fixed blitters to work with 15-bit direct RGB modes. [Nathan Woods]
Moved large stack buffers into heap buffers to work better on systems
with small stacks. [Lawrence Gold]
Fixed a subtle auditing issue when both parents and clones had
NO_DUMP ROMs in their manifests. [Hobbes@Play]
Added code in the debug build to put random data in allocated memory.
[Aaron Giles]
==========================================================================
0.106u2
IMPORTANT NOTE: The video system in this version has been completely
upended and redesigned. The old video system is still the default;
however, some features may be broken. These are not bug-worthy
reports, as the old system will soon be deprecated. The new system
can be compiled by setting the NEW_RENDER flag on in the makefile.
Source Changes
--------------
Added support for circular buffering in the SHARC core, and fixed
several minor bugs. [Ville Linde]
Added the new video rendering system. A new file render.c contains
the bulk of the logic. Major changes include: [Aaron Giles]
- The OSD layer is now responsible for allocating one or more
render_targets at osd_init time. The old osd_create_display
and osd_close_display calls are not used with the new system,
so initialization must take place at osd_init time.
- The old osd_update_video_and_audio call has now been replaced
with a simple osd_update call. This update call passes a
mame_time to the OSD layer, which is the current emulated time.
Throttling and speed calculations should use this time instead
of the framerate.
- osd_update is responsible for calling the render system to
request a list of primitives to be drawn on each render_target
for the current frame. The primitives are simple and include
clipping rectangles, lines, and rectilinear quads only.
- If it wishes, the OSD layer can call back to a software
rasterizer in MAME. The rasterizer code is provided as an
include module so it can be tuned and optimized for platform-
specific video modes. See windows/rendsoft.c for a usage
example.
- There is a new layout file format .lay, which is XML-based and
which replaces the old .art files. The .lay files describe how
to render to a render_target. Each layout file can contain
multiple "views", which describe one of many ways the various
elements can be drawn. These views can be selected at runtime
via the new "Video Options" menu.
- The built-in UI font can be overridden with any .BDF font. Simply
name the .BDF file "ui.bdf" and place it in the MAME directory.
If you run at decent resolutions, you should choose a large
point size for this font so that the scaled results look nice.
- The windows implementation uses Direct3D 8 as the preferred
mechanism for rendering. By default, it will render at the
current resolution, rather than switching resolutions as before.
This can be changed by adding -switchres to the command line.
- There are still a number of imperfect/incomplete features with
the new renderer, which is why it is not on by default. An
incomplete list is given in render.c.
==========================================================================
0.106u1
Source Changes
--------------
Fixed MSB accesses and latch reading in the 6840 emulator. [El Condor]
frames_per_second
aspect_x, aspect_y
screen_width, screen_height
default_visible_area
vblank_duration
Reorganized the user interface code to better support the new render
system. [Aaron Giles]
==========================================================================
0.106
Source Changes
--------------
==========================================================================
0.105u5
Source Changes
--------------
Added some Amiga enhancements needed for MESS Amiga and CDTV
drivers. [Dirk Best]
More improvements to the BFM driver and the 6840 timer emulation.
[El Condor]
==========================================================================
0.105u4
Source Changes
--------------
Fixed bug in the debugger that would prevent you from typing a
command line longer than what was visible. [Aaron Giles]
Added a new tool jedutil, which will convert .JED files to binary
form and back again. [Aaron Giles]
Converted PLDs for catnmous and lazarian to the new binary format.
[Aaron Giles]
==========================================================================
0.105u3
Source Changes
--------------
More improvements to the PGM video code. Also added hooks for halting
the sound CPU which allows ddp2 to boot. [David Haywood]
Refactored the 8530 CIA code from the Amiga into a separate module
and made it support both the 6526 and 8530 variants. [Nathan Woods]
Fixed some DIP switches and added controls for 2nd player in cocktail
mode in Lost Castle in Darkmist. [Sonikos]
Removed a number of unused ROM regions. Most (but not all) of the
empty ROM region warnings are now taken care of. Also uncommented/
added missing undumped ROMs/XORs in the Namco and CPS2 games.
[Aaron Giles]
==========================================================================
0.105u2
Source Changes
--------------
Fixed Monster World DIP switches. [Sonikos]
Fixed floating point rounding error in the PowerPC FPU. [Ville Linde]
Reorganized and cleaned up the PGM sprite drawing code a bit. Added
zooming support. [David Haywood]
Did some cleanup on the 6821 PIA functions, converting to new MAME
struct conventions and enforcing that configuration/initialization
happens only at init time. [Nathan Woods]
Fixed some unknown DIP switches in Galivan and Dangar Ufo Robo.
[Twisty]
Made "This game doesn't work" text more explicit. [Olivier Galibert]
Added PAIR and PAIR64 as valid save state types. [Nathan Woods]
==========================================================================
0.105u1
Source Changes
--------------
Added accessors for the CA2, CB2 and IRQ signals on the 6821 PIA.
[Nathan Woods]
Fixed the Z80 PIO code to prevent an interrupt to occur between the
PIO_OP_MODE byte and mask which follows. According to the datasheet,
this is not permitted in hardware. [Robert]
Fixed a bug with code comments that led to incorrect display for
long comments. [Andrew Gardner]
Added stricter type checking for save state registrations (only works
in gcc). [Aaron Giles]
Modified a number of drivers that were using empty RAM regions for
RAM or which had extraneous memory regions. Most significant changes
were to the arcadia, nss, and stv drivers. [Aaron Giles]
==========================================================================
0.105
IMPORTANT CHANGES FOR OSD DEVELOPERS: There have been several changes
this cycle that impact you. Please scan this file in detail for the
details.
Source Changes
--------------
Added the Dev 1.061 and early Japan bioses for ST-V. [zozo]
Corrected DIP switches for Honey Doll and Cookie & Bipi 3.
[Brian Troha]
==========================================================================
0.104u9
Source Changes
--------------
0.104u8
Source Changes
--------------
Added save state support to the galaga.c and segaybd.c based games.
Improved the "out of context" error message to indicate the source
of the problem. [Andre Hufschmidt]
Moved logerror handling into the core. OSD ports should set
options.logfile to a mame_file handle for the output file.
[Aaron Giles]
==========================================================================
0.104u7
Source Changes
--------------
Switched MDEC decoding input from CbCrY to CrCbY, and switched MDEC
15bit output from rgb to bgr. [smf]
Fixed crash when calling fatalerror before the system was ready for
it. [Nathan Woods]
==========================================================================
0.104u6
Source Changes
--------------
Added the missing commands and proper maker/device ids to the flash
memory handlers for Fujitsu MBM29F016A, used by Konami FireBeat.
[Ville Linde]
Major update to the Aleck64 driver. Still not fully working yet.
[Ville Linde]
Added oversampling support to the Exidy custom sound and to the DAC
sound system. [Aaron Giles]
==========================================================================
0.104u5
Source Changes
--------------
Added board notes to the Namco System 12 driver, hooked up the light
gun in Ghouls Panic/Point Blank 2, and emulated Tekken Tag Tournament
DMA protection (still not playable). [Olivier Galibert, Duddie, smf]
Hooked up ARM7 protection CPU in KOV2. Boots but does not run or
play due to the Thumb sign problems. [R. Belmont]
Added support for zero-length palettes (requires RGB direct mode) and
several validity checks related to display variables. [Nathan Woods]
Updated windows input code: [Derrick Renaud]
* Now using RAWMOUSE mode if available. This means you can now use
multiple mice in Windows XP. Lightgun support has not been
changed yet.
* Added back DX7 support for the windows input system to support
multiple mice. It was set to DX5 in 104u2.
* Removed the system mouse from the list of available mice on
non-XP systems. This allows you to now properly select the
individual mouse.
* Modified the Analog Axes selection of the player controls to be
more responsive.
Fixed bug that caused a full set of validity checks even on release
builds. [Aaron Giles]
Fixed memcards properly. They are no longer hardcoded for the neogeo.
The implementation has moved to generic/machine.c, and a callback
handler very similar to NVRAM is now supported in the machine driver
definition. Cards are created per-game, so the memcard directory now
has a subfolder per game with each game's cards stored underneath.
[Aaron Giles]
==========================================================================
0.104u4
Source Changes
--------------
Added comments support to the debugger. You can now dynamically add
comments that are visible next to the disassembly view. Comments are
saved to an XML-based .cmt file in a 'comments' directory by default
upon exiting. [Andrew Gardner]
Added save state support to Cloak and Dagger, Mario Bros, Crazy
Baloon, and the SN76477 sound chip. [Adam Bousley]
Added decryption of the BIOS for the Namco System 10 games using MEMN
ROM boards. [smf]
Changed the ROM banking of the Bellfruit 'Adder' card to the new
standard, as well as tidying up the MPU4 emulation with some new
information. [El Condor]
Added save state support to the BSMT2000 sound emulator and the
dcheese driver. [Aaron Giles]
Fixed missing save state data in the dkong driver. [Aaron Giles]
==========================================================================
0.104u3
Source Changes
--------------
New option -mngwrite, which records an MNG movie of the game from
the get-go and allows you to specify a target filename. [Buddabing]
Added a number of new properties to the debug views to allow for more
flexibility in the way the views are displayed. Also added an option
to the disassembly window to display encrypted opcode data on the
right. [Aaron Giles]
Added save state support to the CEM3394 and NES APU sound chips.
[Aaron Giles]
Added save state support to the jedi, balsente and dkong drivers.
[Aaron Giles]
==========================================================================
0.104u2
Source Changes
--------------
Added save state support to Night Driver (still needs save state
support in the discrete core to be 100%). [Oshah]
Miscellaneous cleanups to the 8255 PPI code; changed some 'int' types
to 'offs_t' and 'UINT8'. Added ppi8255_get_portA/B/C() functions.
Also fixed some formatting problems. [Nathan Woods]
Fixed Windows rendering code bug where -waitvsync had no effect when
using -nohws -nod3d -notb. [Derrick Renaud]
Hooked up preliminary support for the text layer and palette in the
Namco System 23 driver. [R. Belmont]
Made a few minor tweaks to the Windows sources to support the latest
build tools. See http://mamedev.org/tools if your tools are out of
date. [Aaron Giles]
Split out ROM management from common.c and moved to a new file
romload.c. [Aaron Giles]
Added save state support to the POKEY emulator. [Aaron Giles]
==========================================================================
0.104u1
Source Changes
--------------
Altered the way MESS interacts with the core config system.
[Nathan Woods]
Added save state support to the T-11, Hu6280, and ADSP-21xx CPU
cores. [Buddabing]
==========================================================================
0.104
Source Changes
--------------
Phoenix Discrete Sounds - Changed R22 to 470 ohm per real board. This
should fix the remaining complaints with the discrete sound. The shot
& explosion noise sounds still need discrete emulation.
[Derrick Renaud]
Ensured that all core and windows files have some indication of
copyright on them. [Aaron Giles]
Removed all but the default debugger font from the source
distribution. [Aaron Giles]
==========================================================================
0.103u5
Source Changes
--------------
Fixed inputs in Renju Kizoku, Neratte Chu, Mayjinsen 2 and some dips
in Neratte Chu, Mayjinsen 2. [Sonikos]
Added support for the various x86 8-bit and 16-bit derived
registers, as hidden registers in the i386 core. [Nathan Woods]
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]
==========================================================================
0.103u4
Source Changes
--------------
Fixed Top Shooter sprites. Game still not playable. [Tomasz Slanina]
Fixed resource allocation issue with bitmaps in the Windows code and
MESS. [Nathan Woods]
Fixed inputs on Ninja Spirit and the Sega System 16b driver to match
the JAMMA button ordering. [Corrado Tomaselli]
Fixed some bad gfx in kdynastg when levels start. [Pierpaolo Prazzoli]
==========================================================================
0.103u3
Source Changes
--------------
Cleaned up the Neo Geo mess from 0.103u2. [David Haywood, Razoola]
Added support for >4GB CHD files to chdman for non-Windows systems.
[Lawrence Gold]
Converted Super Burger Time, Vapor Trail, and Crude Buster to use the
deco tilemap functions. [David Haywood]
Improved DIP switches for clowns, clowns1, and bowler. [Bob Seidel]
Fixed the Wild Western bonus screen, where the horse would not scroll
into view. [Nicola Salmoria]
Separated debugger break key from OSD display. They can now be
programmed differently. Also fixed behavior in the new debugger when
using the break so that text doesn't get entered onto the command
line. [Aaron Giles]
Fixed the handling of address masking and display within the debugger.
[Aaron Giles, Nathan Woods]
Added timer support to the ADSP cores and hooked it up for the DCS
games. [Aaron Giles]
==========================================================================
0.103u2
Source Changes
--------------
Updated Namco NA-1 to use the real bios [R.Belmont, Charles MacDonald]
==========================================================================
0.103u1
Source Changes
--------------
Added PowerPC MMU code, but enabled only for MESS due to breakage of
the Model 3 games. [Nathan Woods]
==========================================================================
0.103
Source Changes
--------------
Completely rewrote machine/stvcd.c and .h. There's a lot less there now,
but what's there is more understandable and works much better. [R. Belmont]
Cleaned up/reorganized some of the messy Neo Geo code. Separated out bootleg-
specific hacks into additional files. [David Haywood]
Changed i286 core to use the same INPUT_LINE_A20 that the i386 core uses.
[Nathan Woods]
Added partial updates and boosted the interleave in the ddragon driver.
[David Haywood]
Added an atexit handler to ensure trace files are closed in the debugger
in the event of an early exit. [Nathan Woods]
Merged the Sprint 4/Ultra Tank drivers and made the following fixes:
[Stefan Jokisch]
* Ultra Tank:
- hardware collision detection (computer is now able to manoeuvre
around barriers)
- sprite fixes (invisble tank option works, tank explosion sequence)
- playfield fixes (text colors are different)
- watchdog and coin lockout added
- sync and color proms added
- motor sound fix (previously this was hooked up to the wrong address)
- misc internal fixes like cpu speed, RAM size etc
* Sprint 4:
- sound support (inherited from Ultra Tank)
- watchdog added
Fixed Triple Hunt and several older Atari games to use RAM mirroring for
zero page memory. [Stefan Jokisch]
Fixed several endian issues with the SE3208 core and the Crystal System
driver. [Brad Oliver]
Got the DCS-3 sound system working for Road Burners. [Aaron Giles]
Did some cleanup in the ADSP-21xx core to support program memory more
correctly and support execution from multiple banks. [Aaron Giles]
==========================================================================
0.102u5
Source Changes
--------------
Fixed speedup for znpwfv so that it boots once again. [Mariusz Wojcieszek]
Hooked up the same NES APU implementation in both MAME and MESS. Also
correctd the memory mapping of the APU in the Playchoice 10 driver.
[R. Belmont]
Added simulated version of the N64 PIF boot rom to the Aleck64 driver, so
the cartridges now boot properly, though the cartridge CRC check fails on
both games. [Ville Linde]
Fixed instruction alignment in the old debugger. Also added support for
64-bit qword display. [AWJ]
Fixed timing between CPU and MCU in chaknpop. In previous driver, you will
notice problems in stages with water and coffee break (not always). New
driver fixes it but it is not perfect about timing. [BUT]
Moved m6809, hd6309 and z80 disassemblers to the new interface, and did
some cleanups. [Nathan Woods]
Added new debugger command 'map', which tells logical -> physical mappings
as well as what read/write handlers are connected to an address. Also added
'mapd' and 'mapi' for performing the same operation on data and I/O space.
[Aaron Giles]
Fixed subtle bug in the MIPS3 recompiler that prevented Tenth Degree from
working. [Aaron Giles]
Implemented some more functionality of the ADSP-2181 needed for Road Burners.
[Aaron Giles]
==========================================================================
0.102u4
Source Changes
--------------
Fixed some logical errors in sprite handling and palette reads, DMA timing,
and one invalid opcode in the NES drivers. [Rob Bohms]
Added external ram read and write handlers and data read port to YMZ280B.
[Ville Linde]
Fixed bug in Chack'n Pop that was introduced in the recent memory system
changes. [Nicola Salmoria]
Fixes branch target address disassembly in the PSX disassembler. [smf]
==========================================================================
0.102u3
Source Changes
--------------
Updated driver.c with more consistent and updated info. [Brian Troha]
Added a MESS specific ROM entry type, and changed ROM entry processing code
to ignore any unrecognized ROM entry types. [Nathan Woods]
Merged in recent changes to the PC share code from MESS. [Nathan Woods]
Fixed the ADC and SBC opcodes in G65816 (for BCD math). [Rob Bohms]
==========================================================================
0.102u2
Source Changes
--------------
Some minor cleanups to the System 32 driver. Air Rescue and F1 Exhaust Note
now share common multi-PCB faking logic. [Anonymous]
Properly hooked up tape samples in Thief, NATO Defense, and Shark Attack now
that sample pausing is available. [Bart Tobalske]
==========================================================================
0.102u1
Source Changes
--------------
Fixed compilation issue for MSVC when using the winalloc code. [Nathan Woods]
Replaced the 68705 MCU from the bootleg Knight Boy with simulation. Added
Knight Boy to keep using the MCU code. [Nicola Salmoria]
Added redump of bad ROMs for Cruis'n World (rev L1.3). [Guru]
Fixed output of mame.ini options that have spaces in them. [Nathan Woods]
Added very, very preliminary emulation of the Ricoh RF5C400. [Ville Linde]
Added new inline math functions to mamecore.h, along with mechanisms for the
OSD layer to override them with platform-specific variants:
count_leading_zeros, count_leading_ones, and fixed_mul_shift. Updated the
TMS32031 core to make use of the first two. [Aaron Giles]
Fixed some minor problems with the LOD calculations in the Voodoo driver.
[Aaron Giles]
==========================================================================
0.102
Source Changes
--------------
Fixed status flag from MCU in Taito SJ games, fixing the last digit of the
score in Front Line. [Nicola Salmoria]
Many fixes to the SHARC core and Konami PPC drivers. [Ville Linde]
Fixed 6502 initialization so that all internal states are reset properly.
[Nathan Woods]
Changed the makefile so that debug objects are not compiled on non-debug
builds. [Aaron Giles]
Fixed handling of the FR bit in the Status register on MIPS3. This fixes a
few problems in CarnEvil, and probably affects a few other games as well.
Also fixed bug where TLB exceptions were not filling in the Context and
EntryHi registers correctly. [Aaron Giles]
==========================================================================
0.101u5
Source Changes
--------------
Added a FIFO for the sound commands in Sega Model 1 driver so they no longer
get lost at startup. Fixed the CPU speed of the 68000. [R. Belmont]
Fixed 6805 core so that CLRA does not modify the carry flag. [Ernesto Corvi]
Added very experimental rasterizer generator for the Voodoo emulator, which
generates X86 assembly blitters optimized for each case. Unfortunately, it
doesn't help performance much and they are still too buggy so they are
disabled for now. Enable them in the makefile. [Aaron Giles]
Made some of the hack optimizations runtime enableable in the Voodoo
emulator, and added a frameskipper. Use Ctrl+1-6 to control frameskipping,
Ctrl+F/H/Q to run at full/half/quarter resolution. [Aaron Giles]
Rewrote most of the validity checks so the full set now completes in well
under 1 second, minus I/O time from paging in data. Also added region
size checking versus memory maps to the validity checks. Moved all validity
checks to a new file validity.c. [Aaron Giles]
==========================================================================
0.101u4
Source Changes
--------------
Fixed more games broken by the u1 changes. There are only a very small number
of games that are still known to have issues. [Aaron Giles with contributions
from Mathis Rosenhauer]
Improved video rendering and fixed graphics corruption on the final level of
Fairyland Story. [Nicola Salmoria]
Updated the h6280 CPU to use the new address translation system. [Aaron Giles]
Added MAME build information to the listxml output, and updated xml2info to
handle the save state tag. [cutebutwrong]
Updated PSX core to new save state and disassembler interfaces. Updated
dismips to handle the new disassemblers. [smf]
Removed code that reset the timer when reading/writing on the mk48t08
timekeeper chip. Updated the save state interfaces. Added new macro
state_save_register_item_pointer() for dynamically allocated arrays. [smf]
==========================================================================
0.101u3
Source Changes
--------------
Fixed a number of games that were broken with the u1 update. Just a few
more cases remain. Most games are working at this point. [Aaron Giles, with
contributions from El Condor, R. Belmont, Ville Linde]
Fixed MESS UI code that prevented P and Esc from being intercepted properly.
[Lawrence Gold]
Updated i86 and i286 cores to hook into the new i386 disassembler.
[Nathan Woods]
Fixed FPU decoding and a few other minor issues in the i386 disassembler.
[Aaron Giles]
Added rudimentary hotspot detection to the debugger. Type "help hotspot" for
details on how it works. [Aaron Giles]
Cleaned up the way the debugger hooks into the memory subsystem. Now, on each
CPU switch, the debugger queries the memory system for callbacks to be called
on every read/write. This allows more efficient watchpoint tracking and allows
for non-watchpoint debugging behaviors like the hotspot detection.
[Aaron Giles]
Changed the way encrypted CPU memory is allocated and managed. Previously,
memory_set_opcode_base() was used to set a single pointer to the decrypted
opcodes; however this presented a number of limitations. Now that all RAM and
ROM-like regions are assigned banks, the memory system now tracks decrypted
opcodes per bank. For implicit banks (marked RAM or ROM in the memory map),
a new function memory_set_decrypted_region() configures which areas of the
address space contain decrypted opcodes and where the decrypted opcodes live.
For explicit banks, there is a new function memory_configure_bank_decrypted()
which operates identically to memory_configure_bank() but specifies a pointer
to the decrypted opcodes on a per-bank basis. Updated all drivers using the
old mechanism to the new mechanism and removed the old system. [Aaron Giles]
Thanks to the new opcode handling, removed "RAMROM" support from the memory
subsystem altogether, and updated all drivers to simply limit their decryption
to areas that the CPU decrypted. [Aaron Giles]
==========================================================================
0.101u2
Source Changes
--------------
Fixed a number of games that were broken due to the recent memory system
changes. There are still more problems to fix; continue reporting them.
[Aaron Giles]
Added support for logical mapping to the CPU interfaces and debugger. CPUs
that have an MMU now need to support several new interface bits, including
a logical address mask and page size for each address space, as well as a
new translate function. There is also a new disassembler interface that
should be used going forward, which will make it much simpler to keep the
disassemblers standalone and not dependent on MAME functions for opcode
accesses. Converted the i386 core to use the new interfaces. [Aaron Giles]
Added MMU support to the non-drc MIPS3 emulator. Converted the Killer
Instinct, Seattle, Vegas, and Hyper Neo-Geo 64 drivers to a proper physical
memory layout. Disabled the drc MIPS3 core until MMU support is added there
as well. [Aaron Giles]
Got rid of gross banking hack in the T11 core. Updated Atari System 2 drivers
to accommodate the lack of the hack. [Aaron Giles]
==========================================================================
0.101u1
Source Changes
--------------
Balanced the sound in Final Tetris, Boogie Wings, B.C. Story, Metal Saver.
[sonikos]
Significant change to the memory system. RAM areas are now no longer
allocated out of the memory_region for a given CPU. This means that drivers
which assume that RAM is located at some offset to the base of the memory
region will be broken. [Aaron Giles]
Added save state information for streams so that dynamic volume changes
get properly restored. Unfortunately this breaks all existing save states.
[Aaron Giles]
Added save state support to the HC55516 sound chip. Added save state support
to the Williams sound boards. Added save state support to games in the
mcr3.c and mcr68.c drivers, marking them as GAME_SUPPORTS_SAVE. [Aaron Giles]
Fixed missing save state registrations in the m6809 CPU core. [Aaron Giles]
Deferred state loading until all anonymous timers have cleared. This fixes
issues where the timers would fire after the load and would clobber data
that was just loaded. [Aaron Giles]
Cleaned up and fully mapped the Williams sound boards. Also added save state
support to them. [Aaron Giles]
Added save state support to the classic Williams drivers, marking them as
GAME_SUPPORTS_SAVE. [Aaron Giles]
==========================================================================
0.101
Source Changes
--------------
Wired up save state support for all the games in pacman.c, jrpacman.c, and
pengo.c. Marked all games as GAME_SUPPORTS_SAVE. [Aaron Giles]
Added save state support to the 8255 PPI, 7474 TTL, and the TMS5110 sound
chip. Added save state support to the galaxian.c driver and all the
associated drivers. Marked all games in galaxian.c, scramble.c, scobra.c,
frogger.c, and amidar.c as GAME_SUPPORTS_SAVE. [Aaron Giles]
==========================================================================
0.100u4
More NSS updates. This is mostly for MESS's benefit but nss_ncaa improves
from it too. [R. Belmont]
* SPC700: Fixed operand order for SBC to memory
* SNESHW: Implemented unknown DMA & HDMA modes
* SNESHW: Fixed SRAM sizing (used as protection in some games)
* SNESHW: Boosted interleave
* Fixed scroll registers to work like real hardware
* Fixed timing of OAM address reset and range/time over reset to better
match real hardware
* Fixed missing "break" for HDMA mode 5
* Fixed behavior of OLDJOYx registers when auto-read is enabled
Added "Uptime" to the bookkeeping info displayed in the UI. [Aaron Giles]
Removed the GAMEX and GAMEBX macros. The flags parameter has been moved into
the GAME and GAMEB macros and these are used for all games. [Aaron Giles]
Added save state support to the Cinematronics vector sound hardware and to
the Z80 CTC system. Also fixed QB3 banking when used with save states.
Marked all the games in cinemat.c with GAME_SUPPORTS_SAVE.
[Aaron Giles]
Added save state support to the TMS5220 chip. Added missing registers to
the 6800 core's save state. Cleaned up 6821 PIA initialization and save
state registration. Marked all the games in mcr.c with GAME_SUPPORTS_SAVE.
[Aaron Giles]
Added new option -autosave which automatically loads a game at startup and
saves it at exit time for any game which is explicitly marked with
GAME_SUPPORTS_SAVE. For other games, this option has no effect. [Aaron Giles]
==========================================================================
0.100u3
Source Changes
--------------
Changed validity checks to use hashes for speed. Also changed them to only
run on the drivers in the source file of the current game, rather than on all
games, in non-debug builds. And fixed the coinage sorting check so that it
doesn't depend on the linker to order the strings in a particular way.
[Paul Priest]
Removed -skip_validitychecks option now that the time to execute the checks
is not as bad. [Aaron Giles]
==========================================================================
0.100u2
Source Changes
--------------
Fixed bug that caused VIDEO_EOF routines to be called while paused. This led
to weird graphics and out of timers messages in some games. [Aaron Giles]
Replaced old Prop Cycle input hacks with proper analog control. For best
results, delete your propcycl.nv file and calibrate (same procedure as
Cyber Cycles and Final Lap R) before playing. [R. Belmont]
Bumped interleave in the elecyoyo driver to avoid attract mode hang. [MASH]
==========================================================================
0.100u1
Source Changes
--------------
==========================================================================
0.100
Source Changes
--------------
Fixed crash in some games when using a low sample rate or -nosound.
[Aaron Giles]
Cross Pang is now using the sprite draw copied from tumbleb.c instead as
the game also seems to be based around Tumble Pop designs, as a result the
'Alpha Blend' bit has been removed and replaced with a flicker sprite bit
like Tumble Pop which looks more correct to me. Also changed some default
settings. [David Haywood]
0.99u10
Source Changes
--------------
Fixed interrupt problem in the M37710 core that caused problems with the
recent Namco update. [Aaron Giles]
Added and wired up color PROM for Truco Clemente, but still missing a
transform. [Roberto Fresca]
==========================================================================
0.99u9
Source Changes
--------------
Removed tilemap_dispose call and fixed the two drivers that were using it.
This fixes improper save state registrations in megasys1 and ygv608 games.
[Aaron Giles]
Fixed bug that caused the sound cores to keep running while paused.
[Aaron Giles]
Cleaned up MESS hooks into the input port system. [Nathan Woods]
Major Namco sound improvements: [R. Belmont]
* C352 now sets output pitch correctly by input clock
* Added emulated sound and music to all NB-1, NB-2,
and System 11 games, using Prop Cycle's BIOS as a
substitute until the original can be trojaned or
otherwise obtained
* Hooked it up for plain System 22 games as well, but
they're not interested in passing down proper commands
for some reason
* Speed-cheated all instances of the M37710/C352 sound
system so CPU requirements don't go up much. This
also helped back off the requirements a hair for Prop
Cycle and Time Crisis
==========================================================================
0.99u8
Source Changes
--------------
Made input port conditionals work more generically. This necessitated a bit
of a minor reorg in the input port code. Please verify that controls work as
before. This change has also required a modification to how analog ports are
recorded, so existing INPs may not work. [Aaron Giles]
Minor tweak to fix Time Crisis crash. [Phil Stroffolino]
==========================================================================
0.99u7
Source Changes
--------------
Removed gross cur_chip hack from the OPN emulator. [Aaron Giles]
Fixed crash when running games whose CPU core did not support save states.
[Aaron Giles]
Fixed interrupt timing in the F3 games. [Nicola Salmoria]
Improved emulation of the IC13 ROM loading in ST-V driver. Find Love,
Decathlete, Sokyugurentai / Terra Diver can boot without hacks or debug
tricks. Also Suikoenbu has improved gameplay. [Angelo Salese]
Fixed Space Cruiser from resetting on the asteroids level when you die.
[Pierpaolo Prazzoli]
==========================================================================
0.99u6
Source Changes
--------------
Fixed crash that was introduced with the state saving updates last time.
[Aaron Giles]
==========================================================================
0.99u5
Source Changes
--------------
Added blending to the alt tilemap code in psikyosh.c, fixing the final
boss in Sol Divide. [David Haywood]
==========================================================================
0.99u4
Source Changes
--------------
Added memory card and cheat menus back into the system. [Aaron Giles]
Fixed MNG recording problem that was introduced in u3. [Aaron Giles]
Fixed crash when running vector games that was introduced in u3.
[Aaron Giles]
==========================================================================
0.99u3
Source Changes
--------------
Fixed all the volume table calculations in the YMF271 core. [Ville Linde]
Fixed recent LSI53C810 update which caused the Model 3 games to crash.
[Ville Linde]
Fixed PowerPC recompiler so that Scud Race works again. [Ville Linde]
Removed the following obsolete and/or redundant command line options from
the Windows build: [Aaron Giles]
-wrongorientation
-wrongfps
-gamelist
-list
-listgames
-listdetails
-listwrongmerge
-listcpu
-listcpuclass
-listgamespersourcefile
-listnosound
-listnvram
-listpalettesize
-listromdistribution
-listromnumber
-listsound
-listdupcrc
-listsamdir
-listmd5
-listsha1
-verifysets
-vset
-vsam
-sortname
-sortdriver
-[no]clones
-crconly
-maxlogsize
-resamplefilter
-debug_resolution
-history_file
-mameinfo_file
Removed the "Press any key" prompts when displaying ROM warnings. Instead,
a warning about bad/missing ROMs is now displayed on the warnings screen.
Details of the bad/missing ROMs are still printed to the console.
[Aaron Giles]
==========================================================================
0.99u2
Source Changes
--------------
Added flipscreen to Pop Bingo. Added some disable registers for tilemaps/
sprites (fixing the bug in lastday demo). [Pierpaolo Prazzoli]
Fixed the discrete sound 555 timer modules when using actual DC mode.
[Derrick Renaud]
==========================================================================
0.99u1
Source Changes
--------------
Undid a hack that was accidentally left in the MCR games in the last
release. [Aaron Giles]
Fixed several problems in the H8/3002 core. Improves sound in Namco System
12 and ND-1. [cync]
Fixed all the mystwarr.c games so they pass their service mode mask ROM
tests, with the exception of Metamorphic Force (it gets hung up on the road
generator ("LVC") test for some reason). [R. Belmont]
Fixed Monster Bash (2-board version) so it works now, though the graphics
are still not perfect. [David Haywood, MASH]
==========================================================================
0.99
Note that the next version of MAME will be 0.100. If you have code that
depends on there being only two digits after the decimal, you had better fix
it before then!
Source Changes
--------------
Fixed 1-bit errors in decryption keys for Crackdown and one of the D.D. Crew
sets. [Nicola Salmoria, Chris Hardy]
Backed out some of the Arm core changes which broke several games.
Fixed the f1superb sound rom loading in ms32.c so that it doesn't crash.
[David Haywood]
==========================================================================
0.98u4
Source Changes
--------------
Fixed several bugs in the ARM core which break Captain America but fix some
other issues. [Bryan McPhail]
Fixed the question roms reading for Phraze Craze and fixed some loading based
on new info discovered. [Pierpaolo Prazzoli]
==========================================================================
0.98u3
Source Changes
--------------
Changed memory display in the debugger so that it doesn't lock to where the
cursor is. Also fixed it so that it can align against odd addresses.
[Aaron Giles]
Fixed 4th player inputs and added 1 frame delay for sprites in goal92.
[Pierpaolo Prazzoli]
Added coin counter and fixed sound adding the 2 sample chips in Tecmo Bowl.
[Pierpaolo Prazzoli]
Cleaned up and fixed input ports for all games in the suprnova driver.
[Mamesick]
Fixed crash in MAME if 0-length data block was found in a WAV file.
[Roman Scherzer]
Changed the windows code so the map file isn't loaded unless the
profiler is enabled. This stops you running out of memory when the memory
tracking is enabled. [smf]
Fixed unknown DIP switches in Merlin's Money Maze. [James Wallace]
==========================================================================
0.98u2
Source Changes
--------------
Rewrote the Z80/Z180 daisy chaining logic to work a little closer to the
hardware. Updated the Z80 CTC and PIO modules to support the new model.
Changed the CTC module to not generate interrupts if there is an outstanding
request on the same timer is currently in service; this allows Journey to
(finally) run with the correct CPU speed. [Aaron Giles]
Partial rewrite of the MCR video system. Should still work roughly the same,
just a little different under the covers. This is still very much a work in
progress. [Aaron Giles]
Cleaned up the Soungoku Mahjong driver, fixed colors, improved sound and
fixed the hang before the match started. Also I found the output for the
coins used to play the match. It's still missing something to enable /
disable the tilemaps. [Pierpaolo Prazzoli]
Fixed the i386->z80 communication in the Seibu SPI driver. This fixes the
flash rom update and should also fix any remaining hangs/pauses. The flash
rom update should take around 5 minutes. Now all games should have proper
sample data. [Ville Linda, David Haywood]
==========================================================================
0.98u1
Source Changes
--------------
Changed how perodic timers are defined. Previously, you would specify a
number which was interpreted either as Hz (if less than 50000) or as
nanoseconds (if greater than 50000). Now, the time is specified as a period
and you use the standard TIME_IN_HZ or TIME_IN_NS macros. [Aaron Giles]
Turned on address error checking in the 68000 core. This slows things down a
bit but is more accurate and allows correct behavior of a couple of badly-
programmed games. [Aaron Giles]
Fixed several issues with address error checking in the 68000 core.
[Aaron Giles]
Fixed 68000 bug that treated 8-bit branches with $FF offsets as illegal,
rather than allowing them and generating an address error. [Aaron Giles]
Created a new header file mamecore.h, which contains the core common useful
macros and typedefs that were scattered throughout the header files. Also
added endian swapping macros from MESS. [Aaron Giles]
Fully deprecated the use of cpu_setbank(), which was long ago replaced with
memory_set_bankptr(). [Aaron Giles]
Fixed crash in Volfied and Operation Wolf due to improper timer usage.
[Nicola Salmoria]
Fixed one of the TC360 sprite blending modes (used in Pulirula round 2 and
Liquids Kids attract mode). [Bryan McPhail]
==========================================================================
0.98
Source Changes
--------------
==========================================================================
0.97u5
Added very basic 68040 support to the 68000 core. [Ville Linde]
Added hooks to support a future MMU in the PowerPC core. [Nathan Woods]
Fixed visible area and tilemap scroll in Mug Smashers. [Pierpaolo Prazzoli]
Updated memory maps for the MCR Chip Squeak Deluxe and Sounds Good boards.
[Aaron Giles]
0.97u4
Source Changes
--------------
Fixed v60 SBR handling to ignore the low 12 bits. This allows the hack in
tp2m32 to be removed. [Aaron Giles]
Added correct sound ROMs to World Class Bowling Tournament and Deluxe.
[Brian Troha]
Replaced old Outrun bootleg with a new dump that passes the ROM test and has
proper ROM names. [David Haywood]
==========================================================================
0.97u3
Source Changes
--------------
Made the DRC PowerPC core compilable when HAS_PPC403 is 0. [Nathan Woods]
Fixed Oki frequency to match samples pitch on the pcb for Final Tetris.
[Corrado Tomaselli]
Fixed crash in the debugger when decoding instructions that were too long.
[Aaron Giles]
Fixed a number of problems with Eagle Shot Golf, removing several hacks from
the SSV driver along the way. [Luca Elia]
Decrypted tilemaps in Dark Mist and added info about missing proms.
[Tomasz Slanina]
Fixed minor bug in TIA emulation, taken from the MESS code. [Wilbert Pol]
Major video update to Taito F3 driver that amongst other things properly
implements zoom & column scroll according to how the hardware does it,
which not only fixes glitches in various games but allowed many hacks to be
removed also. Sprite & tilemap clipping is also implemented, as is
proper priority mixing and alpha-blending on the vram and pixel
layers. [Bryan McPhail]
Fixed exception handling and task switching in the V60 core. [Aaron Giles]
==========================================================================
0.97u2
Source Changes
--------------
* System 32 games are seriously under construction now. Do not report any
bugs against them. The Multi-32 games are even more broken. [Aaron Giles]
* Fixed video problems in ninjaw, which broke with the new colscroll addition.
[Pierpaolo Prazzoli]
* Fixed the way the VIA 6522 shift register was implemented to get rid of
the previous hacky way. [Mathis Rosenhauer]
==========================================================================
0.97u1
Source Changes
--------------
* Changed v60 CPU to clock multiple cycles per instruction instead of requiring
every driver to divide the clock; updated all drivers to use the correct clock
speed. [Aaron Giles]
* Made the expression engine in the debugger a little more generic to support
its use in other tools. [Aaron Giles]
* Began cleanup of the Sega System 32 driver. Things may not work as well as
before; this will be fixed over time. Do not report bugs on it. [Aaron Giles]
* Hooked up Pest Place redump, fixed dkong3b colors, and added support for Control
Type dipswitch in Street Heat. [Pierpaolo Prazzoli]
* Fixed vblank handling and some bad sprites in wwfsstar. [Pierpaolo Prazzoli]
- The other System 21 titles are not working for various reasons.
Solvalou needed cuskey support (used from the master DSP). Cybersled
appears to use a different mechanism for uploading DSP code.
==========================================================================
0.97
Source Changes
--------------
0.96u4
Source Changes
--------------
Fixed game reset in galaxian due to running out of timers. [Aaron Giles]
Fixed remaining memory leaks in the new debugger code, and one in the
artwork system. [Aaron Giles]
Cleaned up several video drivers that were using non-auto memory allocation
functions for bitmaps and memory. [Aaron Giles]
Rewrote the RF5C68 sound emulator from the specs, improving sound in the
System 18 games. [Aaron Giles]
Added logerror and memdump commands to the new debugger. [Nathan Woods]
In the PowerPC core, implemented the SMI input line, and added a placeholder
for the TLBISYNC input line (doesn't do anything yet). Also implemented the
TBU special variable on the 603. [Nathan Woods]
==========================================================================
0.96u3
Source Changes
--------------
Simplified additive path in slapstic code. This should not impact any games
that use it, but it is worth verifying. [Aaron Giles]
Added 'find' command to the new debugger for performing memory searches.
[Aaron Giles]
Added better debugging support to the the MIPS and PPC cores. [Nathan Woods]
Fixed sprites, controls, colors, sound, many graphics problems in Panic Road,
but still not working. [Tomasz Slanina]
Old debugger no longer forces the memory display to 16-bit words regardless
of the size specified with the M command. [Andrew Church]
Fixed OKI sample rate in Dark Seal/Crude Buster. Attempted to fix Vapor Trail
dropped sound commands. [Bryan McPhail]
Changed trace and traceover commands so they can append to existing files by
placing '>>' before the filename. [Nathan Woods]
New games supported or promoted from NOT_WORKING status
-------------------------------------------------------
AmeriDarts [Aaron Giles]
A. D. 2083 [Pierpaolo Prazzoli]
==========================================================================
0.96u2
Source Changes
--------------
Fixed window mode 1 in the TMS34010 core, as well as bugs that prevented
misaligned stack accesses from working and a bug that didn't force the
PC to be 16-bit aligned. [Aaron Giles]
Fixed bug in MAC instructions in the TMS32025 core. Also fixed cycle
counting
problems that led to inaccurate internal timers. [Aaron Giles]
Fixed end-of-sprite list and flip screen in Hollywood Action.
[Pierpaolo Prazzoli]
Added the ability to clear an input configure via the delete key.
[Curt Coder]
Rewrote 8255 PPI mode 2 support, and hooked 8255 to buckrog properly.
[Nathan Woods]
Fixed a number of bugs and added support for more SCSI commands and
modes. [R. Belmont, Ville Linde]
Added support for Single monitor Playchoice 10 BIOS. Since the core
doesn't allow you to change aspect ratio or remove dual monitor flag at
run-time, the game always runs in the upper part of the screen.
[Pierpaolo Prazzoli]
Simplified the decryption code in the sun8 driver, and made some
improvements to the Brick Zone main set. [Nicola Salmoria]
Patched the non-DRC PPC core to compile properly when not all PPC
cores (403, 602, 603) are enabled. Implemented fcmpo instruction.
[Nathan Woods]
==========================================================================
0.96u1
Source Changes
--------------
Fixed big endian issues in the Model 3 driver, the old debugger,
and the PPC core. [Brad Oliver]
Fixed big endian issues in Seibu SPI flash code. [Brad Oliver]
==========================================================================
0.96
Changes
-------
Added step in/out support to TMS34010 disassembler. [Aaron Giles]
==========================================================================
0.95u6
Other changes
-------------
Fixed inputs in several System 18/24 games and added some new standard strings.
[B.S.Ruggeri]
Updated Exterminator driver, implementing full memory map, removing speed hacks,
and fixing sound issues. [Aaron Giles]
Added new ES8712 sound core, and hooked up sound in Varia Metal. [Quench]
Fixed debugger to close all trace files when quitting. [Nathan Woods]
==========================================================================
0.95u5
==========================================================================
0.95u4
* removed CPU_16BIT_PORT hack; this means that all Z80 drivers must explicitly
clamp their I/O space address space to 8-bits via
ADDRESS_MAP_FLAGS(AMEF_ABITS(8))
* removed CPU_AUDIO_CPU; it was no longer having any effect, and it was a poor
substitution for documentation since it wasn't used consistently across all games
* added 'emulator' target to the makefile to make it easier to build just mame.exe
* removed obsolete targets from the main makefile
* added Pentium-M optimization target to the makefile
Other changes
-------------
Fixed gsword descriptions and added documentation on the 8741s. [Nicola Salmoria]
Added hack to v60 for srmp7, though this needs a real fix eventually. [David
Haywood]
Fixed DIP switches in Survival Arts and Dyna Gear. [Brian Troha]
Added several TMS9900 enhancements and variants from MESS. [Raphael Nabet]
Fixed backgrounds in Nitro Ball/Gun Ball. [Pierpaolo Prazzoli]
Fixed DIP switches in Pocket Gal DX and Captain and the Advengers. [Brian Troha]
==========================================================================
0.95u3
Other changes
-------------
Removed fake hack ports from Battlezone and Vindicators Part II. [Aaron Giles]
Added samples to Kabuki-Z with a new redumped rom for cpu3 too and fixed the
garbage colors at startup. [Pierpaolo Prazzoli]
==========================================================================
0.95u2
Removed hack from Ghox controls so it acts like real PCB [Corrado Tomaselli]
src/machine/6821pia.c:
- PIA fix
Fixed error introduced in Splash when Funny Strip gfx were fixed [Pierpaolo
Prazzoli]
Changed way in which MCU kludge/hack works in armedf driver [Sebastien Chevalier]
==========================================================================
0.95u1
Other Changes
-------------
Irem M92 dip corrections [Brian Troha]
src/fileio.c:
- Adding a MESS specific option to FILETYPE_SCREENSHOT
==========================================================================
0.95
CPUs tagged as audio CPUs are no longer disabled when sound is turned off.
Sega Updates
- decrypted and added aurailj. the program roms are bad however so it doesn't work
- the Altered Beast sets were a mess. Some of them were using the wrong version of
the gfx ROMs (that's why they had to be loaded in a strange way) Should be
correct now.
- bayrout1 is the us version not world
- wally1 is revision B
- added a few keys with NO_DUMP
- more fixes to descriptions and ROM names
- Moved actual CD-ROM and harddisk device emulation out of am53cf96.c to new
scsicd.c
and scsihd.c files.
- AM53cf96.c is now fully configurable: you can have any combination of up to 7 CD-
ROMs
and/or harddisks attached to the emulated SCSI bus and specify what each one's
SCSI ID
is.
- CD-ROM emulation expanded to support more SCSI commands and bugfix some existing
ones.
- Changed konamigv and konamigq drivers to support the new 53cf96 configuration
system.
Other Changes
-------------
Verified Simpsons sound chip frequency against real board [Chris Hardy]
==========================================================================
0.94u5
segaic16.c:
* fixed several divide chip behaviors, fixing loffire and gprider
- divide by zero just returns the divisor (needs to be verified)
- mode 1 divides are unsigned
- divides are only triggered by a write with A4 set
midvunit.c:
* turned off debugging code in the hotspots, giving a HUGE speed improvement
to the V-unit games (d'oh!)
realbrk.c
* Fixed Pachinko Gindama Shoubu sets (Normal and DX) and added specific controls to
them.
Games are now playable but with a hack on the backup ram,I don't know what's
going on,
probably it's just missing nvram emulation;
* Reorganized a bit the memory map in the driver;
2413intf
* Added two new functions for the YM2413 sound chip,
YM2413_register_port_0_msb_w() and YM2413_data_port_0_msb_w(),they are used by
pkgnsh.
splash.c
* Fixed Funny Strip sprite graphics.
jalmah.c
* Improved the MCU protection code for Mahjong Daireikai & fixed various ROM
loading issues
now more graphics are correctly displayed.
src/cpu/m6502/6502dasm.c:
- Implemented dasmflags
- Minor cleanups
src/cpu/m6502/m6502.c:
src/cpu/m6502/m6502.h:
src/cpu/m6502/m65ce02.c:
src/cpu/m6502/m65ce02.h:
- Removed RUNTIME_LOADED cruft
Minor update to SRMP6 driver, adding dips and updating the memory map.
The GFX format on this hardware is still not understood, however the chip used
could
be related to the ST0016 chip.
Update to the Kaneko drivers, loading correct roms for Blood Warrior
Other Changes
-------------
sprint1/sprint2 - updated discrete sound to the new component value code [Hans
Andersson]
Fixed problem with Nemesis sound created during sound rewrite [R.Belmont]
==========================================================================
0.94u4
Other Changes
-------------
Fix crash games using FM sound chips when you load state [BUT]
Changed FD1094 state change behavior slightly to keep Gain Ground happy [Nicola
Salmoria]
Improved NMK004 simulation and prevented hang in Black Heart [Nicola Salmoria]
Fixed memory dumping problem in debugger at very high addresses [Ville Linde]
Fixed bugs in PSX texture window (pitch in libero grande & playfield in aquarush)
[smf]
==========================================================================
0.94u3
Other Changes
-------------
==========================================================================
0.94u2
cpuintrf.c cleanup
src/sndintrf.c:
src/sndintrf.h:
- Added entries for two MESS specific sound cores
src/sound/wavwrite.c:
src/sound/wavwrite.h:
src/sound/discrete.c:
- Changed wavwrite type from 'void *' type to an opaque pointer
'wav_file *'
src/cpu/g65816/g65816op.h:
- This patch fixes a bug whereby the CPU could switch modes without
entering the set of functions for that mode. Specifically, if a mode
change occurs it will break out of the execute function and reenter the
correct function.
playmark.c updates
- Fixed sprite/tile priorities in World Beach Volley, and fixed SOME
priorities in Excelsior - but not all of them, the high score screen is
still wrong.
- Found bitmap enable bit, fixes girl pictures sticking in Big Twin and
Excelsior, and garbage graphics in Excelsior.
- Added rowscroll support, fixes wbeachvl37b7gre.
- As previously noted, wbeachvl37b16gre could be a genuine bug of the
original - I don't see how it could work otherwise.
playmark.c update
- Fixed dipswitches in Excelsior
- Tweaked bitmap scroll in Excelsior
- Changed bitmap to be drawn after the fg_tilemap (this is correct in Excelsior
and looks better in Big Twin, but looking at the service mode in Excelsior
some "good" bits are trasparent)
- Added Continue dipswtich in Big Twin
Other Changes
-------------
TX-1
# All of above
# Missing PROMs
Allow for more than 40 entries in the Analog menu [Christopher Stone]
==========================================================================
0.94u1
Mostly bugfixes related to problems caused by the 0.93 sound update
----
Fixed itech32 driver, the previous 64-bit fix caused graphical problems
both should be fixed now [Aaron Giles]
Fixed games using the 5110 which refused to start (bagman, cvs driver
etc.) [Aaron Giles]
==========================================================================
0.94
SPI update [Ville Linde]
preliminary sprite Alpha (no tilemap alpha)
added sprite / tilemap DMA
proper RTC emulation
Removed extraneous clipping when passing streams from one output to the
next input [Aaron Giles]
==========================================================================
0.93u3
----
==========================================================================
0.93u2
Only a few sound fixes this time, please continue testing but don't expect
many changes in this department compared to u1 unless otherwise mentioned
in this whatsnew.txt. The majority of the changes here are other cleanups
and additional sets.
----
==========================================================================
0.93u1
----
==========================================================================
0.93
The main feature of this release is Aaron's huge update to the sound system.
There is a high chance this has introduced new sound / crashing bugs in
several drivers. A number of problems were already found and fixed prior to
the 0.93 release thanks to Aaron, Derrick and R.Belmont. Updates will follow
to correct any severe bugs found. Please test this release extensively.
----
Core changes
-----------
common.c:
* Changed auto_malloc() behavior so that a failure is absolute (calls
osd_die); you can now assume that auto_malloc will always succeed and will
never return NULL.
* Removed all sample loading code; this is now in sound/samples.c
config.c:
* Tried to update this to the new mixer stuff in usrintrf.c, but it hasn't
been tested and I bet it's busted somehow.
driver.h:
* driver->sound_attributes is gone; if you need to detect stereo support,
count the speakers.
mame.h:
* Machine->samples is history (yay!)
timer.c:
* I created a new type of timer that has a pointer for a callback param
instead of an int. These sit next to the existing timer code, so nothing
else is affected. They made object orienting the sound cores much much
cleaner.
usrintrf.c:
* Mixing volumes are retrived from the sound core, not from the mixer (which
is gone). Mixing volumes can now be overdriven to 2.0 (could be increased in
the future)
mixer.c/.h:
* These files are gone, gone, gone. Everything is handled by the streams or
by sndintrf.c directly. Mixing is performed by code in sndintrf.c which
creates a stream to do the final mixing.
sndintrf.h:
* We now no longer #include every sound core's header. You have to include
them yourself in your driver.
sndintrf.c:
* Sound cores are now hooked up very much like CPU cores. There is a single
get_info function that is public for each core; all other functions and data
are retrieved through it.
* Similar to CPU cores, you can call sndtype_xxx() to query/set values for a
specific sound chip type; you can also call sndnum_xxx() to query/set values
for an indexed sound chip in the Machine->drv->sound array; finally, you can
call sndti_xxx() to query/set values for the nth instance of any give sound
chip type (sndti = sound type+index).
* At startup, all sound cores/filters are created. Then all the speakers are
created. Finally, everything is wired up together. There are new consistency
checks to make sure you don't do anything wildly bad.
* sndintrf.c calls the OSD layer now, and always requests stereo output. It
also does a final downmix from the various speaker streams into left/right
streams based on the X coordinate of the speaker.
sound/streams.c:
* I have added a new type defined in sound/streams.h: stream_sample_t, which
is used to represent a sample as used by the stream system. It is typedef'd
to an INT32.
* Regardless of the size of stream_sample_t, all streams should be generated
as if 16 bits were the maximum. The extra bits give us headroom to overdrive
things if we want.
* All streams have the same format callback, with support for multiple
inputs and outputs.
* Each stream has a sample rate; inputs to that stream will be
down/upsampled to that rate; outputs will be down/upsampled as necessary to
connect to the input of the next stream/speaker in line.
* Each input to a stream has its own gain, and each output has a gain as
well. These can be controlled while things are running to provide some extra
volume knobs.
* I haven't done much in the way of optimizations in order to keep things
simple and working. Once things are back to normal, I may consider some
additional optimizations.
* I marked all sound cores as Copyright the MAME Team; if you want your own
credit there, feel free to send an update.
* I removed all volume and clock speeds from the interfaces; these are
specified elsewhere now.
* I made interfaces optional for many sound chips that often don't need an
interface.
* Many sound cores used global variables and assumed a single instance of
themselves; this has been fixed in all cases.
* In some cases I removed global lookup tables and pushed them into the
sound interfaces. This can eventually be fixed but I didn't want to deal
with it.
* stream_init and stream_init_multi are gone; there is only stream_create
now.
* Streams are named for you automatically, so you don't need to pass in
names to stream_create. Volumes are also outside of your control now, so you
don't need to pass in volumes to stream_create either.
* The get_info function can return pointers to set_info(), start(), stop(),
and reset(). There is no concept of an update() function anymore -- updates
are handled via streams.
* The start() function is passed three things: a 'sound index', which
indicates which instance of chip you are (i.e., 0 if you're the first chip
of this type to be created, 1 if you're the second, etc); a 'clock' which is
specified in the driver (no clocks in the interfaces please!); and a
'config' which is a pointer to the interface for this chip (it can be NULL
too, be careful).
* The start() function now is expected to allocate memory for its data
structures and return a pointer to that if successful. If not, it should
return NULL.
* The pointer returned by the start() function is passed to the stop() and
reset() functions.
* Since there were many cases where we provided a read/write handler for the
'nth' chip, you can also fetch the pointer from the start() function by
calling sndti_token(chip_type, index).
* If you have a non-digital chip that doesn't do internal clipping, you can
probably remove the clipping code and let the mixer clip it in the end.
* If you do your mixing in a secondary buffer to get more bits of
resolution, you can probably optimize your code to mix directly into the
stream buffer.
* While fixing up all the sound cores I was VERY brute force in getting
things to work. If you don't like what I did to your sound core, feel free
to fix it up.
----
src/cpu/g65816/g65816ds.h:
src/cpu/g65816/g65816ds.c:
src/cpu/g65816/g65816.c:
- G65816 disassembler changes; program_read_byte() is no longer used
for disassembling and also the core now reports the PC as being the full
PB or'd with PC
Fixed controls in Hyper Crash (still needs freeplay to start) [Angelo Salese]
Removed ingame debug button in rachero which was causing you to be locked
to the middle lane [David Haywood]
==========================================================================
0.92u2000 (0.92u1)
----
==========================================================================
0.92
This release comes prior to some major changes to the sound system from Aaron.
Once Aaron has submitted his sound system changes 0.93 will be released to
allow for easy testing of them.
----
Fixed most of the remaining issues with Taito F3 sound [Nicola Salmoria]
Sound in Ring Rage and Riding Fight still doesn't work
Quiz Theater has a bad sound rom
Bust-A-Move Again (US) sound roms need checking again real (non
-conversion) cart.
To do:
- Figure out the correct sprite decode
- Sprite/tilemap priorities
- "Reload" indicator is funky, probably needs tilemap
flip bits.
- Fix K056832 external linescroll RAM support (used
for high scores, parallax in scrolling stages)
src/memory.c:
src/memory.h:
- Created a memory_get_op_ptr() call. This call is equivalent to
memory_get_read_ptr() in ADDRESS_SPACE_PROGRAM with the exception that it is
aware of the opbase handler.
src/debug/debugcmd.c:
src/debug/debugvw.c:
- Modified debugger to use memory_get_op_ptr() to determine if opcode
memory is unmapped.
More Sega improvements, including lots of set renaming and cleaning up of drivers
by removing unused code [Aaron Giles]
Updated some mahjong drivers to use the new standard inputs [James Wallace]
note, there was a further submission, this will need resyncing and
resubmitting
... and probably a whole bunch of other bits and pieces I've forgotten to mention
(the WIP updates might give a better overview)
Anything that is missing will probably need resubmitting after Aaron's changes.
==========================================================================
0.91u2
--
==========================================================================
0.91u1
This has been released quickly after 0.91 due to a bug left in the Memory System.
I consider core bugs critical and prefer to see them fixed in official updates as
soon as possible.
--
src/cpu/mc68hc11/hc11ops.c
src/cpu/mc68hc11/mc68hc11.c
ANSI C89 unfortunately doesn't allow unnamed structs or unions, so I
had to uglify this code a bit. A cleaner solution is welcome.
src/drivers/segaorun.c
Returning a value from a void function
(note, with this update the driver was just crashing when I tested it,
so maybe something is wrong)
Fixed bug in memory system introduced in 0.91, this was breaking at least Kinst,
the Seattle driver, and wwally. [Aaron Giles]
==========================================================================
0.91
Removed obsolete orientation code from tilemap code and drivers [Aaron Giles]
machine/segaic16:
* added support for 3 multiply chips and 3 divide chips
* fixed timer/compare chip implementation to match real PCB
vidhrdw/segaic16:
* added tilemap flipping support
* added sprite flipping support for 16A and 16B sprites
Changed outrun and outruna to use a better set of GFX roms [David Haywood]
Still to do:
- Colors
- Gun inputs
- Tilemap enable/disable
- Priorities
- K054000 protection chip hookup
==========================================================================
0.90u4
drivers/segaorun.c:
* noted that the break LED no longer functions
* upped YM2151 mixing volume
drivers/segas16a.c:
* improved the way custom I/O controls work internally
* rewrote the N7751 path so that it is properly triggered and better
described
* added support for mjleague controls
* added support for sjryukoa controls
* hooked up DIP switches for timescna
* connected up the watchdog (some games use it, some don't)
* removed unused controls from all games' input lists
* upped YM2151 mixing volume
drivers/sega16b.c:
* improved the way custom I/O controls work internally
* added support for sjryuko controls
* hooked up DIP switches for timescn
* upped YM2151 mixing volume
drivers/segas18.c:
* added P3 start button to desertbr
* included 317-0184 dump in ddcrewb
drivers/segaxbd.c:
* upped YM2151 mixing volume
vidhrdw/segaic16.c:
* cleaned up tilemap handling using the new user_data feature
* added pixel-accurate scaling to System 16B sprites
* based on this knowledge, tweaked Hang On, Space Harrier, and 16A sprite
systems
* fixed documentation on Hang On/Space Harrier road chip
vidhrdw/segas18.c:
* fixed memory leak
Increased the amount of adjustable memory banks from 24 to 32. [Nathan Woods]
-Started to work with the A-Bus protection,it is a sort of data transfer with
the
cartridge area,more info in the stv.c file.
Current implementation just fixes character selection screens in sss,I will
work out
about this one in the future,it has various "interesting" issues which was
thought
to be emulation probs(i.e booting in rsgun,textures in elandore etc.).
-Noticed that ignoring VDP-1 long word access read by SH-2 isn't correct and
not
needed (because sss is protected rather than using an illegal procedure),it
was
causing wrong graphics in fhboxers & boot errors in pblbeach,reversed it
back to
default.
Other changes:
Added full memory map, this should fix the ending of Ms Pac.
Added a jumpshot dip.
I didn't remove any sets, but I mentioned which of them are junk imo and why.
it anymore.
Kaneko update in preparation for data from Blood Warriors [Sebastien Volpe]
==========================================================================
0.90u3
Added support for a new command line parameter, -screen, that specifies which
screen
to draw on (if the user has more than one) [Chris Kirmse]
Removed Starfield in Tazzmania bootleg (it doesn't have one) [Pierpaolo Prazzoli]
==========================================================================
0.90u2
Fixed Priority bug in Kid Niki and fixed crash on last level [Nicola Salmoria]
53c810 SCSI:
- Fixed single-stepping mode DMA
- Added memory moves and DMA callback
Model 3:
- Added Epson RTC-72421 emulation
- Preliminary polygon emulation
- Preliminary (not working yet) sound emulation
- Too much to list :) Most Step 1.x games show
something now, up to and including full 3D.
(maybe others as some of the Model 3 games such as vs215 work quite well)
==========================================================================
0.90u1
Thanks to Pierpaolo Prazzoli (Reip) for putting together the 0.90 release while I
was away
General Improvements
--------------------
Note that in the process, I broke the title screen animation for Laser
Ghost, and there is now a 1-pixel column error on ddcrew's attract mode.
These are known issues that I will try to address soon.
Taken out the resource file from the windows objs when UI=1 (for MAME32) [Chris
Kirmse]
Improved Polaris sound (real board differs from Schematics) [Derrick Renaud]
Fixed the m6509 core to appease the new compiler. [Nathan Woods]
==========================================================================
0.90
General Improvements
--------------------
Fixed sound in Desert Breaker with new roms [Aaron Giles, Gerald, Thierry]
Fixed crash in i8x41 cpu core reading uninitialized internal RAM [Juergen
Buchmueller]
Fixes the undocumented bit test opcodes in hd6309 cpu core [Nathan Woods]
added a default add value for the A-Bus transfer, to avoid strange uploads.
- Further improved the SCU emulation, added two unemulated irqs (PAD and SCSP),
improved the "illegal" DMA operations and started to work out with the games
headers.
Fixed a disassembler bug with the Nec cpu core [Angelo Salese]
Fixed memory leaking and added a check in debug builds [Nicola Salmoria]
Fixed model1 driver compiling problem with OpenVMS [Robert Alan Byer]
Fixed itech32 driver crash on AMD64 cpus [R. Belmont]
==========================================================================
0.89u6
General Improvements
--------------------
versions.
updated S2650 CPU core to count more accurate clock cycle counts [Juergen
Buchmueller]
==========================================================================
0.89u5
General Improvements
--------------------
src/cpu/i386/i386op16.c:
- Implemented SMSW instruction
src/cpu/i386/i386dasm.c:
- Marked retf instruction as DASMFLAG_STEP_OUT
src/x86drc.h:
- Added macros for pushfd() and popfd()
galpani3:
- palette, inputs, sound hooked up, backgounds 'decoded' (RLE)
jchan:
- slight cleanup, sound hooked up, tile area identified
- jchan2 now passes initial checks
kaneko16 (bonkadv):
- priorities corrected according Luca's scheme
- sound 'improvements' (both banking and rom loading)
- game name updated
- interrupts scheduling change (not correct, but somewhat improved, see
comment) and as a consequence, fake region dsw is removed.
toki:
- correct frequencies
Started minor cleanup of System 32 driver (some things are probably broken for
now) [David Haywood]
hypereac2 sound fix, sh2 bounds overflow fix, atarijsa memcpy fix [Mame32Plus]
==========================================================================
0.89u4
General Improvements
--------------------
Added support for alt bios set and changed games to use generic unknown
dips in decocass driver [David Haywood]
Cleaned up z80 core, removing the optional inexact emulation mode and
the leading underscores from macro names to comply with C99 naming
conventions [Juergen Buchmueller]
Fixed a history list overrun in New Debugger when the down arrow key is
pressed when the history list is empty [Nathan Woods]
==========================================================================
0.89u3
General Improvements
--------------------
Fixed some compiler related issues with >32-bit integers in PPC / Model 3 [Lawrence
Gold]
Attempted to make Pokey random number generator work better with recordings (not
verified
to improve things yet) [Juergen Buchmueller]
Trace in debugger now defaults to current active CPU if non specified [Nathan
Woods]
(AB Cop and SMGP are also now 'working' but still have some fairly serious issues)
==========================================================================
0.89u2
General Improvements
--------------------
Update to frogs to allow discrete sound to be used for tongue with samples
for non-simulated sounds [Derrick Renaud]
==========================================================================
0.89u1
General Improvements
--------------------
Modified Frogs driver to only use samples when actually needed [Derrick Renaud]
Workaround for excessive RAM use in Hyperstone based games [Pierpaolo Prazzoli]
Several fd1094 games now run with new keys [Thierry, Gerald]
PPC Core improvements (603 support) for Sega Model 3 [Ville Linde]
Temporarily disabled ym2151 save states until we work out why its crashing in
debug/symbol/map builds
==========================================================================
0.89
General Improvements
--------------------
- fixed sprite handling and removed all the nonsense hacks from the video
update
- made sprite/tilemap priorities orthogonal (not sure if it was needed).
- also updated System 86 (which uses the same sprite hardware) to the latest
code. Curiously, this introduces sprite/sprite priority issues in Wonder
Momo. I'm puzzled by this.
- vastly improved the key custom emulation, shrinking it down to three basic
types. This also fixed issues with pistoldm (e.g. bomb explosions, and other
random events).
- pistoldm061yel
- fixed DAC sounds in berabohm and faceoff, two sounds at the same time were
causing severe slowdowns.
- fixed Namco logo in Dangerous Seed
- cleaned up input ports, using PORT_INCLUDE
- found some more debug dip switches
- dspirit061gre
- added support for visibility window, this fixes countless issues with
partial video updates and the intro of Rompers
- namcosx36rc2gre
- fixed berabohm inputs
- better ROM loading, closer to the hardware (though it uses more memory)
- toggling the test mode dip switch is enough to enter test mode - no need
to reset
- removed the galaga88 set: it was a hacked version removing the key custom
checks and disabling ROM checksum tests
- cleaned up the CUS30 wavedata/sound command/RAM interface, put it all in a
single function
- splatter061gre: I don't think this is a bug
- splatter061gre2: I don't think this is a bug, just dark brown would look
black on an arcade monitor
- splatter061gre3: please verify if this still applies / I don't think it is
a bug
- splatter061gre4: please verify if this still applies
- namcos1c070u5gre: I don't think this is a bug, attract mode plays back a
few seconds from the last game played. In bootup, there is no previous game,
so no demo play. I agree it's awkward, though.
==========================================================================
0.88u7
General Improvements
--------------------
==========================================================================
0.88u6
General Improvements
--------------------
The update also provides full 5 tilemap layer priority support in Metal
Black (was previously 4 due to pdrawgfx limitation), and fixes priority
problems in Ninja Kids (ninjak058gre).
==========================================================================
0.88u5
General Improvements
--------------------
Fixed some filenames in track and field & scramble drivers [ShinobiZ]
==========================================================================
0.88u4
General Improvements
--------------------
Various Sega system 16/18 updates (moonwalker decryption keys etc.) [Chris Hardy]
* note moonwalker needs a cpu core for the mcu (i8051 core?) before it will work
Fixed a bug in the fd1094dp.c and fd1094.c decryption to allow for cotton to be
decrypted [Nicola Salmoria]
Added other hyperstone models, converted vamphalf driver to use 16-bit version
[Pierpaolo Prazzoli]
Click in the memory view to place the cursor. Type over nibbles with 0-F, or
use the arrow keys to navigate around. Tab cycles between the edit box and
the memory editor. [Aaron Giles]
==========================================================================
0.88u3
General Improvements
--------------------
More FD1094 improvements, a program to produce the key tables from dumped state
data
is now included as etc/fd1094dp.c, please note the key table format has changed
slightly to reflect some new findings [Nicola Salmoria]
src/inptport.c:
- Fixed a few input group declarations on MESS specific input types
src/sound/astrocde.c:
- Moved some variable declarations to the tops of their respective
groups.
- tilemap conversion
- cleaned up driver
- merged memory map
- removed fake input port
Improvements to the Liberator driver, correct proms now used [Aaron Giles]
Note: The new debugger is enabled as the default debugger for the next few u
releases (in a debug build only) to allow feedback, it can be disabled by
changing the makefile
There are some new behaviors and new ways of doing things you should be
aware of. By default the debugger no longer "auto hides". This was a remnant
of the way the old debugger worked that I have gotten rid of. If you want to
hide all the debugger windows, just close the "main" debug window. It will
return if you break in the debugger at a future time.
The "main" window has four panes: a register list on the left, a disassembly
around the current PC at the top, a console output window in the middle, and
an input line at the bottom. The input line supports full editing features,
and you can also use up arrow/down arrow to cycle through recently typed
commands.
This is a work-in-progress, but it's pretty good now (IMHO) and stable for
common debugging operations. Let me know what you like/dislike about it and
what sorts of features you feel are still lacking.
F12 now means "run and hide the debugger". I found this was too useful to
get rid of entirely.
F5 just means "run", keeping the debugger visible.
Enabling the debugger now forces window mode and prevents you from switching
to full screen mode.
==========================================================================
0.88u2
General Improvements
--------------------
Further improvements to the FD1094 decryption, this is now almost fully understood,
additional FD1094 cpus are needed to work out the remaining details. Keys are now
stored in the romsets as they should be a close representation of the data stored
in
the FD1094 CPUs [Nicola Salmoria]
Fixed a few things which missed the Namco update in u1 [Phil Stroffolino]
Moved gamename prefixes to end in pc10, nss and megatech [Aaron Giles]
==========================================================================
0.88u1
General Improvements
--------------------
* Gun.Smoke
drivers/gunsmoke.c
vidhrdw/gunsmoke.c
* Night Driver
drivers/nitedrvr.c
machine/nitedrvr.c
vidhrdw/nitedrvr.c
* 1942
drivers/1942.c
vidhrdw/1942.c
==========================================================================
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]
model2:
- 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]
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
only.
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.
port_tag_to_handler8()
port_tag_to_handler16()
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:
I've modified exidy.c to use these features as a testbed. Let me know if you
see any problems.
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.
/* Sets the current CPU's clock speed and then adjusts for scaling */
void cpunum_set_clock(int cpunum, int clock);
==========================================================================
0.87u4
General Improvements
--------------------
Changed where source filename based config files are stored to avoid conflicts with
set name configs [Ren� Single]
Code to decrypt FD1094 CPU 317-0092 in states 0x00-0xff (0x00 is reset, 0x10 is
IRQ)
this is the CPU used by tetris, code is not hooked up yet [Nicola Salmoria]
==========================================================================
0.87u3
General Improvements
--------------------
Fixes for the ROZ system used in older System2 games; in particular Dragon
Blade glitches
are no more.
Added some hooks to C 68k core in preparation for Sega decryption updates [Olivier
Galibert]
Improvement to (se)xfiles driver, now shows some startup screens [Tomasz Slanina]
==========================================================================
0.87u2
Added eeprom and flipscreen to the games in vamphalf driver [Pierpaolo Prazzoli]
Please DO NOT turn these off if you are making changes to the Mame
source, any changes which fail the validity checks will be rejected.
src/windows/fronthlp.c:
- Changed the stat() call to use Win32 equivalents.
==========================================================================
0.87u1
General Improvements
--------------------
Modified tilemap.c so roz and RGB_DIRECT can be used together [Andrew Gardner]
Fixed I/O addresses in Hyperstone and so removed the hack from vamphalf
driver [Pierpaolo Prazzoli]
Apache 3
Round Up 5
Cycle Warriors
Incredibly complex hardware! These are all different boards, but share
a similar sprite chip (TZB215 on Apache 3, TZB315 on others). Other
graphics (road, sky, bg/fg layers) all differ between games.
Todo:
Sprite rotation
Finish road layer (Round Up 5)
Implement road layer (Apache 3, Cycle Warriors)
BG layer(s) (Cycle Warriors)
BG layer (Round Up 5) - May be driven by missing VRAM data
Round Up 5 always boots with a coin inserted
Round Up 5 doesn't survive a reset
Dip switches
Various other things..
==========================================================================
0.87
General Improvements:
--------------------
8-way input fix for some mappy.c games (grobda, motos, phozon)
These games were set to 4-way input in the previous update. [anonymous]
acommand.c
Preliminary driver for Alien Command.Doesn't work yet...
gstriker.c
Very preliminary MCU emulation for World Cup '94.Hangs in
various places since I don't have worked on them yet...
Command War is playable too, except for the fact a layer doesn't seem to
disappear when in the fighting sequence, and it's offset by 8 pixels in the
movement sequence.
Schmeiser Robo - Not working 100%. The game puts graphics info through the
protection chip so in this case the game looks wrong even though the
gameplay is actually running correctly. Uses a strange double buffer
feature of the protection chip that the Deco games don't (seem to) use.
Pierpaolo Prazzoli
- Added interrupts-block for delay instructions
- Fixed get_emu_code_addr
- Added LDW.S and STW.S instructions
- Fixed floating point opcodes
==========================================================================
0.86u5
General Improvements:
--------------------
==========================================================================
0.86u4
General Improvements:
--------------------
Reorganised and cleaned up the kaneko16.c and related drivers splitting protection
related code into a separate file [Sebastien Volpe]
* Outrunners
drivers/multi32.c
- Changed name to "OutRunners" as per title screen and flyers
==========================================================================
0.86u3
Driver Improvements:
--------------------
Fixed filenames in some of the sets added in the previous update [Pierpaolo
Prazzoli]
General Improvements:
--------------------
Fixed for the random key mappings bug with new config system [Aaron Giles]
==========================================================================
0.86u2
Quick update but since there have been some large submissions I feel it is
worthwhile
Driver Improvements:
--------------------
Misc Updates [R.Belmont]
m37710.diff:
- Added analog and digital I/O port support. (anyone
know how to control PC case fans from software? Prop
Cycle's "fan" output is bit 1 of 37710 port 5... ;-)
- Added LDB absolute and DIV direct opcodes.
- Rewrote the RLA instruction. Pretty much everything
was wrong with it including the result, flags, and
cycle count.
- Fixed disassembly for RLA.
flash.diff:
- Added word-wide flash ROM support (specifically IDs
itself as the Sharp LH28F400 found on Konami "Beat the
Champ" PCBs).
Fixed Dragon Bowl sprite colours with new set [Pierpaolo Prazzoli]
Large Mahjong Update from Takahiro Nogi (updated to compile by Pierpaolo Prazzoli)
---------------------------------------
==========================================================================
0.86u1
Driver Improvements:
--------------------
==========================================================================
0.86
Driver Improvements:
--------------------
Pierpaolo Prazzoli
- Fixed fetch
- Fixed decode of e132xs_xm opcode
- Fixed 7 bits difference number in FRAME / RET instructions
- Some debbugger fixes
- Added generic registers decode function
- Some other little fixes.
==========================================================================
0.85u3
Driver Improvements:
--------------------
- Incorporated bugfix to the zlib code that was missing from the
official distribution. [smf]
==========================================================================
0.85u2
Driver Improvements:
--------------------
- Fixed bug that prevented the mixer from loading data unless all
channels had been modified. [Aaron Giles]
==========================================================================
0.85u1
Driver Improvements:
--------------------
- Fixed loading of ctrlr files so that they actually take effect now.
[Aaron Giles]
- Fixed debugger crash when using F10 with the i960 core. [R. Belmont]
==========================================================================
0.85
Driver Improvements:
--------------------
- Fixed bug with new command line options when using -createconfig.
[Aaron Giles]
- Changed the way the remapping works in the ctrlr .cfg files so that
it works more like the way the old system did. [Aaron Giles]
- Fixed bug that prevented default controls that were set to "None"
from saving/restoring properly. [Aaron Giles]
- Added feature to the general input settings so that if you hit Esc
to cancel setting a new input sequence, it toggles between "None"
(old behavior) and the default. This is similar to the change that
went into u6 for the game-specific inputs. [Aaron Giles]
- Fixed load order for ctrlr files so that they don't stick in the
default.cfg if you switch between ctrlrs. [Aaron Giles]
- Added new port type IPT_OTHER to use for controls that don't map
in a standard way. Modified all the Mahjong games to use this
instead of 0 for the port type, and changed the UI to recognize
this and show it in the game-specific inputs. [Aaron Giles]
==========================================================================
0.84u6
Driver Improvements:
--------------------
- Added groupings to the master controls list so that the list size
is not so unwieldy. [Aaron Giles]
* -paddle (keyboard|mouse|joystick|lightgun)
* -adstick (keyboard|mouse|joystick|lightgun)
* -lightgun (keyboard|mouse|joystick|lightgun)
* -pedal (keyboard|mouse|joystick|lightgun)
* -dial (keyboard|mouse|joystick|lightgun)
* -trackball (keyboard|mouse|joystick|lightgun)
==========================================================================
0.84u5
Driver Improvements:
--------------------
- Fixed subtle behavior in the ALLPOT handlers for the POKEY when held
in reset. [MikeJ]
- Added generic support for save states on games using the generic bitmap
video hardware. Also converted a number of drivers over to using that
system. [Andrew Gardner]
- Fixed the mixer code so it doesn't crash if the OSD layer returns an
error. [Andrea Mazzoleni]
- Fixed an issue in the H8/3002 core where the timer start register would
mess up timers that were already running. Improves the music tempo for
S12 games.
- Preliminary NEC V810 core (needed for mayjinsen, mayjinsen2 and jsk).
[Thomasz Slanina]
- Fixed several bugs in the new input system and improved the CFG file
format. [Aaron Giles]
==========================================================================
0.84u4
WARNING: There have been some major internal changes as of this build.
Furthermore, the controller.ini support is temporarily disabled. Any
other input-related bugs, please report to www.mametesters.org.
- Changed the format of .cfg files to use XML. All old .cfg files are useless,
just toss them away. This should allow for easier backwards compatibility
in the future. [Aaron Giles]
- MAME now requires the expat library for XML support. This is included in the
distribution, and is built automatically by default. You can comment out
BUILD_EXPAT in the main makefile to disable this behavior and link against
a precompiled version if you wish. Similarly, zlib has been modified to do
the same thing and is now included with the MAME source. Comment out the
BUILD_ZLIB flag to turn off this behavior and link against a precompiled
lib. [Aaron Giles]
- Revamped most of the input and input port system. This means a number of
changes for those who do their own OSD layer. All input APIs are now
unified -- there is no notion of "keyboard" versus "joystick" anymore. The
following APIs are now obsolete:
osd_get_key_list
osd_is_key_pressed
osd_get_joy_list
osd_is_joy_pressed
osd_is_joystick_axis_code
osd_lightgun_read
osd_trak_read
osd_analogjoy_read
osd_customize_inputport_defaults
osd_get_code_list
osd_get_code_value
osd_customize_inputport_list
The code list returned by osd_get_code_list should include entries for every
keyboard key, every joystick and mouse button, digital versions of joystick
analog axes (e.g., joystick X axis up), as well as entries for analog axes on
joysticks, mice, lightguns, etc. Essentially any input you wish to expose to
the user should be added to this list. Note that if you add items to this
list that don't map to the standard defaults, you must specify one of:
CODE_OTHER_DIGITAL, CODE_OTHER_ANALOG_ABSOLUTE, or CODE_OTHER_ANALOG_RELATIVE
to indicate what type of input you are providing.
- The configuration of ports has changed a bit now as well. You can now map
any analog axis to an analog port in the standard input UI. There are now
three entries per analog port. The first entry is the analog mapping. The
second and third control the digital decrementing and incrementing
sequences. To map an analog axis, just hit ENTER and then move the axis
in question by a large amount. [Aaron Giles]
- Added 32-bit port read handlers, and extended input port internals to 32 bits.
[Aaron Giles]
==========================================================================
0.84u3
Driver Improvements:
--------------------
- Added a DMA kludge to get Derby Quiz My Dream Horse to boot. [R. Belmont]
- Fixed save states in the m62 and mnight drivers. [Andrew Gardner]
- Fixed the PSX SIO timer so that it only fires when there is data to
send & processes one bit per tick. [smf]
- Cleaned up and reorganized the DCS sound module. This required changing
the way ROMs are loaded for all of the DCS-using games. [Aaron Giles]
- Fixed crash in the MIPS core introduced with the u2 changes. [Aaron Giles]
==========================================================================
0.84u2
Driver Improvements:
--------------------
- Cleaned up PORT_CHEAT and tagged ports for a number of drivers. [El Condor]
- Added save state support to the Namco System 1 driver. [Andrew Gardner]
- Added a preliminary core for the Namco C352 PCM chip. [R. Belmont]
It was originally written by the Zinc authors
for Zinc and has been adapted for MAME by me with
their permission. It's not sounding real great yet on
music, although it's better than the Zinc original.
==========================================================================
0.84u1
Driver Improvements:
--------------------
- Fully obsoleted the old input ports, modifying all drivers to use the new forms.
Added a number of new PORT_* macros to handle all the previously-defined flags.
[Aaron Giles]
- Fixed several issues with the new input port system. [Aaron Giles]
- Removed support for "cheat" ports and "reset CPU 0" ports. [Aaron Giles]
==========================================================================
0.84
Driver Improvements:
--------------------
- ZN updates [smf]
added japanese translations of magical date title.
fixed sfchamp/sfchampj parent/clone relationship
emulates taitofx1 watchdog properly
fixed system 11 nvram hookup
added a kludge to start sonic wings ltd in attract mode
fixed some issues with vertical display start/end registers
added horizontal start/send register emulation
fixed sound in qsound games
- Cleaned up the itech8 driver, now using new memory maps and standard VIA
support. [Aaron Giles]
- Factored machine/turbo.c into two parts, one containing all the sound code.
Includes some very crude attempts at making the beeps discrete. [Aaron Giles]
- Added some newly discovered PIC IDs to the Seattle driver. [Aaron Giles]
- Fixed the SPU/CDDA volume balance in the konamigv games. [R. Belmont]
- Added cocktail support to Super Stingray and Kyros, and coin counters to
The Next Space. [Pierpaolo Prazzoli]
- Fixed the trackball & tidied up the flash load/save in Simpsons Bowling. [smf]
- Some minor NeoGeo and Super Kaneko Nova rendering speedups. [Carlos Santillan]
- Many improvements to Jackie Chan, but still not playable. [Sebastien Volpe, David
Haywood]
- Improved DIP switches in LSA Squad, Whizz, Chase HQ, and SCI. [Brian Troha]
- Fixed several endian issues in the PSX-related drivers. [R. Belmont, smf]
- New input port definitions, similar to the new memory map definitions. You can
continue to use the old PORT_BIT, PORT_BITX, and PORT_ANALOG macros for now, but
it is preferred going forward that all ports use only PORT_BIT, and append all
other flags and options using the new macros. See pacman.c for an example of the
new format. The new input ports also support tagging for easier tracking of
ports,
and the ability to import port definitions from another set. [Nathan Woods]
- New option in the Windows version: -wavwrite to save sound output to a WAV file.
[smf]
- Removed -listinfo option now that xml2info produces fully correct output. [Aaron
Giles]
- Added support for many more instruction forms in x86drc.h. [Aaron Giles]
- Removed some silly 6502 speedups in the Atari games. [Aaron Giles]
==========================================================================
0.83
src/windows/fronthlp.c:
- Added an optional definition for the S_ISDIR macro for when it is
not present
STV Update [Mariusz Wojcieszek]
- added VDP2 layer disabling based on VRAM cycle pattern registers - fixes
gfx glitches in shanhigw title screen
- added VDP1 half transparency - improves sprites alpha blending in
shanhigw in-game
- added VDP1 Gouraud shading (for normal sprites only) - adds highlighting
for selected tiles in shanhigw
==========================================================================
0.82u3
src/cpu/i386op16.c:
- Fixed CALL absolute instruction under 16 bit mode
src/drivers/seibuspi.c:
- Fixed i386 interrupt call to use PULSE_LINE instead of always
ASSERT_LINE
src/inptport.h:
- Added more MESS specific stuff within #ifdef MESS
src/memory.c:
- Added memory_install_*_handler_mirror() calls that I thought that
I submitted earlier
src/vidhrdw/tia.c:
- Minor fix from the MESS side
src/windows/input.c:
src/windows/input.h:
- Changed use_mouse to win_use_mouse and made it non-static
7810 improvements and sound in games on Metro driver :-) [Eisuke Watanabe]
* 7810
gta, gti, dgt fixed
working reg opcodes fixed
sio input fixed
* metro.c
added sound support
0.82u2
goal92: Fixed clock, visible area and found it's missing the adpcm emulation.
I tried to add it, but i had no luck, so if anyone want to have a look,
please do it ;-) [Pierpaolo Prazzoli]
src/cpu/i386/i386ops.c:
src/cpu/i386/i386op16.c:
- CALL16 opcode will now only adjust IP instead of EIP when in
16-bit mode
- Minor bug fix in RETF opcode
- Changed REP and REPNE opcode implementations to use the same code
- INTO will now interrupt even if IF is zero
The driver has now been split into three parts. A few features that have been
missing
in Helifire since my last update are back, i.e. the flickering colors when you're
shot
and the volume decay effect (this affects the melody at the start of a game and a
few
tunes that can be heard during the bonus scenes every twelve attack waves). The
starfield should now scroll at the correct speed, it's only 75% of what it used to
be.
Finally, I have decided to use the color prom from Space Fever in Space Launcher, I
think it's correct.
Debugger: With this patch you can output traces to the console ( or grep etc ) by
typing: TRACE CONSOLE [smf]
ST-V updates [Mariusz Wojcieszek]
- fixed bugs introduced in previous update: RGB sprites bad colors and
incorrect sprite clipping
- added color offset for RGB sprites
- fixed horizontal scrolling for bitmaps (corrects mausuke ingame
background)
cpu/mips/mips3.c:
* added support for the Config register
* added support for new variants: R4700, QED5271, RM7000
* fixed bug in LWXC1/LDXC1/SWXC1/SDXC1 instructions
cpu/mips/mips3drc.c
* added support for the Config register
* added support for new variants: R4700, QED5271, RM7000
* extracted core codegen portion into new #include file mdrcold.c
drivers/seattle.c:
* added more extensive documentation on the various boardsets
* added constants for the GT64010 and all interrupts
* added ethernet device interrupt support
* made the IDE controller visible on the PCI bus
* formalized support for the "widget" board used in vaportrx & calspeed
* hooked up CMOS protection bit
* corrected sfrushrk audio CRCs and hooked up hard disk
* marked sfrush and vaportrx as working
machine/midwayic.c:
* added support for sfrushrk PIC
* added timeout on PIC reads to speed up sfrushrk
* fixed missing sound reset latch at startup
machine/smc91c9x.c:
* new implementation of SMC91C94 ethernet controller
* only loopback mode supported
vidhrdw/voodoo.c:
* cleaned up logging
* all stats now accessible via the backslash key
* got rid of ugly red/blue swap hack
* fixed missing truncation on vertex coordinates (fixes vaportrx graphics)
* added support for alternate LFB write modes
==========================================================================
0.82u1
The main result (visible to user) of these changes is that shanhigw is now
playable without problems (apart from gfx glitches on title screen).
==========================================================================
0.82
==========================================================================
0.81u9
Changed file handling behavior, adding a one character buffer [Andrea Mazzoleni]
==========================================================================
src/cpu/i386/i386op16.c:
- Partially implemented far CALL and JMP instruction
src/cpu/i386/i386ops.c:
- Implemented PUSH rm8 instruction
386:
- Bugfixed Nathan's REP
Phil's 'if I get hit by a bus' Namco S22 MLE update [Phil Stroffolino]
TMS32025:
bugfix for lst and lst1 opcodes; the "ignore ARP" hack has been replaced with
a better hack, that doesn't interfere with indirect addressing.
Preliminary serial I/O support has been added, to update DRR/DXR on RINT and
XINT interrupts. set_irq_line() no longer masks the lines with 0x7; this allows
external triggering of RINT/XINT interrupts.
0.81u7
Dipswitch corrections for Karate Blazers, Turbo Force, Raiden 2 [Brian Troha]
src/cpu/i386/i386.c:
- Fixed a bug in i386_set_info() when changing the EIP register
src/cpu/i386/i386dasm.c:
src/cpu/i386/i386op32.[c|h]:
src/cpu/i386/i386op16.[c|h]:
src/cpu/i386/i386ops.c:
- Fixed some compilation errors under non-GCC compilers
- Implemented ES, BOUND, DAA, DAS, AAS, INSB, INSW, OUTSB, OUTSW,
LES, LDS, HLT, LSS, LFS, LGS, IMUL with a 32 bit adjustment,
==========================================================================
0.81u6
Fixed leprechn service switch broken in the last update [Stefan Jokisch]
src/cpuintrf.c:
src/cpuintrf.h:
- Added the MESS specific TMS7000 core to the list of CPU cores
Minor improvement to Lord of Gun driver (still doesn't work) [Pierpaolo Prazzoli]
==========================================================================
0.81u5
General Source Changes
----------------------
Fixed slow Seattle boot times caused by recent IDE change [Aaron Giles]
DCS2 upload command HLE optimization (to make driver easier to work with) [Aaron
Giles]
MIPS core MIPS3DRC_FLUSH_PC option for accurate PC handling when debugging [Aaron
Giles]
Fixed MIPS bug when directly accessing 2-byte values in big endian
mode [Aaron Giles]
midwayic.c:
* added faux support for setting the real time clock (to pass diags)
* added shuffle map for Vapor TRX
* implemented crude loopback in UART (to pass diags)
voodoo.c:
* added full memory FIFO emulation
* removed hack for fastfill operations after a buffer swap
* added compile time option to reduce the resolution
* added client callbacks for VBLANK synchronization
* cleaned up handling of statistics and debugging info
* added optional R/B component swapping (for vaportrx)
* fixed crashing problems when executing Midway POSTs
* now dynamically computing refresh rate based on hSync/vSync registers
src/memory.c:
src/state.c:
src/x86drc.c:
src/cpu/i386/i386.c:
src/cpu/i386/i386op16.c:
src/cpu/i386/i386op32.c:
src/cpu/i386/i386ops.c:
- Converted printf()/exit() combination of calls to osd_die()
src/windows/config.c:
- osd_die() messages now get sent to both logerror and console output
src/cpu/i386/i386op16.c:
src/cpu/i386/i386op32.c:
src/cpu/i386/i386ops.c:
- Implemented i386 in/out instructions
==========================================================================
0.81u4
ZN Improvements [smf]
24-bit rendering support for Judge Dredd
src/fileio.c:
src/windows/fileio.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
src/png.c:
- Replaces a #ifdef MESS/#else/#endif combo with a usage of the
APPNAME macro
Also, you can go to any memory window and type 'P' to view program address
space, or 'T' to view data address space.
osd_alloc_executable();
osd_free_executable();
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.
==========================================================================
0.81u3
==========================================================================
0.81u2
==========================================================================
0.81u1
Partial Raiden 2 Sprite Decryption (check sprite gfx with viewer, F4)
==========================================================================
0.81
m68kcpu.h, m68kcpu.c:
---------------------
A) scc (68000 only): CYC_SCC_R_FALSE was defined, not used, and misnamed as
the extra 2 cycles happens when CC is true: now used and renamed to
CYC_SCC_R_TRUE
m68kmake.c:
-----------
B) add/adda/and/or/sub/suba (68000 only): the 'extra 2 cycles' cases were not
handled correctly: corrected to be effective on .l only, and also on
register
direct (previously, all sizes were affected, and only in immediate mode)
m68k_in.c:
----------
Fixed small v60 bug related to Aaron's recent changes [Olivier Galibert]
Fixed several small Hyperstone CPU core bugs [Pierpaolo Prazzoli, Mooglyguy]
==========================================================================
0.80u3
src/state.c:
src/state.h:
- Added a state_save_check_file(); a call that front ends can use to
validate a state save file
==========================================================================
0.80u2
(03/18/04)
- Added correctly dumped ROM set for eswat to replace the old one. Game is
encrypted and unplayable.
- Moved Ace Attacker to system16.c, it's not a System 18 game.
- Added sound support for tturf, tturfu, tturfbl (no samples), fpointbl, fpointbj
- Fixed toryumon RAM test
- Cleaned up timscannr, toryumon drivers
- Added Where's Wally? (wwally) Game is encrypted and unplayable.
- Fixed System 18 sample ROM banking. This doesn't help the current working games,
but will support others when/if they are decrypted.
- Fixed RF5C68A clock (7.15 MHz -> 8.00 MHz).
- Fixed Z80 clock (8.192 Mhz -> 8.00 MHz).
- Cleaned up shdancbl sound hardware a little.
(03/15/04)
- Fixed 2nd 68000 ROM visibility in hangon, ROM test works.
- Fixed sprite RAM, tile RAM, and shared RAM size in hangon, RAM test works.
- Fixed shared RAM and road RAM visibility to hangon, road layer works again.
- Added proper emulation of the I/O hardware in hangon, no patches needed and test
mode doesn't crash anymore.
- Migrated aurail, riotcity, bayroute to use sys16_sprite_shinobi.
- Cleaned up altbeast, riotcity, bayroute, aurail drivers (no junk in error logs,
took care of unused inputs/outputs, etc.)
- Removed 'extra' RAM in some drivers and replaced with sys16_tilebank_w.
- Fixed sprite zooming in sys16_sprite_shinobi (corrects sprite placement in
Heavyweight Champ)
- Fixed sprite list parsing (fixes output test progression in Heavyweight Champ)
- Added Shadow Dancer (Rev.B)
- Checked and fixed speed-ups for shdancer, shdancrj, shdancbl, shdancrb.
- Added I/O chip and partial VDP emulation for shdancer, shdancrj, shdancbl,
shdancrb, moonwlkb, astormbl.
- Added Datsu bootleg sound hardware support for shdancrb and fixed sound crash.
- Fixed shdancbl sprite loading.
- Cleaned up shdancbl driver, now fully playable with only minor graphics problems.
- Fixed sys16_paletteram_w and removed sys16_dactype.
- Palette now generated using routines in res_net.h to properly make normal,
shadow, and highlight colors.
(Aaron)
(Derrick)
src/fileio.c:
src/fileio.h:
src/windows/fileio.c:
- Changed MESS specific file type from FILETYPE_CRC to FILETYPE_HASH
src/hash.c:
src/hash.h:
- Added hash_data_insert_printable_checksum() call
- Made things more const correct
All games:
Sheriff / Bandido:
Helifire:
- various audio and video effects are still missing, including a few
which were previously implemented and which I hope to re-add soon
Various Timer Fixes, correcting some problems with SlySpy etc. [Aaron Giles]
Cleaned up Capcom Bowling driver and fixed crash on reset [Aaron Giles]
==========================================================================
0.80u1
Fixed the opcode view which in some cases displayed too many bytes on 32 bit
CPUs such as 68020 and Hyperstone [Bryan McPhail]
==========================================================================
0.80
src/sndintrf.c:
- Fixed a small typo in the DMADAC interface line
src/sound/tms5220.c:
- Added a security margin in the estimate of the delay for speech
synthesis ready line to come low (needed for a MESS side bug fix)
src/chdman.c:
- Added some completion messages, and fixed the code that was
falsely assuming that progress() was a function pointer
src/windows/window.c:
src/windows/window.h:
- Changed video_window_proc() to win_video_window_proc() and made
non-static so that MESS's window proc can call it.
- Changed win_init_window() to use MESS's window proc (within #ifdef
MESS of course)
- Added a win_suspend_directx global variable to temporarily turn
off DirectX usage (used in MESS)
- Added a few minor MESS specific #ifdefs
src/rules.mak:
src/cpuintrf.c:
- Added an entry for the TMS99100 processor
src/cpuexec.c:
src/cpuexec.h:
- Introduces cpu_getscanlinetime_mt() and
cpu_getscanlineperiod_mt(); variants on their namesake calls except they
return mame_time instead of double
ZN Cleanups [smf]
Toaplan1
- Corrected Savestate setup
- Adjustments for TMS32010 internal data map
HardDrivin
- Adjustments for TMS32010 internal data map
0.79u4
Fixed a problem when resetting various games caused by the timer updates [Aaron
Giles]
==========================================================================
0.79u3
src/cpu/jaguar/jaguar.c:
- Adding a missing case to jaguargpu_get_info()
src/cpu/m6502/m4510.c:
src/cpu/m6502/m4510.h:
src/cpu/m6502/m6509.c:
src/cpu/m6502/m6509.h:
src/cpu/m6502/ops09.h:
src/cpu/m6502/ops4510.h:
src/cpu/m6502/t65ce02.h:
- Updated m4510 and m6509 CPU cores to MAME 0.79
src/sndhrdw/snes.c:
- Removed a duplicate global variable definition
src/cheat.c:
src/info.c:
src/usrintrf.c:
- Removed NEOMAME and CPSMAME declarations
src/mame.c:
- Added a new consistency check on CPUs to check for the existence of
certain get_info cases needed for debugging. This consistency check
is currently only enabled for MESS.
src/windows/input.c:
src/windows/input.h:
- Changed key_trans_table to be non static and renamed to
win_key_trans_table (this table is now used in MAME32)
src/memory.c:
- Changed all fatalerror() calls to osd_die()
src/chdman.c:
- Added -createblankhd and -copydata commands
- Added new arguments to -createhd
- Ported to Macintosh
src/artwork.c:
- Changed artwork_override_screenshot_params() so that its
functionality will kick in whenever the artwork system is active, even
without artwork pieces
- Introduced a static artwork_system_active(); a call to check to
see if the artwork system is active.
Fixed a TMS32031 bug that was causing some problems in Radikal bikers [Aaron Giles]
==========================================================================
0.79u2
The old system had some drifting errors due to FP rounding which are gone
now.
src/mame.c:
- Added a new consistency check for drivers that use non-existent
CPU cores
src/machine/snes.c:
src/includes/snes.c:
- Refactored to remove MESS specific code
src/machine/idectrl.c:
src/machine/idectrl.h:
- Added ide_bus_0_r() call to access the bus directly
src/cpu/z80/z80.c:
- This patch changes the Z80 CPU core to set the Z80 cycle tables to
their defaults on startup. This removes any need for drivers to reset
the Z80 cycle tables back to their defaults on exit.
Added support for the IACK and IDLE commands in the TMS32031 core [Aaron Giles]
==========================================================================
0.79u1
this affects the first Namco games that used custom I/O chips.
- these files are no longer needed and should be removed: drivers/bosco.c,
drivers/xevious.c, drivers/digdug.c, machine/digdug.c, machine/galaga.c,
machine/bosco.c, machine/polepos.c, sndhrdw/bosco.c
- added three new sound chips: NAMCO_15XX, NAMCO_52XX, NAMCO_54XX, and
changed drivers to use them (NAMCO_54XX is just a placeholder playing
samples, until the chip is reverse engineered).
- added EAROM support to digdug
- fixed the polepos2 title screen which had been broken since day 1, strange
that nobody noticed.
- fixed various mistakes in the polepos ROM loading (one missing speech ROM
in polepos, polepos2 was using the wrong engine sound ROMs (it's turbo!),
added missing vertical scaling PROMs).
- extensive documentation of ROM names and placement, and differences
between Namco and licensed versions.
- converted all drivers to tilemaps, and made gfx emulation more accurate
according to schematics
- polepos sprite zooming should now be closer to the hardware.
- IP_KEY_PREVIOUS and IP_JOY_PREVIOUS are no longer used by any driver: they
may be removed from the core.
- support for start lamps, coin counters and coin lockout (all
internallyhandled by the custom I/O chip)
- toggling the test switch while the game is running enters test mode
without need to manually reset.
- found and documented test mode Easter eggs in all games except Xevious.
- bosconian now uses a different sound PROM, which seems more correct.
- galaga uses better dumps of the PROMs, with the unused top 4 bits set to
0.
- correct handling of 52XX sample start/end pointers in ROM.
- better emulation of 50XX custom, no more need for hacks in bosconian.
- swapped digdug and digdugb, the main set should be the newer one.
- removed these galaga clones: nebulbee (copyright/name change), galagab2
(mix 'n match of ROMs from other sets), galaga84 (copyright/gfx change),
galagads (1-byte hack to get fast shoot,
reproducible with this line in cheat.dat:
galaga:1:070D:0D:100:Fast Shoot)
- added Galaga rev. B, which is now the main set, renamed the other galagao.
- added galagamk, a different Midway version.
- removed various bad dumps from polepos2b and poleps2c, they turned out to
be the same version so poleps2c is removed.
- drivers/locomotn.c is no longer needed and should be removed
- converted to tilemaps, consolidated as much as I could
- fixed: jungler37b3gre
- correct tile/sprite priority handling (also in Bosconian)
- documented the Easter egg in Rally X
- added starfield in Tactician
- fixed the RC filter control in the games with Konami sound
Updated Hard Drivin' driver and fixed Steel Talons / HD Airborne again [Aaron
Giles]
src/cpuintrf.c:
- Renamed CPU_CP1600 to CPU_CP1610
src/sound/k051649.c:
src/sound/k051649.h:
- Enhancements to the K051649 sound system
Fixed Mortal Kombat damage that was broken in .79 [Aaron Giles]
==========================================================================
0.79
Fixed most of the bugs caused by changes made in the .78 u cycle, please check any
you
reported to make sure [Aaron Giles + Various]
Updated many Atari / Midway drivers to use new style Memory Maps and cleaned them
up [Aaron Giles]
Fixed a problem with the SH2 speedup previously added [Olivier Galibert]
Updated ST-V driver to use new memory system, cleaning up the map [Olivier
Galibert]
Warning screens are now skipped if running with -ftr for less than 5
minutes [Aaron Giles]
Fixed crash when taking screenshots of rotated vector games [Stefan Jokish]
==========================================================================
0.78u6
The biggest change is the way address maps are declared in the drivers. Rather than
having
separate read and write address maps, there is now support for a single, merged
map. In order to
minimize the amount of code churn, there is currently still support for two
separate address
maps per address space, but they are combined into one internally early on in the
memory
initialization and setup.
Because of this change, the 'start' macro for address maps has changed. The old set
of macros:
PROGRAM_READ*_MAP_START(name)
DATA_READ*_MAP_START(name)
IO_READ*_MAP_START(name)
and all drivers have been updated to use this new mechanism. In addition, all the
PROGRAM_*, DATA_*,
and IO_* synonyms are now merged into a single ADDRESS_* macro. For example,
PROGRAM_MAP_FLAGS is
now just ADDRESS_MAP_FLAGS.
The next big change is that the address maps, in addition to being unified, are no
longer static
arrays. Rather, they are constructed in much the same way the machine drivers are
constructed.
Through a series of macros, the address maps are built up in code and type-checked
along the way.
All existing MAME drivers have been updated to the new macros.
In addition, there are many new options available to support extra features like
mirroring,
automatic pointer assignment, and shared memory pointers. As of this version, only
seattle.c and
system24.c have been updated to support the new constructs. Use these as examples
of what can be
done. Also, see the top of memory.c for an explanation of all the new macros.
Once again, the way memory is automatically allocated has changed. It is now done
based on the
memory maps, like it used to be, but with the added support for shared pointers and
hard-coded
pointers into memory regions.
Save states should now work, but once again, they are saving more data than is
strictly
necessary.
Internally, the way address map lookup tables has changed, so that subtables can be
reused. This
is important if a small memory region is mirrored across a large address space; the
old code
didn't coalesce identical subtables, which would have blown up in a big way with
tricky mirrors.
Renamed a bunch of internal memory state, including OP_ROM, OP_RAM, and several
others.
Added save state support for 64-bit data types. [Olivier Galibert]
==========================================================================
0.78u5
Fixed DIPS
Indoor Soccer [Brian A. Troha]
Radical Radial [Stefan Jokisch]
Removed some 'smart' code from CHD filename handling [Olivier Galibert]
==========================================================================
0.78u4
Changes:
* CPUs with an implicit address shift (e.g., the TMS34010 shifts addresses
right 3 bits; the TMS32031 shifts addresses left 2 bits) now automatically
get that shift applied to addresses in their memory maps and in calls to
install_memory_read/write_handler(). This eliminates many ugly macros in the
memory maps. Affected CPU cores are the ADSP210x, CCPU, PIC16C5x, TMS3201x,
TMS3202x, TMS32031, and TMS340x0. Note that the CPU cores themselves still
need to pass shifted values to the core read/write routines. All drivers
using these cores have had their icky macros and bitshifts removed.
* Harvard architecture CPUs now have data memory fully implemented now.
Affected CPUs are the ADSP210x, TMS3201x, TMS3202x, PIC16C5x, and CCPU. All
cores have been modified to fully split program and data memory. All drivers
using these cores now specify explicit program and data memory maps. This
also gets rid of a ton of ugly macros used in memory maps.
* Address spaces are now determined dynamically based on whether a given CPU
returns a non-zero value for the address bus width for a given space.
* Added a TMS32026 entry and reworked the handling of internal RAM to work
in the new system. This means the Taito Air system is now back to its former
state.
- Most games merged into mappy.c, so the following files are no longer
needed:
drivers/superpac.c vidhrdw/superpac.c machine/superpac.c
drivers/grobda.c vidhrdw/grobda.c machine/grobda.c
drivers/phozon.c vidhrdw/phozon.c machine/phozon.c
machine/mappy.c
- one new file: machine/namcoio.c. This implements the 56XX and 58XX I/O
custom chips used by all the games. The I/O chips are now accurately
simulated, fixing subtle nuances during normal operation and not-so-subtle
ones in test mode; e.g. you can now scroll the grid in Mappy's test mode.
- fixed and verified inputs and dip switches for all games.
- found and documented the Easter eggs in all games except Toy Pop.
- fixed interrupt and sub cpu reset handling, which caused some games to
report errors when entering test mode without resetting.
- added detailed memory maps where schematics allowed.
- all drivers converted to tilemaps
- cocktail mode in Phozon, and non-hack implementation in Gaplus
- fixed priorities in superpac. With the previos code, ghost eyes had
priority over everything else, even other sprites, giving wrong results when
two ghosts overlapped.
- round advance dip switch in Gaplus available & working
- fixed a missing sound effect in Phozon that nobody would have ever
noticed.
- I've also included a revised warpwarp.c, converted to tilemaps and with
the Warp Warp Easter egg documented.
Improved sound in Miss Bubble 2 and Power Instinct (bootleg set 2) [Quench]
==========================================================================
0.78u3
The following bugs created by the changes in u2 have now been fixed
cpuintrf compile bug with DJGPP [smf]
CPU_M6809E typo in cpuintf.c [Aaron Giles]
HD63705 address bus width (namcos2 crash) [Aaron Giles]
namcos1 crash [Aaron Giles]
namcos21 crash [Aaron Giles]
mpatrol crash [Aaron Giles]
inability to compile with asm 68k [Aaron Giles]
boblbobl not working [David Haywood]
circusc 'Ram Bad' error [David Haywood]
crospang sound handler [Pierpaolo Prazzoli]
Please update to this version and continue to test and report any new bugs you find
==========================================================================
0.78u2
The only change in u2 is the overhaul of the memory system mentioned below, no new
drivers have been
added
Significant overhaul of the memory system. This is the first of several phases, but
it lays the
groundwork for future improvements. This first change will also be the most
disruptive, touching every
CPU core and every driver file [Aaron Giles]
The biggest change is the introduction of the concept of address spaces. Each CPU
can have up to 3
separate address spaces now, with the possibility of easily adding more in the
future. Each address
space has its own addressing semantics, including databus width, address bus width,
address shift, and
unmapped memory value.
The three existing address spaces are defined to be program, data, and I/O. The
program address space is
where code is assumed to live; it is also where all memory lives in standard von
Neumann architecture
CPUs. The data address space is for Harvard architecture CPUs, and will be used in
the future to do
proper program/data separation for the CCPU, PIC16C5x, ADSP210x, TMS32010, and
TMS32025. The I/O address
space is used for port accesses, such as those performed by the Z80 and x86 CPUs.
The read/write handlers used by CPUs to access memory have all been renamed in the
shuffle, both in order
to match the address space naming conventions (program/data/io) and in order to
make it clearer what they
do. In addition, they have been unified to a large degree. Instead of separate
memory accessors based on
both the address bus width and the data bus width, there is now just one shared set
of memory accessors
for each data bus width. Here are some examples of how older functions map to newer
ones:
A common annoyance used to be that drivers would need to know which of these
functions to call in order
to read memory. A table of accessors is now included as part of the memory context
switch, which allows
the addition of generic functions that can be used by the drivers to access memory.
For example, a driver
trying to read a word from a 68000's address space used to have to call
cpu_readmem24bew_word(). Now the
driver can just call program_read_word(), and the memory system will do the right
thing.
In addition, there is now a single change_pc() macro used by all CPU cores,
regardless of the databus or
address bus width.
Along with these changes, the macros for defining memory maps has changed for
consistency as well, as
follows:
Along the way, support has been also added for CPUs with a 64-bit data bus, so
there are also macros for
PROGRAM_READ64_MAP_START, etc.
One of the future goals of the memory system is to support not just ranges of
memory, but also better
support for mirrors and more complicated situations where addressing is repeated at
regular intervals.
In order to facilitate this, macros have been created that must be used when
defining a memory map:
MEMORY_READ_START PROGRAM_READ8_MAP_START
{ 0x0000, 0xffff, MRA_RAM }, -> READ_RANGE( 0x0000, 0xffff,
MRA8_RAM )
MEMORY_END PROGRAM_MAP_END
MEMORY_WRITE_START PROGRAM_WRITE8_MAP_START
{ 0x0000, 0x0fff, MRA_RAM }, WRITE_RANGE ( 0x0000,
0x0fff, MRA_RAM )
{ 0x1000, 0x7fff, MRA_RAM, &foo }, -> WRITE_RANGE_P ( 0x1000,
0x7fff, MRA_RAM, &foo )
{ 0x8000, 0xffff, MRA_RAM, &bar, &bar_size }, WRITE_RANGE_PS( 0x8000,
0xffff, MRA_RAM, &bar, &bar_size )
MEMORY_END PROGRAM_MAP_END
Since all the memory maps were changing anyway, static 8-bit handlers have been
renamed for consistency.
This means that MRA_NOP becomes MRA8_NOP, etc.
Prior versions of MAME allowed special entries in the read/write maps to control
the number of effective
address bits. This mechanism has changed so that you can supply an arbitrary
combination of flags:
and it has been enhanced to also allow you to specify the unmapped memory value:
PROGRAM_MAP_FLAGS( MEMORY_UNMAPPED_0 ) /* unmapped reads return all 0's */
PROGRAM_MAP_FLAGS( MEMORY_UNMAPPED_1 ) /* unmapped reads return all 1's */
Another "feature" that has changed is that unmapped reads and writes to address
spaces of less than 20
bits no longer act like RAM. This may break some drivers, but it ends the special
treatment of 8-bit
address spaces.
In the machine driver macros, the address space is now explicitly specified:
The other significant change in this release is the way CPUs are defined and
referenced. Previously,
the file cpuintrf.c contained a huge table with many pointers into each CPU, and a
bunch of data about
each CPU type. This was problematic to maintain, and left a bunch of data out of
the CPU core to be
defined by MAME instead.
The new release defines a new function that every CPU core must implement, of the
form:
This is the only public function defined for each CPU core. The table in cpuintrf.c
now simply consists
of an enumerated index for the CPU type, followed by the pointer to the actual
CPU's get_info function.
The flexible get_info function is then responsible for providing pointers to all
the remaining functions.
In addition, the number of other functions has been greatly reduced:
==========================================================================
0.78u1
Fixed OKI Sound (and a few other things) in the following [Quench]
Diverboy (diverboy.c)
Bakuretsu Breaker (kaneko16.c)
Aquarium (aquarium.c)
Funny Bubble (funybubl.c)
Update to allow drivers to dynamically change the refresh rate during execution
[Aaron Giles]
src/windows/ticker.c:
- Compiler specific assembler code for feature reading replaced by call added
above
Final Lap 2 now loads the right object roms [Brian Troha]
Removed a few IPF_CHEAT in toaplan drivers so mame doesn't hide the dipswitches
[Mamesick]
==========================================================================
0.78
src/input.h
src/windows/input.c
src/windows/input.h
src/windows/window.c
Removed '(hack?) from descriptions of newly added raizing games, stickers on the
boards
seem to indicate they are genuine Korean release versions.
Seattle:
* added support for Biofreaks
* fixed remaining issues in California Speed
* verified California Speed HDD dump (works in self test, not in boot ROM
test)
* fixed timer change that broke Blitz 2000
* added proper PIC IDs for Wayne Gretzky and Mace
IDE controller:
* fixed final sector handling for Gauntlet: Dark Legacy
Midway IC:
* added sound auto acknowledgement option
* added new PIC mapping for Gauntlet: Dark Legacy
* fixed initial sound IRQ state
DCS:
* fixed reporting of input full/output empty states
Voodoo:
* added initial Voodoo 2 support
* removed hack to toss what I thought were bogus triangles
* improved W buffer handling
* improved accuracy of depth buffer handling
ROM patch to fix sound cpu communication in Gundam Psycho Salamander [Tomasz
Slanina]
still need a real fix ..
src/drivers/dcon.c
==========================================================================
0.77u3
Fixed Uncio sound frequency with values taken from real pcb [El Condor]
YMF271 sound core plus very preliminary hook up in ms32.c (only Desert War makes
any sound at all and it doesn't really seem to be anytihng like correct, this is
probably due to a combination of z80 communication and banking issues) [R.Belmont]
Updated Vball driver to use graphics extracted from origianl PCB [Jarek Burczynski]
src/ui_text.c:
src/ui_text.h:
src/mame.c:
- Cleanups in UI string support, primarily to more easily
support MESS specific strings without modifying MAME files. Also
removed uistring_shutdown(), which is made unnecessary by auto_strdup()
src/osdepend.h
src/cpu/z80/z80.c
src/windows/config.c
- Adds osd_die() function; a friendlier way to die in some
unexpected fatal way than exit(-1) or [shudder] raise(SIGABRT)
src/harddisk.h
src/chd.h
- Adds #ifndef <headername>_H protection
src/windows/config.c
- Adds minor code within #ifdef MESS
Changed Liberator to use Proms, proper PROMS are not dumped however [Stefan
Jokisch]
==========================================================================
0.77u2
CHDman updates, with added checks to make sure source chd's aren't corrupt
when doing updates etc. [Aaron Giles]
src/chdman.c
Found the way the OTIR/INIR instructions affect the PF flag and removed
the look-up tables [Ramsoft, Sean Young]
src/cpu/z80/z80.c
Merged taito_x.c and seta.c video hardware, this is correct but due to some
differences in the drivers a few glitches have been introduced in twinhawk
that will need investigating [David Haywood]
==========================================================================
0.77u1 (private)
note, credit for the Z80 DAA emulation improvement in the previous release should
have been given to 'Ramsoft' ( http://www.ramsoft.bbk.org/ )
src/machine/6522via.c:
src/vidhrdw/tms9928a.c:
- Fixes and updates from MESS
Updated a couple of drivers with new Hard Drive SHA1s [Roman Scherzer]
src/drivers/cojag.c
src/drivers/djmain.c
src/drivers/seattle.c
Various other changes (dip fixes, tilemap conversions etc.) [various people]
==========================================================================
0.77
Fix to allow a driver to have MSM6295s and plain ADPCM voices coexist
(required for gcpinbal). [R.Belmont]
src/sound/adpcm.c
- TStrike now boots but sprites don't appear (I had them working
at one point, can't remember what broke them again).
src/drivers/ddragon.c
drivers/tmnt.c
drivers/atarig1.c:
* added support for the MO command register -- MO checksums now work
* added missing SHA1 values and marked some ROMs as NO_DUMP
* removed 6502 speedups
drivers/atarig42.c:
vidhrdw/atarig42.c:
* added support for the MO command register -- MO checksums now work
* added SLOOP emulation for Guardians of the Hood, which is fully playable
* added missing SHA1 values
* removed 6502 speedups
* documented color MUXing
* removed old orientation code
* added MO/playfield priorities
drivers/atarigt.c:
vidhrdw/atarigt.c:
* added support for the MO command register -- MO checksums now work
* hooked up CAGE audio
* added missing SHA1 values
* documented the overly complicated color MUXing
* added MO/playfield priorities
drivers/atarigx2.c:
* added support for the MO command register -- MO checksums now work
* added missing SHA1 values
* added another Road Riot's Revenge variant
* some input port tweaks
* removed 6502 speedups
machine/asic65.c:
* improved logic for Road Riot 4WD -- almost playable
* added support for Guardians of the Hood
machine/atarigen.c:
* fixed bad handling of EEPROM data in 32-bit mode
sndhrdw/cage.c:
* fixed frequency computation -- it now works ok!
* added speedup mechanism
* fixed positioning of the 4 voices
vidhrdw/atarirle.c:
* implemented the MO command register and checksumming
Improved Z80 DAA emulation allowing removal of look-up table [Sean Young / Stefano]
==========================================================================
0.76u2
src/sndintrf.c:
- Removing the update procedure in a MESS specific sound core
MIPS3 (R4000/R5000):
* fixed timer handling so we don't set a timer too far in advance
* changed timer handling so that the default Compare value doesn't trigger
timers
* fixed cycle chomping to make sure we don't go over an interrupt boundary
* added correct cycle times for MULT/DIV instructions
* fixed display of the Count reigster in the debugger
MIPS3DRC:
* same fixes as above, plus:
* fixed FP rounding glitches
* now actually respecting the global FP rounding mode
R3000:
* fixed instruction timings for MULT/DIV
X86DRC:
* added better support for tweaking the FP rounding modes
src/cpu/adsp2100/2100ops.c
src/cpu/adsp2100/adsp2100.c
src/cpu/mips/mips3.c
src/cpu/mips/mips3drc.c
src/cpu/mips/r3000.c
src/x86drc.c
src/x86drc.h
MagMax sound improvements (Emulated some op.amps and RC filter circuits giving
more exact results) [Jarek Burczynski]
src/drivers/magmax.c
Fixes to the ymdeltat module. Generally - even more flags work correctly now. These
changes are
necessary for the msx sound emulation (Y8950) and were tested in nlmsx emulator by
Frits
Hilderink. [Jarek Burczynski]
Look at the top of each *.c file for a detailed list of changes.
src/sound/fm.c
src/sound/fm.h
src/sound/fmopl.c
src/sound/fmopl.h
src/sound/ymdeltat.c
src/sound/ymdeltat.h
Improved Sound in Cabal / Dead Angle by adding ADPCM sounds [R.Belmont, Jarek
Burczynski]
src/drivers/cabal.c
src/drivers/deadang.c
src/sndhrdw/seibu.c
src/sndhrdw/seibu.h
Added Sample SUpport rto Armor Attack and Sundance [Tim Cottrill]
src/drivers/cinemat.c
src/sndhrdw/sinemat.c
src/includes/cinemat.h
Decoded BG graphics in Thunder Ceptor II but BG's still aren't hooked up yet,
improved existing graphics a bit
[David Haywood, BUT]
src/drivers/tceptor.c
src/vidhrdw/tceptor.c
==========================================================================
0.76u1
Ported ElSemi's SCSP Core, this gives preliminary sound in the ST-V games, however
at
the moment most of them play static, Shienryu is mostly correct [R.Belmont]
src/sound/scsp.c
src/sound/scsp.h
src/sound/scsplfo.c
src/drivers/stv.c
More ST-V Improvements, fixing various graphical issues (Shienryu Sprite Colours)
and
general other bits and pieces. More games are 'watchable' now, for example Cotton
2,
Cotton Boomerang, Puyo Puyo Sun, Columns 97 however they lack controls [David
Haywood]
src/drivers/stv.c
src/vidhrdw/stvvdp1.c
src/vidhrdw/stvvdp2.c
Some Atari improvements with the new sets (old speed hacks removed that aren't
really
needed anymore, both screens being displayed in Cyberball) [Aaron Giles]
src/ -various, too many to list
src/x86drc.c:
src/x86drc.h:
- Added a few macros for other miscellaneous X86 opcodes
- Added a drc_dasm() call, a debug call that uses MAME's I386
disassembler to disassemble DRC'd code
(didn't compile, commented out until fixed)
src/mame.h:
src/windows/config.c:
- Added 'GAMENOUN' and 'GAMESNOUN' macros; defined to be the
human readable text for the words 'game' and 'games' respectively (this
is so MESS can use the nouns 'system' and 'systems')
v60 Improvements (LDTASK, STTASK, ABSF and some missing \n.) [Olivier Galibert]
src/cpu/v60/*
Misc Windows OSD updates and D3D fixes [Leon van Rooij]
makefile:
windows\windows.mak:
Added CFLAGSOSDEPEND variable. It is used when compiling osd code only
(e.g. DirectX needs -Wno-strict-aliasing).
COMPILESYSTEM_CYGWIN determines if nasm or nasmw is used (the cygwin
version of nasm is called nasm)
windows\fileio.c:
Quick fix for some #defines in that don't work with win32api 2.4
windows\snprintf.c:
Changed a variable name that conflicts with a gcc built-in
windows\blit.c:
windows\wind3d.c:
Fixed a bug that affected stv games when flipping/rotating the image
windows\wind3d.c:
windows\window.c:
windows\window.h:
window size/prescale/rgb-auto effect can now change when the image size is
changed by the game driver
0.76
It appears no new timer system related bugs were found with 0.75u1 so *hopefully*
this
release will be better than the last, 0.75 ended up not being not too great due to
the
problems with the YM2151 sound etc.
Various ST-V and SH-2 improvements, shienryu is improved as are many other games
but
no more are really playable yet (although I have changed Shienryu to IMPERFECT_GFX
instead of NOT_WORKING as it seems ok, just the sprites are black)
[David Haywood, Olivier Galibert, sthief, Angelo Salese]
src/drivers/stv.c
src/vidhrdw/stvvdp1.c
src/vidhrdw/stvvdp2.c
src/cpu/sh2/sh2.c
==========================================================================
0.75u1
Please TEST this release, I had hoped 0.75 would be the end of the timer related
bugs
for good but it wasn't so if this tests out as ok then I'll probably release 0.76
within a fairly short period of time, if sound has vanished on any games, or
anything
that booted in .75 no longer boots let us know, the sooner the better.
Cleaned up SH-2 core a bit and added a possible kludge for Sol Divide's
Music [Olivier Galibert]
src/cpu/sh2/sh2.c
Fixed Speedup for r3000 version of Area 51 / Max. Force Duo [Aaron Giles]
src/drivers/cojag.c
==========================================================================
0.75
Fixed bug in the time accounting for the V60 which was causing Outrunners to run
with flickering sprites and slow music [Aaron Giles]
src/cpu/v60/v60.c
Fixed another V60 bug introduced in 0.74u2 which broke the v70 games (and further
broke Outrunners) [Kobat, Olivier Galibert]
src/cpu/v60/v60.c
Fixed some bugs introduced with the timer system changes a while back [Aaron Giles]
Hopefully this is the last of them.... Fixes Exterminator and the Atari
polygon games. Hopefully doesn't break anything in the process.
src/cpuexec.c
* changed scanline timing to use floor() to get consistent results
* fixed bug in time computation if requesting a scanline in the next frame
src/cpu/tms34010/tms34010.c
* removed 4x executes per loop which screwed up timing
* fixed internal interrupt generation to get consistent timing results
src/timer.c
* now uses the active callback as a base time when adjusting timers outside
of a CPU context
src/drivers/harddriv.c
src/machine/harddriv.c
* fixed all the games again, but they are slower now due to more necessary
interleaving
src/cheat.c:
- Moves the MESS specific code into a separate module, reducing
#ifdef clutter
src/harddisk.c:
- Moved some variable declarations out of for loops so that it
can compile in non-GCC compilers
src/cpu/i86/instr86.c:
- Fixes REP CMPSW so that it uses words and not bytes
src/cpuintrf.c:
src/cpuintrf.h:
- Adds a call cpuintrf_set_dasm_override() that gives drivers
the ability to customize disassemblies. This probably isn't very useful
for MAME, but it is useful for MESS for things like software interrupts
used for BIOS calls.
src/windows/config.c:
- Increases the size of the buffer used when logerror() output
goes to OutputDebugString()
src/windows/config.c:
src/windows/config.h:
src/windows/winmain.c:
- Moves config.c externs to a header file
- Adds another call, cli_rc_create(), which creates MAME's rc
struct for use elsewhere. (I'm actually creating a debug time
consistency check feature for MAME32, to verify at runtime that the
arguments that MAME32 has are consistent with MAME's).
src/rc.c:
- When rc_destroy() is now called, freed pointers to strings and
files will now be NULLed out.
Overhauled the Canyon Bomber driver with a number of minor fixes like correct
RAM size and VBLANK duration. [Stefan Jokisch]
- hiscore reset button added
- sprite positions should be fixed according to the schems
- language ROM added (i.e. the language dip works now)
- prototype set renamed from canbprot to canyonp
==========================================================================
0.74u2
The TESTDRIVER system has been removed, all drivers are now enabled working or not,
this decision was made by several members of the development team. The drivers
that were previously TESTDRIVERS are still marked as GAME_NOT_WORKING so can be
filtered out easily with a front-end. Please note, the enabling of these drivers
does not indicate they're any closer to working than when they were first added
and in many cases it could still be several years before they work depending on
when they're worked on and how difficult they prove to be. We're always looking
for talented programmers to work on and improve Mame, some of these drivers could
be a good place to start (others may be near impossible to fix)
Fixed some V60 Floating Point Operations and made core exit on unhandled opcodes,
note UltraX doesn't work again [Olivier Galibert]
==========================================================================
0.74u1
Mame now recognises off-screen shots with the Act-Labs gun in a way which works
better with certain drivers (Area 51 etc,) [Bryan McPhail)
Various SH2 fixes improving Master/Slave support (this improves shienryu on st-v
but its not yet playable due to incomplete st-v emulation) [Olivier Galibert]
src/cpu/sh2/sh2.c
src/cpu/sh2/sh2.h
Hopefully fixed crash some people were having with Nostradamus [David Haywood]
src/vidhrdw/mcatadv.c
Added Paddle support to pop 'n' bounce (use -mouse, enable it in test mode, the
default is joystick not paddle) [David Haywood]
Improved the type 1 GX games a bit but none are working well enough to enable
yet [R.Belmont]
src/drivers/konamigx.c
src/vidhrdw/konamigx.c
Changed frogs to use a 3 way joystick instead of a 3 way joystick and 2 buttons
which was incorrect [Robin Merrill]
Remapped some of the mid*unit.c buttons to match the real board inputs
New TESTDRIVERS
---------------
Competition Golf [Angelo Salese]
incomplete video emulation
src/drivers/compgolf.c
(Medal) Yumefuda [Angelo Salese]
preliminary, doesn't boot yet
src/drivers/yumefuda.c
==========================================================================
0.74
Misc source changes mainly to Improve compatibility with MESS [Nathan Woods]
src/driver.h:
- Minor changes within #ifdef MESS
src/inptport.c:
- Minor change to recognize MESS IPT_CONFIG input ports
src/legacy.h:
- Changed some of the prototypes to use 'mame_file *' instead of
'void *'
src/mame.h:
- Added APPNAME and APPLONGNAME macros to define the name of the
program (MAME/M.A.M.E. vs MESS/M.E.S.S.)
src/vidhrdw/jaguar.c:
- Adds some MESS specific templated blitters within #ifdef MESS
src/vidhrdw/ppu2c03b.c:
src/vidhrdw/ppu2c03b.h:
src/vidhrdw/playch10.c:
src/vidhrdw/vsnes.c:
- Small speedups (eliminated some usage of plot_pixel())
- Added support for scanline counts other than 262
- Interrupt changes by Brad Oliver
- Requisite changes to playch10 and vsnes to support Brad's
interrupt changes
src/windows/input.c:
src/windows/video.c:
src/windows/window.c:
src/windows/window.h:
src/windows/winmain.c:
- Misc changes to support MESS's menu bar (should not affect
MAME)
- Misc changes to use APPNAME and APPLONGNAME
Improved Loading of .72 cfg Files (prevents Mixer settings corruption) [Stefan
Jokisch]
src/sound/mixer.c
Fixed User-Interface bug which was causing problems setting controls for some of
the
players [Stefan Jokisch]
src/usrintrf.c
Workaround for a v60 crash causing ultra-x not to run on some systems [Tomasz
Slanina]
src/cpu/v60/op12.c
==========================================================================
0.73
Sorry, this list of changes isn't complete due to hardware problems I'm having.
Continued MegaPlay Improvements (still none fulyl working yet but more of the
bios menu tests pass now) [Barry Rodewald]
src/drivers/segac2.c
Some System GX Improvements, mainly to the not yet working games [R.Belmont]
src/drivers/konamigx.c
src/vidhrdw/konamigx.c
Various Changes to keep the code inline with MESS [Nathan Woods]
==========================================================================
0.72u2
Improved Megaplay a bit, the bios screens now show however the games still don't
work [Barry Rodewald]
src/drivers/segac2.c
src/includes/segac2.h
src/vidhrdw/segac2.c
Various ST-V improvements, Hanagumi Columns shows a partial title screen (still
disabled so you'll have to enable it yourself if you want to see)
[Angelo Salese]
src/drivers/stv.c
Fixed a bug in the C 68000 core with the SBCD Opcode [Acho A/ Tang]
States of the sign(N) and overflow(V) flags after SBCD,
ABCD and NBCD operations are "undefined" according to Motorola.
The C core randomizes the V flag and sets the N flag like signed
operations.
Fixed Mustache Boy Continue Screen and attempted to improve speed [Tomasz Slanina]
src/drivers/mustache.c
konamiic.c:
- boundary conditions and kludge removal in K007420
rockrage.c:
- rogue sprites
kncljoe.c:
- bad scrolling, clipping, rogue sprites
Dipswitch Fixes:
1st dipswitch of 3rd bank in 1941 [Fabrizio Pedrazzini]
src/drivers/cps1.c
Tetris Plus 2 (MS32 version) [Sonikos]
src/drivers/ms32.c
Changed nkdodgeb to use proms from another Japan bootleg set, maybe this fixes
some problems with the colours.
src/drivers/nkdodgeb.c
Preliminary Hyperstone Core, not yet working well enough to run anything [Pierpaolo
Prazzoli]
==========================================================================
0.72u1
Changed Fuuki 16-bit driver to use Partial Updates for Raster Effects and enabled
them [David Haywood, Paul Priest]
src/drivers/fuukifg2.c
src/vidhrdw/fuukifg2.c
Temporary Fixes to a few of the System 16 driver problems (sound banking for
example) Note, the driver is still being rewritten these are only minor 'fixes'
to improve things a bit until the rewrite is complete [Acho A. Tang]
src/drivers/sysetm16.c
src/vidhrdw/system16.c
src/vidhrdw/sys16spr.c
Change so DIP menu isn't displayed if no Dipswitches are defined in the driver
instead of flashing a blank mneu when you try and enter it [Paul Priest]
src/usrintrf.c
src/cpu/mips/mips.c:
- Removed use of the GCC specific varargs on macros feature
src/sndhrdw/jaguar.c:
- Changed around one of the #include paths (due to
ProjectBuilder on Mac issues)
src/sound/tms5220.c:
src/sound/tms5220.h:
- Added support for the TMS0285 variant (an old variant of the
TMS5220)
src/vidhrdw/jagblit.c:
src/vidhrdw/jaguar.c:
- Added support for the SRCSHADE and DSTA2 command bits to the
Jaguar blitter.
- Added some miscellaneous logging code
- Changed around one of the #include paths (due to
ProjectBuilder on Mac issues)
src/vidhrdw/jagobj.c:
- Added support for objects with pitch != 1 for objects with 1-2
bits per pixels
src/harddisk.c:
src/harddisk.h:
- Added a function to retrieve the interface
src/ui_text.c:
src/ui_text.h:
- Added a MESS specific UI string (within #ifdef MESS of course)
src/usrintrf.c:
- Parameterized the setdipswitches() call; so that a menu that
looks like the DIP switch menu can easily be made with different IPT_*
values (MESS has a configuration menu that functions a lot like the DIP
switch menu)
src/artwork.c:
- Small fix to allow the UI to be drawn if the artwork system is
active but no artwork is present (not an issue for MAME)
src/mamedbg.c:
- Cleanup and fix of set_ea_info() so that negative offsets of 8
or 16 bits do not have extraneous FF's in front of them.
- More proper fix to the scanline display bug that prevented
registers from being edited when the scanline display was on.
src/cpu/hd6309/6309dasm.c:
- Better message for when invalid opcodes are disassembled
src/artwork.c
src/artwork.h
- Fixed crashing bug with clones
src/inptport.c:
- Adds some MESS specific IPT defaults (within #ifdef MESS)
- Modified input_port_allocate() so that PORT_BITX declarations
that specify JOYCODE_a_BUTTONb for their default codes will also get
JOYCODE_MOUSE_a_BUTTONb or'd in.
src/input.c:
src/input.h:
- Added seq_set_4() and seq_set_5()
src/windows/video.c:
- Changed render_frame() so that throttle_speed() will also be
called when game_is_paused is set. This prevents MAME from busy looping
when paused.
Fixed Remaining Protection problems in TMNT2 and Sunset Riders, Fixed Combat School
Trackball sets from Crashing, Fixed Escape Kids Spries, Fixed Sticky Sprites in
Detana! Twinbee, Fixed Sprite Lag in some games [Acho A. Tang]
src/drivers/combatsc.c
src/vidhrdw/konamiic.c
src/vidhrdw/konamiic.h
src/palette.c
src/palette.h
src/drivers/tmnt.c
src/vidhrdw/tmnt.c
==========================================================================
0.72u2
Improved Megaplay a bit, the bios screens now show however the games still don't
work [Barry Rodewald]
src/drivers/segac2.c
src/includes/segac2.h
src/vidhrdw/segac2.c
Various ST-V improvements, Hanagumi Columns shows a partial title screen (still
disabled so you'll have to enable it yourself if you want to see)
[Angelo Salese]
src/drivers/stv.c
Fixed a bug in the C 68000 core with the SBCD Opcode [Acho A/ Tang]
States of the sign(N) and overflow(V) flags after SBCD,
ABCD and NBCD operations are "undefined" according to Motorola.
The C core randomizes the V flag and sets the N flag like signed
operations.
Fixed Mustache Boy Continue Screen and attempted to improve speed [Tomasz Slanina]
src/drivers/mustache.c
konamiic.c:
- boundary conditions and kludge removal in K007420
rockrage.c:
- rogue sprites
kncljoe.c:
- bad scrolling, clipping, rogue sprites
Dipswitch Fixes:
1st dipswitch of 3rd bank in 1941 [Fabrizio Pedrazzini]
src/drivers/cps1.c
Changed nkdodgeb to use proms from another Japan bootleg set, maybe this fixes
some problems with the colours.
src/drivers/nkdodgeb.c
Preliminary Hyperstone Core, not yet working well enough to run anything [Pierpaolo
Prazzoli]
==========================================================================
0.72u1
Changed Fuuki 16-bit driver to use Partial Updates for Raster Effects and enabled
them [David Haywood, Paul Priest]
src/drivers/fuukifg2.c
src/vidhrdw/fuukifg2.c
Temporary Fixes to a few of the System 16 driver problems (sound banking for
example) Note, the driver is still being rewritten these are only minor 'fixes'
to improve things a bit until the rewrite is complete [Acho A. Tang]
src/drivers/sysetm16.c
src/vidhrdw/system16.c
src/vidhrdw/sys16spr.c
Change so DIP menu isn't displayed if no Dipswitches are defined in the driver
instead of flashing a blank mneu when you try and enter it [Paul Priest]
src/usrintrf.c
src/cpu/mips/mips.c:
- Removed use of the GCC specific varargs on macros feature
src/sndhrdw/jaguar.c:
- Changed around one of the #include paths (due to
ProjectBuilder on Mac issues)
src/sound/tms5220.c:
src/sound/tms5220.h:
- Added support for the TMS0285 variant (an old variant of the
TMS5220)
src/vidhrdw/jagblit.c:
src/vidhrdw/jaguar.c:
- Added support for the SRCSHADE and DSTA2 command bits to the
Jaguar blitter.
- Added some miscellaneous logging code
- Changed around one of the #include paths (due to
ProjectBuilder on Mac issues)
src/vidhrdw/jagobj.c:
- Added support for objects with pitch != 1 for objects with 1-2
bits per pixels
src/harddisk.c:
src/harddisk.h:
- Added a function to retrieve the interface
src/ui_text.c:
src/ui_text.h:
- Added a MESS specific UI string (within #ifdef MESS of course)
src/usrintrf.c:
- Parameterized the setdipswitches() call; so that a menu that
looks like the DIP switch menu can easily be made with different IPT_*
values (MESS has a configuration menu that functions a lot like the DIP
switch menu)
src/artwork.c:
- Small fix to allow the UI to be drawn if the artwork system is
active but no artwork is present (not an issue for MAME)
src/mamedbg.c:
- Cleanup and fix of set_ea_info() so that negative offsets of 8
or 16 bits do not have extraneous FF's in front of them.
- More proper fix to the scanline display bug that prevented
registers from being edited when the scanline display was on.
src/cpu/hd6309/6309dasm.c:
- Better message for when invalid opcodes are disassembled
src/artwork.c
src/artwork.h
- Fixed crashing bug with clones
src/inptport.c:
- Adds some MESS specific IPT defaults (within #ifdef MESS)
- Modified input_port_allocate() so that PORT_BITX declarations
that specify JOYCODE_a_BUTTONb for their default codes will also get
JOYCODE_MOUSE_a_BUTTONb or'd in.
src/input.c:
src/input.h:
- Added seq_set_4() and seq_set_5()
src/windows/video.c:
- Changed render_frame() so that throttle_speed() will also be
called when game_is_paused is set. This prevents MAME from busy looping
when paused.
Fixed Remaining Protection problems in TMNT2 and Sunset Riders, Fixed Combat School
Trackball sets from Crashing, Fixed Escape Kids Spries, Fixed Sticky Sprites in
Detana! Twinbee, Fixed Sprite Lag in some games [Acho A. Tang]
src/drivers/combatsc.c
src/vidhrdw/konamiic.c
src/vidhrdw/konamiic.h
src/palette.c
src/palette.h
src/drivers/tmnt.c
src/vidhrdw/tmnt.c
==========================================================================
0.72
Megatech / Megaplay / NSS are preliminary, since the menu system doesn't yet work
perfectly on Megatech I've marked all the games as non-working, Megaplay still
doesn't boot so those are marked as Non-working, and the NSS menu isn't emulated
at all yet so I also consider that to be Non-working, I've enabled these anyway
as it may encourage others to help with the development, Mame is NOT turning into
an emulator for Consoles, these are Arcade systems much like PlayChoice-10.
Outrunners is currently still broken due to problems with the V60 and recent timer
updates, sorry.
The games using the sp0250 sound for speech still need samples for the sound
effects, however samples for the speech are no longer needed with this update.
Work Around for Genix Protection + tilemap scroll making it playable [Paul Priest]
src/drivers/pirates.c
src/vidhrdw/pirates.c
==========================================================================
0.71u3p
This patch adds some minor callbacks to the artwork system in order to
enable some MESS specific functionality without polluting artwork.c with
a bunch of ugly #ifdef MESS's. [Nathan Woords]
src/drivers/artwork.c
src/drivers/artwork.h
src/mame.c
re-written and merged the drivers for Sprint 1/2 and Dominos [Stefan Jokisch]
src/drivers/sprint2.c
src/vidhrdw/sprint2.c
src/hash.c:
src/hash.h:
- Adds a new function, hash_verify_string(), that takes a string
and checks to see if it is a valid hash string
src/mame.c:
- Added a consistency check that uses hash_verify_string() to
make sure all of the hash strings are valid
src/cpu/i86/i86.c:
src/cpu/i86/i286.c:
- Adds state save support
src/includes/snes.h:
src/machine/snes.c:
- Update from Anthony Kruize (MESS SNES driver author)
Fixed register editing when Scanline display is enabled in debugger [Nathan Woods]
src/mamedbg.c
Fixed the BCD conversion when using the Decimal Flag in ADC and SBC opcodes
in the G65816 CPU core.This fixes at least the Act Raiser timer/score bugs. [Angelo
Salese]
src/cpu/g65816/g65816.c
src/cpu/g65816/g65816cm.h
src/cpu/g65816/g65816op.h
Added correct roms to Genix but it still doesn't work due to protection [David
Haywood]
src/drivers/pirates.c
Improvements to Megatech emulation, although its still far from being correct and
still
under development, will be split from segac2.c once finished [Barry Rodewald, David
Haywood]
src/drivers/segac2.c
src/vidhrdw/segac2.c
==========================================================================
0.71u2
src/windows/winmain.c
- Moved helpfile name into a constant
src/mame.c
- Minor tweaks in #ifdef MESS, and #ifndef MESS'ed a consistency
check inapprpriate for MESS
src/inptport.c
src/inptport.h
- Added very small hooks for MESS
src/input.c
- Changed seq_name() so that instead of saying "<KEY> or n/a",
it will say "<KEY>"
Cpu Interrupt Improvements fixing the Exidy 440 games (Chiller etc.), Ultimate
Tennnis, and the Seibu Sound System [Aaron Giles]
src/cpuint.c
src/sndhrdw/seibu.c
Fixed Reset in robokid when time runs out (robokid37b15red) [Tomasz Slanina]
src/drivers/omegaf.c
New TESTDRIVERS
---------------
Little Casino [Pierpaolo Prazzoli, David Haywood]
inputs, video etc. needs finishing
src/drivers/ltcasino.c
Super Draw Poker [Pierpaolo Prazzoli]
needs inputs finishing, need to work out if its a gambling game, if so it
will
be removed
src/drivers/supdrapo.c
==========================================================================
0.71u1
Fixed Mame not looking in Parent directory for Hard Drive Images [Stefan Jokisch]
src/mame.c
src/audit.c
vidhrdw\konamiic.c
- added preliminary K056832 tilemap<->linemap switching and tileline
code
drivers\gijoe.c
- updated video settings, memory map and irq handler
- added object blitter
vidhrdw\gijoe.c
- completed K054157 to K056832 migration
- added ground scroll emulation
- fixed sprite and BG priority
- improved shadows and layer alignment
Improvements to Run and Gun making it playable (single screen game only) [Acho A.
Tang]
drivers\rungun.c (this file)
- mem maps, device settings, component communications, I/O's, sound...etc.
vidhrdw\rungun.c
- general clean-up, clipping, alignment
vidhrdw\konamiic.c
- missing sprites and priority
==========================================================================
0.71
Improved Graphics in Strato Fighter and Super Pinball Action [Leon van Rooij]
src/drivers/raiga.c
src/vidhrdw/raiga.c
src/drivers/spbactn.c
src/vidhrdw/spbactn.c
src/drawgfx.c
New TESTDRIVERS
---------------
==========================================================================
0.70u5
Please, if you submit dipswitch changes to me make sure they've been tested with a
DEBUG compile, fixing
'fixed' dipswitches is time consuming, there are extra warnings when you attempt to
run Mame in a DEBUG
compile.
Improvements and Fixes to Strato Fighter / Raiga [David Haywood, TheGuru, Leon van
Rooij]
there are still some graphics problems (priority, incomplete alpha blending
effects, bad tiles)
src/drivers/gaiden.c
src/vidhrdw/gaiden.c
src/windows/window.c:
- Fixes a bug in visible area changing in windowed, non-stretch
mode. Previously, when the visible area changed, the code would simply
change the visible area, and look at the resulting window size and tweak
it accordingly with win_adjust_window(). The problem with this is that
if you have a sequence where the visible area is made larger, then
smaller again, what would happen is you wouldn't get the original window
size; you would simply get the enlarged window with a bunch of buffer
area. Now instead of calling win_adjust_window(), I added code that
preserves the "scale" factors, and the space between the emulation
rectangle and the window client area.
src/windows/winddraw.h:
src/windows/winddraw.c:
src/windows/wind3d.c:
- Added a call win_ddraw_fullscreen_margins() that given the
dwWidth and dwHeight parameters of a DirectDraw surface, comes up with a
RECT that represents the margins. For MAME, this is a very simple
operation (a rectangle from (0,0)-(dwWidth,dwHeight)) (and the
implementation that I've submitted is corrspondingly simple), but in
MESS the window can have a menu bar so this operation works differently.
I've also modified winddraw.c and wind3d.c to use this call.
src/timer.c:
src/timer.h:
- Changes timers so that they are now 'mame_timer *' instead of
'void *'. mame_timer is an opaque structure, similar to mame_file in
fileio.h. I didn't update any code using timers yet; it doesn't seem to
me that there isn't a rush and since they used 'void *' before,
everything compiles just fine. I hope noone objects to this one.
src/vidhrdw/jaguar.c:
- Fixes a potential crash in jaguar_tom_regs_w() (while this
crash doesn't occur under normal execution of the cojag games though, it
can occur if modified ROMs are being used).
src/sound/fmopl.c:
Added #if/#endif pair
Changed message for Double Clicking on EXE slightly [Leon van Rooij]
src/windows/winmain.c
New games supported
-------------------
Stadium Cross [Jason Lo]
there seem to be some sound problems
src/drivers/multi32.c
src/drivers/system32.c
src/vidhrdw/system32.c
R2D Tank [Pierpaolo Prazzoli]
src/drivers/r2dtank.c
New TESTDRIVERS
---------------
Counter Run (bootleg)
encrypted?
src/drivers/freekick.c
==========================================================================
0.70u4
Tilemap viewer now displays a more logical ordering for "tilemap#1", "tilemap#2",
etc. [Phil Stroffolino]
Broadened support for palette_offset, and made it work in tilemap viewer [Phil
Stroffolino]
src/tilemap.c
src/drivers/namcoic.c
src/includes/namcoic.h
src/drivers/namconb1.c
src/vidhrdw/namconb1.c
src/includes/namconb1.h
src/drivers/namcos2.c
src/vidhrdw/namcos2.c
src/machine/namcos2.c
src/includes/namcos2.h
src/drivers/namcos21.c
src/vidhrdw/namcos21.c
src/drivers/namcos22.c
src/vidhrdw/namcos22.c
src/includes/namcos22.h
src/vidhrdw/namcos3d.c
src/includes/namcos3d.h
Silent Dragon Dipswitch Fixes [Brian A. Troha]
src/drivers/taito_b.c
A Few Data East Rom Name Fixes / Board Info [Brian A. Troha]
src/drivers/deco32.c
src/vidhrdw/deco16ic.c
New TESTDRIVERS
---------------
Cyber Commando [Phil Stroffolino]
Air Combat 22 [Phil Stroffolino]
Cyber Cycles [Phil Stroffolino]
Time Crisis [Phil Stroffolino]
very preliminary
src/drivers/namcos22.c
+ the other namco files listed above
R2D Tank [Pierpaolo Prazzoli]
still being worked on
src/drivers/r2dtank.c
==========================================================================
0.70u3
Message Box prompting the user to read windows.txt if MAME.EXE is double clicked on
instead of being run
from the command line [Leon van Rooij]
note, this still needs testing on Win9x, it works as expected on 2000/XP, if
it creates new
problems it might not be included. Seems to work on 98
src/windows/winmain.c
Added Colour Map to Enigma 2, swapped sets around, used a more sensible cpu freq
[Tomasz Slanina]
src/drivers/enigma2.c
==========================================================================
0.70u2
Fixed a few minor problems in the Wolf Pack Driver [Stefan Jokisch]
src/drivers/wolfpack.c
src/vidhrdw/wolfpack.c
Fixed ports in some TESTDRIVERS so there are no complaints with the Sanity Checks
[smf]
src/drivers/coolpool.c
src/drivers/taitoair.c
src/cpu/yms32025/tms32025.h
I made some tests but the changes are quite big so please test them before
including. I'm sure the
Y8950 will be tested by NLMSX authors too.
src/sound/ymdelta.c
src/sound/ymdelta.h
src/sound/fmopl.c
src/sound/fmopl.h
src/sound/fm.c
src/sound/3812intf.c
src/sound/3812intf.h
src/windows/fileio.c:
- In osd_fopen(), if a file is opened with mode "r",
FILE_SHARE_READ will be passed to the dwShareMode parameter of
CreateFile(). This allows other programs to read any files that MAME
opens for read only.
src/cpu/i86/instr86.c
src/cpu/nec/nec.h
- i86 DAA fixes
==========================================================================
0.70u1
This fixes the data size parameter of the DUMP command in the debugger [smf]
This fixes the bug where SAVE only worked on 8bit cpus in the debugger [smf]
Made dbg_show_scanline the default [Bryan McPhail]
src/mamedbg.c
Changed a few MAME core files for MESS (shouldn't change Mame behavior) [Nathan
Woods]
src/usrintrf.h:
src/usrintrf.c:
- Adds four new calls to control showing the fps count and the
profiler:
void ui_show_fps_set(int show);
int ui_show_fps_get(void);
void ui_show_profiler_set(int show);
int ui_show_profiler_get(void);
src/common.h:
- Adds ROM_LOAD32_DWORD
src/machine/idectrl.c:
src/machine/idectrl.h:
src/harddisk.c:
src/harddisk.h:
src/hdcomp.c:
- Enhances the hard disk code to support sector sizes other than
512 bytes (a non-IDE harddisk in MESS for one of the TI systems uses
this). src/machine/idectrl.c has been modified to take this into
account; it requires that HD images be 512 bytes. The new code is fully
backwards compatible with old CHDs that do not have a sector size within
them.
Tiny changes to enable easy compiling under VC6/7 & older non-c99 compilers [Bryan
McPhail]
src/drivers/konamigx.c
src/drivers/mystwarr.c
src/hdcomp.c
src/windows/fileio.c
src/windows/wind3d.c
Konami Updates and Fixes (including fix for dbz / moo / simpsons crashes in 0.70)
[Acho A. Tang]
src/drivers/moo.c
src/vidhrdw/moo.c
src/drivers/xexex.c
src/vidhrdw/xexex.c
src/vidhrdw/konamiic.c
src/vidhrdw/konamiic.h
Fixed some problems with the new alt. bios code [Chris Kirmse, Paul Priest]
src/common.c
src/info.c
==========================================================================
0.70
This contains all the updates listed which were part of the source only diffs
listed below
(0.69a, 0.69b, 0.69u3) plus a few extra bits and pieces. A couple of drivers still
appear to
be broken with the new timer system (deadang, artmagic for example) but hopefully
most of the
problems were ironed out.
Improved bios selection code, now -bios japan can be used with the NeoGeo driver
for
example [Paul Priest]
New TESTDRIVERS
---------------
DJ Boy [Phil Stroffolino]
not working due to protection
src\drivers\djboy.c
src\vidhrdw\djboy.c
==========================================================================
source diff, changed numbering system to ux instead of a,b,c because people were
getting
confused and thinking mame069b.zip (mame 0.69 _b_inary) was the updated version
when it
wasn't.
misc fixes and improvements this time, no changes related to the timer system so as
far
as testing that goes this isn't an essential upgrade.
if you use this code in your own build of Mame please make sure you use the correct
version number to reflect the inclusion of this updated code.
Direct 3D update to change the way cleanstretch is handled [Leon van Rooij]
-cleanstretch works like this:
-cleanstretch auto: let blitter decide, the same as -nocs in 0.69 (default).
-cleanstretch full: same as -cs in 0.69
-cleanstretch none: disable (won't look good with scanlines)
-cleanstretch horizontal: horz only
-cleanstretch vertical: vert only
Added correct roms to Mighty Monkey (bootleg on Super Cobra Hardware) [Pierpaolo
Prazzoli]
src\drivers\scobra.c
Fixed some problems in the makefile for the xml2info program [Andrea Mazzoleni]
makefile
src\core.mak
Fixed problem where controls stopped working after the first level in Tugboat
[Tomasz Slanina]
src\drivers\tugboat.c
Changed MULU timing in asm 68k core so that it matches the C ones [Razoola]
src\cpu\m68000\make68k.c
Bug fix to loop addressing on YMF278B which helps stablise the tuning on looped
samples
(noticable in parts of s1945 at least). [OpenMSX]
src\sound\ymf278b.c
New TESTDRIVERS
---------------
Sparkman [Luca Elia]
not working, protection
src\drivers\suna8.c
==========================================================================
Another source diff update, this fixes some of the problems Mametesters discovered
with the new timer code, please test this well too, if anything else is broken
which
worked in .69 let us know, it could be important.
Fixed Dipswitches and Inputs in Atlantic City Action / Broadwalk Casion [Peter
Storey]
src\drivers\pacman.c
The use of the PIC HEX dumps for DRGNMST and BIGTWIN [Quench]
src\drivers\playmark.c
src\drivers\drgnmst.c
Fixed a bug in the V60 CPU core causing it to break with the new timer system
[Aaron Giles]
src\cpu\v60\v60.c
Fixed a problem in snprintf.c printing out floats with fractional partswith leading
zeroes [Chris Kirmse]
src\windows\snprintf.c
Fixed a problem which caused sound to break in games using a YM2610 using the new
timer
system [Aaron Giles]
src\cpuint.c
This version is provided as a source diff only, more releases like this may follow
depending on how this one goes down, the intention is to allow people to have the
latest code without the hassle and bandwidth requirements of a new binary.
If you can't compile this then don't worry, normal releases will still happen, this
doesn't change anything as normal release plans are concerned, please don't hassle
whoever maintains your favourite port of Mame to add the updates here, not
everybody
is going to have time to make new binaries on a regular basis.
IDE Update adding support for a few things needed in the future [Aaron Giles]
src\machine\idectrl.c
src\machine\idectrl.h
Fixed bug causing Timings to be broken when using D3D [Leon van Rooij]
src\windows\wind3d.c
Optional XML output and xml to info converter (see xmlinfo.txt) [Andrea Mazzoleni]
use -listxml, converter isn't fully set up yet.
src\info.c
src\info.h
src\windows\fronthlp.c
src\xml2info\*
A side effect of all this is a change in the behavior of the CPU scheduling.
For the most part, games are fine with this. However, there were a few
exceptions:
The first two problems have been fixed, as has racedriv, but steeltal,
hdrivair, and stunrun still have issues.
You call this if you need to temporarily crank up the interleave for a short
period of time in order to get CPU synchronization working. I used this in
arkanoid and taitosj to get the MCU communications working. For example, you
could say:
cpu_boost_interleave(TIME_IN_USEC(1), TIME_IN_USEC(100));
which would interleave the CPUs on 1 usec boundaries for the next 100 usecs.
Even more useful is this:
cpu_boost_interleave(0, TIME_IN_USEC(10));
A very small value (0) for the first parameter means "use perfect
synchronization", which should guarantee cycle-accurate synchronization for
the specified duration. Note that this is *really* slow, so you don't want
to be doing it too much!
src\cpuintrf.c
src\cpuintrf.h
src\cpuexec.c
src\cpuexec.h
src\timer.c
src\timer.h
src\drivers\taitosj.c
src\machine\taitosj.c
src\machine\arkanoid.c
src\drivers\harddriv.c
src\machine\harddriv.c
src\sndhrdw\harddriv.c
New TESTDRIVERS
---------------
Photo Y2K [ElSemi]
unemulated protection
Stadium Cross [David Haywood]
graphic problems, no controls
src\drivers\multi32.c
==========================================================================
0.69
Mainly a bugfix release for problems discovered with new features in 0.68,
it also further clears the backlog. Put together by David Haywood,
If you submit changes please make sure they're up to date with the latest
source code, if not it means more work for us in sorting them out.
Several people have asked about the SHA1Merger program for updating their
own drivers, if you need this it should be on www.mame.net within a few
hours of this release.
Note, we are aware of some problems with the Direct 3D core which cause
some games to function incorrectly (Rolling Thunder title screen, Hard
Drivin' Dashboard, Puyo Puyo title screen raster etc.) if you have problems
with games when using -d3d try them without before reporting a bug. (although
please do report games broken with -d3d if you find them but make sure to
specify the problem is with -d3d)
however we don't know how to fix this nor why it happens, could the real problem
be elsewhere?
General Source Changes
----------------------
Fixed a problem with missing 'returns' in the PIC CPU core [Bryan McPhail]
src\cpu\pic16c5x\pic16c5x.c
src/cheat.c:
- Minor change to the MESS specific code
src/datafile.c:
- DriverDataCompareFunc() is now declared with CLIB_DECL
src/hash.c:
- Removed strupr() in favor a manual implementation, because it
is non-ANSI
src/usrintrf.c:
- Minor tweaks within #ifdef MESS code
- UI code for discrete sound engine now encapsulated within '#if
HAS_DISCRETE'
src/ui_text.c:
src/ui_text.h:
- Changed some #ifdef MESS specific strings
src/windows/rc.c:
src/windows/rc.h:
- Fixed a potential crash that could occur if the last line in
an INI file was not terminated with a CRLF
- Added osd_rc_write(); which does the reverse as osd_rc_read()
(this is only used in the MESS Win32 port)
src/fileio.c:
src/fileio.h:
- New mame_fputs(), mame_vfprintf() and mame_fprintf() functions
(used in osd_rc_write()) above
src/windows/fileio.c:
- Removed some no longer relevant MESS globals
- Unicode enabled (i.e. - compiles under #define UNICODE)
src/windows/winalloc.c:
- Added corresponding _msize implementation (this fixes a benign
but very subtle bug when debugging with VC)
src/idectrl.c:
src/idectrl.h:
- Added ide_controller_init_custom() (used by MESS)
src/fileio.c:
src/hash.c:
src/windows/fronthlp.c:
- Removed private prototypes of crc32(), in favor of #include <zlib.h>
src/windows/fronthlp.c:
- Minor tweaks within #ifdef MESS
src/sha1.h:
- Put #ifndef _STDINT_H around typedefs for uint32_t and uint8_t
(apparently these are already defined on the Mac)
src/windows/winalloc.c:
src/windows/winmain.c:
- Put CLIB_DECL in front of a few declarations
src/info.c
- Substitutes in the -listinfo output the strings "nodump" and "baddump"
with "flags nodump" and "flags baddump".
src/sound/disc_mth.c
- Substitutes the _HUGE macro with the standard DBL_MAX value
src/cpu/tms9900/9900stat.h
src/cpu/tms9900/99xxstat.h
- Adds a test for the GNU C compiler to skip some POWERPC inline assembler
not compatible with the GNU assembler format.
src/x86drc.h
- Fixes some macros with arguments not used. Otherwise it doesn't compile
with gcc 2.95.3.
Auditing Fixes for cases where no good dump is known but a file is found [BUT]
src\audit.c
Improvements and Bug Fixes to the Direct 3D Blitting [Leon van Rooij]
It has it's own ini section and it handles priorities itself to ensure
correct behaviour. For custom presets, patterns are no longer loaded from
the effects directory, the name should just include the path.
There are warning messages when you do e.g. -nod3d -d3dscan50, or -d3d
-effect sharp (although the latter will work as it has up until 0.68). It
tests all hardware capabilities it should (as far as I'm aware, at least).
It won't chop textures in 256x256 blocks for old Voodoo cards.
-texture_management is now enabled by default as leaving it off seems to
have worse consequences for more people than having it on. I haven't added
a workaround for cards that can't render to textures yet, other than that,
any possible typos, etc. or any suggestions people may have, it should be
good for 0.69.
Apparently some videocards don't like the DX7 pageflip in combination with
a triple buffer. (behaviour when triple buffering is unchanged from 0.67,
that goes for the d3d code as well as the ddraw code).
src\windows\video.c
src\windows\video.h
src\windows\wind3d.c
src\windows\wind3d.h
src\windows\win3dfx.c
src\windows\win3dfx.h
src\windows\windraw.c
src\windows\windraw.h
src\windows\window.c
src\windows\window.h
src\windows\d3d_extra.h
src\windows\windows.mak
Added USA 2-Slot bios to NeoGeo Driver (recompile to use) also readded line removed
by mistake, fixed coinage bug when using USA Bios []
src\drivers\neogeo.c
src\machine\neogeo.c
Added Asia Bios to NeoGeo Driver []
src\drivers\neogeo.c
Fixed the Sound Loading in some Taito F3 Games [Paul Priest, Ryan Holtz]
src\drivers\taito_f3.c
Corrected sprite priority in brkthru and darwin and converted the driver to use
tilemaps [Satoshi Suzuki, David Haywood]
src\drivers\brkthru.c
src\vidhrdw\brkthru.c
Fixed a problem where a NODUMP rom was reported as found even if it didn't
exist in the rompaths [HobbesAtPlay]
src\fileio.c
Corrected Colours in Progres & added 3rd Button for Aiming [Uki]
src\drivers\timelimt.c
Fixed Interrupt being triggered on Non-Existant CPU for TaitoSJ games with no
MCU [Aaron Giles]
src\machine\taitosj.c
Adds the system option "bios". An integer that is valid where: 0 <= n < 15
Rom loading is now modified so that if any of the 4 bits in
ROM_BIOSFLAGSMASK of the rom flags are set, it will only be loaded if
the value+1 == options.bios
Note that using a value >6 and <15 will result in NO bios rom being
loaded (And a red screen in NeoGeo's case).
src\common.c
src\common.h
src\drivers\neogeo.c
src\mame.h
src\windows\config.c
Removed a graphic rom loading kludge in Yamato,which caused a bad gray square
when launching missiles(yamato37b9gre);also fixed crashes in clone
yamato2. [Angelo Salese]
src\drivers\yamato.c
Removed NeoGeo Memory Card Manager RESET / CALL option from UI, this feature is
only available on the AES console and should be in Mess (and probably won't be
needed at all with a real AES bios) []
src\ui_text.c
src\ui_text.h
src\usrintrf.c
Changed NeoGeo Framerate to 59fps based on Mametesters report about Kof98 Intro
Sync
It would be nice if somebody could give a real accurate measurement of this []
src\drivers\neogeo.c
Fixed FM bug causing bad sounds in maglord and other games which was introduced in
the last release [Jarek Burczynski]
src\machine\atarifb.c
src\drivers\avalnche.c
src\machine\avalnche.c
src\drivers\bsktball.c
src\drivers\circus.c
src\sound\discrete.c
src\sound\discrete.h
src\drivers\dominos.c
src\machine\dominos.c
src\includes\dominos.h
src\drivers\dragrace.c
src\drivers\nitedrvr.c
src\machine\nitedrvr.c
src\includes\nitedrvr.c
src\drivers\orbit.c
src\drivers\sprint2.c
New TESTDRIVERS
---------------
Polygonet Commanders [R.Belmont]
only text layer is emulated, hangs waiting for network, DSP used for 3D
graphics isn't emulated
src\drivers\plygonet.c
src\vidhrdw\plygonet.c
Mahjong Daireikai [David Haywood]
Mahjong Channel Zoom In [David Haywood]
Mahjong Kakumei [David Haywood]
Mahjong Kakumei 2 - Princess League [David Haywood]
these just load the roms and decode the gfx for now, they might be
similar to nmk16.c just incase somebody wants to finish them.
src\drivers\jalmah.c
Slipstream [David Haywood]
doesn't work due to unemulated v60 opcodes
src\drivers\system32.c
Atlus Print Club (v1, v2, v4, v5)
mainly for reference, it might not be possible to emulate them as they
need a camera + printer
src\drivers\segac2.c
Portraits [Steve Ellenoff & Peo]
preliminary driver, still being worked on
src\drivers\portrait.c
src\vidhrdw\portrait.c
Mustache Boy [Tomasz Slanina]
preliminary driver, gfx not fully decrypted, missing proms, no sound
src\drivers\mustache.c
src\vidhrdw\mustache.c
src\sndhrdw\seibu.c
==========================================================================
0.68
SHA1 hash support, including various new command line options [Farfetch'd]
src\too many to list ;-)
You need DirectX7 headers and libs to compile it, I'm using the set from
http:\\caesar.logiqx.com\html\tools\compilers\mingw.shtml which has the
original MS headers (the same set is used for Allegro and FB Alpha) and
I've made a minor update to the ddraw code so that it compiles with this
set of headers (VC++ should still be fine as well).
Various System 32 Updates (Priority, SVF Pitch etc.) [Acho A. Tang, Jason Lo, David
Haywood]
Note, theres a chance some things may be broken
src\drivers\multi32.c
src\drivers\system32.c
src\vidhrdw\system32.c
Sound in Macross Plus & Quiz Bisyoujo Senshi Sailor Moon [Bryan McPhail]
src\drivers\macrossp.c
src\sound\es5506.c
New TESTDRIVERS
---------------
Shougi [Jarek Burczynski, Tomasz Slanina]
Shougi 2 [Jarek Burczynski, Tomasz Slanina]
Not Working due to Protection MCU
src\drivers\shougi.c
Konami's Open Golf Championship [Acho A. Tang, R. Belmont]
Missing ROZ layer, always thinks the ball is in the water
src\drivers\konamigx.c
F1 Grand Prix Star 2 [Luca Elia]
Missing \ Bad ROMs
src\drivers\cischeat.c
src\vidhrdw\cischeat.c
Ultra Weapon X [Luca Elia]
problems with v60 interrupts
Joryuu Syougi Kyoushitsu [Luca Elia]
unemulated CPU
src\drivers\ssv.c
src\vidhrdw\ssv.c
Hot Rod [Olivier Galibert]
Bonanza Bros [Olivier Galibert]
Quiz Rouka Ni Tattenasai [Olivier Galibert]
various problems with the System 24 emulation
src\drivers\system24.c
src\vidhrdw\system24.c
src\machine\system24.c
src\includes\system24.h
src\vidhrdw\segaic24.c
src\vidhrdw\segaic24.h
Thunder Strike
src\drivers\ddragon.c
Hot Smash [Tomasz Slanina]
MCU Protection problems
src\drivers\pbillian.c
src\vidhrdw\pbillian.c
src\sndhrdw\pbillian.c
Raiden 2 [Bryan McPhail]
Protected and Encrypted Sprites
src\drivers\raiden2.c
Grand Tour [David Haywood]
Protection?
src\drivers\iqblock.c
Great Wall
Needs work on vidhrdw (none done)
src\drivers\grtwall.c
China Dragon
Needs work on vidhrdw (none done)
src\drivers\chindrag.c
Space Bugger [David Haywood]
bad rom?
src\drivers\sbugger.c
src\vidhrdw\sbugger.c
Main Event (SNK) [David Haywood]
vidhrdw not finished
src\drivers\mainsnk.c
==========================================================================
0.67
- New options -autoror/-autorol. They rotate the screen only if the game is
vertical; useful with "pivot" LCD monitors. [Paul Priest]
Source:
-------
==========================================================================
0.66
Codename "FR-34"
- New option -high_priority to increase the thread priority so MAME runs better
while other programs are running. It is off by default because enabling it
might make MAME use too much CPU time.
- Major update to the discrete sound system. This includes adjustable parameters
controls in the UI, fixes to existing games, and new sound support in canyon,
polaris, sprint and ultratnk. [Derrick Renaud & Keith Wilkins]
- Fixed some bugs in the I86/NEC CPU emulation. This includes raster effect
problems in Geostorm and the 99 credits bug in Lethal Thunder. [Bryan McPhail]
Source:
-------
- Now compiled with GCC 3.2.2. Removed the patch that was needed to work around
a GCC 3.2 bug.
==========================================================================
0.65
- Cleaned up some Nichibutsu mahjong games, added LCD support to House Mannequin
and
Bijokko Yume Monogatari. [Nicola Salmoria]
- Fixed sound in Fire Truck, Super Bug, Monte Carlo. [Derrick Renaud]
- Fixed some issues with uPD7759 (TMNT, 88 Games, P.O.W.) [Acho A. Tang]
- Added stereo support to the X1-010 emulator and made it a proper sound core.
[Nicola Salmoria]
==========================================================================
0.64
==========================================================================
0.63
An interim release with many things submitted in the past two months not
included yet.
MAMETesters bugs fixed (there are probably more)
-----------------------
- Subroc-3D, Turbo and Buck Rogers use the artwork to show the LED counters.
[Stefan Jokish]
Source:
-------
- Now compiled with MinGW 2.0/GCC 3.2. There might be bugs caused by the new
compiler, let us know.
- Drum support in YM2608 emulation (check e.g. Tail 2 Nose). [Jarek Burczynski]
- Moved most of the file I/O out of the OS depndant code and into the core.
Added two new types, mame_file and osd_file, which enforce better type
checking throughout the system (and prevents confusing the two).
Instead of calling osd_fopen, osd_fread, osd_fwrite, etc., you now call
mame_fopen, mame_fread, mame_fwrite, etc. The osd_* calls are reserved
to the core.
All the ZIP handling is done in the mame_file functions, so it will be
inherited by all ports.
[Aaron Giles]
- [Win32] The diff, snap, cfg, nvram, etc. directories are created
automatically if they don't exist the first time MAME tries to create a file
there. [Aaron Giles]
==========================================================================
0.62
- Sound in Bal Cube and Bang Bang Ball, and in the Psikyo games.
[Olivier Galibert]
- Fixed cracking and missing sounds in some neogeo games especially kof99 "how
to play" loop and shocktro end of attract missing sound. [ElSemi]
- TESTDRIVER's are now part of the database used by -romident and -isknown.
[Nicola Salmoria]
Source:
-------
- Screen rotation is now entirely handled at blit time by the OS layer. The
core no longer prerotates the bitmap. [Aaron Giles]
- Implementation of the SH7604 internal timers, giving sound to Sol Divide and
the Super Kaneko Nova System games. [R.Belmont]
==========================================================================
0.61
MAMETesters bugs fixed (there are probably more)
-----------------------
mk3060gre
ozmawars055gra
alpine057gra [stephh]
elevator057gra [stephh]
tinstar36b4gra [stephh]
kof94057gre [RYO]
tokib059red [David Graves]
dogyuun058yel [Quench]
battleg37B10gre [Quench]
batrider058gre [Quench]
cchasm1059red [Paul Priest]
dspirit37b6gre [Acho A. Tang]
rompers36rc2gre [Acho A. Tang]
rompers37b4gre [Acho A. Tang]
splatter336b6gre [Acho A. Tang]
splatter336b9yel [Acho A. Tang]
splatter137b5gre [Acho A. Tang]
splatter237b5gre [Acho A. Tang]
splatter057gre [Acho A. Tang]
dangseed060yel (needs checking)
bjourney37b16gre [Acho A. Tang]
ncombat36b3yel [Acho A. Tang]
ncommand37b2gre [Acho A. Tang]
overtop37b13red
sdodgeb37b13yel (needs checking)
iganinju37b14yel [Kale]
iganinju37b1yel [Kale]
iganinju055yel [Kale]
scudhamm058gre [Mike Herrin]
adstick37b16gre [Robin Merrill]
pedal055yel [Robin Merrill]
toobin058yel [Robin Merrill]
- Fixed controls & gfx in Outrun and Space Harrier. [Bryan McPhail]
- Fixed collision detection in Labyrinth Runner and Fast Lane. [Acho A. Tang]
Source:
-------
- Important for porters: major redesign of the OS interface for display update.
- VIDEO_SUPPORTS_DIRTY flag removed
- osd_mark_dirty() removed
- osd_create_display() now takes an extra parameter rgb_components
- osd_set_visible_area() removed
- osd_allocate_colors() removed
- osd_modify_pen() removed
- osd_update_video_and_audio() now takes a mame_display pointer
- osd_debugger_focus() removed
- osd_set/get_gamma() removed
- osd_set/get_brightness() removed
[Aaron Giles]
- Completely redesigned the artwork handling. Any game can now use artwork,
with no specific support in the driver. Configuration is done with external
.art files. [Aaron Giles]
-[no]artcrop -- crops artwork to the game screen area only
-[no]backdrop -- enables/disables backdrop art
-[no]overlay -- enables/disables overlay art
-[no]bezel -- enables/disables bezel art
- The Windows version now rotates the screen at blit time instead of requiring
the core to do so. Since the new code is usually faster than the old one, and
it allows for great simplifications in the core, rotation at blit time will
probably be a requirement in next release. Porters are advised to begin
implementing it now. [Aaron Giles]
==========================================================================
0.60
- Fixed colors in Wec Le Mans and wrong graphics in Hot Chase. [Acho A. Tang]
Source:
-------
==========================================================================
0.59
- Fixed Super Stingray and Kyros, and most problems in Gold Medalist.
[Acho A. Tang]
- [Windows] Some changes to use less CPU time when it's not needed.
Use -nosleep to disable this behaviour during gameplay. [Aaron Giles]
==========================================================================
0.58
- Fixed the VLM5030 emulation (Punch Out, Track & Field, Yie-Ar Kung Fu etc.).
[Tatsuyuki Satoj]
- [windows] New blitting effect "-effect sharp". This gives a sharper image
than the default. [John IV]
Source:
-------
- New macros have been added to declare common callback functions and enforce
naming conventions. All drivers have been converted to the new macros:
- Major change to the way machine drivers are set up. A series of macros is
now available (defined in driver.h) to "build up" a machine driver. The
ordering of items in the machine driver is arbitrary, apart from CPU-specific
data, which is tied to the most-recently referenced CPU. With this new format,
machine drivers can now be built by modifying another machine driver,
providing a primitive inheritance mechanism. See any driver for an example
of the new format. See mcr.c for a more complex example of inheritance.
- The old interrupt system has now been made officially obsolete. This means
that the function cpu_cause_interrupt() is no longer available; you must use
cpu_set_irq_line() or cpu_set_irq_line_and_vector() instead. It also means
that a number of old/conflicting constants have been removed. In addition,
interrupt generation callbacks for CPUs no longer return an IRQ line or
vector. Instead, the interrupt callback must actively cause the interrupt
via cpu_set_irq_line(). All existing drivers have been updated to these
changes.
- Two new functions have been added to the timer system. timer_create() creates
a new "permanent" timer, and timer_adjust() adjusts the scheduling of that
timer. This is now the only way to dynamically manipulate a timer. The old
functions timer_set() and timer_pulse() are still around, but they no longer
return a handle to the timer they create. Timers created with timer_create()
should be created at initialization time, not dynamically. Timers also now
participate in the automatic resource tracking, so there is no need to
explicitly dispose of them. All existing drivers have been updated with the
necessary changes.
- Basic generic NVRAM handlers have been added. For a number of games, it is
sufficient to point the global variables 'generic_nvram' and
'generic_nvram_size' to the location and size of the NVRAM area. In the
machine driver, you can now specify 'generic_0fill' or 'generic_1fill' to
request a generic NVRAM handler. The 0fill and 1fill refer to how the memory
is initialized in the absence of an .nv file.
- The following old functions and macros have now been fully deprecated:
==========================================================================
0.57
- Fixed colors in Battle City and Vs. Tetris, plus other fixes to the vsnes
driver. [Kale]
- Added reverb to the 054539, improving sound in Xexex and Twinbee Yahhoo.
[Olivier Galibert]
- MSM5232 support in Fairy Land Story and Buggy Challenge. [Jarek Burczynski]
Source:
-------
==========================================================================
0.56
Source:
-------
quizkof37b4gre
speedfrk055yel
vectorsshot055gre
chasehq055gre
blazstar37b16gre
mazinger053gre
block37b14yel
spacfury36finalgre
==========================================================================
0.55
- Added support for using AY8910 and YM2203 at the same time, fixing sound in
City Connection. [Tatsuyuki Satoh]
Source:
-------
- New data type pen_t, use it instead of UINT32 when dealing with pens and
colortables.
==========================================================================
0.54
- Decrypted the sound CPU in Dream Soccer 94. [Bryan McPhail, Nicola Salmoria]
Source:
-------
- Fixes to the YM2610 and YM2151 emulation, verified on the real chip.
[Jarek Burczynski]
- Major changes to the CPU interface. As a result of this, some games are
temporarily broken, most notably CPS2. [Aaron Giles]
==========================================================================
0.53
We have abandoned the "beta" numbering scheme, which was becoming pointless.
The current version is 0.53 because 0.36 (the last "non-beta" release) + .16
(the number of "beta" releases since then) = 0.52.
- Real shadows in some Konami games (88 Games, Chequered Flag, X-Men, Asterix,
Surprise Attack, Sunset Riders, etc.). [Nicola Salmoria]
- Real shadows in some SNK games (Ikari Warriors, Victory Road, etc.).
[David Haywood]
- Real shadows in Cisco Heat and F1 Grand Prix Star. [Luca Elia]
- Decrypted the sound CPU in Gunforce, Blade Master, Lethal Thunder, Undercover
Cops, Mystic Riders, Major Title 2, Hook, R-Type Leo, In the Hunt, and
Perfect Soldiers. [Bryan McPhail, Nicola Salmoria]
- Fixed a EX550x bug that caused Taito F3 and Incredible Tech games to sound
bad. [Aaron Giles]
- Added support for the target data extracted from the laserdisc to MACH 3.
[Fabrice Frances]
- The Windows port is now called "MAME" (instead of "MAMEW"). The DOS port is
called "DMAME".
Source:
-------
- Big changes to the palette system. 8-bit modes are no longer supported, only
16-bit ones are used. 8-bit support may be removed from the OS dependant
code; the core will never ask for an 8-bit deep screen. 8-bit bitmaps could
still be used though.
- New function auto_malloc(); this is the same as malloc(), but the memory is
automatically freed when the driver exits. [Aaron Giles]
==========================================================================
0.37 BETA 16
- Fixed incomplete first credit sound in MetalB and other F2 games, and
bonzeadv player shoot sound. [Stefan Jokisch]
- Decrypted the Seibu sound CPU, giving sound in raidena, dynduke, toki, cabal.
[Nicola Salmoria]
Source:
-------
- Added new flags for the tilemap subsystem: TILE_SWAXY and TILE_4BPP. Also
added tile_info.skip. SET_TILE_INFO() now has a third parameter (flags),
tilemap_set_transmask() sets independently the transparency masks for the
front and back layer, and tilemap_draw() can be called with a NULL tilemap
(in that case, only the priority bitmap is updated). [Phil Stroffolino]
==========================================================================
0.37 BETA 15
- Improved special effects and fixed pixel layer colors in the Taito F3 games.
[Bryan McPhail]
- Fixed the NEC cpu bug that caused slowdowns in Raiden. [Bryan McPhail]
- Fixed 68020 emulation bugs that prevented many Taito F3 games from working.
[Bryan McPhail]
Source:
-------
- The main binary distribution of MAME is now a completely new win32 console
port. Some of the benefits are: support for full screen hardware stretching
(if you have a decent video card), and a much better command line / options
file parsing (ported from xmame).
To create the mame.ini configuration file on startup, use the -createconfig
option. -showusage lists all available options. [Aaron Giles, Bernd Wiebelt]
==========================================================================
0.37 BETA 14
- [DOS] The keyboard special handling introduced in the previous beta, which
makes it easier to register two- or three-button presses, is now optional.
By default it's off; to turn it on, use -steadykey. [Mike Coates]
Source:
-------
==========================================================================
0.37 BETA 13
- NeoGeo raster effects fixes: Pulstar (level 2 boss), AoF (title screen),
Double Dragon (levels with water), AoDK (100 mega shock logo - is it correct?),
Eight Man (title screen), Super Dodgeball (flames in attract mode), Top Hunter
(waves when entering bonus stages). [Nicola Salmoria]
- [DOS] Added a workaround for the slow PC keyboard interface. This makes it
easier to accomplish special moves that require two or three keys pressed at
the same time, but delays response by at least one frame.
The change doesn't affect josyticks and keypads connected through the game
or USB ports. [Nicola Salmoria]
Source:
-------
- 16-bit and 32-bit read memory handlers now have the additional mem_mask
argument, like write handlers.
==========================================================================
0.37 BETA 12
- Fixed raster effects in mosyougi (title screen) and viewpoint (Sammy logo).
[Nicola Salmoria]
Source:
-------
- All new set of functions for alpha blending support, used in Xexex.
Porters: you have to support direct mapped 15 and 32 bits video modes. Remember
to update osd_alloc_bitmap() too! See osdepend.h for the changes in
osd_create_display() and osd_allocate_colors(). [Olivier Galibert]
- [DOS] Now compiled with Allegro WIP 3.9.34, this fixes problems with the
Sidewinder gamepad. GNU Binutils 2.9.5.1 might also be needed to compile.
- New filtering code for the audio mixer. It is applied to audio streams
generated at a sampling rate different from the sound card's one, improving
quality. Some examples with a very audible difference are: fantasy, polyplay,
galaxian (the background effect when playing), nibbler, vanguard and all the
Seta games.
[DOS] The "resamplefilter" option can be used to turn the filtering off.
[Andrea Mazzoleni]
==========================================================================
0.37 BETA 11
These drivers have improved GRAPHICS:
-------------------------------------
- Better fixes to Rainbow cchip, the secret rooms now work and display the
correct secret codes. [Stefan Jokisch]
Source:
-------
==========================================================================
0.37 BETA 10
- Fixed a YMZ280B bug that caused bad sound in the Cave games. [Bernd Wiebelt]
Source:
-------
==========================================================================
0.37 BETA 9
A handful of drivers haven't been converted to the new memory API yet, and
therefore
don't work. On startup, they will give the error
cpu # uses wrong data width memory handlers!
and refuse to start.
Source:
-------
New macros exist now for generating and declaring a set of memory handlers.
This makes it very easy to add a new address space. The "voodoo constants"
ABITS1_xx, ABITS2_xx and ABITSMIN_xx are no longer necessary.
A new function cpu_get_pc_byte returns the byte offset of the current CPU's
PC, adjusted for Harvard architecture CPUs and CPUs which track the PC at the
bit or word level.
Several functions and macros have been renamed. All drivers have been updated
accordingly:
[Aaron Giles]
The ROM_REGION macro now takes a third parameter, which holds the various
flags for the region. These flags have been expanded to describe the data
width and endianness of the region (except for CPU regions, which obtain
their width and endianness from the associated CPU). This information is
used after the region has been loaded in order to appropriately byte-
swap the data for the native endianness of the target platform.
If you are loading data for a CPU into a non-CPU region (for example, you
are loading 68000 code into REGION_USER1), you need to make sure to tag
the region the same as the CPU. For a user region containing 68000 code,
you should use the ROM_REGION16_BE() macro to declare the region. This
isn't necessary for REGION_CPUxx because the ROM loader automatically
determines the information it needs from the CPU interface.
If you have old drivers to convert, these conversions cover 99% of all
cases (the (0) or (1) indicates that the offset field should be an even
(0) or an odd (1) address):
These new macros are built upon a more flexible collection of ROM-
loading operations. ROM data is now loaded in "groups" of 1-16 bytes,
with 0-15 bytes of empty space left between each group. The data in
each group can be loaded in standard order, or in reversed order. And
each byte of data loaded can be masked and shifted to blend with other
data that has been previously loaded.
Finally, there are two new entries that can be used to help fill in
unused or duplicated ROM data:
- The 68EC020 core now uses 32-bit memory handlers. The Psikyo driver has been
updated to use the new interface. Unfortunately, this support has yet to make
it into the x86 asm 68000 core, so it is once again disabled for this build.
[Aaron Giles]
- The CCPU and TMS32C010 cores are now full 16-bit cores. Appropriate changes
to the drivers that use them have already been made. This fixes the input
ports on the Cinematronics games, and gameplay in several Toaplan games.
[Aaron Giles]
==========================================================================
0.37 BETA 8
Source:
-------
A handful of drivers haven't beenconverted to the new API yet, and therefore
don't work. On startup, they will give the error
cpu # uses wrong data width memory handlers!
and refuse to start.
- Rewritten the Nec CPU core, with correct timing and support for encryption.
[Bryan McPhail]
- The profiler also watches memory read and write handlers. They were
previously cumulated with the CPU emulation.
Also, the profiler is now disabled in non-debug builds because the
performance hit is quite noticeable. [Nicola Salmoria]
- The x86 asm 68000 core now has limited 68020 support and runs the Psikyo
games, so is reenabled by default. [Darren Olafson]
==========================================================================
0.37 BETA 7
Some time ago I (Nicola) mistakenly removed Lotto Fun because I thought it was
a gambling machine. After some more careful evaluation, it is evident that
this is a game of skill, therefore it is now supported again. This was my
mistake and I apologize for that.
- Fixed the Pokey emulation so that the Tempest reset bug is fixed, this time
for real and forever. [Juergen Buchmueller]
Source:
-------
- Important for porters: changes to the dirty marking system. The blitting
code was previously required to support two types of dirty marking: a
"correct" one, used for vector games, where only the screen portions marked
dirty during the current frame should be copied to the video card; and a
"wrong" one, relying on a hack, where the blitter was also required to
remember the dirty regions from *previous* frame, and copy those as well.
Only the "correct" one is left, which should somewhat simplify dirty
handling in the OS dependant code. Moreover, the code must not check for
VIDEO_TYPE_VECTOR to know whether to use dirty marking: it must check only
VIDEO_SUPPORTS_DIRTY, which is set for vector games.
- Important for porters: the HAS_XXX constants for cpu and sound emulation are
no longer #defined in cpuintrf.h if they were not already defined. They are
set by the makefile (rules.mak). If you are not using that in your port,
you'll have to make sure that all constants are initialized somewhere.
- [DOS] The makefile now uses GNUs mkdir instead of the built-in one. If you
don't have mkdir you can find it here:
http://www.simtel.net/pub/simtelnet/gnu/gnuish/gnufut21.zip
- Backdrops are handled by the core like overlays, specific support in the
drivers is no longer necessary. [Mathis Rosenhauer]
==========================================================================
0.37 BETA 6
- I hope you didn't throw away unused PROMs from your archives.
- [DOS] Instead of the internal game name, you can use on the command line
the .zip file name, it can also include path, so for example
MAME G:\MyBoards\pacman.zip
will be equivalent to
MAME pacman -rompath G:\MyBoards
[David Widel]
Source:
-------
- [DOS] The makefile now uses rm instead of deltree. If you don't have rm you
can find it here: http://www.simtel.net/pub/simtelnet/gnu/gnuish/gnufut21.zip
- Several changes to have the debugger run in the game screen under DOS.
The debugger display is now entirely rendered in the core using a standard
bitmap, instead of relying on the OS dependant code to simulate a character
mapped display.
Changes affecting porters are:
osd_set_display() removed
osd_set_screen_size() removed
osd_screen_update() removed
osd_wait_keypress() removed
osd_debugger_focus() added
osd_dbg.h removed
osd_update_video_and_audio() has extra debug_bitmap argument
osd_allocate_colors() has parameters for the debugger palette
mamedbg.c no longer requires clock_t and clock()
It's entirely up to the OS dependant code what to do with the game and debug
bitmaps. They can be shown one at a time (giving the user a means to switch
between them), or in two separate windows. osd_debugger_focus() is used to
request that one of the two bitmaps be made visible to the user.
Under DOS, you can switch at any time between the game and debugger display
by pressing F5.
[Juergen Buchmueller]
==========================================================================
0.37 BETA 5
Source:
-------
==========================================================================
0.37 BETA 4
PORTERS: THERE ARE A FEW API CHANGES, READ CAREFULLY THE SOURCE SECTION.
These drivers have improved GRAPHICS:
-------------------------------------
Source:
-------
- [DOS] The SEAL patch was bugged on mono sound cards, a new one is included.
- A few changes were made to allow run time changes to the visible area, and
to simplify the OS dependant code by moving some functionality to the core.
- Added visible_area to struct RunningMachine. Drivers must now use
Machine->visible_area instead of Machine->drv->visible_area. The field in
struct MachineDriver has been renamed default_visible_area and it should
normally be used by the core only.
- New function set_visible_area() that can be used by drivers to change the
active display area at run time.
- New function osd_set_visible_area() used to tell the OS dependant code the
portion of the bitmap that has to be drawn on screen. It is passed
coordinates relative to the actual bitmap, so no further processing is
required for rotated games. The OS dependant code is allowed to display a
smaller portion of the bitmap if necessary, but it must not draw a larger
portion (which might contain garbage).
The function must call set_ui_visarea() to tell the core the portion of
the bitmap which is actually visible (which might be smaller than
requested), so the user interface can be drawn accordingly.
- osd_update_video_and_audio() takes a bitmap parameter so must not be
hardwired to draw Machine->scrbitmap.
- New fields vector_width and vector_height in struct GameOptions. The OS
dependant code must initialize them to force different resolutions for
vector games. If left at 0, the default 640x480 is used.
- osd_create_display() must no longer create the screen bitmap, this is done
by the core. It must only create the display screen / window, and return 0
on success.
Note that the width and height parameters passed are now the dimensions of
the visible area, not of the bitmap as they were before; therefore the
function only has to create a screen / window of the requested size, without
further processing, and without peeking into the drv->visible_area field.
This applies to osd_set_display() as well.
- Changed osd_new_bitmap() and renamed it osd_alloc_bitmap() to avoid
confusion with old drivers. The function is the same as before but it must
not swap width and height for vertical games - this is done by the core.
osd_new_bitmap() and osd_free_bitmap() must not be called by drivers, they
are reserved to the core. Drivers must call the equivalent bitmap_alloc()
and bitmap_free() which take care of rotation for vertical games.
[Nicola Salmoria]
==========================================================================
0.37 BETA 3
- Alternate control system in Assault, only available when cheats are enabled.
[Maurizio Zanello]
Source:
-------
- Lots of changes to some CPU cores (mostly i86). I186 support. [Peter Trauner,
Juergen Buchmueller, Aaron Giles]
- New makefile, easier to port, split into multiple files. [Juergen Buchmueller]
- Moved logerror() from mame.c to the OS dependant code, and removed errorlog
from the GameOptions structure.
- Major redesign of the artwork support. All the drivers need to do is call
overlay_create() or overlay_load() and the rest is handled by the core.
Opacity/translucency support in 16-bit mode. Check out Space Invaders for
example, the colored strips that make up the overlay is faintly visible
under the black areas. [Mathis Rosenhauer, Zsolt Vasvari]
==========================================================================
0.37 BETA 2
- Accurate sprite drawing in MCR 1 & 2 games (see Satan's Hollow) [Aaron Giles]
- Fixed sprite / tile priority in Mad Gear and Garyo Retsuden. [Bryan McPhail]
- Fixed adpcm decoding in the K053260, this improves several Konami games.
[Ernesto Corvi]
- Massive rewrite of the cheat system user interface. This is still a work
in progress. [Brad Oliver]
- First pass for multi language support with external translation files.
[Brad Oliver]
- Fixed Hu6280 emulation bugs which caused missing levels in Trio the Punch.
[Bryan McPhail]
Source:
-------
new functions:
osd_readkey_unicode
osd_fgetc
osd_ungetc
osd_fgets
osd_feof
osd_ftell
- I added a new parameter to the end of the EEPROM interface to enable multiple
reads to occur after a single read command. Added an EEPROM_set_data()
routine that can be used to explicitly initialize the contents of the EEPROM
if the NVRAM file isn't found. [Aaron Giles]
==========================================================================
0.37 BETA 1
- Fixed sprite colors in the MCR2 games, however overlapping sprites are still
wrong. [Aaron Giles]
- Fixed colors and stars in the Astrocade games (Gorf, Wizard of Wor, etc.).
[Nicola Salmoria]
- Emulated saucer sound in Space Invaders - sample no longer used (the other
samples are still required). [Zsolt Vasvari]
Source:
-------
- 6803/63701 external port writes no longer set to 1 the bits that are set as
inputs in the DDR register. Instead, they are set to the value returned by a
read from the port. [Tatsuyuki Satoh]
==========================================================================
- Correct colors in Space Invaders Part II, Lunar Rescue and Balloon Bomber,
colors should also be close in Space Chaser (minus the "green lane" effect)
and Rolling Crash/Moon Base. [Zsolt Vasvari]
- [DOS] Modified the SEAL audio library so it outputs real 16-bit samples
instead of truncating the least significant 8 bits. [Jarek Burczynski]
- [DOS] There are now two options for Hot Rod key mapping, -hotrod and
-hotrodse. The latter remaps NeoGeo games to use the lower row of buttons.
Source:
-------
- There's a new game flag GAME_NO_COCKTAIL to mark drivers that don't support
screen flip, please use it because gamelist.txt is now generated
automatically and this is the only way to know whether a driver supports
it or not.
==========================================================================
A few drivers which didn't strictly fit MAME's purpose have been removed.
First of all there were a few drivers which, just like consoles or computers,
don't fall into the category of "arcade video games" that MAME attempts to
emulate. They should have never been added in the first place, and that mistake
is now being rectified.
One of the removed drivers is Street Fighter Zero for the CPS Changer, which
is not an arcade game even if it runs on arcade hardware. The source is left
in, commented out, because it could be useful as a reference for people
attempting to emulate CPS-2 (which, before you ask, won't happen anytime soon).
The so-called "home" versions of NeoGeo games have not ben removed because
there isn't anything in them suggesting that they are home-only games: they
accept coins just like all the others, and might just be different revisions
of the code.
Other removed drivers are four gambling machines. Note that a "gambling
machine" is different from a "video game with a gambling theme". The
discrimination is strictly a technical one, not a moral one (a gambling
machine gives back money/tokens/tickets, a video game does not).
The "Sente diagnostic cartridge" has not been removed because, even if it is
not a game, it is equivalent to the diagnostic tools that are built-in in many
other games - it's just that instead of pressing a service switch you had to
insert this special cartridge to test the board.
The last driver removed is Pong, which at this point was too much of a
simulation and too little of an emulation. It didn't really fit into MAME's
architecture which is CPU-based and targeted at accurately reproducing the
gameplay of the original.
That was a difficult decision to make, but thankfully I won't have to bother
about these things anymore in the future. Gotta go now! *waves*
- Samples are no longer needed in Stratovox, Battle Zone, Red Baron, Asteroids.
[Juergen Buchmueller]
- The coin/start buttons are slightly changed. NOw they are layed out this way:
1,2,3,4 -> start 1,2,3,4
5,6,7,8 -> coin 1,2,3,4
9,0,-,= -> service coin 1,2,3,4
- Struct GfxLayout can now be parametric on the size of the memory region
it refers to. This way the same gfx definition can be used for games with
the same layout but different number of tiles. See drivers/m72.c,
drivers/dec0.c for usage examples. [Nicola Salmoria]
- Only one of the two YM2151 emulators is linked, this is determined at compile
time. The default is Jarek's, which is more accurate though a little slower.
It can be replaced with Tatsuyuki's changing the makefile.
==========================================================================
0.36 BETA 16
- Added vector intensity control to the On Screen Display (for vector games).
[Mathis Rosenhauer]
- Unified keyboard and joystick interface, now they are all assigned in the
"Input" menu and you can mix them at will. [Andrea Mazzoleni]
Source:
-------
- mixer.c now does all sound mixing, generating one single sample stream,
played using the new osd_XXX_audio_stream() functions.
All other OS dependant sample functions (osd_play_sample() etc.) have been
removed. This should standardize the sound output across ports, and allow
porters to write much cleaner sound code. [Aaron Giles]
==========================================================================
0.36 BETA 15
- Enabled raster effets in Metal Slug 2 (needed for the dunes at the beginning)
[Sebastian Ojeda]
- Fixed System 16 games in 16-bit video modes. With -depth 16, shadows are also
color accurate, otherwise the old gray scale shadows are used. [Andrew Prime]
Source:
-------
- Added gain support to mixer.c, through the new MIXERG() macro (extension of
MIXER()). Removed the gain filed from AY8910, YM2204, YM2610 structures.
==========================================================================
0.36 BETA 14
Note: non volatile ram is now saved to a new directory, NVRAM (instead of
the old HI). You must create that directory manually, otherwise the files
will not be saved.
- Improved Capcom Avengers, the wrong colors are caused by the protection.
[Phil Stroffolino]
- Added OSD_FILETYPE_NVRAM.
==========================================================================
0.36 BETA 13
- Fixed many SNK 8-bit games (Guerilla War, Psycho Soldier, Ikari Warriors,
etc.) [wwtk@mail.com]
- Alongside the AND key sequences introduced in the previous beta, it is now
possible to have OR and NOT sequences.
For recording OR key/joy sequences in the key/joy setup menu simply press
UI_SELECT (usually ENTER) after the first recorded sequence. Don't press
any UI_UP/UI_DOWN/UI_CANCEL keys beetwen the two sequences.
To insert a NOT key/joy simply press it two times.
The first obvious use for this is to wire button 1 to both the joystick and
mouse button. [Andrea Mazzoleni]
Source:
-------
- New NES sound emulation for Punch Out and Donkey Kong 3. [Matthew Conte,
wwtk@mail.com]
==========================================================================
0.36 BETA 12
To all people that submitted high score save updates: high score save is on
hold. No additions will be made for the time being. In the near future, high
score support will be removed from the executable to an external file, much
like the cheat.dat one. We are looking for a volunteer to maintain that file.
- The hangs in Tempest caused by the Pokey protection should now be fixed once
and for all. [Juergen Buchmueller]
- [DOS] Artwork files can be stored in a .zip file. That way you can have eg.
both spacewr1.png and spacewr2.png in one file spacewar.zip.
[Juergen Buchmueller]
- Fixed OPN and OPM output level. Unfortunately this means that all games using
YM2203, YM2151 etc. need to be rebalanced. [Tatsuyuki Satoh]
==========================================================================
0.36 BETA 11
- Fixed gfx in Muscle Bomber Duo and continue screen in Captain Commando.
[Paul Leaman]
- [DOS] New command -verifysets, this verifies all available games and reports
their status (good/best available/bad). Also changed the format of the
-verifyroms output. Some frontends might need small adjustments to parse
the new output. [Bernd Wiebelt]
Source:
-------
- Some changes to the TMS9900 emulation that completely screw up Cosmic Guerilla.
[Raphael Nabet]
==========================================================================
0.36 BETA 10
Important: due to changes in the palette system, there might be games that
had correct colors before, and wrong now. Please let us know if you find
any.
- Support for gzipped (NOT zipped) cheat files. Uncompressed files still work.
[Mathis Rosenhauer]
Source:
-------
==========================================================================
==========================================================================
0.36 BETA 9
Important: due to changes in the palette system, there might be games that
had correct colors before, and wrong now. Please let us know if you find
any.
- Fixed raster effects in Turf Masters (Japan course) and Zed Blade. Improved
Super Sidekicks 2. [Massimo Morra]
- 16 bit support in the tilemap manager, so the Namco System 2 games no longer
require -depth 8. [Phil Stroffolino]
- [DOS] Changed the -depth option behaviour, now it can be either 8, 16, or
auto. The default is auto, which uses the color depth appropriate for the
game. 8 forces use of a 256 colors display (faster but less accurate), 16
forces use of a 16-bit display (not suggested, doesn't work with all games).
MAKE SURE TO SET depth = auto IN MAME.CFG, OR YOU'LL USE 16-BIT IN ALL GAMES.
- Fixed a few bugs in the NEC CPU core that caused problems in Hook, Gunforce,
Lethal Thunder and maybe others. [Bryan McPhail, Nao]
Source:
-------
==========================================================================
0.36 BETA 8
- Sped up a little the NeoGeo raster effects. Enabled them in Karnov Revenge
and Galaxy Fight. Fixed the field in ssideki3 etc. [Massimo Morra]
- Fixed sprite Y offset in the Simpsons dreamland level. Apologies for taking
so long, I couldn't find the time to play it that far and hadn't realized I
just had to use the attract mode of the Japanese version. [Nicola Salmoria]
- [DOS] The mouse buttons are no longer aliases for joystick buttons, they are
independently recognized. They are still considered "joystick" inputs though,
so if you want to use them you have to redefine the controls in the Joystick
menu. This is a minor annoyance that was needed to allow interfacing a Discs
of Tron controller to the mouse port (spinner + up and down switches) while
still using joystick buttons 1 and 2 for fire and deflect. [Nicola Salmoria]
- [DOS] Support for ZIPped input files (-playback) and artwork. Well, PNG won't
compress very well, but I added it anyway ;) [Juergen Buchmueller]
Source:
-------
- Finally fixed the CMPX instruction in the 680x core. On the 6800 it does
not affect the C flag, on the others (6803, 63701) it does.
[Tatsuyuki Satoh]
==========================================================================
0.36 BETA 7
- Fixed colors in Wanted, Marine Boy, Changes and Hopper Robo. [Zsolt Vasvari]
- [DOS] The new Allegro library supports the Gravis GrIP devices, use
-joy grip or -joy grip4 to enable.
Source:
-------
- Rewritten the HC55516 CVSD decoder. This affects Sinistar, Joust 2, Arch
Rivals, Pigskin, Tri-Sports, Smash TV, Trog, Narc. [Aaron Giles]
- Some fixes to HD63701 IRQ handling, and support for ICI (Input Capture
Interrupt). [Tatsuyuki Satoh]
- Improvements to the 34010 emulation. [Aaron Giles]
- New function findmemorychunk() that lets you look up a chunk of memory and
get its start/end addresses, and its base. This can be used (carefully!) by
drivers that wish to access memory directly without going through the
readmem/writemem accessors (e.g., blitters). [Aaron Giles]
==========================================================================
0.36 BETA 6
- Fixed priorities and scroll offset in the Toaplan games. [Satoshi Suzuki]
Source:
-------
==========================================================================
0.36 BETA 5
- Extracted all the data from the Heavy Barrel microcontroller, so all
special weapons and powerups appear correctly. Also a lot of other fixes
to Data East games. [Bryan McPhail]
- The Cinematronics driver now can handle games with backdrop + overlay. The
pngs have to be renamed:
backdrop: drivername + b.png
overlay: drivername + o.png
[Mathis Rosenhauer]
Source:
-------
==========================================================================
0.36 BETA 4
- Fixed a Konami CPU bug which caused problems with Parodius. [Ernesto Corvi]
- Screen shots can be saved while the game is paused. [Phil Hopely]
- You can single step while the game is paused, press Shift+P to advance to
next frame. [Phil Hopely]
Source:
-------
- New PORT_SERVICE() macro, use it instead of the long declaration needed for
the service mode dip switch. [Nicola Salmoria]
==========================================================================
0.36 BETA 3
- Added support for external volume control to the K007232 and fixed Aliens,
Ajax etc. [Nicola Salmoria]
- Changed the UPD7759 emulator to support two chips ('88 Games needed this)
and fixed a bug in the ADPCM decoding. [Ernesto Corvi]
Source:
-------
==========================================================================
0.36 BETA 2
- Hacked protection in Wild Western, fixed bonus game, added second button
to jump onto the train. [Zsolt Vasvari]
- Further improved the YM3812 emulator, especially the rhythm section (check
Snow Bros!). [Tatsuyuki Satoh]
- [DOS] -noym3812opl is now the default (this won't have effect unless you
delete mame.cfg). [Nicola Salmoria]
- Fixed a bug in the T-11 emulation which caused APB not to work and the end
of race results in Super Sprint to contain garbage. [Aaron Giles]
Source:
-------
- [DOS] The above should remove all limitations on number of axis and buttons,
so e.g. joypads with multiple sticks should work. Changes to the analog
devices handling will follow. [Nicola Salmoria]
- Sega PCM and RFC68 sound emulators, used by System 16. [Hiromitsu Shioya]
- Moved the profiler into the core. The OS dependant code need only provide a
osd_cycles() inline function/macro in osinline.h, returning a counter. The
function must be as low overhead as possible since it is called thousands
of times per second when the profiler is active. The counter should be as
precise as possible, to provide accurate measurements; the ideal unit is the
number of CPU cycles, e.g. as returned by the Pentium instruction RDTSC.
The profiler display is handled by the core, so the OS code only has to make
the usual profiler_mark() calls to profile different sections of the code
(PROFILER_BLIT, PROFILER_SOUND and so on).
Note: to avoid conflicts, the OS code must do the check for the "show fps"
key this way, otherwise input will be lost:
if (!keyboard_pressed(KEYCODE_LSHIFT) && !keyboard_pressed(KEYCODE_RSHIFT)
&& !keyboard_pressed(KEYCODE_LCONTROL) && !
keyboard_pressed(KEYCODE_RCONTROL)
&& input_ui_pressed(IPT_UI_SHOW_FPS))
[Nicola Salmoria]
==========================================================================
0.36 BETA 1
- Major improvements to the System 16 driver, most games are working now. Many
still lack sound though. [Andrew Prime]
- Fixed controls and graphics in Commando (Sega), which is now fully playable.
This also fixes diagonal shots in Bosconian. Jungler shots are broken though.
[Nicola Salmoria]
- New digital YM3812/YM3526 emulator (in the DOS version, use -noym3812opl to
enable it). It doesn't support the rhythm section yet, but is overall better
than the old one. [Tatsuyuki Satoh]
- [DOS] Triple buffer support in tweaked VGA modes. Warning: this is slower
than standard tweaked modes. [Brian Lewis]
- [DOS] If you are using a HotRod, use the -hotrod switch to adjust the default
keyboard settings. [Nicola Salmoria]
Source:
-------
- [DOS] The new Allegro provides support for PSX and N64 pads (info here:
http://www.debaser.force9.co.uk/ccmame), and for the Wingman Warrior.
The names for the -joy parameter are
psxlpt1
psxlpt2
psxlpt3
n64lpt1
n64lpt2
n64lpt3
wingwarrior
[Nicola Salmoria]
- New sprite manager, used in System 16, Ninja Gaiden, Shoot Out, Blood Bros.
[Phil Stroffolino]
- Took the gfx drawing functions out of common.c into the new dragfx.c.
In preparation for further changes to the data structures, abstracted the
low level data copying and used macros to generate 8-bit and 16-bit
versions. [Nicola Salmoria]
==========================================================================
- Added rotary control support to Top Gunner. This works in topgunbl *only* -
the gun turret cannot be rotated in jackal and topgunr, those games don't
support the rotary joystick. [Karl Stenerud]
- Incresed the horizontal resolution for NeoGeo to 320. This looks strange with
some games, but it is definitely the correct value as I verified it on the
real thing. Games like Puzzle Bobble and Baseball Stars use the extra area,
while most of the other games draw just two bars in there. If a game looks
odd, adjust your monitor to send the extra area offscreen. [Nicola Salmoria]
- Fixed the slapstic emulation in Gauntlet, Gauntlet II, Xybots, Empire Strikes
Back, Rampart. [Ernesto Corvi, Nicola Salmoria]
- Fixed crashes in Demon, added analog controls to Tailgunner, fixed reset bug
in Space Wars, added glove control to Boxing Bugs, added color to War of the
Worlds and Boxing Bugs (seems to be wrong compared to Retrocade).
[Mathis Rosenhauer]
- Added scroll to Pinball Action when you push button 4, but I'm not sure it's
correct. [Nicola Salmoria]
- Simplified the error message when ROMs are missing. It now gives a list of
all the missing ROMs, it doesn't stop at the first one. [Nicola Salmoria]
Source:
-------
==========================================================================
- The Pause key can be changed from the "Keys (defaults)" configuration menu.
[Nicola Salmoria]
- [DOS] New video modes from CabMAME: low scanrate modes for connection to
NTSC/PAL and arcade monitors. -monitor NNNN selects the monitor type:
"standard" (default), "ntsc", "pal", "arcade". -centerx N and -centery N
each take a signed value (-8 to 8 for centerx, -16 to 16 for centery) and let
you shift the low scanrate modes around. -waitinterlace forces update of
both odd and even fields of an interlaced display for each game loop.
[Brian Lewis]
- [DOS] Since there are now many tweaked VGA modes which may have compatibility
problems with some video cards / monitors, they are now off by default. By
default, VESA is used; the -vesa command line switch is no longer used.
Instead, there is a -tweak switch which enables the VGA tweaked modes.
[Nicola Salmoria]
- [DOS] New tweaked VGA modes: 384x240 (for CPS1, Pang etc.), 384x256 (for Lode
Runner etc.), 336x240 (for Gauntlet and other Atari games), 320x240 (for
NeoGeo and others). They are used automatically, if your video card/monitor
can't handle them, use -notweak (or try adjusting the parameters in mame.cfg
if you know what you are doing). [Brian Lewis, Andrea Mazzoleni]
- [DOS] Removed the -nodouble command line option. Use -nostretch instead. If
you are updating from an earlier beta, make sure to delete mame.cfg (or
manually update it) otherwise stretch will be disabled. [Nicola Salmoria]
- Changed the analog port handling to avoid problems with keyboard control
(e.g. Arkanoid 2). [Nicola Salmoria]
Source:
-------
- Added support for slave mode to the MSM5205 emulation. [Tatsuyuki Satoh]
==========================================================================
0.35 BETA 13
- Fixed a couple of bugs in the 68000 emulation (both asm and C). They affected
Power Spikes 2 and F1 Dream. [Mike Coates]
- [DOS] -stretch 1024x768 can be used with Sichuan II and Golden Star.
[Nicola Salmoria]
- Moved mixer control out of streams.c and into the new mixer.c. Now the On
Screen Display can be used to change the volume of any channel, not just ones
handled by streams.c. The configuration is also saved on exit and is
automatically reloaded the next time you start the game. [Nicola Salmoria]
Source:
-------
- struct GameSample no longer has a volume field (since it is not stored in .wav
files), to replace that struct Samplesinterface has an additional volume field
which affects all samples played. [Nicola Salmoria]
==========================================================================
0.35 BETA 12
- Fixed missing arrow in the radar in Over Top, but this breaks the Nam-1975
screen when you insert a coin. [Nicola Salmoria]
- Fixed the spider gfx, and sky color, in Rainbow Islands. [Mike Coates]
- Drastically reduced load times of the larger NeoGeo games. [Nicola Salmoria]
- Boss order in Super Real Darwin should be correct. [Jos� Miguel Morales
Farreras]
- Memory card support in the NeoGeo driver. Card data is saved to the MEMCARD
directory (you have to create it). Use the TAB menu to access the memory card
options. [Fabrice Martinez]
- Fixed F1 Dream protection workaround (note that the game still doesn't work
correctly with the 68000 C core). [Mike Coates]
- [DOS] All flickering problems with triple buffering should now be solved, so
it's now always ON. Let me know if you have problems with it, and I'll add
back an option to disable it. vsync and waitvsync are automatically disabled,
so you can leave them enabled - they will only be used in tweaked VGA modes
or if your video card doesn't have enough RAM to do triple buffering.
[Nicola Salmoria]
Source:
-------
==========================================================================
0.35 BETA 11
- Fixed sprite glitches in Jail Break and Iron Horse. [Nicola Salmoria]
- Added support for .wav samples. The custom .sam samples are no longer
supported (you can use the sam2wav converter to convert them). [Aaron Giles]
- [DOS] Rough triple buffering support in VESA modes. You can turn it on with
the -triplebuffer switch. It is not guaranteed to work well, but if it does,
it offers results similar to -waitvsync but without the performance drop.
Do NOT use it together with -vsync or -waitvsync. [Nicola Salmoria]
- A missing ROM for which no good dump is known to exist is no longer a fatal
error - you can start the emulation even if the file is missing. Its space
will be filled with random data. Of course the game will probably
malfunction. The output of -verifyroms is slightly changed, it says "NO GOOD
DUMP KNOWN" now and doesn't print 00000000 checksums. [Nicola Salmoria]
Source:
-------
- Major overhaul to the Atari games, and fixes to the 68000 and 6502 cores to
get them going properly. [Aaron Giles]
==========================================================================
0.35 BETA 10
Please report any problem you find with the C 68000 core. There are no known
bugs as of now (apart from ball movement in Power Spikes 2), if no new bugs
are found we'll switch back to test the asm core.
- "kbmame" multi-button key equivalents for the NeoGeo games. They are only
available if cheats are enabled. [Nicola Salmoria]
- Added menu option to configure the default joystick settings (like the
default keys), [Nicola Salmoria]
- [DOS] The parameters which control tweaked VGA modes can be changed by
editing mame.cfg, so they can be fine tuned to match each particular video
card/monitor combination (these are non standard modes so they can't be made
to work in the same way on all setups). If you want to try that (warning:
only experienced users should try) make sure to read vgatweak.txt.
[Valerio Verrando]
==========================================================================
0.35 BETA 9
After the problems with the last few betas, this should be a stable release
again. All games which worked before the core changes should be working again.
Let us know if you find some still broken.
- Converted the System 16 drivers to use the TileMap system - they are now
cleaner, faster, and support screen rotation. [Phil Stroffolino]
- Fixed hangs in Super Real Darwin when big bosses come, however the order
they appear in is likely wrong (it's a protection issue). If you know the
correct order, contact mish@tendril.force9.net. [Bryan McPhail]
- Emulated the protection in Jump Bug (Rock-ola). Some ROM splitup too, and
fixed colors. [Zsolt Vasvari]
Changes to the main program:
----------------------------
- [DOS] New tweaked 256x256 VGA modes (both scanlines and noscanlines)
stretched to fill the screen. They are automatically used for horizontal
games, and are preferable to the -stretch option since they are faster.
You might have to adjust your monitor settings to make them properly
centered and fill the screen (use the border displayed on startup as a
guideline). [Valerio Verrando]
Source:
-------
- Redesigned the struct InputPort to use less space, and changed how analog
inputs are defined. An additional benefit is that the keys for digital
emulation of analog inputs are now defined in the Keys for this Game menu,
together with all other keys, instead that in the Analog Controls menu.
The Analog Controls menu remains to set the other parameters.
[Nicola Salmoria]
- Added default strings for dip switches. For example, instead of "Cabinet",
use DEF_STR( Cabinet ). The constants are defined in inptport.h.
[Nicola Salmoria]
==========================================================================
0.35 BETA 8
Most of the problems of beta 7 have been fixed, but the C 68000 core still
isn't 100%.
- Fixed again the colors in Lode Runner 2. This time it should really be 100%.
[Nicola Salmoria]
These drivers have new or improved SOUND:
-----------------------------------------
- Implemented the RC filters in early Konami games (Time Pilot, Pooyan, etc.)
[Zsolt Vasvari]
- Added a "Game History" entry to the menu. Data is fetched from the file
HISTORY.DAT. Thanks to Brian Deuel, Neil Bradley and the Retrocade dev team
for allowing us to use Retrocade's game history database. [John Butler]
==========================================================================
0.35 BETA 7
These drivers have improved GRAPHICS:
-------------------------------------
- Colors & sprites in Super Real Darwin should be correct. [Bryan McPhail]
- Char/sprite priority in Lode Runner 2 & 3 and in Battle Road. [Eric Hustvedt]
- Fixed the in game timer in Captain Silver, this probably fixes other
gameplay glitches. [Bryan McPhail]
Source:
-------
- Major overhaul to the cpu cores. Note that the debugger doesn't work in this
release. [Juergen Buchmueller]
==========================================================================
0.35 BETA 6
Note: the CPU cores have been completely torn apart and rearranged in this
release. Don't be surprised if a large number of games don�'t work at all.
FOr example, Twin Cobra doesn't boot, and most (all?) of the games using
a 6803 lock up (ctrl-alt-del needed).
- [DOS] New -stretch option to optionally stretch low resolution games to fill
the screen. The default is -stretch off, which is the same behaviour as
before. -stretch 1024x768 automatically uses the "quadra" mode for horizontal
games whose resolution is less or equal to 256x256. -stretch 800x600 uses
the "triple" mode. The -quadra and -triple options are no longer needed and
have been removed.
1024x768 will be perfect (for 256x256 games) or almost perfect (for 256x240
and 256x224 games) without monitor adjustment, so it is indicated for LCD
displays. However, it is slower than 800x600. 800x600 is faster but the games
are stretched to resolutions from 768x448 to 768x512, so they don't fill the
screen and are squashed vertically. Here's the tip: if your monitor is good
enough, you can use the controls to expand the picture and make it fit
perfectly in the screen. Note that this tip applies not only to stretched
modes, but also to med-res games like Lode Runner (384x256) and the CPS1
games (384x224). The CPS1 games in particular are unbearably squashed unless
you adjust the monitor. [Nicola Salmoria]
- [DOS] New option -volume n to set the startup volume. The volume is an
attenuation in dB, e. g. "-volume -12" will start with a -12dB attenuation.
[Nicola Salmoria]
- Major changes to the whole CPU interface and cores. [Juergen Buchmueller]
==========================================================================
0.35 BETA 5
- Full sound in Sly Spy, Midnight Resistance, Dark Seal. [Bryan McPhail]
- Emulated the death sound in Mario Bros, the sample is no longer used.
[Brian Stern]
- [DOS] Added a header to .inp files (same as MAME32). With the additional
header, the user no longer needs to specify the game name when playing back
.inp recordings. [Mike Haaland]
- Added the ability to show the total number of colors on screen. This is
useful during development to know if a game can be shrinked to 256 colors or
it requires a 16-bit display. Press CTRL+F11 to toggle the display. This is
only available in debug builds. [Nicola Salmoria]
Source:
-------
- The TileMap code is now mature enough to be used in new drivers. For
examples, look into gng, gaiden, travrusa. [Phil Stroffolino]
- Merged the old and new Namco sound subssytem, and added support for stereo
output. [Aaron Giles]
==========================================================================
0.35 BETA 4
- It seems that the Fatal Fury 2 protection was still causing some problems in
later levels. It should now be completely worked around. NOTE: YOU MUST
DELETE FATFURY2.HI OR THE GAME WILL MALFUNCTION AFTER THE FIRST BONUS ROUND.
[Nicola Salmoria]
- [DOS] New -quadra and -triple video options. They are slower than the
others, but provide interesting features. With -quadra the screen is
quadrupled horizontally and tripled vertically, so a 256x256 game fits
perfectly in a 1024x768 screen. -triple triples horizontally and doubles
vertically, so it's perfect for Moon Patrol. [ole00@usa.net]
Source:
-------
- [DOS] Now compiled using Allegro 3.11. Unfortunately, contrary to what I
had been promised, allegro.h provided with the library still fails to
compile with MAME, so a fixed one is included.
==========================================================================
0.35 BETA 3
- 16-bit color support in the NeoGeo driver. It's enabled in a few games which
were particularly affected by reduction to 256 colors. [Nicola Salmoria]
- CPS1 games are being worked on, they are temporarily slower but accuracy is
improved.
- Last Duel, Mad Gear, M79 Ambush, Lode Runner 2 & 3, Lot Lot, Dead Eye.
[Howie Cohen]
- Support for the ORIGINAL version of Bubble Bobble, with 68705 code from a
pirate board. Wizards *do* throw stones in this version. [Nicola Salmoria]
- Properly emulated the 68705 protection in The Electric Yo-Yo, Kram, Space
Dungeon, Zoo Keeper. [Nicola Salmoria]
Source:
-------
- New experimental TileMap code, used by Ninja Gaiden and Ghosts and Goblins.
This makes the driver code cleaner and gives a major performance boost in
the video rendering. DON'T USE IN NEW CODE UNTIL FURTHER NOTICE!!
[Phil Stroffolino]
==========================================================================
0.35 BETA 2
Note: the CPU cores are still in a state of flux. Most of the problems in 35b1
have been fixed, however some still remain (e.g. Gauntlet doesn't accept
coins and Exterminator crashes).
- Fixed gaps in the start/finish line in Neo Drift Out. [Nicola Salmoria]
- Attempt at emulating some raster effects in the NeoGeo games. The IRQ2
handling is still 99% unknown, however you can see the field in Super
Sidekicks 3 and 4. This is largely unaccurate, and VERY slow. Hit F1 to
toggle the emulation on or off (by default it's on). [Nicola Salmoria]
- Improved row scrolling in Street Fighter 2, plus several other fixes to the
CPS1 games. [Paul Leaman]
- Fixed the green and white flags in Championship Sprint / Super Sprint, and
maybe other Atari System 2 sprites as well. [Nicola Salmoria]
- Fixed sprite flipping in Jack the Giant Killer end sequence. [Brad Oliver]
- Added support for the 7751 sound chip in Monster Bash. Two samples are still
needed (discrete circuits). [Mike Balfour]
- Good progress in sound emulation of the Exidy games (Venture, Pepper 2, etc.)
[Dan Boris]
- Sound fade timer ports in the CPS1 games (see Willow's Test mode for an
example). [Paul Leaman]
- The hang in Tapper should REALLY be fixed this time. [Juergen Buchmueller]
- Emulated the protection in Knights of the Round and Carrier Air Wing.
[Paul Leaman]
- [DOS] The key to change frameskip is now F9 instead of F8. [Nicola Salmoria]
Source:
-------
- New 68000 C core. For testing purposes, this is also being used in the DOS
version instead of the asm core. [Karl Stenerud]
Differences:
1. Faster. This code is, barring ram fetch time, almost twice as fast as the
existing C core in MAME. I've done extensive speed profiling on both
engines. The only problem now is the slow memory access in MAME due to
bankswitching et al.
2. Emulation more correct. I found many bugs in the MAME engine (and many,
many more in mine for that matter) when I pitted them head-to-head.
I have run random instructions from each opcode class at least 10 million
times, comparing the resultant CPU states, and have left it running random
instructions for 1 billion iterations. In every case, I have adhered to
the specs defined in M68000PM/AD REV. 1.
4. Cycle counting is 99.9% correct. The only instructions which don't have
correct cycle counts are divs, divu, muls, mulu, and they're not worth
counting correctly. (I'm not about to waste emulation time counting 0-1 and
1-0 sequences).
5. > 32 bit friendly. I've taken care to ensure maximum portability without
sacrificing speed. The result is conditional compiling dependant on your
architecture. I've also implemented and tested a compatible solution for
architectures that lack 8, 16, or 32 bit signed storage types.
- NEC uPD7759 emulation. This is used by TMNT, System 16, and others.
[Juergen Buchmueller, Mike Balfour, Howie Cohen]
- CVSD emulation, used for speech in Sinistar and in the 34010 games (Smash TV
etc.). [Larry Bank, Alex Pasadyn]
==========================================================================
0.35 BETA 1
Note: the configuration save format has changed. You may just as well delete
all of the cfg/*.cfg files, since they won't be loaded. Old .inp files will not
work either.
The good news is that the default key assignments can now be modified, so you
don't have to change them for all the games. The code is a quick hack put
together in fifteen minutes, but it's bettern than nothing. It will be improved
in future versions.
- Fixed NeoGeo palette - it's 5 bits per gun, not 4. Of course this makes the
reduction to 256 colors even more difficult. 16-bit video modes will be
supported in a later version. [Nicola Salmoria]
- Fixed missing background behind the three towers in Metal Slug level 1.
[Nicola Salmoria]
- Fixed missing line in the tank's shot in Metal Slug intro. [Nicola Salmoria]
- Added the 007232 to TMNT. Another sound chip is still missing to get 100%
sound. [Howie Cohen]
- Partial sound in The Real Ghostbusters. The YM203 doesn't seem to work
correctly. [Nicola Salmoria]
- Worked out the Super Punch Out protection. [Tatsuyuki Satoh, Ernesto Corvi]
- Fixed two players games in Phoenix, and the protection in Pleiads (which
made game resets not work). [Zsolt Vasvari]
- [DOS] Widened the frameskip range. It now is 0-11, meaning the number of
frames to skip out of 12. For example, if the game normally runs at 60 fps,
"-frameskip 2" will make it run at 50 fps, and "-frameskip 6" at 30 fps.
Also, if a frame takes more than the allotted time to display, the lost
time can be recovered in the following frames. Moreover, improved the way
audio streams are handled, so they stay more in sync with the video. There
should never be any more audio breakups EVER (as long as your system can
keep the game running at 100% speed).
All of these changes together mean that it is now possible to run at much
higher frame rates than before (if your system is fast enough).
[Nicola Salmoria]
- [DOS] "vmame" modes 320x480 and 400x600, which speed up scanlined VESA modes
for some games and graphic cards which support these resolutions.
Currently, these modes will not be autodetected, that is, the commandline
options "-320x480" or "-400x600" have to be used.
[Nicola Salmoria, Michael Cunanan]
- [DOS] Joysticks are now selected by a symbolic name (e.g. "-joystick wingex"
for Wingman Extreme) instead of a number. For the list of names, look into
readme.txt. Numbers are still supported, but may not be in future releases.
SNES gamepads on parallel ports are supported now, provided you have some
additional hardware (the "official" Snespad-Support site is
http://snespad.emulationworld.com). [Bernd Wiebelt]
- [DOS] For cosmetical reasons, added support for VESA3, which can be selected
by putting "vesamode=vesa3" into mame.cfg. It is highly unlikely that you'll
get any speed improvement. [Bernd Wiebelt]
Source:
-------
- New function cpu_getcurrentframe() which returns the number of the video
frame currently being played. It can be used by drivers to control effects
which spawn over multiple frames (e.g. blinking) without using static
internal counter (which would require a custom interrupt handler to avoid
problems when the game is paused). [Nicola Salmoria]
- Konami 007232 sound chip emulator. This is used by TMNT. [Hiromitsu Shioya]
- The driver input ports are now 16 bit. This allows for higher resolution
analog inputs (Arkanoid 2). Also, the 68000 based games no longer have to
read and mix two 8 bit ports to get a 16 bit value. [Brad Oliver]
- [DOS] Now compiled with Allegro 3.1. Unfortunately the standard allegro.h
doesn't compile with the pedantic compiler setup we are using, you'll have to
use the provided fixed version instead. [Bernd Wiebelt]
- Added a horrible dirty hack to allow opcode encryption on CPUs other than
the main one. It's really ugly and needs a rewrite, but it's enough to get
sound in Pocket Gal and The Real Ghostbusters. [Nicola Salmoria]
==========================================================================
- Fixed music in Moon Patrol, Traverse USA and the other Irem games.
[Nicola Salmoria]
NOTE: the high score save format has changed in some games to make it cross
platform. The old scores for those games will be lost. If you see garbage in
the high score table, or otherwise strange behaviour, delete the .hi file.
- Block Out, Dark Seal, Cosmic Alien, Crazy Balloon, Radarscope, Side Track.
[Howie Cohen]
- Lode Runner (all versions), Kid Niki, Spelunker II, Jail Break, The Main
Event, King of Boxer, Express Raider, Pac Land, Speed Ball. [Dave W.]
- When using the SoundBlaster OPL chip, YM3812 commands are converted to play
at the correct frequency. [Carl-Henrik Sk�rstedt]
New ROM sets supported (in no particular order)
-----------------------------------------------
Space Panic (German) [Mike Coates]
Cook Race (this was previously called hamburge) [Nicola Salmoria]
==========================================================================
0.34 BETA 8
- All games work, both in arcade and home mode. If you are stuck with a
copyright message or the coin inputs don't work, delete the .CFG and .HI file
for that game. This will fix the problem.
Super Sidekicks 2 controls still stop working after a couple of minutes,
though. Crossed Swords doesn't let you start a game in arcade mode. It works
in home mode.
- Sound support is 95% complete. If you experience garbled sound and you get
NO GOOD DUMP EXISTS errors, this is caused by bad ROMs, not by imperfect
emulation. There is NO WAY to fix that apart from redumping the bad ROMs.
- If you get a Z80 ERROR message, it means that the sound program ROM is bad.
Run the game without sound.
- A few games have graphics glitches which are not easily fixed.
- "ROM length mismatch" errors. If you get these, you are just using ROMs
larger than the ones MAME expects. This is not a fatal error and the game
will still run fine (provided the ROMs are good, of course). You can "fix"
the ROMs yourself just by removing the second half of the file.
Note that the sizes used by MAME are sort of arbitrary. In many cases it is
difficult to know for sure which size the ROMs are really supposed to be, so
we decided to consistently use the smallest possible files. The real ROMs
*might* be larger than that, but the extra space is not used by the game -
it is either all FF, or contains a verbatim copy of the first half.
- Rooms in Intrepid are now properly hidden until you enter them. Also fixed
the bridges in Round Up. [Nicola Salmoria]
- Cloak and Dagger, Frenzy, Future Spy, Cop 01. [Dave W.]
- Chelnov is now playable! Plus many other fixes to the driver including
slowdowns in Karnov. [Bryan McPhail]
- [DOS] Stereo sound support. It is a little slower than mono, to turn it off
use -nostereo. Stereo is enabled only for YM2610 and YM2151 games. The others
always use mono.
- [DOS] New -listinfo command to give details on all of the supported games.
[Andrea Mazzoleni]
- Several changes to the cheat system, you'll have to download a new cheat
database if you want to use it. [JCK]
- [DOS] Now using a new beta version of the SEAL audio library which further
improves the dynamic range. You'll notice louder and better balanced sound
in many games. Let me know about games with bad balance. [Nicola Salmoria]
==========================================================================
0.34 BETA 7
- Added some more sound effects to Juno First. The shoot sound is still
missing. [Nicola Salmoria]
These drivers have HIGH SCORE support:
--------------------------------------
- Wonder Boy, Regulus, SWAT, Heavy Metal, Brain, Toki no Senshi; plus fixed
many other System 8 games. [Howie Cohen]
Source:
-------
- [DOS] Now using a beta version of the SEAL audio library which will improve
the dynamic range. This change isn't complete yet. [Nicola Salmoria]
0.34 BETA 6
Note about the x86 asm 68000 core: several bugs have been fixed (most notably,
it now runs under pure DOS) but it is still not complete. For example, the two
Metal Slugs hang shortly after game start. They will work if you recompile
using the C core.
- Accurate colors in Jungler. Also fixed char flipping and sprite alignment.
[Nicola Salmoria]
- [DOS] Replaced the -fm option with -ym2203opl. Added -noym3812opl to use the
digital emulation of the YM3812 instead of the SoundBlaster OPL chip. Note
that with -noym3812opl you also need external drum samples. [Nicola Salmoria]
- Clone sets are not reported as missing by -verifyroms if only the parent set
is present. [John Butler]
Source:
-------
- [DOS] Now using version 1.05 of the SEAL audio library. This should fix
problems with the ENSONIQ AudioPCI and Creative PCI64 cards.
NeoGeo Support
--------------
This beta contains some major improvements to the neogeo emulation. Work on
this driver also uncovered several bad rom dumps, most of which you can correct
yourself, existing bad rom dumps should still work but will give checksum and/or
rom length errors on startup.
How to:
You need a zip file called neogeo.zip in your rompath. It should contain at
least three files:
neo-geo.rom (128k)
ng-sfix.rom (128k)
ng-sm1.rom (128k)
The rom 'ng-sm1.rom' is badly dumped in many archives, you will need one that is
128k, see later for full details on bad roms. Using a 256k rom will still work
but will give a length & checksum error on every game.
Important! The bios zip file must be called neogeo.zip NOT neo-geo.zip, ie,
there should be no dash in the middle.
You also need to place the game zip in your rompath. If you do not know what 8
character filename the NeoGeo game you want to play has you can type:
That will list the 8 character zip names of all currently supported games.
What's New?
-----------
* FULL sound support, FM synth and ADPCM samples, on 90% of games using the
YM2610 emulator. The games without working sound should be fixed soon.
- Optional rom loading of samples: You may find games that worked before will
not work now due to lack of memory as all the sound roms need to be loaded.
Some games will require an extra 16 megabytes of memory to load the sound roms.
You can force Mame NOT to load these samples if you specify no sound BEFORE rom
loading takes place. In Dos this means you must type:
If you DO NOT specify soundcard 0 then all sound roms will be loaded and you may
experience memory problems.
* Improved graphics:
- Auto-animations are supported, these are used in many games. The Neogeo
graphics hardware can cause animation without intervention from the main cpu.
You can see this in the backgrounds of games such as Karnov's Revenge, Street
Hoops, Samurai Shodown, King Of Fighters, etc.
- MAJOR speedup! You should see at least 20-50% increase on all games. The
downside is
you will see a black screen for a few seconds at the start of every game as
the graphics are converted to a custom format. There are many other
optimisations in the video code too.
* All games for which rom dumps are available are now supported. 99% of them
are working.
* Several games have experimental 68000 idle cycle skipping, for these games you
should see increases of between 5% and 20%. Games currently using this method
are:
Puzzle De Pon
Karnov's Revenge
Wind Jammers
Street Hoops
Neo Bomberman
* SRAM save size has been reduced to 0x2000 bytes from 0x10000. The NeoGeo
has 8 memory frames and will store sram data for upto 8 games regardless
of how many physical cartridges the machine can take. The Mame emulation
emulates a fixed 1 cartridge neogeo, therefore only the first 0x2000
bytes of the SRAM should ever be used. Due to bullet-proofed(!) memory
handling there should be no more corrupt sram saves either. Remember you can
delete a game settings by deleting it's file in the 'hi' directory.
Bug where SRAM states were reloaded upon every reset is fixed.
Some games will give a piracy warning. You can still play the games if you
set them to run in Console (Home) mode. For some games you can set the game
back to arcade mode after the protection check is done and leave it that
way (because some games leave a flag in SRAM as to whether the game has passed
it's security check).
Line (row) scrolling is not implemented. This is used for the floor in
Karnov's Revenge, special effects in Spinmasters, etc, and many others.
This release should give a substantial speed boost over previous betas, and there
are some more optimisation ideas to be tried.
Bad Roms
--------
Several bad rom dumps have been found, this is where a rom has corrupt data
and may also be the wrong size. 'Fixed' rom dumps will become available from
the usual places in time. The most common error is that a rom is twice the
size it should be, and that the second half is either the same as the first or
just has junk in it. To be fix these roms you simply split them in half, and
throw away the second half. You should do a binary split, meaning your split
program should not save any formatting information to the file. As mentioned
above bad rom dumps will continue to work but will give checkums and length
errors.
The Neorage team will support all fixes to the bad roms and make sure their
emulator is compatible. Most fixed romsets will work on Neorage already.
==========================================================================
0.34 BETA 5
- Improved the user interface. Use "the key on the left of 1" (tilde on some
leyboards) to turn on the On Screen Display which lets you change Volume,
Gamma Correction, Brightess, and independently set the volume levels of the
sound chips. Tab still brings up the setup menu, which is now asynchronous.
[Nicola Salmoria]
- x86 ASM 68000 core. This is a major speed improvement. [Mike Coates, Darren
Olafson]
==========================================================================
0.34 BETA 4
- Improved speech in Gorf. It now plays speech 100% accurately except for the
missing samples. [Kevin Bales]
- Switched to CRC-32 for file integrity checks. The old custom checksums are no
longer used. [John Butler, Bernd Wiebelt]
- New unzip interface. New zip directory cache and filename cache (the latter
only in the DOS version). [Andrea Mazzoleni]
- When using zipped files, ROMs are automatically retrieved even if they don't
have the expected name (provided they have the correct CRC-32, of course).
You'll never have to rename files any more (though you might have to rename
zips ;-) [Nicola Salmoria]
- [DOS] New command -listcrc. It lists the CRC-32 for all the supported ROMs.
00000000 means that the ROM is known to be bad. [Nicola Salmoria]
- Fixed bug in the 68000 interrupt handling which causes Rastan Saga to not
boot correctly. [Brad Oliver]
- [DOS] Experimental profiler. To enable it, use the -profiler parameter; then,
hit Left Shift + F11 to show the results on screen. I don't know how accurate
the figures are; the "Sound" figure is certainly underestimated for sound
chip emulators which don't use streams.c (it is computed under the CPU
playing the sound instead that under Sound).
Note that the sum of the percentages is much less than 100%. This is in part
due to portions of the code which are not profiled, but is also caused by the
massive overhead of calling uclock() (which happens very often when sound is
playing). [Nicola Salmoria]
Source:
-------
- New streams.c to abstract audio streams. This makes them easier to use and
more efficient. osd_play_streamed_sample() should now be considered a private
function and should not be used in new code. [Nicola Salmoria]
This beta contains a major update to the NeoGeo driver. It is still far from
perfect but has many improvements over the previous version. This is still
very much a 'work-in-progress' driver with many known problems. Hopefully
these problems will be fixed soon.
How to:
You need a zip file called neogeo.zip in your rompath. It should contain at
least two files:
neo-geo.rom (128k)
ng-sfix.rom (128k)
There should also be two other roms which are not yet used by Mame, they _will_
be used in future versions of this driver so do not delete them.
You also need to place the game zip in your rompath. If you do not know what 8
character filename the NeoGeo game you want to play has you can type:
That will list the 8 character zip names of all currently supported games.
What's New?
-----------
Notes on soft dipswitches: You can access these from pressing F2 (self test)
or setting the test mode dipswitch and resetting the virtual machine. Both soft
dips and cabinet settings are saved for each game. If, for some reason, you
experience strange gameplay (NOT graphics glitches), the soft dips may have
become corrupt (this _is_ still a beta release!), to clear them you can wipe
the file in the hiscore directory for the game OR go into the hardware test and
select the 'clear backup ram' option (recommended).
Other Fixes
-----------
Emulation of soft dips fixed many problems games had in previous versions, for
example, the game timers being set low in games such as KOTM and Art of Fighting
are fixed. Almost all 'gameplay' issues are fixed by this.
Sidenote: The 'blood bios' is not needed, nor supported. All games affected by
the blood bios actually have the 'blood' option in their soft dip options. It
can be turned on & off there without having to use a special bios. In fact any
non-standard bios may not work at this point.
Due to the much decreased memory requirements large games such as Karnov's
Revenge now work.
'New' games such as Metal Slug, Pulstar, Shock Troopers do not work, either due
to protection or bankswitching used in these games (information needed!).
The animation in the 'rain' scenes of Karnov's Revenge does not animate!
And finally:
------------
Q: Why don't you MAME guys do something original instead of doing something
that's already done?
A: Tell that to a Mac/Arm/Amiga owner!
==========================================================================
0.34 BETA 3
- Added RC filter emulation to Gyruss. This improves some sound effects, e.g.
the force field noise. [Francesco Caporali]
- Added ADPCM sounds to Renegade. [Phil Stroffolino]
- Added ADPCM sample playback to the bootleg Hyper Olympic. [Nicola Salmoria]
- Flicky, Bull Fight, I'm Sorry, Star Jacker, Mr Viking, 4d Warrior, TeddyBoy
Blues, Beastie Feastie, Contra, Cobra Command, Super Qix, Vigilante, Pang,
HigeMaru, Hexa. [Juan Carlos Lorente]
- Tiger Road, Karnov, Chelnov, Heavy Barrel, Bad Dudes, Robocop, Hippodrome,
Sly Spy, Midnight Resistance. [Dani Portillo]
- [DOS] New -romident option. Use "MAME -romident dirname" to identify unknown
ROM sets.
Source:
-------
==========================================================================
0.34 BETA 2
- The music in Bubble Bobble seems to stay in sync now. [Tatsuyuki Satoh]
- Dynasty Wars works (actually it was already working, it's just that the dip
switches had Freeze on by default).
- Front Line and Tin Star have the aiming dial (using a dual joystick setup).
Also, you can now kill and be killed in Front Line. However, collision
detection is not accurately emulated. [Nicola Salmoria]
- *FINALLY* fixed Commando sometimes not starting. It was a bug in the decode
routine, which has been completely rewritten. [Nicola Salmoria]
Source:
-------
- Replaced the 6502 emulator with a new one which also supports 65C02 and 6510.
Marat Fayzullin's core is no longer used. [Juergen Buchmueller]
- Fixed a bug in the 68000 BCD emulation which caused the F1 Dream timer to
malfunction. [Nicola Salmoria]
- Fixed bug in the Z80 block I/O instructions (INI, IND, INIR, INDR, OUTI,
OUTD, OTIR, and OTDR). [Frank Palazzolo]
- Updated the FM emulation and the way the 8910 updates its buffers. FM also
has support for YM2608 and YM2612, though they are not compiled in.
[Tatsuyuki Satoh]
- [DOS] Rearranged the makefile using archives to work around E2BIG error on
some machines. [Juergen Buchmueller]
- Support for CRC-32 checksums instead of MAME's custom ones. The actual CRCs
will be added later to the drivers. [John Butler]
==========================================================================
0.34 BETA 1
IMPORTANT: now most games load the color PROMs from disk. You'll have to add
the missing files to the archives.
- In Mario Bros., the screen bounces when you hit POW. [Brad Oliver]
- Enemies in TNZS are now visible, using the gfx ROMs from a new set (which is
not supported yet). [Chris Moore]
- The original Elevator Action now works, using the 68705 mcu ROM which was
missing. Since there is one additional CPU to emulate, it is slower than the
bootleg version. [Nicola Salmoria]
- Replaced Front Line with the complete set containing the 68705 code. It
still doesn't work though. [Nicola Salmoria]
- Replaced Golden Star with the original, encrypted set. [Mirko Buffoni]
- Fixed a bug in the NOT instruction of the 68000 core. [Mike Coates]
- You can proceed from the "press OK to continue" screen by pushing left then
right. You can also immediately quit by pressing ESC. [Nicola Salmoria]
Source:
-------
- Moved the Sega encryption code used by Flicky, Future Spy, and many others,
to machine/segacrpt.c. [Nicola Salmoria]
==========================================================================
A lot of ROM renaming and moving around has been done. I know this is annoying
but it was necessary. See merged.txt for details.
- Fixed invisible ball in Champion Baseball. Some of the graphics are still
broken. The reason is unknown. [Nicola Salmoria]
- Accurate colors:
Zoar [Zsolt Vasvari]
Warp Warp [Nicola Salmoria]
Wonder Boy Deluxe, Up'n Down, Pitfall II [Nicola Salmoria]
Eggs [Gerald Vanderick]
Fast Freddie/Fly-Boy (not sure about this one) [Zsolt Vasvari]
Jump Coaster [Zsolt Vasvari]
Warlords [Zsolt Vasvari]
Mega Attack and possibly the other Gameplan games [Chris Moore]
Road Fighter [Paul Swan]
- Some fiddling with the Atari vector games frame rates. [Nicola Salmoria]
- Slightly reduced the visible area of the Williams games, I'm not sure which
would be the correct setting though. [Nicola Salmoria]
- Inspired by Retrocade and Vector Dream, changed the vector games to use
translucent vectors. Color intensities had to be lowered, if it feels too dark
for you now, increase the gamma correction value. [Bernd Wiebelt]
- Fixed sprite priorities and tile flip in Pinball Action. [Nicola Salmoria]
- Moon Cresta uses the original gfx ROMs, fixing graphics glitches on the title
screen.
- Updated VLM5030 emulation (Punch Out etc.). Since quality is still bad, the
emulator is only used when samples are not available. [Tatsuyuki Satoh]
- Wizard of Wor supports word samples. Only 70% of the needed samples are
available, however. [Alex Judd]
- Fixed bug in ADPCM sample playback. Many games are affected, e.g. Robocop,
Bad Dudes. [Nicola Salmoria]
- Attempt at making the main Galaxian / Moon Cresta sound channel more
accurate. [Nicola Salmoria]
- The YM3812 emulator still passes commands to the Sound Blaster OPL chip, but
it handles timers in software. osd_ym3812_status and osd_ym3812_read removed.
[Aaron Giles]
- Emulated sound in Yie Ar Kung Fu (speech is missing for now) [Nicola Salmoria]
- Fixed Black Tiger, Bank Panic and The End. [Nicola Salmoria]
- Fixed Rygar (you'll have to delete your old .hi file) [Dani Portillo]
- Fixed Atari System 1 games not accepting coins with -fm (actually -fm was
supposed to be a no-op in this case since emulation of the YM2151 through
OPL is not supported). You still have to keep sound on, however; disabling
it will disable coins. Of course you can set the dip switches to Free Play
and forget about coins.
- Heavy Barrel is playable to the end, but there are still some problems.
[Bryan McPhail]
- Another step forward in getting Super Punch Out to work (still NOT
playable). [Tatsuyuki Satoh]
- Improved Spy Hunter controls (you can play with the mouse or even a wheel
now). [Alex Judd]
- Support for the complete Curveball set. This also fixes the crash.
- Many improvements to the DECO games, especially Heavy Barrel. [Bryan McPhail]
- Lots of clean up, consolidation, dip switches additions, color fixes to the
Carnival driver (which is now called vicdual.c, since Carnival is just one of
the many games which run on that hardware). [Marco Cassili]
- You can assign a joystick button to the gear shift in Spy Hunter.
- Mapped the unknown dip switch in Wonder Boy Deluxe. [David Calandra]
- Fixes to the Gameplan games. [Santeri Saarimaa]
- Us vs Them is playable, though of course you can't see the backgrounds which
were stored on the laser disc. MACH 3 still doesn't work.
- Fixed bug in the I8086 emulator which caused MACH3 not to work. MACH3 now
does the attract mode, but it will never be playable without the laser disc.
- Fixed hangs in Tapper, and hopefully other MCR games as well. [Aaron Giles]
- The default scores in Paperboy and Super Sprint are correct (though of course
you must delete the .HI files) [Aaron Giles]
- Super Qix might be running at the proper speed now. [Nicola Salmoria]
- [DOS] Increased the default gamma correction to 1.2. This will not have
effect unless you change it in MAME.CFG (or just delete the file).
- [DOS] Set back the default vgafreq to -1 (=auto). This is necessary for
-vsync to pick the correct freq (most of the time) when used with tweaked
VGA modes. This will not have effect unless you change it in MAME.CFG
(or just delete the file).
- Fixed -ror and -rol with ORIENTATION_SWAP_XY games (e.g. Kick) and
ORIENTATION_FLIP_X games (e.g. Discs of Tron). [Nicola Salmoria]
- [DOS] -vsync is supported for games running at 57fps (e.g. Moon Patrol).
However, due to the sync rate being different, the game runs 6% faster than
it should. [Nicola Salmoria]
- [DOS] New -listgames command, which lists all games along with production
year and manufacturer.
Also -noclones option which removes clones from -list, -listfull etc.
[Nicola Salmoria]
- [DOS] Fixed the NTSC mode. For feedback on this mode, please contact
sta@carinthia.com [Zerza]
- [DOS] Allegro (3.0+diffmay) now supports SideWinders and Gravis Gamepad Pro's
and so does Mame. [Bud Crittenden]
- [DOS] New -listdetails option, to create a detailed list of drivers and the
hardware they use. [Santeri Saarimaa]
- [DOS] Modified the code so that to start a game you can use
a) the full game name as listed in "mame -listfull"
b) any ordered subset of the characters used in the full game name
The less characters you use, the more likely you'll be surprised which
game actually gets chosen. [Bernd Wiebelt]
- [DOS] To improve compatibility, older VESA modes are back. If your card
doesn't work in VESA mode, try "vesamode=vesa2b" or "vesamode=vesa1" in
mame.cfg [Bernd Wiebelt]
- [DOS] Slightly changed the resolution picker, so that when -vesa and
-noscanlines are requested, it will use e.g. 320x240 instead of 640x480
with pixel doubling, and 400x300 instead of 800x600 with pixel doubling.
If the lower res mode is not available, it automatically switches back to
the pixel doubled mode. [Nicola Salmoria]
- [DOS] New -listclones command, which lists in two columns the clones and the
game they are clone of. [Nicola Salmoria]
- Changed the AY8910 emulation to generate three separate audio streams for the
three channels instead of premixing them. This improves audio quality,
increases the volume, and doesn't seem to affect performance too much.
[Nicola Salmoria]
Source:
-------
- The DOS version is now compiled with GCC 2.8.1 and using Allegro 3.0 + WIP
(30th May).
- Drivers using the VIDEO_SUPPORTS_16BIT mode must use the same API as
VIDEO_MODIFIES_PALETTE ones (palette_change_color(), palette_recalc()). The
old setgfxcolorentry() method is discontinued.
To use the new API, you must set BOTH the VIDEO_SUPPORTS_16BIT and the
VIDEO_MODIFIES_PALETTE flags. Removing the _16BIT flag is all it takes to
switch from 16-bit to dynamic mode, so you can quickly test if the palette
can be compressed (_16BIT is much slower, so don't use it unless absolutely
necessary). [Nicola Salmoria]
- On the Mac, the dynamic palette uses 254 colors instead of 256. Due to this,
now ALL drivers using VIDEO_MODIFIES_COLOR and 256 colors must call
palette_recalc() like the others. Also be warned that 256 colors static
palettes will be shrinked, so if you are using colors for copybitmap()
transparency you'll have to make sure that they are assigned an unique pen.
- Color PROMs no longer have to be included in the source. They can be loaded
from disk just like the other ROMs. You just have to replace the color_prom
pointer with the PROM_MEMORY_REGION() macro, to tell the core where the PROMs
have been loaded. [Nicola Salmoria]
- For drivers using the GfxLayer system, dirty rectangle support is partially
built-in into the core. The OS dependent rendering functions must use
Machine->dirtylayer to know which portions of the screen need to be
refreshed. Drivers which use the GfxLayer system no longer need the
VIDEO_SUPPORTS_DIRTY flag in the MachineDriver structure - it must be turned
on automatically by the OS dependent code.
- Added support for undocumented Z80 opcodes to the C Z80 core. [Juergen
Buchmueller]
- Added WatchPoint support to the debugger (i.e. check a RAM location and stop
execution when it is changed). [Ernesto Corvi]
- T11 CPU emulator. This is used by the Atari System 2 drivers. [Aaron Giles]
- New flag IPF_RESETCPU for input ports. When this flag is set, CPU #0 is
reset when the key is pressed. This cleaned up the vicdual driver.
[Nicola Salmoria]
- [DOS] Included Neil Bradley's asm M6808 emulator. Note: you need NASM to
compile. The official DOS binary of NASM is a 16-bit application and it
cannot compile this file; either use a recompiled version, or just use
NASMW (of course the latter only works under Windows). [Alex Pasadyn]
==========================================================================
0.31
SOME DEFAULT SETTINGS HAVE CHANGED. MAKE SURE TO DELETE MAME.CFG TO MAKE THEM
UP TO DATE.
BEFORE COMPLAINING THAT 0.31 IS SLOWER THAN 0.30, READ THIS WHOLE SECTION, OK?
ESPECIALLY WHERE IT TALKS ABOUT 16 BIT COLOR SUPPORT.
You'll need -depth 8 and -sr 11025 to run some of the bigger games at an
acceptable speed.
In the MS-DOS version, some games might require you to increase the memory
available to DPMI.
- Consolidated the Exidy drivers. Accurate colors in Venture, Mouse Trap and
Pepper 2. [Mike Balfour]
- Support for the complete Swimmer set. No more bad graphics. [Brad Oliver]
- New antialiasing code for the vector games. A bit slower than before, but it
looks terrific. You can turn it off with -noantialias.
Also two new options:
-beam # # in the range of 1.00 through 16.00 (# is float)
-flicker % % is optional (% is float), no number sets default flicker
valid range is 0.00 to 100.00 (0=none 100=maximum)
-beam sets the width in pixels of the vectors, while -flicker makes them
flicker to simulate the behaviour of a real monitor. [Andrew Caldwell]
- Improved handling of vector games. Battlezone and Major Havoc now do correct
clipping. [Aaron Giles, Bernd Wiebelt]
- 16 bit color support for games which need it (e.g. Rastan, Gauntlet, Black
Tiger, and many others). It is on by default, since it looks much better;
of course it's also slower, so you can turn it off and revert to the previous
8 bit downgraded palette using (in the DOS version) the -depth 8 command line
option. [Aaron Giles]
- Improved the blitter for the Williams games. Sinistar now works correctly.
[Aaron Giles, Brad Oliver]
- Merged the Qix and Zookeeper drivers, they now also support rotation.
[John Butler]
- Improved YM2203 and YM2151 emulator, and DAC interface, with 16 bit samples
support. (Use -sb 16 to turn on 16 bit samples). [Tatsuyuki Satoh]
- Improved ADPCM support, plus support for the OKIM6295 ADPCM chip. Several
drivers use these. [Aaron Giles]
- Fixed sound in Exed Exes; it has one 8910 and two 76496, not two 8910.
[Nicola Salmoria]
- Added back speech sample support to Q*Bert. [John Butler, Howie Cohen]
- A first attempt at sound in Donkey Kong 3 / Punch Out. These two Nintendo
games use the same sound hardware as the NES console. [Nicola Salmoria]
- Music tempo and pitch in Locomotion, Time Pilot, Pooyan, Tutankham and
Roc'n Rope should be accurate (I believe they all use the same sound board)
[Jim Hernandez]
- Fixed sound pitch and Mario jump in Donkey Kong. [Howie Cohen, Brad Oliver]
- Sound in Fire Trap and Silkworm (Sound Blaster needed) [Nicola Salmoria]
- Added support for missing samples to Donkey Kong Jr. [Howie Cohen]
- The first time you play Q*Bert, Q*Bert Qubes, Krull, Mad PLanets,
Three Stooges, the high scores are automatically initialized to the default.
Note: your old high scores will be lost, sorry. [Nicola Salmoria]
- The first time you play Track'n Field and Hyper Sports the high scores are
automatically initialized to the default. Your old high scores will NOT be
be lost here ;-) [Nicola Salmoria]
- Fixed scores over 100000 in Donkey Kong/Donkey Kong Jr. [Wiebo de Wit]
- Fixes to dip switches and input ports in several games. [Marco Cassili]
- Fixed disappearing guards and other wrong behaviours in Bagman which were
caused by copy protection. [Jarek Burczynsk]
- Fixed a bug in the 8086 emulator which caused unexpected deaths in Krull.
[Fabrice Frances]
- Bugfix: "Dial Joy Inc" can now be properly set (e.g. Tron). [Brad Oliver]
- In the DOS version, screen snapshots are saved as "gamename.pcx" (the first
one) and "nameNNNN.pcx" (the following ones), no longer the too generic
"snapNNNN.pcx". [Nicola Salmoria]
- added an NTSC video mode for use with a VGA2TV converter (this is definitely
not the TV output some newer graphic cards offer). It is untested, use at own
risk. More info: http://www.hut.fi/Misc/Electronics/circuits/vga2tv/
[Zerza]
- Fixed bug in the 6808 emulation of TSX and TXS. [Larry Bank]
- Cleaned up the I86 emulator, including 286 instructions (but with 8088
timing). [Fabrice Frances]
- Added support for HD63701YO extra opcodes to the M6808 emulation. [Ernesto
Corvi]
Source:
-------
VERY IMPORTANT NOTE FOR PORTERS: now the function osd_new_bitmap() must
allocate also a "safety area" 8 pixels wide all around the bitmap. This is
required because, for performance reasons, some graphic routines don't clip
at boundaries of the bitmap.
- The DOS version is now compiled with GCC 2.8.0, optimized for Pentium.
- Moved the speed throttling code to the OS dependant stuff. [Nicola Salmoria]
- There is some new graphics code, handling abstracted layers and optimized
refresh. It is used only by a few drivers, and is still work in progress -
don't use it in new code until further notice. [Phil Stroffolino,
Nicola Salmoria]
VERY IMPORTANT NOTE FOR PORTERS: now the function osd_new_bitmap() must
allocate also a "safety area" 8 pixels wide all around the bitmap. This is
required because, for performance reasons, some graphic routines don't clip
at boundaries of the bitmap.
==========================================================================
0.30
There have been some changes to the MAME licence, please check it in readme.txt.
- Colors in Super Basketball should now be correct for real (the opponent's
shirts weren't changing color in each level).
[Marco Cassili, Nicola Salmoria]
- A note about Zaxxon colors: we are aware that they are wrong. The reason is
that we are using the Super Zaxxon color PROM. As soon as we'll have the
correct Zaxxon color PROM, they will be fixed.
- Changed the way 8910 sound is updated: there's no longer a fixed "updates
per frame" value defined in the driver, instead the audio is stream is
generated whenever a chip register is written to (and at every vblank).
This improves sound quality in several games. [Nicola Salmoria]
- Same change to the POKEY interface. [Aaron Giles]
- YM2203 emulation not using the SoundBlaster OPL3 chip. This is more
accurate than the previous one, which used the SoundBlaster OPL chip,
however it is also slower. You can still revert to the old behaviour
using the -fm command line option. [Tatsuyuki Satoh]
- Completely rewritten the 8910 emulator and interface. This affects a lot
of games, but the one which benefits more is Gyruss: it now plays many
sound effects which were missing. [Tatsuyuki Satoh, Fabrice Frances,
Nicola Salmoria, Pete Ground]
- Full emulated sound in Gyruss. You can remove all the samples, they are no
longer needed. Also, music tempo should now be correct.
Due to the increased emulation overhead, it now runs slower than before.
To improve speed, you can use the new -sr option (see below) to lower the
sample rate. [Nicola Salmoria]
- Cleaned up the SN76496 emulation, now it is similar to the 8910 one and all
games use Tatsuyuki's code. This affects several games, most notably the
Mr. Do! series. [Tatsuyuki Satoh, Nicola Salmoria]
- 8039 emulator, and _emulated_ sound in Donkey Kong, Donkey Kong Jr. and
Mario Bros. Since the boards also use discrete circuits to generate sound,
some samples are still needed to get complete sound support.
Also partial sound in Radarscope.
[Ron Fries, Dan Boris, Mirko Buffoni]
- TI TMS5220 emulator. This handles speech in Star Wars and other games.
[Frank Palazzolo]
- Sound in Three Stooges. Actually the code had always been there, it just
had to be activated... [Fabrice Frances]
- Sound in Naughty Boy and Pop Flamer, using the Pleiads driver. Not very
good, but it's a start. [Brad Oliver]
- Partial emulated sound in Bubble Bobble (only the YM2203 chip, therefore
only some sound effects - no music) [Nicola Salmoria]
- Dirty rectangles support in Qix, all Williams games, Cloak & Dagger,
Berzerk, Arabian, Space Invaders & clones, Kangaroo, Space Panic,
Warp Warp. [Aaron Giles]
- Some tweaks to dip switches in the Super Cobra / Lost Tomb / Rescue
driver. [James R. Twine]
- Fixes to dip switches and input ports in several games. [Marco Cassili]
- Framerates in the Atari vector games should now be correct [Neil Bradley]
- In Cloak & Dagger, the background bitmap is now aligned properly with the
playfield graphics, and boxes no longer get stuck at the corners of the
conveyors [Dan Boris]
- Fixed Bosconian crashing: This was the speech processor being used for a
protection check. [Martin Scragg]
- Alternate controls in Defender and Stargate, to control the ship using the
standard 8-way directional controls instead of up/down/reverse/thrust.
Available only when the -cheat option is specified. [Maurizio Zanello]
- Better emulation of the custom I/O chip in the Namco games. [Aaron Giles]
- Support for true analog joystick input in games like Star Wars; moreover,
the whole range of joystick types supported by Allegro is now supported.
To handle that, use the new command line option -joy N, where N can be
0 - normal 2 button joystick
1 - CH Flightstick Pro
2 - Stick/Pad with 4 buttons
3 - Stick/Pad with 6 buttons
4 - dual joysticks
5 - Wingman Extreme (or Wingman Warrior without spinner)
Note that if you enable joystick support, games like Star Wars will work
ONLY with the joystick - mouse emulation will be disabled.
[Bernd Wiebelt]
- When the -vsync option is specified, the program checks whether the video
mode is compatible with it (i.e. whether the video refresh rate is a
multiple of the target frame rate), and fails otherwise. Some sensible
default values for -vgafreq are built-in and automatically picked when
-vsync is requested.
It is also possible to successfully use -vsync with scanline video modes.
Note that for VESA modes you might have to configure your card in order
to make it use the 60Hz refresh rate.
[Nicola Salmoria]
- Support for default configuration file. Start MAME with the -saveconfig
parameter, and the current configuration will be saved to mame.cfg,
becoming the default. You can still override the mame.cfg settings giving
parameters on the command line. [Valerio Verrando]
- The default directory for screen snapshots (F12) is now PCX instead of the
current directory, so make sure you create it or snapshots will not be
saved. [Valerio Verrando]
- New command line options, -sr N, where N is the required audio sample rate,
and -sb N, where N is the number of sample bits (8 or 16).
For example,
mame gyruss -sr 22050 -sb 16
will use a 22kHz sample rate and 16 bits.
The -sb option currently doesn't change anything because none of the audio
subsystems support 16 bit samples.
[Nicola Salmoria]
- You can keep the ROMs in a subdirectory called "ROMS", if you want to.
When loading ROMs for 'gamename', the program will look in these
directories in this order:
1) gamename
2) gamename.zip
3) ROMS\gamename
4) ROMS\gamename.zip
The same applies to samples, you can put them in a subdirectory called
SAMPLES - therefore separating them from the ROMs.
[Nicola Salmoria]
- Samples can also be loaded from a common directory for variations of the
same hardware. For example, all Space Invaders clones will load samples
from the invaders directory. [Valerio Verrando]
- New options, -record and -playback. They allow you to record, and later
playback, joystick input. Useful to document certain bug reports, or to
show your friends how good you are ;-)
Source:
-------
- Now using Allegro 3.0 - this fixed problems 0.29 had under NT with mouse
enabled.
- Some changes to the 68000 emulator memory interface, and a new 68000
disassembler. Improved the 68000 cpu interface. [Aaron Giles]
- Centralized dac.c for dac sound emulation. Several dirvers use it.
[Tatsuyuki Satoh]
==========================================================================
0.29
IMPORTANT: CONFIGURATION AND HIGH SCORE SAVE FILES HAVE BEEN MOVED. MAKE
SURE YOU MOVE THE OLD ONES TO THE NEW DIRECTORIES "CFG" AND "HI". This will
be done automatically by the provided batch file mov.bat, but PLEASE read
on for details.
NOTE: Bubble Bobble doesn't work in this release. We are aware of that. Use
Bobble Bobble or Super Bobble Bobble instead, they work much better than
Bubble Bobble ever did.
- accurate colors in
- Minor fix to Donkey Kong colors (black was dark blue). [Nicola Salmoria]
- Lives left are correctly displayed in Burger Time, sprites are turned off
appropriately, and the switch test in test mode works correctly.
The hardware of this game is more similar to Eggs than I thought.
[Nicola Salmoria]
- Improved the blitter for Sinistar, but there are still some problems. [Sean
Riddle, Pat Lawrence]
- All the Williams games. Samples are no longer needed and may be deleted.
[Steven Hugg, Mirko Buffoni, Nicola Salmoria]
- Q*Bert Qubes. You just have to use Q*Bert's sound ROMs, they are the
same. [Fabrice Frances]
- Digital audio in the Taito games (used for some sound effects, most
notably Tarzan's yell in Jungle King). Also, music plays in Jungle King.
[Nicola Salmoria]
- Starforce, Jump Bug, Bagman, Super Bagman, Time Pilot 84, Warp Warp.
[Juan Carlos Lorente]
- The attract mode of Galaga works correctly. Qix runs correctly and
without slowdowns. Test mode in Mr. Do's Castles & family works correctly,
(dip switches in Do's Castle still don't work).
All these changes are due to the interleaved CPU execution described
below. [Nicola Salmoria]
- New fix to avoid lockup in Tempest after 150,000 points - this one should
really work. [Keith Gerdes]
- The hardware of the Taito games (Elevator Action, Jungle King, Wild Western,
Front Line) is emulated more faithfully. Playfield priority is accurate in
Jungle King, however this broke Wild Western - strange.
Front Line works.
Merged all the drivers into taito.c [Nicola Salmoria]
- Tried to plug Triple Punch into the Scramble driver, but it doesn't work.
[Nicola Salmoria]
- Support for New Rally X; colors are accurate in New Rally X ONLY - still
wrong in Rally X until we find the color PROMs. Sound should finally be
correct, both in Rally X and New Rally X. [Nicola Salmoria]
- Video drawing optimization to Mappy, plus test mode now works both in Mappy
and Dig Dug 2. [Aaron Giles]
- In some games (e.g. Pacman, Galaxian, Rally X) the NumLock and CapsLock
leds emulate the 1 player/2 players start lamps. [Sean Gugler]
- Moved the Hunchback driver into dkong.c, since that's where it belongs (but
it still doesn't work due to encryption). [Nicola Salmoria]
- Added Gamma correction controls. Use Shift + Numeric pad +/- to change it.
There are some games which are too dark on the default setting, instead of
using the monitor settings use these controls to brighten the picture.
Gamma correction also affects colors, like the girders in Donkey Kong.
[Nicola Salmoria]
- Moved configuration and high score files to the CFG and HI subdirectories.
They are not stored in the games subdirectories.
I have provided a batch file (MOV.BAT) to automatically move your old
settings in the new directories. Just start it from inside the MAME
directory. It will spit out some error messages for missing files, don't
worry and let it finish its job. [Nicola Salmoria]
But even better, if you have ZipFolders or ZipMagic installed, MAME will
automatically look into the .zip or .zif directory.
ZipFolders and ZipMagic are trademarks of Mijenix Corporation. You can
download a trial version from www.mijenix.com. I am in no way associated
with Mijenix Corp. - I'm just a happy costumer.
Source:
-------
- We are now using the "WIP 2.8" version of Allegro to compile the DOS
version. You can get it from http://www.talula.demon.co.uk/allegro/.
- Two new OSD_KEY definitions: RCONTROL and ALTGR. CONTROL has been replaced
by LCONTROL.
- New memory handling functions, about 10%-30% faster than before. Moved the
memory code from cpuintrf.c to memory.c.
Banked ROMs can now be handled in a cleaner and faster way. Use the new
MRA_BANK1... types in the memory handler arrays, and cpu_setbank() to set
the current bank. The Z80 and M6809 emulators natively support bank
switching.
IMPORTANT: for 24 bit addressing (i.e. 68000) you cannot associate a memory
handler to a single byte. You must use four consecutive bytes, longword
aligned. This was done to speedup word (2 bytes) and dword (4 bytes)
operations.
[Tatsuyuki Satoh, Aaron Giles]
- Replaced file related functions (fopen(), fread() and so on) with osd_
equivalents. This avoids a good amount of hacking in the Mac port; plus
it allows some system specific extensions, like supporting
ZipMagic/ZipFolders under Windows 95. [Nicola Salmoria]
- Tweaked input port code. Added new fields for analog controls - clip,
min, and max. Also added 2 new analog joystick types - IPT_AD_STICK_X and
IPT_AD_STICK_Y.
The new fields are packed into the same int field (arg) as the
sensitivity and as such they can only be in the range of 0-255. The clip
field clips the trackball/dial/stick deltas, a common callback routine
task. Min and Max are so far only used in the AD_STICK types. They limit
the range of motion for those sticks - used in Star Wars and Red Baron.
[Brad Oliver]
Additional tweaking of analog inputs, allowing them to be updated more
than once per frame. This is needed by some games. [Bernd Wiebelt]
==========================================================================
0.28
Program:
--------
- Fabrice Frances added *emulated* sound to Q*Bert, Reactor, Krull and Mad
Planets. The samples are no longer needed and may be removed.
Q*Bert Qubes would work as well, if we had the sound ROM ;-(
Speech is not emulated... yet! Please do not complain because there is no
speech in Q*Bert. We are aware of that.
- John Butler provided a new 6809 emulator. It is faster than the previous
one, and fixes some bugs including the ship moving in the wrong direction
on the tower level of Star Wars and the bonus maze in Pac & Pal.
- John Butler also added optimizations to some Williams games, GnG and Qix.
He also fixed several problems in Qix.
- Bernd Wiebelt provided a driver for Omega Race and added a "director's cut"
mode to Battle Zone. DELETE BZONE\BZONE.CFG OTHERWISE THE GAME WILL NOT
WORK CORRECTLY.
- Christopher Kirmse, Aaron Giles and Brad Oliver provided a MCR I/II/III
driver, supporting:
Kick
Solar Fox
Tron
Two Tigers
Domino Man
Satan's Hollow
Wacko
Kozmik Kroozr
Journey
Tapper
Discs of Tron
Demolition Derby
Timber
Spy Hunter
Rampage
- Aaron Giles perfected the CTC emulation, needed by the MCR driver.
- Mike Balfour also added high score support to Elevator Action, Pisces, War
of the Bugs, Eggs, Exed Exes, Diamond Run, Jungle King, Wizard of Wor,
Robby Roto, Gorf, Space Zap, Seawolf II, Loco-Motion, Mysterious Stones,
Blue Print, Carnival, Snap Jack, Cosmic Avenger, Yie Ar Kung Fu, Scramble,
Battle of Atlantis and The End.
- Mike Balfour also pointed out that ROM 2H of Battle of Atlantis seems to
be bad; that's the cause of the strange coins per credit values.
- Many thanks to Luis Longeri (llongeri@cbb.cl) for helpful tips about Exed
Exes' background, which is now partially working.
- Steve Baines fixed color intensities in Star Wars - objects now fade out
properly. You might find it a bit too dark now, but this is done to
reproduce the differences in brightness that the original has.
- Frank Palazzolo fixed the "bad tranch vectors" and "fail to approach Death
Star" bugs in Star Wars.
- Marc Lafontaine provided a driver for Time Pilot 84. John Butler optimized
it.
- Jarek Burczynski adapted the M68000 emulator from the System 16 Arcade Emulator
by Thierry Lescot. The only known problem of this emulator is that it doesn't
count CPU cycles, only instructions.
The first driver to use the 68000 is Rastan, also provided by Jarek.
Sources:
--------
Program:
--------
- Crystal Castles now has accurate colors and load/save of high score and
settings (I mean the settings done in the service menu).
- Nibbler and Fantasy have sound, using the Vanguard driver. I don't know
how accurate it is.
- Thanks to Gary Walton and Simon Walls, Son Son now has accurate colors.
- Snap Jack and Cosmic Avenger are oriented correctly, and small sprites in
Cosmic Avenger (bullets, bombs etc.) and Snap Jack (wheels) are properly
supported.
- Some of the games now support Cocktail mode (only the graphics, not the
controls yet)
- New command line option: "-cheat". Cheats like the speedup in Pac Man or
the level skip in many other games are disabled by default. Use this switch
to turn them on.
- The speedup cheat in Pac Man can now be permanently set to ON from the dip
switch settings menu.
- Colors in Donkey Kong are now 100% accurate. Several people complained that
girders should be pink instead of red, but to the best of my knowledge the
current colors are an accurate conversion of the color PROMs, and this has
been confirmed by some people. There might be two different versions of
Donkey Kong, with slightly different colors. If someone has a "pink" board
and wants to read the PROMs from there, I'll be happy to include them.
- Dip switches now work in Xevious. Also fixed a bug in the targeting cursor
colors (black corners while firing). Super Xevious works.
Explosions are emulated with samples, thanks to Andrew Scott.
Sources:
--------
==========================================================================
0.27
REMEMBER: IF A GAME DOESN'T WORK, TRY DELETING THE .CFG FILE IN ITS DIRECTORY
There has been much talk about the License under which MAME is released. We
had to drop the GPL because it was not applicable. See readme.txt for the new
rules.
Program:
--------
- Support for a GnG version with different graphics (cross instead of shield)
- Thanks to Virtu-Al and Peter Clare, Carnival now has 100% accurate colors.
- Al Kossow and Brad Oliver provided drivers for the Sega vector games
(Eliminator, Space Fury, Star Trek, Tac-Scan, Zektor).
Partial sound support (speech) is available through samples for some of
them.
- Jarek Burczynsky provided better colors for Bagman and also added support
for Super Bagman.
- Mike Coates improved again the Gorf driver. It's now (sort of) playable.
- Lee Taylor and John Clegg provided preliminary 10 Yard Fight support.
- Aaron Giles did a major rewrite of his Super Pac man and Mappy drivers:
- support for Dig Dug 2 and Pac & Pal
- High score save in all games
- 100% colors and sound samples (in Super Pac man the siren clicks a bit,
but neither I nor jrok can figure it out; the sample data *is* correct)
- better sound playback frequency (was missing some high bits!)
- arcade accurate frequency calculation (thanks to jrok!)
- removed all palette hacks; everything is clean
- added loop optimizations for speed
- video now properly displayed, including high priority characters
- John Butler and Aaron Giles fixed sound and trackball support in Millipede.
- Steve Baines, with the help of Frank Palazzolo and Brad Oliver, implemented
Star Wars. It's playable, but far from perfect. There's even some
preliminary sound support (slows the game down a lot).
- Lot of work on the Atari Vector games (Brad Oliver & Bernd Wiebelt)
- Quite a few bugs hunted down.
- Thanks to Aaron Giles, the Atari vector games do correct scaling
now and we can do cycle counting on the vector CPU.
Aaron also fixed the scaling in the Sega vektor games.
- Tempest does no longer crash after level 13, has better colors
(colorram emulation) and is overall a bit faster.
- Highscore saving for all games except Black Widow and Starwars
- Trackball support for Tempest and Red Baron.
Red Baron tries to calibrate its analog joystick at the start, so you'll
have to move the "joystick" a bit before you can fly in all four
directions. Thanks to baloo@kaiwan.com for his suggestions.
- Mauro Minenna made Battlezone playable with one joystick.
- Changes to game resolutions. On MSDOS, they now use tweaked VGA modes.
REMEMBER TO DELETE EVERY *.CFG AND .HI FILE FOR VECTOR GAMES, OTHERWISE
THE GAMES MIGHT NOT WORK CORRECTLY.
- Mike Coates added partial sound support (thru samples) to the Carnival driver.
- Mike Coates tidied up the wow drivers, added definable keys to most games,
and joystick & 2 player support to Seawolf II.
- Jarek Burczynski changed showcharset() in usrintrf.c. Now you can use PGUP
and PGDN to scroll through a charset which doesn't fit in the screen.
Sources:
--------
- Brad Oliver wrote the new sndhrdw/pokyintf.c file. It handles most of the
pokey interface to pokey.c. Rather than call milliped_sh_start() or
whatever, call pokeyx_sh_start(), where x is the number of pokeys. It will
keep track of the pokey count and use the appropriate clipping. I'm not
sure 3 pokeys is a possible combination so there is no such
pokey3_sh_start() routine.
- Added generic EAROM routinges for the Atari Vector games, they
are in src/machine/atari.c and src/machine/atari.h
Program:
--------
- You can now turn off speed throttling (F10) even on games which use audio
streaming (i.e. all the ones with 8910 or Pokey sound chips)
- Loco-Motion support
- Fixes to the audio code which should fix crashes on some games and
compatibility problems with GUS and AWE 32. However let me stress once
again that if you have an AWE 32 you should use the plain SoundBlaster
driver. The AWE 32 driver sounds NOTHING like the original (and is slower).
- Pressing ESC in all menus returns to pthe previous menu instead of quitting.
- Changed the 8910 sound chip emulation interface to allow updates more
frequent than 60 per second. I also increased the sampling frequency to
44.1kHz.
These changes provide dramatic improvements in sound quality, which you can
appreciate in e.g. Gyruss and Pooyan.
The price to pay is slower execution. To make things worse, I had to
(hopefully temporarily) remove some optimizations, so the above games will
probably not run as well as before on slower systems.
- Thanks to Gary Walton, speed in Pengo should now be closer to the original.
- Elevator Action, Jungle King and Wild Western now use the same video hardware
driver (taito.c)
- ROMs are checksummed before starting the emulation. If the checksum doesn't
match, a warning message is printed on the screen (along with the expected
checksums). Execution resumes after pressing Return.
Not all drivers use this feature yet, but most of them do.
- Some ROM renaming here and there, just to annoy you ;-)
Sources:
--------
- EXTREMELY IMPORTANT:
osd_obtain_pen() now doesn't return pens sequentially. This ensures that
MSDOS driver writers are aware of the existence of Machine->pens[] and
use it appropriately. Drivers which don't do this will have wrong colors.
- modified readinputport() to scan the keyboard only once per frame, and
handle everything more efficiently. It is now MUCH faster than before -
useful with games which continuously poll a port for VBlank.
- generic_vh_start() now checks that videoram_size has been initialized and
fails otherwise.
- The ROM_LOAD() macro now requires four parameters, the last one being the
checksum. To quickly upgrade from previous sources you can be used
(temporarily) ROM_OBSOLETELOAD(), however adding the checksum is easy (just
do a cut & paste from the warning message) so it's better to put them in
as soon as possible.
- Drivers are now allowed to modify the RAM and ROM pointers to implement
bank switching. Bubble Bobble uses this.
Be careful: when using this feature, you cannot use the standard MRA_RAM
and MWA_RAM memory hooks to access RAM.
- InputPorts now can automatically handle VBlank bits. No more need to write
custom code. Lady Bug, Carnival, Mysterious Stones, Naughty Boy and Phoenix
use this feature. Many other drivers need to be updated to use it.
MAKE SURE TO DELETE LADYBUG\LADYBUG.DSW AND LADYBUG\LADYBUG.CFG, OTHERWISE
THE GAME WILL NOT WORK CORRECTLY.
==========================================================================
0.26a
- This is a bug fix version. I did a mess with the famous heavy modifications
I mentioned before. Well, I was the first to try the feeling of working on
wrong sources ;) Funny!! BTW, now everything is back to normality, Pacman,
Galaxians, Centipede, and others. I have learned a thing: never work until
4.30am in the morning :>
- Thanks to Gary Walton, Nicola added 100% correct colors in Mr Do's Castle
Fixed also a bug in Ghosts 'n Goblins hiscore saving. Now GnG does the
self test too.
- Some credits that were left out in this file only, last time: Thanks to
Al Kossow, Hedley Rainnie and Eric Smith for the code to their vecsim
emulator which had emulated these games previously on the unix and the mac,
and thanks to Neil Bradley for pointing out the critical bug in the vector
generator engine which prevented Tempest from working.
- Super Pac Man and Mappy have correct pitch now (thanks Aaron and Satoh).
Also, SuperPac has speed cheat control again.
- Frogger doesn't have garbled chars anymore, and Galaga has correct stars
speed now.
- Added support for KickRaider. It's a rom swap, same hardware of Mr. Do
Wild Ride.
- Changed Dig Dug Atari rom dir into "digdugat", indicating the correct
roms archive name.
==========================================================================
0.26
- After so much time of hard work the policy of "back to quality" is starting
to bring back the efforts. I'm proud to announce I'v beated Mr Do's Castle.
Done one, done all. So now we have also Mr Do! RunRun and Mr Do! Wild Ride.
Thanks to the invaluable help of Nicola, they are also arcade colors perfect,
very fast (!) and each game has audio support and hiscore saving! :D
- And three... Aaron added support for Dig Dug!! Hey man, you'r at a step
to become a God of Arcade emulation ;)
- Mike Coates has joined to the "back to quality" team. He added support for
SeaWolf ][, and improved Space Zap and Gorf (which is still unplayable).
Also Robby Roto is now fully playable (you'll need a bug free rom set).
- Enrique Sanchez provided me documentation for Yie Air Kung Fu. Also,
Philip Stroffolino (phil@maya.com) sent me a more complete driver than
mine for this game which is now playable.
- Eric Anschuetz fixed a bug in joystick redefinition menu. Also added the
selection support for Any Button ("A" key), and None ("N" key).
- Andrew Scott provided a better sound support for Phoenix. Melody is still
missing, because Shaun's board doesn't have it.
- Nicola fixed Jump Bug driver which is now perfect. Colors are still wrong
without proms.
- Valerio Verrando provided a new tweaked mode 256x232 for Crystal Castles.
He also provided a new tweaked video mode to get vsynced 60Hz (perfect
speed) with 256x256 games. It has horizontal clock recover (thus video is
less mashed vertically, without having to modify monitor settings, and it
doesn't be confused with 224x288 by monitors that remember settings. Really
nice on scrolling games: try it with "-noscanlines -vsync -vgafreq 1"
- Fixed Commando dip switch bonus settings. Also fixed a setting in Ant
Eater dipswitch.
- Fixed a bug that locked your PC if BLASTER variable was not found (thanks
to James Oliver for the suggestion).
- Tatsuyuki Satoh fixed sound tempo speed in Elevator Action (tempo speed
is 37.5Khz).
- Added support for two versions of Pengo (one with the music of Popcorn
and a clone).
Sources:
--------
- Me, Nicola, Bernd and Patrick have heavily changed the main core set of
sources. Improvements to speed, memory access, drivers structure were
done. We strongly suggest to developers to start their code on a clean
0.26 version.
- Opcode decode and graphic decode are now done by a single function in
one step.
- Mauro Minenna introduced a new option (-dir4) that simplify the use of
the joysticks to be connected on the keyboard. This modify resolves the
problem of diagonal direction in games such as PacMan, Popeye, and Kung Fu
Master.
==========================================================================
0.25
Program:
--------
- I've decrypted the garbled graphics of AntEater and Rescue which are now
fully playable. And Fabio Buffoni improved the decode routines with
thrilling code. Colors are wrong, unless someone provides me a good
set of screenshots to study. Hunchback doesn't work yet.
- Sal and John Bugliarisi provided us technical information about the game
Naughty Boy. (Remember that code area is 64k long and not 32k).
We have implemented a driver and for this game which is now supported.
- I took the time to add some high score saving. So, now Junior Pacman,
Naughty Boy, Tutankham, Kangaroo, have high score saving support.
(So Dave will stop bothering me about that ;) heheh!!! Joking ;)
- Chris Hardy added support for Space Firebird. Thanks to Chris and to
all Sage Staff.
- Nicola did some fixes to Taito Games (Jungle King and Elevator Action)
about background placement and coins per credit dipswitch. Plus vertical
scroll support in Jungle King (used in ground shake), correct sprite
priority, and no more rubbish is present during change of stage.
Finally, he also added preliminar support for WildWestern and FrontLine,
which are not yet playable.
DELETE ELEVATOB\ELEVATOB.DSW, JUNGLEK\JUNGLEK.DSW, JHUNT\JHUNT.DSW,
OTHERWISE THE GAME WILL NOT WORK CORRECTLY.
- Refixed the galaga hiscore bug (it happened when syncing my sources with
Nicola's ones)
- Robert Anschuetz provided me info about how to enable a shot sample with
moonquasar, mooncresta, galaxian and clones.
New:
'-ror'
'-rol' Rotate the display (anti)clockwise. Since this uses
the standard VESA scanline mode, you'll get *vertical*
scanlines on rotated games (authentic?).
'-nodouble'
prevents pixel doubling, if you like miniaturised
arcade emulation. It's also faster than the standard
pixel-doubling VESA modes.
'-skiplines N'
does what '-vesaskip N' used to do, except it does not
select 640x480 VESA mode.
- Pause key back to 'P'. Sorry, you cannot use it for your redefinitions,
but, hey, you have 101 keys left!!! ;)
- Added Crazy Kong bootleg version by Jeutel and Ms Pac Man Attacks clones
Sources:
--------
- Added an alternate 224x288 video mode (on my Matrox this produce correct
aspect ratio with this tweaked mode). To select it simply add -224 or
-224x288 parameter.
- Time to use proper MAME fonts. I draw a good looking complete set of
chars to be used for messages and menu system in MAME. Nicola changed
the entire set of drivers and implemented a user interface sublevel
(file is USRINTRF.C).
- I'v changed the system configuration of each game. Now a game saves all
vital informations (DSW, KEY, and JOY settings) in a unique file with
.CFG extension. A backward compatibility is provided, so the first time
MAME read previous settings and saves them in the .CFG file at exit/reset.
==========================================================================
0.24
Program:
--------
- I've found the decryption scheme for garbled chars of Lost Tomb which is
now playable. Colors are still wrong.
- Also, I've finally fixed my problems with ADPCM decoding, so now Kung Fu
Master doesn't need separate samples anymore (I didn't distribuite them
because of copyright on sounds). The samples are now calculated during
bootstrap of the game.
- Fabrice Frences added support for Qbert Qubes. Only hitch with the
driver: you have to reset (F3) the game at first time when the empty
supreme noser table appears, then the table will be correctly filled.
Alternatively, you can insert a coin before this empty table appears...
Hiscore save not supported yet.
- New option in the setup menu: "CREDITS". It displays a list of the people
who contributed to the current driver. I have surely left out many people,
and apologize in advance for that. If you contributed to a driver and your
name doesn't appear in the list, please let me know.
- Since many people asked for this and Bernd Wiebelt was so kind to do me
this gift for my birthday, MAME has now -rotate option. You'll have to
turn your monitor (or your head (!) ;)
- Nicola fixed definetively Kung Fu Master driver which has now 100% perfect
colors and sprite positioning. Thanks to Paul Swan for color scheme.
Original version (copyright Irem) is now supposed to be in 'kungfum'
directory, while the bootleg (O.K.) is supposed to be in 'kungfub'. Test
mode doesn't work for bootleg version (as is right to be).
Hi Score Support in each version as well.
- In Seicross now shots are enabled. REMEMBER TO DELETE PREVIOUS .DSW FILE,
AND SET "DEMO & DEBUG MODE" TO OFF, AND "SW7B" to 1. Setting SW7B to 0
will cause to play the game without FIRE facility.
Sources:
--------
- Bernd Wiebelt provided new Vesamodes: 320x240 and 512x384. You can select
a mode either by -X (e.g. -640) or -XxY (e.g. -640x480). Also fixed a bug
that caused -vesaskip 0 not to run properly. Also added -rotate option.
Also, any vesa mode in combination with -noscanlines option can be used
to achieve correct aspect ratio on most monitors. This method is of
course slower, and can work flawlessy on P166+ class.
- Fabrice Frances submitted a new faster I86 emulator. The entire I86
directory is changed, and most of Gottlieb games are now faster.
- Changed the PAUSE key to Scrl-Lock key. This permits to redefinite the
P key for playing.
==========================================================================
0.23
Program:
--------
- I've also fixed GALAGA hiscore saving, which is now flawlessy supported! ;)
- I've added Kung Fu Master driver to MAME. Credits fly to Ishmair for the
hardware information and to Nicola for fixing my sprite bugs.
- John Butler and Ed. Muller provided a driver for QIX! High Score saving
supported too.
- While talking of colors, Ghosts 'n Goblins has 100% correct colors too!
Thanks to Gabrio Secco that provided us the complete colors LOG file ;)
- I've fixed Seicross which is now playable and has music too. REMEMBER TO
DELETE PREVIOUS .DSW FILE, AND SET "DEMO & DEBUG MODE" TO OFF.
- Also fixed Nibbler colors: I should say 100% correct colors, but I
remember the Nibbler hairs were Green versus Purple. Maybe I played a
bootleg version.
- Added Phoenix TPN clone ("phoenix3"). I've also added hiscore support to
all Phoenix and Pleiads as well.
Sources:
--------
- Dip Switches and Key Settings are now selectable thru a menu system.
F8 key is no longer supported.
==========================================================================
0.22
Program:
--------
- Another one added: based on GnG hardware I've added Diamond Run support.
Don't know if the banks mode switch is right, it's too slow for me
to go further the first level!
- Added Vulgus support. Colors are wrong unless I find the color proms.
High score save supported. I played around with Dip Switches: they are
almost right, though, but there should be also a sound toggle while in
attract mode.
- Paul Berberich fixed some colors of Congo Bongo. They are not right but
a lot better of the previous. Screenshots could be useful.
- I have fixed colors in Centipede. Thanks to Ivan Mackintosh for sending
me the info.
- Nicola added cars in radar update of RallyX and improved color palette
emulation in Bombjack which has now perfect colors.
- Added Phoenix Amstar (clone) support, Pac Man Plus (clone) and fixed
all Invader's clones bugs. Also fixed charset of all Invader's clones.
Sources:
--------
==========================================================================
0.21.5
- Fixed a bug in keys redefinition routine: ALT, SHIFT, and CONTROL are
now selectable.
Sources:
--------
0.21
Program:
--------
- I'd like to say I've finished, but Nicola is too fast as always! ;)
So thanks to Nicola we have GALAGA!! And very special thanks to Martin
Scragg that provided us crucial information on custom I/O chips.
- Mad Planets doesn't crash anymore with the new samples (shorter!)
Sources:
--------
- Nicola introduced changes to the Z80 emulator code that intercept some
sorts of tight loop used during an interrupt waitstate. Normal games
should not be affected, while Galaga and 1942 are now very fast!!
==========================================================================
0.20
Program:
--------
- Brad Oliver found a lot of bugs around the code. Fixed 1942 background
scroll, Arabian video driver, and Phoenix sound init routine (all those
caused trashes on MAC).
- Paul Berberich fixed some colors of Donkey Kong that is now quite close
to original arcade. Also Donkey Kong Jr. has better colors now.
- Fabrice Frences provided a driver for Krull. Also fixed some bugs in
qbert, and returned audio to Mad Planets.
- Ron Fries created a new set of Donkey Kong samples, using Mike Cuddy's
8039 emulator. The new samples no longer have static, they are aliased
and louder. All names are now generic, so the same name can be used
across Nintendo line (DK, DKjr, DK3, Mario).
- Frogger music tempo bring back to original value. Fast but flawless!
Sources:
--------
- Changed 8910intf to support 5 PSGs (Gyruss have them!)
- Changes in MSDOS.C: vesa and vesascan are now mutex. Also fixed a bug
caused by calling joystick initialize before starting allegro.
- new flag for the cpu type: CPU_AUDIO_CPU. For example, you'll define a CPU
type as CPU_Z80 | CPU_AUDIO_CPU. This indicates that the CPU is a slave
used for audio only, and is therefore not needed if sound is disabled.
The CPU will not be emulated when sound is turned off, therefore speeding
up the emulation a lot.
==========================================================================
0.19
Program:
--------
- Thanks to Marc LaFontaine we have now support for Popeye. It's not yet
playable (when the game starts the machine resets) but it has music already.
It's also very slow, since it uses a 512x480 screen. I'm looking for
decryption scheme for original Popeye board using Lionel's idea [pain!].
- Fabrice Frences fixed the Qbert driver and added support for Reactor.
- Mike Coates fixed the Space Panic background colors. Also added hiscore
support.
- Nicola Salmoria found how Elevator Action background works. Also updated
all drivers that have a scrolling background. Support for the bootleg
version of Elevator Action ("elevatob"). The original version doesn't
work because of copy protection. The graphics are almost OK now,
albeit quite slow.
- Added preliminar unplayable WarpWarp. Graphic is ok, but the game hangs
during diagnostic.
Source:
-------
==========================================================================
0.18
IMPORTANT NOTE: This will be the last version of MAME released by me (Nicola
Salmoria). From now on, the project will be maintained by Mirko Buffoni
(mix@lim.dsi.unimi.it). Contact him if you have material to submit for
inclusion into MAME. Please don't send such material to me.
Program:
--------
- Green Beret:
- The speed should now be VERY accurate. It also syncs correctly with the
music.
- Sound pitch should be correct as well (though it changes after you die
for the first time...)
- High score support.
- Fixed sprite clipping problem on the left of the screen.
- Fixed memory trashing bug in dirtybuffer handling
- I finally added some lousy, very inaccurate, noise to the 76496 emulator.
This affects Lady Bug and Green Beret.
- I also added the same lousy noise to Galaxian, Pisces, Moon Cresta, Moon
Quasar.
- Fixed bug in the 8910 emulation which caused noise to be played in Crazy
Kong when you jumped over a barrel.
- Zaxxon and Congo Bongo now save their high scores for real. The code had
disappeared from the drivers... I _did_ write it, since I had .hi files in
my directories ;-)
- Bomb Jack is much faster on a 486. Now runs very well with -frameskip 1 on
my 486/100.
- Sprite placement in Pac Man, Ms Pac Man and Crush Roller should now be
arcade perfect. Thanks to Richard Davies who verified it on a real machine.
- Preliminary support for Jungle King / Jungle Hunt. Slow but playable. I
haven't the gfx bank selector, therefore you'll have to pick the correct
background graphics yourself. Use keys C and V to change it.
- Preliminary support for Seicross, using the Crazy Kong driver. Not playable.
- Marc Lafontaine fixed some problems in the Venture driver, and provided
drivers for Mouse Trap and Pepper II, which run on similar hardware (Pepper
II is not complete yet).
Note that the required Venture ROM set has changed - the other one was
missing one ROM.
Collision detection doesn't work - in Mouse Trap, you can use keys 7 and 8
to simulate a sprite-to-character and a sprite-to-sprite collision.
- Added support for the original, Universal version of Mr. Do!. I renamed the
other, which has an additional Taito copyright notice, "mrdot".
- Fixed bugs in Jump Bug and Bagman sound drivers which caused page faults
when run under DOS.
Source:
-------
- Samples are now loadaed by the main engine, not the single drivers. This is
done via the new field samplenames in the GameDriver structure. Samples can
then be retrieved by the drivers in Machine->samples.
==========================================================================
0.17
Program:
--------
==========================================================================
0.16
Program:
--------
- Richard Davies and Brad Oliver provided drivers for the so-called "Sega"
version of Jump Bug (it's actually a bootleg with the protection checks
removed). The driver supports sound.
- Support for Fantasy on the Nibbler driver. There are several problems, it's
not playable.
- Thanks to Mike Coates and Peter Clare, Carnival now has colors.
Source:
-------
- I wrote some general purpose routines to simplify interface with the AY8910.
They are in 8910intf.c. See the existing drivers for usage examples.
- To solve the problem with garbled text messages in Time Pilot, modified the
GameDriver structure replacing letters_start and numbers_start with the
array charset[36].
- I finally took the time to change Z80.h/M6502.h to make them work together.
This allowed me to remove some kludges in cpuintrf.c. I also added some new
functions, which can be used regardless of the CPU type: cpu_getpc(),
cpu_geticount(), cpu_seticount().
- Fixed a couple of bugs in M6502 BCD arithmetic. One of them was causing the
pepper counter in Burger Time to behave strangely.
- Brad Oliver modified pokey.c and pokey.h to make them more portable.
==========================================================================
0.15
Program:
--------
I have no idea how accurate the tempo and pitch is. If you can compare it
with a real machine, please let me know what's wrong.
- Brad Oliver deserves a prize for being the person who, alone, has
discovered more bugs than everyone else put together. This time the bug
was illegal memory acesses in games using 224x288 and 288x224 modes (Pengo,
Pac Man, Rally X).
- Thanks to the invaluable help of Steve Scavone, I've been able to fix
many bugs in the Wizard of Wor driver.
- High score support in Pac Man, Ms. Pac Man, Crush Roller, Burger Time,
Zaxxon, Congo Bongo, Pooyan, Moon Cresta, Moon Quasar.
- Miscellaneous graphics fixes to Zaxxon and Congo Bongo. Also better colors
(especially in Congo Bongo), thanks to Marc Lafontaine.
- Fixed most of the graphics problems with Moon Patrol. The video driver is
a gigantic kludge right now, but it works and at a reasonable speed
(though I can't reach 60fps on my 486/100).
- Many people requested a way to syncronize with the video beam, to avoid
jerkiness. Here it is: -vsync. It should be used together with -noscanlines,
and possible -vgafreq to adjust the frame rate to be as close as possible
to 60fps (use F11 to check the actual frame rate). Note that this, unlike
the default timer based sync, will NOT downgrade nicely if your system is
not fast enough.
- Bernd Wiebelt provided new code for -vesascan, and implemented the new
"-vesaskip n" mode. It uses a 640x480 screen instead of the 800x600 used
by -vesascan, and allows you to scroll the visible area using the PGUP and
PGDOWN keys.
- Maintaining the endless list of ROM subdirectories was getting quite boring,
so I modified readroms() to make it automatically print the complete list of
required ROMs if one is missing. I think I should add a CRC check as well.
I also added a brief explanation of what ROMs are and why they are required -
hoping this will cut down the flow of e-mail asking "gee, I run your program
and it says 'unable to open file xxxx/xxxx', what should I do?"
==========================================================================
0.14
Program:
--------
- Fixed bug in Mario Bros. high score loading: it was recovering the high
score table, but the high score at the top of the screen was not set
accordingly.
- Mario Bros. and Donkey Kong 3 now also preserve the score distributions
(use F1 to see them)
- Fixed bug which sometimes caused 6502 games not to run (actually they did
run, but interrupts didn't happen).
- Ron Fries provided a new version of his Pokey emulator which fixes problems
in the interface with the SEAL audio library (signed vs. unsigned samples).
- Ron Fries also added preliminary sound support to Donkey Kong! It uses some
very bad samples for now. The samples are distributed in a separate archive
- put them in the dkong subdirectory.
- Richard Davies updated the audio routines in Phoenix, sound is now closer
to the original and noise is emulated.
- Brad Oliver and Mirko Buffoni provided a driver for Vanguard, based on Brian
Levine's Vanguard emulator.
Source:
-------
- driver.c was getting much too large and confused. I moved the GameDriver
structures inside the single driver/xxxx.c files. This has the additional
benefit that people sending me drivers will not forget to include the ROM
loading addresses ;-)
- I also changed the GameDriver structure, moving there fields from the
MachineDrivers structure. The idea is that MachineDriver should describe
the hardware, while GameDriver the software. Therefore things like colors
(which are usually stored in a PROM) and dip switch settings go into
GameDriver; decode_color_prom, on the other hand, goes into MachineDriver
because it is an hardware function.
It could be argued that input_ports belong to the hardware; but sometimes
we have keys tied to dip switches (test switches and so on) whose function
is determined by the software. Moreover input_ports contains the default
values for all ports, including dip switches, and those are definitely
software related.
==========================================================================
0.13
Program:
--------
- Added the most frequently asked feature: high score saving. Check the
table at the beginning of readme.txt to see which games already support
it.
High scores are also reset-proof: you can reset the game by pressing F3
without losing them. To reset the high scores to their default, just
delete xxx\xxx.hi where xxx is the game name.
Note that hi score saving will NOT work if the default hi scores have been
modified in the ROMs. Use the original ROMs.
- Fixed all of the problems in Burger Time related to ROM encryption. Slices
fall more than one level when an enemy is on them, no more crashes when a
bonus life is earned, the high screen table works, two players mode works,
and other things.
- Support for an alternate ROM set for Burger Time, which is likely an
earlier version.
- As promised, I modified the 8910 emulator to set the clock frequency at run
time, so sound in Crazy Climber and Crazy Kong is now back as normal.
Source:
-------
==========================================================================
0.12
Program:
--------
- Sound support in Burger Time. This is the first multiple CPU game supported
by MAME (two 6502, one for code, one for sound).
It's not perfect, but we're getting there.
Also, as you can guess, this is slow. A 486/100 cannot handle it at 60 fps.
Runs reasonably with -frameskip 1, though.
- I also set up the second CPU to emulate sound in Scramble, but the sound
that comes out is completely wrong. I don't know what I'm missing, anyone
can help?
- Since the 8910 emulator doesn't allow to set the clock frequency at runtime,
I temporarily switched to using the default one. This affects sound in Crazy
Climber, Crazy Kong and Bagman. Let me know whether it's better or worse
than before.
- Fixed speed in Burger Time (was running at about half the real speed).
- I finally found out what was causing slowdowns in Rally X and Bagman. It was
an interrupt related issue (see later). I hope I didn't break a dozen of
other games to fix this ;-)
- Thanks to Mike Cuddy and Mirko Buffoni, Pooyan colors are now MUCH better ;-)
I also fixed a bug in the dip switches.
MAKE SURE TO DELETE POOYAN\POOYAN.DSW, OTHERWISE IT WILL NOT WORK CORRECTLY.
- I suddenly realized that Time Pilot runs on the same hardware as Pooyan, so
I made a driver for it. Colors come straight from Mike Cuddy's emulator.
- Gary Walton confirms that the colors in Moon Cresta and Moon Quasar are 100%
accurate. Very good!
- The background stars in Scramble / Super Cobra now blink. However I don't
know how close to the real thing it is.
- Ville Laitinen pointed out that The End runs on Scramble hardware, so it now
uses the same driver. He also fixed problems with the input controls and two
players modes.
IMPORTANT: MAKE SURE TO DELETE THE FILES SCRAMBLE\SCRAMBLE.DSW AND
THEEND\THEEND.DSW, OTHERWISE THE GAMES WILL NOT WORK CORRECTLY.
- Added support for Lost Tomb (Stern game running on Super Cobra hardware),
but it doesn't work well (crashes during the demo, and it's not playable) and
the graphics are garbled. I think some of the ROMs might be corrupted.
- Preliminary support for Jump Bug. It uses a modified Scramble driver, the
hardware seems to be similar. It's not playable (the input bits are not even
mapped), and resets after a few seconds.
I'm not particularly interested in this game, anyone volunteers to complete
the driver?
- Ivan Mackintosh provided a Millipede driver (dip switches are not supported
yet). Sound doesn't work, I don't know why.
- Brad Oliver provided a preliminary version of the Mr. Do's Castle driver. Not
working yet!
- Mike Coates pointed out that Carnival uses a RAM for character generation
(like Nibbler) and provided a driver for it. It's still not playable, but
the graphics are now correct.
Source:
-------
- Multiple CPU support. All you have to do to setup multiple CPUs is add
entries to the cpu[] array in the MachineDriver definition. Each CPU can
have different type (currently Z80 and M6502 are supported), clock, address
space, memory/IO port hook, interrupt handlers, number of interrupts per
video frame.
- Sometimes interrupt requests happen while interrupts are disabled. Until now
I just ignored them, but some games need them to be processed as soon as
interrupts are reenabled. Rally X is an example of such a game. The Z80
engine has provision to do that, but it would make writing a driver more
complex (need to find the interrupt acknowledge register) so I slightly
modified the engine to automatically cache an interrupt request and execute
it as soon as interrupts are enabled. I had already done a similar change to
the 6502 engine, it was needed by Burger Time which wouldn't accept coins
otherwise.
==========================================================================
0.11
Program:
--------
- Lionel Theunissen dumped the color PROM of his Uniwars board and... it's
different from the one provided by Gary Walton. Galaxian boards were widely
pirated so it's difficult to determine which one is the "correct" palette.
What I did was set the Uniwars driver to use one palette, and the "Japanese
Irem" to use the other. Play the one you prefer.
Source:
- increased the maximum size of the graphic elements that can be handled by
decodegfx() from 32x32 to 64x64. Actually I would have needed 256x64 to do
Moon Patrol backgrounds, but that seemed slightly overkill ;-)
==========================================================================
0.10
Program:
--------
- Centipede support. This is the first 6502 game supported by MAME. I'm
currently using Marat Fayzullin's engine.
- Nibbler support. This is the second 6502 game supported by MAME ;-)
Interesting hardware: no sprites, two playfields, and it uses RAM for
character generation (redefining the characters to animate the worm).
- I had also broken Pleiades, fixed. That's the drawback of emulating more
than 60 games, I can't check them all before releasing a new version ;-)
- Ville Laitinen provided a Congo Bongo driver! The colors are terrible ;-),
but it's playable.
- Thanks to Valerio Verrando, now -noscanlines works on Pac Man and the other
games using a 224x288 screen. If you have problems with the default video
mode try this one, it will hopefully solve them.
- I received no less than three different palettes for Donkey Kong Jr., from
Brad Oliver, Marc Vergoossen and Richard Davies. The one included is from
Marc.
- Thanks to Gary Walton and Simon Walls, we now have 100% accurate colors in
Crush Roller and Uniwars/Japirem. Moon Cresta and Moon Quasar might be
correct as well, but I'm not sure.
- Fixed a small graphics glitch in the background of Bomb Jack's third level.
Thanks to Philip Chapman for the report.
Source:
-------
- Support for 6502 CPU. From a driver writer point of view, it is used just
like the Z80, the only difference being that you have to specify CPU_M6502
instead of CPU_Z80 in the MachineDriver definition.
Multiple CPUs are still NOT supported.
==========================================================================
0.91
Program:
--------
- OK, even this time I managed to screw up one game (Phoenix). It works again.
I'm not updating the source, you can fix it yourself if you need to: the line
ROM_LOAD("phoenix.49", 0x2000, 0x0800)
in driver.c was missing the '2'.
==========================================================================
0.9
Program:
--------
- Background graphics in Zaxxon now work, albeit a bit slow (45-50 fps on my
486/100)
- Support for the original version of Super Cobra. Note that I renamed the
other one (which is a bootleg) "scobrab".
- Support for the original Moon Cresta (Nichibutsu copyright). These ROMs are
encrypted, and slightly different from the other version. This is very
likely the version Chuck Cochems remembers (with aliens teleporting right in
front of your ship). I renamed the other version (which looks like a mix of
the code from a bootleg version and the graphics from the Gremlin original
version) "mooncrsb".
- Space Invaders now seems to work correctly. Deluxe version still doesn't
work properly.
- F12 to take a snapshot of the gfx set (displayed using F4) now works.
- Thanks to Gary Walton, Moon Quasar dip switches now are correctly described
in the dip switch menu.
- F11 is now a toggle, also added F10 to turn off speed throttling (toggle as
well)
Source:
-------
- The memory handling was no longer up to the task, so I had to make it more
flexible.
RAM is no longer a static array; it is dynamically allocated by readroms(),
split in memory regions (one for the CPU addressing space, one for graphics
ROMs, and so on) so data not needed at run time, like the graphics data, can
be unloaded from memory after conversion. The definition and usage of struct
RomModule and struct GfxDecodeInfo has changed. struct RunningMachine
contains an array of pointers to memory regions.
RomModules are now defined using macros, and readroms() does some error
checking as well. This greatly reduces the chance of making a silly mistake.
And don't ask me why, but as a result of this change the emulation seems to
run much faster than before!
==========================================================================
0.81
Program:
--------
- Sorry about screwing Donkey Kong Jr. colors... it's playable again. Colors
are still way off though: anyone volunteers to fix them? ;-)
==========================================================================
0.8
Program:
--------
- Added some support for Carnival - it boots and runs the demo, but the
graphics are messed up.
- Fixed graphics in Moon Quasar (yes it does run, but you need the correct
ROMs)
- Removed the "-nosound" command line switch, replaced it with "-soundcard n"
which allows to bypass the audio driver selection menu. Use "-soundcard 0"
to turn off sound.
- Some support for Space Invaders (+ some clones) but it doesn't work well.
- Maybe I understood how the character colors are selected in Donkey Kong, at
least in part, but I'm not sure. Anyway, I started fixing them. I based on
the Kong emulator by Gary Shepherdson.
- You can view the game graphics pressing F4. Use cursor keys to change
graphics set/color, F4 to return to the game.
- Support for Mario Bros. (wrong colors, no sound) and Zaxxon (doesn't work yet).
Source:
-------
- I got rid of machine.c and put all into mame.c... when I have time, I'll try
to organize the source better.
==========================================================================
0.7
Program:
--------
- Support for:
Super Cobra (version running on a modified Scramble board)
Amidar US version
Crazy Climber Japanese version
Pooyan (wrong colors, no sound)
Phoenix/Pleiades (no sound)
- Scramble has 100% correct colors. The same palette is used by Super Cobra,
but it doesn't look right.
- Added some support for Moon Quasar, but it doesn't work. Since the ROMs are
encrypted, I don't know if this is due to wrong decryption, bad ROM, or
wrong driver (I'm using the Moon Cresta one). I think that either MQ3 (which
maps at 1000-17ff) is bad, or it uses a different encryption.
==========================================================================
0.6
Program:
--------
- Support for:
Scramble (wrong colors, no sound)
Uniwars (US version of Japanese Irem game)
Frogger (including bootleg version running on a Scramble board)
(wrong colors, no sound)
Amidar (wrong colors, no sound)
Turtles (wrong colors, no sound)
Rally X (wrong colors, no sound, slowdowns)
- I'm beginning to understand how the Wizard of Wor video hardware works,
gameplay hasn't changed but the graphics are more faithfully reproduced.
- Star background in Galaxians & co. The way I calculate it is probably not
correct, anyway it looks reasonable.
- Fixed staccato notes in Pacman and other games using the same hardware.
There are still some minor glitches (especially in Ms. Pac Man) but Pac Man
tunes are now very close to the original.
Source:
-------
- I reorganized the source directory tree, instead of one directory for every
game there are now four directories (drivers, machine, vidhrdw, sndhrdw)
which contain files named after the game.
==========================================================================
0.5
Program:
--------
- Fixed some problems in the Wizard of Wor driver, but it is still far from
complete.
- Support for:
Donkey Kong Jr. (wrong colors, no sound)
Galaxians and the plethora of clones (correct colors, limited sound)
Pisces (correct colors, limited sound)
"Japanese Irem game". I believe the colors are correct, but since I've
never seen the original game I can't know for sure.
War of the Bugs (wrong colors, limited sound)
Moon Cresta (wrong colors, limited sound)
The End (wrong colors, no sound)
Source:
-------
- Changed readroms() to allow scatter loading of a single ROM. This was needed
for Donkey Kong Jr. Now the end of the RomModule array is marked by a size==0,
while name==0 means "continue loading the previous ROM at this address".
- Some bug fixes and changes to reduce porting problems (thanks to Brad Oliver)
- New function copybitmap() in common.c. Limited for now, will change in the
future.
==========================================================================
0.4
Program:
--------
Source:
-------
- Handle IN and OUT instructions in the same way as memory accesses (table
of handler functions). The parameters of the functions are the same, so
the same function can be used both for memory and ports.
Had to change the driver structure, removed the pointers to _in and _out
functions and added port_read and port_write array pointers.
Also defined a generic interrupt_vector_w() function, this makes the Pac
Man driver tinier (look at pacman/machine.c, it's now there only to handle
the cheat).
==========================================================================
0.3
Program:
--------
- Lady Bug and Crazy Climber should run a little faster on slow machines
(Crazy Climber is still too slow, I know).
Source:
-------