From 844c730e903098b411519ae0c8a467455c892ed0 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 25 Feb 2020 08:44:24 -0500 Subject: New machines marked as NOT_WORKING ---------------------------------- Korg M1 Music Workstation (Rev 19) [DBWBP] New clones marked as NOT_WORKING -------------------------------- M1 EX Music Workstation (v1.29) [DBWBP] M1R Music Workstation (v1.06) [DBWBP] M1R EX Music Workstation (v1.12) [DBWBP] M1 Plus+1 Music Workstation [DBWBP] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/korgm1.cpp | 371 +++++++++++++++++++++++++++++++++++++++++++ src/mame/etc/korgm1.cpp | 214 ------------------------- src/mame/mame.lst | 7 + src/mame/mess.flt | 1 + 5 files changed, 380 insertions(+), 214 deletions(-) create mode 100644 src/mame/drivers/korgm1.cpp delete mode 100644 src/mame/etc/korgm1.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index cc4a70bf30e..ef3a4f9c5c6 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -4213,6 +4213,7 @@ files { MAME_DIR .. "src/mame/drivers/jade.cpp", MAME_DIR .. "src/mame/drivers/jonos.cpp", MAME_DIR .. "src/mame/drivers/juku.cpp", + MAME_DIR .. "src/mame/drivers/korgm1.cpp", MAME_DIR .. "src/mame/drivers/krokha.cpp", MAME_DIR .. "src/mame/drivers/kron.cpp", MAME_DIR .. "src/mame/drivers/lee1214.cpp", diff --git a/src/mame/drivers/korgm1.cpp b/src/mame/drivers/korgm1.cpp new file mode 100644 index 00000000000..6765db4fa86 --- /dev/null +++ b/src/mame/drivers/korgm1.cpp @@ -0,0 +1,371 @@ +// license:BSD-3-Clause +// copyright-holders:Angelo Salese, AJR +/*************************************************************************** + + Korg M1 (c) 1988 + + skeleton driver + +***************************************************************************/ + +#include "emu.h" +#include "cpu/nec/v5x.h" +#include "machine/adc0808.h" +#include "machine/cxd1095.h" +#include "machine/nvram.h" +#include "video/hd44780.h" +#include "emupal.h" +#include "screen.h" +//#include "speaker.h" + +class korgm1_state : public driver_device +{ +public: + korgm1_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_adc(*this, "adc") + , m_lcdc(*this, "lcdc") + , m_panel_sw(*this, "Y%u", 0U) + { } + + void korgm1(machine_config &config); + +protected: + // driver_device overrides + virtual void machine_start(); + virtual void machine_reset(); + + virtual void video_start(); + +private: + HD44780_PIXEL_UPDATE(lcd_pixel_update); + + void pio_pa_w(u8 data); + u8 panel_sw_r(); + void panel_leds_w(u8 data); + + void korgm1_map(address_map &map); + void korgm1_io(address_map &map); + + void palette_init_korgm1(palette_device &palette); + + // devices + required_device m_maincpu; + required_device m_adc; + required_device m_lcdc; + optional_ioport_array<8> m_panel_sw; + + u8 m_selected_sw = 0; +}; + +void korgm1_state::video_start() +{ +} + +HD44780_PIXEL_UPDATE(korgm1_state::lcd_pixel_update) +{ + if (x < 5 && y < 8 && line < 2 && pos < 40) + bitmap.pix16(line * 8 + y, pos * 6 + x) = state; +} + +void korgm1_state::pio_pa_w(u8 data) +{ + m_selected_sw = data & 0x07; + + m_adc->address_w((data & 0x38) >> 3); + m_adc->start_w(BIT(data, 6)); + + // PA7 controls /RESET on TG I/TG II/VDF I/VDF II/MDE +} + +u8 korgm1_state::panel_sw_r() +{ + return 0xc0 | m_panel_sw[m_selected_sw].read_safe(0x3f); +} + +void korgm1_state::panel_leds_w(u8 data) +{ +} + +void korgm1_state::korgm1_map(address_map &map) +{ + map(0x00000, 0x0ffff).ram().share("nvram"); // 64 KB +// map(0x50000, 0x57fff).ram(); // memory card 32 KB + map(0xe0000, 0xfffff).rom().region("ipl", 0); +} + +void korgm1_state::korgm1_io(address_map &map) +{ +// map(0x0000, 0x00ff); internal peripheral (?) +// map(0x0100, 0x01ff); VDF 1 (MB87404) +// map(0x0200, 0x02ff); VDF 2 (MB87404) +// map(0x0500, 0x0503); MDE (MB87405) +// map(0x0600, 0x0601); OPZ 1 (8-bit port) +// map(0x0700, 0x0701); OPZ 2 (8-bit port) +// map(0x0800, 0x0801); SCAN (8-bit port) (keyboard) + map(0x0900, 0x0900).r(m_adc, FUNC(adc0808_device::data_r)); + map(0x0a00, 0x0a0f).rw("pio", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff); +// map(0x0b00, 0x0b01); LCDC (8-bit port) +// map(0x1000, 0x11ff); TG (MB87402) +// map(0x2000, 0x23ff); SCSI +// map(0x3000, 0x33ff); FDC +// TG 2? +} + +static INPUT_PORTS_START( korgm1 ) + PORT_START("Y0") + PORT_BIT(0x03, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW1") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW5") + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW2") + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW6") + + PORT_START("Y1") + PORT_BIT(0x03, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW3") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW7") + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW4") + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW8") + + PORT_START("Y2") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW9") + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW10") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW11") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW12") + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW13") + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW14") + + PORT_START("Y3") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW15") + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW16") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW17") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW18") + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW19") + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW20") + + PORT_START("Y4") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW31") + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW27") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW28") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW29") + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW24") + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) + + PORT_START("Y5") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW25") + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW26") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW21") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW22") + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW23") + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) + + PORT_START("Y6") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW30") + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW32") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW33") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("SW34") + PORT_BIT(0x30, IP_ACTIVE_LOW, IPT_UNUSED) +INPUT_PORTS_END + + +void korgm1_state::machine_start() +{ + save_item(NAME(m_selected_sw)); +} + +void korgm1_state::machine_reset() +{ +} + + +void korgm1_state::palette_init_korgm1(palette_device &palette) +{ + palette.set_pen_color(0, rgb_t( 69, 63, 66)); + palette.set_pen_color(1, rgb_t(131, 136, 139)); +} + +void korgm1_state::korgm1(machine_config &config) +{ + /* basic machine hardware */ + V50(config, m_maincpu, 32_MHz_XTAL / 2); // µPD70216 + m_maincpu->set_addrmap(AS_PROGRAM, &korgm1_state::korgm1_map); + m_maincpu->set_addrmap(AS_IO, &korgm1_state::korgm1_io); + m_maincpu->out_handler<2>().set_inputline(m_maincpu, INPUT_LINE_IRQ2); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // 2x µPD43256C-15L + battery + + cxd1095_device &pio(CXD1095(config, "pio")); // CXD1095Q + pio.out_porta_cb().set(FUNC(korgm1_state::pio_pa_w)); + pio.in_portb_cb().set(FUNC(korgm1_state::panel_sw_r)); + pio.out_portc_cb().set(FUNC(korgm1_state::panel_leds_w)); + pio.in_portd_cb().set(m_lcdc, FUNC(hd44780_device::db_r)); + pio.out_portd_cb().set(m_lcdc, FUNC(hd44780_device::db_w)); + pio.out_porte_cb().set(m_lcdc, FUNC(hd44780_device::rs_w)).bit(0); + pio.out_porte_cb().append(m_lcdc, FUNC(hd44780_device::rw_w)).bit(1); + pio.out_porte_cb().append(m_lcdc, FUNC(hd44780_device::e_w)).bit(2); + + M58990(config, m_adc, 32_MHz_XTAL / 32); // M58990P-1 (µPD65013G-402 divides V50 CLKOUT by 8) + // Joystick, "value" and After Touch routes here + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_color(rgb_t::green()); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update("lcdc", FUNC(hd44780_device::screen_update)); + screen.set_size(6*40, 8*2); + screen.set_visarea_full(); + screen.set_palette("palette"); + + PALETTE(config, "palette", FUNC(korgm1_state::palette_init_korgm1), 2); + + HD44780(config, m_lcdc, 0); + m_lcdc->set_lcd_size(2, 40); + m_lcdc->set_pixel_update_cb(FUNC(korgm1_state::lcd_pixel_update)); + + /* sound hardware */ + //SPEAKER(config, "mono").front_center(); +} + + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + +ROM_START( korgm1 ) + ROM_REGION16_LE( 0x20000, "ipl", 0 ) + ROM_LOAD16_BYTE( "rev19-ic23-880219.bin", 0x00001, 0x10000, CRC(397bce2d) SHA1(8df016ae172904eb94bc782a054bd783878c6f75) ) + ROM_LOAD16_BYTE( "rev19-ic32-880319.bin", 0x00000, 0x10000, CRC(4e33fc09) SHA1(2b96e054a08bf1091310d9367e35fbcf52003a80) ) + + ROM_REGION( 0x8000, "tgrom", ROMREGION_ERASE00 ) + ROM_LOAD( "mb83512-15p-259.ic30", 0x0000, 0x8000, NO_DUMP ) + ROM_IGNORE( 0x8000 ) + + ROM_REGION( 0x4000, "vdf1", ROMREGION_ERASE00 ) + ROM_LOAD( "upd23c512-039.ic26", 0x0000, 0x4000, NO_DUMP ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_IGNORE( 0x4000 ) + + ROM_REGION( 0x4000, "vdf2", ROMREGION_ERASE00 ) + ROM_LOAD( "upd23c512-039.ic20", 0x0000, 0x4000, NO_DUMP ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) +ROM_END + +ROM_START( korgm1ex ) + ROM_REGION16_LE( 0x20000, "ipl", 0 ) + ROM_LOAD16_BYTE( "v. 1.29 27c512 hi ic23.bin", 0x00001, 0x10000, CRC(ff96bae7) SHA1(8e84755e0b48e47b9fa46958ff33b4111602950b) ) + ROM_LOAD16_BYTE( "v. 1.29 27c512 lo ic32.bin", 0x00000, 0x10000, CRC(730cedf1) SHA1(ae1e5aee1e296714dc518dc0184c7b9b398df11d) ) + + ROM_REGION( 0x8000, "tgrom", ROMREGION_ERASE00 ) + ROM_LOAD( "mb83512-15p-259.ic30", 0x0000, 0x8000, NO_DUMP ) + ROM_IGNORE( 0x8000 ) + + ROM_REGION( 0x4000, "vdf1", ROMREGION_ERASE00 ) + ROM_LOAD( "upd23c512-039.ic26", 0x0000, 0x4000, NO_DUMP ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_IGNORE( 0x4000 ) + + ROM_REGION( 0x4000, "vdf2", ROMREGION_ERASE00 ) + ROM_LOAD( "upd23c512-039.ic20", 0x0000, 0x4000, NO_DUMP ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) +ROM_END + +ROM_START( korgm1r ) + ROM_REGION16_LE( 0x20000, "ipl", 0 ) + ROM_LOAD16_BYTE( "880506_ic23 high _27c512_ m1r.bin", 0x00001, 0x10000, CRC(c8b09803) SHA1(30579364d224e8422941acd15b8c7cfc5ffc0e8d) ) + ROM_LOAD16_BYTE( "880606_ic32 low _27c512_ m1r.bin", 0x00000, 0x10000, CRC(ad3d3c21) SHA1(6f0e4778edc48017dcd813c2688967e362c14328) ) + + ROM_REGION( 0x8000, "tgrom", ROMREGION_ERASE00 ) + ROM_LOAD( "mb83512-15p-259.ic30", 0x0000, 0x8000, NO_DUMP ) + ROM_IGNORE( 0x8000 ) + + ROM_REGION( 0x4000, "vdf1", ROMREGION_ERASE00 ) + ROM_LOAD( "upd23c512-039.ic26", 0x0000, 0x4000, NO_DUMP ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_IGNORE( 0x4000 ) + + ROM_REGION( 0x4000, "vdf2", ROMREGION_ERASE00 ) + ROM_LOAD( "upd23c512-039.ic20", 0x0000, 0x4000, NO_DUMP ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) +ROM_END + +ROM_START( korgm1rex ) + ROM_REGION16_LE( 0x20000, "ipl", 0 ) + ROM_LOAD16_BYTE( "880512 _ic23 high _27c512_ m1rex.bin", 0x00001, 0x10000, CRC(67059dc6) SHA1(91c387689323f6bf9a03ba18df76f29106f87e4a) ) + ROM_LOAD16_BYTE( "880612 _ic32 low _27c512_ m1rex.bin", 0x00000, 0x10000, CRC(056112b2) SHA1(4d7b552034b1a6f09d7ff30b74f4351ddecc2e24) ) + + ROM_REGION( 0x8000, "tgrom", ROMREGION_ERASE00 ) + ROM_LOAD( "mb83512-15p-259.ic30", 0x0000, 0x8000, NO_DUMP ) + ROM_IGNORE( 0x8000 ) + + ROM_REGION( 0x4000, "vdf1", ROMREGION_ERASE00 ) + ROM_LOAD( "upd23c512-039.ic26", 0x0000, 0x4000, NO_DUMP ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_IGNORE( 0x4000 ) + + ROM_REGION( 0x4000, "vdf2", ROMREGION_ERASE00 ) + ROM_LOAD( "upd23c512-039.ic20", 0x0000, 0x4000, NO_DUMP ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) +ROM_END + +ROM_START( korgm1p1 ) + ROM_REGION16_LE( 0x20000, "ipl", 0 ) + ROM_LOAD16_BYTE( "plus-1_lsb.bin", 0x00000, 0x10000, CRC(13a2add2) SHA1(7993ace91a10f0f523113538bb7be6fa29ad52f8) ) + ROM_LOAD16_BYTE( "plus-1_msb.bin", 0x00001, 0x10000, CRC(ce6d8473) SHA1(eb45dde07d78ed086da01bb0431c1d8d2dc9a15e) ) + + ROM_REGION( 0x8000, "tgrom", 0 ) + ROM_LOAD( "ic30.bin", 0x0000, 0x8000, CRC(8b23ba0f) SHA1(4759e8918961f080f2607d8213a789c7a81228d0) ) + ROM_IGNORE( 0x8000 ) + + ROM_REGION( 0x4000, "vdf1", 0 ) + ROM_LOAD( "ic26.bin", 0x0000, 0x4000, CRC(8b23ba0f) SHA1(4759e8918961f080f2607d8213a789c7a81228d0) ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_IGNORE( 0x4000 ) + + ROM_REGION( 0x4000, "vdf2", 0 ) + ROM_LOAD( "ic20.bin", 0x0000, 0x4000, CRC(8b23ba0f) SHA1(4759e8918961f080f2607d8213a789c7a81228d0) ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + ROM_CONTINUE( 0x0000, 0x4000 ) + + ROM_REGION16_LE( 0x400000, "pcm", 0 ) + ROM_LOAD16_BYTE( "ic36.bin", 0x000000, 0x080000, CRC(5a3adc4c) SHA1(964fd245e46b4adf63b9b03b0490117b6df5e272) ) + ROM_LOAD16_BYTE( "ic40.bin", 0x000001, 0x080000, CRC(77ac122b) SHA1(aa5a99ac697d673cf758eae323cbaeca0bb6f243) ) + ROM_LOAD16_BYTE( "ic37.bin", 0x100000, 0x080000, CRC(fe15f7ca) SHA1(aa339c0972662d38773cdb533ceb0feb30b62eda) ) + ROM_LOAD16_BYTE( "ic41.bin", 0x100001, 0x080000, CRC(e0dce6ad) SHA1(6952b5b8c2a72c3a515444f1d1841dc27fadd62a) ) + ROM_LOAD16_BYTE( "ic38.bin", 0x200000, 0x080000, CRC(14554a91) SHA1(d2ecd6e7a8fdf6b52fc083628b92233a13db8198) ) + ROM_LOAD16_BYTE( "ic42.bin", 0x200001, 0x080000, CRC(bf404899) SHA1(9bda08cf5bddb733f203ed2f6622f18d9635d575) ) + ROM_LOAD16_BYTE( "ic39.bin", 0x300000, 0x080000, CRC(ef8324c4) SHA1(6cbbd8421f777f3d39644474daac2b15f9636810) ) + ROM_LOAD16_BYTE( "ic43.bin", 0x300001, 0x080000, CRC(77c39278) SHA1(bf87f16fa6af1a3076c19c12901b02cbefac3fce) ) + + ROM_REGION( 0x8000, "progcard", 0 ) + ROM_LOAD( "plus-1_prog_card.bin", 0x0000, 0x8000, CRC(c31b3bce) SHA1(ef341868800bc98c9677f6f9227e8a2342504391) ) + + ROM_REGION( 0x400000, "multisound", 0 ) + ROM_LOAD( "u201.bin", 0x000000, 0x100000, CRC(19fc1c37) SHA1(2badf71d0f104341436f4a35b1255b2c4d3e67bf) ) + ROM_LOAD( "u202.bin", 0x100000, 0x100000, CRC(bb272f7e) SHA1(4c73c97dc313313ec2142e5b73defd38d1fcbddf) ) + ROM_LOAD( "u203.bin", 0x200000, 0x100000, CRC(65eb825d) SHA1(8289b06759cf6e4eafe04c940f11312466352e14) ) + ROM_LOAD( "u204.bin", 0x300000, 0x100000, CRC(ff8d6307) SHA1(3021fe2ce88884e57b397bc5dfb4b29afc56eec4) ) +ROM_END + +SYST(1988, korgm1, 0, 0, korgm1, korgm1, korgm1_state, empty_init, "Korg", "M1 Music Workstation (Rev 19)", MACHINE_IS_SKELETON) +SYST(1988, korgm1ex, korgm1, 0, korgm1, korgm1, korgm1_state, empty_init, "Korg", "M1 EX Music Workstation (v1.29)", MACHINE_IS_SKELETON) +SYST(1988, korgm1r, korgm1, 0, korgm1, korgm1, korgm1_state, empty_init, "Korg", "M1R Music Workstation (v1.06)", MACHINE_IS_SKELETON) +SYST(1988, korgm1rex, korgm1, 0, korgm1, korgm1, korgm1_state, empty_init, "Korg", "M1R EX Music Workstation (v1.12)", MACHINE_IS_SKELETON) +SYST(1993, korgm1p1, korgm1, 0, korgm1, korgm1, korgm1_state, empty_init, "InVision Interactive", "M1 Plus+1 Music Workstation", MACHINE_IS_SKELETON) diff --git a/src/mame/etc/korgm1.cpp b/src/mame/etc/korgm1.cpp deleted file mode 100644 index 47c0989e7d8..00000000000 --- a/src/mame/etc/korgm1.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Angelo Salese -/*************************************************************************** - - Korg M1 (c) 1988 - - skeleton driver - - Note: driver isn't yet hooked up to mess.lst / mess.mak, until a ROM - dump is found. - -***************************************************************************/ - - -#include "emu.h" -#include "cpu/nec/nec.h" -#include "machine/cxd1095.h" -//#include "sound/ay8910.h" -#include "emupal.h" - -#define MAIN_CLOCK XTAL(16'000'000) // Unknown clock - -class korgm1_state : public driver_device -{ -public: - korgm1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu") - { } - - // devices - required_device m_maincpu; - - // screen updates - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - void korgm1(machine_config &config); - - void korgm1_io(address_map &map); - void korgm1_map(address_map &map); -protected: - // driver_device overrides - virtual void machine_start(); - virtual void machine_reset(); - - virtual void video_start(); -}; - -void korgm1_state::video_start() -{ -} - -uint32_t korgm1_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) -{ - return 0; -} - -void korgm1_state::korgm1_map(address_map &map) -{ - map(0x00000, 0x0ffff).ram(); // 64 KB -// map(0x50000, 0x57fff).ram(); // memory card 32 KB - map(0xe0000, 0xfffff).rom().region("ipl", 0); -} - -void korgm1_state::korgm1_io(address_map &map) -{ -// map(0x0000, 0x00ff); internal peripheral (?) -// map(0x0100, 0x01ff); VDF 1 (MB87404) -// map(0x0200, 0x02ff); VDF 2 (MB87404) -// map(0x0500, 0x0503); MDE (MB87405) -// map(0x0600, 0x0601); OPZ 1 (8-bit port) -// map(0x0700, 0x0701); OPZ 2 (8-bit port) -// map(0x0800, 0x0801); SCAN (8-bit port) (keyboard) -// map(0x0900, 0x0900); ADC (M58990P, compatible with ADC0808; Joystick, "value" and After Touch routes here) -// map(0x0a00, 0x0a07); PIO (CXD1095Q; LCD, LED and SW routes here; also controls ADC channel select and TG/VDF/MDE reset line) -// map(0x0b00, 0x0b01); LCDC (8-bit port) -// map(0x1000, 0x11ff); TG (MB87402) -// map(0x2000, 0x23ff); SCSI -// map(0x3000, 0x33ff); FDC -// TG 2? -} - -static INPUT_PORTS_START( korgm1 ) - /* dummy active high structure */ - PORT_START("SYSA") - PORT_DIPNAME( 0x01, 0x00, "SYSA" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - /* dummy active low structure */ - PORT_START("DSWA") - PORT_DIPNAME( 0x01, 0x01, "DSWA" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -#if 0 -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 1, - { RGN_FRAC(0,1) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; -#endif - -static GFXDECODE_START( gfx_korgm1 ) -// GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 ) -GFXDECODE_END - - -void korgm1_state::machine_start() -{ -} - -void korgm1_state::machine_reset() -{ -} - - -PALETTE_INIT_MEMBER(korgm1_state, korgm1) -{ -} - -void korgm1_state::korgm1(machine_config &config) -{ - /* basic machine hardware */ - V30(config, m_maincpu, MAIN_CLOCK); // V50 actually - m_maincpu->set_addrmap(AS_PROGRAM, &korgm1_state::korgm1_map); - m_maincpu->set_addrmap(AS_IO, &korgm1_state::korgm1_io); - - CXD1095(config, "pio"); - - /* video hardware */ - /* TODO: LCD actually */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); - screen.set_screen_update(FUNC(korgm1_state::screen_update)); - screen.set_size(32*8, 32*8); - screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); - - GFXDECODE(config, "gfxdecode", "palette", gfx_korgm1); - - PALETTE(config, "palette").set_entries(8); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); -// AY8910(config, "aysnd", MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 0.30); -} - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( korgm1 ) - ROM_REGION( 0x20000, "ipl", ROMREGION_ERASE00 ) - ROM_LOAD( "bios.rom", 0x00000, 0x20000, NO_DUMP ) - - ROM_REGION( 0x200000, "pcm", ROMREGION_ERASE00 ) - ROM_LOAD( "pcm.rom", 0x00000, 0x200000, NO_DUMP ) - -// ROM_REGION( 0x10000, "gfx1", ROMREGION_ERASE00 ) -ROM_END - -GAME( 1988, korgm1, 0, korgm1, korgm1, empty_init, ROT0, "Korg", "M1", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 22feba6ff77..a1cda5c943b 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18671,6 +18671,13 @@ kontest // GX800 (c) 198? (Japan) @source:kopunch.cpp kopunch // 834-0103 (c) 1981 Sega +@source:korgm1.cpp +korgm1 // +korgm1ex // +korgm1p1 // +korgm1r // +korgm1rex // + @source:kramermc.cpp kramermc // 1987 Kramer MC diff --git a/src/mame/mess.flt b/src/mame/mess.flt index e5a81338e78..e1731d31128 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -438,6 +438,7 @@ kc.cpp kdt6.cpp kim1.cpp konin.cpp +korgm1.cpp kramermc.cpp krokha.cpp kron.cpp -- cgit v1.2.3