begin st0016 reorganization (nw)

This commit is contained in:
David Haywood 2014-10-10 17:14:00 +00:00
parent b6f06fe46f
commit 1f51011af7
10 changed files with 137 additions and 72 deletions

2
.gitattributes vendored
View File

@ -7141,6 +7141,8 @@ src/mame/machine/slapstic.c svneol=native#text/plain
src/mame/machine/slikshot.c svneol=native#text/plain
src/mame/machine/snes.c svneol=native#text/plain
src/mame/machine/spisprit.c svneol=native#text/plain
src/mame/machine/st0016.c svneol=native#text/plain
src/mame/machine/st0016.h svneol=native#text/plain
src/mame/machine/starwars.c svneol=native#text/plain
src/mame/machine/steppers.c svneol=native#text/plain
src/mame/machine/steppers.h svneol=native#text/plain

View File

@ -23,7 +23,7 @@ const device_type ST0016 = &device_creator<st0016_device>;
//-------------------------------------------------
st0016_device::st0016_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, ST0016, "ST0016", tag, owner, clock, "st0016", __FILE__),
: device_t(mconfig, ST0016, "ST0016 (Audio)", tag, owner, clock, "st0016_audio", __FILE__),
device_sound_interface(mconfig, *this),
m_stream(NULL),
m_sound_ram(NULL)

View File

