Previous 199869 Revisions Next

r35306 Thursday 26th February, 2015 at 17:43:32 UTC by Osso
tbowl.c: added save state support (nw)
[src/mame/drivers]tbowl.c
[src/mame/includes]tbowl.h
[src/mame/video]tbowl.c

trunk/src/mame/drivers/tbowl.c
r243817r243818
2020#include "includes/tbowl.h"
2121
2222
23WRITE8_MEMBER(tbowl_state::tbowl_coin_counter_w)
23WRITE8_MEMBER(tbowl_state::coincounter_w)
2424{
2525   coin_counter_w(machine(), 0, data & 1);
2626}
r243817r243818
3131
3232***/
3333
34WRITE8_MEMBER(tbowl_state::tbowlb_bankswitch_w)
34WRITE8_MEMBER(tbowl_state::boardb_bankswitch_w)
3535{
3636   membank("mainbank")->set_entry(data >> 3);
3737}
3838
39WRITE8_MEMBER(tbowl_state::tbowlc_bankswitch_w)
39WRITE8_MEMBER(tbowl_state::boardc_bankswitch_w)
4040{
4141   membank("subbank")->set_entry(data >> 3);
4242}
r243817r243818
4545
4646***/
4747
48WRITE8_MEMBER(tbowl_state::tbowl_sound_command_w)
48WRITE8_MEMBER(tbowl_state::sound_command_w)
4949{
5050   soundlatch_byte_w(space, offset, data);
5151   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
r243817r243818
6666static ADDRESS_MAP_START( 6206B_map, AS_PROGRAM, 8, tbowl_state )
6767   AM_RANGE(0x0000, 0x7fff) AM_ROM
6868   AM_RANGE(0x8000, 0x9fff) AM_RAM
69   AM_RANGE(0xa000, 0xbfff) AM_RAM_WRITE(tbowl_bg2videoram_w) AM_SHARE("bg2videoram")
70   AM_RANGE(0xc000, 0xdfff) AM_RAM_WRITE(tbowl_bgvideoram_w) AM_SHARE("bgvideoram")
71   AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(tbowl_txvideoram_w) AM_SHARE("txvideoram")
69   AM_RANGE(0xa000, 0xbfff) AM_RAM_WRITE(bg2videoram_w) AM_SHARE("bg2videoram")
70   AM_RANGE(0xc000, 0xdfff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram")
71   AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
7272//  AM_RANGE(0xf000, 0xf000) AM_WRITE(unknown_write) * written during start-up, not again */
7373   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("mainbank")
7474   AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("shared_ram") /* check */
75   AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("P1") AM_WRITE(tbowlb_bankswitch_w)
75   AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("P1") AM_WRITE(boardb_bankswitch_w)
7676   AM_RANGE(0xfc01, 0xfc01) AM_READ_PORT("P2")
7777//  AM_RANGE(0xfc01, 0xfc01) AM_WRITE(unknown_write) /* written during start-up, not again */
7878   AM_RANGE(0xfc02, 0xfc02) AM_READ_PORT("P3")
7979//  AM_RANGE(0xfc02, 0xfc02) AM_WRITE(unknown_write) /* written during start-up, not again */
80   AM_RANGE(0xfc03, 0xfc03) AM_READ_PORT("P4") AM_WRITE(tbowl_coin_counter_w)
80   AM_RANGE(0xfc03, 0xfc03) AM_READ_PORT("P4") AM_WRITE(coincounter_w)
8181//  AM_RANGE(0xfc05, 0xfc05) AM_WRITE(unknown_write) /* no idea */
8282//  AM_RANGE(0xfc06, 0xfc06) AM_READ(dummy_r)        /* Read During NMI */
8383   AM_RANGE(0xfc07, 0xfc07) AM_READ_PORT("SYSTEM")
r243817r243818
8686   AM_RANGE(0xfc09, 0xfc09) AM_READ_PORT("DSW2")
8787   AM_RANGE(0xfc0a, 0xfc0a) AM_READ_PORT("DSW3")
8888//  AM_RANGE(0xfc0a, 0xfc0a) AM_WRITE(unknown_write) /* hardly used .. */
89   AM_RANGE(0xfc0d, 0xfc0d) AM_WRITE(tbowl_sound_command_w) /* not sure, used quite a bit */
90   AM_RANGE(0xfc10, 0xfc10) AM_WRITE(tbowl_bg2xscroll_lo)
91   AM_RANGE(0xfc11, 0xfc11) AM_WRITE(tbowl_bg2xscroll_hi)
92   AM_RANGE(0xfc12, 0xfc12) AM_WRITE(tbowl_bg2yscroll_lo)
93   AM_RANGE(0xfc13, 0xfc13) AM_WRITE(tbowl_bg2yscroll_hi)
94   AM_RANGE(0xfc14, 0xfc14) AM_WRITE(tbowl_bgxscroll_lo)
95   AM_RANGE(0xfc15, 0xfc15) AM_WRITE(tbowl_bgxscroll_hi)
96   AM_RANGE(0xfc16, 0xfc16) AM_WRITE(tbowl_bgyscroll_lo)
97   AM_RANGE(0xfc17, 0xfc17) AM_WRITE(tbowl_bgyscroll_hi)
89   AM_RANGE(0xfc0d, 0xfc0d) AM_WRITE(sound_command_w) /* not sure, used quite a bit */
90   AM_RANGE(0xfc10, 0xfc10) AM_WRITE(bg2xscroll_lo)
91   AM_RANGE(0xfc11, 0xfc11) AM_WRITE(bg2xscroll_hi)
92   AM_RANGE(0xfc12, 0xfc12) AM_WRITE(bg2yscroll_lo)
93   AM_RANGE(0xfc13, 0xfc13) AM_WRITE(bg2yscroll_hi)
94   AM_RANGE(0xfc14, 0xfc14) AM_WRITE(bgxscroll_lo)
95   AM_RANGE(0xfc15, 0xfc15) AM_WRITE(bgxscroll_hi)
96   AM_RANGE(0xfc16, 0xfc16) AM_WRITE(bgyscroll_lo)
97   AM_RANGE(0xfc17, 0xfc17) AM_WRITE(bgyscroll_hi)
9898ADDRESS_MAP_END
9999
100100/* Board C */
101WRITE8_MEMBER(tbowl_state::tbowl_trigger_nmi)
101WRITE8_MEMBER(tbowl_state::trigger_nmi)
102102{
103103   /* trigger NMI on 6206B's Cpu? (guess but seems to work..) */
104104   m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
r243817r243818
112112   AM_RANGE(0xe000, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // 2x palettes, one for each monitor?
113113   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("subbank")
114114   AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("shared_ram")
115   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(tbowlc_bankswitch_w)
115   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(boardc_bankswitch_w)
116116   AM_RANGE(0xfc01, 0xfc01) AM_WRITENOP /* ? */
117   AM_RANGE(0xfc02, 0xfc02) AM_WRITE(tbowl_trigger_nmi) /* ? */
117   AM_RANGE(0xfc02, 0xfc02) AM_WRITE(trigger_nmi) /* ? */
118118   AM_RANGE(0xfc03, 0xfc03) AM_WRITENOP /* ? */
119119   AM_RANGE(0xfc06, 0xfc06) AM_WRITENOP /* ? */
120120ADDRESS_MAP_END
121121
122122/* Board A */
123123
124WRITE8_MEMBER(tbowl_state::tbowl_adpcm_start_w)
124WRITE8_MEMBER(tbowl_state::adpcm_start_w)
125125{
126126   msm5205_device *adpcm = (offset & 1) ? m_msm2 : m_msm1;
127127   m_adpcm_pos[offset & 1] = data << 8;
128128   adpcm->reset_w(0);
129129}
130130
131WRITE8_MEMBER(tbowl_state::tbowl_adpcm_end_w)
131WRITE8_MEMBER(tbowl_state::adpcm_end_w)
132132{
133133   m_adpcm_end[offset & 1] = (data + 1) << 8;
134134}
135135
136WRITE8_MEMBER(tbowl_state::tbowl_adpcm_vol_w)
136WRITE8_MEMBER(tbowl_state::adpcm_vol_w)
137137{
138138   msm5205_device *adpcm = (offset & 1) ? m_msm2 : m_msm1;
139139   adpcm->set_volume((data & 0x7f) * 100 / 0x7f);
140140}
141141
142void tbowl_state::tbowl_adpcm_int( msm5205_device *device, int num )
142void tbowl_state::adpcm_int( msm5205_device *device, int num )
143143{
144144   if (m_adpcm_pos[num] >= m_adpcm_end[num] ||
145145            m_adpcm_pos[num] >= memregion("adpcm")->bytes()/2)
r243817r243818
158158   }
159159}
160160
161WRITE_LINE_MEMBER(tbowl_state::tbowl_adpcm_int_1)
161WRITE_LINE_MEMBER(tbowl_state::adpcm_int_1)
162162{
163   tbowl_adpcm_int(m_msm1, 0);
163   adpcm_int(m_msm1, 0);
164164}
165165
166WRITE_LINE_MEMBER(tbowl_state::tbowl_adpcm_int_2)
166WRITE_LINE_MEMBER(tbowl_state::adpcm_int_2)
167167{
168   tbowl_adpcm_int(m_msm2, 1);
168   adpcm_int(m_msm2, 1);
169169}
170170
171171static ADDRESS_MAP_START( 6206A_map, AS_PROGRAM, 8, tbowl_state )
r243817r243818
173173   AM_RANGE(0xc000, 0xc7ff) AM_RAM
174174   AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("ym1", ym3812_device, write)
175175   AM_RANGE(0xd800, 0xd801) AM_DEVWRITE("ym2", ym3812_device, write)
176   AM_RANGE(0xe000, 0xe001) AM_WRITE(tbowl_adpcm_end_w)
177   AM_RANGE(0xe002, 0xe003) AM_WRITE(tbowl_adpcm_start_w)
178   AM_RANGE(0xe004, 0xe005) AM_WRITE(tbowl_adpcm_vol_w)
176   AM_RANGE(0xe000, 0xe001) AM_WRITE(adpcm_end_w)
177   AM_RANGE(0xe002, 0xe003) AM_WRITE(adpcm_start_w)
178   AM_RANGE(0xe004, 0xe005) AM_WRITE(adpcm_vol_w)
179179   AM_RANGE(0xe006, 0xe006) AM_WRITENOP
180180   AM_RANGE(0xe007, 0xe007) AM_WRITENOP    /* NMI acknowledge */
181181   AM_RANGE(0xe010, 0xe010) AM_READ(soundlatch_byte_r)
r243817r243818
418418{
419419   membank("mainbank")->configure_entries(0, 32, memregion("maincpu")->base() + 0x10000, 0x800);
420420   membank("subbank")->configure_entries(0, 32, memregion("sub")->base() + 0x10000, 0x800);
421   
422   save_item(NAME(m_adpcm_pos));
423   save_item(NAME(m_adpcm_end));
424   save_item(NAME(m_adpcm_data));
425
421426}
422427
423428void tbowl_state::machine_reset()
r243817r243818
459464   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
460465   MCFG_SCREEN_SIZE(32*8, 32*8)
461466   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
462   MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_tbowl_left)
467   MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_left)
463468   MCFG_SCREEN_PALETTE("palette")
464469
465470   MCFG_SCREEN_ADD("rscreen", RASTER)
r243817r243818
467472   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
468473   MCFG_SCREEN_SIZE(32*8, 32*8)
469474   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
470   MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_tbowl_right)
475   MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_right)
471476   MCFG_SCREEN_PALETTE("palette")
472477
473478
r243817r243818
483488
484489   /* something for the samples? */
485490   MCFG_SOUND_ADD("msm1", MSM5205, 384000)
486   MCFG_MSM5205_VCLK_CB(WRITELINE(tbowl_state, tbowl_adpcm_int_1))    /* interrupt function */
491   MCFG_MSM5205_VCLK_CB(WRITELINE(tbowl_state, adpcm_int_1))    /* interrupt function */
487492   MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B)      /* 8KHz               */
488493   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
489494
490495   MCFG_SOUND_ADD("msm2", MSM5205, 384000)
491   MCFG_MSM5205_VCLK_CB(WRITELINE(tbowl_state, tbowl_adpcm_int_2))    /* interrupt function */
496   MCFG_MSM5205_VCLK_CB(WRITELINE(tbowl_state, adpcm_int_2))    /* interrupt function */
492497   MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B)      /* 8KHz               */
493498   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
494499MACHINE_CONFIG_END
r243817r243818
697702   ROM_LOAD( "6206a.2",    0x10000, 0x10000, CRC(1e9e5936) SHA1(60370d1de28b1c5ffeff7843702aaddb19ff1f58) )
698703ROM_END
699704
700GAME( 1987, tbowl,    0,        tbowl,    tbowl, driver_device,    0, ROT0,  "Tecmo", "Tecmo Bowl (World)", 0 )
701GAME( 1987, tbowlp,   tbowl,    tbowl,    tbowl, driver_device,    0, ROT0,  "Tecmo", "Tecmo Bowl (World, prototype?)", 0 ) // or early version, handwritten labels
702GAME( 1987, tbowlj,   tbowl,    tbowl,    tbowlj, driver_device,   0, ROT0,  "Tecmo", "Tecmo Bowl (Japan)", 0 )
705GAME( 1987, tbowl,    0,        tbowl,    tbowl, driver_device,    0, ROT0,  "Tecmo", "Tecmo Bowl (World)", GAME_SUPPORTS_SAVE )
706GAME( 1987, tbowlp,   tbowl,    tbowl,    tbowl, driver_device,    0, ROT0,  "Tecmo", "Tecmo Bowl (World, prototype?)", GAME_SUPPORTS_SAVE ) // or early version, handwritten labels
707GAME( 1987, tbowlj,   tbowl,    tbowl,    tbowlj, driver_device,   0, ROT0,  "Tecmo", "Tecmo Bowl (Japan)", GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/tbowl.h
r243817r243818
66public:
77   tbowl_state(const machine_config &mconfig, device_type type, const char *tag)
88      : driver_device(mconfig, type, tag),
9      m_txvideoram(*this, "txvideoram"),
10      m_bgvideoram(*this, "bgvideoram"),
11      m_bg2videoram(*this, "bg2videoram"),
12      m_spriteram(*this, "spriteram"),
139      m_maincpu(*this, "maincpu"),
1410      m_audiocpu(*this, "audiocpu"),
1511      m_msm1(*this, "msm1"),
1612      m_msm2(*this, "msm2"),
1713      m_gfxdecode(*this, "gfxdecode"),
1814      m_palette(*this, "palette"),
19      m_sprgen(*this, "spritegen")
15      m_sprgen(*this, "spritegen"),
16      m_txvideoram(*this, "txvideoram"),
17      m_bgvideoram(*this, "bgvideoram"),
18      m_bg2videoram(*this, "bg2videoram"),
19      m_spriteram(*this, "spriteram")
2020      { }
2121
22   int m_adpcm_pos[2];
23   int m_adpcm_end[2];
24   int m_adpcm_data[2];
22   required_device<cpu_device> m_maincpu;
23   required_device<cpu_device> m_audiocpu;
24   required_device<msm5205_device> m_msm1;
25   required_device<msm5205_device> m_msm2;
26   required_device<gfxdecode_device> m_gfxdecode;
27   required_device<palette_device> m_palette;
28   required_device<tecmo_spr_device> m_sprgen;
29
2530   required_shared_ptr<UINT8> m_txvideoram;
2631   required_shared_ptr<UINT8> m_bgvideoram;
2732   required_shared_ptr<UINT8> m_bg2videoram;
2833   required_shared_ptr<UINT8> m_spriteram;
34
2935   tilemap_t *m_tx_tilemap;
3036   tilemap_t *m_bg_tilemap;
3137   tilemap_t *m_bg2_tilemap;
r243817r243818
3339   UINT16 m_yscroll;
3440   UINT16 m_bg2xscroll;
3541   UINT16 m_bg2yscroll;
36   DECLARE_WRITE8_MEMBER(tbowl_coin_counter_w);
37   DECLARE_WRITE8_MEMBER(tbowlb_bankswitch_w);
38   DECLARE_WRITE8_MEMBER(tbowlc_bankswitch_w);
39   DECLARE_WRITE8_MEMBER(tbowl_sound_command_w);
40   DECLARE_WRITE8_MEMBER(tbowl_trigger_nmi);
41   DECLARE_WRITE8_MEMBER(tbowl_adpcm_start_w);
42   DECLARE_WRITE8_MEMBER(tbowl_adpcm_end_w);
43   DECLARE_WRITE8_MEMBER(tbowl_adpcm_vol_w);
44   DECLARE_WRITE8_MEMBER(tbowl_txvideoram_w);
45   DECLARE_WRITE8_MEMBER(tbowl_bg2videoram_w);
46   DECLARE_WRITE8_MEMBER(tbowl_bgxscroll_lo);
47   DECLARE_WRITE8_MEMBER(tbowl_bgxscroll_hi);
48   DECLARE_WRITE8_MEMBER(tbowl_bgyscroll_lo);
49   DECLARE_WRITE8_MEMBER(tbowl_bgyscroll_hi);
50   DECLARE_WRITE8_MEMBER(tbowl_bgvideoram_w);
51   DECLARE_WRITE8_MEMBER(tbowl_bg2xscroll_lo);
52   DECLARE_WRITE8_MEMBER(tbowl_bg2xscroll_hi);
53   DECLARE_WRITE8_MEMBER(tbowl_bg2yscroll_lo);
54   DECLARE_WRITE8_MEMBER(tbowl_bg2yscroll_hi);
42   int m_adpcm_pos[2];
43   int m_adpcm_end[2];
44   int m_adpcm_data[2];
45
46   DECLARE_WRITE8_MEMBER(coincounter_w);
47   DECLARE_WRITE8_MEMBER(boardb_bankswitch_w);
48   DECLARE_WRITE8_MEMBER(boardc_bankswitch_w);
49   DECLARE_WRITE8_MEMBER(sound_command_w);
50   DECLARE_WRITE8_MEMBER(trigger_nmi);
51   DECLARE_WRITE8_MEMBER(adpcm_start_w);
52   DECLARE_WRITE8_MEMBER(adpcm_end_w);
53   DECLARE_WRITE8_MEMBER(adpcm_vol_w);
54   DECLARE_WRITE8_MEMBER(txvideoram_w);
55   DECLARE_WRITE8_MEMBER(bg2videoram_w);
56   DECLARE_WRITE8_MEMBER(bgxscroll_lo);
57   DECLARE_WRITE8_MEMBER(bgxscroll_hi);
58   DECLARE_WRITE8_MEMBER(bgyscroll_lo);
59   DECLARE_WRITE8_MEMBER(bgyscroll_hi);
60   DECLARE_WRITE8_MEMBER(bgvideoram_w);
61   DECLARE_WRITE8_MEMBER(bg2xscroll_lo);
62   DECLARE_WRITE8_MEMBER(bg2xscroll_hi);
63   DECLARE_WRITE8_MEMBER(bg2yscroll_lo);
64   DECLARE_WRITE8_MEMBER(bg2yscroll_hi);
65   
5566   TILE_GET_INFO_MEMBER(get_tx_tile_info);
5667   TILE_GET_INFO_MEMBER(get_bg_tile_info);
5768   TILE_GET_INFO_MEMBER(get_bg2_tile_info);
69   
5870   virtual void machine_start();
5971   virtual void machine_reset();
6072   virtual void video_start();
61   UINT32 screen_update_tbowl_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
62   UINT32 screen_update_tbowl_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
63   void tbowl_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect, int xscroll, UINT8* spriteram);
64   void tbowl_adpcm_int(msm5205_device *device, int chip);
65   DECLARE_WRITE_LINE_MEMBER(tbowl_adpcm_int_1);
66   DECLARE_WRITE_LINE_MEMBER(tbowl_adpcm_int_2);
67   required_device<cpu_device> m_maincpu;
68   required_device<cpu_device> m_audiocpu;
69   required_device<msm5205_device> m_msm1;
70   required_device<msm5205_device> m_msm2;
71   required_device<gfxdecode_device> m_gfxdecode;
72   required_device<palette_device> m_palette;
73
74   required_device<tecmo_spr_device> m_sprgen;
73   
74   UINT32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75   UINT32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
76   
77   void adpcm_int(msm5205_device *device, int chip);
78   DECLARE_WRITE_LINE_MEMBER(adpcm_int_1);
79   DECLARE_WRITE_LINE_MEMBER(adpcm_int_2);
7580};
trunk/src/mame/video/tbowl.c
r243817r243818
1919   SET_TILE_INFO_MEMBER(0,tileno,col,0);
2020}
2121
22WRITE8_MEMBER(tbowl_state::tbowl_txvideoram_w)
22WRITE8_MEMBER(tbowl_state::txvideoram_w)
2323{
2424   m_txvideoram[offset] = data;
2525   m_tx_tilemap->mark_tile_dirty(offset & 0x7ff);
r243817r243818
3838   SET_TILE_INFO_MEMBER(1,tileno,col,0);
3939}
4040
41WRITE8_MEMBER(tbowl_state::tbowl_bg2videoram_w)
41WRITE8_MEMBER(tbowl_state::bg2videoram_w)
4242{
4343   m_bg2videoram[offset] = data;
4444   m_bg2_tilemap->mark_tile_dirty(offset & 0xfff);
4545}
4646
47WRITE8_MEMBER(tbowl_state::tbowl_bgxscroll_lo)
47WRITE8_MEMBER(tbowl_state::bgxscroll_lo)
4848{
4949   m_xscroll = (m_xscroll & 0xff00) | data;
5050}
5151
52WRITE8_MEMBER(tbowl_state::tbowl_bgxscroll_hi)
52WRITE8_MEMBER(tbowl_state::bgxscroll_hi)
5353{
5454   m_xscroll = (m_xscroll & 0x00ff) | (data << 8);
5555}
5656
57WRITE8_MEMBER(tbowl_state::tbowl_bgyscroll_lo)
57WRITE8_MEMBER(tbowl_state::bgyscroll_lo)
5858{
5959   m_yscroll = (m_yscroll & 0xff00) | data;
6060}
6161
62WRITE8_MEMBER(tbowl_state::tbowl_bgyscroll_hi)
62WRITE8_MEMBER(tbowl_state::bgyscroll_hi)
6363{
6464   m_yscroll = (m_yscroll & 0x00ff) | (data << 8);
6565}
r243817r243818
7878   SET_TILE_INFO_MEMBER(2,tileno,col,0);
7979}
8080
81WRITE8_MEMBER(tbowl_state::tbowl_bgvideoram_w)
81WRITE8_MEMBER(tbowl_state::bgvideoram_w)
8282{
8383   m_bgvideoram[offset] = data;
8484   m_bg_tilemap->mark_tile_dirty(offset & 0xfff);
8585}
8686
87WRITE8_MEMBER(tbowl_state::tbowl_bg2xscroll_lo)
87WRITE8_MEMBER(tbowl_state::bg2xscroll_lo)
8888{
8989   m_bg2xscroll = (m_bg2xscroll & 0xff00) | data;
9090}
9191
92WRITE8_MEMBER(tbowl_state::tbowl_bg2xscroll_hi)
92WRITE8_MEMBER(tbowl_state::bg2xscroll_hi)
9393{
9494   m_bg2xscroll = (m_bg2xscroll & 0x00ff) | (data << 8);
9595}
9696
97WRITE8_MEMBER(tbowl_state::tbowl_bg2yscroll_lo)
97WRITE8_MEMBER(tbowl_state::bg2yscroll_lo)
9898{
9999   m_bg2yscroll = (m_bg2yscroll & 0xff00) | data;
100100}
101101
102WRITE8_MEMBER(tbowl_state::tbowl_bg2yscroll_hi)
102WRITE8_MEMBER(tbowl_state::bg2yscroll_hi)
103103{
104104   m_bg2yscroll = (m_bg2yscroll & 0x00ff) | (data << 8);
105105}
r243817r243818
116116   m_tx_tilemap->set_transparent_pen(0);
117117   m_bg_tilemap->set_transparent_pen(0);
118118   m_bg2_tilemap->set_transparent_pen(0);
119   
120   save_item(NAME(m_xscroll));
121   save_item(NAME(m_yscroll));
122   save_item(NAME(m_bg2xscroll));
123   save_item(NAME(m_bg2yscroll));
119124}
120125
121126
122127
123UINT32 tbowl_state::screen_update_tbowl_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128UINT32 tbowl_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
124129{
125130   m_bg_tilemap->set_scrollx(0, m_xscroll );
126131   m_bg_tilemap->set_scrolly(0, m_yscroll );
r243817r243818
138143   return 0;
139144}
140145
141UINT32 tbowl_state::screen_update_tbowl_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146UINT32 tbowl_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
142147{
143148   m_bg_tilemap->set_scrollx(0, m_xscroll+32*8 );
144149   m_bg_tilemap->set_scrolly(0, m_yscroll );


Previous 199869 Revisions Next


© 1997-2024 The MAME Team