diff options
author | 2008-08-28 08:46:52 +0000 | |
---|---|---|
committer | 2008-08-28 08:46:52 +0000 | |
commit | 04303e0b3fa2a105de5997d0f64366f517f9e236 (patch) | |
tree | fd2e620578ecd0bc438e29116116b5ad865932f8 /src/mame/drivers/stlforce.c | |
parent | 951ab24aaa852ecd32668de553bd36006b396a10 (diff) |
From: Fabio Priuli [mailto:doge.fabio@gmail.com]
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
Diffstat (limited to 'src/mame/drivers/stlforce.c')
-rw-r--r-- | src/mame/drivers/stlforce.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c index 707f9e7ce80..0f66b9fb30d 100644 --- a/src/mame/drivers/stlforce.c +++ b/src/mame/drivers/stlforce.c @@ -84,11 +84,6 @@ WRITE16_HANDLER( stlforce_mhigh_videoram_w ); WRITE16_HANDLER( stlforce_mlow_videoram_w ); WRITE16_HANDLER( stlforce_bg_videoram_w ); -static READ16_HANDLER( stlforce_input_port_1_r ) -{ - return (input_port_read(machine, "SYSTEM") & ~0x40) | (eeprom_read_bit() << 6); -} - static WRITE16_HANDLER( eeprom_w ) { if( ACCESSING_BITS_0_7 ) @@ -120,7 +115,7 @@ static ADDRESS_MAP_START( stlforce_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x108000, 0x108fff) AM_RAM AM_BASE(&stlforce_spriteram) AM_RANGE(0x109000, 0x11ffff) AM_RAM AM_RANGE(0x400000, 0x400001) AM_READ_PORT("INPUT") - AM_RANGE(0x400002, 0x400003) AM_READ(stlforce_input_port_1_r) + AM_RANGE(0x400002, 0x400003) AM_READ_PORT("SYSTEM") AM_RANGE(0x400010, 0x400011) AM_WRITE(eeprom_w) AM_RANGE(0x400012, 0x400013) AM_WRITE(oki_bank_w) AM_RANGE(0x40001e, 0x40001f) AM_WRITENOP // sprites buffer commands @@ -153,7 +148,7 @@ static INPUT_PORTS_START( stlforce ) PORT_SERVICE_NO_TOGGLE( 0x0008, IP_ACTIVE_LOW ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_VBLANK ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL ) /* eeprom */ + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* eeprom */ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END |