Since I touch up a couple of things and test each driver after the automated merge, it still takes a few minutes for each file. More IO_MAP merges will trickle in over the next few days.
It's likely not worth writing every driver in the whatsnew.txt, since there will be ~100.
- Added Magic Joker.
- Fixed the 3rd background offset to Galaxi.
- Remapped inputs to match the standard poker games.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Magic Joker (v1.25.10.2000) [Roberto Fresca]
* Adds MCS48_INTERNAL_ROMBANK define to header
* Drivers which need to control the ea line have to initialize banking for internal/external rom
This is not yet optimal but works as expected with existing drivers and modified mario.c
(not worth putting in whatsnew)
Please note, this does touch mario.c and dkong.c (two drivers which are currently undergoing modifications), but it does so unobtrusively. I also asked the proper parties before committing.
All games are tested and working after this patch.
* MB8884 is a I8035 ==> 12 addr, no internal rom map
* EA line high: external access - this is "default"
The whole EA implementation is as Aaron named it, cheeky. EA=1 external rom access, EA=0 internal rom access.
But all variants are treated the same, i.e. for i8035, MB8884, I8039, the external rom is used in the same
way as the internal.
These ports are actually ports which sink current on logical 0. With a logical 1, they are in high impedance mode and may be read. The high impedance is treated as logical 1 by TTL gates connected to them.
Fixed bug in my recent DISCRETE_MIXER update.
Note: the DISCRETE_MIXER bug caused most of the speed increase of its optimization and caused some games to crash. Donkey Kong is now at 14% faster on my machine then when I started. Better then nothing.
For those keeping score dkong was at 268% on my computer before I started optimizing. It now runs at 342%. The 555 and mixer changes also speed up just about every current discrete game.
- Added Magic's 10 version 16.15
- Remapped all inputs to match other poker games.
- Added a missing input to Magic's 10 games.
New clones added
----------------
Magic's 10 (ver. 16.15) [Roberto Fresca]
Subject: few more patches
Hi,
enclosed please find a few patches:
TV_1.diff -> TV_4.diff: clean up of input ports for drivers starting with T,U,V
eeprom.diff: some remaining eeprom_bit_r made CUSTOM_PORT
stv_fix.diff: a small missing bit in my previous stv fix for bug 650. this patch assumes the previous has been applied and removes duplication of button 4 also from batmanfr (somehow I think I sent an outdated version of stv.diff previously)
That's all folks
Regards,
Fabio
Sent: Monday, August 25, 2008 8:16 AM
Subject: [patch] Remove useless backslashes
Hi mamedev,
I've been using pmd 4.2.2 to analyze the MAME codebase for duplicate
code, and it's C parser complains about useless backslashes and
dangling defines in #if...#endif sections. Here's a patch that fixes
this, and additionally fixes one real bug, a string in djmain.c was
malformed, it's curious it compiled.
~aa
Sent: Monday, August 25, 2008 1:45 AM
To: submit@mamedev.org
Subject: Stepper motor changes
Updated stepper motor code to use a MAME-style config interface, rather
than a load of setting functions. Changed optic functions to use clearly
defined start and end points. Added standard layout for Starpoint units
used in many machines. Updated all affected drivers.
PS. At one point, I was led to believe that the UPD sound chip would
have
support for its messaging pins added, is this still pending (I have Phil
B's old source here if it's needed). Such support would prove very
useful
for AGEMAME as many of the drivers in that that use that chip rely on it
for timing.
Subject: another small revised patch
After Fujix's new findings, I realized that the coinage settings
for ckongg were still not completely correct after my previous
patch galaxold.diff. The attached new patch (diff'ed from clean 0.127)
fixes the Coinage dips at last. Sorry for the possible confusion.
Regards,
Fabio
Subject: more patches
Hi,
enclosed please find the following patches:
spaceinv.diff : this is an important patch. Please revert (if applied)
my previous fix to bugs 2143 & 2144. It was wrong. This is the correct
fix for those two bugs and many other issues not reported on MT (e.g.
spaceatt, spaceat2 not starting because tilted, missing dips in many
invaders clones etc). Basically, in 8080bw.c all the "DSW0" input ports
should have been "IN2" for invaders_map to work correctly, and no
additional "IN2" is necessary. After this fix, you may want to change
all the "IN2" occurrences 8080bw.c and in mw8080bw.c with "DSW" since
they mostly are dips. But the latter is a cosmetic change, so it's up
to you decide if it's worth or not (the patch leaves "IN2").
avgdvg.diff : this correctly fixes avgdvg_done usage without using a
parameter, but using IPT_ACTIVE_LOW where needed (I'm a bit ashamed
because I should have thought to that since the beginning).
galaxold.diff : this changes ckongg coinage inputs to fix bug 2154.
Notice anyway that coinage settings in dips do not correspond to the
numbers which appear on screen. This is probably due to the conversion
to galaxian hardware (e.g. it's shown the value of coin2, but in ckongg
there is no coin2 at all, so the appearance of the coin 2 value has no
meaning). Notice also that an unused dips sets the possibility to play
in 2 or not. I defaulted this to 1 player because setting "2 players"
automatically gives 2/4 credits with a single coin, which I don't think
it was the default back then ;)
However, perhaps ckongg is worth further analysis when it will be
updated to the new galaxian driver.
stv.diff : this patch fixes the longstanding bug 650 (duplicated P1
button 4). After testing all sets which reach the test mode, I found
out that only batmanfr uses the button4 in port "P1", while all other
games with more than 3 buttons use the one in "EXTRA". Therefore I made
the "P1" 4th buttons a specific batmanfr input.
patch01.diff, patch02.diff, sys1.diff : these patches simplifies input
ports in the remaining driver starting with S (plus a few small changes
to other drivers I forgot previously), using PORT_INCLUDE, AM_READ_PORT
& converting 'fake' 8bit ports to full 16/32bit ports where suitable
Let me know if something fails to apply, or if there is any other problem
Subject: Profiler related #2 (v2)
Hi, this a revised version of a patch I sent yesterday.
This one is much more cleaner, and the speed improvement is now significant
enough to come out of the profiling noise.
More over, this one compiles correctly... ;-)
Best regards,
Christophe Jaillet
Shares the memory with the c75.
Renames the c75 region to c7x from user4.
Implements the c75 reset/halt control.
Implements the irqs more correctly.
[From OG]
Subject: fix for MT 2135
This bug dates back to the introduction of the world parent set of rtype.
Finally spotted and (easily) fixed in the attached patch.
Regards,
Fabio
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.
* removed redundant and unused definitions from header file
* renamed constants and functions to be MCS48* prefixed
* re-verified all opcode behaviors and timing
* changed illegal opcodes to count 1 cycle to avoid infinite loops
* changed EA behavior so that it is a push from the driver instead of a pull on each opcode fetch
(this may change further in the future).
* reimplemented IRQ generation and timer behavior according to documentation
* updated all drivers accordingly
* fixed several uses of PULSE_LINE, which no longer works
While this isn't 'free' as tilemap_set_palette_offset() is (when the offset changes, the pixmap cache needs to be invalidated), it helps removing some redundant code from drivers.
Updated snk.c and snk68.c to take advantage of the new function.
Added 1:1 fallback if surface creation fails at prescale values. Changed
prescale logic to create prescale target surfaces as ARGB for YUY2
sources. Forced the use of render-to-texture over StretchRect for YUY2
sources.
Register access is still performed using direct memory accesses,
but the pointers are fetched through the memory system. Now you can
see i8039 RAM in the debugger. Added internal memory maps of the
appropriate size so that drivers don't need to declare this RAM.
Added a number of variants from the MCS-48 family as it was not
clear which variants had what capabilities. All documented variants
now have internal memory maps for internal ROM and RAM. Removed
memory maps from drivers using embedded ROM/EPROM/OTPROM since
they are defined by the core now.
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.
array is involved, it seems to think it is not a constant expression.
Added MDRV_DEVICE_CONFIG_DATA32_EXPLICIT() macro which takes an explicit
size and offset. Changed MDRV_DEVICE_CONFIG_DATA32() to be built off of
this macro. Added MDRV_DEVICE_CONFIG_DATA32_ARRAY() and
MDRV_DEVICE_CONFIG_DATA32_ARRAY_MEMBER() which do explicit computations
of the offset to work around MSVC's problems.
Replicated these changes for DATA64 and DATAPTR macros. Updated latch8.h
to use the new macros.
Added gun emulation for judge dredd.
Fixed judge dredd ide emulation when building with visual studio.
Mapped primal rage 2 inputs
Mapped player 3 & 4 inputs for 1 on 1 government, these are now the default with the 6 button inputs only mapped for games that need them.
Converted AT28C16 to a device.
Added preliminary support for devices to load/save nvram.
New games added or promoted from NOT_WORKING status
Super Football Champ (Ver 2.5O)
Super Football Champ (Ver 2.4J)
Magical Date / Magical Date - dokidoki kokuhaku daisakusen (Ver 2.02J)
Fighters' Impact (Ver 2.02O)
Judge Dredd (Rev C Dec. 17 1997)
Judge Dredd (Rev B Nov. 26 1997)
* renamed MDRV_LATCH8_MASK to MDRV_LATCH8_MASKOUT to clarify meaning
* Added MDRV_LATCH8_NOSYNC to specify which lines do not reed a cpu sync
* Updated drivers
The MDRV_LATCH8_NOSYNC is not used in dkong.c. All latches need synchronization
because at least one line does need a cpu synchronization.
* adds new latch device where appropriate
* increased accuracy since now all main/sound cpu communications are properly latched
* removed quite some code as a consequence
* minor cosmetic edits
8 bit latch interface and emulation
Generic emulation of 74LS174/175, 74LS259 and other latches.
Apart from providing synched latch operation, these
latches can be configured to read their input bitwise from other
devices as well and individual bits can be connected to
discrete nodes.
Please see audio/dkong.c for examples.
Bermuda Triangle / World Wars
removed ROM patches
simulated "turbo front" check
renamed bermudao->bermudaj
clarified the relationship between the four sets
made World Wars a main set instead of a clone of Bermuda Triangle
tliemaps, proper memory maps, inputs, etc.
Date: Thu Aug 21 11:31:19 2008 +0200
Outrun irq fix
The level 6 irq happens only when both irq2 and irq4 line are active,
not when either is, obviously.
02136: cubeqst: from minimal UI cubeqst requires the optional CHD
02127: xymg: The game name should be Xing Yun Man Guan and "Pin Yin:"should be omitted
02138: flamegun: Debugger/Cheat System upper case cpu tag of MAIN doesn't work
02139: In audio/system16.c, there is a reference to REGION_SOUND1
02133: chindrah: The title of Zhong Guo Long?(Hong Kong,V011H) is Dong Fang Zhi Zhu(Hong Kong, V011H)
02126: corrupt CHDs are reported as missing
After an exhaustive analysis to the unknown writes, finally figured out the missing sound device.
- Added sound support to "Poker 4-1" and "Pull Tabs".
- Figured out the output ports. Documented each bit accessed.
- Added button lamps support. Created layouts for both games.
- Switched the 8255 port C to be used as output port.
- Adjusted the coin pulse timing.
- Updated technical notes.
- Splitted the driver to driver + video.
- Final clean-up.
Ikari Warriors, Victory Road
removed ROM patches
simulated "hard flags" behaviour
proper memory maps
fixed ikarijp color test
renamed dogosokj to dogosokb and loaded the correct palette PROMs
inputs, dip locations, etc.
removed NO_COCKTAIL flag since these games don't have a flip screen dip switch
02035: gwarb: Guerrilla War bootleg doesn't need a rotary joy
00869: ikari: The title screen and high score screen do not have a black background, as MAME displays.
New clones added
----------------
Ikari Warriors (US) [Corrado Tomaselli]
TNK3, Athena, Fighting Golf, Country Club
converted to tilemaps
removed hacks
proper memory maps
screen flip / cocktail mode support
dip locations
better implementation of sound CPU communication
hooked sound cpu interrupts to YM chips
fitegolf hax 1xYM3812, not 2xYM3526
Subject: few patch based on u5
Hi,
since it seems there will be one more update in this cycle, it is probably
better to submit these patches. Hopefully, not too many changes have been
done to the source and these will apply cleanly. Let me know if I have to
re-submit any of the patches.
content of the zip
* Ndriv.diff, OPQdriv.diff and RSdriv.diff: clean up of input ports in drivers
N->R and partially S. as usual AM_READ_PORTs, conversions to full 32bit inputs
where suitable, CUSTOM_PORTs for eeprom bits etc.
* cps1.diff: small clean up of the inputs in cps1.c. In particular, I exploited
a few port_include (modeled on cps2.c) and added specific inputs for sf2 hacks
so that I could simplify input readings in video/cps1.c. Also, I added the 3rd
buttons to games which test it in Service Mode even if they don't use it in game:
if the game code tests for them in the service mode, they were supposed to be
present...
* deco.diff, pgm.diff, psikyo.diff, nbmj.diff, jaleco.diff: clean up for
specific large drivers
* other.diff: some usage of PORT_CUSTOM that I missed to implement previously
Regards,
Fabio Priuli
Before this patch a:
cpunum_set_input_line(5, ASSERT_LINE);
cpunum_set_input_line(3, ASSERT_LINE);
cpunum_set_input_line(3, CLEAR_LINE);
loses the state of line 5. This patch fixes it by adding an explicit
but optional "virtual irq line" support to the 68k interface.
Fix m68k interrupt handling by some drivers.
Clearing the NMI line to clear all the IRQ lines worked, but it just
doesn't make sense. Now that the irq lines are really independant,
the handling can be simplified.
Subject: [patch] fd1089 external keys
Hi mamedev,
The attached patch moves the fd1089 decryption keys out of the source
of MAME and into the ROM files. Nicola suggested this would now be
reasonable, so long as the incomplete ones were marked with BAD_DUMP.
~aa
Subject: [patch] More reset/multisession cleanup
Hi mamedev,
This patch eliminates more cases of .data objects, in an effort to
make more drivers multisession/reset safe. The changes should not
change the first time run behavior at all, except perhaps the ygv608.c
change, which had a suspicious use of a static rectangle.
~aa
Currently not working any better then the parent
Restores old Wave Runner (Rev A, Model 2B) as a single non clone game
New clones added
----------------
Top Skater (USA) [Gerald (COY)]
My mail is broken (or I'm not on the list anymore?) so I don't know how the suggestion went down, but given that within the space of a week simply updating the tree completely broke my compile again I *need* these files maintained to develop with if we're going to see accurate genesis emulation in MAME. There's too much to split out of MAME.
I haven't included driver definitions, but the source files at least need to compile or I'm going to go completely bananas.
Subject: Profiler related
Hi,
here is a smalll patch that :
- remove include "profiler.h" to files that do not use profiling function
* emu/machine/laserdsc.c
* osd/windows/video.c
- use PROFILER_USER2 instead of PROFILER_USER1 in mame/video/tx1.c
USER1 was used twice, USER3 once. I guess that USER1 should be used
only once and USER2 used in the 2nd place
- remove unused MACRO in emu/memory.c
Best regards,
Christophe JAILLET
Subject: Various cleanups
A couple of minor cleanups sitting on my disk for a while:
- removed obsolete ENABLE_DEBUGGER occurance
- removed more unprintable characters in SH-2 disassembler
- memset() usage cleanups
- removed duplicated TMS5110 entry in sound.mak
- use machine in uigfx.c where it's already available