Create new devices buffered_spriteram<n>_device, which manage buffered

spriteram. Removed core support for legacy buffered spriteram, and
updated all drivers to use the new devices instead. [Aaron Giles]

Removed required/optional_shared_size helpers. Instead the existing
required/optional_shared_ptr helpers now have a bytes() method that
can be used to query the size of the shared region. [Aaron Giles]
This commit is contained in:
Aaron Giles 2012-03-08 07:39:27 +00:00
parent 8d0ec85106
commit 388d53737e
129 changed files with 944 additions and 1074 deletions

2
.gitattributes vendored
View File

@ -1319,6 +1319,8 @@ src/emu/video.c svneol=native#text/plain
src/emu/video.h svneol=native#text/plain
src/emu/video/315_5124.c svneol=native#text/plain
src/emu/video/315_5124.h svneol=native#text/plain
src/emu/video/bufsprite.c svneol=native#text/plain
src/emu/video/bufsprite.h svneol=native#text/plain
src/emu/video/cdp1861.c svneol=native#text/plain
src/emu/video/cdp1861.h svneol=native#text/plain
src/emu/video/cdp1862.c svneol=native#text/plain

View File

@ -871,21 +871,9 @@ device_t *device_t::auto_finder_base::find_device(device_t &base, const char *ta
// find_shared_ptr - find a shared pointer
//-------------------------------------------------
void *device_t::auto_finder_base::find_shared_ptr(device_t &base, const char *tag)
void *device_t::auto_finder_base::find_shared_ptr(device_t &base, const char *tag, size_t &bytes)
{
return memory_get_shared(base.machine(), tag);
}
//-------------------------------------------------
// find_shared_size - find a shared pointer size
//-------------------------------------------------
size_t device_t::auto_finder_base::find_shared_size(device_t &base, const char *tag)
{
size_t result = 0;
memory_get_shared(base.machine(), tag, result);
return result;
return memory_get_shared(base.machine(), tag, bytes);
}

View File

@ -301,8 +301,7 @@ protected:
// helpers
device_t *find_device(device_t &device, const char *tag);
void *find_shared_ptr(device_t &device, const char *tag);
size_t find_shared_size(device_t &device, const char *tag);
void *find_shared_ptr(device_t &device, const char *tag, size_t &bytes);
// internal state
auto_finder_base *m_next;
@ -335,6 +334,7 @@ protected:
throw emu_fatalerror("Unable to find required object '%s'", this->m_tag);
}
protected:
// internal state
_TargetType m_target;
};
@ -362,8 +362,13 @@ protected:
class optional_shared_ptr : public auto_finder_type<_PointerType *, false>
{
public:
optional_shared_ptr(device_t &base, const char *tag) : auto_finder_type<_PointerType *, false>(base, tag) { }
virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(this->find_shared_ptr(base, this->m_tag))); }
optional_shared_ptr(device_t &base, const char *tag) : auto_finder_type<_PointerType *, false>(base, tag), m_bytes(0) { }
virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(this->find_shared_ptr(base, this->m_tag, m_bytes))); }
UINT32 bytes() const { return m_bytes; }
private:
// internal state
size_t m_bytes;
};
// required shared pointer finder
@ -371,24 +376,13 @@ protected:
class required_shared_ptr : public auto_finder_type<_PointerType *, true>
{
public:
required_shared_ptr(device_t &base, const char *tag) : auto_finder_type<_PointerType *, true>(base, tag) { }
virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(this->find_shared_ptr(base, this->m_tag))); }
};
// optional shared pointer size finder
class optional_shared_size : public auto_finder_type<size_t, false>
{
public:
optional_shared_size(device_t &base, const char *tag) : auto_finder_type<size_t, false>(base, tag) { }
virtual void findit(device_t &base) { this->set_target(find_shared_size(base, this->m_tag)); }
};
// required shared pointer size finder
class required_shared_size : public auto_finder_type<size_t, true>
{
public:
required_shared_size(device_t &base, const char *tag) : auto_finder_type<size_t, true>(base, tag) { }
virtual void findit(device_t &base) { this->set_target(find_shared_size(base, this->m_tag)); }
required_shared_ptr(device_t &base, const char *tag) : auto_finder_type<_PointerType *, true>(base, tag), m_bytes(0) { }
virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(this->find_shared_ptr(base, this->m_tag, m_bytes))); }
UINT32 bytes() const { return m_bytes; }
private:
// internal state
size_t m_bytes;
};
// internal helpers

View File

@ -225,38 +225,6 @@ device_t *legacy_device_creator(const machine_config &mconfig, const char *tag,
#define MCFG_DEVICE_CONFIG_DATA32_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val) \
MCFG_DEVICE_CONFIG_DATA32_EXPLICIT(structsizeof(_memstruct, _member), offsetof(_struct, _field) + (_index) * structsizeof(_struct, _field[0]) + offsetof(_memstruct, _member), _val)
#define MCFG_NEW_DEVICE_CONFIG_DATA32(_struct, _field, _val) \
MCFG_DEVICE_CONFIG_DATA32_EXPLICIT(DEVCONFIG_SIZEOF(_struct, _field), DEVCONFIG_OFFSETOF(_struct, _field), _val)
#define MCFG_NEW_DEVICE_CONFIG_DATA32_ARRAY(_struct, _field, _index, _val) \
MCFG_DEVICE_CONFIG_DATA32_EXPLICIT(DEVCONFIG_SIZEOF(_struct, _field[0]), DEVCONFIG_OFFSETOF(_struct, _field) + (_index) * DEVCONFIG_SIZEOF(_struct, _field[0]), _val)
#define MCFG_NEW_DEVICE_CONFIG_DATA32_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val) \
MCFG_DEVICE_CONFIG_DATA32_EXPLICIT(DEVCONFIG_SIZEOF(_memstruct, _member), DEVCONFIG_OFFSETOF(_struct, _field) + (_index) * DEVCONFIG_SIZEOF(_struct, _field[0]) + DEVCONFIG_OFFSETOF(_memstruct, _member), _val)
// inline device configurations that require 32 bits of fixed-point storage in the token
#define MCFG_DEVICE_CONFIG_DATAFP32_EXPLICIT(_size, _offset, _val, _fixbits) \
legacy_device_base::static_set_inline_float(*device, _offset, _size, (float)(_val));
#define MCFG_DEVICE_CONFIG_DATAFP32(_struct, _field, _val, _fixbits) \
MCFG_DEVICE_CONFIG_DATAFP32_EXPLICIT(structsizeof(_struct, _field), offsetof(_struct, _field), _val, _fixbits)
#define MCFG_DEVICE_CONFIG_DATAFP32_ARRAY(_struct, _field, _index, _val, _fixbits) \
MCFG_DEVICE_CONFIG_DATAFP32_EXPLICIT(structsizeof(_struct, _field[0]), offsetof(_struct, _field) + (_index) * structsizeof(_struct, _field[0]), _val, _fixbits)
#define MCFG_DEVICE_CONFIG_DATAFP32_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val, _fixbits) \
MCFG_DEVICE_CONFIG_DATAFP32_EXPLICIT(structsizeof(_memstruct, _member), offsetof(_struct, _field) + (_index) * structsizeof(_struct, _field[0]) + offsetof(_memstruct, _member), _val, _fixbits)
#define MCFG_DEVICE_NEW_CONFIG_DATAFP32(_struct, _field, _val, _fixbits) \
MCFG_DEVICE_CONFIG_DATAFP32_EXPLICIT(DEVCONFIG_SIZEOF(_struct, _field), DEVCONFIG_OFFSETOF(_struct, _field), _val, _fixbits)
#define MCFG_DEVICE_NEW_CONFIG_DATAFP32_ARRAY(_struct, _field, _index, _val, _fixbits) \
MCFG_DEVICE_CONFIG_DATAFP32_EXPLICIT(DEVCONFIG_SIZEOF(_struct, _field[0]), DEVCONFIG_OFFSETOF(_struct, _field) + (_index) * DEVCONFIG_SIZEOF(_struct, _field[0]), _val, _fixbits)
#define MCFG_DEVICE_NEW_CONFIG_DATAFP32_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val, _fixbits) \
MCFG_DEVICE_CONFIG_DATAFP32_EXPLICIT(DEVCONFIG_SIZEOF(_memstruct, _member), DEVCONFIG_OFFSETOF(_struct, _field) + (_index) * DEVCONFIG_SIZEOF(_struct, _field[0]) + DEVCONFIG_OFFSETOF(_memstruct, _member), _val, _fixbits)
// inline device configurations that require 64 bits of storage in the token
#define MCFG_DEVICE_CONFIG_DATA64_EXPLICIT(_size, _offset, _val) \
@ -271,15 +239,6 @@ device_t *legacy_device_creator(const machine_config &mconfig, const char *tag,
#define MCFG_DEVICE_CONFIG_DATA64_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val) \
MCFG_DEVICE_CONFIG_DATA64_EXPLICIT(structsizeof(_memstruct, _member), offsetof(_struct, _field) + (_index) * structsizeof(_struct, _field[0]) + offsetof(_memstruct, _member), _val)
#define MCFG_DEVICE_NEW_CONFIG_DATA64(_struct, _field, _val) \
MCFG_DEVICE_CONFIG_DATA64_EXPLICIT(DEVCONFIG_SIZEOF(_struct, _field), DEVCONFIG_OFFSETOF(_struct, _field), _val)
#define MCFG_DEVICE_NEW_CONFIG_DATA64_ARRAY(_struct, _field, _index, _val) \
MCFG_DEVICE_CONFIG_DATA64_EXPLICIT(DEVCONFIG_SIZEOF(_struct, _field[0]), DEVCONFIG_OFFSETOF(_struct, _field) + (_index) * DEVCONFIG_SIZEOF(_struct, _field[0]), _val)
#define MCFG_DEVICE_NEW_CONFIG_DATA64_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val) \
MCFG_DEVICE_CONFIG_DATA64_EXPLICIT(DEVCONFIG_SIZEOF(_memstruct, _member), DEVCONFIG_OFFSETOF(_struct, _field) + (_index) * DEVCONFIG_SIZEOF(_struct, _field[0]) + DEVCONFIG_OFFSETOF(_memstruct, _member), _val)
// inline device configurations that require a pointer-sized amount of storage in the token
#ifdef PTR64
@ -287,17 +246,11 @@ device_t *legacy_device_creator(const machine_config &mconfig, const char *tag,
#define MCFG_DEVICE_CONFIG_DATAPTR(_struct, _field, _val) MCFG_DEVICE_CONFIG_DATA64(_struct, _field, _val)
#define MCFG_DEVICE_CONFIG_DATAPTR_ARRAY(_struct, _field, _index, _val) MCFG_DEVICE_CONFIG_DATA64_ARRAY(_struct, _field, _index, _val)
#define MCFG_DEVICE_CONFIG_DATAPTR_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val) MCFG_DEVICE_CONFIG_DATA64_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val)
#define MCFG_DEVICE_NEW_CONFIG_DATAPTR(_struct, _field, _val) MCFG_DEVICE_NEW_CONFIG_DATA64(_struct, _field, _val)
#define MCFG_DEVICE_NEW_CONFIG_DATAPTR_ARRAY(_struct, _field, _index, _val) MCFG_DEVICE_NEW_CONFIG_DATA64_ARRAY(_struct, _field, _index, _val)
#define MCFG_DEVICE_NEW_CONFIG_DATAPTR_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val) MCFG_DEVICE_NEW_CONFIG_DATA64_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val)
#else
#define MCFG_DEVICE_CONFIG_DATAPTR_EXPLICIT(_struct, _size, _offset) MCFG_DEVICE_CONFIG_DATA32_EXPLICIT(_struct, _size, _offset)
#define MCFG_DEVICE_CONFIG_DATAPTR(_struct, _field, _val) MCFG_DEVICE_CONFIG_DATA32(_struct, _field, _val)
#define MCFG_DEVICE_CONFIG_DATAPTR_ARRAY(_struct, _field, _index, _val) MCFG_DEVICE_CONFIG_DATA32_ARRAY(_struct, _field, _index, _val)
#define MCFG_DEVICE_CONFIG_DATAPTR_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val) MCFG_DEVICE_CONFIG_DATA32_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val)
#define MCFG_DEVICE_CONFIG_NEW_DATAPTR(_struct, _field, _val) MCFG_DEVICE_NEW_CONFIG_DATA32(_struct, _field, _val)
#define MCFG_DEVICE_CONFIG_NEW_DATAPTR_ARRAY(_struct, _field, _index, _val) MCFG_DEVICE_NEW_CONFIG_DATA32_ARRAY(_struct, _field, _index, _val)
#define MCFG_DEVICE_CONFIG_NEW_DATAPTR_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val) MCFG_DEVICE_NEW_CONFIG_DATA32_ARRAY_MEMBER(_struct, _field, _index, _memstruct, _member, _val)
#endif

View File

@ -267,6 +267,7 @@ EMUMACHINEOBJS = \
EMUVIDEOOBJS = \
$(EMUVIDEO)/315_5124.o \
$(EMUVIDEO)/bufsprite.o \
$(EMUVIDEO)/cdp1861.o \
$(EMUVIDEO)/cdp1862.o \
$(EMUVIDEO)/crt9007.o \

View File

@ -267,8 +267,6 @@ struct generic_pointers
UINT32 spriteram_size;
generic_ptr spriteram2; // secondary spriteram
UINT32 spriteram2_size;
generic_ptr buffered_spriteram; // buffered spriteram
generic_ptr buffered_spriteram2;// secondary buffered spriteram
generic_ptr paletteram; // palette RAM
generic_ptr paletteram2; // secondary palette RAM
};

View File

@ -72,9 +72,6 @@
// automatically extend the palette creating a brighter copy for highlights
#define VIDEO_HAS_HIGHLIGHTS 0x0020
// Mish 181099: See comments in video/generic.c for details
#define VIDEO_BUFFERS_SPRITERAM 0x0040
// force VIDEO_UPDATE to be called even for skipped frames
#define VIDEO_ALWAYS_UPDATE 0x0080

71
src/emu/video/bufsprite.c Normal file
View File

@ -0,0 +1,71 @@
/*********************************************************************
bufsprite.h
Buffered Sprite RAM device.
****************************************************************************
Copyright Aaron Giles
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name 'MAME' nor the names of its contributors may be
used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*********************************************************************/
#include "emu.h"
#include "bufsprite.h"
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
// device type definition
extern const device_type BUFFERED_SPRITERAM8 = &device_creator<buffered_spriteram8_device>;
extern const device_type BUFFERED_SPRITERAM16 = &device_creator<buffered_spriteram16_device>;
extern const device_type BUFFERED_SPRITERAM32 = &device_creator<buffered_spriteram32_device>;
extern const device_type BUFFERED_SPRITERAM64 = &device_creator<buffered_spriteram64_device>;
/* ----- sprite buffering ----- */
/* buffered sprite RAM write handlers */
WRITE8_HANDLER( buffer_spriteram_w ) { }
WRITE16_HANDLER( buffer_spriteram16_w ) { }
WRITE32_HANDLER( buffer_spriteram32_w ) { }
WRITE8_HANDLER( buffer_spriteram_2_w ) { }
WRITE16_HANDLER( buffer_spriteram16_2_w ) { }
WRITE32_HANDLER( buffer_spriteram32_2_w ) { }
/* perform the actual buffering */
void buffer_spriteram(running_machine &machine, UINT8 *ptr, int length) { }
void buffer_spriteram_2(running_machine &machine, UINT8 *ptr, int length) { }

177
src/emu/video/bufsprite.h Normal file
View File

@ -0,0 +1,177 @@
/*********************************************************************
bufsprite.h
Buffered Sprite RAM device.
****************************************************************************
Copyright Aaron Giles
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name 'MAME' nor the names of its contributors may be
used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*********************************************************************/
#pragma once
#ifndef __BUFSPRITE_H__
#define __BUFSPRITE_H__
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
// device type definition
extern const device_type BUFFERED_SPRITERAM8;
extern const device_type BUFFERED_SPRITERAM16;
extern const device_type BUFFERED_SPRITERAM32;
extern const device_type BUFFERED_SPRITERAM64;
//**************************************************************************
// DEVICE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_BUFFERED_SPRITERAM8_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, BUFFERED_SPRITERAM8, 0) \
#define MCFG_BUFFERED_SPRITERAM16_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, BUFFERED_SPRITERAM16, 0) \
#define MCFG_BUFFERED_SPRITERAM32_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, BUFFERED_SPRITERAM32, 0) \
#define MCFG_BUFFERED_SPRITERAM64_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, BUFFERED_SPRITERAM64, 0) \
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
// ======================> buffered_spriteram_device
// base class to manage buffered spriteram
template<typename _Type>
class buffered_spriteram_device : public device_t
{
public:
// construction
buffered_spriteram_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, type, "Buffered Sprite RAM", tag, owner, clock),
m_spriteram(*owner, tag) { }
// getters
_Type *live() const { return m_spriteram; }
_Type *buffer() { return m_buffered; }
UINT32 bytes() const { return m_spriteram.bytes(); }
// operations
_Type *copy(UINT32 srcoffset = 0, UINT32 srclength = 0x7fffffff)
{
assert(m_spriteram != NULL);
if (m_spriteram != NULL)
memcpy(m_buffered, m_spriteram + srcoffset, MIN(srclength, m_spriteram.bytes() / sizeof(_Type) - srcoffset) * sizeof(_Type));
return m_buffered;
}
// read/write handlers
void write(address_space &space, offs_t offset, _Type data, _Type mem_mask = ~_Type(0)) { copy(); }
// VBLANK handlers
void vblank_copy_rising(screen_device &screen, bool state) { if (state) copy(); }
void vblank_copy_falling(screen_device &screen, bool state) { if (!state) copy(); }
protected:
// first-time setup
virtual void device_start()
{
printf("tag=%s spriteram=%p size=%d\n", tag(), (void *)m_spriteram, UINT32(m_spriteram.bytes()));
if (m_spriteram != NULL)
{
m_buffered.resize(m_spriteram.bytes() / sizeof(_Type));
save_item(NAME(m_buffered));
}
}
private:
// internal state
required_shared_ptr<_Type> m_spriteram;
dynamic_array<_Type> m_buffered;
};
// ======================> buffered_spriteram8_device
class buffered_spriteram8_device : public buffered_spriteram_device<UINT8>
{
public:
// construction
buffered_spriteram8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM8, tag, owner, clock) { }
};
// ======================> buffered_spriteram16_device
class buffered_spriteram16_device : public buffered_spriteram_device<UINT16>
{
public:
// construction
buffered_spriteram16_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM16, tag, owner, clock) { }
};
// ======================> buffered_spriteram32_device
class buffered_spriteram32_device : public buffered_spriteram_device<UINT32>
{
public:
// construction
buffered_spriteram32_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM32, tag, owner, clock) { }
};
// ======================> buffered_spriteram64_device
class buffered_spriteram64_device : public buffered_spriteram_device<UINT64>
{
public:
// construction
buffered_spriteram64_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: buffered_spriteram_device(mconfig, BUFFERED_SPRITERAM64, tag, owner, clock) { }
};
#endif /* __BUFSPRITE_H__ */

