summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2012-11-16 02:34:34 +0000
committer R. Belmont <rb6502@users.noreply.github.com>2012-11-16 02:34:34 +0000
commit0ee91492fc3562964c8cb5fe9a4e18c34d37e3b4 (patch)
tree6b310bfba8fdb899d53b7842bca0723250c92045
parentb7c23bfec13b381021f5d33a217e2ad491aadad3 (diff)
scsicd: Add STOP command [PKGINKO]
firebeat: Some additional ATAPI support [PKGINKGO] New games added as GAME NOT WORKING ----------------------------------- ParaParaParadise 1st Mix Plus [PKGINKO, R. Belmont]
-rw-r--r--src/emu/machine/scsicd.c13
-rw-r--r--src/mame/drivers/firebeat.c30
-rw-r--r--src/mame/mame.lst1
3 files changed, 42 insertions, 2 deletions
diff --git a/src/emu/machine/scsicd.c b/src/emu/machine/scsicd.c
index bec27eab5a2..4e5157c674c 100644
--- a/src/emu/machine/scsicd.c
+++ b/src/emu/machine/scsicd.c
@@ -272,6 +272,19 @@ void scsicd_device::ExecCommand( int *transferLength )
SetPhase( SCSI_PHASE_STATUS );
*transferLength = 0;
break;
+
+ case 0x4e: // STOP
+ if (cdrom)
+ {
+ cdda = cdda_from_cdrom(machine(), cdrom);
+ if (cdda != NULL)
+ cdda_stop_audio(cdda);
+ }
+
+ logerror("SCSICD: STOP_PLAY_SCAN\n");
+ SetPhase( SCSI_PHASE_STATUS );
+ *transferLength = 0;
+ break;
case 0x55: // MODE SELECT(10)
logerror("SCSICD: MODE SELECT length %x control %x\n", command[7]<<8 | command[8], command[1]);
diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c
index 47c846319a6..27fbcf1a0c4 100644
--- a/src/mame/drivers/firebeat.c
+++ b/src/mame/drivers/firebeat.c
@@ -1132,8 +1132,17 @@ static void atapi_command_reg_w(running_machine &machine, int reg, UINT16 data)
}
// perform special ATAPI processing of certain commands
+ //if (state->m_atapi_drivesel==1) logerror("!!!ATAPI COMMAND %x\n", state->m_atapi_data[0]&0xff);
switch (state->m_atapi_data[0]&0xff)
{
+
+ case 0x55: // MODE SELECT
+ state->m_atapi_cdata_wait = state->m_atapi_data[4]/2;
+ state->m_atapi_data_ptr = 0;
+ logerror("ATAPI: Waiting for %x bytes of MODE SELECT data\n", state->m_atapi_cdata_wait);
+ break;
+
+
case 0xa8: // READ (12)
// indicate data ready: set DRQ and DMA ready, and IO in INTREASON
state->m_atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ | ATAPI_STAT_SERVDSC;
@@ -1145,8 +1154,8 @@ static void atapi_command_reg_w(running_machine &machine, int reg, UINT16 data)
case 0x00: // BUS RESET / TEST UNIT READY
case 0xbb: // SET CD SPEED
case 0xa5: // PLAY AUDIO
- case 0x1b:
- case 0x4e:
+ case 0x1b: // START_STOP_UNIT
+ case 0x4e: // STOPPLAY_SCAN
state->m_atapi_regs[ATAPI_REG_CMDSTATUS] = 0;
break;
}
@@ -2315,6 +2324,22 @@ ROM_START( ppp )
// TODO: the audio CD is not dumped
ROM_END
+ROM_START( ppp1mp )
+ ROM_REGION32_BE(0x80000, "user1", 0)
+ ROM_LOAD16_WORD_SWAP("977jaa03.21e", 0x00000, 0x80000, CRC(7b83362a) SHA1(2857a93be58636c10a8d180dbccf2caeeaaff0e2))
+
+ ROM_REGION(0x400000, "ymz", ROMREGION_ERASE00)
+
+ ROM_REGION(0xc0, "user2", 0) // Security dongle
+ ROM_LOAD( "gqa11-ja", 0x000000, 0x0000c0, CRC(2ed8e2ae) SHA1(b8c3410dab643111b2d2027068175ba018a0a67e) )
+
+ DISK_REGION( "scsi0" )
+ DISK_IMAGE_READONLY( "a11jaa01", 0, SHA1(539ec6f1c1d198b0d6ce5543eadcbb4d9917fa42) )
+
+ DISK_REGION( "scsi1" )
+ DISK_IMAGE_READONLY( "a11jaa02", 0, SHA1(575069570cb4a2b58b199a1329d45b189a20fcc9) )
+ROM_END
+
ROM_START( kbm )
ROM_REGION32_BE(0x80000, "user1", 0)
ROM_LOAD16_WORD_SWAP("974a03.21e", 0x00000, 0x80000, CRC(ef9a932d) SHA1(6299d3b9823605e519dbf1f105b59a09197df72f))
@@ -2437,6 +2462,7 @@ ROM_END
GAME( 2000, ppp, 0, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise", GAME_NOT_WORKING)
GAME( 2000, ppd, 0, firebeat, ppp, firebeat_state, ppd, ROT0, "Konami", "ParaParaDancing", GAME_NOT_WORKING)
GAME( 2000, ppp11, 0, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise v1.1", GAME_NOT_WORKING)
+GAME( 2000, ppp1mp, ppp, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise 1st Mix Plus", GAME_NOT_WORKING)
GAMEL(2000, kbm, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania", GAME_NOT_WORKING, layout_firebeat)
GAMEL(2000, kbm2nd, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania 2nd Mix", GAME_NOT_WORKING, layout_firebeat)
GAMEL(2001, kbm3rd, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania 3rd Mix", GAME_NOT_WORKING, layout_firebeat)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index ce37d2b1a24..415808f246b 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -6225,6 +6225,7 @@ popn2 // GX831 (c) 1998 (Japan)
ppp // GQ977 (c) 2000
ppd // GQ977 (c) 2000 (Korea)
ppp11 // GQ977 (c) 2000
+ppp1mp // GQA11 (c) 2000?
kbm // GQ974 (c) 2000
kbm2nd // GCA01 (c) 2000
kbm3rd // GCA12 (c) 2001