@ -96,9 +96,8 @@ To do:
#include "cpu/m68000/m68000.h"
#include "machine/eepromser.h"
#include "sound/okim6295.h"
#include "sound/st0016.h"
#include "includes/st0016.h"
#include "cpu/z80/z80.h"
#include "machine/st0016.h"
#include "video/st0020.h"
#include "machine/nvram.h"
@ -1038,7 +1037,7 @@ MACHINE_CONFIG_END
static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, darkhors_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("stsnd", st0016_device, st0016_snd_r, st0016_snd_w)
//AM_RANGE(0xe900, 0xe9ff) // sound - internal
AM_RANGE(0xec00, 0xec1f) AM_READ(st0016_character_ram_r) AM_WRITE(st0016_character_ram_w)
AM_RANGE(0xe82f, 0xe830) AM_READNOP
AM_RANGE(0xf000, 0xffff) AM_RAM
@ -1055,10 +1054,6 @@ static ADDRESS_MAP_START( st0016_io, AS_IO, 8, darkhors_state )
//AM_RANGE(0xf0, 0xf0) AM_READ(st0016_dma_r)
ADDRESS_MAP_END
static const st0016_interface st0016_config =
{
&st0016_charram
};
VIDEO_START_MEMBER(darkhors_state,jclub2o)
{
@ -1075,7 +1070,7 @@ static MACHINE_CONFIG_START( jclub2o, darkhors_state )
MCFG_CPU_PROGRAM_MAP(jclub2o_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", darkhors_state, darkhors_irq, "screen", 0, 1)
MCFG_CPU_ADD("st0016",Z80,8000000)
MCFG_CPU_ADD("st0016",ST0016_CPU,8000000)
MCFG_CPU_PROGRAM_MAP(st0016_mem)
MCFG_CPU_IO_MAP(st0016_io)
MCFG_CPU_VBLANK_INT_DRIVER("screen", darkhors_state, irq0_line_hold)
@ -1104,12 +1099,6 @@ static MACHINE_CONFIG_START( jclub2o, darkhors_state )
MCFG_VIDEO_START_OVERRIDE(darkhors_state,jclub2o)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ST0016_ADD("stsnd", 0)
MCFG_SOUND_CONFIG(st0016_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END

View File

@ -56,8 +56,7 @@ KISEKAE -- info
*/
#include "emu.h"
#include "cpu/z80/z80.h"
#include "sound/st0016.h"
#include "machine/st0016.h"
#include "includes/st0016.h"
@ -94,7 +93,7 @@ static ADDRESS_MAP_START( macs_mem, AS_PROGRAM, 8, macs_state )
AM_RANGE(0xd000, 0xdfff) AM_READ(st0016_sprite2_ram_r) AM_WRITE(st0016_sprite2_ram_w)
AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work ram ? */
AM_RANGE(0xe800, 0xe87f) AM_RAM AM_SHARE("ram2")
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("stsnd", st0016_device, st0016_snd_r, st0016_snd_w)
//AM_RANGE(0xe900, 0xe9ff) // sound - internal
AM_RANGE(0xea00, 0xebff) AM_READ(st0016_palette_ram_r) AM_WRITE(st0016_palette_ram_w)
AM_RANGE(0xec00, 0xec1f) AM_READ(st0016_character_ram_r) AM_WRITE(st0016_character_ram_w)
AM_RANGE(0xf000, 0xf7ff) AM_RAMBANK("bank3") /* common /backup ram ?*/
@ -470,14 +469,11 @@ static INPUT_PORTS_START( macs_h )
INPUT_PORTS_END
static const st0016_interface st0016_config =
{
&st0016_charram
};
static MACHINE_CONFIG_START( macs, macs_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",Z80,8000000) /* 8 MHz ? */
MCFG_CPU_ADD("maincpu",ST0016_CPU,8000000) /* 8 MHz ? */
MCFG_CPU_PROGRAM_MAP(macs_mem)
MCFG_CPU_IO_MAP(macs_io)
@ -498,13 +494,6 @@ static MACHINE_CONFIG_START( macs, macs_state )
MCFG_PALETTE_ADD("palette", 16*16*4+1)
MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ST0016_ADD("stsnd", 0)
MCFG_SOUND_CONFIG(st0016_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END

View File

@ -104,9 +104,8 @@ Notes:
*/
#include "emu.h"
#include "cpu/z80/z80.h"
#include "machine/st0016.h"
#include "cpu/mips/r3000.h"
#include "sound/st0016.h"
#include "includes/st0016.h"
@ -144,7 +143,7 @@ static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, speglsht_state )
AM_RANGE(0xd000, 0xdfff) AM_READ(st0016_sprite2_ram_r) AM_WRITE(st0016_sprite2_ram_w)
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xe87f) AM_RAM
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("stsnd", st0016_device, st0016_snd_r, st0016_snd_w)
//AM_RANGE(0xe900, 0xe9ff) // sound - internal
AM_RANGE(0xea00, 0xebff) AM_READ(st0016_palette_ram_r) AM_WRITE(st0016_palette_ram_w)
AM_RANGE(0xec00, 0xec1f) AM_READ(st0016_character_ram_r) AM_WRITE(st0016_character_ram_w)
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("shared")
@ -321,10 +320,6 @@ INPUT_PORTS_END
static GFXDECODE_START( speglsht )
GFXDECODE_END
static const st0016_interface st0016_config =
{
&st0016_charram
};
MACHINE_RESET_MEMBER(speglsht_state,speglsht)
{
@ -380,7 +375,7 @@ UINT32 speglsht_state::screen_update_speglsht(screen_device &screen, bitmap_rgb3
static MACHINE_CONFIG_START( speglsht, speglsht_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",Z80, 8000000) /* 8 MHz ? */
MCFG_CPU_ADD("maincpu",ST0016_CPU, 8000000) /* 8 MHz ? */
MCFG_CPU_PROGRAM_MAP(st0016_mem)
MCFG_CPU_IO_MAP(st0016_io)
@ -407,12 +402,6 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state )
MCFG_VIDEO_START_OVERRIDE(speglsht_state,speglsht)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ST0016_ADD("stsnd", 0)
MCFG_SOUND_CONFIG(st0016_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
ROM_START( speglsht )

View File

@ -35,9 +35,8 @@ This is not a bug (real machine behaves the same).
#include "emu.h"
#include "cpu/z80/z80.h"
#include "machine/st0016.h"
#include "cpu/mips/r3000.h"
#include "sound/st0016.h"
#include "includes/st0016.h"
#define DEBUG_CHAR
@ -370,7 +369,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, srmp5_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("stsnd", st0016_device, st0016_snd_r, st0016_snd_w)
//AM_RANGE(0xe900, 0xe9ff) // sound - internal
AM_RANGE(0xec00, 0xec1f) AM_READ(st0016_character_ram_r) AM_WRITE(st0016_character_ram_w)
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
@ -497,10 +496,6 @@ static INPUT_PORTS_START( srmp5 )
INPUT_PORTS_END
static const st0016_interface st0016_config =
{
&st0016_charram
};
static const gfx_layout tile_16x8x8_layout =
{
@ -534,7 +529,7 @@ GFXDECODE_END
static MACHINE_CONFIG_START( srmp5, srmp5_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",Z80,8000000)
MCFG_CPU_ADD("maincpu",ST0016_CPU,8000000)
MCFG_CPU_PROGRAM_MAP(st0016_mem)
MCFG_CPU_IO_MAP(st0016_io)
MCFG_CPU_VBLANK_INT_DRIVER("screen", srmp5_state, irq0_line_hold)
@ -559,12 +554,6 @@ static MACHINE_CONFIG_START( srmp5, srmp5_state )
#endif
MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ST0016_ADD("stsnd", 0)
MCFG_SOUND_CONFIG(st0016_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
ROM_START( srmp5 )

View File

@ -14,7 +14,7 @@ Dips verified for Neratte Chu (nratechu) from manual
#include "cpu/z80/z80.h"
#include "sound/st0016.h"
#include "includes/st0016.h"
#include "machine/st0016.h"
UINT32 st0016_rom_bank;
@ -32,7 +32,7 @@ static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, st0016_state )
AM_RANGE(0xd000, 0xdfff) AM_READ(st0016_sprite2_ram_r) AM_WRITE(st0016_sprite2_ram_w)
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xe87f) AM_RAM /* common ram */
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("stsnd", st0016_device, st0016_snd_r, st0016_snd_w) /* sound regs 8 x $20 bytes, see notes */
//AM_RANGE(0xe900, 0xe9ff) // sound - internal
AM_RANGE(0xea00, 0xebff) AM_READ(st0016_palette_ram_r) AM_WRITE(st0016_palette_ram_w)
AM_RANGE(0xec00, 0xec1f) AM_READ(st0016_character_ram_r) AM_WRITE(st0016_character_ram_w)
AM_RANGE(0xf000, 0xffff) AM_RAM /* work ram */
@ -395,10 +395,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(st0016_state::st0016_int)
m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
}
static const st0016_interface st0016_config =
{
&st0016_charram
};
/*************************************
@ -409,7 +406,7 @@ static const st0016_interface st0016_config =
static MACHINE_CONFIG_START( st0016, st0016_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",Z80,8000000) /* 8 MHz ? */
MCFG_CPU_ADD("maincpu",ST0016_CPU,8000000) /* 8 MHz ? */
MCFG_CPU_PROGRAM_MAP(st0016_mem)
MCFG_CPU_IO_MAP(st0016_io)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", st0016_state, st0016_int, "screen", 0, 1)
@ -428,12 +425,6 @@ static MACHINE_CONFIG_START( st0016, st0016_state )
MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ST0016_ADD("stsnd", 0)
MCFG_SOUND_CONFIG(st0016_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mayjinsn, st0016 )

66
src/mame/machine/st0016.c Normal file
View File

@ -0,0 +1,66 @@
/* ST0016 - CPU (z80) + Sound + Video */
#include "st0016.h"
const device_type ST0016_CPU = &device_creator<st0016_cpu_device>;
static ADDRESS_MAP_START(st0016_cpu_internal_map, AS_PROGRAM, 8, st0016_cpu_device)
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("stsnd", st0016_device, st0016_snd_r, st0016_snd_w) /* sound regs 8 x $20 bytes, see notes */
ADDRESS_MAP_END
static ADDRESS_MAP_START(st0016_cpu_internal_io_map, AS_IO, 8, st0016_cpu_device)
ADDRESS_MAP_END
st0016_cpu_device::st0016_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: z80_device(mconfig, ST0016_CPU, "ST0016", tag, owner, clock, "st0016_cpu", __FILE__),
m_io_space_config("io", ENDIANNESS_LITTLE, 8, 16, 0, ADDRESS_MAP_NAME(st0016_cpu_internal_io_map)),
m_space_config("regs", ENDIANNESS_LITTLE, 8, 16, 0, ADDRESS_MAP_NAME(st0016_cpu_internal_map))
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void st0016_cpu_device::device_start()
{
z80_device::device_start();
}
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void st0016_cpu_device::device_reset()
{
z80_device::device_reset();
}
static const st0016_interface st0016_config =
{
&st0016_charram
};
/* CPU interface */
static MACHINE_CONFIG_FRAGMENT( st0016_cpu )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ST0016_ADD("stsnd", 0)
MCFG_SOUND_CONFIG(st0016_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
machine_config_constructor st0016_cpu_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( st0016_cpu );
}

50
src/mame/machine/st0016.h Normal file
View File

@ -0,0 +1,50 @@
/* ST0016 - CPU (z80) + Sound + Video */
#pragma once
#ifndef __ST0016_CPU__
#define __ST0016_CPU__
#include "emu.h"
#include "cpu/z80/z80.h"
#include "sound/st0016.h"
extern UINT8 *st0016_charram;
class st0016_cpu_device : public z80_device
{
public:
st0016_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const;
virtual void device_start();
virtual void device_reset();
const address_space_config m_io_space_config;
const address_space_config m_space_config;
const address_space_config *memory_space_config(address_spacenum spacenum) const
{
switch (spacenum)
{
case AS_IO: return &m_io_space_config;
case AS_PROGRAM: return &m_space_config;
default: return z80_device::memory_space_config(spacenum);
}
}
private:
};
// device type definition
extern const device_type ST0016_CPU;
#endif /// __ST0016_CPU__

View File

@ -1791,7 +1791,7 @@ $(MAMEOBJ)/seta.a: \
$(DRIVERS)/srmp6.o \
$(DRIVERS)/ssv.o $(VIDEO)/ssv.o \
$(VIDEO)/st0020.o \
$(DRIVERS)/st0016.o $(VIDEO)/st0016.o \
$(MACHINE)/st0016.o $(DRIVERS)/st0016.o $(VIDEO)/st0016.o \
$(VIDEO)/seta001.o \
$(MAMEOBJ)/sigma.a: \