diff options
Diffstat (limited to 'src/mame/drivers/wardner.cpp')
-rw-r--r-- | src/mame/drivers/wardner.cpp | 611 |
1 files changed, 0 insertions, 611 deletions
diff --git a/src/mame/drivers/wardner.cpp b/src/mame/drivers/wardner.cpp deleted file mode 100644 index 95efd91bf72..00000000000 --- a/src/mame/drivers/wardner.cpp +++ /dev/null @@ -1,611 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Quench -/*************************************************************************** - - ToaPlan game hardware from 1987 - -------------------------------- - Driver by: Quench - - -Supported games: - - Toaplan Board Number: TP-009 - Taito Game Number: B25 - Wardner (World) - Pyros (USA) - Wardner no Mori (Japan) - -Notes: - Basically the same video and machine hardware as Flying Shark, - except for the Main CPU which is a Z80 here. - See twincobr.cpp machine and video drivers to complete the - hardware setup. - To enter the "test mode", press START1 when the grid is displayed. - Press 0 (actually P1 button 3) on startup to skip some video RAM tests - (code at 0x6d25 in 'wardner', 0x6d2f in 'wardnerj' or 0x6d2c in 'pyros'). - -**************************** Memory & I/O Maps ***************************** -Z80:(0) Main CPU -0000-6fff Main ROM -7000-7fff Main RAM -8000-ffff Level and scenery ROMS. This is banked with the following -8000-8fff Sprite RAM -a000-adff Palette RAM -ae00-afff Spare unused, but tested Palette RAM -c000-c7ff Sound RAM - shared with C000-C7FF in Z80(1) RAM - -in: -50 DSW A -52 DSW B -54 Player 1 controls -56 Player 2 controls -58 VBlank (bit 7) and coin-in/start inputs -60 LSB data from char display layer -61 MSB data from char display layer -62 LSB data from BG display layer -63 MSB data from BG display layer -64 LSB data from FG display layer -65 MSB data from FG display layer - -out: -00 6845 CRTC offset register -02 6845 CRTC register data -10 char scroll LSB < Y > -11 char scroll MSB < Y > -12 char scroll LSB X -13 char scroll MSB X -14 char LSB RAM offset 20h * 40h (0-07ff) and (4000-47ff) ??? -15 char MSB RAM offset -20 BG scroll LSB < Y > -21 BG scroll MSB < Y > -22 BG scroll LSB X -23 BG scroll MSB X -24 BG LSB RAM offset 40h * 40h (0-0fff) -25 BG MSB RAM offset -30 FG scroll LSB < Y > -31 FG scroll MSB < Y > -32 FG scroll LSB X -33 FG scroll MSB X -34 FG LSB RAM offset 40h * 40h (0-0fff) -35 FG MSB RAM offset -40 spare scroll LSB < Y > (Not used) -41 spare scroll MSB < Y > (Not used) -5a-5c Control registers - bits 7-4 always 0 - bits 3-1 select the control signal to drive. - bit 0 is the value passed to the control signal. -5a data - 00-01 INT line to TMS320C10 DSP (Active low trigger) - 0c-0d lockout for coin A input (Active low lockout) - 0e-0f lockout for coin B input (Active low lockout) -5c data - 00-01 ??? - 02-03 ??? - 04-05 Active low INTerrupt to Z80(0) for screen refresh - 06-07 Flip Screen (Active high flips) - 08-09 Background RAM display bank switch - 0a-0b Foreground ROM display bank switch (not used here) - 0c-0d ??? (what the hell does this do ?) -60 LSB data to char display layer -61 MSB data to char display layer -62 LSB data to BG display layer -63 MSB data to BG display layer -64 LSB data to FG display layer -65 MSB data to FG display layer -70 ROM bank selector for Z80(0) address 8000-ffff - data - 00 switch ROM from 8000-ffff out, and put sprite/palette/sound RAM back. - 02 switch lower half of B25-18.ROM ROM to 8000-ffff - 03 switch upper half of B25-18.ROM ROM to 8000-ffff - 04 switch lower half of B25-19.ROM ROM to 8000-ffff - 05 switch upper half of B25-19.ROM ROM to 8000-ffff - 07 switch B25-30.ROM ROM to 8000-ffff - - - -Z80:(1) Sound CPU -0000-7fff Main ROM -8000-807f RAM ??? -c000-cfff Sound RAM, $C000-C7FF shared with $C000-C7FF in Z80(0) ram - - - -TMS320C10 DSP: Harvard type architecture. RAM and ROM on separate data buses. -0000-05ff ROM 16-bit opcodes (word access only). -0000-0090 Internal RAM (words). - -in: -01 data read from addressed Z80:(0) address space (Main RAM/Sprite RAM) - -out: -00 address of Z80:(0) to read/write to -01 data to write to addressed Z80:(0) address space (Main RAM/Sprite RAM) -03 bit 15 goes to BIO line of TMS320C10. BIO is a polled input line. - - -***************************************************************************/ - - -#include "emu.h" -#include "includes/twincobr.h" -#include "includes/toaplipt.h" - -#include "cpu/tms32010/tms32010.h" -#include "cpu/z80/z80.h" -#include "machine/74259.h" -#include "machine/bankdev.h" -#include "sound/3812intf.h" -#include "speaker.h" - - -class wardner_state : public twincobr_state -{ -public: - wardner_state(const machine_config &mconfig, device_type type, const char *tag) - : twincobr_state(mconfig, type, tag) - , m_membank(*this, "membank") - { - } - - void wardner(machine_config &config); - - void init_wardner(); - -protected: - virtual void driver_start() override; - virtual void machine_reset() override; - -private: - required_device<address_map_bank_device> m_membank; - - DECLARE_WRITE8_MEMBER(wardner_bank_w); - - void dsp_io_map(address_map &map); - void dsp_program_map(address_map &map); - void main_bank_map(address_map &map); - void main_io_map(address_map &map); - void main_program_map(address_map &map); - void sound_io_map(address_map &map); - void sound_program_map(address_map &map); -}; - - -/***************************** Z80 Main Memory Map **************************/ - -WRITE8_MEMBER(wardner_state::wardner_bank_w) -{ - m_membank->set_bank(data & 7); -} - -void wardner_state::main_program_map(address_map &map) -{ - map(0x0000, 0x6fff).rom(); - map(0x7000, 0x7fff).ram(); - map(0x8000, 0x8fff).w(FUNC(wardner_state::wardner_sprite_w)); // .share("spriteram8") - map(0xa000, 0xafff).w(m_palette, FUNC(palette_device::write8)); // .share("palette") - map(0xc000, 0xc7ff).writeonly().share("sharedram"); - map(0x8000, 0xffff).r(m_membank, FUNC(address_map_bank_device::read8)); -} - -// Overlapped RAM/Banked ROM -// Can't use map(0x00000, 0x3ffff) for ROM because the shared pointers get messed up somehow -void wardner_state::main_bank_map(address_map &map) -{ - map(0x00000, 0x00fff).r(FUNC(wardner_state::wardner_sprite_r)).share("spriteram8"); - map(0x01000, 0x01fff).rom().region("maincpu", 0x1000); - map(0x02000, 0x02fff).readonly().share("palette"); - map(0x03000, 0x03fff).rom().region("maincpu", 0x3000); - map(0x04000, 0x047ff).readonly().share("sharedram"); - map(0x04800, 0x3ffff).rom().region("maincpu", 0x4800); -} - -void wardner_state::main_io_map(address_map &map) -{ - map.global_mask(0xff); - map(0x00, 0x00).w("crtc", FUNC(mc6845_device::address_w)); - map(0x02, 0x02).w("crtc", FUNC(mc6845_device::register_w)); - map(0x10, 0x13).w(FUNC(wardner_state::wardner_txscroll_w)); /* scroll text layer */ - map(0x14, 0x15).w(FUNC(wardner_state::wardner_txlayer_w)); /* offset in text video RAM */ - map(0x20, 0x23).w(FUNC(wardner_state::wardner_bgscroll_w)); /* scroll bg layer */ - map(0x24, 0x25).w(FUNC(wardner_state::wardner_bglayer_w)); /* offset in bg video RAM */ - map(0x30, 0x33).w(FUNC(wardner_state::wardner_fgscroll_w)); /* scroll fg layer */ - map(0x34, 0x35).w(FUNC(wardner_state::wardner_fglayer_w)); /* offset in fg video RAM */ - map(0x40, 0x43).w(FUNC(wardner_state::wardner_exscroll_w)); /* scroll extra layer (not used) */ - map(0x50, 0x50).portr("DSWA"); - map(0x52, 0x52).portr("DSWB"); - map(0x54, 0x54).portr("P1"); - map(0x56, 0x56).portr("P2"); - map(0x58, 0x58).portr("SYSTEM"); - map(0x5a, 0x5a).w("coinlatch", FUNC(ls259_device::write_nibble_d0)); - map(0x5c, 0x5c).w("mainlatch", FUNC(ls259_device::write_nibble_d0)); - map(0x60, 0x65).rw(FUNC(wardner_state::wardner_videoram_r), FUNC(wardner_state::wardner_videoram_w)); - map(0x70, 0x70).w(FUNC(wardner_state::wardner_bank_w)); -} - - -/***************************** Z80 Sound Memory Map *************************/ - -void wardner_state::sound_program_map(address_map &map) -{ - map(0x0000, 0x7fff).rom(); - map(0x8000, 0x807f).ram(); - map(0xc000, 0xc7ff).ram().share("sharedram"); - map(0xc800, 0xcfff).ram(); -} - -void wardner_state::sound_io_map(address_map &map) -{ - map.global_mask(0xff); - map(0x00, 0x01).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); -} - - -/***************************** TMS32010 Memory Map **************************/ - -void wardner_state::dsp_program_map(address_map &map) -{ - map(0x000, 0x5ff).rom(); -} - - /* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */ - -void wardner_state::dsp_io_map(address_map &map) -{ - map(0x00, 0x00).w(FUNC(wardner_state::wardner_dsp_addrsel_w)); - map(0x01, 0x01).rw(FUNC(wardner_state::wardner_dsp_r), FUNC(wardner_state::wardner_dsp_w)); - map(0x03, 0x03).w(FUNC(wardner_state::twincobr_dsp_bio_w)); -} - - -/***************************************************************************** - - Input Port definitions - -*****************************************************************************/ - -/* verified from Z80 code */ -static INPUT_PORTS_START( wardner_generic ) - PORT_START("P1") - TOAPLAN_JOY_UDLR_2_BUTTONS( 1 ) /* buttons 3 & 4 named "SHOTC" and "SHOTD" in "test mode" */ - - PORT_START("P2") - TOAPLAN_JOY_UDLR_2_BUTTONS( 2 ) /* buttons 3 & 4 named "SHOTC" and "SHOTD" in "test mode" */ - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) - TOAPLAN_TEST_SWITCH( 0x04, IP_ACTIVE_HIGH ) /* "TEST" in "test mode" */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") /* "V-BLANKING" in "test mode" */ - - PORT_START("DSWA") - TOAPLAN_MACHINE_COCKTAIL_LOC(SW1) - TOAPLAN_COINAGE_WORLD_LOC(SW1) - - PORT_START("DSWB") - TOAPLAN_DIFFICULTY_LOC(SW2) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") /* table at 0x13ce ('wardner') or 0x13de ('wardnerj') */ - PORT_DIPSETTING( 0x00, "30k 80k 50k+" ) - PORT_DIPSETTING( 0x04, "50k 100k 50k+" ) - PORT_DIPSETTING( 0x08, "30k Only" ) - PORT_DIPSETTING( 0x0c, "50k Only" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_HIGH, "SW2:!7" ) - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW2:!8" ) -INPUT_PORTS_END - -/* verified from Z80 code */ -static INPUT_PORTS_START( wardner ) - PORT_INCLUDE( wardner_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Skip Video RAM Tests") PORT_CODE(KEYCODE_0) - /* actually player 1 button 3 - not used in gameplay */ - /* code at 0x6d25 ('wardner'), 0x6d2f ('wardnerj') or 0x6d2c ('pyros') */ -INPUT_PORTS_END - -/* verified from Z80 code */ -static INPUT_PORTS_START( wardnerj ) - PORT_INCLUDE( wardner ) - - PORT_MODIFY("DSWA") - TOAPLAN_COINAGE_JAPAN_LOC(SW1) -INPUT_PORTS_END - -/* verified from Z80 code */ -static INPUT_PORTS_START( pyros ) - PORT_INCLUDE( wardnerj ) - - PORT_MODIFY("DSWB") - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") /* table at 0x13ce */ - PORT_DIPSETTING( 0x00, "30k 80k 50k+" ) - PORT_DIPSETTING( 0x04, "50k 100k 50k+" ) - PORT_DIPSETTING( 0x08, "50k Only" ) - PORT_DIPSETTING( 0x0c, "100k Only" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:!7") /* additional code at 0x6037 */ - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,3), /* 2048 characters */ - 3, /* 3 bits per pixel */ - { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, /* the bitplanes are separated */ - { STEP8(0,1) }, - { STEP8(0,8) }, - 8*8 /* every char takes 8 consecutive bytes */ -}; - -static const gfx_layout tilelayout = -{ - 8,8, /* 8*8 tiles */ - RGN_FRAC(1,4), /* 4096 tiles */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, /* the bitplanes are separated */ - { STEP8(0,1) }, - { STEP8(0,8) }, - 8*8 /* every tile takes 8 consecutive bytes */ -}; - - -static GFXDECODE_START( gfx_wardner ) - GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout, 1536, 32 ) /* colors 1536-1791 */ - GFXDECODE_ENTRY( "gfx2", 0x00000, tilelayout, 1280, 16 ) /* colors 1280-1535 */ - GFXDECODE_ENTRY( "gfx3", 0x00000, tilelayout, 1024, 16 ) /* colors 1024-1079 */ -GFXDECODE_END - - -void wardner_state::driver_start() -{ - /* Save-State stuff in src/machine/twincobr.cpp */ - driver_savestate(); -} - -void wardner_state::machine_reset() -{ - twincobr_state::machine_reset(); - - m_membank->set_bank(0); -} - -void wardner_state::wardner(machine_config &config) -{ - /* basic machine hardware */ - Z80(config, m_maincpu, XTAL(24'000'000) / 4); /* 6MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &wardner_state::main_program_map); - m_maincpu->set_addrmap(AS_IO, &wardner_state::main_io_map); - - ADDRESS_MAP_BANK(config, "membank").set_map(&wardner_state::main_bank_map).set_options(ENDIANNESS_LITTLE, 8, 18, 0x8000); - - z80_device &audiocpu(Z80(config, "audiocpu", XTAL(14'000'000) / 4)); /* 3.5MHz */ - audiocpu.set_addrmap(AS_PROGRAM, &wardner_state::sound_program_map); - audiocpu.set_addrmap(AS_IO, &wardner_state::sound_io_map); - - TMS32010(config, m_dsp, XTAL(14'000'000)); /* 14MHz Crystal CLKin */ - m_dsp->set_addrmap(AS_PROGRAM, &wardner_state::dsp_program_map); - /* Data Map is internal to the CPU */ - m_dsp->set_addrmap(AS_IO, &wardner_state::dsp_io_map); - m_dsp->bio().set(FUNC(wardner_state::twincobr_bio_r)); - - config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame */ - - ls259_device &mainlatch(LS259(config, "mainlatch")); - mainlatch.q_out_cb<2>().set(FUNC(wardner_state::int_enable_w)); - mainlatch.q_out_cb<3>().set(FUNC(wardner_state::flipscreen_w)); - mainlatch.q_out_cb<4>().set(FUNC(wardner_state::bg_ram_bank_w)); - mainlatch.q_out_cb<5>().set(FUNC(wardner_state::fg_rom_bank_w)); - mainlatch.q_out_cb<6>().set(FUNC(wardner_state::display_on_w)); - - ls259_device &coinlatch(LS259(config, "coinlatch")); - coinlatch.q_out_cb<0>().set(FUNC(wardner_state::dsp_int_w)); - coinlatch.q_out_cb<4>().set(FUNC(wardner_state::coin_counter_1_w)); - coinlatch.q_out_cb<5>().set(FUNC(wardner_state::coin_counter_2_w)); - coinlatch.q_out_cb<6>().set(FUNC(wardner_state::coin_lockout_1_w)); - coinlatch.q_out_cb<7>().set(FUNC(wardner_state::coin_lockout_2_w)); - - /* video hardware */ - hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(14'000'000)/4)); /* 3.5MHz measured on CLKin */ - crtc.set_screen(m_screen); - crtc.set_show_border_area(false); - crtc.set_char_width(2); - - TOAPLAN_SCU(config, m_spritegen, 0); - m_spritegen->set_palette(m_palette); - m_spritegen->set_xoffsets(32, 14); - - BUFFERED_SPRITERAM8(config, m_spriteram8); - - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); - m_screen->set_raw(14_MHz_XTAL/2, 446, 0, 320, 286, 0, 240); - m_screen->set_screen_update(FUNC(wardner_state::screen_update)); - m_screen->screen_vblank().set(m_spriteram8, FUNC(buffered_spriteram8_device::vblank_copy_rising)); - m_screen->screen_vblank().append(FUNC(wardner_state::wardner_vblank_irq)); - - GFXDECODE(config, m_gfxdecode, m_palette, gfx_wardner); - PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 4096); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - - ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(14'000'000) / 4)); - ymsnd.irq_handler().set_inputline("audiocpu", 0); - ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); -} - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( wardner ) - ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) /* Banked Main Z80 code */ - ROM_LOAD( "b25-31.6m", 0x00000, 0x08000, CRC(c5dd56fd) SHA1(f0a09557150e9c1c6b9d8e125f5408fc269c9d17) ) /* Main Z80 code */ - ROM_LOAD( "b25-18.7m", 0x10000, 0x10000, CRC(9aab8ee2) SHA1(16fa44b75f4a3a5b1ff713690a299ecec2b5a4bf) ) /* OBJ ROMs */ - ROM_LOAD( "b25-19.8m", 0x20000, 0x10000, CRC(95b68813) SHA1(06ea1b1d6e2e6326ceb9324fc471d082fda6112e) ) - ROM_LOAD( "b25-32.10m", 0x38000, 0x08000, CRC(347f411b) SHA1(1fb2883d74d10350cb1c62fb58d5783652861b37) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ - ROM_LOAD( "b25-16.4k", 0x00000, 0x08000, CRC(e5202ff8) SHA1(15ae8c0bb16a20bee14e8d80d81c249404ab1463) ) - - ROM_REGION( 0x2000, "dsp", 0 ) /* Co-Processor TMS320C10 */ - ROMX_LOAD( "82s137.1d", 0x0000, 0x0400, CRC(cc5b3f53) SHA1(33589665ac995cc4645b56bbcd6d1c1cd5368f88), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) /* msb */ - ROMX_LOAD( "82s137.1e", 0x0000, 0x0400, CRC(47351d55) SHA1(826add3ea3987f2c9ba2d3fc69a4ad2d9b033c89), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s137.3d", 0x0001, 0x0400, CRC(70b537b9) SHA1(5211ec4605894727747dda66b70c9427652b16b4), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) /* lsb */ - ROMX_LOAD( "82s137.3e", 0x0001, 0x0400, CRC(6edb2de8) SHA1(48459037c3b865f0c0d63a416fa71ba1119f7a09), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.3b", 0x0800, 0x0200, CRC(9dfffaff) SHA1(2f4a1c1afba6a362dc5774a82656883b08fa16f2), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.3a", 0x0800, 0x0200, CRC(712bad47) SHA1(b9f7be13cbd90a17fe7d13fb7987a0b9b759ccad), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.2a", 0x0801, 0x0200, CRC(ac843ca6) SHA1(8fd278748ec89d8ebe2d4f3bf8b6731f357ddfb3), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.1a", 0x0801, 0x0200, CRC(50452ff8) SHA1(76964fa9ee89a51cc71904e08cfc83bf81bb89aa), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - - ROM_REGION( 0x0c000, "gfx1", 0 ) /* chars */ - ROM_LOAD( "b25-28.10f", 0x00000, 0x04000, CRC(1392b60d) SHA1(86b9eab87f8d5f68fda500420f4ed61331089fc2) ) - ROM_LOAD( "b25-27.8f", 0x04000, 0x04000, CRC(0ed848da) SHA1(e4b38e21c101a28a8961a9fe30c9cb10919cc148) ) - ROM_LOAD( "b25-26.7f", 0x08000, 0x04000, CRC(79792c86) SHA1(648b97f1ec30d46e40e60eb13159b4f6f86e9243) ) - - ROM_REGION( 0x20000, "gfx2", 0 ) /* fg tiles */ - ROM_LOAD( "b25-12.18f", 0x00000, 0x08000, CRC(15d08848) SHA1(e2e62d95a3f240664b5e0ac0f163a0d5cefa5312) ) - ROM_LOAD( "b25-15.23f", 0x08000, 0x08000, CRC(cdd2d408) SHA1(7e4d77f8725fa30d4d65e811d10e0b2c00b23cfe) ) - ROM_LOAD( "b25-14.21f", 0x10000, 0x08000, CRC(5a2aef4f) SHA1(60f4ab2582a924defb5241ab367826ae1f4b3f5e) ) - ROM_LOAD( "b25-13.19f", 0x18000, 0x08000, CRC(be21db2b) SHA1(7fc1809618f2432c9ec6eb33ce57a5faffd44974) ) - - ROM_REGION( 0x20000, "gfx3", 0 ) /* bg tiles */ - ROM_LOAD( "b25-08.12f", 0x00000, 0x08000, CRC(883ccaa3) SHA1(90d686094eac6e80caf8e2cf90c00bb41a0d26e2) ) - ROM_LOAD( "b25-11.16f", 0x08000, 0x08000, CRC(d6ebd510) SHA1(d65e0db7756ebe6828bf637a6c915bb06082636c) ) - ROM_LOAD( "b25-10.15f", 0x10000, 0x08000, CRC(b9a61e81) SHA1(541e579664d583fbbf81111046115018fdaff073) ) - ROM_LOAD( "b25-09.14f", 0x18000, 0x08000, CRC(585411b7) SHA1(67c0f4b7ab303341d5481c4024dc4199acb7c279) ) - - ROM_REGION( 0x40000, "scu", 0 ) /* sprites */ - ROM_LOAD( "b25-01.14c", 0x00000, 0x10000, CRC(42ec01fb) SHA1(646192a2e89f795ed016860cdcdc0b5ef645fca2) ) - ROM_LOAD( "b25-02.16c", 0x10000, 0x10000, CRC(6c0130b7) SHA1(8b6ad72848d03c3d4ee3acd35abbb3a0e678122c) ) - ROM_LOAD( "b25-03.17c", 0x20000, 0x10000, CRC(b923db99) SHA1(2f4be81afdf200586bc44b1e94553d84d16d0b62) ) - ROM_LOAD( "b25-04.19c", 0x30000, 0x10000, CRC(8059573c) SHA1(75bd19e504433438b85ed00e50e85fb98eebf4de) ) - - ROM_REGION( 0x260, "proms", 0 ) /* nibble bproms, lo/hi order to be determined */ - ROM_LOAD( "82s129.b19", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) ) /* sprite priority control ?? */ - ROM_LOAD( "82s129.b18", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) ) /* sprite priority control ?? */ - ROM_LOAD( "82s123.b21", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) ) /* sprite control ?? */ - ROM_LOAD( "82s123.c6", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */ - ROM_LOAD( "82s123.f1", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) ) /* tile to sprite priority ?? */ -ROM_END - -ROM_START( pyros ) - ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) /* Banked Z80 code */ - ROM_LOAD( "b25-29.6m", 0x00000, 0x08000, CRC(b568294d) SHA1(5d04dd006f5180fa0c9340e2efa6613625d712a8) ) /* Main Z80 code */ - ROM_LOAD( "b25-18.7m", 0x10000, 0x10000, CRC(9aab8ee2) SHA1(16fa44b75f4a3a5b1ff713690a299ecec2b5a4bf) ) /* OBJ ROMs */ - ROM_LOAD( "b25-19.8m", 0x20000, 0x10000, CRC(95b68813) SHA1(06ea1b1d6e2e6326ceb9324fc471d082fda6112e) ) - ROM_LOAD( "b25-30.10m", 0x38000, 0x08000, CRC(5056c799) SHA1(9750fa8bf5d1181a4fecbcbf822f8f027bebd5a8) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ - ROM_LOAD( "b25-16.4k", 0x00000, 0x08000, CRC(e5202ff8) SHA1(15ae8c0bb16a20bee14e8d80d81c249404ab1463) ) - - ROM_REGION( 0x2000, "dsp", 0 ) /* Co-Processor TMS320C10 */ - ROMX_LOAD( "82s137.1d", 0x0000, 0x0400, CRC(cc5b3f53) SHA1(33589665ac995cc4645b56bbcd6d1c1cd5368f88), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) /* msb */ - ROMX_LOAD( "82s137.1e", 0x0000, 0x0400, CRC(47351d55) SHA1(826add3ea3987f2c9ba2d3fc69a4ad2d9b033c89), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s137.3d", 0x0001, 0x0400, CRC(70b537b9) SHA1(5211ec4605894727747dda66b70c9427652b16b4), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) /* lsb */ - ROMX_LOAD( "82s137.3e", 0x0001, 0x0400, CRC(6edb2de8) SHA1(48459037c3b865f0c0d63a416fa71ba1119f7a09), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.3b", 0x0800, 0x0200, CRC(9dfffaff) SHA1(2f4a1c1afba6a362dc5774a82656883b08fa16f2), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.3a", 0x0800, 0x0200, CRC(712bad47) SHA1(b9f7be13cbd90a17fe7d13fb7987a0b9b759ccad), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.2a", 0x0801, 0x0200, CRC(ac843ca6) SHA1(8fd278748ec89d8ebe2d4f3bf8b6731f357ddfb3), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.1a", 0x0801, 0x0200, CRC(50452ff8) SHA1(76964fa9ee89a51cc71904e08cfc83bf81bb89aa), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - - ROM_REGION( 0x0c000, "gfx1", 0 ) /* chars */ - ROM_LOAD( "b25-35.10f", 0x00000, 0x04000, CRC(fec6f0c0) SHA1(f91d698fa0712659c2e6b382a8166b1cacc50a3f) ) - ROM_LOAD( "b25-34.8f", 0x04000, 0x04000, CRC(02505dad) SHA1(28993c68a17929d6b819ca81cdf60985531fc80b) ) - ROM_LOAD( "b25-33.7f", 0x08000, 0x04000, CRC(9a55fcb9) SHA1(e04d68cc0b80b79b5f4c19c14b2e87f226f45ac8) ) - - ROM_REGION( 0x20000, "gfx2", 0 ) /* fg tiles */ - ROM_LOAD( "b25-12.18f", 0x00000, 0x08000, CRC(15d08848) SHA1(e2e62d95a3f240664b5e0ac0f163a0d5cefa5312) ) - ROM_LOAD( "b25-15.23f", 0x08000, 0x08000, CRC(cdd2d408) SHA1(7e4d77f8725fa30d4d65e811d10e0b2c00b23cfe) ) - ROM_LOAD( "b25-14.21f", 0x10000, 0x08000, CRC(5a2aef4f) SHA1(60f4ab2582a924defb5241ab367826ae1f4b3f5e) ) - ROM_LOAD( "b25-13.19f", 0x18000, 0x08000, CRC(be21db2b) SHA1(7fc1809618f2432c9ec6eb33ce57a5faffd44974) ) - - ROM_REGION( 0x20000, "gfx3", 0 ) /* bg tiles */ - ROM_LOAD( "b25-08.12f", 0x00000, 0x08000, CRC(883ccaa3) SHA1(90d686094eac6e80caf8e2cf90c00bb41a0d26e2) ) - ROM_LOAD( "b25-11.16f", 0x08000, 0x08000, CRC(d6ebd510) SHA1(d65e0db7756ebe6828bf637a6c915bb06082636c) ) - ROM_LOAD( "b25-10.15f", 0x10000, 0x08000, CRC(b9a61e81) SHA1(541e579664d583fbbf81111046115018fdaff073) ) - ROM_LOAD( "b25-09.14f", 0x18000, 0x08000, CRC(585411b7) SHA1(67c0f4b7ab303341d5481c4024dc4199acb7c279) ) - - ROM_REGION( 0x40000, "scu", 0 ) /* sprites */ - ROM_LOAD( "b25-01.14c", 0x00000, 0x10000, CRC(42ec01fb) SHA1(646192a2e89f795ed016860cdcdc0b5ef645fca2) ) - ROM_LOAD( "b25-02.16c", 0x10000, 0x10000, CRC(6c0130b7) SHA1(8b6ad72848d03c3d4ee3acd35abbb3a0e678122c) ) - ROM_LOAD( "b25-03.17c", 0x20000, 0x10000, CRC(b923db99) SHA1(2f4be81afdf200586bc44b1e94553d84d16d0b62) ) - ROM_LOAD( "b25-04.19c", 0x30000, 0x10000, CRC(8059573c) SHA1(75bd19e504433438b85ed00e50e85fb98eebf4de) ) - - ROM_REGION( 0x260, "proms", 0 ) /* nibble bproms, lo/hi order to be determined */ - ROM_LOAD( "82s129.b19", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) ) /* sprite priority control ?? */ - ROM_LOAD( "82s129.b18", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) ) /* sprite priority control ?? */ - ROM_LOAD( "82s123.b21", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) ) /* sprite control ?? */ - ROM_LOAD( "82s123.c6", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */ - ROM_LOAD( "82s123.f1", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) ) /* tile to sprite priority ?? */ -ROM_END - -ROM_START( wardnerj ) - ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) /* Banked Z80 code */ - ROM_LOAD( "b25-17.6m", 0x00000, 0x08000, CRC(4164dca9) SHA1(1f02c0991d7c14230043e34cb4b8e089b467b234) ) /* Main Z80 code */ - ROM_LOAD( "b25-18.7m", 0x10000, 0x10000, CRC(9aab8ee2) SHA1(16fa44b75f4a3a5b1ff713690a299ecec2b5a4bf) ) /* OBJ ROMs */ - ROM_LOAD( "b25-19.8m", 0x20000, 0x10000, CRC(95b68813) SHA1(06ea1b1d6e2e6326ceb9324fc471d082fda6112e) ) - ROM_LOAD( "b25-20.10m", 0x38000, 0x08000, CRC(1113ad38) SHA1(88f89054954b1d2776ceaedc7a3605190808d7e5) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 code */ - ROM_LOAD( "b25-16.4k", 0x00000, 0x08000, CRC(e5202ff8) SHA1(15ae8c0bb16a20bee14e8d80d81c249404ab1463) ) - - ROM_REGION( 0x2000, "dsp", 0 ) /* Co-Processor TMS320C10 */ - ROMX_LOAD( "82s137.1d", 0x0000, 0x0400, CRC(cc5b3f53) SHA1(33589665ac995cc4645b56bbcd6d1c1cd5368f88), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) /* msb */ - ROMX_LOAD( "82s137.1e", 0x0000, 0x0400, CRC(47351d55) SHA1(826add3ea3987f2c9ba2d3fc69a4ad2d9b033c89), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s137.3d", 0x0001, 0x0400, CRC(70b537b9) SHA1(5211ec4605894727747dda66b70c9427652b16b4), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) /* lsb */ - ROMX_LOAD( "82s137.3e", 0x0001, 0x0400, CRC(6edb2de8) SHA1(48459037c3b865f0c0d63a416fa71ba1119f7a09), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.3b", 0x0800, 0x0200, CRC(9dfffaff) SHA1(2f4a1c1afba6a362dc5774a82656883b08fa16f2), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.3a", 0x0800, 0x0200, CRC(712bad47) SHA1(b9f7be13cbd90a17fe7d13fb7987a0b9b759ccad), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.2a", 0x0801, 0x0200, CRC(ac843ca6) SHA1(8fd278748ec89d8ebe2d4f3bf8b6731f357ddfb3), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1) ) - ROMX_LOAD( "82s131.1a", 0x0801, 0x0200, CRC(50452ff8) SHA1(76964fa9ee89a51cc71904e08cfc83bf81bb89aa), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1) ) - - ROM_REGION( 0x0c000, "gfx1", 0 ) /* chars */ - ROM_LOAD( "b25-07.10f", 0x00000, 0x04000, CRC(50e329e0) SHA1(5d5fb7043457d952b28101acb909ed65bf13a2dc) ) - ROM_LOAD( "b25-06.8f", 0x04000, 0x04000, CRC(3bfeb6ae) SHA1(3a251f49901ccb17b5fedf81980d54e4f6f49d4d) ) - ROM_LOAD( "b25-05.7f", 0x08000, 0x04000, CRC(be36a53e) SHA1(320fc5b88ed1fce1aa8d8e76e1046206c138b35c) ) - - ROM_REGION( 0x20000, "gfx2", 0 ) /* fg tiles */ - ROM_LOAD( "b25-12.18f", 0x00000, 0x08000, CRC(15d08848) SHA1(e2e62d95a3f240664b5e0ac0f163a0d5cefa5312) ) - ROM_LOAD( "b25-15.23f", 0x08000, 0x08000, CRC(cdd2d408) SHA1(7e4d77f8725fa30d4d65e811d10e0b2c00b23cfe) ) - ROM_LOAD( "b25-14.21f", 0x10000, 0x08000, CRC(5a2aef4f) SHA1(60f4ab2582a924defb5241ab367826ae1f4b3f5e) ) - ROM_LOAD( "b25-13.19f", 0x18000, 0x08000, CRC(be21db2b) SHA1(7fc1809618f2432c9ec6eb33ce57a5faffd44974) ) - - ROM_REGION( 0x20000, "gfx3", 0 ) /* bg tiles */ - ROM_LOAD( "b25-08.12f", 0x00000, 0x08000, CRC(883ccaa3) SHA1(90d686094eac6e80caf8e2cf90c00bb41a0d26e2) ) - ROM_LOAD( "b25-11.16f", 0x08000, 0x08000, CRC(d6ebd510) SHA1(d65e0db7756ebe6828bf637a6c915bb06082636c) ) - ROM_LOAD( "b25-10.15f", 0x10000, 0x08000, CRC(b9a61e81) SHA1(541e579664d583fbbf81111046115018fdaff073) ) - ROM_LOAD( "b25-09.14f", 0x18000, 0x08000, CRC(585411b7) SHA1(67c0f4b7ab303341d5481c4024dc4199acb7c279) ) - - ROM_REGION( 0x40000, "scu", 0 ) /* sprites */ - ROM_LOAD( "b25-01.14c", 0x00000, 0x10000, CRC(42ec01fb) SHA1(646192a2e89f795ed016860cdcdc0b5ef645fca2) ) - ROM_LOAD( "b25-02.16c", 0x10000, 0x10000, CRC(6c0130b7) SHA1(8b6ad72848d03c3d4ee3acd35abbb3a0e678122c) ) - ROM_LOAD( "b25-03.17c", 0x20000, 0x10000, CRC(b923db99) SHA1(2f4be81afdf200586bc44b1e94553d84d16d0b62) ) - ROM_LOAD( "b25-04.19c", 0x30000, 0x10000, CRC(8059573c) SHA1(75bd19e504433438b85ed00e50e85fb98eebf4de) ) - - ROM_REGION( 0x260, "proms", 0 ) /* nibble bproms, lo/hi order to be determined */ - ROM_LOAD( "82s129.b19", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) ) /* sprite priority control ?? */ - ROM_LOAD( "82s129.b18", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) ) /* sprite priority control ?? */ - ROM_LOAD( "82s123.b21", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) ) /* sprite control ?? */ - ROM_LOAD( "82s123.c6", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) ) /* sprite attribute (flip/position) ?? */ - ROM_LOAD( "82s123.f1", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) ) /* tile to sprite priority ?? */ -ROM_END - - -GAME( 1987, wardner, 0, wardner, wardner, wardner_state, empty_init, ROT0, "Toaplan / Taito Corporation Japan", "Wardner (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, pyros, wardner, wardner, pyros, wardner_state, empty_init, ROT0, "Toaplan / Taito America Corporation", "Pyros (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, wardnerj, wardner, wardner, wardnerj, wardner_state, empty_init, ROT0, "Toaplan / Taito Corporation", "Wardner no Mori (Japan)", MACHINE_SUPPORTS_SAVE ) |