View File

@ -235,135 +235,6 @@ void generic_video_init(running_machine &machine)
machine.save().save_item(NAME(state->flip_screen_x));
machine.save().save_item(NAME(state->flip_screen_y));
// create spriteram buffers if necessary
if (machine.config().m_video_attributes & VIDEO_BUFFERS_SPRITERAM)
{
assert_always(machine.generic.spriteram_size != 0, "Video buffers spriteram but spriteram size is 0");
// allocate memory for the back buffer
machine.generic.buffered_spriteram.u8 = auto_alloc_array(machine, UINT8, machine.generic.spriteram_size);
// register for saving it
state_save_register_global_pointer(machine, machine.generic.buffered_spriteram.u8, machine.generic.spriteram_size);
// do the same for the second back buffer, if present
if (machine.generic.spriteram2_size)
{
// allocate memory
machine.generic.buffered_spriteram2.u8 = auto_alloc_array(machine, UINT8, machine.generic.spriteram2_size);
// register for saving it
state_save_register_global_pointer(machine, machine.generic.buffered_spriteram2.u8, machine.generic.spriteram2_size);
}
}
}
/***************************************************************************
GENERIC SPRITE BUFFERING
***************************************************************************/
/* Mish: 171099
'Buffered spriteram' is where the graphics hardware draws the sprites
from private ram that the main CPU cannot access. The main CPU typically
prepares sprites for the next frame in it's own sprite ram as the graphics
hardware renders sprites for the current frame from private ram. Main CPU
sprite ram is usually copied across to private ram by setting some flag
in the VBL interrupt routine.
The reason for this is to avoid sprite flicker or lag - if a game
is unable to prepare sprite ram within a frame (for example, lots of sprites
on screen) then it doesn't trigger the buffering hardware - instead the
graphics hardware will use the sprites from the last frame. An example is
Dark Seal - the buffer flag is only written to if the CPU is idle at the time
of the VBL interrupt. If the buffering is not emulated the sprites flicker
at busy scenes.
Some games seem to use buffering because of hardware constraints -
Capcom games (Cps1, Last Duel, etc) render spriteram _1 frame ahead_ and
buffer this spriteram at the end of a frame, so the _next_ frame must be drawn
from the buffer. Presumably the graphics hardware and the main cpu cannot
share the same spriteram for whatever reason.
Sprite buffering & Mame:
To use sprite buffering in a driver use VIDEO_BUFFERS_SPRITERAM in the
machine driver. This will automatically create an area for buffered spriteram
equal to the size of normal spriteram.
Spriteram size _must_ be declared in the memory map:
AM_RANGE(0x120000, 0x1207ff) AM_RAMBANK("sprites") AM_BASE_SIZE_GENERIC(spriteram)
Then the video driver must draw the sprites from the buffered_spriteram
pointer. The function buffer_spriteram_w() is used to simulate hardware
which buffers the spriteram from a memory location write. The function
buffer_spriteram(UINT8 *ptr, int length) can be used where
more control is needed over what is buffered.
For examples see darkseal.c, contra.c, lastduel.c, bionicc.c etc.
*/
/*-------------------------------------------------
buffer_spriteram_w - triggered writes to
buffer spriteram
-------------------------------------------------*/
WRITE8_HANDLER( buffer_spriteram_w )
{
memcpy(space->machine().generic.buffered_spriteram.u8, space->machine().generic.spriteram.u8, space->machine().generic.spriteram_size);
}
WRITE16_HANDLER( buffer_spriteram16_w )
{
memcpy(space->machine().generic.buffered_spriteram.u16, space->machine().generic.spriteram.u16, space->machine().generic.spriteram_size);
}
WRITE32_HANDLER( buffer_spriteram32_w )
{
memcpy(space->machine().generic.buffered_spriteram.u32, space->machine().generic.spriteram.u32, space->machine().generic.spriteram_size);
}
/*-------------------------------------------------
buffer_spriteram_2_w - triggered writes to
buffer spriteram_2
-------------------------------------------------*/
WRITE8_HANDLER( buffer_spriteram_2_w )
{
memcpy(space->machine().generic.buffered_spriteram2.u8, space->machine().generic.spriteram2.u8, space->machine().generic.spriteram2_size);
}
WRITE16_HANDLER( buffer_spriteram16_2_w )
{
memcpy(space->machine().generic.buffered_spriteram2.u16, space->machine().generic.spriteram2.u16, space->machine().generic.spriteram2_size);
}
WRITE32_HANDLER( buffer_spriteram32_2_w )
{
memcpy(space->machine().generic.buffered_spriteram2.u32, space->machine().generic.spriteram2.u32, space->machine().generic.spriteram2_size);
}
/*-------------------------------------------------
buffer_spriteram - for manually buffering
spriteram
-------------------------------------------------*/
void buffer_spriteram(running_machine &machine, UINT8 *ptr, int length)
{
memcpy(machine.generic.buffered_spriteram.u8, ptr, length);
}
void buffer_spriteram_2(running_machine &machine, UINT8 *ptr, int length)
{
memcpy(machine.generic.buffered_spriteram2.u8, ptr, length);
}

View File

@ -42,22 +42,6 @@ void generic_video_init(running_machine &machine);
/* ----- sprite buffering ----- */
/* buffered sprite RAM write handlers */
WRITE8_HANDLER( buffer_spriteram_w );
WRITE16_HANDLER( buffer_spriteram16_w );
WRITE32_HANDLER( buffer_spriteram32_w );
WRITE8_HANDLER( buffer_spriteram_2_w );
WRITE16_HANDLER( buffer_spriteram16_2_w );
WRITE32_HANDLER( buffer_spriteram32_2_w );
/* perform the actual buffering */
void buffer_spriteram(running_machine &machine, UINT8 *ptr, int length);
void buffer_spriteram_2(running_machine &machine, UINT8 *ptr, int length);
/* ----- global attributes ----- */
/* set global attributes */

View File

@ -68,13 +68,11 @@ static WRITE8_HANDLER( actfancr_buffer_spriteram_w)
{
actfancr_state *state = space->machine().driver_data<actfancr_state>();
UINT8* buffered_spriteram = space->machine().generic.buffered_spriteram.u8;
// make a buffered copy
memcpy(buffered_spriteram, space->machine().generic.spriteram.u8, 0x800);
UINT8 *src = reinterpret_cast<UINT8 *>(memory_get_shared(space->machine(), "spriteram"));
// copy to a 16-bit region for our sprite draw code too
for (int i=0;i<0x800/2;i++)
{
state->m_spriteram16[i] = buffered_spriteram[i*2] | (buffered_spriteram[(i*2)+1] <<8);
state->m_spriteram16[i] = src[i*2] | (src[(i*2)+1] <<8);
}
}
@ -86,7 +84,7 @@ static ADDRESS_MAP_START( actfan_map, AS_PROGRAM, 8 )
AM_RANGE(0x070000, 0x070007) AM_DEVWRITE("tilegen2", deco_bac06_pf_control0_8bit_w)
AM_RANGE(0x070010, 0x07001f) AM_DEVWRITE("tilegen2", deco_bac06_pf_control1_8bit_swap_w)
AM_RANGE(0x072000, 0x0727ff) AM_DEVREADWRITE("tilegen2", deco_bac06_pf_data_8bit_swap_r, deco_bac06_pf_data_8bit_swap_w)
AM_RANGE(0x100000, 0x1007ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x100000, 0x1007ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x110000, 0x110001) AM_WRITE(actfancr_buffer_spriteram_w)
AM_RANGE(0x120000, 0x1205ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x130000, 0x130000) AM_READ_PORT("P1")
@ -110,7 +108,7 @@ static ADDRESS_MAP_START( triothep_map, AS_PROGRAM, 8 )
AM_RANGE(0x066400, 0x0667ff) AM_DEVREADWRITE("tilegen1", deco_bac06_pf_rowscroll_8bit_swap_r, deco_bac06_pf_rowscroll_8bit_swap_w)
AM_RANGE(0x100000, 0x100001) AM_WRITE(actfancr_sound_w)
AM_RANGE(0x110000, 0x110001) AM_WRITE(actfancr_buffer_spriteram_w)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x130000, 0x1305ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140000, 0x140001) AM_READNOP /* Value doesn't matter */
AM_RANGE(0x1f0000, 0x1f3fff) AM_RAM AM_BASE_MEMBER(actfancr_state, m_main_ram) /* Main ram */
@ -342,8 +340,6 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state )
MCFG_MACHINE_RESET(actfancr)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
@ -395,8 +391,6 @@ static MACHINE_CONFIG_START( triothep, actfancr_state )
MCFG_MACHINE_RESET(triothep)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))

View File

@ -393,7 +393,7 @@ static WRITE16_HANDLER( irq_lv2_ack_w )
static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x0603ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x060000, 0x0603ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x060400, 0x063fff) AM_RAM
AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff)
@ -414,7 +414,7 @@ static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kozure_map, AS_PROGRAM, 16 )
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
// AM_RANGE(0x07c000, 0x07c001) AM_WRITE(kozure_io_w)
// AM_RANGE(0x0c0000, 0x0c0001) AM_WRITENOP /* watchdog? */
@ -424,7 +424,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cclimbr2_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff)
@ -446,7 +446,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( legion_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff)
@ -480,7 +480,7 @@ static WRITE8_HANDLER( legiono_fg_scroll_w )
static ADDRESS_MAP_START( legiono_map, AS_PROGRAM, 16 )
AM_RANGE(0x040000, 0x04003f) AM_WRITE8(legiono_fg_scroll_w,0x00ff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff)
@ -502,7 +502,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( armedf_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x065fff) AM_RAM
AM_RANGE(0x066000, 0x066fff) AM_RAM_WRITE(armedf_bg_videoram_w) AM_BASE_MEMBER(armedf_state, m_bg_videoram)
AM_RANGE(0x067000, 0x067fff) AM_RAM_WRITE(armedf_fg_videoram_w) AM_BASE_MEMBER(armedf_state, m_fg_videoram)
@ -679,7 +679,7 @@ static READ16_HANDLER(sharedram_r)
static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0805ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x080000, 0x0805ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x080600, 0x083fff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_MEMBER(bigfghtr_state, m_sharedram)
AM_RANGE(0x084000, 0x085fff) AM_RAM //work ram
AM_RANGE(0x086000, 0x086fff) AM_RAM_WRITE(armedf_bg_videoram_w) AM_BASE_MEMBER(armedf_state, m_bg_videoram)
@ -1204,8 +1204,6 @@ static MACHINE_CONFIG_START( terraf, armedf_state )
MCFG_MACHINE_RESET(armedf)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -1214,12 +1212,14 @@ static MACHINE_CONFIG_START( terraf, armedf_state )
MCFG_VIDEO_START(terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1253,8 +1253,6 @@ static MACHINE_CONFIG_START( terrafb, armedf_state )
MCFG_MACHINE_RESET(armedf)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -1263,10 +1261,12 @@ static MACHINE_CONFIG_START( terrafb, armedf_state )
MCFG_VIDEO_START(terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1297,8 +1297,6 @@ static MACHINE_CONFIG_START( kozure, armedf_state )
MCFG_MACHINE_RESET(armedf)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -1307,11 +1305,13 @@ static MACHINE_CONFIG_START( kozure, armedf_state )
MCFG_VIDEO_START(terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1341,8 +1341,6 @@ static MACHINE_CONFIG_START( armedf, armedf_state )
MCFG_MACHINE_RESET(armedf)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -1351,11 +1349,13 @@ static MACHINE_CONFIG_START( armedf, armedf_state )
MCFG_VIDEO_START(armedf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1385,8 +1385,6 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state )
MCFG_MACHINE_RESET(armedf)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -1395,11 +1393,13 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state )
MCFG_VIDEO_START(terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1429,8 +1429,6 @@ static MACHINE_CONFIG_START( legion, armedf_state )
MCFG_MACHINE_RESET(armedf)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -1439,11 +1437,13 @@ static MACHINE_CONFIG_START( legion, armedf_state )
MCFG_VIDEO_START(terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1473,8 +1473,6 @@ static MACHINE_CONFIG_START( legiono, armedf_state )
MCFG_MACHINE_RESET(armedf)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -1483,11 +1481,13 @@ static MACHINE_CONFIG_START( legiono, armedf_state )
MCFG_VIDEO_START(terraf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1532,8 +1532,6 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
MCFG_MACHINE_RESET(bigfghtr)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -1542,11 +1540,13 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
MCFG_VIDEO_START(armedf)
MCFG_SCREEN_UPDATE_STATIC(armedf)
MCFG_SCREEN_VBLANK_STATIC(armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View File

@ -331,9 +331,9 @@ static ADDRESS_MAP_START( bbusters_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_BASE_MEMBER(bbusters_state, m_ram)
AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(bbusters_video_w) AM_BASE_MEMBER(bbusters_state, m_videoram)
AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0a1000, 0x0a7fff) AM_RAM /* service mode */
AM_RANGE(0x0a8000, 0x0a8fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0x0a8000, 0x0a8fff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x0a9000, 0x0affff) AM_RAM /* service mode */
AM_RANGE(0x0b0000, 0x0b1fff) AM_RAM_WRITE(bbusters_pf1_w) AM_BASE_MEMBER(bbusters_state, m_pf1_data)
AM_RANGE(0x0b2000, 0x0b3fff) AM_RAM_WRITE(bbusters_pf2_w) AM_BASE_MEMBER(bbusters_state, m_pf2_data)
@ -361,7 +361,7 @@ static ADDRESS_MAP_START( mechatt_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x06ffff) AM_ROM
AM_RANGE(0x070000, 0x07ffff) AM_RAM AM_BASE_MEMBER(bbusters_state, m_ram)
AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(bbusters_video_w) AM_BASE_MEMBER(bbusters_state, m_videoram)
AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0a1000, 0x0a7fff) AM_WRITENOP
AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE(bbusters_pf1_w) AM_BASE_MEMBER(bbusters_state, m_pf1_data)
AM_RANGE(0x0b8000, 0x0b8003) AM_WRITEONLY AM_BASE_MEMBER(bbusters_state, m_pf1_scroll_data)
@ -666,24 +666,9 @@ static const ym2610_interface ym2610_config =
static SCREEN_VBLANK( bbuster )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram16_w(space,0,0,0xffff);
buffer_spriteram16_2_w(space,0,0,0xffff);
}
}
static SCREEN_VBLANK( mechatt )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram16_w(space,0,0,0xffff);
}
bbusters_state *state = screen.machine().driver_data<bbusters_state>();
state->m_spriteram->vblank_copy_rising(screen, vblank_on);
state->m_spriteram2->vblank_copy_rising(screen, vblank_on);
}
static MACHINE_CONFIG_START( bbusters, bbusters_state )
@ -700,8 +685,6 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state )
MCFG_NVRAM_ADD_0FILL("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
@ -713,6 +696,9 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state )
MCFG_PALETTE_LENGTH(2048)
MCFG_VIDEO_START(bbuster)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@ -737,20 +723,20 @@ static MACHINE_CONFIG_START( mechatt, bbusters_state )
MCFG_CPU_IO_MAP(sounda_portmap)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(mechatt)
MCFG_SCREEN_VBLANK_STATIC(mechatt)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(mechatt)
MCFG_PALETTE_LENGTH(1024)
MCFG_VIDEO_START(mechatt)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")

View File

@ -149,7 +149,7 @@ static TIMER_DEVICE_CALLBACK( bionicc_scanline )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xfe0000, 0xfe07ff) AM_RAM /* RAM? */
AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfe0d00, 0xfe3fff) AM_RAM /* RAM? */
AM_RANGE(0xfe4000, 0xfe4001) AM_WRITE(bionicc_gfxctrl_w) /* + coin counters */
AM_RANGE(0xfe4000, 0xfe4001) AM_READ_PORT("SYSTEM")
@ -375,20 +375,20 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state )
MCFG_MACHINE_RESET(bionicc)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(bionicc)
MCFG_SCREEN_VBLANK_STATIC(bionicc)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(bionicc)
MCFG_PALETTE_LENGTH(1024)
MCFG_VIDEO_START(bionicc)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SPEAKER_STANDARD_MONO("mono")

View File

@ -79,7 +79,7 @@ static ADDRESS_MAP_START( blktiger_map, AS_PROGRAM, 8 )
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xe000, 0xfdff) AM_RAM
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
static ADDRESS_MAP_START( blktiger_io_map, AS_IO, 8 )
@ -337,20 +337,20 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state )
MCFG_MACHINE_RESET(blktiger)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(blktiger)
MCFG_SCREEN_VBLANK_STATIC(blktiger)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(blktiger)
MCFG_PALETTE_LENGTH(1024)
MCFG_VIDEO_START(blktiger)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View File

@ -97,10 +97,10 @@ static ADDRESS_MAP_START( boogwing_map, AS_PROGRAM, 16 )
AM_RANGE(0x220000, 0x220001) AM_DEVWRITE("deco_common", decocomn_priority_w)
AM_RANGE(0x220002, 0x22000f) AM_NOP
AM_RANGE(0x240000, 0x240001) AM_WRITE(buffer_spriteram16_w)
AM_RANGE(0x242000, 0x2427ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x244000, 0x244001) AM_WRITE(buffer_spriteram16_2_w)
AM_RANGE(0x246000, 0x2467ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0x240000, 0x240001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write)
AM_RANGE(0x242000, 0x2427ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x244000, 0x244001) AM_DEVWRITE_MODERN("spriteram2", buffered_spriteram16_device, write)
AM_RANGE(0x246000, 0x2467ff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x24e6c0, 0x24e6c1) AM_READ_PORT("DSW")
AM_RANGE(0x24e138, 0x24e139) AM_READ_PORT("SYSTEM")
@ -350,8 +350,6 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state )
MCFG_CPU_PROGRAM_MAP(audio_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
@ -363,6 +361,9 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state )
MCFG_GFXDECODE(boogwing)
MCFG_VIDEO_START(boogwing)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
MCFG_DECOCOMN_ADD("deco_common", boogwing_decocomn_intf)

View File

