diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp index d0651ac8b2b..2788dc976b0 100644 --- a/src/mame/drivers/twinkle.cpp +++ b/src/mame/drivers/twinkle.cpp @@ -9,7 +9,7 @@ driver by smf and R. Belmont TODO: dvd check for bmiidx, bmiidxa, bmiidxc & bmiidxca -finish sound board emulation and remove response hle +remove dummy 8mb bank emulate dvd player and video mixing 16seg led font @@ -247,6 +247,8 @@ Notes: #include "sound/rf5c400.h" #include "speaker.h" +#include "bmiidx.lh" + class twinkle_state : public driver_device { public: @@ -256,6 +258,8 @@ public: m_ata(*this, "ata"), m_waveram(*this, "rfsnd"), m_spu_ata_dma(0), + m_spu_ata_dmarq(0), + m_wave_bank(0), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu") { @@ -268,16 +272,17 @@ public: uint16_t m_spu_ctrl; // SPU board control register uint8_t m_spu_shared[0x400]; // SPU/PSX shared dual-ported RAM uint32_t m_spu_ata_dma; - uint32_t m_wave_bank; int m_spu_ata_dmarq; + uint32_t m_wave_bank; int m_io_offset; int m_output_last[ 0x100 ]; - int m_last_io_offset; uint8_t m_sector_buffer[ 4096 ]; DECLARE_WRITE8_MEMBER(twinkle_io_w); DECLARE_READ8_MEMBER(twinkle_io_r); DECLARE_WRITE16_MEMBER(twinkle_output_w); + DECLARE_WRITE16_MEMBER(led_w); + DECLARE_WRITE16_MEMBER(key_led_w); DECLARE_WRITE16_MEMBER(serial_w); DECLARE_WRITE8_MEMBER(shared_psx_w); DECLARE_READ8_MEMBER(shared_psx_r); @@ -288,6 +293,7 @@ public: DECLARE_WRITE16_MEMBER(twinkle_waveram_w); DECLARE_READ16_MEMBER(shared_68k_r); DECLARE_WRITE16_MEMBER(shared_68k_w); + DECLARE_WRITE16_MEMBER(spu_led_w); DECLARE_WRITE16_MEMBER(spu_wavebank_w); DECLARE_READ16_MEMBER(unk_68k_r); DECLARE_WRITE_LINE_MEMBER(spu_ata_irq); @@ -306,8 +312,6 @@ public: int m_output_clock; }; -/* RTC */ - #define LED_A1 0x0001 #define LED_A2 0x0002 #define LED_B 0x0004 @@ -334,23 +338,24 @@ public: static const uint16_t asciicharset[]= { - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_J | LED_M, // 0 - LED_B | LED_C, // 1 - LED_A1 | LED_A2 | LED_B | LED_D1 | LED_D2 | LED_E | LED_G1 | LED_G2, // 2 - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2, // 3 - LED_B | LED_C | LED_F | LED_G1 | LED_G2 , // 4 - LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_K, // 5 - LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // 6 - LED_A1 | LED_A2 | LED_B | LED_C, // 7 - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // 8 - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_F, // 9 - LED_A1 | LED_A2 | LED_B | LED_C | LED_E | LED_F, // A - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2 | LED_I | LED_L, // B - LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F, // C - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_I | LED_L, // D - LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // E - LED_A1 | LED_A2 | LED_E | LED_F | LED_G1, // F -// 16 +// 0 + 0, // (default on boot) + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +// 0x10 0, 0, 0, @@ -367,63 +372,64 @@ static const uint16_t asciicharset[]= 0, 0, 0, -// 32 +// 0x20 0, // space - 0, // ! - 0, // " + LED_D2 | LED_A2 | LED_I | LED_J, // ! + LED_I | LED_B, // " 0, // # 0, // $ 0, // % - 0, // & + LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_H | LED_J | LED_M | LED_K | LED_C, // & 0, // ' - 0, // ( - 0, // ) - 0, // * + LED_J | LED_K, // ( + LED_H | LED_M, // ) + LED_G1 | LED_G2 | LED_H | LED_I | LED_J | LED_K | LED_L | LED_M, // * 0, // + 0, // , - 0, // - + LED_G1 | LED_G2, // - 0, // . - 0, // / -// 48 + LED_J | LED_M, // / +// 0x30 LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_J | LED_M, // 0 LED_B | LED_C, // 1 - LED_A1 | LED_A2 | LED_B | LED_D1 | LED_D2 | LED_E | LED_G1 | LED_G2, // 2 - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2, // 3 + LED_A1 | LED_A2 | LED_B | LED_D1 | LED_D2 | LED_E | LED_G1 | LED_G2, // 2 + LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G1 | LED_G2, // 3 LED_B | LED_C | LED_F | LED_G1 | LED_G2 , // 4 - LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_K, // 5 - LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // 6 - LED_A1 | LED_A2 | LED_B | LED_C, // 7 - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // 8 - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_F, // 9 + LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_G2, // 5 + LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // 6 + LED_A1 | LED_A2 | LED_B | LED_C | LED_F, // 7 + LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // 8 + LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_G2, // 9 0, // : 0, // ; 0, // < 0, // = 0, // > - 0, // ? -// 64 + LED_A1 | LED_A2 | LED_J | LED_D2, // ? +// 0x40 0, // @ - LED_A1 | LED_A2 | LED_B | LED_C | LED_E | LED_F, // A - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2 | LED_I | LED_L, // B + LED_A1 | LED_A2 | LED_B | LED_C | LED_E | LED_F | LED_G1 | LED_G2, // A + LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_J | LED_K, // B LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F, // C - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_I | LED_L, // D + LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_G1 | LED_G2, // D LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // E - LED_A1 | LED_A2 | LED_E | LED_F | LED_G1, // F + LED_A1 | LED_A2 | LED_E | LED_F | LED_G1 | LED_G2, // F LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G2, // G LED_B | LED_C | LED_E | LED_F | LED_G1 | LED_G2, // H - LED_I | LED_L, // I - LED_B | LED_C | LED_D1 | LED_D2 | LED_E, // J + LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_I | LED_L, // I + LED_A1 | LED_A2 | LED_I | LED_L | LED_D2, // J LED_E | LED_F | LED_G1 | LED_J | LED_K, // K LED_D1 | LED_D2 | LED_E | LED_F, // L LED_B | LED_C | LED_E | LED_F | LED_H | LED_J, // M LED_B | LED_C | LED_E | LED_F | LED_H | LED_K, // N LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // O - LED_A1 | LED_A2 | LED_B | LED_E | LED_F, // P +// 0x50 + LED_A1 | LED_A2 | LED_B | LED_E | LED_F | LED_G1 | LED_G2, // P LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_K, // Q - LED_A1 | LED_A2 | LED_B | LED_E | LED_F | LED_K, // R + LED_A1 | LED_A2 | LED_B | LED_E | LED_F | LED_K | LED_G1 | LED_G2, // R LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_G2, // S LED_A1 | LED_A2 | LED_I | LED_L, // T - LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // O + LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // U LED_E | LED_F | LED_M | LED_J, // V LED_B | LED_C | LED_E | LED_F | LED_M | LED_K, // W LED_H | LED_J | LED_K | LED_M, // X @@ -434,33 +440,35 @@ static const uint16_t asciicharset[]= 0, // ] 0, // ^ 0, // _ +// 0x60 0, // ` - LED_A1 | LED_A2 | LED_B | LED_C | LED_E | LED_F, // A - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_G2 | LED_I | LED_L, // B - LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F, // C - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_I | LED_L, // D - LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2, // E - LED_A1 | LED_A2 | LED_E | LED_F | LED_G1, // F - LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G2, // G - LED_B | LED_C | LED_E | LED_F | LED_G1 | LED_G2, // H - LED_I | LED_L, // I - LED_B | LED_C | LED_D1 | LED_D2 | LED_E, // J - LED_E | LED_F | LED_G1 | LED_J | LED_K, // K - LED_D1 | LED_D2 | LED_E | LED_F, // L - LED_B | LED_C | LED_E | LED_F | LED_H | LED_J, // M - LED_B | LED_C | LED_E | LED_F | LED_H | LED_K, // N - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // O - LED_A1 | LED_A2 | LED_B | LED_E | LED_F, // P - LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_K, // Q - LED_A1 | LED_A2 | LED_B | LED_E | LED_F | LED_K, // R - LED_A1 | LED_A2 | LED_C | LED_D1 | LED_D2 | LED_F | LED_G1 | LED_G2, // S - LED_A1 | LED_A2 | LED_I | LED_L, // T - LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F, // O - LED_E | LED_F | LED_M | LED_J, // V - LED_B | LED_C | LED_E | LED_F | LED_M | LED_K, // W - LED_H | LED_J | LED_K | LED_M, // X - LED_H | LED_J | LED_L, // Y - LED_A1 | LED_A2 | LED_D1 | LED_D2 | LED_J | LED_M, // Z + 0, // a + 0, // b + 0, // c + 0, // d + 0, // e + 0, // f + LED_A1 | LED_A2 | LED_B | LED_C | LED_D1 | LED_D2 | LED_E | LED_F | LED_G1 | LED_G2 | LED_H | LED_I | LED_J | LED_K | LED_L | LED_M, // g (16 seg led test) + 0, // h + 0, // i + 0, // j + 0, // k + 0, // l + LED_D2, // m (".") + 0, // n + 0, // o +// 0x70 + 0, // p + LED_J, // q ("'") + 0, // r + 0, // s + 0, // t + LED_M, // u (",") + 0, // v + 0, // w + 0, // x + 0, // y + 0, // z 0, // { 0, // | 0, // } @@ -486,9 +494,25 @@ WRITE8_MEMBER(twinkle_state::twinkle_io_w) case 0x1f: case 0x27: case 0x2f: - case 0x37: + if (data != 0xff) + { + osd_printf_warning("unknown io %02x = %02x\n", m_io_offset, data); + } + break; + + case 0x37: + output().set_value("1p", (~data >> 0) & 1); + output().set_value("2p", (~data >> 1) & 1); + output().set_value("vefx", (~data >> 2) & 1); + output().set_value("effect", (~data >> 3) & 1); + output().set_value("credit", (~data >> 4) & 1); + + if ((data & 0xe0) != 0xe0) + { + osd_printf_warning("unknown io %02x = %02x\n", m_io_offset, data); + } + break; - /* led */ case 0x3f: case 0x47: case 0x4f: @@ -498,7 +522,7 @@ WRITE8_MEMBER(twinkle_state::twinkle_io_w) case 0x6f: case 0x77: case 0x7f: - output().set_indexed_value( "led", ( m_io_offset - 7 ) / 8, asciicharset[ ( data ^ 0xff ) & 0x7f ] ); + output().set_indexed_value( "led", ( m_io_offset - 0x3f ) / 8, asciicharset[ ( data ^ 0xff ) & 0x7f ] ); break; case 0x87: @@ -519,7 +543,7 @@ WRITE8_MEMBER(twinkle_state::twinkle_io_w) if( ( data & 0xf8 ) != 0xf8 ) { - printf("%02x = %02x\n", m_io_offset, data ); + osd_printf_warning("unknown io %02x = %02x\n", m_io_offset, data); } break; @@ -570,10 +594,7 @@ READ8_MEMBER(twinkle_state::twinkle_io_r) break; default: - if( m_last_io_offset != m_io_offset ) - { - m_last_io_offset = m_io_offset; - } + osd_printf_warning("unknown io 0x%02x\n", m_io_offset); break; } break; @@ -597,7 +618,7 @@ WRITE16_MEMBER(twinkle_state::twinkle_output_w) /* data */ break; case 0x08: - /* ?? */ + // overlay enable? break; case 0x10: { @@ -644,6 +665,45 @@ WRITE16_MEMBER(twinkle_state::twinkle_output_w) } } +WRITE16_MEMBER(twinkle_state::led_w) +{ + output().set_indexed_value("main_led", 0, (~data >> 0) & 1); + output().set_indexed_value("main_led", 1, (~data >> 1) & 1); + output().set_indexed_value("main_led", 2, (~data >> 2) & 1); + output().set_indexed_value("main_led", 3, (~data >> 3) & 1); + output().set_indexed_value("main_led", 4, (~data >> 4) & 1); + output().set_indexed_value("main_led", 5, (~data >> 5) & 1); + output().set_indexed_value("main_led", 6, (~data >> 6) & 1); + output().set_indexed_value("main_led", 7, (~data >> 7) & 1); + output().set_indexed_value("main_led", 8, (~data >> 8) & 1); + + if ((data & 0xfe00) != 0xfe00) + { + osd_printf_warning("led_w unknown %04x\n", data); + } +} + +WRITE16_MEMBER(twinkle_state::key_led_w) +{ + // words are written using a byte write + output().set_indexed_value("key1-", 1, (data >> 0) & 1); + output().set_indexed_value("key1-", 2, (data >> 1) & 1); + output().set_indexed_value("key1-", 3, (data >> 2) & 1); + output().set_indexed_value("key1-", 4, (data >> 3) & 1); + output().set_indexed_value("key1-", 5, (data >> 4) & 1); + output().set_indexed_value("key1-", 6, (data >> 5) & 1); + output().set_indexed_value("key1-", 7, (data >> 6) & 1); + output().set_indexed_value("key2-", 1, (data >> 7) & 1); + output().set_indexed_value("key2-", 2, (data >> 8) & 1); + output().set_indexed_value("key2-", 3, (data >> 9) & 1); + output().set_indexed_value("key2-", 4, (data >> 10) & 1); + output().set_indexed_value("key2-", 5, (data >> 11) & 1); + output().set_indexed_value("key2-", 6, (data >> 12) & 1); + output().set_indexed_value("key2-", 7, (data >> 13) & 1); + output().set_value("unknown3", (data >> 14) & 1); + output().set_value("unknown4", (data >> 15) & 1); +} + WRITE16_MEMBER(twinkle_state::serial_w) { int _do = ( data >> 4 ) & 1; @@ -705,9 +765,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, twinkle_state ) AM_RANGE(0x1f218000, 0x1f218003) AM_DEVWRITE8("watchdog", watchdog_timer_device, reset_w, 0x000000ff) /* LTC1232 */ AM_RANGE(0x1f220000, 0x1f220003) AM_WRITE8(twinkle_io_w, 0x00ff00ff) AM_RANGE(0x1f220004, 0x1f220007) AM_READ8(twinkle_io_r, 0x00ff00ff) - AM_RANGE(0x1f230000, 0x1f230003) AM_WRITENOP + AM_RANGE(0x1f230000, 0x1f230003) AM_WRITE16(led_w, 0x0000ffff) AM_RANGE(0x1f240000, 0x1f240003) AM_READ_PORT("IN6") - AM_RANGE(0x1f250000, 0x1f250003) AM_WRITENOP + AM_RANGE(0x1f250000, 0x1f250003) AM_WRITE16(key_led_w, 0x0000ffff) AM_RANGE(0x1f260000, 0x1f260003) AM_WRITE16(serial_w, 0x0000ffff) AM_RANGE(0x1f270000, 0x1f270003) AM_WRITE_PORT("OUTSEC") AM_RANGE(0x1f280000, 0x1f280003) AM_READ_PORT("INSEC") @@ -804,11 +864,7 @@ WRITE16_MEMBER(twinkle_state::spu_wavebank_w) // then to bank 2, and finally to bank 3. // // neither the 68k nor DMA access wave RAM when the bank is 0. - if (data == 0) - { - data = 1; - } - m_wave_bank = ((data-1) * (4*1024*1024)); + m_wave_bank = data * (4*1024*1024); } READ16_MEMBER(twinkle_state::twinkle_waveram_r) @@ -837,26 +893,34 @@ WRITE16_MEMBER(twinkle_state::shared_68k_w) m_spu_shared[offset] = data & 0xff; } -READ16_MEMBER(twinkle_state::unk_68k_r) +WRITE16_MEMBER(twinkle_state::spu_led_w) { - return 0xffff; // must return 0xff for 68000 POST to complete properly + // upper 8 bits are occassionally written as all zeros + output().set_indexed_value("spu_led", 0, (~data >> 0) & 1); + output().set_indexed_value("spu_led", 1, (~data >> 1) & 1); + output().set_indexed_value("spu_led", 2, (~data >> 2) & 1); + output().set_indexed_value("spu_led", 3, (~data >> 3) & 1); + output().set_indexed_value("spu_led", 4, (~data >> 4) & 1); + output().set_indexed_value("spu_led", 5, (~data >> 5) & 1); + output().set_indexed_value("spu_led", 6, (~data >> 6) & 1); + output().set_indexed_value("spu_led", 7, (~data >> 7) & 1); } static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, twinkle_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x13ffff) AM_RAM - AM_RANGE(0x200000, 0x200001) AM_READ(unk_68k_r) - // 220000 = LEDs? + AM_RANGE(0x200000, 0x200001) AM_READ_PORT("SPU_DSW") + AM_RANGE(0x220000, 0x220001) AM_WRITE(spu_led_w) AM_RANGE(0x230000, 0x230003) AM_WRITE(twinkle_spu_ctrl_w) - AM_RANGE(0x240000, 0x240003) AM_WRITE(spu_ata_dma_low_w) - AM_RANGE(0x250000, 0x250003) AM_WRITE(spu_ata_dma_high_w) - AM_RANGE(0x260000, 0x260001) AM_WRITE(spu_wavebank_w) + AM_RANGE(0x240000, 0x240003) AM_WRITE(spu_ata_dma_low_w) AM_READNOP + AM_RANGE(0x250000, 0x250003) AM_WRITE(spu_ata_dma_high_w) AM_READNOP + AM_RANGE(0x260000, 0x260001) AM_WRITE(spu_wavebank_w) AM_READNOP AM_RANGE(0x280000, 0x280fff) AM_READWRITE(shared_68k_r, shared_68k_w) AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs0, write_cs0) // 34000E = ??? AM_RANGE(0x34000e, 0x34000f) AM_WRITENOP AM_RANGE(0x400000, 0x400fff) AM_DEVREADWRITE("rfsnd", rf5c400_device, rf5c400_r, rf5c400_w) - AM_RANGE(0x800000, 0xffffff) AM_READWRITE(twinkle_waveram_r, twinkle_waveram_w ) + AM_RANGE(0x800000, 0xffffff) AM_READWRITE(twinkle_waveram_r, twinkle_waveram_w) ADDRESS_MAP_END /* SCSI */ @@ -1004,7 +1068,7 @@ static MACHINE_CONFIG_START( twinkle ) MCFG_SOUND_ROUTE( 0, "speakerleft", 0.75 ) MCFG_SOUND_ROUTE( 1, "speakerright", 0.75 ) - MCFG_RF5C400_ADD("rfsnd", 32000000/2) + MCFG_RF5C400_ADD("rfsnd", XTAL_33_8688MHz/2); MCFG_SOUND_ROUTE(0, "speakerleft", 1.0) MCFG_SOUND_ROUTE(1, "speakerright", 1.0) MACHINE_CONFIG_END @@ -1066,6 +1130,16 @@ static INPUT_PORTS_START( twinkle ) PORT_START("OUTSEC") PORT_START("INSEC") + + PORT_START("SPU_DSW") + PORT_DIPUNKNOWN_DIPLOC( 0x01, IP_ACTIVE_LOW, "SPU DSW:1" ) + PORT_DIPUNKNOWN_DIPLOC( 0x02, IP_ACTIVE_LOW, "SPU DSW:2" ) + PORT_DIPUNKNOWN_DIPLOC( 0x04, IP_ACTIVE_LOW, "SPU DSW:3" ) + PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "SPU DSW:4" ) + PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "SPU DSW:5" ) + PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "SPU DSW:6" ) + PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "SPU DSW:7" ) + PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "SPU DSW:8" ) INPUT_PORTS_END static INPUT_PORTS_START( twinklex ) @@ -1098,7 +1172,7 @@ INPUT_PORTS_END ROM_REGION32_LE( 0x080000, "audiocpu", 0 )\ ROM_LOAD16_WORD_SWAP( "863a05.2x", 0x000000, 0x080000, CRC(6f42a09e) SHA1(cab5209f90f47b9ee6e721479913ad74e3ba84b1) )\ \ - ROM_REGION16_LE(0x1800000, "rfsnd", ROMREGION_ERASE00) + ROM_REGION16_LE(0x2000000, "rfsnd", ROMREGION_ERASE00) // the first 8mb isn't populated ROM_START( gq863 ) TWINKLE_BIOS @@ -1344,20 +1418,20 @@ ROM_START( bmiidxc2 ) DISK_IMAGE_READONLY( "983hdda01", 0, SHA1(bcbbf55acf8bebc5773ffc5769420a0129f4da57) ) ROM_END -GAME( 1999, gq863, 0, twinkle, twinkle, twinkle_state, 0, ROT0, "Konami", "Twinkle System", MACHINE_IS_BIOS_ROOT ) +GAMEL( 1999, gq863, 0, twinkle, twinkle, twinkle_state, 0, ROT0, "Konami", "Twinkle System", MACHINE_IS_BIOS_ROOT, layout_bmiidx ) -GAME( 1999, bmiidx, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX (863 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidxa, bmiidx, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX (863 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidxc, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidxca, bmiidxc, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidxs, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX Substream (983 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidxc2, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1999, bmiidx2, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 2nd style (GC985 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2000, bmiidx3, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2000, bmiidx3a, bmiidx3, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2000, bmiidx4, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 4th style (GCA03 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2001, bmiidx5, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 5th style (GCA17 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2001, bmiidx6, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2001, bmiidx6a, bmiidx6, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2002, bmiidx7, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 7th style (GCB44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 2002, bmiidx8, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 8th style (GCC44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAMEL( 1999, bmiidx, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX (863 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 1999, bmiidxa, bmiidx, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX (863 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 1999, bmiidxc, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 1999, bmiidxca, bmiidxc, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 1999, bmiidxs, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX Substream (983 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 1999, bmiidxc2, gq863, twinklex, twinklex, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx ) +GAMEL( 1999, bmiidx2, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 2nd style (GC985 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 2000, bmiidx3, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 2000, bmiidx3a, bmiidx3, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 2000, bmiidx4, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 4th style (GCA03 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx ) +GAMEL( 2001, bmiidx5, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 5th style (GCA17 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING, layout_bmiidx ) +GAMEL( 2001, bmiidx6, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx ) +GAMEL( 2001, bmiidx6a, bmiidx6, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx ) +GAMEL( 2002, bmiidx7, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 7th style (GCB44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx ) +GAMEL( 2002, bmiidx8, gq863, twinklei, twinklei, twinkle_state, 0, ROT0, "Konami", "beatmania IIDX 8th style (GCC44 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS, layout_bmiidx ) diff --git a/src/mame/layout/bmiidx.lay b/src/mame/layout/bmiidx.lay new file mode 100644 index 00000000000..90a6b8a9282 --- /dev/null +++ b/src/mame/layout/bmiidx.lay @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +