diff options
Diffstat (limited to 'src/mame/drivers/yunsung8.cpp')
-rw-r--r-- | src/mame/drivers/yunsung8.cpp | 630 |
1 files changed, 0 insertions, 630 deletions
diff --git a/src/mame/drivers/yunsung8.cpp b/src/mame/drivers/yunsung8.cpp deleted file mode 100644 index 998ba432f31..00000000000 --- a/src/mame/drivers/yunsung8.cpp +++ /dev/null @@ -1,630 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Luca Elia -/*************************************************************************** - - -= Yun Sung 8 Bit Games =- - - driver by Luca Elia (l.elia@tin.it) - - -Main CPU : Z80B -Sound CPU : Z80A -Video Chips : ? -Sound Chips : OKI M5205 + YM3812 - ---------------------------------------------------------------------------- -Year + Game Board# ---------------------------------------------------------------------------- -95 Cannon Ball YS-ROCK-970712 or 940712? -95 Magix / Rock YS-ROCK-940712 -94? Rock Tris YS-ROCK-940712 ---------------------------------------------------------------------------- - -Notes: - -- "Magix" can change title to "Rock" through a DSW -- In service mode press Service Coin (e.g. '9') - -***************************************************************************/ - -#include "emu.h" -#include "includes/yunsung8.h" - -#include "cpu/z80/z80.h" -#include "machine/gen_latch.h" -#include "sound/ym3812.h" -#include "screen.h" -#include "speaker.h" - - -/*************************************************************************** - - - Memory Maps - Main CPU - - -***************************************************************************/ - - -void yunsung8_state::bankswitch_w(uint8_t data) -{ - m_layers_ctrl = data & 0x30; // Layers enable - - membank("mainbank")->set_entry(data & 0x07); - - if (data & ~0x37) - logerror("CPU #0 - PC %04X: Bank %02X\n", m_maincpu->pc(), data); -} - -void yunsung8_state::main_irq_ack_w(uint8_t data) -{ - m_maincpu->set_input_line(0, CLEAR_LINE); -} - -/* - Banked Video RAM: - - c000-c7ff Palette (bit 1 of port 0 switches between 2 banks) - - c800-cfff Color (bit 0 of port 0 switches between 2 banks) - d000-dfff Tiles "" -*/ - -void yunsung8_state::main_map(address_map &map) -{ - map(0x0000, 0x7fff).rom(); - map(0x0001, 0x0001).w(FUNC(yunsung8_state::bankswitch_w)); // ROM Bank (again?) - map(0x8000, 0xbfff).bankr("mainbank"); // Banked ROM - map(0xc000, 0xdfff).rw(FUNC(yunsung8_state::videoram_r), FUNC(yunsung8_state::videoram_w)); // Video RAM (Banked) - map(0xe000, 0xffff).ram(); -} - - -void yunsung8_state::port_map(address_map &map) -{ - map.global_mask(0xff); - map(0x00, 0x00).portr("SYSTEM").w(FUNC(yunsung8_state::videobank_w)); // video RAM bank - map(0x01, 0x01).portr("P1").w(FUNC(yunsung8_state::bankswitch_w)); // ROM Bank + Layers Enable - map(0x02, 0x02).portr("P2").w("soundlatch", FUNC(generic_latch_8_device::write)); // To Sound CPU - map(0x03, 0x03).portr("DSW1"); - map(0x04, 0x04).portr("DSW2"); - map(0x06, 0x06).w(FUNC(yunsung8_state::flipscreen_w)); // Flip Screen - map(0x07, 0x07).w(FUNC(yunsung8_state::main_irq_ack_w)); -} - - - -/*************************************************************************** - - - Memory Maps - Sound CPU - - -***************************************************************************/ - -void yunsung8_state::sound_bankswitch_w(uint8_t data) -{ - m_msm->reset_w(data & 0x20); - - membank("soundbank")->set_entry(data & 0x07); - - if (data != (data & (~0x27))) - logerror("%s: Bank %02X\n", machine().describe_context(), data); -} - - - -void yunsung8_state::sound_map(address_map &map) -{ - map(0x0000, 0x7fff).rom(); - map(0x8000, 0xbfff).bankr("soundbank"); // Banked ROM - map(0xe000, 0xe000).w(FUNC(yunsung8_state::sound_bankswitch_w)); // ROM Bank - map(0xe400, 0xe400).w(m_adpcm_select, FUNC(ls157_device::ba_w)); - map(0xec00, 0xec01).w("ymsnd", FUNC(ym3812_device::write)); - map(0xf000, 0xf7ff).ram(); - map(0xf800, 0xf800).r("soundlatch", FUNC(generic_latch_8_device::read)); // From Main CPU -} - - - - -/*************************************************************************** - - - Input Ports - - -***************************************************************************/ - - -/*************************************************************************** - Rock Tris -***************************************************************************/ -static INPUT_PORTS_START( rocktris ) - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) - - PORT_START("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // Bomb - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // Rotate - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - - PORT_START("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // Bomb - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // Rotate - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - - PORT_START("DSW1") - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, "Unknown 2-0" ) // the rest seems unused - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Unknown 2-1" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Unknown 2-2" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Unknown 2-3" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Unknown 2-4" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Unknown 2-5" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Unknown 2-6" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/*************************************************************************** - Magix -***************************************************************************/ -static INPUT_PORTS_START( magix ) - PORT_INCLUDE(rocktris) // BTN1 = Rotate, BTN2 = Rotate (Again! ...same dir as BTN1) - - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x01, 0x01, "Title" ) - PORT_DIPSETTING( 0x01, "Magix" ) - PORT_DIPSETTING( 0x00, "Rock" ) -INPUT_PORTS_END - -/*************************************************************************** - Cannon Ball -***************************************************************************/ -static INPUT_PORTS_START( cannball ) - PORT_INCLUDE(rocktris) - - PORT_MODIFY("P1") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // BTN1 = Launch, BTN2 = Rotate, BTN3 = Bomb - - PORT_MODIFY("P2") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) // BTN1 = Launch, BTN2 = Rotate, BTN3 = Bomb - - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x0c, 0x0c, "Bombs" ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x00, "4" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( cannbalv ) - PORT_INCLUDE(cannball) - - PORT_MODIFY("SYSTEM") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) // always activated, otherwise the game resets. a simple check for horizontal / vertical version of the game? -INPUT_PORTS_END - -/*************************************************************************** - - - Graphics Layouts - - -***************************************************************************/ - -/* 8x8x4 tiles in 2 roms */ -static const gfx_layout layout_8x8x4 = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { STEP4(0,1) }, - { RGN_FRAC(1,2)+1*4,RGN_FRAC(1,2)+0*4,1*4,0*4, RGN_FRAC(1,2)+3*4,RGN_FRAC(1,2)+2*4,3*4,2*4}, - { STEP8(0,16) }, - 8*8*4/2 -}; - -/* 8x8x8 tiles in 4 roms */ -static const gfx_layout layout_8x8x8 = -{ - 8,8, - RGN_FRAC(1,4), - 8, - { STEP8(0,1) }, - { RGN_FRAC(0,4) + 0*8, RGN_FRAC(1,4) + 0*8, RGN_FRAC(2,4) + 0*8, RGN_FRAC(3,4) + 0*8, - RGN_FRAC(0,4) + 1*8, RGN_FRAC(1,4) + 1*8, RGN_FRAC(2,4) + 1*8, RGN_FRAC(3,4) + 1*8 }, - { STEP8(0,16) }, - 8*8*8/4 -}; - -static GFXDECODE_START( gfx_yunsung8 ) - GFXDECODE_ENTRY( "bgfx", 0, layout_8x8x8, 0, 0x08 ) // [0] Tiles (Background) - GFXDECODE_ENTRY( "text", 0, layout_8x8x4, 0, 0x40 ) // [1] Tiles (Text) -GFXDECODE_END - - - -/*************************************************************************** - - - Machine Drivers - - -***************************************************************************/ - - -WRITE_LINE_MEMBER(yunsung8_state::adpcm_int) -{ - if (!state) - return; - - m_toggle = !m_toggle; - m_adpcm_select->select_w(m_toggle); - m_audiocpu->set_input_line(INPUT_LINE_NMI, m_toggle); -} - -void yunsung8_state::machine_start() -{ - m_bg_vram = m_videoram + 0x0000; // Ram is banked - m_fg_vram = m_videoram + 0x2000; - - membank("mainbank")->configure_entries(0, 8, memregion("maincpu")->base(), 0x4000); - membank("soundbank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000); - - save_item(NAME(m_videoram)); - save_item(NAME(m_layers_ctrl)); - save_item(NAME(m_videobank)); - save_item(NAME(m_toggle)); -} - -void yunsung8_state::machine_reset() -{ - m_videobank = 0; - m_layers_ctrl = 0; - m_toggle = false; -} - - -void yunsung8_state::yunsung8(machine_config &config) -{ - /* basic machine hardware */ - Z80(config, m_maincpu, XTAL(16'000'000)/2); /* Z80B @ 8MHz? */ - m_maincpu->set_addrmap(AS_PROGRAM, &yunsung8_state::main_map); - m_maincpu->set_addrmap(AS_IO, &yunsung8_state::port_map); - m_maincpu->set_vblank_int("screen", FUNC(yunsung8_state::irq0_line_assert)); /* No nmi routine */ - - Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* ? */ - m_audiocpu->set_addrmap(AS_PROGRAM, &yunsung8_state::sound_map); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_raw(XTAL(16'000'000)/2, 512, 64, 512-64, 262, 8, 256-8); /* TODO: completely inaccurate */ - screen.set_screen_update(FUNC(yunsung8_state::screen_update)); - screen.set_palette(m_palette); - - GFXDECODE(config, m_gfxdecode, m_palette, gfx_yunsung8); - PALETTE(config, m_palette).set_entries(2048); - - /* sound hardware */ - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); - - GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_audiocpu, 0); - - ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(16'000'000)/4)); - ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 1.0); - ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 1.0); - - LS157(config, m_adpcm_select, 0); - m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w)); - - MSM5205(config, m_msm, XTAL(400'000)); /* verified on pcb */ - m_msm->vck_legacy_callback().set(FUNC(yunsung8_state::adpcm_int)); /* interrupt function */ - m_msm->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz, 4 Bits */ - m_msm->add_route(ALL_OUTPUTS, "lspeaker", 0.80); - m_msm->add_route(ALL_OUTPUTS, "rspeaker", 0.80); -} - - -/*************************************************************************** - - - ROMs Loading - - -***************************************************************************/ - -/*************************************************************************** - -Magix -Yun Sung, 1995 - -YS-ROCK-940712 -+-------------------------------------+ -|VOL YM3014 6116 04| -| M5205 400KHz 03| -| 09 | -| Z80A CXK5118PN-15L 02| -| 08 GM76C28-10 01| -| MCM2018AN45 | -|J MCM2018AN45 | -|A DSW1 +--------+ | -|M | Quick | | -|M DSW2* | Logic | | -|A |QL12x16B| | -| | OPL84C | | -| U66 +--------+ 06| -| HM6264 05| -| 07 HM6264 | -| Z80B YM3812 10 16MHz | -+-------------------------------------+ - - Main CPU: Z80B -Sound CPU: Z80A - Sound: Yamaha YM3812 + Oki M5205 + YM3014 DAC - Video: QuickLogic QL12x16B-OPL84C FPGA - OSC: 16MHz + 400Khz resonator - Memory: 2 x MCM2018AN45, 2 x HM6264, CXK5118PN-15L, GM76C28-10 & 6116 - Misc: DSW1 is a 8 position dipswitch - DSW2 is not populated - VOL Volume pot - -***************************************************************************/ - -ROM_START( magix ) - ROM_REGION( 0x20000, "maincpu", 0 ) /* Main Z80 Code */ - ROM_LOAD( "yunsung8.07", 0x00000, 0x20000, CRC(d4d0b68b) SHA1(d7e1fb57a14f8b822791b98cecc6d5a053a89e0f) ) - - ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 Code */ - ROM_LOAD( "yunsung8.08", 0x00000, 0x20000, CRC(6fd60be9) SHA1(87622dc2967842629e90a02b415bec86cc26cbc7) ) - - ROM_REGION( 0x200000, "bgfx", 0 ) /* Background */ - ROM_LOAD( "yunsung8.04", 0x000000, 0x80000, CRC(0a100d2b) SHA1(c36a2489748c8ac7b6d7457ad09d8153707c85be) ) - ROM_LOAD( "yunsung8.03", 0x080000, 0x80000, CRC(c8cb0373) SHA1(339c4e0fef44da3cab615e07dc8739bd925ebf28) ) - ROM_LOAD( "yunsung8.02", 0x100000, 0x80000, CRC(09efb8e5) SHA1(684bb5c4b579f8c77e79aab4decbefea495d9474) ) - ROM_LOAD( "yunsung8.01", 0x180000, 0x80000, CRC(4590d782) SHA1(af875166207793572b9ecf01bb6a24feba562a96) ) - - ROM_REGION( 0x40000, "text", 0 ) /* Text */ - ROM_LOAD( "yunsung8.05", 0x00000, 0x20000, CRC(862d378c) SHA1(a4e2cf14b5b25c6b8725dd285ddea65ce9ee257a) ) // only first $8000 bytes != 0 - ROM_LOAD( "yunsung8.06", 0x20000, 0x20000, CRC(8b2ab901) SHA1(1a5c05dd0cf830b645357a62d8e6e876b44c6b7f) ) // only first $8000 bytes != 0 - - ROM_REGION( 0x0002, "plds", 0 ) /* PAL's and GAL's */ - ROM_LOAD( "palce20v8h.09", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */ - ROM_LOAD( "palce20v8h.10", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */ -ROM_END - -/*************************************************************************** - -Magix / Rock - -Original Yun Sung board, but has EPROMs with open windows and handwritten -numbers on them. "Yun Sung 1995" logo has been removed from the text tiles. -Code is different, shifted around not patched. - -***************************************************************************/ - -ROM_START( magixb ) - ROM_REGION( 0x20000, "maincpu", 0 ) /* Main Z80 Code */ - ROM_LOAD( "8.bin", 0x00000, 0x20000, CRC(3b92020f) SHA1(edc15c5b712774dad1685ce9a94e4290aab9934a) ) - - ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 Code */ - ROM_LOAD( "9.bin", 0x00000, 0x20000, CRC(6fd60be9) SHA1(87622dc2967842629e90a02b415bec86cc26cbc7) ) // yunsung8.08 - - ROM_REGION( 0x200000, "bgfx", 0 ) /* Background */ - ROM_LOAD( "1.bin", 0x000000, 0x80000, CRC(0a100d2b) SHA1(c36a2489748c8ac7b6d7457ad09d8153707c85be) ) // yunsung8.04 - ROM_LOAD( "2.bin", 0x080000, 0x80000, CRC(c8cb0373) SHA1(339c4e0fef44da3cab615e07dc8739bd925ebf28) ) // yunsung8.03 - ROM_LOAD( "3.bin", 0x100000, 0x80000, CRC(09efb8e5) SHA1(684bb5c4b579f8c77e79aab4decbefea495d9474) ) // yunsung8.02 - ROM_LOAD( "4.bin", 0x180000, 0x80000, CRC(4590d782) SHA1(af875166207793572b9ecf01bb6a24feba562a96) ) // yunsung8.01 - - ROM_REGION( 0x40000, "text", 0 ) /* Text */ - ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(11b99819) SHA1(4b20feea227cefd2e905601d934538a13ba6685b) ) // only first $8000 bytes != 0 - ROM_LOAD( "6.bin", 0x20000, 0x20000, CRC(361a864c) SHA1(e0bb78b49fc3d461d6ac46ad97a9d04112783132) ) // only first $8000 bytes != 0 - - ROM_REGION( 0x0002, "plds", 0 ) /* PAL's and GAL's */ - ROM_LOAD( "palce20v8h.09", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */ - ROM_LOAD( "palce20v8h.10", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */ -ROM_END - - -/*************************************************************************** - -Cannon Ball -Yun Sung, 1995 - -Cannon Ball (vertical) -+-------------------------------------+ -|VOL YM3014 6116 YunSung7| -| M5205 400KHz YunSung6| -| Z80A CXK5118PN-15L YunSung5| -| YunSung8 GM76C28-10 YunSung4| -| MCM2018AN45 | -|J MCM2018AN45 | -|A DSW1 +--------+ | -|M |Cy7C384A| | -|M DSW2* |XJC 9506| | -|A | CYP | | -| | 001002 | | -| U66 +--------+ YunSung3| -| HM6264 YunSung2| -| YunSung1 HM6264 | -| Z80B YM3812 16MHz | -+-------------------------------------+ - - Main CPU: Z80B -Sound CPU: Z80A - Sound: Yamaha YM3812 + Oki M5205 + YM3014 DAC - Video: Cypress CY7C384A - Very high speed 6K gate CMOS FPGA - OSC: 16MHz + 400Khz resonator - Memory: 2 x MCM2018AN45, 2 x HM6264, CXK5118PN-15L, GM76C28-10 & 6116 - Misc: DSW1 is a 8 position dipswitch - DSW2 is not populated - VOL Volume pot - -01, 02, 03, 04 are 27c020 -05, 06, 07, 08 are 27c010 -2 pals used - -***************************************************************************/ - -ROM_START( cannball ) - ROM_REGION( 0x20000, "maincpu", 0 ) /* Main Z80 Code */ - ROM_LOAD( "cannball.07", 0x00000, 0x20000, CRC(17db56b4) SHA1(032e3dbde0b0e315dcb5f2b31f57e75e78818f2d) ) - - ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 Code */ - ROM_LOAD( "cannball.08", 0x00000, 0x20000, CRC(11403875) SHA1(9f583bc4f08e7aef3fd0f3fe3f31cce1d226641a) ) - - ROM_REGION( 0x100000, "bgfx", 0 ) /* Background */ - ROM_LOAD( "cannball.01", 0x000000, 0x40000, CRC(2d7785e4) SHA1(9911354c0be192506f8bfca3e85ede0bbc4828d5) ) - ROM_LOAD( "cannball.02", 0x040000, 0x40000, CRC(24df387e) SHA1(5f4afe11feb367ca3b3c4f5eb37a6b6c4edb83bb) ) - ROM_LOAD( "cannball.03", 0x080000, 0x40000, CRC(4d62f192) SHA1(8c60b9b4b36c13c2d145c49413580a10e71eb283) ) - ROM_LOAD( "cannball.04", 0x0c0000, 0x40000, CRC(37cf8b12) SHA1(f93df8e0babe2c4ec996aa3c2a48bf40a5a02e62) ) - - ROM_REGION( 0x40000, "text", 0 ) /* Text */ - ROM_LOAD( "cannball.05", 0x00000, 0x20000, CRC(87c1f1fa) SHA1(dbc568d2133734e41b69fd8d18b76531648b32ef) ) - ROM_LOAD( "cannball.06", 0x20000, 0x20000, CRC(e722bee8) SHA1(3aed7df9df81a6776b6bf2f5b167965b0d689216) ) -ROM_END - - -ROM_START( cannballv ) - ROM_REGION( 0x20000, "maincpu", 0 ) /* Main Z80 Code */ - ROM_LOAD( "yunsung1", 0x00000, 0x20000, CRC(f7398b0d) SHA1(f2cdb9c4662cd325376d25ae9611f689605042db) ) - - ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 Code */ - ROM_LOAD( "yunsung8", 0x00000, 0x20000, CRC(11403875) SHA1(9f583bc4f08e7aef3fd0f3fe3f31cce1d226641a) ) - - ROM_REGION( 0x200000, "bgfx", 0 ) /* Background */ - ROM_LOAD( "yunsung7", 0x000000, 0x80000, CRC(a5f1a648) SHA1(7a5bf5bc0ad257ccb12104512e98dfb3525babfc) ) - ROM_LOAD( "yunsung6", 0x080000, 0x80000, CRC(8baa686e) SHA1(831c3e2864d262bf5429dca6653c83dc976e610e) ) - ROM_LOAD( "yunsung5", 0x100000, 0x80000, CRC(a7f2ce51) SHA1(81632aca067f2c8c45488266c4489d9af24fb552) ) - ROM_LOAD( "yunsung4", 0x180000, 0x80000, CRC(74bef793) SHA1(6208580ce747cec3d410ce3c71e07aa570b9121d) ) - - ROM_REGION( 0x40000, "text", 0 ) /* Text */ - ROM_LOAD( "yunsung3", 0x00000, 0x20000, CRC(8217abbe) SHA1(1a459a816a1aa5b68858e39c4a21bd78ee78dcab) ) - ROM_LOAD( "yunsung2", 0x20000, 0x20000, CRC(76de1045) SHA1(a3845ee1874e6ec0ce26e6e73e4643243779e70d) ) -ROM_END - - -/*************************************************************************** - -Rock Tris by Yunsung - -YS-ROCK-970712 -+-------------------------------------+ -|VOL YM3014 6116 04| -| M5205 400KHz 03| -| Z80A CXK5118PN-15L 02| -| 08 GM76C28-10 01| -| MCM2018AN45 | -|J MCM2018AN45 | -|A DSW1 +--------+ | -|M | Quick | | -|M DSW2* | Logic | | -|A |QL12x16B| | -| | OPL84C | | -| U66 +--------+ 06| -| HM6264 05| -| 07 HM6264 | -| Z80B YM3812 16MHz | -+-------------------------------------+ - - Main CPU: Z80B -Sound CPU: Z80A - Sound: Yamaha YM3812 (marked as UA010) + Oki M5205 + YM3014 DAC - Video: QuickLogic QL12x16B-OPL84C FPGA - OSC: 16MHz + 400Khz resonator - Memory: 2 x MCM2018AN45, 2 x HM6264, CXK5118PN-15L, GM76C28-10 & 6116 - Misc: DSW1 is a 8 position dipswitch - DSW2 is not populated - VOL Volume pot - -***************************************************************************/ - -ROM_START( rocktris ) - ROM_REGION( 0x20000, "maincpu", 0 ) /* Main Z80 Code */ - ROM_LOAD( "cpu07.bin", 0x00000, 0x20000, CRC(46e3b79c) SHA1(81a587b9f986c4e39b1888ec6ed6b86d1469b9a0) ) - - ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 Code */ - ROM_LOAD( "cpu08.bin", 0x00000, 0x20000, CRC(3a78a4cf) SHA1(f643c7a217cbb71f3a03f1f4a16545c546332819) ) - - ROM_REGION( 0x200000, "bgfx", 0 ) /* Background */ - ROM_LOAD( "gfx4.bin", 0x000000, 0x80000, CRC(abb49cac) SHA1(e2d766e950df398a8ec8b6888e128ffc3bdf1ce9) ) - ROM_LOAD( "gfx3.bin", 0x080000, 0x80000, CRC(70a6ad52) SHA1(04cd58d3f885dd7c2fb1061f93d3ae3a418ad762) ) - ROM_LOAD( "gfx2.bin", 0x100000, 0x80000, CRC(fcc9ec97) SHA1(1f09452988e3fa976b233e3b458c7a60977b76aa) ) - ROM_LOAD( "gfx1.bin", 0x180000, 0x80000, CRC(4295034d) SHA1(9bdbbcdb46eb659a13b77c5bb26c9d8ad43731a7) ) - - - ROM_REGION( 0x40000, "text", 0 ) /* Text */ - ROM_LOAD( "gfx5.bin", 0x00000, 0x20000, CRC(058ee379) SHA1(57088bb02c56212979b9119b773eedc31af17e50) ) - ROM_LOAD( "gfx6.bin", 0x20000, 0x20000, CRC(593cbd39) SHA1(4d60b5811118f3f22f6f3b300a4daec158456b72) ) -ROM_END - - -/*************************************************************************** - - - Game Drivers - - -***************************************************************************/ - -GAME( 1995, cannball, 0, yunsung8, cannball, yunsung8_state, empty_init, ROT0, "Yun Sung / Soft Vision", "Cannon Ball (Yun Sung, horizontal)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, cannballv, cannball, yunsung8, cannbalv, yunsung8_state, empty_init, ROT270, "Yun Sung / J&K Production", "Cannon Ball (Yun Sung, vertical)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, magix, 0, yunsung8, magix, yunsung8_state, empty_init, ROT0, "Yun Sung", "Magix / Rock", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, magixb, magix, yunsung8, magix, yunsung8_state, empty_init, ROT0, "Yun Sung", "Magix / Rock (no copyright message)", MACHINE_SUPPORTS_SAVE ) // was marked as bootleg, but has been seen on original PCBs -GAME( 1994?, rocktris, 0, yunsung8, rocktris, yunsung8_state, empty_init, ROT0, "Yun Sung", "Rock Tris", MACHINE_SUPPORTS_SAVE ) |