@ -185,8 +185,8 @@ static ADDRESS_MAP_START( cninja_map, AS_PROGRAM, 16 )
AM_RANGE(0x190000, 0x190007) AM_READWRITE(cninja_irq_r, cninja_irq_w)
AM_RANGE(0x19c000, 0x19dfff) AM_RAM_DEVWRITE("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1a4000, 0x1a47ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
AM_RANGE(0x1b4000, 0x1b4001) AM_WRITE(buffer_spriteram16_w) /* DMA flag */
AM_RANGE(0x1a4000, 0x1a47ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x1b4000, 0x1b4001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) /* DMA flag */
AM_RANGE(0x1bc000, 0x1bc0ff) AM_WRITE(deco16_104_cninja_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */
AM_RANGE(0x1bc000, 0x1bcfff) AM_READ(deco16_104_cninja_prot_r) AM_BASE(&deco16_prot_ram) /* Protection device */
@ -196,7 +196,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cninjabl_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x138000, 0x1387ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* bootleg sprite-ram (sprites rewritten here in new format) */
AM_RANGE(0x138000, 0x1387ff) AM_RAM AM_SHARE("spriteram") /* bootleg sprite-ram (sprites rewritten here in new format) */
AM_RANGE(0x140000, 0x14000f) AM_WRITE(cninja_pf12_control_w)
AM_RANGE(0x144000, 0x144fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
@ -220,7 +220,7 @@ static ADDRESS_MAP_START( cninjabl_map, AS_PROGRAM, 16 )
AM_RANGE(0x190000, 0x190007) AM_READWRITE(cninja_irq_r, cninja_irq_w)
AM_RANGE(0x19c000, 0x19dfff) AM_RAM_DEVWRITE("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1b4000, 0x1b4001) AM_WRITE(buffer_spriteram16_w) /* DMA flag */
AM_RANGE(0x1b4000, 0x1b4001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) /* DMA flag */
ADDRESS_MAP_END
static ADDRESS_MAP_START( edrandy_map, AS_PROGRAM, 16 )
@ -245,8 +245,8 @@ static ADDRESS_MAP_START( edrandy_map, AS_PROGRAM, 16 )
AM_RANGE(0x199750, 0x199751) AM_WRITENOP /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
AM_RANGE(0x1a4000, 0x1a4007) AM_READWRITE(cninja_irq_r, cninja_irq_w)
AM_RANGE(0x1ac000, 0x1ac001) AM_WRITE(buffer_spriteram16_w) /* DMA flag */
AM_RANGE(0x1bc000, 0x1bc7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
AM_RANGE(0x1ac000, 0x1ac001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) /* DMA flag */
AM_RANGE(0x1bc000, 0x1bc7ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x1bc800, 0x1bcfff) AM_WRITENOP /* Another bug in game code? Sprite list can overrun. Doesn't seem to mirror */
ADDRESS_MAP_END
@ -266,11 +266,11 @@ static ADDRESS_MAP_START( robocop2_map, AS_PROGRAM, 16 )
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE_MEMBER(cninja_state, m_pf3_rowscroll)
AM_RANGE(0x15e000, 0x15e7ff) AM_RAM AM_BASE_MEMBER(cninja_state, m_pf4_rowscroll)
AM_RANGE(0x180000, 0x1807ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x180000, 0x1807ff) AM_RAM AM_SHARE("spriteram")
// AM_RANGE(0x18c000, 0x18c0ff) AM_WRITE(cninja_loopback_w) /* Protection writes */
AM_RANGE(0x18c000, 0x18c7ff) AM_READ(robocop2_prot_r) /* Protection device */
AM_RANGE(0x18c064, 0x18c065) AM_WRITE(cninja_sound_w)
AM_RANGE(0x198000, 0x198001) AM_WRITE(buffer_spriteram16_w) /* DMA flag */
AM_RANGE(0x198000, 0x198001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) /* DMA flag */
AM_RANGE(0x1a8000, 0x1a9fff) AM_RAM_DEVWRITE("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1b0000, 0x1b0007) AM_READWRITE(cninja_irq_r, cninja_irq_w)
AM_RANGE(0x1b8000, 0x1bbfff) AM_RAM AM_BASE_MEMBER(cninja_state, m_ram) /* Main ram */
@ -281,14 +281,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mutantf_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x160000, 0x161fff) AM_RAM_DEVWRITE("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x180000, 0x180001) AM_DEVWRITE("deco_common", decocomn_priority_w)
AM_RANGE(0x180002, 0x180003) AM_WRITENOP /* VBL irq ack */
AM_RANGE(0x1a0000, 0x1a07ff) AM_READWRITE(deco16_66_prot_r, deco16_66_prot_w) AM_BASE(&deco16_prot_ram) /* Protection device */
AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(buffer_spriteram16_w) AM_DEVREAD("deco_common", decocomn_71_r)
AM_RANGE(0x1e0000, 0x1e0001) AM_WRITE(buffer_spriteram16_2_w)
AM_RANGE(0x1c0000, 0x1c0001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) AM_DEVREAD("deco_common", decocomn_71_r)
AM_RANGE(0x1e0000, 0x1e0001) AM_DEVWRITE_MODERN("spriteram2", buffered_spriteram16_device, write)
AM_RANGE(0x300000, 0x30000f) AM_WRITE(cninja_pf12_control_w)
AM_RANGE(0x304000, 0x305fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
@ -924,8 +924,6 @@ static MACHINE_CONFIG_START( cninja, cninja_state )
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(32*8, 32*8)
@ -934,6 +932,8 @@ static MACHINE_CONFIG_START( cninja, cninja_state )
MCFG_GFXDECODE(cninja)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_DECOCOMN_ADD("deco_common", cninja_decocomn_intf)
@ -978,8 +978,6 @@ static MACHINE_CONFIG_START( stoneage, cninja_state )
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(32*8, 32*8)
@ -991,6 +989,8 @@ static MACHINE_CONFIG_START( stoneage, cninja_state )
MCFG_VIDEO_START(stoneage)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_DECOCOMN_ADD("deco_common", cninja_decocomn_intf)
MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
@ -1032,8 +1032,6 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state )
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(32*8, 32*8)
@ -1043,6 +1041,8 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state )
MCFG_GFXDECODE(cninjabl)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_DECOCOMN_ADD("deco_common", cninja_decocomn_intf)
MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
@ -1077,8 +1077,6 @@ static MACHINE_CONFIG_START( edrandy, cninja_state )
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(32*8, 32*8)
@ -1088,6 +1086,8 @@ static MACHINE_CONFIG_START( edrandy, cninja_state )
MCFG_GFXDECODE(cninja)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_DECOCOMN_ADD("deco_common", cninja_decocomn_intf)
MCFG_DECO16IC_ADD("tilegen1", edrandy_deco16ic_tilegen1_intf)
@ -1131,8 +1131,6 @@ static MACHINE_CONFIG_START( robocop2, cninja_state )
MCFG_TIMER_ADD("raster_timer", interrupt_gen)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(40*8, 32*8)
@ -1142,6 +1140,8 @@ static MACHINE_CONFIG_START( robocop2, cninja_state )
MCFG_GFXDECODE(robocop2)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_DECOCOMN_ADD("deco_common", cninja_decocomn_intf)
MCFG_DECO16IC_ADD("tilegen1", robocop2_deco16ic_tilegen1_intf)
@ -1186,8 +1186,6 @@ static MACHINE_CONFIG_START( mutantf, cninja_state )
MCFG_MACHINE_RESET(cninja)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(40*8, 32*8)
@ -1199,6 +1197,9 @@ static MACHINE_CONFIG_START( mutantf, cninja_state )
MCFG_GFXDECODE(mutantf)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
MCFG_DECOCOMN_ADD("deco_common", cninja_decocomn_intf)
MCFG_DECO16IC_ADD("tilegen1", mutantf_deco16ic_tilegen1_intf)

View File

@ -66,7 +66,7 @@ static ADDRESS_MAP_START( commando_map, AS_PROGRAM, 8 )
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(commando_videoram_w) AM_BASE_MEMBER(commando_state, m_videoram)
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(commando_colorram_w) AM_BASE_MEMBER(commando_state, m_colorram)
AM_RANGE(0xe000, 0xfdff) AM_RAM
AM_RANGE(0xfe00, 0xff7f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xfe00, 0xff7f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xff80, 0xffff) AM_RAM
ADDRESS_MAP_END
@ -259,21 +259,21 @@ static MACHINE_CONFIG_START( commando, commando_state )
MCFG_MACHINE_RESET(commando)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(commando)
MCFG_SCREEN_VBLANK_STATIC(commando)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(commando)
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
MCFG_VIDEO_START(commando)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View File

@ -127,7 +127,6 @@ Dip locations verified with Service Mode.
***************************************************************************/
#include "emu.h"
#include "cpu/z80/z80.h"
#include "cpu/m68000/m68000.h"
#include "sound/2610intf.h"
#include "video/konicdev.h"
@ -168,7 +167,7 @@ static WRITE16_HANDLER( sound_command_w )
{
state->m_pending_command = 1;
soundlatch_w(space, offset, data & 0xff);
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
}
@ -191,9 +190,9 @@ static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16 )
AM_RANGE(0x300000, 0x3fffff) AM_READ(extrarom1_r)
AM_RANGE(0x400000, 0x4fffff) AM_READ(extrarom2_r)
AM_RANGE(0x500000, 0x5fffff) AM_READ(extrarom2_r) /* mirror */
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0xd00000, 0xd01fff) AM_RAM_WRITE(crshrace_videoram1_w) AM_BASE_MEMBER(crshrace_state, m_videoram1)
AM_RANGE(0xe00000, 0xe01fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xe00000, 0xe01fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM
AM_RANGE(0xffc000, 0xffc001) AM_WRITE(crshrace_roz_bank_w)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(crshrace_videoram2_w) AM_BASE_MEMBER(crshrace_state, m_videoram2)
@ -428,7 +427,7 @@ GFXDECODE_END
static void irqhandler( device_t *device, int irq )
{
crshrace_state *state = device->machine().driver_data<crshrace_state>();
device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
}
static const ym2610_interface ym2610_config =
@ -448,9 +447,6 @@ static MACHINE_START( crshrace )
memory_configure_bank(machine, "bank1", 0, 4, machine.region("audiocpu")->base() + 0x10000, 0x8000);
state->m_audiocpu = machine.device("audiocpu");
state->m_k053936 = machine.device("k053936");
state->save_item(NAME(state->m_roz_bank));
state->save_item(NAME(state->m_gfxctrl));
state->save_item(NAME(state->m_flipscreen));
@ -482,8 +478,6 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state )
MCFG_MACHINE_RESET(crshrace)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
@ -493,6 +487,9 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state )
MCFG_GFXDECODE(crshrace)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
MCFG_K053936_ADD("k053936", crshrace_k053936_intf)

View File

@ -27,9 +27,10 @@
static WRITE16_HANDLER( darkseal_control_w )
{
darkseal_state *state = space->machine().driver_data<darkseal_state>();
switch (offset<<1) {
case 6: /* DMA flag */
buffer_spriteram16_w(space, 0, 0, 0xffff);
state->m_spriteram->copy();
return;
case 8: /* Sound CPU write */
soundlatch_w(space, 0, data & 0xff);
@ -62,7 +63,7 @@ static READ16_HANDLER( darkseal_control_r )
static ADDRESS_MAP_START( darkseal_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_MEMBER(darkseal_state, m_ram)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(darkseal_palette_24bit_rg_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x141000, 0x141fff) AM_RAM_WRITE(darkseal_palette_24bit_b_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x180000, 0x18000f) AM_READWRITE(darkseal_control_r, darkseal_control_w)
@ -269,8 +270,6 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
@ -280,6 +279,8 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state )
MCFG_GFXDECODE(darkseal)
MCFG_PALETTE_LENGTH(2048)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_DECO16IC_ADD("tilegen1", darkseal_deco16ic_tilegen1_intf)

View File

@ -219,7 +219,7 @@ static ADDRESS_MAP_START( dassault_map, AS_PROGRAM, 16 )
AM_RANGE(0x1c0000, 0x1c000f) AM_READ(dassault_control_r)
AM_RANGE(0x1c000a, 0x1c000b) AM_DEVWRITE("deco_common", decocomn_priority_w)
AM_RANGE(0x1c000c, 0x1c000d) AM_WRITE(buffer_spriteram16_2_w)
AM_RANGE(0x1c000c, 0x1c000d) AM_DEVWRITE_MODERN("spriteram2", buffered_spriteram16_device, write)
AM_RANGE(0x1c000e, 0x1c000f) AM_WRITE(dassault_control_w)
AM_RANGE(0x200000, 0x201fff) AM_DEVREADWRITE("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
@ -233,7 +233,7 @@ static ADDRESS_MAP_START( dassault_map, AS_PROGRAM, 16 )
AM_RANGE(0x260000, 0x26000f) AM_DEVWRITE("tilegen2", deco16ic_pf_control_w)
AM_RANGE(0x3f8000, 0x3fbfff) AM_RAM AM_BASE_MEMBER(dassault_state, m_ram) /* Main ram */
AM_RANGE(0x3fc000, 0x3fcfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2) /* Spriteram (2nd) */
AM_RANGE(0x3fc000, 0x3fcfff) AM_RAM AM_SHARE("spriteram2") /* Spriteram (2nd) */
AM_RANGE(0x3feffc, 0x3fefff) AM_READWRITE(dassault_irq_r, dassault_irq_w)
AM_RANGE(0x3fe000, 0x3fefff) AM_READWRITE(shared_ram_r, shared_ram_w) AM_BASE_MEMBER(dassault_state, m_shared_ram) /* Shared ram */
ADDRESS_MAP_END
@ -241,12 +241,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dassault_sub_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITE(buffer_spriteram16_w)
AM_RANGE(0x100000, 0x100001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write)
AM_RANGE(0x100002, 0x100007) AM_WRITENOP /* ? */
AM_RANGE(0x100004, 0x100005) AM_READ(dassault_sub_control_r)
AM_RANGE(0x3f8000, 0x3fbfff) AM_RAM AM_BASE_MEMBER(dassault_state, m_ram2) /* Sub cpu ram */
AM_RANGE(0x3fc000, 0x3fcfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprite ram */
AM_RANGE(0x3fc000, 0x3fcfff) AM_RAM AM_SHARE("spriteram") /* Sprite ram */
AM_RANGE(0x3feffc, 0x3fefff) AM_READWRITE(dassault_irq_r, dassault_irq_w)
AM_RANGE(0x3fe000, 0x3fefff) AM_READWRITE(shared_ram_r, shared_ram_w)
ADDRESS_MAP_END
@ -582,8 +582,6 @@ static MACHINE_CONFIG_START( dassault, dassault_state )
MCFG_QUANTUM_PERFECT_CPU("maincpu") // I was seeing random lockups.. let's see if this helps
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
@ -595,6 +593,9 @@ static MACHINE_CONFIG_START( dassault, dassault_state )
MCFG_GFXDECODE(dassault)
MCFG_PALETTE_LENGTH(4096)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
MCFG_DECOCOMN_ADD("deco_common", dassault_decocomn_intf)

View File

@ -56,7 +56,7 @@ To do:
static WRITE8_HANDLER( dec8_mxc06_karn_buffer_spriteram_w)
{
dec8_state *state = space->machine().driver_data<dec8_state>();
UINT8* spriteram = space->machine().generic.spriteram.u8;
UINT8* spriteram = state->m_spriteram->live();
// copy to a 16-bit region for the sprite chip
for (int i=0;i<0x800/2;i++)
{
@ -498,8 +498,6 @@ static WRITE8_HANDLER( shackled_int_w )
/******************************************************************************/
static READ8_HANDLER( shackled_sprite_r ) { return space->machine().generic.spriteram.u8[offset]; }
static WRITE8_HANDLER( shackled_sprite_w ) { space->machine().generic.spriteram.u8[offset] = data; }
static WRITE8_HANDLER( flip_screen_w ) { flip_screen_set(space->machine(), data); }
/******************************************************************************/
@ -512,7 +510,7 @@ static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8 )
AM_RANGE(0x1000, 0x17ff) AM_DEVREADWRITE("tilegen2", deco_bac06_pf_data_8bit_r, deco_bac06_pf_data_8bit_w)
AM_RANGE(0x1800, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_BASE_SIZE_MEMBER(dec8_state, m_videoram, m_videoram_size)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x31ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_be_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x3200, 0x37ff) AM_WRITEONLY /* Unused */
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") /* Player 1 */
@ -538,7 +536,7 @@ static ADDRESS_MAP_START( meikyuh_map, AS_PROGRAM, 8 )
AM_RANGE(0x2000, 0x27ff) AM_DEVREADWRITE("tilegen1", deco_bac06_pf_data_8bit_r, deco_bac06_pf_data_8bit_w)
AM_RANGE(0x2800, 0x2bff) AM_RAM // colscroll? mirror?
AM_RANGE(0x2c00, 0x2fff) AM_DEVREADWRITE("tilegen1", deco_bac06_pf_rowscroll_8bit_r, deco_bac06_pf_rowscroll_8bit_w)
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") /* Player 1 */
AM_RANGE(0x3800, 0x3800) AM_WRITE(dec8_sound_w)
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") /* Player 2 */
@ -557,14 +555,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( srdarwin_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x0600, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(srdarwin_videoram_w) AM_BASE_MEMBER(dec8_state, m_videoram) AM_SIZE_GENERIC(spriteram)
AM_RANGE(0x0600, 0x07ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(srdarwin_videoram_w) AM_BASE_MEMBER(dec8_state, m_videoram)
AM_RANGE(0x1000, 0x13ff) AM_RAM
AM_RANGE(0x1400, 0x17ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_BASE_MEMBER(dec8_state, m_bg_data)
AM_RANGE(0x1800, 0x1801) AM_WRITE(srdarwin_i8751_w)
AM_RANGE(0x1802, 0x1802) AM_WRITE(i8751_reset_w) /* Maybe.. */
AM_RANGE(0x1803, 0x1803) AM_WRITENOP /* NMI ack */
AM_RANGE(0x1804, 0x1804) AM_WRITE(buffer_spriteram_w) /* DMA */
AM_RANGE(0x1804, 0x1804) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram8_device, write) /* DMA */
AM_RANGE(0x1805, 0x1806) AM_WRITE(srdarwin_control_w) /* Scroll & Bank */
AM_RANGE(0x2000, 0x2000) AM_READWRITE(i8751_h_r, dec8_sound_w) /* Sound */
AM_RANGE(0x2001, 0x2001) AM_READWRITE(i8751_l_r, flip_screen_w) /* Flipscreen */
@ -584,7 +582,7 @@ static ADDRESS_MAP_START( gondo_map, AS_PROGRAM, 8 )
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_BASE_MEMBER(dec8_state, m_bg_data)
AM_RANGE(0x2800, 0x2bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2c00, 0x2fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1") /* Dip 2 */
AM_RANGE(0x380a, 0x380b) AM_READ(gondo_player_1_r) /* Player 1 rotary */
@ -607,7 +605,7 @@ static ADDRESS_MAP_START( oscar_map, AS_PROGRAM, 8 )
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_BASE_SIZE_MEMBER(dec8_state, m_videoram, m_videoram_size)
AM_RANGE(0x2800, 0x2fff) AM_DEVREADWRITE("tilegen1", deco_bac06_pf_data_8bit_r, deco_bac06_pf_data_8bit_w)
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x3800, 0x3bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_be_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x3c00, 0x3c00) AM_READ_PORT("IN0")
AM_RANGE(0x3c01, 0x3c01) AM_READ_PORT("IN1")
@ -652,7 +650,7 @@ static ADDRESS_MAP_START( lastmisn_map, AS_PROGRAM, 8 )
AM_RANGE(0x180d, 0x180d) AM_WRITE(lastmisn_control_w) /* Bank switch + Scroll MSB */
AM_RANGE(0x180e, 0x180f) AM_WRITE(lastmisn_i8751_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_BASE_SIZE_MEMBER(dec8_state, m_videoram, m_videoram_size)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_BASE_MEMBER(dec8_state, m_bg_data)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
@ -673,7 +671,7 @@ static ADDRESS_MAP_START( lastmisn_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0x1807, 0x1807) AM_WRITE(flip_screen_w)
AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w)
AM_RANGE(0x2800, 0x2fff) AM_WRITE(shackled_sprite_w)
AM_RANGE(0x2800, 0x2fff) AM_WRITEONLY AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
@ -696,7 +694,7 @@ static ADDRESS_MAP_START( shackled_map, AS_PROGRAM, 8 )
AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
AM_RANGE(0x180d, 0x180d) AM_WRITE(shackled_control_w) /* Bank switch + Scroll MSB */
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w)
AM_RANGE(0x2800, 0x2fff) AM_READWRITE(shackled_sprite_r, shackled_sprite_w)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_BASE_MEMBER(dec8_state, m_bg_data)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
@ -722,7 +720,7 @@ static ADDRESS_MAP_START( shackled_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0x180d, 0x180d) AM_WRITE(shackled_control_w) /* Bank switch + Scroll MSB */
AM_RANGE(0x180e, 0x180f) AM_WRITE(shackled_i8751_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_BASE_SIZE_MEMBER(dec8_state, m_videoram, m_videoram_size)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
@ -746,7 +744,7 @@ static ADDRESS_MAP_START( csilver_map, AS_PROGRAM, 8 )
AM_RANGE(0x1c00, 0x1c00) AM_READ(i8751_h_r)
AM_RANGE(0x1e00, 0x1e00) AM_READ(i8751_l_r)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w)
AM_RANGE(0x2800, 0x2fff) AM_READWRITE(shackled_sprite_r, shackled_sprite_w)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_BASE_MEMBER(dec8_state, m_bg_data)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
@ -763,7 +761,7 @@ static ADDRESS_MAP_START( csilver_sub_map, AS_PROGRAM, 8 )
AM_RANGE(0x1805, 0x1805) AM_READ_PORT("DSW0") AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_BASE_SIZE_MEMBER(dec8_state, m_videoram, m_videoram_size)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
@ -775,7 +773,7 @@ static ADDRESS_MAP_START( garyoret_map, AS_PROGRAM, 8 )
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_BASE_MEMBER(dec8_state, m_bg_data)
AM_RANGE(0x2800, 0x2bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2c00, 0x2fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1") /* Dip 2 */
AM_RANGE(0x3808, 0x3808) AM_READNOP /* ? */
@ -2010,8 +2008,8 @@ static MACHINE_CONFIG_START( cobracom, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device, 2,2,0);
MCFG_DEVICE_ADD("tilegen2", DECO_BAC06, 0)
@ -2065,8 +2063,8 @@ static MACHINE_CONFIG_START( ghostb, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device, 2,2,0);
@ -2121,8 +2119,8 @@ static MACHINE_CONFIG_START( oscar, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
deco_bac06_device::set_gfx_region_wide(*device, 2,2,0);
@ -2171,8 +2169,8 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
@ -2217,8 +2215,8 @@ static MACHINE_CONFIG_START( gondo, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
@ -2267,8 +2265,8 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
@ -2316,8 +2314,8 @@ static MACHINE_CONFIG_START( shackled, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
@ -2366,8 +2364,8 @@ static MACHINE_CONFIG_START( csilver, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);
@ -2416,8 +2414,8 @@ static MACHINE_CONFIG_START( garyoret, dec8_state )
MCFG_MACHINE_RESET(dec8)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0)
deco_karnovsprites_device::set_gfx_region(*device, 1);

View File

@ -862,7 +862,7 @@ static ADDRESS_MAP_START( dragngun_map, AS_PROGRAM, 32 )
AM_RANGE(0x20c000, 0x20cfff) AM_RAM AM_BASE_MEMBER(dragngun_state, m_dragngun_sprite_layout_1_ram)
AM_RANGE(0x210000, 0x217fff) AM_RAM AM_BASE_MEMBER(dragngun_state, m_dragngun_sprite_lookup_0_ram)
AM_RANGE(0x218000, 0x21ffff) AM_RAM AM_BASE_MEMBER(dragngun_state, m_dragngun_sprite_lookup_1_ram)
AM_RANGE(0x220000, 0x221fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Main spriteram */
AM_RANGE(0x220000, 0x221fff) AM_RAM AM_SHARE("spriteram") /* Main spriteram */
AM_RANGE(0x228000, 0x2283ff) AM_RAM //0x10 byte increments only
@ -911,7 +911,7 @@ static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32 )
AM_RANGE(0x20c000, 0x20cfff) AM_RAM AM_BASE_MEMBER(dragngun_state, m_dragngun_sprite_layout_1_ram)
AM_RANGE(0x210000, 0x217fff) AM_RAM AM_BASE_MEMBER(dragngun_state, m_dragngun_sprite_lookup_0_ram)
AM_RANGE(0x218000, 0x21ffff) AM_RAM AM_BASE_MEMBER(dragngun_state, m_dragngun_sprite_lookup_1_ram)
AM_RANGE(0x220000, 0x221fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Main spriteram */
AM_RANGE(0x220000, 0x221fff) AM_RAM AM_SHARE("spriteram") /* Main spriteram */
AM_RANGE(0x228000, 0x2283ff) AM_RAM //0x10 byte increments only
AM_RANGE(0x230000, 0x230003) AM_WRITE(dragngun_spriteram_dma_w)
@ -1959,14 +1959,14 @@ static MACHINE_CONFIG_START( dragngun, dragngun_state )
MCFG_TIMER_ADD("int_timer", interrupt_gen)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(42*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(dragngun)
MCFG_SCREEN_VBLANK_STATIC(dragngun)
MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
MCFG_DECO16IC_ADD("tilegen1", dragngun_deco16ic_tilegen1_intf)
MCFG_DECO16IC_ADD("tilegen2", dragngun_deco16ic_tilegen2_intf)
@ -2032,14 +2032,14 @@ static MACHINE_CONFIG_START( lockload, dragngun_state )
MCFG_TIMER_ADD("int_timer", interrupt_gen)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(42*8, 32*8+22)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(dragngun)
MCFG_SCREEN_VBLANK_STATIC(dragngun)
MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
MCFG_DECO16IC_ADD("tilegen1", lockload_deco16ic_tilegen1_intf)
MCFG_DECO16IC_ADD("tilegen2", lockload_deco16ic_tilegen2_intf)

View File

@ -131,14 +131,14 @@ static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8 )
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_BASE_MEMBER(dooyong_state, m_txvideoram)
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_BASE_MEMBER(dooyong_state, m_txvideoram)
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSWA") AM_WRITE(lastday_bankswitch_w)
AM_RANGE(0xf001, 0xf001) AM_READ_PORT("DSWB")
@ -156,7 +156,7 @@ static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_BASE_MEMBER(dooyong_state, m_txvideoram)
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSWA")
AM_RANGE(0xf000, 0xf000) AM_WRITE(lastday_bankswitch_w)
@ -187,14 +187,14 @@ static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8 )
AM_RANGE(0xc048, 0xc04f) AM_WRITE(dooyong_fgscroll8_w)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_BASE_MEMBER(dooyong_state, m_txvideoram)
AM_RANGE(0xe000, 0xefff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("P1")
AM_RANGE(0xe000, 0xe000) AM_WRITE(lastday_bankswitch_w)
@ -232,7 +232,7 @@ static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16 )
ADDRESS_MAP_GLOBAL_MASK(0xfffff) /* super-x needs this and is similar */
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04cfff) AM_RAM
AM_RANGE(0x04d000, 0x04dfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x04d000, 0x04dfff) AM_RAM AM_SHARE("spriteram16")
AM_RANGE(0x04e000, 0x04ffff) AM_RAM
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("DSW")
AM_RANGE(0x0c0004, 0x0c0005) AM_READ_PORT("P1_P2")
@ -250,7 +250,7 @@ static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16 )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x0d0000, 0x0dcfff) AM_RAM
AM_RANGE(0x0dd000, 0x0ddfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x0dd000, 0x0ddfff) AM_RAM AM_SHARE("spriteram16")
AM_RANGE(0x0de000, 0x0dffff) AM_RAM
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("DSW")
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("P1_P2")
@ -268,7 +268,7 @@ static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16 )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04cfff) AM_RAM
AM_RANGE(0x04d000, 0x04dfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x04d000, 0x04dfff) AM_RAM AM_SHARE("spriteram16")
AM_RANGE(0x04e000, 0x04ffff) AM_RAM
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("DSW")
AM_RANGE(0x0c0004, 0x0c0005) AM_READ_PORT("P1_P2")
@ -876,7 +876,7 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -884,7 +884,7 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(lastday)
MCFG_SCREEN_VBLANK_STATIC(dooyong)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(lastday)
MCFG_PALETTE_LENGTH(1024)
@ -918,7 +918,7 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
MCFG_MACHINE_RESET(sound_ym2203)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -926,7 +926,7 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(gulfstrm)
MCFG_SCREEN_VBLANK_STATIC(dooyong)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(lastday)
MCFG_PALETTE_LENGTH(1024)
@ -951,7 +951,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
MCFG_MACHINE_RESET(sound_ym2203)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -959,7 +959,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(pollux)
MCFG_SCREEN_VBLANK_STATIC(dooyong)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(lastday)
MCFG_PALETTE_LENGTH(1024)
@ -983,7 +983,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
MCFG_MACHINE_START(lastday)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -991,7 +991,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(bluehawk)
MCFG_SCREEN_VBLANK_STATIC(dooyong)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(bluehawk)
MCFG_PALETTE_LENGTH(1024)
@ -1015,7 +1015,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
MCFG_MACHINE_START(lastday)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(flytiger)
MCFG_SCREEN_VBLANK_STATIC(dooyong)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(flytiger)
MCFG_PALETTE_LENGTH(1024)
@ -1053,7 +1053,6 @@ static MACHINE_CONFIG_START( primella, dooyong_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 )
MCFG_SCREEN_UPDATE_STATIC(primella)
MCFG_SCREEN_VBLANK_STATIC(dooyong)
MCFG_GFXDECODE(primella)
MCFG_PALETTE_LENGTH(1024)
@ -1087,7 +1086,7 @@ static MACHINE_CONFIG_START( rshark, dooyong_state )
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram16")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -1095,7 +1094,7 @@ static MACHINE_CONFIG_START( rshark, dooyong_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(rshark)
MCFG_SCREEN_VBLANK_STATIC(rshark)
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(rshark)
MCFG_PALETTE_LENGTH(2048)
@ -1117,7 +1116,7 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram16")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -1125,7 +1124,7 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(rshark)
MCFG_SCREEN_VBLANK_STATIC(rshark)
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(rshark)
MCFG_PALETTE_LENGTH(2048)
@ -1147,7 +1146,7 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state )
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram16")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -1155,7 +1154,7 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(popbingo)
MCFG_SCREEN_VBLANK_STATIC(rshark)
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(popbingo)
MCFG_PALETTE_LENGTH(2048)

View File

@ -74,7 +74,7 @@ Also, implemented conditional port for Coin Mode (SW1:1)
static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x08000, 0x080ff) AM_RAM AM_BASE_MEMBER(dynduke_state, m_scroll_ram)
AM_RANGE(0x0a000, 0x0afff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x0b000, 0x0b001) AM_READ_PORT("P1_P2")
@ -100,7 +100,7 @@ ADDRESS_MAP_END
/* Memory map used by DlbDyn - probably an addressing PAL is different */
static ADDRESS_MAP_START( masterj_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x08000, 0x087ff) AM_RAM_WRITE(dynduke_text_w) AM_BASE_MEMBER(dynduke_state, m_videoram)
AM_RANGE(0x09000, 0x0900d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0x0c000, 0x0c0ff) AM_RAM AM_BASE_MEMBER(dynduke_state, m_scroll_ram)
@ -287,7 +287,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state )
MCFG_MACHINE_RESET(seibu_sound)
// video hardware
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -295,7 +295,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(dynduke)
MCFG_SCREEN_VBLANK_STATIC(dynduke)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(dynduke)
MCFG_PALETTE_LENGTH(2048)

View File

@ -45,7 +45,7 @@ static ADDRESS_MAP_START( exedexes_map, AS_PROGRAM, 8 )
AM_RANGE(0xd804, 0xd805) AM_WRITEONLY AM_BASE_MEMBER(exedexes_state, m_bg_scroll)
AM_RANGE(0xd807, 0xd807) AM_WRITE(exedexes_gfxctrl_w) /* layer enables */
AM_RANGE(0xe000, 0xefff) AM_RAM /* Work RAM */
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprite RAM */
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
ADDRESS_MAP_END
@ -231,7 +231,7 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state )
MCFG_MACHINE_RESET(exedexes)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(exedexes)
MCFG_SCREEN_VBLANK_STATIC(exedexes)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(exedexes)
MCFG_PALETTE_LENGTH(64*4+64*4+16*16+16*16)

View File

@ -611,8 +611,6 @@ static MACHINE_CONFIG_START( fuuki32, fuuki32_state )
MCFG_MACHINE_RESET(fuuki32)
/* video hardware */
//MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM) // Buffered by 2 frames
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)

View File

@ -20,7 +20,6 @@
***************************************************************************/
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "machine/eeprom.h"
#include "sound/gaelco.h"
#include "rendlay.h"
@ -58,7 +57,7 @@ GFXDECODEINFO(0x0400000, 128)
static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_BASE_SIZE_GENERIC(spriteram) /* Video RAM */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_BASE_MEMBER(gaelco2_state, m_vregs) /* Video Registers */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") /* DSW #1 + Input 1P */
@ -161,7 +160,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco2_state )
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.1)
@ -169,7 +168,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco2_state )
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
MCFG_SCREEN_UPDATE_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(0x0080000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
@ -215,7 +214,7 @@ static READ16_HANDLER(p2_gun_y) {return (input_port_read(space->machine(), "LIGH
static ADDRESS_MAP_START( bang_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_BASE_SIZE_GENERIC(spriteram) /* Video RAM */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x218004, 0x218009) AM_READONLY /* Video Registers */
AM_RANGE(0x218004, 0x218007) AM_WRITEONLY AM_BASE_MEMBER(gaelco2_state, m_vregs) /* Video Registers */
@ -294,7 +293,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state )
MCFG_EEPROM_ADD("eeprom", gaelco2_eeprom_interface)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.1)
@ -302,7 +301,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state )
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
MCFG_SCREEN_UPDATE_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(0x0200000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
@ -433,7 +432,7 @@ ROM_END
static ADDRESS_MAP_START( alighunt_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_BASE_SIZE_GENERIC(spriteram) /* Video RAM */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_BASE_MEMBER(gaelco2_state, m_vregs) /* Video Registers */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") /* DSW #1 + Input 1P */
@ -535,7 +534,7 @@ static MACHINE_CONFIG_START( alighunt, gaelco2_state )
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.1)
@ -543,7 +542,7 @@ static MACHINE_CONFIG_START( alighunt, gaelco2_state )
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
MCFG_SCREEN_UPDATE_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(0x0400000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
@ -644,7 +643,7 @@ static READ16_HANDLER ( dallas_kludge_r )
static ADDRESS_MAP_START( touchgo_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_BASE_SIZE_GENERIC(spriteram) /* Video RAM */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_BASE_MEMBER(gaelco2_state, m_vregs) /* Video Registers */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") /* DSW #1 + Input 1P */
@ -777,7 +776,7 @@ static MACHINE_CONFIG_START( touchgo, gaelco2_state )
MCFG_CPU_VBLANK_INT("lscreen", irq6_line_hold)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_GFXDECODE(0x0400000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
@ -795,7 +794,7 @@ static MACHINE_CONFIG_START( touchgo, gaelco2_state )
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1)
MCFG_SCREEN_UPDATE_STATIC(gaelco2_right)
MCFG_SCREEN_VBLANK_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_VIDEO_START(gaelco2_dual)
@ -908,7 +907,7 @@ ROM_END
static ADDRESS_MAP_START( snowboar_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_BASE_SIZE_GENERIC(spriteram) /* Video RAM */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x212000, 0x213fff) AM_RAM /* Extra RAM */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_BASE_MEMBER(gaelco2_state, m_vregs) /* Video Registers */
@ -971,7 +970,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state )
MCFG_EEPROM_ADD("eeprom", gaelco2_eeprom_interface)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.1)
@ -979,7 +978,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state )
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1)
MCFG_SCREEN_UPDATE_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(0x0400000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
@ -1093,7 +1092,7 @@ ROM_END
static ADDRESS_MAP_START( wrally2_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_BASE_SIZE_GENERIC(spriteram) /* Video RAM */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x212000, 0x213fff) AM_RAM /* Extra RAM */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_BASE_MEMBER(gaelco2_state, m_vregs) /* Video Registers */
@ -1212,7 +1211,7 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state )
MCFG_EEPROM_ADD("eeprom", gaelco2_eeprom_interface)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_GFXDECODE(0x0200000)
MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */
MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
@ -1230,7 +1229,7 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state )
MCFG_SCREEN_SIZE(384, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1)
MCFG_SCREEN_UPDATE_STATIC(gaelco2_right)
MCFG_SCREEN_VBLANK_STATIC(gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_VIDEO_START(gaelco2_dual)

View File

@ -42,7 +42,7 @@ static WRITE8_HANDLER( gng_coin_counter_w )
static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1dff) AM_RAM
AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(gng_fgvideoram_w) AM_BASE_MEMBER(gng_state, m_fgvideoram)
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(gng_bgvideoram_w) AM_BASE_MEMBER(gng_state, m_bgvideoram)
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("SYSTEM")
@ -355,7 +355,7 @@ static MACHINE_CONFIG_START( gng, gng_state )
MCFG_MACHINE_RESET(gng)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.59) /* verified on pcb */
@ -363,7 +363,7 @@ static MACHINE_CONFIG_START( gng, gng_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(gng)
MCFG_SCREEN_VBLANK_STATIC(gng)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(gng)
MCFG_PALETTE_LENGTH(256)

View File

@ -55,9 +55,9 @@ static ADDRESS_MAP_START( hcastle_map, AS_PROGRAM, 8 )
AM_RANGE(0x0600, 0x06ff) AM_RAM AM_BASE_MEMBER(hcastle_state, m_paletteram)
AM_RANGE(0x0700, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE(hcastle_pf1_video_w) AM_BASE_MEMBER(hcastle_state, m_pf1_videoram)
AM_RANGE(0x3000, 0x3fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x3000, 0x3fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x4000, 0x4fff) AM_RAM_WRITE(hcastle_pf2_video_w) AM_BASE_MEMBER(hcastle_state, m_pf2_videoram)
AM_RANGE(0x5000, 0x5fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0x5000, 0x5fff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -220,7 +220,8 @@ static MACHINE_CONFIG_START( hcastle, hcastle_state )
MCFG_MACHINE_RESET(hcastle)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram2")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59)

View File

@ -367,7 +367,7 @@ static WRITE16_HANDLER( karnov_control_w )
break;
case 4: /* DM (DMA to buffer spriteram) */
buffer_spriteram16_w(space, 0, 0, 0xffff);
state->m_spriteram->copy();
break;
case 6: /* SECREQ (Interrupt & Data to i8751) */
@ -430,7 +430,7 @@ static READ16_HANDLER( karnov_control_r )
static ADDRESS_MAP_START( karnov_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x063fff) AM_RAM AM_BASE_MEMBER(karnov_state, m_ram)
AM_RANGE(0x080000, 0x080fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x080000, 0x080fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM_WRITE(karnov_videoram_w) AM_BASE_MEMBER(karnov_state, m_videoram)
AM_RANGE(0x0a0800, 0x0a0fff) AM_WRITE(karnov_videoram_w) /* Wndrplnt Mirror */
AM_RANGE(0x0a1000, 0x0a17ff) AM_WRITEONLY AM_BASE_MEMBER(karnov_state, m_pf_data)
@ -819,7 +819,7 @@ static MACHINE_CONFIG_START( karnov, karnov_state )
MCFG_MACHINE_RESET(karnov)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -863,7 +863,7 @@ static MACHINE_CONFIG_START( wndrplnt, karnov_state )
MCFG_MACHINE_RESET(karnov)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)

View File

@ -135,7 +135,7 @@ static WRITE16_HANDLER( lastduel_sound_w )
static ADDRESS_MAP_START( lastduel_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0xfc0000, 0xfc0003) AM_WRITENOP /* Written rarely */
AM_RANGE(0xfc0800, 0xfc0fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xfc0800, 0xfc0fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("P1_P2") AM_WRITE(lastduel_flip_w)
AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("SYSTEM") AM_WRITE(lastduel_sound_w)
AM_RANGE(0xfc4004, 0xfc4005) AM_READ_PORT("DSW1")
@ -150,7 +150,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( madgear_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xfc1800, 0xfc1fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xfc1800, 0xfc1fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("DSW1") AM_WRITE(lastduel_flip_w)
AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("DSW2") AM_WRITE(lastduel_sound_w)
AM_RANGE(0xfc4004, 0xfc4005) AM_READ_PORT("P1_P2")
@ -512,7 +512,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state )
MCFG_MACHINE_RESET(lastduel)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -520,7 +520,9 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(lastduel)
MCFG_SCREEN_VBLANK_STATIC(lastduel)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_GFXDECODE(lastduel)
MCFG_PALETTE_LENGTH(1024)
@ -554,7 +556,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state )
MCFG_MACHINE_RESET(lastduel)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -562,7 +564,9 @@ static MACHINE_CONFIG_START( madgear, lastduel_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(madgear)
MCFG_SCREEN_VBLANK_STATIC(lastduel)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_GFXDECODE(madgear)
MCFG_PALETTE_LENGTH(1024)

View File

@ -88,7 +88,7 @@ static ADDRESS_MAP_START( legionna_map, AS_PROGRAM, 16 )
AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_BASE_MEMBER(legionna_state, m_mid_data)
AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_BASE_MEMBER(legionna_state, m_textram)
AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* palette xRRRRxGGGGxBBBBx ? */
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x106000, 0x107fff) AM_RAM
AM_RANGE(0x108000, 0x11ffff) AM_RAM /* main ram */
ADDRESS_MAP_END
@ -102,7 +102,7 @@ static ADDRESS_MAP_START( heatbrl_map, AS_PROGRAM, 16 )
AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_BASE_MEMBER(legionna_state, m_fore_data)
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_BASE_MEMBER(legionna_state, m_mid_data)
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_BASE_MEMBER(legionna_state, m_textram)
AM_RANGE(0x103000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x103000, 0x103fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x108000, 0x11ffff) AM_RAM
ADDRESS_MAP_END
@ -117,7 +117,7 @@ static ADDRESS_MAP_START( godzilla_map, AS_PROGRAM, 16 )
AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_BASE_MEMBER(legionna_state, m_textram)
AM_RANGE(0x103800, 0x103fff) AM_RAM_WRITE(legionna_foreground_w) AM_BASE_MEMBER(legionna_state, m_fore_data)
AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x106000, 0x1067ff) AM_RAM
AM_RANGE(0x106800, 0x106fff) AM_RAM
AM_RANGE(0x107000, 0x107fff) AM_RAM /*Ani-DSP ram*/
@ -142,7 +142,7 @@ static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16 )
AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_BASE_MEMBER(legionna_state, m_mid_data)
AM_RANGE(0x102800, 0x103fff) AM_RAM_WRITE(legionna_text_w) AM_BASE_MEMBER(legionna_state, m_textram)
AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x106000, 0x107fff) AM_RAM
AM_RANGE(0x108000, 0x11dfff) AM_RAM
AM_RANGE(0x11e000, 0x11efff) AM_RAM
@ -161,7 +161,7 @@ static ADDRESS_MAP_START( grainbow_map, AS_PROGRAM, 16 )
AM_RANGE(0x104000, 0x104fff) AM_RAM//_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x105000, 0x105fff) AM_RAM
AM_RANGE(0x106000, 0x106fff) AM_RAM
AM_RANGE(0x107000, 0x107fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x107000, 0x107fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x108000, 0x11ffff) AM_RAM
ADDRESS_MAP_END
@ -176,7 +176,7 @@ static ADDRESS_MAP_START( cupsoc_mem, AS_PROGRAM, 16 )
AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x104000, 0x104fff) AM_RAM
AM_RANGE(0x105000, 0x106fff) AM_RAM
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x107800, 0x107fff) AM_RAM /*Ani Dsp(?) Ram*/
AM_RANGE(0x108000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x119fff) AM_RAM
@ -195,7 +195,7 @@ static ADDRESS_MAP_START( cupsocs_mem, AS_PROGRAM, 16 )
AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x104000, 0x104fff) AM_RAM
AM_RANGE(0x105000, 0x106fff) AM_RAM
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x107800, 0x107fff) AM_RAM /*Ani Dsp(?) Ram*/
AM_RANGE(0x108000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x119fff) AM_RAM
@ -214,7 +214,7 @@ static ADDRESS_MAP_START( cupsocbl_mem, AS_PROGRAM, 16 )
AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x104000, 0x104fff) AM_RAM
AM_RANGE(0x105000, 0x106fff) AM_RAM
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x107800, 0x107fff) AM_RAM /*Ani Dsp(?) Ram*/
AM_RANGE(0x108000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x119fff) AM_RAM
@ -1058,8 +1058,6 @@ static MACHINE_CONFIG_START( legionna, legionna_state )
MCFG_MACHINE_RESET(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@ -1090,8 +1088,6 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state )
MCFG_MACHINE_RESET(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@ -1121,8 +1117,6 @@ static MACHINE_CONFIG_START( godzilla, legionna_state )
MCFG_MACHINE_RESET(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(61)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@ -1152,8 +1146,6 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state )
MCFG_MACHINE_RESET(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_REFRESH_RATE(61)
@ -1183,8 +1175,6 @@ static MACHINE_CONFIG_START( grainbow, legionna_state )
MCFG_MACHINE_RESET(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@ -1215,8 +1205,6 @@ static MACHINE_CONFIG_START( cupsoc, legionna_state )
MCFG_MACHINE_RESET(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
@ -1255,8 +1243,6 @@ static MACHINE_CONFIG_START( cupsocbl, legionna_state )
//MCFG_MACHINE_INIT(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))

View File

@ -97,15 +97,15 @@ static WRITE8_HANDLER( lemmings_sound_ack_w )
static ADDRESS_MAP_START( lemmings_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(lemmings_palette_24bit_w) AM_BASE_MEMBER(lemmings_state, m_paletteram)
AM_RANGE(0x170000, 0x17000f) AM_RAM_WRITE(lemmings_control_w) AM_BASE_MEMBER(lemmings_state, m_control_data)
AM_RANGE(0x190000, 0x19000f) AM_READ(lemmings_trackball_r)
AM_RANGE(0x1a0000, 0x1a07ff) AM_READ(lemmings_prot_r)
AM_RANGE(0x1a0064, 0x1a0065) AM_WRITE(lemmings_sound_w)
AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(buffer_spriteram16_w) /* 1 written once a frame */
AM_RANGE(0x1e0000, 0x1e0001) AM_WRITE(buffer_spriteram16_2_w) /* 1 written once a frame */
AM_RANGE(0x1c0000, 0x1c0001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) /* 1 written once a frame */
AM_RANGE(0x1e0000, 0x1e0001) AM_DEVWRITE_MODERN("spriteram2", buffered_spriteram16_device, write) /* 1 written once a frame */
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(lemmings_vram_w) AM_BASE_MEMBER(lemmings_state, m_vram_data)
AM_RANGE(0x202000, 0x202fff) AM_RAM
AM_RANGE(0x300000, 0x37ffff) AM_RAM_WRITE(lemmings_pixel_0_w) AM_BASE_MEMBER(lemmings_state, m_pixel_0_data)
@ -276,7 +276,8 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state )
MCFG_MACHINE_START(lemmings)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)

View File

@ -291,7 +291,7 @@ static ADDRESS_MAP_START( avengers_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xddff) AM_RAM
AM_RANGE(0xde00, 0xdf7f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xde00, 0xdf7f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xdf80, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_BASE_MEMBER(lwings_state, m_fgvideoram)
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_BASE_MEMBER(lwings_state, m_bg1videoram)
@ -315,7 +315,7 @@ static ADDRESS_MAP_START( lwings_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xddff) AM_RAM
AM_RANGE(0xde00, 0xdfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_BASE_MEMBER(lwings_state, m_fgvideoram)
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_BASE_MEMBER(lwings_state, m_bg1videoram)
AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_split2_w) AM_BASE_GENERIC(paletteram2)
@ -336,7 +336,7 @@ static ADDRESS_MAP_START( trojan_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xddff) AM_RAM
AM_RANGE(0xde00, 0xdf7f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xde00, 0xdf7f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xdf80, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_BASE_MEMBER(lwings_state, m_fgvideoram)
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_BASE_MEMBER(lwings_state, m_bg1videoram)
@ -801,7 +801,7 @@ static MACHINE_CONFIG_START( lwings, lwings_state )
MCFG_MACHINE_RESET(lwings)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -809,7 +809,7 @@ static MACHINE_CONFIG_START( lwings, lwings_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(lwings)
MCFG_SCREEN_VBLANK_STATIC(lwings)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(lwings)
MCFG_PALETTE_LENGTH(1024)

View File

@ -338,7 +338,7 @@ static ADDRESS_MAP_START( lethalth_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x80000, 0x8ffff) AM_RAM_WRITE(m92_vram_w) AM_BASE_MEMBER(m92_state, m_vram_data)
AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */
AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w)
AM_RANGE(0xf9000, 0xf900f) AM_WRITE(m92_spritecontrol_w) AM_BASE_MEMBER(m92_state, m_spritecontrol)
AM_RANGE(0xf9800, 0xf9801) AM_WRITE(m92_videocontrol_w)
@ -351,7 +351,7 @@ static ADDRESS_MAP_START( m92_map, AS_PROGRAM, 16 )
AM_RANGE(0xc0000, 0xcffff) AM_ROM AM_REGION("maincpu", 0x00000) /* Mirror used by In The Hunt as protection */
AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m92_vram_w) AM_BASE_MEMBER(m92_state, m_vram_data)
AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */
AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf8000, 0xf87ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xf8800, 0xf8fff) AM_READWRITE(m92_paletteram_r, m92_paletteram_w)
AM_RANGE(0xf9000, 0xf900f) AM_WRITE(m92_spritecontrol_w) AM_BASE_MEMBER(m92_state, m_spritecontrol)
AM_RANGE(0xf9800, 0xf9801) AM_WRITE(m92_videocontrol_w)
@ -912,7 +912,7 @@ static MACHINE_CONFIG_START( m92, m92_state )
MCFG_TIMER_ADD_SCANLINE("scantimer", m92_scanline_interrupt, "screen", 0, 1)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -998,7 +998,7 @@ static MACHINE_CONFIG_START( ppan, m92_state )
MCFG_TIMER_ADD_SCANLINE("scantimer", m92_scanline_interrupt, "screen", 0, 1)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM) // not really...
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") // not really...
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)

View File

@ -38,6 +38,7 @@ MR_01-.3A [a0b758aa]
#include "includes/decoprot.h"
#include "video/deco16ic.h"
#include "sound/okim6295.h"
#include "video/bufsprite.h"
#include "video/decospr.h"
// mirage_state was also defined in mess/drivers/mirage.c
@ -49,14 +50,13 @@ public:
m_maincpu(*this, "maincpu"),
m_deco_tilegen1(*this, "tilegen1"),
m_oki_sfx(*this, "oki_sfx"),
m_oki_bgm(*this, "oki_bgm") { }
m_oki_bgm(*this, "oki_bgm"),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT16 * m_pf1_rowscroll;
UINT16 * m_pf2_rowscroll;
// UINT16 * m_spriteram;
// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
// size_t m_spriteram_size;
/* misc */
UINT8 m_mux_data;
@ -66,6 +66,7 @@ public:
required_device<deco16ic_device> m_deco_tilegen1;
required_device<okim6295_device> m_oki_sfx;
required_device<okim6295_device> m_oki_bgm;
required_device<buffered_spriteram16_device> m_spriteram;
};
static VIDEO_START( mirage )
@ -80,7 +81,7 @@ static SCREEN_UPDATE_RGB32( mirage )
flip_screen_set(screen.machine(), BIT(flip, 7));
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, screen.machine().generic.buffered_spriteram.u16, 0x400);
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
@ -94,16 +95,6 @@ static SCREEN_UPDATE_RGB32( mirage )
return 0;
}
static SCREEN_VBLANK( mirage )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram16_w(space,0,0,0xffff);
}
}
static WRITE16_HANDLER( mirage_mux_w )
{
@ -148,7 +139,7 @@ static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 16 )
/* linescroll */
AM_RANGE(0x110000, 0x110bff) AM_RAM AM_BASE_MEMBER(miragemi_state, m_pf1_rowscroll)
AM_RANGE(0x112000, 0x112bff) AM_RAM AM_BASE_MEMBER(miragemi_state, m_pf2_rowscroll)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x130000, 0x1307ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140000, 0x14000f) AM_DEVREADWRITE8_MODERN("oki_sfx", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x150000, 0x15000f) AM_DEVREADWRITE8_MODERN("oki_bgm", okim6295_device, read, write, 0x00ff)
@ -330,7 +321,7 @@ static MACHINE_CONFIG_START( mirage, miragemi_state )
MCFG_MACHINE_RESET(mirage)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
@ -338,7 +329,7 @@ static MACHINE_CONFIG_START( mirage, miragemi_state )
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_STATIC(mirage)
MCFG_SCREEN_VBLANK_STATIC(mirage)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_VIDEO_START(mirage)

