diff options
Diffstat (limited to 'src/mame/sega/flashbeats.cpp')
-rw-r--r-- | src/mame/sega/flashbeats.cpp | 46 |
1 files changed, 13 insertions, 33 deletions
diff --git a/src/mame/sega/flashbeats.cpp b/src/mame/sega/flashbeats.cpp index ca6aa3e1647..19b3ea80886 100644 --- a/src/mame/sega/flashbeats.cpp +++ b/src/mame/sega/flashbeats.cpp @@ -27,6 +27,9 @@ #include "screen.h" #include "speaker.h" + +namespace { + class flashbeats_state : public driver_device { public: @@ -44,18 +47,17 @@ public: void flashbeats(machine_config &config); void flashbeats_map(address_map &map); - void flashbeats_io_map(address_map &map); void main_scsp_map(address_map &map); void scsp_mem(address_map &map); - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + [[maybe_unused]] uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); private: virtual void machine_reset() override; void scsp_irq(offs_t offset, uint8_t data); - uint16_t p6_r(); - void p6_w(uint16_t data); + uint8_t p6_r(); + void p6_w(uint8_t data); required_device<h83007_device> m_maincpu; required_device<m68000_device> m_scspcpu; @@ -64,30 +66,9 @@ private: required_device<eeprom_serial_93cxx_device> m_eeprom; required_device<sega_315_5296_device> m_315_5296; required_device<sega_315_5338a_device> m_315_5338a; - - inline void ATTR_PRINTF(3,4) verboselog( int n_level, const char *s_fmt, ... ); }; -#define VERBOSE_LEVEL ( 0 ) - -#define ENABLE_VERBOSE_LOG (0) - -inline void ATTR_PRINTF(3,4) flashbeats_state::verboselog( int n_level, const char *s_fmt, ... ) -{ -#if ENABLE_VERBOSE_LOG - if( VERBOSE_LEVEL >= n_level ) - { - va_list v; - char buf[ 32768 ]; - va_start( v, s_fmt ); - vsprintf( buf, s_fmt, v ); - va_end( v ); - logerror("%s: %s", machine().describe_context(), buf); - } -#endif -} - void flashbeats_state::machine_reset() { uint8_t *ROM = memregion("scspcpu")->base(); @@ -101,12 +82,12 @@ uint32_t flashbeats_state::screen_update(screen_device &screen, bitmap_rgb32 &bi return 0; } -uint16_t flashbeats_state::p6_r() +uint8_t flashbeats_state::p6_r() { return (m_eeprom->do_read() << 3); } -void flashbeats_state::p6_w(uint16_t data) +void flashbeats_state::p6_w(uint8_t data) { m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); m_eeprom->di_write((data >> 2) & 1); @@ -124,11 +105,6 @@ void flashbeats_state::flashbeats_map(address_map &map) map(0xa10000, 0xa10fff).ram(); } -void flashbeats_state::flashbeats_io_map(address_map &map) -{ - map(h8_device::PORT_6, h8_device::PORT_6).rw(FUNC(flashbeats_state::p6_r), FUNC(flashbeats_state::p6_w)); -} - void flashbeats_state::main_scsp_map(address_map &map) { map(0x000000, 0x0fffff).ram().share("sound_ram"); @@ -146,7 +122,8 @@ void flashbeats_state::flashbeats(machine_config &config) /* basic machine hardware */ H83007(config, m_maincpu, 16_MHz_XTAL); // 16 MHz oscillator next to chip, also 16 MHz causes SCI0 and 1 rates to be 31250 (MIDI) m_maincpu->set_addrmap(AS_PROGRAM, &flashbeats_state::flashbeats_map); - m_maincpu->set_addrmap(AS_IO, &flashbeats_state::flashbeats_io_map); + m_maincpu->read_port6().set(FUNC(flashbeats_state::p6_r)); + m_maincpu->write_port6().set(FUNC(flashbeats_state::p6_w)); M68000(config, m_scspcpu, 11289600); m_scspcpu->set_addrmap(AS_PROGRAM, &flashbeats_state::main_scsp_map); @@ -211,5 +188,8 @@ ROM_START( flsbeats ) ROM_LOAD( "mpr-21608_n33_9852k7022.ic25", 0x1c00000, 0x400000, CRC(be4db836) SHA1(93d4cbb3bb299e3cf1dda105670e3923751c28ad) ) ROM_END +} // anonymous namespace + + // YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY FULLNAME FLAGS GAME( 1998, flsbeats, 0, flashbeats, flashbeats, flashbeats_state, empty_init, ROT0, "Sega", "Flash Beats", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) |