Previous 199869 Revisions Next

r34115 Tuesday 30th December, 2014 at 19:09:54 UTC by Osso
zaccaria.c, zac2650.c: added save state support (nw)
[src/mame/drivers]zac2650.c zaccaria.c
[src/mame/includes]zac2650.h zaccaria.h
[src/mame/video]zac2650.c zaccaria.c

trunk/src/mame/drivers/zac2650.c
r242626r242627
315315ROM_END
316316
317317
318GAMEL(1979?,tinv2650, 0,        tinvader, tinvader, driver_device, 0, ROT270, "Zaccaria / Zelco", "The Invaders", GAME_IMPERFECT_SOUND, layout_tinv2650 )
319GAME( 1979?,sia2650,  tinv2650, tinvader, sinvader, driver_device, 0, ROT270, "bootleg (Sidam)", "Super Invader Attack (bootleg of The Invaders)", GAME_IMPERFECT_SOUND ) // 1980?
320GAME( 1979, dodgem,   0,        tinvader, dodgem,   driver_device, 0, ROT0,   "Zaccaria", "Dodgem", GAME_IMPERFECT_SOUND )
318GAMEL(1979?,tinv2650, 0,        tinvader, tinvader, driver_device, 0, ROT270, "Zaccaria / Zelco", "The Invaders", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_tinv2650 )
319GAME( 1979?,sia2650,  tinv2650, tinvader, sinvader, driver_device, 0, ROT270, "bootleg (Sidam)", "Super Invader Attack (bootleg of The Invaders)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 1980?
320GAME( 1979, dodgem,   0,        tinvader, dodgem,   driver_device, 0, ROT0,   "Zaccaria", "Dodgem", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/zaccaria.c
r242626r242627
4040#include "emu.h"
4141#include "cpu/z80/z80.h"
4242#include "cpu/m6800/m6800.h"
43#include "machine/6821pia.h"
4443#include "machine/i8255.h"
45#include "sound/ay8910.h"
46#include "sound/dac.h"
47#include "sound/tms5220.h"
4844#include "includes/zaccaria.h"
4945
5046
51WRITE8_MEMBER(zaccaria_state::zaccaria_dsw_sel_w)
47void zaccaria_state::machine_start()
5248{
49   save_item(NAME(m_dsw_sel));
50   save_item(NAME(m_active_8910));
51   save_item(NAME(m_port0a));
52   save_item(NAME(m_acs));
53   save_item(NAME(m_last_port0b));
54   save_item(NAME(m_toggle));
55   save_item(NAME(m_nmi_mask));
56}
57
58void zaccaria_state::machine_reset()
59{
60   m_dsw_sel = 0;
61   m_active_8910 = 0;
62   m_port0a = 0;
63   m_acs = 0;
64   m_last_port0b = 0;
65   m_toggle = 0;
66   m_nmi_mask = 0;
67}
68
69WRITE8_MEMBER(zaccaria_state::dsw_sel_w)
70{
5371   switch (data & 0xf0)
5472   {
5573      case 0xe0:
r242626r242627
7088   }
7189}
7290
73READ8_MEMBER(zaccaria_state::zaccaria_dsw_r)
91READ8_MEMBER(zaccaria_state::dsw_r)
7492{
7593   return m_dsw_port[m_dsw_sel]->read();
7694}
r242626r242627
94112   /* 150 below to scale to volume 100 */
95113   v = (150 * table[ba]) / (4700 + table[ba]);
96114   //printf("dac1w %02d %04d\n", ba, v);
97   machine().device<ay8910_device>("ay2")->set_volume(1, v);
115   m_ay2->set_volume(1, v);
98116}
99117
100118
101WRITE_LINE_MEMBER(zaccaria_state::zaccaria_irq0a)
119WRITE_LINE_MEMBER(zaccaria_state::irq0a)
102120{
103121   m_audiocpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
104122}
105123
106WRITE_LINE_MEMBER(zaccaria_state::zaccaria_irq0b)
124WRITE_LINE_MEMBER(zaccaria_state::irq0b)
107125{
108126   m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
109127}
110128
111READ8_MEMBER(zaccaria_state::zaccaria_port0a_r)
129READ8_MEMBER(zaccaria_state::port0a_r)
112130{
113   return machine().device<ay8910_device>((m_active_8910 == 0) ? "ay1" : "ay2")->data_r(space, 0);
131   return (m_active_8910 == 0) ? m_ay1->data_r(space, 0) : m_ay2->data_r(space, 0);
114132}
115133
116WRITE8_MEMBER(zaccaria_state::zaccaria_port0a_w)
134WRITE8_MEMBER(zaccaria_state::port0a_w)
117135{
118136   m_port0a = data;
119137}
120138
121WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w)
139WRITE8_MEMBER(zaccaria_state::port0b_w)
122140{
123141   /* bit 1 goes to 8910 #0 BDIR pin  */
124142   if ((m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00)
125143   {
126144      /* bit 0 goes to the 8910 #0 BC1 pin */
127      machine().device<ay8910_device>("ay1")->data_address_w(space, m_last_port0b, m_port0a);
145      m_ay1->data_address_w(space, m_last_port0b, m_port0a);
128146   }
129147   else if ((m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02)
130148   {
r242626r242627
136154   if ((m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00)
137155   {
138156      /* bit 2 goes to the 8910 #1 BC1 pin */
139      machine().device<ay8910_device>("ay2")->data_address_w(space, m_last_port0b >> 2, m_port0a);
157      m_ay2->data_address_w(space, m_last_port0b >> 2, m_port0a);
140158   }
141159   else if ((m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08)
142160   {
r242626r242627
148166   m_last_port0b = data;
149167}
150168
151INTERRUPT_GEN_MEMBER(zaccaria_state::zaccaria_cb1_toggle)
169INTERRUPT_GEN_MEMBER(zaccaria_state::cb1_toggle)
152170{
153   pia6821_device *pia0 = machine().device<pia6821_device>("pia0");
154
155   pia0->cb1_w(m_toggle & 1);
171   m_pia->cb1_w(m_toggle & 1);
156172   m_toggle ^= 1;
157173}
158174
159WRITE8_MEMBER(zaccaria_state::zaccaria_port1b_w)
175WRITE8_MEMBER(zaccaria_state::port1b_w)
160176{
161   tms5220_device *tms5220 = machine().device<tms5220_device>("tms");
162
163177   // bit 0 = /RS
164   tms5220->rsq_w((data >> 0) & 0x01);
178   m_tms->rsq_w((data >> 0) & 0x01);
165179   // bit 1 = /WS
166   tms5220->wsq_w((data >> 1) & 0x01);
180   m_tms->wsq_w((data >> 1) & 0x01);
167181
168182   // bit 3 = "ACS" (goes, inverted, to input port 6 bit 3)
169183   m_acs = ~data & 0x08;
r242626r242627
181195
182196WRITE8_MEMBER(zaccaria_state::sound1_command_w)
183197{
184   pia6821_device *pia0 = machine().device<pia6821_device>("pia0");
185   pia0->ca1_w(data & 0x80);
198   m_pia->ca1_w(data & 0x80);
186199   soundlatch2_byte_w(space, 0, data);
187200}
188201
r242626r242627
194207
195208GAME_EXTERN(monymony);
196209
197READ8_MEMBER(zaccaria_state::zaccaria_prot1_r)
210READ8_MEMBER(zaccaria_state::prot1_r)
198211{
199212   switch (offset)
200213   {
r242626r242627
214227   }
215228}
216229
217READ8_MEMBER(zaccaria_state::zaccaria_prot2_r)
230READ8_MEMBER(zaccaria_state::prot2_r)
218231{
219232   switch (offset)
220233   {
r242626r242627
249262static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, zaccaria_state )
250263   AM_RANGE(0x0000, 0x5fff) AM_ROM
251264   AM_RANGE(0x6000, 0x63ff) AM_READONLY
252   AM_RANGE(0x6400, 0x6407) AM_READ(zaccaria_prot1_r)
253   AM_RANGE(0x6000, 0x67ff) AM_WRITE(zaccaria_videoram_w) AM_SHARE("videoram") /* 6400-67ff is 4 bits wide */
254   AM_RANGE(0x6800, 0x683f) AM_WRITE(zaccaria_attributes_w) AM_SHARE("attributesram")
265   AM_RANGE(0x6400, 0x6407) AM_READ(prot1_r)
266   AM_RANGE(0x6000, 0x67ff) AM_WRITE(videoram_w) AM_SHARE("videoram") /* 6400-67ff is 4 bits wide */
267   AM_RANGE(0x6800, 0x683f) AM_WRITE(attributes_w) AM_SHARE("attributesram")
255268   AM_RANGE(0x6840, 0x685f) AM_RAM AM_SHARE("spriteram")
256269   AM_RANGE(0x6881, 0x68c0) AM_RAM AM_SHARE("spriteram2")
257   AM_RANGE(0x6c00, 0x6c00) AM_WRITE(zaccaria_flip_screen_x_w)
258   AM_RANGE(0x6c01, 0x6c01) AM_WRITE(zaccaria_flip_screen_y_w)
270   AM_RANGE(0x6c00, 0x6c00) AM_WRITE(flip_screen_x_w)
271   AM_RANGE(0x6c01, 0x6c01) AM_WRITE(flip_screen_y_w)
259272   AM_RANGE(0x6c02, 0x6c02) AM_WRITENOP    /* sound reset */
260273   AM_RANGE(0x6c06, 0x6c06) AM_WRITE(coin_w)
261274   AM_RANGE(0x6c07, 0x6c07) AM_WRITE(nmi_mask_w)
262   AM_RANGE(0x6c00, 0x6c07) AM_READ(zaccaria_prot2_r)
263   AM_RANGE(0x6e00, 0x6e00) AM_READWRITE(zaccaria_dsw_r, sound_command_w)
275   AM_RANGE(0x6c00, 0x6c07) AM_READ(prot2_r)
276   AM_RANGE(0x6e00, 0x6e00) AM_READWRITE(dsw_r, sound_command_w)
264277   AM_RANGE(0x7000, 0x77ff) AM_RAM
265278   AM_RANGE(0x7800, 0x7803) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
266279   AM_RANGE(0x7c00, 0x7c00) AM_READ(watchdog_reset_r)
r242626r242627
511524
512525   MCFG_CPU_ADD("audiocpu", M6802,XTAL_3_579545MHz) /* verified on pcb */
513526   MCFG_CPU_PROGRAM_MAP(sound_map_1)
514   MCFG_CPU_PERIODIC_INT_DRIVER(zaccaria_state, zaccaria_cb1_toggle, (double)XTAL_3_579545MHz/4096)
527   MCFG_CPU_PERIODIC_INT_DRIVER(zaccaria_state, cb1_toggle, (double)XTAL_3_579545MHz/4096)
515528   MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
516529
517530   MCFG_CPU_ADD("audio2", M6802,XTAL_3_579545MHz) /* verified on pcb */
r242626r242627
522535   MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
523536   MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
524537   MCFG_I8255_IN_PORTC_CB(IOPORT("SYSTEM"))
525   MCFG_I8255_OUT_PORTC_CB(WRITE8(zaccaria_state, zaccaria_dsw_sel_w))
538   MCFG_I8255_OUT_PORTC_CB(WRITE8(zaccaria_state, dsw_sel_w))
526539
527540   MCFG_DEVICE_ADD( "pia0", PIA6821, 0)
528   MCFG_PIA_READPA_HANDLER(READ8(zaccaria_state, zaccaria_port0a_r))
529   MCFG_PIA_WRITEPA_HANDLER(WRITE8(zaccaria_state, zaccaria_port0a_w))
530   MCFG_PIA_WRITEPB_HANDLER(WRITE8(zaccaria_state, zaccaria_port0b_w))
531   MCFG_PIA_IRQA_HANDLER(WRITELINE(zaccaria_state, zaccaria_irq0a))
532   MCFG_PIA_IRQB_HANDLER(WRITELINE(zaccaria_state, zaccaria_irq0b))
541   MCFG_PIA_READPA_HANDLER(READ8(zaccaria_state, port0a_r))
542   MCFG_PIA_WRITEPA_HANDLER(WRITE8(zaccaria_state, port0a_w))
543   MCFG_PIA_WRITEPB_HANDLER(WRITE8(zaccaria_state, port0b_w))
544   MCFG_PIA_IRQA_HANDLER(WRITELINE(zaccaria_state, irq0a))
545   MCFG_PIA_IRQB_HANDLER(WRITELINE(zaccaria_state, irq0b))
533546
534547   MCFG_DEVICE_ADD( "pia1", PIA6821, 0)
535548   MCFG_PIA_READPA_HANDLER(DEVREAD8("tms", tms5220_device, status_r))
536549   MCFG_PIA_WRITEPA_HANDLER(DEVWRITE8("tms", tms5220_device, data_w))
537   MCFG_PIA_WRITEPB_HANDLER(WRITE8(zaccaria_state,zaccaria_port1b_w))
550   MCFG_PIA_WRITEPB_HANDLER(WRITE8(zaccaria_state,port1b_w))
538551
539552   /* video hardware */
540553   MCFG_SCREEN_ADD("screen", RASTER)
r242626r242627
542555   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
543556   MCFG_SCREEN_SIZE(32*8, 32*8)
544557   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
545   MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update_zaccaria)
558   MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update)
546559   MCFG_SCREEN_PALETTE("palette")
547560
548561   MCFG_GFXDECODE_ADD("gfxdecode", "palette", zaccaria)
r242626r242627
726739
727740
728741
729GAME( 1983, monymony,  0,        zaccaria, monymony, driver_device, 0, ROT90, "Zaccaria", "Money Money", GAME_IMPERFECT_SOUND )
730GAME( 1984, jackrabt,  0,        zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 1)", GAME_IMPERFECT_SOUND )
731GAME( 1984, jackrabt2, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 2)", GAME_IMPERFECT_SOUND )
732GAME( 1984, jackrabts, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (special)", GAME_IMPERFECT_SOUND )
742GAME( 1983, monymony,  0,        zaccaria, monymony, driver_device, 0, ROT90, "Zaccaria", "Money Money", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
743GAME( 1984, jackrabt,  0,        zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
744GAME( 1984, jackrabt2, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
745GAME( 1984, jackrabts, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (special)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/zac2650.h
r242626r242627
55public:
66   zac2650_state(const machine_config &mconfig, device_type type, const char *tag)
77      : driver_device(mconfig, type, tag),
8      m_videoram(*this, "videoram"),
9      m_s2636_0_ram(*this, "s2636_0_ram"),
108      m_maincpu(*this, "maincpu"),
119      m_s2636(*this, "s2636"),
1210      m_gfxdecode(*this, "gfxdecode"),
1311      m_screen(*this, "screen"),
14      m_palette(*this, "palette") { }
12      m_palette(*this, "palette"),
13      m_videoram(*this, "videoram"),
14      m_s2636_0_ram(*this, "s2636_0_ram") { }
1515
16   required_shared_ptr<UINT8> m_videoram;
17   required_shared_ptr<UINT8> m_s2636_0_ram;
18
16   /* devices */
1917   required_device<cpu_device> m_maincpu;
2018   required_device<s2636_device> m_s2636;
2119   required_device<gfxdecode_device> m_gfxdecode;
2220   required_device<screen_device> m_screen;
2321   required_device<palette_device> m_palette;
22   
23   /* memory pointers */
24   required_shared_ptr<UINT8> m_videoram;
25   required_shared_ptr<UINT8> m_s2636_0_ram;
2426
2527   bitmap_ind16 m_bitmap;
2628   bitmap_ind16 m_spritebitmap;
2729   int m_CollisionBackground;
2830   int m_CollisionSprite;
2931   tilemap_t *m_bg_tilemap;
32   
3033   DECLARE_WRITE8_MEMBER(tinvader_sound_w);
3134   DECLARE_WRITE8_MEMBER(tinvader_videoram_w);
3235   DECLARE_READ8_MEMBER(zac_s2636_r);
trunk/src/mame/includes/zaccaria.h
r242626r242627
1#include "machine/6821pia.h"
2#include "sound/ay8910.h"
13#include "sound/dac.h"
4#include "sound/tms5220.h"
25
36class zaccaria_state : public driver_device
47{
58public:
69   zaccaria_state(const machine_config &mconfig, device_type type, const char *tag)
710      : driver_device(mconfig, type, tag),
8      m_videoram(*this, "videoram"),
9      m_attributesram(*this, "attributesram"),
10      m_spriteram(*this, "spriteram"),
11      m_spriteram2(*this, "spriteram2"),
1211      m_maincpu(*this, "maincpu"),
1312      m_audiocpu(*this, "audiocpu"),
1413      m_audio2(*this, "audio2"),
14      m_pia(*this, "pia0"),
1515      m_dac2(*this, "dac2"),
16      m_ay1(*this, "ay1"),
17      m_ay2(*this, "ay2"),
18      m_tms(*this, "tms"),
1619      m_gfxdecode(*this, "gfxdecode"),
1720      m_palette(*this, "palette"),
21      m_videoram(*this, "videoram"),
22      m_attributesram(*this, "attributesram"),
23      m_spriteram(*this, "spriteram"),
24      m_spriteram2(*this, "spriteram2"),
1825      m_dsw_port(*this, "DSW") { }
26     
27     
28   
29   /* devices */
30   required_device<cpu_device> m_maincpu;
31   required_device<cpu_device> m_audiocpu;
32   required_device<cpu_device> m_audio2;
33   required_device<pia6821_device> m_pia;
34   required_device<dac_device> m_dac2;
35   required_device<ay8910_device> m_ay1;
36   required_device<ay8910_device> m_ay2;
37   required_device<tms5220_device> m_tms;
38   required_device<gfxdecode_device> m_gfxdecode;
39   required_device<palette_device> m_palette;
40   
41   /* memory pointers */
42   required_shared_ptr<UINT8> m_videoram;
43   required_shared_ptr<UINT8> m_attributesram;
44   required_shared_ptr<UINT8> m_spriteram;
45   required_shared_ptr<UINT8> m_spriteram2;
46   
47   required_ioport_array<3> m_dsw_port;
1948
2049   int m_dsw_sel;
2150   int m_active_8910;
r242626r242627
2352   int m_acs;
2453   int m_last_port0b;
2554   int m_toggle;
26   required_shared_ptr<UINT8> m_videoram;
27   required_shared_ptr<UINT8> m_attributesram;
2855   tilemap_t *m_bg_tilemap;
29   required_shared_ptr<UINT8> m_spriteram;
30   required_shared_ptr<UINT8> m_spriteram2;
3156   UINT8 m_nmi_mask;
32   DECLARE_READ8_MEMBER(zaccaria_dsw_r);
57   
58   DECLARE_READ8_MEMBER(dsw_r);
3359   DECLARE_WRITE8_MEMBER(sound_command_w);
3460   DECLARE_WRITE8_MEMBER(sound1_command_w);
35   DECLARE_READ8_MEMBER(zaccaria_prot1_r);
36   DECLARE_READ8_MEMBER(zaccaria_prot2_r);
61   DECLARE_READ8_MEMBER(prot1_r);
62   DECLARE_READ8_MEMBER(prot2_r);
3763   DECLARE_WRITE8_MEMBER(coin_w);
3864   DECLARE_WRITE8_MEMBER(nmi_mask_w);
39   DECLARE_WRITE8_MEMBER(zaccaria_videoram_w);
40   DECLARE_WRITE8_MEMBER(zaccaria_attributes_w);
41   DECLARE_WRITE8_MEMBER(zaccaria_flip_screen_x_w);
42   DECLARE_WRITE8_MEMBER(zaccaria_flip_screen_y_w);
65   DECLARE_WRITE8_MEMBER(videoram_w);
66   DECLARE_WRITE8_MEMBER(attributes_w);
67   DECLARE_WRITE8_MEMBER(flip_screen_x_w);
68   DECLARE_WRITE8_MEMBER(flip_screen_y_w);
4369   DECLARE_CUSTOM_INPUT_MEMBER(acs_r);
44   DECLARE_WRITE8_MEMBER(zaccaria_dsw_sel_w);
70   DECLARE_WRITE8_MEMBER(dsw_sel_w);
4571   DECLARE_WRITE8_MEMBER(ay8910_port0a_w);
46   DECLARE_WRITE_LINE_MEMBER(zaccaria_irq0a);
47   DECLARE_WRITE_LINE_MEMBER(zaccaria_irq0b);
48   DECLARE_READ8_MEMBER(zaccaria_port0a_r);
49   DECLARE_WRITE8_MEMBER(zaccaria_port0a_w);
50   DECLARE_WRITE8_MEMBER(zaccaria_port0b_w);
51   DECLARE_WRITE8_MEMBER(zaccaria_port1b_w);
72   DECLARE_WRITE_LINE_MEMBER(irq0a);
73   DECLARE_WRITE_LINE_MEMBER(irq0b);
74   DECLARE_READ8_MEMBER(port0a_r);
75   DECLARE_WRITE8_MEMBER(port0a_w);
76   DECLARE_WRITE8_MEMBER(port0b_w);
77   DECLARE_WRITE8_MEMBER(port1b_w);
5278   DECLARE_WRITE8_MEMBER(mc1408_data_w);
5379   TILE_GET_INFO_MEMBER(get_tile_info);
80   virtual void machine_start();
81   virtual void machine_reset();
5482   virtual void video_start();
5583   DECLARE_PALETTE_INIT(zaccaria);
56   UINT32 screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
57   INTERRUPT_GEN_MEMBER(zaccaria_cb1_toggle);
84   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
85   INTERRUPT_GEN_MEMBER(cb1_toggle);
5886   INTERRUPT_GEN_MEMBER(vblank_irq);
5987   void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,UINT8 *spriteram,int color,int section);
60   required_device<cpu_device> m_maincpu;
61   required_device<cpu_device> m_audiocpu;
62   required_device<cpu_device> m_audio2;
63   required_device<dac_device> m_dac2;
64   required_device<gfxdecode_device> m_gfxdecode;
65   required_device<palette_device> m_palette;
66   required_ioport_array<3> m_dsw_port;
6788};
trunk/src/mame/video/zac2650.c
r242626r242627
1616
1717WRITE8_MEMBER(zac2650_state::tinvader_videoram_w)
1818{
19   UINT8 *videoram = m_videoram;
20   videoram[offset] = data;
19   m_videoram[offset] = data;
2120   m_bg_tilemap->mark_tile_dirty(offset);
2221}
2322
r242626r242627
111110
112111TILE_GET_INFO_MEMBER(zac2650_state::get_bg_tile_info)
113112{
114   UINT8 *videoram = m_videoram;
115   int code = videoram[tile_index];
113   int code = m_videoram[tile_index];
116114
117115   SET_TILE_INFO_MEMBER(0, code, 0, 0);
118116}
r242626r242627
127125
128126   m_gfxdecode->gfx(1)->set_source(m_s2636_0_ram);
129127   m_gfxdecode->gfx(2)->set_source(m_s2636_0_ram);
128   
129   save_item(NAME(m_bitmap));
130   save_item(NAME(m_spritebitmap));
131   save_item(NAME(m_CollisionBackground));
132   save_item(NAME(m_CollisionSprite));
130133}
131134
132135void zac2650_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
trunk/src/mame/video/zaccaria.c
r242626r242627
142142
143143***************************************************************************/
144144
145WRITE8_MEMBER(zaccaria_state::zaccaria_videoram_w)
145WRITE8_MEMBER(zaccaria_state::videoram_w)
146146{
147147   m_videoram[offset] = data;
148148   m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
149149}
150150
151WRITE8_MEMBER(zaccaria_state::zaccaria_attributes_w)
151WRITE8_MEMBER(zaccaria_state::attributes_w)
152152{
153153   if (offset & 1)
154154   {
r242626r242627
166166   m_attributesram[offset] = data;
167167}
168168
169WRITE8_MEMBER(zaccaria_state::zaccaria_flip_screen_x_w)
169WRITE8_MEMBER(zaccaria_state::flip_screen_x_w)
170170{
171171   flip_screen_x_set(data & 1);
172172}
173173
174WRITE8_MEMBER(zaccaria_state::zaccaria_flip_screen_y_w)
174WRITE8_MEMBER(zaccaria_state::flip_screen_y_w)
175175{
176176   flip_screen_y_set(data & 1);
177177}
r242626r242627
236236   }
237237}
238238
239UINT32 zaccaria_state::screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
239UINT32 zaccaria_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
240240{
241241   m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
242242


Previous 199869 Revisions Next


© 1997-2024 The MAME Team