View File

@ -516,7 +516,7 @@ static ADDRESS_MAP_START( ps3v1_map, AS_PROGRAM, 32 )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM // program ROM (1 meg)
AM_RANGE(0x02000000, 0x021fffff) AM_ROMBANK("bank1") // data ROM
// video chip
AM_RANGE(0x03000000, 0x03003fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // video banks0-7 (sprites and sprite list)
AM_RANGE(0x03000000, 0x03003fff) AM_RAM AM_SHARE("spriteram") // video banks0-7 (sprites and sprite list)
AM_RANGE(0x03004000, 0x0300ffff) AM_RAM AM_BASE_MEMBER(psikyosh_state, m_bgram) // video banks 7-0x1f (backgrounds and other effects)
AM_RANGE(0x03040000, 0x03044fff) AM_RAM_WRITE(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE_MEMBER(psikyosh_state, m_paletteram) // palette..
AM_RANGE(0x03050000, 0x030501ff) AM_RAM AM_BASE_MEMBER(psikyosh_state, m_zoomram) // sprite zoom lookup table
@ -544,7 +544,7 @@ static ADDRESS_MAP_START( ps5_map, AS_PROGRAM, 32 )
// sound chip
AM_RANGE(0x03100000, 0x03100007) AM_DEVREADWRITE8("ymf", ymf278b_r, ymf278b_w, 0xffffffff)
// video chip
AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // video banks0-7 (sprites and sprite list)
AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_SHARE("spriteram") // video banks0-7 (sprites and sprite list)
AM_RANGE(0x04004000, 0x0400ffff) AM_RAM AM_BASE_MEMBER(psikyosh_state, m_bgram) // video banks 7-0x1f (backgrounds and other effects)
AM_RANGE(0x04040000, 0x04044fff) AM_RAM_WRITE(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE_MEMBER(psikyosh_state, m_paletteram)
AM_RANGE(0x04050000, 0x040501ff) AM_RAM AM_BASE_MEMBER(psikyosh_state, m_zoomram) // sprite zoom lookup table
@ -819,7 +819,7 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state )
MCFG_EEPROM_DEFAULT_VALUE(0)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM ) /* If using alpha */
MCFG_BUFFERED_SPRITERAM32_ADD("spriteram") /* If using alpha */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -827,7 +827,7 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 28*8-1)
MCFG_SCREEN_UPDATE_STATIC(psikyosh)
MCFG_SCREEN_VBLANK_STATIC(psikyosh)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram32_device, vblank_copy_rising)
MCFG_GFXDECODE(psikyosh)
MCFG_PALETTE_LENGTH(0x5000/4)

