summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/sega/flashbeats.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/sega/flashbeats.cpp')
-rw-r--r--src/mame/sega/flashbeats.cpp46
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 )