diff --git a/src/mame/video/decbac06.c b/src/mame/video/decbac06.c index cf8c402c325..99fb75e648c 100644 --- a/src/mame/video/decbac06.c +++ b/src/mame/video/decbac06.c @@ -171,6 +171,14 @@ void deco_bac06_device::device_start() m_bppmult = 0x10; m_bppmask = 0x0f; m_rambank = 0; + + save_pointer(NAME(pf_data), 0x4000/2); + save_pointer(NAME(pf_rowscroll), 0x2000/2); + save_pointer(NAME(pf_colscroll), 0x2000/2); + save_pointer(NAME(pf_control_0), 8); + save_pointer(NAME(pf_control_1), 8); + + save_item(NAME(m_rambank)); } void deco_bac06_device::device_reset() diff --git a/src/mame/video/decbac06.h b/src/mame/video/decbac06.h index 5bedc95b71a..727e0628a01 100644 --- a/src/mame/video/decbac06.h +++ b/src/mame/video/decbac06.h @@ -24,7 +24,22 @@ public: void deco_bac06_pf_draw(running_machine &machine,bitmap_ind16 &bitmap,const rectangle &cliprect,int flags,UINT16 penmask, UINT16 pencondition,UINT16 colprimask, UINT16 colpricondition); void deco_bac06_pf_draw_bootleg(running_machine &machine,bitmap_ind16 &bitmap,const rectangle &cliprect,int flags, int mode, int type); + + /* I wonder if pf_control_0 is really registers, or a selection of pins. + + For games with multiple chips typically the flip bit only gets set on one of the chips, but + is expected to apply to both (and often the sprites as well?) + + Furthermore we have the m_rambank thing used by Stadium Hero which appears to be used to + control the upper address line on some external RAM even if it gets written to the control_0 + area + + For now we have this get_flip_state function so that drivers can query the bit and set other + flip flags accordingly + */ UINT8 get_flip_state(void) { return pf_control_0[0]&0x80; }; + + void set_colmask(int data) { m_gfxcolmask = data; } void set_bppmultmask( int mult, int mask ) { m_bppmult = mult; m_bppmask = mask; } // stadium hero has 3bpp tiles UINT8 m_gfxcolmask;