View File

@ -48,7 +48,7 @@
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x0a000, 0x0afff) AM_RAM AM_SHARE("share1") AM_BASE_MEMBER(raiden_state, m_shared_ram)
AM_RANGE(0x0b000, 0x0b001) AM_READ_PORT("P1_P2")
AM_RANGE(0x0b002, 0x0b003) AM_READ_PORT("DSW")
@ -73,7 +73,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( alt_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x08000, 0x08fff) AM_RAM AM_SHARE("share1") AM_BASE_MEMBER(raiden_state, m_shared_ram)
AM_RANGE(0x0a000, 0x0a00d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
AM_RANGE(0x0c000, 0x0c7ff) AM_WRITE(raiden_text_w) AM_BASE_MEMBER(raiden_state, m_videoram)
@ -88,7 +88,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( raidenu_main_map, AS_PROGRAM, 16 )
AM_RANGE(0x00000, 0x06fff) AM_RAM
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x07000, 0x07fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x08000, 0x08035) AM_WRITEONLY AM_BASE_MEMBER(raiden_state, m_scroll_ram)
AM_RANGE(0x0a000, 0x0afff) AM_RAM AM_SHARE("share1") AM_BASE_MEMBER(raiden_state, m_shared_ram)
AM_RANGE(0x0b000, 0x0b001) AM_READ_PORT("P1_P2")
@ -242,16 +242,6 @@ static INTERRUPT_GEN( raiden_interrupt )
device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4); /* VBL */
}
static SCREEN_VBLANK( raiden )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram16_w(space,0,0,0xffff); /* Could be a memory location instead */
}
}
static MACHINE_CONFIG_START( raiden, raiden_state )
/* basic machine hardware */
@ -270,7 +260,7 @@ static MACHINE_CONFIG_START( raiden, raiden_state )
MCFG_MACHINE_RESET(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.60) /* verified on pcb */
@ -278,7 +268,7 @@ static MACHINE_CONFIG_START( raiden, raiden_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(raiden)
MCFG_SCREEN_VBLANK_STATIC(raiden)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(raiden)
MCFG_PALETTE_LENGTH(2048)

View File

@ -161,7 +161,7 @@ static ADDRESS_MAP_START( rohga_map, AS_PROGRAM, 16 )
AM_RANGE(0x3cc000, 0x3ccfff) AM_MIRROR(0x1000) AM_RAM AM_BASE_MEMBER(rohga_state, m_pf3_rowscroll)
AM_RANGE(0x3ce000, 0x3cefff) AM_MIRROR(0x1000) AM_RAM AM_BASE_MEMBER(rohga_state, m_pf4_rowscroll)
AM_RANGE(0x3d0000, 0x3d07ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x3d0000, 0x3d07ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3e0000, 0x3e1fff) AM_RAM_DEVWRITE("deco_common", decocomn_buffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x3f0000, 0x3f3fff) AM_RAM /* Main ram */
ADDRESS_MAP_END
@ -185,10 +185,10 @@ static ADDRESS_MAP_START( wizdfire_map, AS_PROGRAM, 16 )
AM_RANGE(0x320002, 0x320003) AM_WRITENOP /* ? */
AM_RANGE(0x320004, 0x320005) AM_WRITE(wizdfire_irq_ack_w) /* VBL IRQ ack */
AM_RANGE(0x340000, 0x3407ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x350000, 0x350001) AM_WRITE(buffer_spriteram16_w) /* Triggers DMA for spriteram */
AM_RANGE(0x360000, 0x3607ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0x370000, 0x370001) AM_WRITE(buffer_spriteram16_2_w) /* Triggers DMA for spriteram */
AM_RANGE(0x340000, 0x3407ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x350000, 0x350001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) /* Triggers DMA for spriteram */
AM_RANGE(0x360000, 0x3607ff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x370000, 0x370001) AM_DEVWRITE_MODERN("spriteram2", buffered_spriteram16_device, write) /* Triggers DMA for spriteram */
AM_RANGE(0x380000, 0x381fff) AM_RAM_DEVWRITE("deco_common", decocomn_buffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x390008, 0x390009) AM_DEVWRITE("deco_common", decocomn_palette_dma_w)
@ -217,10 +217,10 @@ static ADDRESS_MAP_START( nitrobal_map, AS_PROGRAM, 16 )
AM_RANGE(0x320002, 0x320003) AM_WRITENOP /* ? */
AM_RANGE(0x320004, 0x320005) AM_WRITE(wizdfire_irq_ack_w) /* VBL IRQ ack */
AM_RANGE(0x340000, 0x3407ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x350000, 0x350001) AM_WRITE(buffer_spriteram16_w) /* Triggers DMA for spriteram */
AM_RANGE(0x360000, 0x3607ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0x370000, 0x370001) AM_WRITE(buffer_spriteram16_2_w) /* Triggers DMA for spriteram */
AM_RANGE(0x340000, 0x3407ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x350000, 0x350001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write) /* Triggers DMA for spriteram */
AM_RANGE(0x360000, 0x3607ff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x370000, 0x370001) AM_DEVWRITE_MODERN("spriteram2", buffered_spriteram16_device, write) /* Triggers DMA for spriteram */
AM_RANGE(0x380000, 0x381fff) AM_RAM_DEVWRITE("deco_common", decocomn_buffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x390008, 0x390009) AM_DEVWRITE("deco_common", decocomn_palette_dma_w)
@ -254,7 +254,7 @@ static ADDRESS_MAP_START( schmeisr_map, AS_PROGRAM, 16 )
AM_RANGE(0x3cc000, 0x3ccfff) AM_MIRROR(0x1000) AM_RAM AM_BASE_MEMBER(rohga_state, m_pf3_rowscroll)
AM_RANGE(0x3ce000, 0x3cefff) AM_MIRROR(0x1000) AM_RAM AM_BASE_MEMBER(rohga_state, m_pf4_rowscroll)
AM_RANGE(0x3d0000, 0x3d07ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x3d0000, 0x3d07ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3e0000, 0x3e1fff) AM_MIRROR(0x2000) AM_RAM_DEVWRITE("deco_common", decocomn_buffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xff0000, 0xff7fff) AM_RAM /* Main ram */
ADDRESS_MAP_END
@ -809,7 +809,7 @@ static MACHINE_CONFIG_START( rohga, rohga_state )
MCFG_CPU_PROGRAM_MAP(rohga_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
@ -859,7 +859,8 @@ static MACHINE_CONFIG_START( wizdfire, rohga_state )
MCFG_CPU_PROGRAM_MAP(rohga_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM )
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
@ -912,7 +913,8 @@ static MACHINE_CONFIG_START( nitrobal, rohga_state )
MCFG_CPU_PROGRAM_MAP(rohga_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM )
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
@ -965,7 +967,7 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state )
MCFG_CPU_PROGRAM_MAP(rohga_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)

View File

@ -87,14 +87,14 @@ static ADDRESS_MAP_START( sidearms_map, AS_PROGRAM, 8 )
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(sidearms_videoram_w) AM_BASE_MEMBER(sidearms_state,m_videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(sidearms_colorram_w) AM_BASE_MEMBER(sidearms_state,m_colorram)
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
static ADDRESS_MAP_START( turtship_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xe400, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xe800, 0xe807) AM_READ(turtship_ports_r)
@ -160,7 +160,7 @@ static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8 )
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(sidearms_videoram_w) AM_BASE_MEMBER(sidearms_state,m_videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(sidearms_colorram_w) AM_BASE_MEMBER(sidearms_state,m_colorram)
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
static ADDRESS_MAP_START( whizz_sound_map, AS_PROGRAM, 8 )
@ -663,7 +663,7 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state )
MCFG_CPU_PROGRAM_MAP(sidearms_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -671,7 +671,7 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_STATIC(sidearms)
MCFG_SCREEN_VBLANK_STATIC(sidearms)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(sidearms)
MCFG_PALETTE_LENGTH(1024)
@ -707,14 +707,14 @@ static MACHINE_CONFIG_START( turtship, sidearms_state )
MCFG_CPU_PROGRAM_MAP(sidearms_sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_VBLANK_STATIC(sidearms)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_SCREEN_UPDATE_STATIC(sidearms)
MCFG_GFXDECODE(turtship)
@ -754,7 +754,7 @@ static MACHINE_CONFIG_START( whizz, sidearms_state )
MCFG_QUANTUM_TIME(attotime::from_hz(60000))
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -762,7 +762,7 @@ static MACHINE_CONFIG_START( whizz, sidearms_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_STATIC(sidearms)
MCFG_SCREEN_VBLANK_STATIC(sidearms)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(turtship)
MCFG_PALETTE_LENGTH(1024)

View File

@ -276,7 +276,7 @@ static ADDRESS_MAP_START( perfrman_map, AS_PROGRAM, 8 )
AM_RANGE(0x8810, 0x8fff) AM_RAMBANK("bank1") /* Shared RAM with sound CPU */
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(slapfight_videoram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_videoram)
AM_RANGE(0x9800, 0x9fff) AM_RAM_WRITE(slapfight_colorram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_colorram)
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
static ADDRESS_MAP_START( tigerh_map, AS_PROGRAM, 8 )
@ -286,7 +286,7 @@ static ADDRESS_MAP_START( tigerh_map, AS_PROGRAM, 8 )
AM_RANGE(0xc810, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_colorram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_lo)
AM_RANGE(0xe801, 0xe801) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_hi)
AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrolly)
@ -302,7 +302,7 @@ static ADDRESS_MAP_START( slapfght_map, AS_PROGRAM, 8 )
AM_RANGE(0xc810, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_colorram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_lo)
AM_RANGE(0xe801, 0xe801) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_hi)
AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrolly)
@ -319,7 +319,7 @@ static ADDRESS_MAP_START( slapfighb2_map, AS_PROGRAM, 8 )
AM_RANGE(0xc810, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_colorram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_hi)
AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrolly)
AM_RANGE(0xe803, 0xe803) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_lo)
@ -734,16 +734,6 @@ static const ay8910_interface ay8910_interface_2 =
DEVCB_NULL
};
static SCREEN_VBLANK( perfrman )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram_w(space, 0, 0);
}
}
static INTERRUPT_GEN( vblank_irq )
{
slapfght_state *state = device->machine().driver_data<slapfght_state>();
@ -770,7 +760,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state )
MCFG_MACHINE_RESET(slapfight)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -778,7 +768,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 34*8-1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_STATIC(perfrman)
MCFG_SCREEN_VBLANK_STATIC(perfrman)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(perfrman)
MCFG_PALETTE_LENGTH(256)
@ -816,7 +806,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state )
MCFG_MACHINE_RESET(slapfight)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -824,7 +814,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_STATIC(slapfight)
MCFG_SCREEN_VBLANK_STATIC(perfrman)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(slapfght)
MCFG_PALETTE_LENGTH(256)
@ -864,7 +854,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state )
MCFG_MACHINE_RESET(slapfight)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -872,7 +862,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_STATIC(slapfight)
MCFG_SCREEN_VBLANK_STATIC(perfrman)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(slapfght)
MCFG_PALETTE_LENGTH(256)
@ -913,7 +903,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state )
MCFG_MACHINE_RESET(slapfight)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -921,7 +911,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_STATIC(slapfight)
MCFG_SCREEN_VBLANK_STATIC(perfrman)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(slapfght)
MCFG_PALETTE_LENGTH(256)

