diff --git a/.gitattributes b/.gitattributes index 0b89716f176..5347c6fafd8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5933,7 +5933,6 @@ src/mess/audio/dave.c svneol=native#text/plain src/mess/audio/dave.h svneol=native#text/plain src/mess/audio/gb.c svneol=native#text/plain src/mess/audio/gb.h svneol=native#text/plain -src/mess/audio/gmaster.c svneol=native#text/plain src/mess/audio/lynx.c svneol=native#text/plain src/mess/audio/lynx.h svneol=native#text/plain src/mess/audio/mac.c svneol=native#text/plain @@ -6554,7 +6553,6 @@ src/mess/includes/gamepock.h svneol=native#text/plain src/mess/includes/gb.h svneol=native#text/plain src/mess/includes/gba.h svneol=native#text/plain src/mess/includes/genpc.h svneol=native#text/plain -src/mess/includes/gmaster.h svneol=native#text/plain src/mess/includes/gp32.h svneol=native#text/plain src/mess/includes/hec2hrp.h svneol=native#text/plain src/mess/includes/hp48.h svneol=native#text/plain diff --git a/src/mess/audio/gmaster.c b/src/mess/audio/gmaster.c deleted file mode 100644 index ae6dd2facd3..00000000000 --- a/src/mess/audio/gmaster.c +++ /dev/null @@ -1,104 +0,0 @@ -/*************************************************************************** - PeT mess@utanet.at march 2002 -***************************************************************************/ - -#include -#include "emu.h" -#include "cpu/upd7810/upd7810.h" -#include "includes/gmaster.h" - -struct gmaster_sound -{ - /*bool*/int level; - sound_stream *mixer_channel; -}; - - -static gmaster_sound *get_token(device_t *device) -{ - assert(device != NULL); - assert(device->type() == GMASTER); - return (gmaster_sound *) downcast(device)->token(); -} - - -int gmaster_io_callback(device_t *device, int ioline, int state) -{ /* comes across with cpu device - need to use sound device */ - gmaster_sound *token = get_token(device->machine().device("custom")); - - switch (ioline) - { - case UPD7810_TO: - token->mixer_channel->update(); - token->level = state; - break; - default: - logerror("io changed %d %.2x\n",ioline, state); - break; - } - return 0; -} - - -/************************************/ -/* Sound handler update */ -/************************************/ -static STREAM_UPDATE( gmaster_update ) -{ - int i; - gmaster_sound *token = get_token(device); - stream_sample_t *buffer = outputs[0]; - - for (i = 0; i < samples; i++, buffer++) - { - *buffer = token->level ? 0x4000 : 0; - } -} - -/************************************/ -/* Sound handler start */ -/************************************/ - -static DEVICE_START( gmaster_sound ) -{ - gmaster_sound *token = get_token(device); - token->mixer_channel = device->machine().sound().stream_alloc(*device, 0, 1, device->machine().sample_rate(), 0, gmaster_update); -} - -const device_type GMASTER = &device_creator; - -gmaster_sound_device::gmaster_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, GMASTER, "Game Master Custom", tag, owner, clock), - device_sound_interface(mconfig, *this) -{ - m_token = global_alloc_clear(gmaster_sound); -} - -//------------------------------------------------- -// device_config_complete - perform any -// operations now that the configuration is -// complete -//------------------------------------------------- - -void gmaster_sound_device::device_config_complete() -{ -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void gmaster_sound_device::device_start() -{ - DEVICE_START_NAME( gmaster_sound )(this); -} - -//------------------------------------------------- -// sound_stream_update - handle a stream update -//------------------------------------------------- - -void gmaster_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) -{ - // should never get here - fatalerror("sound_stream_update called; not applicable to legacy sound devices\n"); -} diff --git a/src/mess/drivers/gmaster.c b/src/mess/drivers/gmaster.c index e33c14a8e27..0e318fb3bb4 100644 --- a/src/mess/drivers/gmaster.c +++ b/src/mess/drivers/gmaster.c @@ -5,8 +5,48 @@ #include "emu.h" #include "cpu/upd7810/upd7810.h" #include "imagedev/cartslot.h" +#include "sound/speaker.h" #include "rendlay.h" -#include "includes/gmaster.h" + + +struct GMASTER_VIDEO +{ + UINT8 data[8]; + int index; + int x, y; + /*bool*/int mode; // true read does not increase address + /*bool*/int delayed; + UINT8 pixels[8][64/*>=62 sure*/]; +}; + +struct GMASTER_MACHINE +{ + UINT8 ports[5]; +}; + + +class gmaster_state : public driver_device +{ +public: + gmaster_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_speaker(*this, "speaker") + { } + + GMASTER_VIDEO m_video; + GMASTER_MACHINE m_gmachine; + DECLARE_READ8_MEMBER(gmaster_io_r); + DECLARE_WRITE8_MEMBER(gmaster_io_w); + DECLARE_READ8_MEMBER(gmaster_port_r); + DECLARE_WRITE8_MEMBER(gmaster_port_w); + DECLARE_DRIVER_INIT(gmaster); + virtual void palette_init(); + UINT32 screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(gmaster_interrupt); + required_device m_maincpu; + required_device m_speaker; +}; READ8_MEMBER(gmaster_state::gmaster_io_r) @@ -120,7 +160,7 @@ WRITE8_MEMBER(gmaster_state::gmaster_port_w) { case UPD7810_PORTC: m_video.y = BLITTER_Y; - gmaster_io_callback(this, UPD7810_TO, ( data & 0x10 ) ? 1 : 0 ); + speaker_level_w( m_speaker, ( data & 0x10 ) ? 1 : 0 ); break; } } @@ -211,11 +251,11 @@ INTERRUPT_GEN_MEMBER(gmaster_state::gmaster_interrupt) static const UPD7810_CONFIG config = { // TYPE_78C10, // 78c11 in handheld TYPE_7810, // temporarily until 7810 core fixes synchronized - gmaster_io_callback + NULL }; static MACHINE_CONFIG_START( gmaster, gmaster_state ) - MCFG_CPU_ADD("maincpu", UPD7810, XTAL_12MHz/2/*?*/) + MCFG_CPU_ADD("maincpu", UPD7810, XTAL_12MHz/2/*?*/) // upd78c11 in the unit MCFG_CPU_PROGRAM_MAP(gmaster_mem) MCFG_CPU_IO_MAP( gmaster_io) MCFG_CPU_CONFIG( config ) @@ -231,7 +271,7 @@ static MACHINE_CONFIG_START( gmaster, gmaster_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("custom", GMASTER, 0) + MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_CARTSLOT_ADD("cart") diff --git a/src/mess/includes/gmaster.h b/src/mess/includes/gmaster.h deleted file mode 100644 index 245bc3d3a12..00000000000 --- a/src/mess/includes/gmaster.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __GMASTER_H__ -#define __GMASTER_H__ - -struct GMASTER_VIDEO -{ - UINT8 data[8]; - int index; - int x, y; - /*bool*/int mode; // true read does not increase address - /*bool*/int delayed; - UINT8 pixels[8][64/*>=62 sure*/]; -}; - -struct GMASTER_MACHINE -{ - UINT8 ports[5]; -}; - - -class gmaster_state : public driver_device -{ -public: - gmaster_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu") { } - - GMASTER_VIDEO m_video; - GMASTER_MACHINE m_gmachine; - DECLARE_READ8_MEMBER(gmaster_io_r); - DECLARE_WRITE8_MEMBER(gmaster_io_w); - DECLARE_READ8_MEMBER(gmaster_port_r); - DECLARE_WRITE8_MEMBER(gmaster_port_w); - DECLARE_DRIVER_INIT(gmaster); - virtual void palette_init(); - UINT32 screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(gmaster_interrupt); - required_device m_maincpu; -}; - - -/*----------- defined in audio/gmaster.c -----------*/ - -class gmaster_sound_device : public device_t, - public device_sound_interface -{ -public: - gmaster_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); - ~gmaster_sound_device() { global_free(m_token); } - - // access to legacy token - void *token() const { assert(m_token != NULL); return m_token; } -protected: - // device-level overrides - virtual void device_config_complete(); - virtual void device_start(); - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples); -private: - // internal state - void *m_token; -}; - -extern const device_type GMASTER; - - -int gmaster_io_callback(device_t *device, int ioline, int state); - -#endif /* __GMASTER_H__ */ diff --git a/src/mess/mess.mak b/src/mess/mess.mak index 3824940698f..0e34987fac8 100644 --- a/src/mess/mess.mak +++ b/src/mess/mess.mak @@ -1182,7 +1182,6 @@ $(MESSOBJ)/grundy.a: \ $(MESSOBJ)/hartung.a: \ $(MESS_DRIVERS)/gmaster.o \ - $(MESS_AUDIO)/gmaster.o \ $(MESSOBJ)/heathkit.a: \ $(MESS_DRIVERS)/et3400.o \