summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/stlforce.c
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-08-28 08:46:52 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-08-28 08:46:52 +0000
commit04303e0b3fa2a105de5997d0f64366f517f9e236 (patch)
treefd2e620578ecd0bc438e29116116b5ad865932f8 /src/mame/drivers/stlforce.c
parent951ab24aaa852ecd32668de553bd36006b396a10 (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.c9
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