diff options
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 |
commit | 0ee91492fc3562964c8cb5fe9a4e18c34d37e3b4 (patch) | |
tree | 6b310bfba8fdb899d53b7842bca0723250c92045 | |
parent | b7c23bfec13b381021f5d33a217e2ad491aadad3 (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.c | 13 | ||||
-rw-r--r-- | src/mame/drivers/firebeat.c | 30 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
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 |