View File

@ -74,7 +74,7 @@ Ignore the warnings about writing to unmapped memory.
static ADDRESS_MAP_START( srumbler_map, AS_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1dff) AM_RAM /* RAM (of 1 sort or another) */
AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(srumbler_background_w) AM_BASE_MEMBER(srumbler_state, m_backgroundram)
AM_RANGE(0x4008, 0x4008) AM_READ_PORT("SYSTEM") AM_WRITE(srumbler_bankswitch_w)
AM_RANGE(0x4009, 0x4009) AM_READ_PORT("P1") AM_WRITE(srumbler_4009_w)
@ -248,7 +248,7 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state )
MCFG_MACHINE_START(srumbler)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@ -256,7 +256,7 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(10*8, (64-10)*8-1, 1*8, 31*8-1 )
MCFG_SCREEN_UPDATE_STATIC(srumbler)
MCFG_SCREEN_VBLANK_STATIC(srumbler)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(srumbler)
MCFG_PALETTE_LENGTH(512)

View File

@ -169,7 +169,7 @@ static WRITE8_DEVICE_HANDLER( msm5205_w )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfe0d00, 0xfe1807) AM_RAM /* still part of OBJ RAM */
AM_RANGE(0xfe4000, 0xfe4001) AM_READ_PORT("P1_P2") AM_WRITE(tigeroad_videoctrl_w) /* char bank, coin counters, + ? */
AM_RANGE(0xfe4002, 0xfe4003) AM_READ_PORT("SYSTEM")
@ -529,7 +529,7 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state )
/* IRQs are triggered by the YM2203 */
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60.08) /* verified on pcb */
@ -537,7 +537,7 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_STATIC(tigeroad)
MCFG_SCREEN_VBLANK_STATIC(tigeroad)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(tigeroad)
MCFG_PALETTE_LENGTH(576)

View File

@ -93,7 +93,7 @@ static WRITE8_HANDLER( toki_adpcm_data_w )
static ADDRESS_MAP_START( toki_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x06d7ff) AM_RAM
AM_RANGE(0x06d800, 0x06dfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x06d800, 0x06dfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_BASE_MEMBER(toki_state, m_background1_videoram16)
AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_BASE_MEMBER(toki_state, m_background2_videoram16)
@ -116,7 +116,7 @@ static ADDRESS_MAP_START( tokib_map, AS_PROGRAM, 16 )
AM_RANGE(0x071000, 0x071001) AM_WRITENOP /* sprite related? seems another scroll register */
/* gets written the same value as 75000a (bg2 scrollx) */
AM_RANGE(0x071804, 0x071807) AM_WRITENOP /* sprite related, always 01be0100 */
AM_RANGE(0x07180e, 0x071e45) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x07180e, 0x071e45) AM_WRITEONLY AM_SHARE("spriteram")
AM_RANGE(0x072000, 0x072001) AM_READ(watchdog_reset16_r) /* probably */
AM_RANGE(0x075000, 0x075001) AM_WRITE(tokib_soundcommand16_w)
AM_RANGE(0x075004, 0x07500b) AM_WRITEONLY AM_BASE_MEMBER(toki_state, m_scrollram16)
@ -425,14 +425,14 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu *
MCFG_MACHINE_RESET(seibu_sound)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.61) /* verified on pcb */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* verified */
MCFG_SCREEN_UPDATE_STATIC(toki)
MCFG_SCREEN_VBLANK_STATIC(toki)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(toki)
MCFG_PALETTE_LENGTH(1024)
@ -455,14 +455,14 @@ static MACHINE_CONFIG_START( tokib, toki_state )
MCFG_CPU_PROGRAM_MAP(tokib_audio_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* verified */
MCFG_SCREEN_UPDATE_STATIC(tokib)
MCFG_SCREEN_VBLANK_STATIC(tokib)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(tokib)
MCFG_PALETTE_LENGTH(1024)

View File

@ -261,7 +261,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(twin16_text_ram_w) AM_BASE_MEMBER(twin16_state, m_text_ram)
// AM_RANGE(0x104000, 0x105fff) AM_NOP // miaj
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_MEMBER(twin16_state, m_videoram)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE("share1") AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE("spriteram")
ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
@ -271,7 +271,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x080000, 0x09ffff) AM_READ(extra_rom_r)
AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUB_register_w)
AM_RANGE(0x400000, 0x403fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x400000, 0x403fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x480000, 0x483fff) AM_READWRITE(videoram16_r, videoram16_w)
AM_RANGE(0x500000, 0x53ffff) AM_RAM AM_BASE_MEMBER(twin16_state, m_tile_gfx_ram)
AM_RANGE(0x600000, 0x6fffff) AM_READ(twin16_gfx_rom1_r)
@ -293,7 +293,7 @@ static ADDRESS_MAP_START( fround_map, AS_PROGRAM, 16 )
AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE(fround_gfx_bank_w)
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(twin16_text_ram_w) AM_BASE_MEMBER(twin16_state, m_text_ram)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE_MEMBER(twin16_state, m_videoram)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x500000, 0x6fffff) AM_READ(twin16_gfx_rom1_r)
ADDRESS_MAP_END
@ -746,7 +746,8 @@ static MACHINE_CONFIG_START( twin16, twin16_state )
MCFG_MACHINE_RESET(twin16)
// video hardware
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_BUFFERS_SPRITERAM)
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(((double)XTAL_18_432MHz / 2) / (576 * 264))
@ -799,7 +800,8 @@ static MACHINE_CONFIG_START( fround, twin16_state )
MCFG_MACHINE_RESET(twin16)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_BUFFERS_SPRITERAM)
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)

View File

@ -277,7 +277,7 @@ Shark Zame
static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x02ffff) AM_ROM
AM_RANGE(0x030000, 0x033fff) AM_RAM /* 68K and DSP shared RAM */
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x050000, 0x050dff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x060000, 0x060001) AM_DEVWRITE8_MODERN("crtc", mc6845_device, address_w, 0x00ff)
AM_RANGE(0x060002, 0x060003) AM_DEVWRITE8_MODERN("crtc", mc6845_device, register_w, 0x00ff)
@ -582,12 +582,13 @@ static MACHINE_CONFIG_START( twincobr, twincobr_state )
/* video hardware */
MCFG_MC6845_ADD("crtc", HD6845, XTAL_28MHz/8, twincobr_mc6845_intf) /* 3.5MHz measured on CLKin */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz/4, 446, 0, 320, 286, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(toaplan0)
MCFG_SCREEN_VBLANK_STATIC(toaplan0)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(twincobr)
MCFG_PALETTE_LENGTH(1792)

View File

@ -62,8 +62,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x300000, 0x3009ff) AM_RAM_WRITE(vaportra_palette_24bit_rg_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x304000, 0x3049ff) AM_RAM_WRITE(vaportra_palette_24bit_b_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x308000, 0x308001) AM_NOP
AM_RANGE(0x30c000, 0x30c001) AM_WRITE(buffer_spriteram16_w)
AM_RANGE(0xff8000, 0xff87ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x30c000, 0x30c001) AM_DEVWRITE_MODERN("spriteram", buffered_spriteram16_device, write)
AM_RANGE(0xff8000, 0xff87ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xffc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@ -277,7 +277,7 @@ static MACHINE_CONFIG_START( vaportra, vaportra_state )
MCFG_MACHINE_RESET(vaportra)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)

View File

@ -203,7 +203,7 @@ static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8 )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") /* Overlapped RAM/Banked ROM - See below */
AM_RANGE(0x8000, 0x8fff) AM_WRITE(wardner_sprite_w) AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x8000, 0x8fff) AM_WRITE(wardner_sprite_w) AM_SHARE("spriteram")
AM_RANGE(0x9000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xadff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xae00, 0xafff) AM_RAM AM_BASE_MEMBER(wardner_state, m_rambase_ae00)
@ -427,12 +427,13 @@ static MACHINE_CONFIG_START( wardner, wardner_state )
/* video hardware */
MCFG_MC6845_ADD("crtc", HD6845, XTAL_14MHz/4, twincobr_mc6845_intf) /* 3.5MHz measured on CLKin */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_14MHz/2, 446, 0, 320, 286, 0, 240)
MCFG_SCREEN_UPDATE_STATIC(toaplan0)
MCFG_SCREEN_VBLANK_STATIC(toaplan0)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(wardner)
MCFG_PALETTE_LENGTH(1792)

View File

