mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
[MESS] Improved the inputs in CD32 (by adding a mirror of the first button where the regular Amiga reads it) this allows the majority of the booting CD32 games to actually be started. [David Haywood]
[MESS] Expanded cd32.xml softlist entries to highlight more future test cases. [David Haywood]
This commit is contained in:
parent
a5313a0dae
commit
03731d39a2
148
hash/cd32.xml
148
hash/cd32.xml
@ -2,30 +2,142 @@
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<softwarelist name="cd32" description="Amiga CD-32 CD-ROM list">
|
||||
|
||||
<!--- Just a test list -->
|
||||
<!--- Preliminary List -->
|
||||
|
||||
<!-- This was a cloneCD image - mounted with Daemon tools, rips to .toc/.bin with burnatonce in full RAW mode -->
|
||||
<!-- a EC error was reported, so it might have protection -->
|
||||
<software name="clockwsr" supported="no">
|
||||
<description>Clockwiser</description>
|
||||
<year>19??</year>
|
||||
<publisher>Rasputin</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="clockwiser" sha1="01a622e5b6a710eeef828b0f5807dad94de3798f"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="vital" supported="no">
|
||||
<description>Vital Light</description>
|
||||
<year>1994</year>
|
||||
|
||||
<!-- playable but there's a scrolling glitch every few frames -->
|
||||
<software name="morph" supported="partial">
|
||||
<description>Morph</description>
|
||||
<year>1993</year>
|
||||
<publisher>Millennium</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="vital light (1994)(millennium)[!][10328981]" sha1="89921bfda42deab7a73e4c55ea4244673788a1bd"/>
|
||||
<disk name="morph (1993)(millennium)[!]" sha1="3a8909d88d48b17b7e02284866f57085fbe62e2e"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Diggers has bad sprites (oversized cursor etc.) Oscar has bad background planes -->
|
||||
<software name="diggoscr" supported="no">
|
||||
<description>Diggers + Oscar</description>
|
||||
<year>1993</year>
|
||||
<publisher>Commodore</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="diggers and oscar (1993)(commodore)(m4)[!][compilation][amiga-cd 31, 54]" sha1="88422ad455a8b8c7255c83812aa69132f15e1bf6"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Playable, like the Ami1200 AGA version -->
|
||||
<software name="pballfnt">
|
||||
<description>Pinball Fantasies CD Edition</description>
|
||||
<year>1993</year>
|
||||
<publisher>21st Century Entertainment</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="pinball fantasies (1993)(21st century entertainment)[!]" sha1="01b589f79dc0c6e9ebc3ed898aa021c6e59daa70"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Glitchy sprites, no sound, like the Ami1200 AGA version -->
|
||||
<software name="pballill" supported="no">
|
||||
<description>Pinball Illusions</description>
|
||||
<year>1995</year>
|
||||
<publisher>21st Century Entertainment</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="pinball illusions (1995)(21st century entertainment)[!]" sha1="1b657df40d086d9ce8f498e32033993361f3452b"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Fantastic Dizzy is glitchy, other games work -->
|
||||
<!-- Spellbound Dizzy grants you infinite lives by default, but I remember my original floppy version doing this too so it might just be a buggy game -->
|
||||
<software name="big6diz" supported="partial">
|
||||
<description>The Big 6 (Dizzy Collection)</description>
|
||||
<year>1994</year>
|
||||
<publisher>Codemasters</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="big 6, the (1994)(codemasters)(en-de)[!][compilation]" sha1="ecea85b6f6bd167b0b5164fde31b782e6b188e30"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Playable but missing some graphical effects -->
|
||||
<software name="vital" supported="partial">
|
||||
<description>Vital Light</description>
|
||||
<year>1994</year>
|
||||
<publisher>Millennium</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="vital light (1994)(millennium)[!][10328981]" sha1="89921bfda42deab7a73e4c55ea4244673788a1bd"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Bad colours / gfx issues -->
|
||||
<software name="clockwsr" supported="no">
|
||||
<description>Clockwiser</description>
|
||||
<year>1994</year>
|
||||
<publisher>Rasputin</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="clockwiser (1994)(rasputin)[!]" sha1="0d92ecfc00175486022c4c3bcfd7e26a21568d20"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- runs and can be 'played', but gfx are badly scaled -->
|
||||
<software name="sstardst" supported="no">
|
||||
<description>Super Stardust</description>
|
||||
<year>1994</year>
|
||||
<publisher>Team 17</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="super stardust (1994)(team 17)[!]" sha1="2fee9d76e9b47a9fb72c2f8833d07cb4fbc6ab82"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- bad screen mode -->
|
||||
<software name="sskidmk" supported="no">
|
||||
<description>Super Skidmarks</description>
|
||||
<year>1995</year>
|
||||
<publisher>Guildhall Leisure</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="super skidmarks v2.2 (1995)(guildhall leisure)[!][gh 1 10 aug 95]" sha1="af57f7c92804f460a3d2ae89b5b881414205a21e"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Manual copy protection, no idea if it actually works, menu colours are bad tho, anybody got a cheat for the code screen? -->
|
||||
<software name="wormstdc" supported="no">
|
||||
<description>Worms - The Director's Cut</description>
|
||||
<year>1995</year>
|
||||
<publisher>Ocean</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="worms - the director's cut (1995)(ocean)(m3)[!]" sha1="7c42b4cf6c089aadd0ed41f8725174ab9c7a0378"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- screen offset problems, only plays on pad2? (by design?) -->
|
||||
<software name="libcap2" supported="no">
|
||||
<description>Liberation - Captive II</description>
|
||||
<year>1994</year>
|
||||
<publisher>Mindscape</publisher>
|
||||
<part name="cdrom" interface="cd32_cdrom">
|
||||
<diskarea name="cdrom">
|
||||
<disk name="liberation - captive ii v2.02-2.00c (1994-04-08)(mindscape)[!][cdd3716]" sha1="e4270283304e913a9397888f536be1b146482af1"/>
|
||||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
|
||||
</softwarelist>
|
||||
|
@ -232,12 +232,25 @@ static UINT16 handle_joystick_potgor(running_machine &machine, UINT16 potgor)
|
||||
|
||||
CUSTOM_INPUT_MEMBER(cd32_state::cubo_input)
|
||||
{
|
||||
return handle_joystick_potgor(machine(), m_potgo_value) >> 10;
|
||||
return handle_joystick_potgor(machine(), m_potgo_value) >> 8;
|
||||
}
|
||||
|
||||
|
||||
|
||||
CUSTOM_INPUT_MEMBER(cd32_state::cd32_sel_mirror_input)
|
||||
{
|
||||
UINT8 bits = ioport((const char *)param)->read();
|
||||
return (bits & 0x20)>>5;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static INPUT_PORTS_START( cd32 )
|
||||
PORT_START("CIA0PORTA")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_SPECIAL )
|
||||
/* this is the regular port for reading a single button joystick on the Amiga, many CD32 games require this to mirror the pad start button! */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cd32_state,cd32_sel_mirror_input, "P2")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cd32_state,cd32_sel_mirror_input, "P1")
|
||||
|
||||
PORT_START("CIA0PORTB")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
@ -251,40 +264,40 @@ static INPUT_PORTS_START( cd32 )
|
||||
PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("POTGO")
|
||||
PORT_BIT( 0x4400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cd32_state,cubo_input, 0)
|
||||
PORT_BIT( 0xbbff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, cd32_state,cubo_input, 0)
|
||||
PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
|
||||
// CD32 '11' button pad (4 dpad directions + 7 buttons), not read directly
|
||||
PORT_START("P1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 ||>")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 <<") /* left trigger */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 >>") /* right trigger */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("P1 Green") /* BUTTON3 */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("P1 Yellow") /* BUTTON4 */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("P1 Red / SELECT") /* BUTTON1 = START1 */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME("P1 Blue / STOP") /* BUTTON2 */
|
||||
PORT_START("P1JOY")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
|
||||
|
||||
// CD32 '11' button pad (4 dpad directions + 7 buttons), not read directly
|
||||
PORT_START("P2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 ||>")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 <<") /* left trigger */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 >>") /* right trigger */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Green") /* BUTTON3 */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("P2 Yellow") /* BUTTON4 */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_NAME("P2 Red / SELECT") /* BUTTON1 = START2 */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(2) PORT_NAME("P2 Blue / STOP") /* BUTTON2 */
|
||||
PORT_START("P2JOY")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
|
||||
|
||||
PORT_START("P1")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) /* BUTTON3 */
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) /* BUTTON4 */
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) /* BUTTON1 = START1 */
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(1) /* BUTTON2 */
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(1)
|
||||
|
||||
PORT_START("P2")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) /* BUTTON3 */
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) /* BUTTON4 */
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2) /* BUTTON1 = START2 */
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(2) /* BUTTON2 */
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(2)
|
||||
|
||||
PORT_START("DIPSW1")
|
||||
PORT_DIPNAME( 0x01, 0x01, "DSW1 1" )
|
||||
@ -800,6 +813,7 @@ static MACHINE_CONFIG_START( cd32base, cd32_state )
|
||||
MCFG_SOUND_ROUTE( 1, "rspeaker", 0.50 )
|
||||
|
||||
/* cia */
|
||||
// these are setup differently on other amiga drivers (needed for floppy to work) which is correct / why?
|
||||
MCFG_LEGACY_MOS8520_ADD("cia_0", AMIGA_68EC020_PAL_CLOCK / 10, 0, cia_0_intf)
|
||||
MCFG_LEGACY_MOS8520_ADD("cia_1", AMIGA_68EC020_PAL_CLOCK / 10, 0, cia_1_intf)
|
||||
|
||||
|
@ -16,7 +16,8 @@ public:
|
||||
cd32_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: amiga_state(mconfig, type, tag),
|
||||
m_microtouch(*this, "microtouch")
|
||||
{ }
|
||||
{
|
||||
}
|
||||
|
||||
required_device<microtouch_device> m_microtouch;
|
||||
|
||||
@ -26,6 +27,8 @@ public:
|
||||
void (*m_input_hack)(running_machine &machine);
|
||||
int m_oldstate[2];
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(cubo_input);
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(cd32_sel_mirror_input);
|
||||
|
||||
DECLARE_WRITE32_MEMBER(aga_overlay_w);
|
||||
DECLARE_WRITE8_MEMBER(cd32_cia_0_porta_w);
|
||||
DECLARE_READ8_MEMBER(cd32_cia_0_portb_r);
|
||||
|
Loading…
Reference in New Issue
Block a user