From ef46b0455c0041a9554af80589a6095d626a4b6b Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 15 May 2023 20:58:20 +0200 Subject: atari/foodf.cpp: consolidated driver in single file --- src/mame/atari/foodf.cpp | 302 +++++++++++++++++++++++++++++++++++++------- src/mame/atari/foodf.h | 76 ----------- src/mame/atari/foodf_v.cpp | 149 ---------------------- src/mame/capcom/cps1.cpp | 50 ++++---- src/mame/mame.lst | 2 +- src/mame/namco/namcos23.cpp | 6 +- src/mame/taito/vicshoot.cpp | 6 +- 7 files changed, 286 insertions(+), 305 deletions(-) delete mode 100644 src/mame/atari/foodf.h delete mode 100644 src/mame/atari/foodf_v.cpp diff --git a/src/mame/atari/foodf.cpp b/src/mame/atari/foodf.cpp index 724496a3117..9b9939caa55 100644 --- a/src/mame/atari/foodf.cpp +++ b/src/mame/atari/foodf.cpp @@ -76,15 +76,218 @@ #include "emu.h" -#include "foodf.h" + #include "cpu/m68000/m68000.h" #include "machine/adc0808.h" +#include "machine/timer.h" #include "machine/watchdog.h" +#include "machine/x2212.h" #include "sound/pokey.h" +#include "video/resnet.h" + +#include "emupal.h" +#include "screen.h" #include "speaker.h" +#include "tilemap.h" + +namespace { -#define MASTER_CLOCK 12.096_MHz_XTAL +class foodf_state : public driver_device +{ +public: + foodf_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_nvram(*this, "nvram"), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_paletteram(*this, "paletteram"), + m_gfxdecode(*this, "gfxdecode"), + m_playfield_tilemap(*this, "playfield"), + m_scan_timer(*this, "scan_timer"), + m_spriteram(*this, "spriteram"), + m_dsw(*this, "DSW"), + m_leds(*this, "led%u", 0U) + { } + + void foodf(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + +private: + required_device m_maincpu; + required_device m_nvram; + required_device m_screen; + required_device m_palette; + required_shared_ptr m_paletteram; + required_device m_gfxdecode; + required_device m_playfield_tilemap; + required_device m_scan_timer; + required_shared_ptr m_spriteram; + required_ioport m_dsw; + output_finder<2> m_leds; + + bool m_scanline_int_state = false; + bool m_video_int_state = false; + + double m_rweights[3]{}; + double m_gweights[3]{}; + double m_bweights[2]{}; + uint8_t m_playfield_flip = 0U; + + void update_interrupts(); + void nvram_recall_w(uint16_t data); + void digital_w(uint8_t data); + void paletteram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void set_flip(int flip); + uint8_t pot_r(offs_t offset); + TILE_GET_INFO_MEMBER(get_playfield_tile_info); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + TIMER_DEVICE_CALLBACK_MEMBER(scanline_update_timer); + DECLARE_WRITE_LINE_MEMBER(video_int_write_line); + + void main_map(address_map &map); +}; + + +/************************************* + * + * Tilemap callbacks + * + *************************************/ + +TILE_GET_INFO_MEMBER(foodf_state::get_playfield_tile_info) +{ + uint16_t const data = m_playfield_tilemap->basemem_read(tile_index); + int const code = (data & 0xff) | ((data >> 7) & 0x100); + int const color = (data >> 8) & 0x3f; + tileinfo.set(0, code, color, m_playfield_flip ? (TILE_FLIPX | TILE_FLIPY) : 0); +} + + + +/************************************* + * + * Video system start + * + *************************************/ + +void foodf_state::video_start() +{ + static const int resistances[3] = { 1000, 470, 220 }; + + // adjust the playfield for the 8 pixel offset + m_playfield_tilemap->set_scrollx(0, -8); + save_item(NAME(m_playfield_flip)); + + // compute the color output resistor weights + compute_resistor_weights(0, 255, -1.0, + 3, &resistances[0], m_rweights, 0, 0, + 3, &resistances[0], m_gweights, 0, 0, + 2, &resistances[1], m_bweights, 0, 0); +} + + + +/************************************* + * + * Cocktail flip + * + *************************************/ + +void foodf_state::set_flip(int flip) +{ + if (flip != m_playfield_flip) + { + m_playfield_flip = flip; + m_playfield_tilemap->mark_all_dirty(); + } +} + + + +/************************************* + * + * Palette RAM write + * + *************************************/ + +void foodf_state::paletteram_w(offs_t offset, uint16_t data, uint16_t mem_mask) +{ + int bit0, bit1, bit2; + + COMBINE_DATA(&m_paletteram[offset]); + int const newword = m_paletteram[offset]; + + // only the bottom 8 bits are used + // red component + bit0 = (newword >> 0) & 0x01; + bit1 = (newword >> 1) & 0x01; + bit2 = (newword >> 2) & 0x01; + int const r = combine_weights(m_rweights, bit0, bit1, bit2); + + // green component + bit0 = (newword >> 3) & 0x01; + bit1 = (newword >> 4) & 0x01; + bit2 = (newword >> 5) & 0x01; + int const g = combine_weights(m_gweights, bit0, bit1, bit2); + + // blue component + bit0 = (newword >> 6) & 0x01; + bit1 = (newword >> 7) & 0x01; + int const b = combine_weights(m_bweights, bit0, bit1); + + m_palette->set_pen_color(offset, rgb_t(r, g, b)); +} + + + +/************************************* + * + * Main refresh + * + *************************************/ + +uint32_t foodf_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + gfx_element *gfx = m_gfxdecode->gfx(1); + bitmap_ind8 &priority_bitmap = screen.priority(); + + // first draw the playfield opaquely + m_playfield_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + + // then draw the non-transparent parts with a priority of 1 + priority_bitmap.fill(0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 1); + + // draw the motion objects front-to-back + for (int offs = 0x80 - 2; offs >= 0x20; offs -= 2) + { + int const data1 = m_spriteram[offs]; + int const data2 = m_spriteram[offs + 1]; + + int const pict = data1 & 0xff; + int const color = (data1 >> 8) & 0x1f; + int const xpos = (data2 >> 8) & 0xff; + int const ypos = (0xff - data2 - 16) & 0xff; + int const hflip = (data1 >> 15) & 1; + int const vflip = (data1 >> 14) & 1; + int const pri = (data1 >> 13) & 1; + + gfx->prio_transpen(bitmap, cliprect, pict, color, hflip, vflip, + xpos, ypos, priority_bitmap, pri * 2, 0); + + // draw again with wraparound (needed to get the end of level animation right) + gfx->prio_transpen(bitmap, cliprect, pict, color, hflip, vflip, + xpos - 256, ypos, priority_bitmap, pri * 2, 0); + } + + return 0; +} /************************************* @@ -125,16 +328,16 @@ TIMER_DEVICE_CALLBACK_MEMBER(foodf_state::scanline_update_timer) structure, it cannot fire at the same time as VBLANK. I have not solved this mystery yet */ - /* INT 1 is on 32V */ + // INT 1 is on 32V m_scanline_int_state = true; update_interrupts(); - /* advance to the next interrupt */ + // advance to the next interrupt scanline += 64; if (scanline > 192) scanline = 0; - /* set a timer for it */ + // set a timer for it timer.adjust(m_screen->time_until_pos(scanline), scanline); } @@ -176,7 +379,7 @@ void foodf_state::machine_reset() void foodf_state::digital_w(uint8_t data) { - foodf_set_flip(data & 0x01); + set_flip(data & 0x01); m_nvram->store(data & 0x02); @@ -213,14 +416,14 @@ void foodf_state::main_map(address_map &map) map(0x000000, 0x00ffff).mirror(0x3e0000).rom(); map(0x014000, 0x014fff).mirror(0x3e3000).ram(); map(0x018000, 0x018fff).mirror(0x3e3000).ram(); - map(0x01c000, 0x01c0ff).mirror(0x3e3f00).ram().share("spriteram"); + map(0x01c000, 0x01c0ff).mirror(0x3e3f00).ram().share(m_spriteram); map(0x800000, 0x8007ff).mirror(0x03f800).ram().w(m_playfield_tilemap, FUNC(tilemap_device::write16)).share("playfield"); map(0x900000, 0x9001ff).mirror(0x03fe00).rw(m_nvram, FUNC(x2212_device::read), FUNC(x2212_device::write)).umask16(0x00ff); map(0x940001, 0x940001).mirror(0x023ffe).r("adc", FUNC(adc0809_device::data_r)); map(0x944000, 0x944007).mirror(0x023ff8).w("adc", FUNC(adc0809_device::address_offset_start_w)).umask16(0x00ff); map(0x948000, 0x948001).mirror(0x023ffe).portr("SYSTEM"); map(0x948001, 0x948001).mirror(0x023ffe).w(FUNC(foodf_state::digital_w)); - map(0x950000, 0x9501ff).mirror(0x023e00).w(FUNC(foodf_state::foodf_paletteram_w)).share("paletteram"); + map(0x950000, 0x9501ff).mirror(0x023e00).w(FUNC(foodf_state::paletteram_w)).share("paletteram"); map(0x954000, 0x954001).mirror(0x023ffe).w(FUNC(foodf_state::nvram_recall_w)); map(0x958000, 0x958001).mirror(0x023ffe).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w)); map(0xa40000, 0xa4001f).mirror(0x03ffe0).rw("pokey2", FUNC(pokey_device::read), FUNC(pokey_device::write)).umask16(0x00ff); @@ -259,7 +462,7 @@ static INPUT_PORTS_START( foodf ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - PORT_START("DSW") /* SW1 */ + PORT_START("DSW") // SW1 PORT_DIPNAME( 0x07, 0x00, "Bonus Coins" ) PORT_DIPLOCATION("SW1:8,7,6") PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_DIPSETTING( 0x05, "1 for every 2" ) @@ -314,8 +517,8 @@ static const gfx_layout spritelayout = static GFXDECODE_START( gfx_foodf ) - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 64 ) - GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0, 32 ) + GFXDECODE_ENTRY( "tiles", 0, charlayout, 0, 64 ) + GFXDECODE_ENTRY( "sprites", 0, spritelayout, 0, 32 ) GFXDECODE_END @@ -328,7 +531,7 @@ GFXDECODE_END uint8_t foodf_state::pot_r(offs_t offset) { - return (ioport("DSW")->read() >> offset) << 7; + return (m_dsw->read() >> offset) << 7; } /************************************* @@ -339,11 +542,13 @@ uint8_t foodf_state::pot_r(offs_t offset) void foodf_state::foodf(machine_config &config) { - /* basic machine hardware */ - M68000(config, m_maincpu, MASTER_CLOCK/2); + constexpr XTAL MASTER_CLOCK = 12.096_MHz_XTAL; + + // basic machine hardware + M68000(config, m_maincpu, MASTER_CLOCK / 2); m_maincpu->set_addrmap(AS_PROGRAM, &foodf_state::main_map); - adc0809_device &adc(ADC0809(config, "adc", MASTER_CLOCK/16)); + adc0809_device &adc(ADC0809(config, "adc", MASTER_CLOCK / 16)); adc.in_callback<0>().set_ioport("STICK1_Y"); adc.in_callback<1>().set_ioport("STICK0_Y"); adc.in_callback<2>().set_ioport("STICK1_X"); @@ -355,22 +560,22 @@ void foodf_state::foodf(machine_config &config) TIMER(config, m_scan_timer).configure_generic(FUNC(foodf_state::scanline_update_timer)); - /* video hardware */ + // video hardware GFXDECODE(config, m_gfxdecode, m_palette, gfx_foodf); PALETTE(config, m_palette).set_entries(256); - TILEMAP(config, m_playfield_tilemap, "gfxdecode", 2, 8,8, TILEMAP_SCAN_COLS, 32,32, 0).set_info_callback(FUNC(foodf_state::get_playfield_tile_info)); + TILEMAP(config, m_playfield_tilemap, "gfxdecode", 2, 8, 8, TILEMAP_SCAN_COLS, 32, 32, 0).set_info_callback(FUNC(foodf_state::get_playfield_tile_info)); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(MASTER_CLOCK/2, 384, 0, 256, 259, 0, 224); - m_screen->set_screen_update(FUNC(foodf_state::screen_update_foodf)); + m_screen->set_raw(MASTER_CLOCK / 2, 384, 0, 256, 259, 0, 224); + m_screen->set_screen_update(FUNC(foodf_state::screen_update)); m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(foodf_state::video_int_write_line)); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); - pokey_device &pokey1(POKEY(config, "pokey1", MASTER_CLOCK/2/10)); + pokey_device &pokey1(POKEY(config, "pokey1", MASTER_CLOCK / 2 / 10)); pokey1.pot_r<0>().set(FUNC(foodf_state::pot_r)); pokey1.pot_r<1>().set(FUNC(foodf_state::pot_r)); pokey1.pot_r<2>().set(FUNC(foodf_state::pot_r)); @@ -381,10 +586,10 @@ void foodf_state::foodf(machine_config &config) pokey1.pot_r<7>().set(FUNC(foodf_state::pot_r)); pokey1.add_route(ALL_OUTPUTS, "mono", 0.33); - pokey_device &pokey2(POKEY(config, "pokey2", MASTER_CLOCK/2/10)); + pokey_device &pokey2(POKEY(config, "pokey2", MASTER_CLOCK / 2 / 10)); pokey2.add_route(ALL_OUTPUTS, "mono", 0.33); - pokey_device &pokey3(POKEY(config, "pokey3", MASTER_CLOCK/2/10)); + pokey_device &pokey3(POKEY(config, "pokey3", MASTER_CLOCK / 2 / 10)); pokey3.add_route(ALL_OUTPUTS, "mono", 0.33); } @@ -397,59 +602,59 @@ void foodf_state::foodf(machine_config &config) *************************************/ ROM_START( foodf ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for 68000 code */ + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD16_BYTE( "136020-301.8c", 0x000001, 0x002000, CRC(dfc3d5a8) SHA1(7abe5e9c27098bd8c93cc06f1b9e3db0744019e9) ) ROM_LOAD16_BYTE( "136020-302.9c", 0x000000, 0x002000, CRC(ef92dc5c) SHA1(eb41291615165f549a68ebc6d4664edef1a04ac5) ) ROM_LOAD16_BYTE( "136020-303.8d", 0x004001, 0x002000, CRC(64b93076) SHA1(efa4090d96aa0ffd4192a045f174ac5960810bca) ) - ROM_LOAD16_BYTE( "136020-204.9d", 0x004000, 0x002000, CRC(ea596480) SHA1(752aa33a8e8045650dd32ec7c7026e00d7896e0f) ) /* rev 2xx is correct for this rom */ + ROM_LOAD16_BYTE( "136020-204.9d", 0x004000, 0x002000, CRC(ea596480) SHA1(752aa33a8e8045650dd32ec7c7026e00d7896e0f) ) // rev 2xx is correct for this ROM ROM_LOAD16_BYTE( "136020-305.8e", 0x008001, 0x002000, CRC(e6cff1b1) SHA1(7c7ad2dcdff60fc092e8a825c5a6de6b506523de) ) ROM_LOAD16_BYTE( "136020-306.9e", 0x008000, 0x002000, CRC(95159a3e) SHA1(f180126671776f62242ec9fd4a82a581c551ffce) ) ROM_LOAD16_BYTE( "136020-307.8f", 0x00c001, 0x002000, CRC(17828dbb) SHA1(9d8e29a5e56a8a9c5db8561e4c20ff22f69b46ca) ) - ROM_LOAD16_BYTE( "136020-208.9f", 0x00c000, 0x002000, CRC(608690c9) SHA1(419020c69ce6fded0d9af44ead8ec4727468d58b) ) /* rev 2xx is correct for this rom */ + ROM_LOAD16_BYTE( "136020-208.9f", 0x00c000, 0x002000, CRC(608690c9) SHA1(419020c69ce6fded0d9af44ead8ec4727468d58b) ) // rev 2xx is correct for this ROM - ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_REGION( 0x2000, "tiles", 0 ) ROM_LOAD( "136020-109.6lm", 0x000000, 0x002000, CRC(c13c90eb) SHA1(ebd2bbbdd7e184851d1ab4b5648481d966c78cc2) ) - ROM_REGION( 0x4000, "gfx2", 0 ) - ROM_LOAD( "136020-110.4e", 0x000000, 0x002000, CRC(8870e3d6) SHA1(702007d3d543f872b5bf5d00b49f6e05b46d6600) ) /* Actual PCB locations! WARNING: Original Atari manuals */ - ROM_LOAD( "136020-111.4d", 0x002000, 0x002000, CRC(84372edf) SHA1(9beef3ff3b28405c45d691adfbc233921073be47) ) /* incorrectly have these two listed in reverse locations. */ + ROM_REGION( 0x4000, "sprites", 0 ) + ROM_LOAD( "136020-110.4e", 0x000000, 0x002000, CRC(8870e3d6) SHA1(702007d3d543f872b5bf5d00b49f6e05b46d6600) ) // Actual PCB locations! WARNING: Original Atari manuals + ROM_LOAD( "136020-111.4d", 0x002000, 0x002000, CRC(84372edf) SHA1(9beef3ff3b28405c45d691adfbc233921073be47) ) // incorrectly have these two listed in reverse locations. ROM_REGION( 0x100, "proms", 0 ) ROM_LOAD( "136020-112.2p", 0x000000, 0x000100, CRC(0aa962d6) SHA1(efb51e4c95efb1b85206c416c1d6d35c6f4ff35c) ) - ROM_REGION( 0x100, "nvram", 0 ) // default initialized nvram + ROM_REGION( 0x100, "nvram", 0 ) // default initialized NVRAM ROM_LOAD( "foodf.nv", 0x000000, 0x000100, CRC(a4186b13) SHA1(7633ceb6f61403a46e36cc2172839e6c3f31bac2) ) ROM_END ROM_START( foodf2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for 68000 code */ + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD16_BYTE( "136020-201.8c", 0x000001, 0x002000, CRC(4ee52d73) SHA1(ff4ab8169a9b260bbd1f49023a30064e2f0b6686) ) ROM_LOAD16_BYTE( "136020-202.9c", 0x000000, 0x002000, CRC(f8c4b977) SHA1(824d33baa413b2ee898c75157624ea007c92032f) ) ROM_LOAD16_BYTE( "136020-203.8d", 0x004001, 0x002000, CRC(0e9f99a3) SHA1(37bba66957ee19e7d05fcc3e4583e909809075ed) ) - ROM_LOAD16_BYTE( "136020-104.9d", 0x004000, 0x002000, CRC(f667374c) SHA1(d7be70b56500e2071b7f8c810f7a3e2a6743c6bd) ) /* rev 1xx is correct for this rom */ + ROM_LOAD16_BYTE( "136020-104.9d", 0x004000, 0x002000, CRC(f667374c) SHA1(d7be70b56500e2071b7f8c810f7a3e2a6743c6bd) ) // rev 1xx is correct for this ROM ROM_LOAD16_BYTE( "136020-205.8e", 0x008001, 0x002000, CRC(1edd05b5) SHA1(cc712a11946c103eaa808c86e15676fde8610ad9) ) ROM_LOAD16_BYTE( "136020-206.9e", 0x008000, 0x002000, CRC(bb8926b3) SHA1(95c6ba8ac6b56d1a67a47758b71712d55a959cd0) ) ROM_LOAD16_BYTE( "136020-207.8f", 0x00c001, 0x002000, CRC(c7383902) SHA1(f76e2c95fccd0cafff9346a32e0c041c291a6696) ) ROM_LOAD16_BYTE( "136020-208.9f", 0x00c000, 0x002000, CRC(608690c9) SHA1(419020c69ce6fded0d9af44ead8ec4727468d58b) ) - ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_REGION( 0x2000, "tiles", 0 ) ROM_LOAD( "136020-109.6lm", 0x000000, 0x002000, CRC(c13c90eb) SHA1(ebd2bbbdd7e184851d1ab4b5648481d966c78cc2) ) - ROM_REGION( 0x4000, "gfx2", 0 ) - ROM_LOAD( "136020-110.4e", 0x000000, 0x002000, CRC(8870e3d6) SHA1(702007d3d543f872b5bf5d00b49f6e05b46d6600) ) /* Actual PCB locations! WARNING: Original Atari manuals */ - ROM_LOAD( "136020-111.4d", 0x002000, 0x002000, CRC(84372edf) SHA1(9beef3ff3b28405c45d691adfbc233921073be47) ) /* incorrectly have these two listed in reverse locations. */ + ROM_REGION( 0x4000, "sprites", 0 ) + ROM_LOAD( "136020-110.4e", 0x000000, 0x002000, CRC(8870e3d6) SHA1(702007d3d543f872b5bf5d00b49f6e05b46d6600) ) // Actual PCB locations! WARNING: Original Atari manuals + ROM_LOAD( "136020-111.4d", 0x002000, 0x002000, CRC(84372edf) SHA1(9beef3ff3b28405c45d691adfbc233921073be47) ) // incorrectly have these two listed in reverse locations. ROM_REGION( 0x100, "proms", 0 ) ROM_LOAD( "136020-112.2p", 0x000000, 0x000100, CRC(0aa962d6) SHA1(efb51e4c95efb1b85206c416c1d6d35c6f4ff35c) ) - ROM_REGION( 0x100, "nvram", 0 ) // default initialized nvram + ROM_REGION( 0x100, "nvram", 0 ) // default initialized NVRAM ROM_LOAD( "foodf.nv", 0x000000, 0x000100, CRC(a4186b13) SHA1(7633ceb6f61403a46e36cc2172839e6c3f31bac2) ) ROM_END ROM_START( foodf1 ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for 68000 code */ + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD16_BYTE( "136020-101.8c", 0x000001, 0x002000, CRC(06d0ede0) SHA1(2bc6bef433abcaba8181b76dfa90e45a35b04ada) ) ROM_LOAD16_BYTE( "136020-102.9c", 0x000000, 0x002000, CRC(ca6390a4) SHA1(b5a355f7900e96eaeb6946de6d10bfc842ce23d1) ) ROM_LOAD16_BYTE( "136020-103.8d", 0x004001, 0x002000, CRC(36e89e89) SHA1(2a71650d71ca8b8e16fdff158e6c8265b9bf8625) ) @@ -459,23 +664,23 @@ ROM_START( foodf1 ) ROM_LOAD16_BYTE( "136020-107.8f", 0x00c001, 0x002000, CRC(8a3f7ca4) SHA1(7196ebe15a35511276c32111fc69a207bbc7837f) ) ROM_LOAD16_BYTE( "136020-108.9f", 0x00c000, 0x002000, CRC(d4244e12) SHA1(f8963c1e170471f5c132005b96fed80bc26f2574) ) - ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_REGION( 0x2000, "tiles", 0 ) ROM_LOAD( "136020-109.6lm", 0x000000, 0x002000, CRC(c13c90eb) SHA1(ebd2bbbdd7e184851d1ab4b5648481d966c78cc2) ) - ROM_REGION( 0x4000, "gfx2", 0 ) + ROM_REGION( 0x4000, "sprites", 0 ) ROM_LOAD( "136020-110.4e", 0x000000, 0x002000, CRC(8870e3d6) SHA1(702007d3d543f872b5bf5d00b49f6e05b46d6600) ) ROM_LOAD( "136020-111.4d", 0x002000, 0x002000, CRC(84372edf) SHA1(9beef3ff3b28405c45d691adfbc233921073be47) ) ROM_REGION( 0x100, "proms", 0 ) ROM_LOAD( "136020-112.2p", 0x000000, 0x000100, CRC(0aa962d6) SHA1(efb51e4c95efb1b85206c416c1d6d35c6f4ff35c) ) - ROM_REGION( 0x100, "nvram", 0 ) // default initialized nvram + ROM_REGION( 0x100, "nvram", 0 ) // default initialized NVRAM ROM_LOAD( "foodf.nv", 0x000000, 0x000100, CRC(a4186b13) SHA1(7633ceb6f61403a46e36cc2172839e6c3f31bac2) ) ROM_END ROM_START( foodfc ) - ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for 68000 code */ + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD16_BYTE( "136020-113.8c", 0x000001, 0x002000, CRC(193a299f) SHA1(58bbf714eff22d8a47b174e4b121f14a8dcb4ef9) ) ROM_LOAD16_BYTE( "136020-114.9c", 0x000000, 0x002000, CRC(33ed6bbe) SHA1(5d80fb092d2964b851e6c5982572d4ffc5078c55) ) ROM_LOAD16_BYTE( "136020-115.8d", 0x004001, 0x002000, CRC(64b93076) SHA1(efa4090d96aa0ffd4192a045f174ac5960810bca) ) @@ -485,20 +690,21 @@ ROM_START( foodfc ) ROM_LOAD16_BYTE( "136020-119.8f", 0x00c001, 0x002000, CRC(455cc891) SHA1(9f7764c15dea7568326860b910686fec644c42c2) ) ROM_LOAD16_BYTE( "136020-120.9f", 0x00c000, 0x002000, CRC(34173910) SHA1(19e6032c22d20410386516ffc1a809ae50431c65) ) - ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_REGION( 0x2000, "tiles", 0 ) ROM_LOAD( "136020-109.6lm", 0x000000, 0x002000, CRC(c13c90eb) SHA1(ebd2bbbdd7e184851d1ab4b5648481d966c78cc2) ) - ROM_REGION( 0x4000, "gfx2", 0 ) - ROM_LOAD( "136020-110.4e", 0x000000, 0x002000, CRC(8870e3d6) SHA1(702007d3d543f872b5bf5d00b49f6e05b46d6600) ) /* Actual PCB locations! WARNING: Original Atari manuals */ - ROM_LOAD( "136020-111.4d", 0x002000, 0x002000, CRC(84372edf) SHA1(9beef3ff3b28405c45d691adfbc233921073be47) ) /* incorrectly have these two listed in reverse locations. */ + ROM_REGION( 0x4000, "sprites", 0 ) + ROM_LOAD( "136020-110.4e", 0x000000, 0x002000, CRC(8870e3d6) SHA1(702007d3d543f872b5bf5d00b49f6e05b46d6600) ) // Actual PCB locations! WARNING: Original Atari manuals + ROM_LOAD( "136020-111.4d", 0x002000, 0x002000, CRC(84372edf) SHA1(9beef3ff3b28405c45d691adfbc233921073be47) ) // incorrectly have these two listed in reverse locations. ROM_REGION( 0x100, "proms", 0 ) ROM_LOAD( "136020-112.2p", 0x000000, 0x000100, CRC(0aa962d6) SHA1(efb51e4c95efb1b85206c416c1d6d35c6f4ff35c) ) - ROM_REGION( 0x100, "nvram", 0 ) // default initialized nvram, differs from the other sets + ROM_REGION( 0x100, "nvram", 0 ) // default initialized NVRAM, differs from the other sets ROM_LOAD( "foodfc.nv", 0x000000, 0x000100, CRC(c1385dab) SHA1(52f4dc772e5da0f7c9bcef6c6ef3a655dcd3d59d) ) ROM_END +} // anonymous namespace /************************************* diff --git a/src/mame/atari/foodf.h b/src/mame/atari/foodf.h deleted file mode 100644 index ba3cc680c38..00000000000 --- a/src/mame/atari/foodf.h +++ /dev/null @@ -1,76 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Aaron Giles -/************************************************************************* - - Atari Food Fight hardware - -*************************************************************************/ -#ifndef MAME_ATARI_FOODF_H -#define MAME_ATARI_FOODF_H - -#pragma once - -#include "machine/timer.h" -#include "machine/x2212.h" -#include "emupal.h" -#include "screen.h" -#include "tilemap.h" - -class foodf_state : public driver_device -{ -public: - foodf_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_nvram(*this, "nvram"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_paletteram(*this, "paletteram"), - m_gfxdecode(*this, "gfxdecode"), - m_playfield_tilemap(*this, "playfield"), - m_scan_timer(*this, "scan_timer"), - m_spriteram(*this, "spriteram"), - m_leds(*this, "led%u", 0U) - { } - - void foodf(machine_config &config); - -private: - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; - void update_interrupts(); - void nvram_recall_w(uint16_t data); - void digital_w(uint8_t data); - void foodf_paletteram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - void foodf_set_flip(int flip); - uint8_t pot_r(offs_t offset); - TILE_GET_INFO_MEMBER(get_playfield_tile_info); - uint32_t screen_update_foodf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - TIMER_DEVICE_CALLBACK_MEMBER(scanline_update_timer); - DECLARE_WRITE_LINE_MEMBER(video_int_write_line); - - void main_map(address_map &map); - - bool m_scanline_int_state = false; - bool m_video_int_state = false; - - required_device m_maincpu; - required_device m_nvram; - required_device m_screen; - required_device m_palette; - required_shared_ptr m_paletteram; - required_device m_gfxdecode; - required_device m_playfield_tilemap; - required_device m_scan_timer; - - double m_rweights[3]{}; - double m_gweights[3]{}; - double m_bweights[2]{}; - uint8_t m_playfield_flip = 0U; - - required_shared_ptr m_spriteram; - output_finder<2> m_leds; -}; - -#endif // MAME_ATARI_FOODF_H diff --git a/src/mame/atari/foodf_v.cpp b/src/mame/atari/foodf_v.cpp deleted file mode 100644 index 706c7ca1cac..00000000000 --- a/src/mame/atari/foodf_v.cpp +++ /dev/null @@ -1,149 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Aaron Giles -/*************************************************************************** - - Atari Food Fight hardware - -****************************************************************************/ - -#include "emu.h" -#include "foodf.h" -#include "video/resnet.h" - - -/************************************* - * - * Tilemap callbacks - * - *************************************/ - -TILE_GET_INFO_MEMBER(foodf_state::get_playfield_tile_info) -{ - uint16_t data = m_playfield_tilemap->basemem_read(tile_index); - int code = (data & 0xff) | ((data >> 7) & 0x100); - int color = (data >> 8) & 0x3f; - tileinfo.set(0, code, color, m_playfield_flip ? (TILE_FLIPX | TILE_FLIPY) : 0); -} - - - -/************************************* - * - * Video system start - * - *************************************/ - -void foodf_state::video_start() -{ - static const int resistances[3] = { 1000, 470, 220 }; - - /* adjust the playfield for the 8 pixel offset */ - m_playfield_tilemap->set_scrollx(0, -8); - save_item(NAME(m_playfield_flip)); - - /* compute the color output resistor weights */ - compute_resistor_weights(0, 255, -1.0, - 3, &resistances[0], m_rweights, 0, 0, - 3, &resistances[0], m_gweights, 0, 0, - 2, &resistances[1], m_bweights, 0, 0); -} - - - -/************************************* - * - * Cocktail flip - * - *************************************/ - -void foodf_state::foodf_set_flip(int flip) -{ - if (flip != m_playfield_flip) - { - m_playfield_flip = flip; - m_playfield_tilemap->mark_all_dirty(); - } -} - - - -/************************************* - * - * Palette RAM write - * - *************************************/ - -void foodf_state::foodf_paletteram_w(offs_t offset, uint16_t data, uint16_t mem_mask) -{ - int newword, r, g, b, bit0, bit1, bit2; - - COMBINE_DATA(&m_paletteram[offset]); - newword = m_paletteram[offset]; - - /* only the bottom 8 bits are used */ - /* red component */ - bit0 = (newword >> 0) & 0x01; - bit1 = (newword >> 1) & 0x01; - bit2 = (newword >> 2) & 0x01; - r = combine_weights(m_rweights, bit0, bit1, bit2); - - /* green component */ - bit0 = (newword >> 3) & 0x01; - bit1 = (newword >> 4) & 0x01; - bit2 = (newword >> 5) & 0x01; - g = combine_weights(m_gweights, bit0, bit1, bit2); - - /* blue component */ - bit0 = (newword >> 6) & 0x01; - bit1 = (newword >> 7) & 0x01; - b = combine_weights(m_bweights, bit0, bit1); - - m_palette->set_pen_color(offset, rgb_t(r, g, b)); -} - - - -/************************************* - * - * Main refresh - * - *************************************/ - -uint32_t foodf_state::screen_update_foodf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - int offs; - gfx_element *gfx = m_gfxdecode->gfx(1); - bitmap_ind8 &priority_bitmap = screen.priority(); - uint16_t *spriteram16 = m_spriteram; - - /* first draw the playfield opaquely */ - m_playfield_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - - /* then draw the non-transparent parts with a priority of 1 */ - priority_bitmap.fill(0); - m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 1); - - /* draw the motion objects front-to-back */ - for (offs = 0x80-2; offs >= 0x20; offs -= 2) - { - int data1 = spriteram16[offs]; - int data2 = spriteram16[offs+1]; - - int pict = data1 & 0xff; - int color = (data1 >> 8) & 0x1f; - int xpos = (data2 >> 8) & 0xff; - int ypos = (0xff - data2 - 16) & 0xff; - int hflip = (data1 >> 15) & 1; - int vflip = (data1 >> 14) & 1; - int pri = (data1 >> 13) & 1; - - gfx->prio_transpen(bitmap,cliprect, pict, color, hflip, vflip, - xpos, ypos, priority_bitmap, pri * 2, 0); - - /* draw again with wraparound (needed to get the end of level animation right) */ - gfx->prio_transpen(bitmap,cliprect, pict, color, hflip, vflip, - xpos - 256, ypos, priority_bitmap, pri * 2, 0); - } - - return 0; -} diff --git a/src/mame/capcom/cps1.cpp b/src/mame/capcom/cps1.cpp index 45662b75dee..242fa435aba 100644 --- a/src/mame/capcom/cps1.cpp +++ b/src/mame/capcom/cps1.cpp @@ -6829,36 +6829,36 @@ ROM_START( nemoj ) ROM_LOAD16_BYTE( "nmj_42a.12h", 0x00001, 0x20000, CRC(55024740) SHA1(4bacbd191bb435de5dc548ac7fa16ed286bd2d3b) ) ROM_LOAD16_BYTE( "nmj_37a.13f", 0x40000, 0x20000, CRC(619068b6) SHA1(2507c6f77a06a80f913c848dcb6816bcbf4bba8a) ) ROM_LOAD16_BYTE( "nmj_43a.13h", 0x40001, 0x20000, CRC(a948a53b) SHA1(65c2abf321cf8b171bbfbb51ed57bc99eb552ca9) ) - ROM_LOAD16_BYTE( "nm_34.10f", 0x80000, 0x20000, CRC(5737feed) SHA1(2635715cc21381e9f0a4ae4227eb5896886ee3e2) ) // == nm-32m.8h - ROM_LOAD16_BYTE( "nm_40.10h", 0x80001, 0x20000, CRC(8a4099f3) SHA1(d1af73d8992aa9ef6dcd729675a2fbea8c290311) ) // == nm-32m.8h - ROM_LOAD16_BYTE( "nm_35.11f", 0xc0000, 0x20000, CRC(bd11a7f8) SHA1(1c09db7cbd132866d4f08720cdd60707069f8580) ) // == nm-32m.8h - ROM_LOAD16_BYTE( "nm_41.11h", 0xc0001, 0x20000, CRC(6309603d) SHA1(51bee785ddb87340ad56960ad816c0513bc93eb8) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nmj_34.10f", 0x80000, 0x20000, CRC(5737feed) SHA1(2635715cc21381e9f0a4ae4227eb5896886ee3e2) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nmj_40.10h", 0x80001, 0x20000, CRC(8a4099f3) SHA1(d1af73d8992aa9ef6dcd729675a2fbea8c290311) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nmj_35.11f", 0xc0000, 0x20000, CRC(bd11a7f8) SHA1(1c09db7cbd132866d4f08720cdd60707069f8580) ) // == nm-32m.8h + ROM_LOAD16_BYTE( "nmj_41.11h", 0xc0001, 0x20000, CRC(6309603d) SHA1(51bee785ddb87340ad56960ad816c0513bc93eb8) ) // == nm-32m.8h ROM_REGION( 0x200000, "gfx", 0 ) - ROM_LOAD64_BYTE( "nm_09.4b", 0x000000, 0x20000, CRC(9d60d286) SHA1(69ea9d584d735c3629e1c017cbd966df264e4324) ) // == nm-5m.7a - ROM_LOAD64_BYTE( "nm_01.4a", 0x000001, 0x20000, CRC(8a83f7c4) SHA1(ef24f47517d22dfecd3e6b5ef76e38073f6b81ba) ) // == nm-5m.7a - ROM_LOAD64_BYTE( "nm_13.9b", 0x000002, 0x20000, CRC(a4909fe0) SHA1(6b1a0e8c2bd2979f7fcc363a86de28d3e365709c) ) // == nm-7m.9a - ROM_LOAD64_BYTE( "nm_05.9a", 0x000003, 0x20000, CRC(16db1e61) SHA1(76ff93edd4d40a2527744585a87052a3fc0c77f6) ) // == nm-7m.9a - ROM_LOAD64_BYTE( "nm_24.5e", 0x000004, 0x20000, CRC(3312c648) SHA1(9e4f584fa360de16d42d65619dbe9426d4322c00) ) // == nm-1m.3a - ROM_LOAD64_BYTE( "nm_17.5c", 0x000005, 0x20000, CRC(ccfc50e2) SHA1(a238f050d11e925b1c0037bb860289ab746b7039) ) // == nm-1m.3a - ROM_LOAD64_BYTE( "nm_38.8h", 0x000006, 0x20000, CRC(ae98a997) SHA1(d2d499395e43aa85d9098966d04fde6bd055900b) ) // == nm-3m.5a - ROM_LOAD64_BYTE( "nm_32.8f", 0x000007, 0x20000, CRC(b3704dde) SHA1(d107fecb45f34e877faabffcdaba437935754906) ) // == nm-3m.5a - ROM_LOAD64_BYTE( "nm_10.5b", 0x100000, 0x20000, CRC(33c1388c) SHA1(cd1ec3e8d6d2b5a65648c749426ec4e254f93d8c) ) // == nm-5m.7a - ROM_LOAD64_BYTE( "nm_02.5a", 0x100001, 0x20000, CRC(84c69469) SHA1(700cf7be644056b1dbc5d8bed37caf6383a81cfe) ) // == nm-5m.7a - ROM_LOAD64_BYTE( "nm_14.10b", 0x100002, 0x20000, CRC(66612270) SHA1(0c996571459ac44d5ca5683bdcb6a6f08dd83480) ) // == nm-7m.9a - ROM_LOAD64_BYTE( "nm_06.10a", 0x100003, 0x20000, CRC(8b9bcf95) SHA1(e03c6dc4946a37bdab68d929722b1e10a2aca31a) ) // == nm-7m.9a - ROM_LOAD64_BYTE( "nm_25.7e", 0x100004, 0x20000, CRC(acfc84d2) SHA1(4cd9f3bc32ef62cb3b414de68db34f950d10f406) ) // == nm-1m.3a - ROM_LOAD64_BYTE( "nm_18.7c", 0x100005, 0x20000, CRC(4347deed) SHA1(fdd9b3f1ddad42464dcc7298e5b740ffe1622343) ) // == nm-1m.3a - ROM_LOAD64_BYTE( "nm_39.9h", 0x100006, 0x20000, CRC(6a274ecd) SHA1(66259fd6e71cfdb618c189b7f18749a996aacfdf) ) // == nm-3m.5a - ROM_LOAD64_BYTE( "nm_33.9f", 0x100007, 0x20000, CRC(c469dc74) SHA1(d06956eef5f9b31779f218d597a1a504c1e16bad) ) // == nm-3m.5a - - ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ - ROM_LOAD( "nm_23.13b", 0x00000, 0x08000, CRC(8d3c5a42) SHA1(cc7477da80f3d08cf014379318e39cb75b5d3205) ) /* 1 byte different from nemo, pcb verified */ + ROM_LOAD64_BYTE( "nmj_09.4b", 0x000000, 0x20000, CRC(9d60d286) SHA1(69ea9d584d735c3629e1c017cbd966df264e4324) ) // == nm-5m.7a + ROM_LOAD64_BYTE( "nmj_01.4a", 0x000001, 0x20000, CRC(8a83f7c4) SHA1(ef24f47517d22dfecd3e6b5ef76e38073f6b81ba) ) // == nm-5m.7a + ROM_LOAD64_BYTE( "nmj_13.9b", 0x000002, 0x20000, CRC(a4909fe0) SHA1(6b1a0e8c2bd2979f7fcc363a86de28d3e365709c) ) // == nm-7m.9a + ROM_LOAD64_BYTE( "nmj_05.9a", 0x000003, 0x20000, CRC(16db1e61) SHA1(76ff93edd4d40a2527744585a87052a3fc0c77f6) ) // == nm-7m.9a + ROM_LOAD64_BYTE( "nmj_24.5e", 0x000004, 0x20000, CRC(3312c648) SHA1(9e4f584fa360de16d42d65619dbe9426d4322c00) ) // == nm-1m.3a + ROM_LOAD64_BYTE( "nmj_17.5c", 0x000005, 0x20000, CRC(ccfc50e2) SHA1(a238f050d11e925b1c0037bb860289ab746b7039) ) // == nm-1m.3a + ROM_LOAD64_BYTE( "nmj_38.8h", 0x000006, 0x20000, CRC(ae98a997) SHA1(d2d499395e43aa85d9098966d04fde6bd055900b) ) // == nm-3m.5a + ROM_LOAD64_BYTE( "nmj_32.8f", 0x000007, 0x20000, CRC(b3704dde) SHA1(d107fecb45f34e877faabffcdaba437935754906) ) // == nm-3m.5a + ROM_LOAD64_BYTE( "nmj_10.5b", 0x100000, 0x20000, CRC(33c1388c) SHA1(cd1ec3e8d6d2b5a65648c749426ec4e254f93d8c) ) // == nm-5m.7a + ROM_LOAD64_BYTE( "nmj_02.5a", 0x100001, 0x20000, CRC(84c69469) SHA1(700cf7be644056b1dbc5d8bed37caf6383a81cfe) ) // == nm-5m.7a + ROM_LOAD64_BYTE( "nmj_14.10b", 0x100002, 0x20000, CRC(66612270) SHA1(0c996571459ac44d5ca5683bdcb6a6f08dd83480) ) // == nm-7m.9a + ROM_LOAD64_BYTE( "nmj_06.10a", 0x100003, 0x20000, CRC(8b9bcf95) SHA1(e03c6dc4946a37bdab68d929722b1e10a2aca31a) ) // == nm-7m.9a + ROM_LOAD64_BYTE( "nmj_25.7e", 0x100004, 0x20000, CRC(acfc84d2) SHA1(4cd9f3bc32ef62cb3b414de68db34f950d10f406) ) // == nm-1m.3a + ROM_LOAD64_BYTE( "nmj_18.7c", 0x100005, 0x20000, CRC(4347deed) SHA1(fdd9b3f1ddad42464dcc7298e5b740ffe1622343) ) // == nm-1m.3a + ROM_LOAD64_BYTE( "nmj_39.9h", 0x100006, 0x20000, CRC(6a274ecd) SHA1(66259fd6e71cfdb618c189b7f18749a996aacfdf) ) // == nm-3m.5a + ROM_LOAD64_BYTE( "nmj_33.9f", 0x100007, 0x20000, CRC(c469dc74) SHA1(d06956eef5f9b31779f218d597a1a504c1e16bad) ) // == nm-3m.5a + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "nmj_23.13b", 0x00000, 0x08000, CRC(8d3c5a42) SHA1(cc7477da80f3d08cf014379318e39cb75b5d3205) ) // 1 byte different from nemo, pcb verified ROM_CONTINUE( 0x10000, 0x08000 ) ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ - ROM_LOAD( "nm_30.12c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) ) // == nme_18.11c - ROM_LOAD( "nm_31.13c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) ) // == nme_19.12c + ROM_LOAD( "nmj_30.12c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) ) // == nme_18.11c + ROM_LOAD( "nmj_31.13c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) ) // == nme_19.12c ROM_REGION( 0x0200, "aboardplds", 0 ) ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4e14a553e4e..c0ec0c98e24 100755 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -42465,9 +42465,9 @@ othunderu // B67 (c) 1988 Taito America Corporation (US, r othunderuo // B67 (c) 1988 Taito America Corporation (US) @source:taito/pitnrun.cpp +jumpkun // prototype pitnrun // PR (c) 1984 Taito Corporation pitnruna // PR (c) 1984 Taito Corporation -jumpkun // prototype @source:taito/pkspirit.cpp pkspirit // D41 diff --git a/src/mame/namco/namcos23.cpp b/src/mame/namco/namcos23.cpp index d2176830081..272b19fa694 100644 --- a/src/mame/namco/namcos23.cpp +++ b/src/mame/namco/namcos23.cpp @@ -1377,7 +1377,7 @@ Notes: LB1235 - Sanyo LB1235 65V 1.5A 4-channel Darlington Driver LB1233 - Sanyo LB1233 Darlington Transistor Array with Built-in Current Limiting Resistors MB87078 - Fujitsu MB87078 Electronic Volume Control IC (SOIC24) - LC78815 - Sanyo LM78815 2-Channel 16-Bit D/A Converter (SOIC20) + LC78815 - Sanyo LC78815 2-Channel 16-Bit D/A Converter (SOIC20) LA4705 - Sanyo LA4705 15W 2-channel Power Amplifier J101 - 34 pin flat cable connector for filter board J102 - 50 pin flat cable connector for filter board @@ -1411,7 +1411,7 @@ Notes: (* = these parts on bottom side of PCB) 74AC00 - 74AC00 Quad 2-Input NAND Gate 74AC244 - 74AC244 Octal Buffer/Line Driver with Tri-state Outputs NJM2100 - New Japan Radio Co. NJM2100 Dual Operational Amplifier -LC78815 - Sanyo LM78815 2-Channel 16-Bit D/A Converter +LC78815 - Sanyo LC78815 2-Channel 16-Bit D/A Converter This board plugs into the mainboard used for Final Furlong and connects to ASCA-1A I/O PCB. @@ -4182,7 +4182,7 @@ ROM_START( finfurl ) ROM_LOAD16_WORD_SWAP( "ff2vera.ic3", 0x000000, 0x080000, CRC(ab681078) SHA1(ec8367404458a54893ab6bea29c8a2ba3272b816) ) ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ - ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) ) + ROM_LOAD( "asc1_io-a.ic13", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) ) ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */ ROM_LOAD16_BYTE( "ff2mtah.3j", 0x000000, 0x400000, CRC(161003cd) SHA1(04409333a4776b17700fc6d1aa06a39560132e03) ) diff --git a/src/mame/taito/vicshoot.cpp b/src/mame/taito/vicshoot.cpp index 4adf708f088..d149b3e94ac 100644 --- a/src/mame/taito/vicshoot.cpp +++ b/src/mame/taito/vicshoot.cpp @@ -2,7 +2,7 @@ // copyright-holders: /* - Victory Shoot (c) 19?? Taito + Victory Shoot (c) 1995 Taito MAIN PCB-B (stickered K11J0817A VICTORY SHOOT) Main components: @@ -52,7 +52,7 @@ void vicshoot_state::main_map(address_map &map) // TODO: verify everything { map(0x0000, 0x3fff).rom().region("maincpu", 0); map(0xc000, 0xdfff).ram(); - map(0xe000, 0xe00f).lr8(NAME([this] () -> uint8_t { return machine().rand(); })); + // map(0xe000, 0xe00f) // ? map(0xf000, 0xf000).w("ciu", FUNC(pc060ha_device::master_port_w)); map(0xf001, 0xf001).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w)); } @@ -162,4 +162,4 @@ ROM_END } // anonymous namespace -GAME( 19??, vicshoot, 0, vicshoot, vicshoot, vicshoot_state, empty_init, ROT0, "Taito Corporation", "Victory Shoot", MACHINE_IS_SKELETON ) +GAME( 1995, vicshoot, 0, vicshoot, vicshoot, vicshoot_state, empty_init, ROT0, "Taito Corporation", "Victory Shoot", MACHINE_IS_SKELETON ) // a website lists it as 1994, but it was publicized on 1995 magazines. Going with the latter for now -- cgit v1.2.3