@ -69,7 +69,7 @@ static WRITE16_HANDLER ( wwfwfest_irq_ack_w );
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM_WRITE(wwfwfest_fg0_videoram_w) AM_BASE_MEMBER(wwfwfest_state, m_fg0_videoram) /* FG0 Ram - 4 bytes per tile */
AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* SPR Ram */
AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_SHARE("spriteram") /* SPR Ram */
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(wwfwfest_bg0_videoram_w) AM_BASE_MEMBER(wwfwfest_state, m_bg0_videoram) /* BG0 Ram - 4 bytes per tile */
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(wwfwfest_bg1_videoram_w) AM_BASE_MEMBER(wwfwfest_state, m_bg1_videoram) /* BG1 Ram - 2 bytes per tile */
AM_RANGE(0x100000, 0x100007) AM_WRITE(wwfwfest_scroll_write)
@ -381,17 +381,6 @@ static const ym2151_interface ym2151_config =
dd3_ymirq_handler
};
static SCREEN_VBLANK( wwfwfest )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram16_w(space,0,0,0xffff);
}
}
/*******************************************************************************
Machine Driver(s)
*******************************************************************************/
@ -407,12 +396,12 @@ static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state )
MCFG_CPU_PROGRAM_MAP(sound_map)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
MCFG_SCREEN_UPDATE_STATIC(wwfwfest)
MCFG_SCREEN_VBLANK_STATIC(wwfwfest)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(wwfwfest)
MCFG_PALETTE_LENGTH(8192)

View File

@ -12,12 +12,10 @@ public:
/* memory pointers */
UINT8 * m_main_ram;
// UINT8 * m_spriteram; // currently this uses buffered_spriteram
// UINT8 * m_paletteram; // currently this uses generic palette handling
UINT16 m_spriteram16[0x800/2]; // a 16-bit copy of spriteram for use with the MXC06 code
/* video-related */
int m_flipscreen;
int m_flipscreen;
/* misc */
int m_trio_control_select;

View File

@ -1,9 +1,11 @@
#include "video/bufsprite.h"
class armedf_state : public driver_device
{
public:
armedf_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT8 * m_text_videoram;
@ -11,7 +13,6 @@ public:
UINT16 * m_fg_videoram;
UINT16 * m_spr_pal_clut;
UINT16 m_legion_cmd[4]; // legiono only!
// UINT16 * m_spriteram; // currently this uses generic buffered_spriteram
// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
@ -28,6 +29,8 @@ public:
int m_sprite_offy;
int m_old_mcu_mode;
int m_waiting_msb;
required_device<buffered_spriteram16_device> m_spriteram;
};
class bigfghtr_state : public armedf_state
@ -47,7 +50,6 @@ public:
/*----------- defined in video/armedf.c -----------*/
SCREEN_UPDATE_IND16( armedf );
SCREEN_VBLANK( armedf );
VIDEO_START( armedf );
VIDEO_START( terraf );

View File

@ -1,9 +1,13 @@
#include "video/bufsprite.h"
class bbusters_state : public driver_device
{
public:
bbusters_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_eprom_data(*this, "eeprom") { }
m_eprom_data(*this, "eeprom"),
m_spriteram(*this, "spriteram"),
m_spriteram2(*this, "spriteram2") { }
UINT16 *m_videoram;
UINT16 *m_ram;
@ -21,6 +25,9 @@ public:
UINT16 *m_pf2_data;
UINT16 *m_pf1_scroll_data;
UINT16 *m_pf2_scroll_data;
required_device<buffered_spriteram16_device> m_spriteram;
optional_device<buffered_spriteram16_device> m_spriteram2;
};

View File

@ -4,18 +4,20 @@
***************************************************************************/
#include "video/bufsprite.h"
class bionicc_state : public driver_device
{
public:
bionicc_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT16 * m_bgvideoram;
UINT16 * m_fgvideoram;
UINT16 * m_txvideoram;
UINT16 * m_paletteram;
// UINT16 * m_spriteram; // needed for EOF, but currently handled through buffer_spriteram16
/* video-related */
tilemap_t *m_tx_tilemap;
@ -25,6 +27,8 @@ public:
UINT16 m_inp[3];
UINT16 m_soundcommand;
required_device<buffered_spriteram16_device> m_spriteram;
};
@ -39,4 +43,3 @@ WRITE16_HANDLER( bionicc_gfxctrl_w );
VIDEO_START( bionicc );
SCREEN_UPDATE_IND16( bionicc );
SCREEN_VBLANK( bionicc );

View File

@ -4,15 +4,17 @@
***************************************************************************/
#include "video/bufsprite.h"
class blktiger_state : public driver_device
{
public:
blktiger_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT8 * m_txvideoram;
// UINT8 * m_spriteram; // currently this uses generic buffer_spriteram_w
// UINT8 * m_paletteram; // currently this uses generic palette handling
// UINT8 * m_paletteram2; // currently this uses generic palette handling
@ -36,6 +38,7 @@ public:
/* devices */
device_t *m_mcu;
device_t *m_audiocpu;
required_device<buffered_spriteram8_device> m_spriteram;
};
@ -54,4 +57,3 @@ WRITE8_HANDLER( blktiger_scrolly_w );
VIDEO_START( blktiger );
SCREEN_UPDATE_IND16( blktiger );
SCREEN_VBLANK( blktiger );

View File

@ -7,6 +7,7 @@
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decocomn.h"
#include "video/bufsprite.h"
class boogwing_state : public driver_device
{
@ -19,7 +20,9 @@ public:
m_deco_tilegen1(*this, "tilegen1"),
m_deco_tilegen2(*this, "tilegen2"),
m_oki1(*this, "oki1"),
m_oki2(*this, "oki2") { }
m_oki2(*this, "oki2"),
m_spriteram(*this, "spriteram"),
m_spriteram2(*this, "spriteram2") { }
/* memory pointers */
UINT16 * m_pf1_rowscroll;
@ -35,6 +38,8 @@ public:
required_device<deco16ic_device> m_deco_tilegen2;
required_device<okim6295_device> m_oki1;
required_device<okim6295_device> m_oki2;
required_device<buffered_spriteram16_device> m_spriteram;
required_device<buffered_spriteram16_device> m_spriteram2;
};

View File

@ -7,6 +7,7 @@
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decocomn.h"
#include "video/bufsprite.h"
class cninja_state : public driver_device
{
@ -19,7 +20,9 @@ public:
m_deco_tilegen1(*this, "tilegen1"),
m_deco_tilegen2(*this, "tilegen2"),
m_raster_irq_timer(*this, "raster_timer"),
m_oki2(*this, "oki2") { }
m_oki2(*this, "oki2"),
m_spriteram(*this, "spriteram"),
m_spriteram2(*this, "spriteram2") { }
/* memory pointers */
UINT16 * m_ram;
@ -40,6 +43,8 @@ public:
required_device<deco16ic_device> m_deco_tilegen2;
optional_device<timer_device> m_raster_irq_timer;
optional_device<okim6295_device> m_oki2;
required_device<buffered_spriteram16_device> m_spriteram;
optional_device<buffered_spriteram16_device> m_spriteram2;
};
/*----------- defined in video/cninja.c -----------*/

View File

@ -4,11 +4,14 @@
*************************************************************************/
#include "video/bufsprite.h"
class commando_state : public driver_device
{
public:
commando_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT8 * m_videoram;
@ -25,6 +28,7 @@ public:
/* devices */
device_t *m_audiocpu;
required_device<buffered_spriteram8_device> m_spriteram;
};
@ -41,4 +45,3 @@ WRITE8_HANDLER( commando_c804_w );
VIDEO_START( commando );
SCREEN_UPDATE_IND16( commando );
SCREEN_VBLANK( commando );

View File

@ -1,15 +1,19 @@
#include "cpu/z80/z80.h"
#include "video/bufsprite.h"
class crshrace_state : public driver_device
{
public:
crshrace_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_audiocpu(*this, "audiocpu"),
m_k053936(*this, "k053936"),
m_spriteram(*this, "spriteram"),
m_spriteram2(*this, "spriteram2") { }
/* memory pointers */
UINT16 * m_videoram1;
UINT16 * m_videoram2;
// UINT16 * m_spriteram1; // currently this uses generic buffered spriteram
// UINT16 * m_spriteram2; // currently this uses generic buffered spriteram
// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
@ -23,8 +27,10 @@ public:
int m_pending_command;
/* devices */
device_t *m_audiocpu;
device_t *m_k053936;
required_device<z80_device> m_audiocpu;
required_device<k053936_device> m_k053936;
required_device<buffered_spriteram16_device> m_spriteram;
required_device<buffered_spriteram16_device> m_spriteram2;
};
/*----------- defined in video/crshrace.c -----------*/

View File

@ -1,4 +1,5 @@
#include "video/deco16ic.h"
#include "video/bufsprite.h"
class darkseal_state : public driver_device
{
@ -6,7 +7,8 @@ public:
darkseal_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_deco_tilegen1(*this, "tilegen1"),
m_deco_tilegen2(*this, "tilegen2") { }
m_deco_tilegen2(*this, "tilegen2"),
m_spriteram(*this, "spriteram") { }
UINT16 *m_ram;
UINT16 *m_pf1_rowscroll;
@ -16,6 +18,7 @@ public:
required_device<deco16ic_device> m_deco_tilegen1;
required_device<deco16ic_device> m_deco_tilegen2;
required_device<buffered_spriteram16_device> m_spriteram;
int m_flipscreen;
};

View File

@ -7,6 +7,7 @@
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decocomn.h"
#include "video/bufsprite.h"
class dassault_state : public driver_device
{
@ -19,7 +20,9 @@ public:
m_decocomn(*this, "deco_common"),
m_deco_tilegen1(*this, "tilegen1"),
m_deco_tilegen2(*this, "tilegen2"),
m_oki2(*this, "oki2") { }
m_oki2(*this, "oki2"),
m_spriteram(*this, "spriteram"),
m_spriteram2(*this, "spriteram2") { }
/* memory pointers */
UINT16 * m_pf2_rowscroll;
@ -36,6 +39,8 @@ public:
required_device<deco16ic_device> m_deco_tilegen1;
required_device<deco16ic_device> m_deco_tilegen2;
required_device<okim6295_device> m_oki2;
required_device<buffered_spriteram16_device> m_spriteram;
required_device<buffered_spriteram16_device> m_spriteram2;
};

View File

@ -1,9 +1,11 @@
#include "video/bufsprite.h"
class dec8_state : public driver_device
{
public:
dec8_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT8 * m_videoram;
@ -12,7 +14,6 @@ public:
UINT8 * m_row;
// UINT8 * m_paletteram; // currently this uses generic palette handling
// UINT8 * m_paletteram_2; // currently this uses generic palette handling
// UINT8 * m_spriteram; // currently this uses buffered_spriteram in some games
size_t m_videoram_size;
UINT16 m_buffered_spriteram16[0x800/2]; // for the mxc06 sprite chip emulation (oscar, cobra)
@ -44,6 +45,7 @@ public:
device_t *m_subcpu;
device_t *m_audiocpu;
device_t *m_mcu;
required_device<buffered_spriteram8_device> m_spriteram;
};
/*----------- defined in video/dec8.c -----------*/

View File

@ -1,4 +1,5 @@
#include "audio/decobsmt.h"
#include "video/bufsprite.h"
class deco32_state : public driver_device
{
@ -6,11 +7,13 @@ public:
deco32_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_decobsmt(*this, "decobsmt")
m_decobsmt(*this, "decobsmt"),
m_spriteram(*this, "spriteram")
{ }
required_device<cpu_device> m_maincpu;
optional_device<decobsmt_device> m_decobsmt;
optional_device<buffered_spriteram32_device> m_spriteram;
UINT32 *m_ram;
int m_raster_enable;

View File

@ -1,8 +1,12 @@
#include "video/bufsprite.h"
class dooyong_state : public driver_device
{
public:
dooyong_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram"),
m_spriteram16(*this, "spriteram16") { }
UINT8 *m_txvideoram;
UINT8 *m_paletteram_flytiger;
@ -36,6 +40,8 @@ public:
int m_interrupt_line_1;
int m_interrupt_line_2;
optional_device<buffered_spriteram8_device> m_spriteram;
optional_device<buffered_spriteram16_device> m_spriteram16;
};
@ -76,6 +82,3 @@ VIDEO_START( flytiger );
VIDEO_START( primella );
VIDEO_START( rshark );
VIDEO_START( popbingo );
SCREEN_VBLANK( dooyong );
SCREEN_VBLANK( rshark );

View File

@ -1,8 +1,11 @@
#include "video/bufsprite.h"
class dynduke_state : public driver_device
{
public:
dynduke_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
UINT16 *m_videoram;
UINT16 *m_back_data;
@ -19,6 +22,7 @@ public:
int m_txt_enable;
int m_old_back;
int m_old_fore;
required_device<buffered_spriteram16_device> m_spriteram;
};
@ -32,4 +36,3 @@ WRITE16_HANDLER( dynduke_control_w );
WRITE16_HANDLER( dynduke_paletteram_w );
VIDEO_START( dynduke );
SCREEN_UPDATE_IND16( dynduke );
SCREEN_VBLANK( dynduke );

View File

@ -4,12 +4,14 @@
*************************************************************************/
#include "video/bufsprite.h"
class exedexes_state : public driver_device
{
public:
exedexes_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT8 * m_videoram;
@ -27,6 +29,8 @@ public:
int m_objon;
int m_sc1on;
int m_sc2on;
required_device<buffered_spriteram8_device> m_spriteram;
};
@ -41,4 +45,3 @@ extern WRITE8_HANDLER( exedexes_gfxctrl_w );
extern PALETTE_INIT( exedexes );
extern VIDEO_START( exedexes );
extern SCREEN_UPDATE_IND16( exedexes );
extern SCREEN_VBLANK( exedexes );

View File

@ -1,9 +1,13 @@
#include "cpu/m68000/m68000.h"
#include "video/bufsprite.h"
class gaelco2_state : public driver_device
{
public:
gaelco2_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this,"maincpu")
m_maincpu(*this,"maincpu"),
m_spriteram(*this,"spriteram")
{ }
UINT16 *m_snowboar_protection;
@ -14,7 +18,8 @@ public:
tilemap_t *m_pant[2];
int m_dual_monitor;
required_device<cpu_device> m_maincpu;
required_device<m68000_device> m_maincpu;
required_device<buffered_spriteram16_device> m_spriteram;
};
@ -44,7 +49,6 @@ WRITE16_HANDLER( snowboar_protection_w );
WRITE16_HANDLER( gaelco2_vram_w );
WRITE16_HANDLER( gaelco2_palette_w );
SCREEN_UPDATE_IND16( gaelco2 );
SCREEN_VBLANK( gaelco2 );
VIDEO_START( gaelco2 );
SCREEN_UPDATE_IND16( gaelco2_left );
SCREEN_UPDATE_IND16( gaelco2_right );

View File

@ -4,24 +4,28 @@
*************************************************************************/
#include "video/bufsprite.h"
class gng_state : public driver_device
{
public:
gng_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT8 * m_bgvideoram;
UINT8 * m_fgvideoram;
// UINT8 * m_paletteram; // currently this uses generic palette handling
// UINT8 * m_paletteram2; // currently this uses generic palette handling
// UINT8 * m_spriteram; // currently this uses generic buffered spriteram
/* video-related */
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
UINT8 m_scrollx[2];
UINT8 m_scrolly[2];
required_device<buffered_spriteram8_device> m_spriteram;
};
@ -35,4 +39,3 @@ WRITE8_HANDLER( gng_flipscreen_w );
VIDEO_START( gng );
SCREEN_UPDATE_IND16( gng );
SCREEN_VBLANK( gng );

View File

@ -16,7 +16,7 @@
// set to 0 to enable Votrax device and disable samples
#define USE_FAKE_VOTRAX (1)
#define USE_FAKE_VOTRAX (0)
#define GOTTLIEB_VIDEO_HCOUNT 318

View File

@ -4,18 +4,20 @@
*************************************************************************/
#include "video/bufsprite.h"
class hcastle_state : public driver_device
{
public:
hcastle_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram"),
m_spriteram2(*this, "spriteram2") { }
/* memory pointers */
UINT8 * m_pf1_videoram;
UINT8 * m_pf2_videoram;
UINT8 * m_paletteram;
// UINT8 * m_spriteram;
// UINT8 * m_spriteram2;
/* video-related */
tilemap_t *m_fg_tilemap;
@ -30,6 +32,9 @@ public:
device_t *m_audiocpu;
device_t *m_k007121_1;
device_t *m_k007121_2;
required_device<buffered_spriteram8_device> m_spriteram;
required_device<buffered_spriteram8_device> m_spriteram2;
};

View File

