mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
tweak (nw)
This commit is contained in:
parent
3b3c516a3d
commit
6d0c46eacc
@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( blackt96, blackt96_state )
|
|||||||
MCFG_SNK68_SPR_GFXDECODE("gfxdecode")
|
MCFG_SNK68_SPR_GFXDECODE("gfxdecode")
|
||||||
MCFG_SNK68_SPR_PALETTE("palette")
|
MCFG_SNK68_SPR_PALETTE("palette")
|
||||||
MCFG_SNK68_SPR_SET_TILE_INDIRECT( blackt96_state, tile_callback )
|
MCFG_SNK68_SPR_SET_TILE_INDIRECT( blackt96_state, tile_callback )
|
||||||
|
MCFG_SNK68_SPR_NO_PARTIAL
|
||||||
|
|
||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||||
|
|
||||||
|
@ -13,7 +13,8 @@ snk68_spr_device::snk68_spr_device(const machine_config &mconfig, const char *ta
|
|||||||
m_palette(*this),
|
m_palette(*this),
|
||||||
m_spriteram(*this, "^spriteram"),
|
m_spriteram(*this, "^spriteram"),
|
||||||
m_screen(*this, "^screen"),
|
m_screen(*this, "^screen"),
|
||||||
m_flipscreen(0)
|
m_flipscreen(0),
|
||||||
|
m_partialupdates(1)
|
||||||
{
|
{
|
||||||
m_newtilecb = snk68_tile_indirection_delegate(FUNC(snk68_spr_device::tile_callback_noindirect), this);
|
m_newtilecb = snk68_tile_indirection_delegate(FUNC(snk68_spr_device::tile_callback_noindirect), this);
|
||||||
}
|
}
|
||||||
@ -51,7 +52,11 @@ void snk68_spr_device::set_tile_indirect_cb(device_t &device,snk68_tile_indirect
|
|||||||
dev.m_newtilecb = newtilecb;
|
dev.m_newtilecb = newtilecb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void snk68_spr_device::static_set_no_partial(device_t &device)
|
||||||
|
{
|
||||||
|
snk68_spr_device &dev = downcast<snk68_spr_device &>(device);
|
||||||
|
dev.m_partialupdates = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void snk68_spr_device::device_start()
|
void snk68_spr_device::device_start()
|
||||||
{
|
{
|
||||||
@ -87,7 +92,7 @@ WRITE16_MEMBER(snk68_spr_device::spriteram_w)
|
|||||||
int vpos = m_screen->vpos();
|
int vpos = m_screen->vpos();
|
||||||
|
|
||||||
if (vpos > 0)
|
if (vpos > 0)
|
||||||
m_screen->update_partial(vpos - 1);
|
if (m_partialupdates) m_screen->update_partial(vpos - 1);
|
||||||
|
|
||||||
m_spriteram[offset] = newword;
|
m_spriteram[offset] = newword;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,9 @@ typedef device_delegate<void (int&, int&, int&, int&)> snk68_tile_indirection_de
|
|||||||
snk68_spr_device::static_set_palette_tag(*device, "^" _palette_tag);
|
snk68_spr_device::static_set_palette_tag(*device, "^" _palette_tag);
|
||||||
#define MCFG_SNK68_SPR_SET_TILE_INDIRECT( _class, _method) \
|
#define MCFG_SNK68_SPR_SET_TILE_INDIRECT( _class, _method) \
|
||||||
snk68_spr_device::set_tile_indirect_cb(*device, snk68_tile_indirection_delegate(&_class::_method, #_class "::" #_method, NULL, (_class *)0));
|
snk68_spr_device::set_tile_indirect_cb(*device, snk68_tile_indirection_delegate(&_class::_method, #_class "::" #_method, NULL, (_class *)0));
|
||||||
|
#define MCFG_SNK68_SPR_NO_PARTIAL \
|
||||||
|
snk68_spr_device::static_set_no_partial(*device);
|
||||||
|
|
||||||
|
|
||||||
class snk68_spr_device : public device_t
|
class snk68_spr_device : public device_t
|
||||||
{
|
{
|
||||||
@ -16,6 +19,7 @@ public:
|
|||||||
static void static_set_gfxdecode_tag(device_t &device, const char *tag);
|
static void static_set_gfxdecode_tag(device_t &device, const char *tag);
|
||||||
static void static_set_palette_tag(device_t &device, const char *tag);
|
static void static_set_palette_tag(device_t &device, const char *tag);
|
||||||
static void set_tile_indirect_cb(device_t &device,snk68_tile_indirection_delegate newtilecb);
|
static void set_tile_indirect_cb(device_t &device,snk68_tile_indirection_delegate newtilecb);
|
||||||
|
static void static_set_no_partial(device_t &device);
|
||||||
|
|
||||||
DECLARE_READ16_MEMBER(spriteram_r);
|
DECLARE_READ16_MEMBER(spriteram_r);
|
||||||
DECLARE_WRITE16_MEMBER(spriteram_w);
|
DECLARE_WRITE16_MEMBER(spriteram_w);
|
||||||
@ -24,7 +28,7 @@ public:
|
|||||||
|
|
||||||
snk68_tile_indirection_delegate m_newtilecb;
|
snk68_tile_indirection_delegate m_newtilecb;
|
||||||
|
|
||||||
void tile_callback_noindirect(int& tile, int& fx, int& ft, int& region);
|
void tile_callback_noindirect(int& tile, int& fx, int& fy, int& region);
|
||||||
void set_flip(int flip);
|
void set_flip(int flip);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -37,6 +41,7 @@ private:
|
|||||||
required_shared_ptr<UINT16> m_spriteram;
|
required_shared_ptr<UINT16> m_spriteram;
|
||||||
required_device<screen_device> m_screen;
|
required_device<screen_device> m_screen;
|
||||||
int m_flipscreen;
|
int m_flipscreen;
|
||||||
|
int m_partialupdates; // the original hardware needs this, the cloned hardware does not.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user