@ -4,17 +4,19 @@
*************************************************************************/
#include "video/bufsprite.h"
class karnov_state : public driver_device
{
public:
karnov_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT16 * m_videoram;
UINT16 * m_ram;
UINT16 * m_pf_data;
// UINT16 * m_spriteram; // currently this uses generic buffered spriteram
/* video-related */
bitmap_ind16 *m_bitmap_f;
@ -35,6 +37,7 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
required_device<buffered_spriteram16_device> m_spriteram;
};
enum {

View File

@ -4,13 +4,16 @@
*************************************************************************/
#include "video/bufsprite.h"
class lastduel_state : public driver_device
{
public:
lastduel_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu")
m_audiocpu(*this, "audiocpu"),
m_spriteram(*this, "spriteram")
{ }
/* memory pointers */
@ -32,6 +35,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<buffered_spriteram16_device> m_spriteram;
};
/*----------- defined in video/lastduel.c -----------*/
@ -49,4 +53,3 @@ VIDEO_START( lastduel );
VIDEO_START( madgear );
SCREEN_UPDATE_IND16( lastduel );
SCREEN_UPDATE_IND16( madgear );
SCREEN_VBLANK( lastduel );

View File

@ -2,7 +2,8 @@ class legionna_state : public driver_device
{
public:
legionna_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
UINT16 *m_back_data;
UINT16 *m_fore_data;
@ -21,6 +22,7 @@ public:
UINT16 m_back_gfx_bank;
UINT16 m_fore_gfx_bank;
UINT16 m_mid_gfx_bank;
required_shared_ptr<UINT16> m_spriteram;
};

View File

@ -1,9 +1,13 @@
#include "video/bufsprite.h"
class lemmings_state : public driver_device
{
public:
lemmings_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_bitmap0(2048, 256),
m_spriteram(*this, "spriteram"),
m_spriteram2(*this, "spriteram2") { }
/* memory pointers */
UINT16 * m_pixel_0_data;
@ -11,18 +15,18 @@ public:
UINT16 * m_vram_data;
UINT16 * m_control_data;
UINT16 * m_paletteram;
// UINT16 * m_spriteram; // this currently uses generic buffered spriteram
// UINT16 * m_spriteram2; // this currently uses generic buffered spriteram
/* video-related */
bitmap_ind16 *m_bitmap0;
bitmap_ind16 m_bitmap0;
tilemap_t *m_vram_tilemap;
UINT16 *m_sprite_triple_buffer_0;
UINT16 *m_sprite_triple_buffer_1;
UINT8 *m_vram_buffer;
UINT16 m_sprite_triple_buffer_0[0x800];
UINT16 m_sprite_triple_buffer_1[0x800];
UINT8 m_vram_buffer[2048 * 64]; // 64 bytes per VRAM character
/* devices */
device_t *m_audiocpu;
required_device<buffered_spriteram16_device> m_spriteram;
required_device<buffered_spriteram16_device> m_spriteram2;
};

View File

@ -1,15 +1,16 @@
#include "video/bufsprite.h"
class lwings_state : public driver_device
{
public:
lwings_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT8 * m_fgvideoram;
UINT8 * m_bg1videoram;
UINT8 * m_soundlatch2;
// UINT8 * m_spriteram; // currently this uses generic buffered spriteram
// UINT8 * m_paletteram; // currently this uses generic palette handling
// UINT8 * m_paletteram2; // currently this uses generic palette handling
@ -28,6 +29,8 @@ public:
UINT8 m_soundstate;
UINT8 m_adpcm;
UINT8 m_nmi_mask;
required_device<buffered_spriteram8_device> m_spriteram;
};
@ -45,4 +48,3 @@ VIDEO_START( trojan );
VIDEO_START( avengers );
SCREEN_UPDATE_IND16( lwings );
SCREEN_UPDATE_IND16( trojan );
SCREEN_VBLANK( lwings );

View File

@ -4,8 +4,9 @@
*************************************************************************/
typedef struct _pf_layer_info pf_layer_info;
struct _pf_layer_info
#include "video/bufsprite.h"
struct pf_layer_info
{
tilemap_t * tmap;
tilemap_t * wide_tmap;
@ -17,7 +18,8 @@ class m92_state : public driver_device
{
public:
m92_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
UINT16 m_sound_status;
UINT8 m_irq_vectorbase;
@ -31,6 +33,8 @@ public:
UINT16 m_pf_master_control[4];
INT32 m_sprite_list;
UINT8 m_palette_bank;
required_device<buffered_spriteram16_device> m_spriteram;
};

View File

@ -1,3 +1,4 @@
#include "video/bufsprite.h"
#define MASTER_CLOCK 57272700 // main oscillator frequency
@ -20,7 +21,8 @@ class psikyosh_state : public driver_device
{
public:
psikyosh_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT32 * m_bgram;
@ -28,8 +30,6 @@ public:
UINT32 * m_vidregs;
UINT32 * m_ram;
UINT32 * m_paletteram;
// UINT32 * m_spriteram; // currently this uses generic buffered spriteram
// size_t m_spriteram_size;
/* video-related */
bitmap_ind8 m_zoom_bitmap;
@ -40,6 +40,7 @@ public:
/* devices */
device_t *m_maincpu;
required_device<buffered_spriteram32_device> m_spriteram;
};
/*----------- defined in video/psikyosh.c -----------*/

View File

@ -1,8 +1,11 @@
#include "video/bufsprite.h"
class raiden_state : public driver_device
{
public:
raiden_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
UINT16 *m_videoram;
UINT16 *m_shared_ram;
@ -14,6 +17,7 @@ public:
tilemap_t *m_tx_layer;
int m_flipscreen;
int m_alternate;
required_device<buffered_spriteram16_device> m_spriteram;
};

View File

@ -7,6 +7,7 @@
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decocomn.h"
#include "video/bufsprite.h"
class rohga_state : public driver_device
{
@ -19,14 +20,15 @@ public:
m_deco_tilegen1(*this, "tilegen1"),
m_deco_tilegen2(*this, "tilegen2"),
m_oki1(*this, "oki1"),
m_oki2(*this, "oki2") { }
m_oki2(*this, "oki2"),
m_spriteram(*this, "spriteram"),
m_spriteram2(*this, "spriteram2") { }
/* memory pointers */
UINT16 * m_pf1_rowscroll;
UINT16 * m_pf2_rowscroll;
UINT16 * m_pf3_rowscroll;
UINT16 * m_pf4_rowscroll;
UINT16 * m_spriteram;
/* devices */
required_device<cpu_device> m_maincpu;
@ -36,6 +38,8 @@ public:
required_device<deco16ic_device> m_deco_tilegen2;
required_device<okim6295_device> m_oki1;
required_device<okim6295_device> m_oki2;
required_device<buffered_spriteram16_device> m_spriteram;
optional_device<buffered_spriteram16_device> m_spriteram2;
};

View File

@ -1,8 +1,11 @@
#include "video/bufsprite.h"
class sidearms_state : public driver_device
{
public:
sidearms_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
int m_gameid;
@ -24,6 +27,8 @@ public:
UINT32 m_hcount_191;
UINT32 m_vcount_191;
UINT32 m_latch_374;
required_device<buffered_spriteram8_device> m_spriteram;
};
/*----------- defined in video/sidearms.c -----------*/
@ -37,4 +42,3 @@ WRITE8_HANDLER( sidearms_gfxctrl_w );
VIDEO_START( sidearms );
SCREEN_UPDATE_IND16( sidearms );
SCREEN_VBLANK( sidearms );

View File

@ -1,4 +1,5 @@
#include "cpu/z80/z80.h"
#include "video/bufsprite.h"
/* This it the best way to allow game specific kludges until the system is fully understood */
@ -15,7 +16,8 @@ class slapfght_state : public driver_device
{
public:
slapfght_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
int m_getstar_id;
UINT8 *m_slapfight_videoram;
@ -53,6 +55,7 @@ public:
tilemap_t *m_pf1_tilemap;
tilemap_t *m_fix_tilemap;
UINT8 m_irq_mask;
required_device<buffered_spriteram8_device> m_spriteram;
};

View File

@ -1,9 +1,12 @@
#include "video/bufsprite.h"
class srumbler_state : public driver_device
{
public:
srumbler_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this,"maincpu")
m_maincpu(*this,"maincpu"),
m_spriteram(*this,"spriteram")
{ }
UINT8 *m_backgroundram;
@ -13,6 +16,7 @@ public:
int m_scroll[4];
required_device<cpu_device> m_maincpu;
required_device<buffered_spriteram8_device> m_spriteram;
};

View File

@ -1,14 +1,18 @@
#include "video/bufsprite.h"
class tigeroad_state : public driver_device
{
public:
tigeroad_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
UINT16 *m_videoram;
UINT16 *m_ram16;
int m_bgcharbank;
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
required_device<buffered_spriteram16_device> m_spriteram;
};
@ -19,4 +23,3 @@ WRITE16_HANDLER( tigeroad_videoctrl_w );
WRITE16_HANDLER( tigeroad_scroll_w );
VIDEO_START( tigeroad );
SCREEN_UPDATE_IND16( tigeroad );
SCREEN_VBLANK( tigeroad );

View File

@ -1,8 +1,11 @@
#include "video/bufsprite.h"
class toki_state : public driver_device
{
public:
toki_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
UINT16 *m_videoram;
int m_msm5205next;
@ -13,14 +16,13 @@ public:
tilemap_t *m_background_layer;
tilemap_t *m_foreground_layer;
tilemap_t *m_text_layer;
required_device<buffered_spriteram16_device> m_spriteram;
};
/*----------- defined in video/toki.c -----------*/
VIDEO_START( toki );
SCREEN_VBLANK( toki );
SCREEN_VBLANK( tokib );
SCREEN_UPDATE_IND16( toki );
SCREEN_UPDATE_IND16( tokib );
WRITE16_HANDLER( toki_background1_videoram16_w );

View File

@ -1,8 +1,11 @@
#include "video/bufsprite.h"
class twin16_state : public driver_device
{
public:
twin16_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
UINT16 *m_videoram;
UINT16 m_CPUA_register;
@ -24,6 +27,7 @@ public:
UINT16 m_scrolly[3];
UINT16 m_video_register;
tilemap_t *m_text_tilemap;
required_device<buffered_spriteram16_device> m_spriteram;
};

View File

@ -5,13 +5,15 @@
#include "video/mc6845.h"
#include "video/bufsprite.h"
class twincobr_state : public driver_device
{
public:
twincobr_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
int m_toaplan_main_cpu;
int m_wardner_membank;
@ -48,6 +50,7 @@ public:
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
tilemap_t *m_tx_tilemap;
required_device<buffered_spriteram16_device> m_spriteram;
};
@ -122,4 +125,3 @@ WRITE8_HANDLER( wardner_sprite_w );
VIDEO_START( toaplan0 );
SCREEN_UPDATE_IND16( toaplan0 );
SCREEN_VBLANK( toaplan0 );

View File

@ -4,11 +4,14 @@
*************************************************************************/
#include "video/bufsprite.h"
class vaportra_state : public driver_device
{
public:
vaportra_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
/* memory pointers */
UINT16 * m_pf1_rowscroll;
@ -24,6 +27,7 @@ public:
device_t *m_audiocpu;
device_t *m_deco_tilegen1;
device_t *m_deco_tilegen2;
required_device<buffered_spriteram16_device> m_spriteram;
};

View File

@ -1,8 +1,11 @@
#include "video/bufsprite.h"
class wwfwfest_state : public driver_device
{
public:
wwfwfest_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
: driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram") { }
UINT16 *m_fg0_videoram;
UINT16 *m_bg0_videoram;
@ -18,6 +21,7 @@ public:
UINT16 m_sprite_xoff;
UINT16 m_bg0_dx;
UINT16 m_bg1_dx[2];
required_device<buffered_spriteram16_device> m_spriteram;
};

View File

@ -14,8 +14,7 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_vram(*this, "videoram"),
m_vram_size(*this, "videoram")
m_vram(*this, "videoram")
{ }
// in drivers/zerozone.c
@ -31,7 +30,6 @@ public:
// shared pointers
required_shared_ptr<UINT16> m_vram;
required_shared_size m_vram_size;
// currently this driver uses generic palette handling
// state

View File

@ -13,10 +13,7 @@ public:
m_videoram_2(*this, "videoram_2"),
m_attributeram(*this, "attributeram"),
m_spriteram(*this, "spriteram"),
m_bulletsram(*this, "bulletsram"),
m_videoram_size(*this, "videoram"),
m_spriteram_size(*this, "spriteram"),
m_bulletsram_size(*this, "bulletsram")
m_bulletsram(*this, "bulletsram")
{ m_percuss_hardware = 0; }
// in drivers/zodiack.c
@ -44,9 +41,6 @@ public:
required_shared_ptr<UINT8> m_attributeram;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_bulletsram;
required_shared_size m_videoram_size;
required_shared_size m_spriteram_size;
required_shared_size m_bulletsram_size;
// currently this driver uses generic palette handling
// state

View File

@ -97,8 +97,7 @@ public:
atarigen_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_earom(*this, "earom"),
m_eeprom(*this, "eeprom"),
m_eeprom_size(*this, "eeprom") { }
m_eeprom(*this, "eeprom") { }
// users must call through to these
virtual void machine_start();
@ -115,7 +114,6 @@ public:
UINT8 m_earom_control;
optional_shared_ptr<UINT16> m_eeprom;
optional_shared_size m_eeprom_size;
UINT8 m_scanline_int_state;
UINT8 m_sound_int_state;

View File

@ -352,11 +352,11 @@ void armedf_drawgfx(running_machine &machine, bitmap_ind16 &dest_bmp,const recta
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority )
{
UINT16 *buffered_spriteram = machine.generic.buffered_spriteram.u16;
armedf_state *state = machine.driver_data<armedf_state>();
UINT16 *buffered_spriteram = state->m_spriteram->buffer();
int offs;
for (offs = 0; offs < machine.generic.spriteram_size / 2; offs += 4)
for (offs = 0; offs < state->m_spriteram->bytes() / 2; offs += 4)
{
int code = buffered_spriteram[offs + 1]; /* ??YX?TTTTTTTTTTT */
int flipx = code & 0x2000;
@ -431,15 +431,3 @@ SCREEN_UPDATE_IND16( armedf )
return 0;
}
SCREEN_VBLANK( armedf )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram16_w(space, 0, 0, 0xffff);
}
}

View File

@ -289,10 +289,10 @@ SCREEN_UPDATE_IND16( bbuster )
state->m_pf2_tilemap->set_scrolly(0, state->m_pf2_scroll_data[1]);
state->m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
//draw_sprites(screen.machine(), bitmap, screen.machine().generic.buffered_spriteram2.u16, 2, 0x8, 0x8);
//draw_sprites(screen.machine(), bitmap, state->m_spriteram2->buffer(), 2, 0x8, 0x8);
state->m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, screen.machine().generic.buffered_spriteram2.u16, 2, 0, 0);
draw_sprites(screen.machine(), bitmap, screen.machine().generic.buffered_spriteram.u16, 1, 0, 0);
draw_sprites(screen.machine(), bitmap, state->m_spriteram2->buffer(), 2, 0, 0);
draw_sprites(screen.machine(), bitmap, state->m_spriteram->buffer(), 1, 0, 0);
state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@ -308,7 +308,7 @@ SCREEN_UPDATE_IND16( mechatt )
state->m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
state->m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, screen.machine().generic.buffered_spriteram.u16, 1, 0, 0);
draw_sprites(screen.machine(), bitmap, state->m_spriteram->buffer(), 1, 0, 0);
state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}

View File

@ -209,12 +209,12 @@ WRITE16_HANDLER( bionicc_gfxctrl_w )
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
UINT16 *buffered_spriteram = machine.generic.buffered_spriteram.u16;
// bionicc_state *state = machine.driver_data<bionicc_state>();
bionicc_state *state = machine.driver_data<bionicc_state>();
UINT16 *buffered_spriteram = state->m_spriteram->buffer();
int offs;
const gfx_element *gfx = machine.gfx[3];
for (offs = (machine.generic.spriteram_size - 8) / 2; offs >= 0; offs -= 4)
for (offs = (state->m_spriteram->bytes() - 8) / 2; offs >= 0; offs -= 4)
{
int tile_number = buffered_spriteram[offs] & 0x7ff;
if( tile_number != 0x7ff )
@ -259,14 +259,3 @@ SCREEN_UPDATE_IND16( bionicc )
state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
SCREEN_VBLANK( bionicc )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram16_w(space, 0, 0, 0xffff);
}
}

View File

@ -201,12 +201,12 @@ WRITE8_HANDLER( blktiger_screen_layout_w )
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
// blktiger_state *state = machine.driver_data<blktiger_state>();
UINT8 *buffered_spriteram = machine.generic.buffered_spriteram.u8;
blktiger_state *state = machine.driver_data<blktiger_state>();
UINT8 *buffered_spriteram = state->m_spriteram->buffer();
int offs;
/* Draw the sprites. */
for (offs = machine.generic.spriteram_size - 4;offs >= 0;offs -= 4)
for (offs = state->m_spriteram->bytes() - 4;offs >= 0;offs -= 4)
{
int attr = buffered_spriteram[offs+1];
int sx = buffered_spriteram[offs + 3] - ((attr & 0x10) << 4);
@ -250,14 +250,3 @@ SCREEN_UPDATE_IND16( blktiger )
return 0;
}
SCREEN_VBLANK( blktiger )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram_w(space, 0, 0);
}
}

View File

@ -184,8 +184,8 @@ SCREEN_UPDATE_RGB32( boogwing )
UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff);
/* Draw sprite planes to bitmaps for later mixing */
screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, screen.machine().generic.buffered_spriteram2.u16, 0x400, true);
screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, screen.machine().generic.buffered_spriteram.u16, 0x400, true);
screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
flip_screen_set(screen.machine(), BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);

View File

@ -28,7 +28,8 @@ VIDEO_START( stoneage )
/* The bootleg sprites are in a different format! */
static void cninjabl_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
UINT16 *buffered_spriteram = machine.generic.buffered_spriteram.u16;
cninja_state *state = machine.driver_data<cninja_state>();
UINT16 *buffered_spriteram = state->m_spriteram->buffer();
int offs;
int endoffs;
@ -140,7 +141,7 @@ SCREEN_UPDATE_IND16( cninja )
deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, screen.machine().generic.buffered_spriteram.u16, 0x400);
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@ -184,7 +185,7 @@ SCREEN_UPDATE_IND16( edrandy )
deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, screen.machine().generic.buffered_spriteram.u16, 0x400);
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@ -235,7 +236,7 @@ SCREEN_UPDATE_IND16( robocop2 )
break;
}
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, screen.machine().generic.buffered_spriteram.u16, 0x400);
screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@ -262,8 +263,8 @@ SCREEN_UPDATE_RGB32( mutantf )
screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true);
screen.machine().device<decospr_device>("spritegen2")->set_alt_format(true);
screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, screen.machine().generic.buffered_spriteram2.u16, 0x400, true);
screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, screen.machine().generic.buffered_spriteram.u16, 0x400, true);
screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
/* There is no priority prom on this board, but there is a

View File

@ -107,10 +107,11 @@ VIDEO_START( commando )
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
UINT8 *buffered_spriteram = machine.generic.buffered_spriteram.u8;
commando_state *state = machine.driver_data<commando_state>();
UINT8 *buffered_spriteram = state->m_spriteram->buffer();
int offs;
for (offs = machine.generic.spriteram_size - 4; offs >= 0; offs -= 4)
for (offs = state->m_spriteram->bytes() - 4; offs >= 0; offs -= 4)
{
// bit 1 of attr is not used
int attr = buffered_spriteram[offs + 1];
@ -144,14 +145,3 @@ SCREEN_UPDATE_IND16( commando )
state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
SCREEN_VBLANK( commando )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram_w(space, 0, 0);
}
}

View File

@ -102,8 +102,8 @@ WRITE16_HANDLER( crshrace_gfxctrl_w )
static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect)
{
crshrace_state *state = machine.driver_data<crshrace_state>();
UINT16 *buffered_spriteram = machine.generic.buffered_spriteram.u16;
UINT16 *buffered_spriteram_2 = machine.generic.buffered_spriteram2.u16;
UINT16 *buffered_spriteram = state->m_spriteram->buffer();
UINT16 *buffered_spriteram_2 = state->m_spriteram2->buffer();
int offs;
offs = 0;
@ -219,12 +219,7 @@ SCREEN_UPDATE_IND16( crshrace )
SCREEN_VBLANK( crshrace )
{
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
buffer_spriteram16_w(space, 0, 0, 0xffff);
buffer_spriteram16_2_w(space, 0, 0, 0xffff);
}
crshrace_state *state = screen.machine().driver_data<crshrace_state>();
state->m_spriteram->vblank_copy_rising(screen, vblank_on);
state->m_spriteram2->vblank_copy_rising(screen, vblank_on);
}

Some files were not shown because too many files have changed in this diff Show More