Previous 199869 Revisions Next

r35168 Saturday 21st February, 2015 at 07:44:05 UTC by Osso
tehkanwc.c: added save state support (nw)
[src/mame/drivers]tehkanwc.c
[src/mame/includes]tehkanwc.h
[src/mame/video]tehkanwc.c

trunk/src/mame/drivers/tehkanwc.c
r243679r243680
9191#include "emu.h"
9292#include "cpu/z80/z80.h"
9393#include "sound/ay8910.h"
94#include "sound/msm5205.h"
9594#include "gridiron.lh"
9695#include "includes/tehkanwc.h"
9796
97
98void tehkanwc_state::machine_start()
99{
100   save_item(NAME(m_track0));
101   save_item(NAME(m_track1));
102   save_item(NAME(m_msm_data_offs));
103   save_item(NAME(m_toggle));
104}
105
98106WRITE8_MEMBER(tehkanwc_state::sub_cpu_halt_w)
99107{
100108   if (data)
r243679r243680
104112}
105113
106114
107READ8_MEMBER(tehkanwc_state::tehkanwc_track_0_r)
115READ8_MEMBER(tehkanwc_state::track_0_r)
108116{
109117   int joy;
110118
r243679r243680
114122   return ioport(offset ? "P1Y" : "P1X")->read() - m_track0[offset];
115123}
116124
117READ8_MEMBER(tehkanwc_state::tehkanwc_track_1_r)
125READ8_MEMBER(tehkanwc_state::track_1_r)
118126{
119127   int joy;
120128
r243679r243680
124132   return ioport(offset ? "P2Y" : "P2X")->read() - m_track1[offset];
125133}
126134
127WRITE8_MEMBER(tehkanwc_state::tehkanwc_track_0_reset_w)
135WRITE8_MEMBER(tehkanwc_state::track_0_reset_w)
128136{
129137   /* reset the trackball counters */
130138   m_track0[offset] = ioport(offset ? "P1Y" : "P1X")->read() + data;
131139}
132140
133WRITE8_MEMBER(tehkanwc_state::tehkanwc_track_1_reset_w)
141WRITE8_MEMBER(tehkanwc_state::track_1_reset_w)
134142{
135143   /* reset the trackball counters */
136144   m_track1[offset] = ioport(offset ? "P2Y" : "P2X")->read() + data;
r243679r243680
169177/* Emulate MSM sound samples with counters */
170178
171179
172READ8_MEMBER(tehkanwc_state::tehkanwc_portA_r)
180READ8_MEMBER(tehkanwc_state::portA_r)
173181{
174182   return m_msm_data_offs & 0xff;
175183}
176184
177READ8_MEMBER(tehkanwc_state::tehkanwc_portB_r)
185READ8_MEMBER(tehkanwc_state::portB_r)
178186{
179187   return (m_msm_data_offs >> 8) & 0xff;
180188}
181189
182WRITE8_MEMBER(tehkanwc_state::tehkanwc_portA_w)
190WRITE8_MEMBER(tehkanwc_state::portA_w)
183191{
184192   m_msm_data_offs = (m_msm_data_offs & 0xff00) | data;
185193}
186194
187WRITE8_MEMBER(tehkanwc_state::tehkanwc_portB_w)
195WRITE8_MEMBER(tehkanwc_state::portB_w)
188196{
189197   m_msm_data_offs = (m_msm_data_offs & 0x00ff) | (data << 8);
190198}
r243679r243680
194202   m_msm->reset_w(data ? 0 : 1);
195203}
196204
197WRITE_LINE_MEMBER(tehkanwc_state::tehkanwc_adpcm_int)
205WRITE_LINE_MEMBER(tehkanwc_state::adpcm_int)
198206{
199207   UINT8 *SAMPLES = memregion("adpcm")->base();
200208   int msm_data = SAMPLES[m_msm_data_offs & 0x7fff];
r243679r243680
218226   AM_RANGE(0x0000, 0xbfff) AM_ROM
219227   AM_RANGE(0xc000, 0xc7ff) AM_RAM
220228   AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
221   AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(tehkanwc_videoram_w) AM_SHARE("videoram")
222   AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(tehkanwc_colorram_w) AM_SHARE("colorram")
229   AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
230   AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
223231   AM_RANGE(0xd800, 0xddff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
224232   AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("share5") /* unused part of the palette RAM, I think? Gridiron uses it */
225   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(tehkanwc_videoram2_w) AM_SHARE("videoram2")
233   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
226234   AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("spriteram") /* sprites */
227   AM_RANGE(0xec00, 0xec01) AM_RAM_WRITE(tehkanwc_scroll_x_w)
228   AM_RANGE(0xec02, 0xec02) AM_RAM_WRITE(tehkanwc_scroll_y_w)
229   AM_RANGE(0xf800, 0xf801) AM_READWRITE(tehkanwc_track_0_r, tehkanwc_track_0_reset_w) /* track 0 x/y */
235   AM_RANGE(0xec00, 0xec01) AM_RAM_WRITE(scroll_x_w)
236   AM_RANGE(0xec02, 0xec02) AM_RAM_WRITE(scroll_y_w)
237   AM_RANGE(0xf800, 0xf801) AM_READWRITE(track_0_r, track_0_reset_w) /* track 0 x/y */
230238   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE(gridiron_led0_w)
231239   AM_RANGE(0xf803, 0xf803) AM_READ_PORT("P1BUT")
232240   AM_RANGE(0xf806, 0xf806) AM_READ_PORT("SYSTEM")
233   AM_RANGE(0xf810, 0xf811) AM_READWRITE(tehkanwc_track_1_r, tehkanwc_track_1_reset_w) /* track 1 x/y */
241   AM_RANGE(0xf810, 0xf811) AM_READWRITE(track_1_r, track_1_reset_w) /* track 1 x/y */
234242   AM_RANGE(0xf812, 0xf812) AM_WRITE(gridiron_led1_w)
235243   AM_RANGE(0xf813, 0xf813) AM_READ_PORT("P2BUT")
236244   AM_RANGE(0xf820, 0xf820) AM_READ(soundlatch2_byte_r) AM_WRITE(sound_command_w)  /* answer from the sound CPU */
237245   AM_RANGE(0xf840, 0xf840) AM_READ_PORT("DSW1") AM_WRITE(sub_cpu_halt_w)
238246   AM_RANGE(0xf850, 0xf850) AM_READ_PORT("DSW2") AM_WRITENOP           /* ?? writes 0x00 or 0xff */
239   AM_RANGE(0xf860, 0xf860) AM_READ(watchdog_reset_r) AM_WRITE(tehkanwc_flipscreen_x_w)
240   AM_RANGE(0xf870, 0xf870) AM_READ_PORT("DSW3") AM_WRITE(tehkanwc_flipscreen_y_w)
247   AM_RANGE(0xf860, 0xf860) AM_READ(watchdog_reset_r) AM_WRITE(flipscreen_x_w)
248   AM_RANGE(0xf870, 0xf870) AM_READ_PORT("DSW3") AM_WRITE(flipscreen_y_w)
241249ADDRESS_MAP_END
242250
243251static ADDRESS_MAP_START( sub_mem, AS_PROGRAM, 8, tehkanwc_state )
244252   AM_RANGE(0x0000, 0x7fff) AM_ROM
245253   AM_RANGE(0x8000, 0xc7ff) AM_RAM
246254   AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
247   AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(tehkanwc_videoram_w) AM_SHARE("videoram")
248   AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(tehkanwc_colorram_w) AM_SHARE("colorram")
255   AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
256   AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
249257   AM_RANGE(0xd800, 0xddff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
250258   AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("share5") /* unused part of the palette RAM, I think? Gridiron uses it */
251   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(tehkanwc_videoram2_w) AM_SHARE("videoram2")
259   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
252260   AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("spriteram") /* sprites */
253   AM_RANGE(0xec00, 0xec01) AM_RAM_WRITE(tehkanwc_scroll_x_w)
254   AM_RANGE(0xec02, 0xec02) AM_RAM_WRITE(tehkanwc_scroll_y_w)
261   AM_RANGE(0xec00, 0xec01) AM_RAM_WRITE(scroll_x_w)
262   AM_RANGE(0xec02, 0xec02) AM_RAM_WRITE(scroll_y_w)
255263   AM_RANGE(0xf860, 0xf860) AM_READ(watchdog_reset_r)
256264ADDRESS_MAP_END
257265
r243679r243680
638646   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
639647   MCFG_SCREEN_SIZE(32*8, 32*8)
640648   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
641   MCFG_SCREEN_UPDATE_DRIVER(tehkanwc_state, screen_update_tehkanwc)
649   MCFG_SCREEN_UPDATE_DRIVER(tehkanwc_state, screen_update)
642650   MCFG_SCREEN_PALETTE("palette")
643651
644652   MCFG_GFXDECODE_ADD("gfxdecode", "palette", tehkanwc)
r243679r243680
650658   MCFG_SPEAKER_STANDARD_MONO("mono")
651659
652660   MCFG_SOUND_ADD("ay1", AY8910, 1536000)
653   MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tehkanwc_state, tehkanwc_portA_w))
654   MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tehkanwc_state, tehkanwc_portB_w))
661   MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tehkanwc_state, portA_w))
662   MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tehkanwc_state, portB_w))
655663   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
656664
657665   MCFG_SOUND_ADD("ay2", AY8910, 1536000)
658   MCFG_AY8910_PORT_A_READ_CB(READ8(tehkanwc_state, tehkanwc_portA_r))
659   MCFG_AY8910_PORT_B_READ_CB(READ8(tehkanwc_state, tehkanwc_portB_r))
666   MCFG_AY8910_PORT_A_READ_CB(READ8(tehkanwc_state, portA_r))
667   MCFG_AY8910_PORT_B_READ_CB(READ8(tehkanwc_state, portB_r))
660668   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
661669
662670   MCFG_SOUND_ADD("msm", MSM5205, 384000)
663   MCFG_MSM5205_VCLK_CB(WRITELINE(tehkanwc_state, tehkanwc_adpcm_int)) /* interrupt function */
671   MCFG_MSM5205_VCLK_CB(WRITELINE(tehkanwc_state, adpcm_int)) /* interrupt function */
664672   MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B)      /* 8KHz               */
665673   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
666674MACHINE_CONFIG_END
r243679r243680
882890
883891
884892
885GAME( 1985, tehkanwc,  0,        tehkanwc, tehkanwc, driver_device, 0,        ROT0,  "Tehkan", "Tehkan World Cup (set 1)", 0 )
886GAME( 1985, tehkanwcb, tehkanwc, tehkanwc, tehkanwc, driver_device, 0,        ROT0,  "Tehkan", "Tehkan World Cup (set 2, bootleg?)", 0 )
887GAME( 1985, tehkanwcc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0,        ROT0,  "bootleg", "Tehkan World Cup (set 3, bootleg)", GAME_NOT_WORKING ) // aka 'World Cup 85', different inputs?
888GAMEL(1985, gridiron,  0,        tehkanwc, gridiron, driver_device, 0,        ROT0,  "Tehkan", "Gridiron Fight", 0, layout_gridiron )
889GAME( 1986, teedoff,   0,        tehkanwc, teedoff, tehkanwc_state,  teedoff,  ROT90, "Tecmo", "Tee'd Off (Japan)", 0 )
893GAME( 1985, tehkanwc,  0,        tehkanwc, tehkanwc, driver_device, 0,        ROT0,  "Tehkan", "Tehkan World Cup (set 1)", GAME_SUPPORTS_SAVE )
894GAME( 1985, tehkanwcb, tehkanwc, tehkanwc, tehkanwc, driver_device, 0,        ROT0,  "Tehkan", "Tehkan World Cup (set 2, bootleg?)", GAME_SUPPORTS_SAVE )
895GAME( 1985, tehkanwcc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0,        ROT0,  "bootleg", "Tehkan World Cup (set 3, bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // aka 'World Cup 85', different inputs?
896GAMEL(1985, gridiron,  0,        tehkanwc, gridiron, driver_device, 0,        ROT0,  "Tehkan", "Gridiron Fight", GAME_SUPPORTS_SAVE, layout_gridiron )
897GAME( 1986, teedoff,   0,        tehkanwc, teedoff, tehkanwc_state,  teedoff,  ROT90, "Tecmo", "Tee'd Off (Japan)", GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/tehkanwc.h
r243679r243680
1010
1111   tehkanwc_state(const machine_config &mconfig, device_type type, const char *tag)
1212      : driver_device(mconfig, type, tag),
13      m_videoram(*this, "videoram"),
14      m_colorram(*this, "colorram"),
15      m_videoram2(*this, "videoram2"),
16      m_spriteram(*this, "spriteram"),
1713      m_maincpu(*this, "maincpu"),
1814      m_audiocpu(*this, "audiocpu"),
1915      m_subcpu(*this, "sub"),
2016      m_msm(*this, "msm"),
2117      m_gfxdecode(*this, "gfxdecode"),
22      m_palette(*this, "palette") { }
18      m_palette(*this, "palette"),
19      m_videoram(*this, "videoram"),
20      m_colorram(*this, "colorram"),
21      m_videoram2(*this, "videoram2"),
22      m_spriteram(*this, "spriteram") { }
2323
24   required_device<cpu_device> m_maincpu;
25   required_device<cpu_device> m_audiocpu;
26   required_device<cpu_device> m_subcpu;
27   required_device<msm5205_device> m_msm;
28   required_device<gfxdecode_device> m_gfxdecode;
29   required_device<palette_device> m_palette;
30
31   required_shared_ptr<UINT8> m_videoram;
32   required_shared_ptr<UINT8> m_colorram;
33   required_shared_ptr<UINT8> m_videoram2;
34   required_shared_ptr<UINT8> m_spriteram;
35   
2436   int m_track0[2];
2537   int m_track1[2];
2638   int m_msm_data_offs;
2739   int m_toggle;
28   required_shared_ptr<UINT8> m_videoram;
29   required_shared_ptr<UINT8> m_colorram;
30   required_shared_ptr<UINT8> m_videoram2;
3140   UINT8 m_scroll_x[2];
3241   UINT8 m_led0;
3342   UINT8 m_led1;
3443   tilemap_t *m_bg_tilemap;
3544   tilemap_t *m_fg_tilemap;
36   required_shared_ptr<UINT8> m_spriteram;
45   
3746   DECLARE_WRITE8_MEMBER(sub_cpu_halt_w);
38   DECLARE_READ8_MEMBER(tehkanwc_track_0_r);
39   DECLARE_READ8_MEMBER(tehkanwc_track_1_r);
40   DECLARE_WRITE8_MEMBER(tehkanwc_track_0_reset_w);
41   DECLARE_WRITE8_MEMBER(tehkanwc_track_1_reset_w);
47   DECLARE_READ8_MEMBER(track_0_r);
48   DECLARE_READ8_MEMBER(track_1_r);
49   DECLARE_WRITE8_MEMBER(track_0_reset_w);
50   DECLARE_WRITE8_MEMBER(track_1_reset_w);
4251   DECLARE_WRITE8_MEMBER(sound_command_w);
4352   DECLARE_WRITE8_MEMBER(sound_answer_w);
44   DECLARE_WRITE8_MEMBER(tehkanwc_videoram_w);
45   DECLARE_WRITE8_MEMBER(tehkanwc_colorram_w);
46   DECLARE_WRITE8_MEMBER(tehkanwc_videoram2_w);
47   DECLARE_WRITE8_MEMBER(tehkanwc_scroll_x_w);
48   DECLARE_WRITE8_MEMBER(tehkanwc_scroll_y_w);
49   DECLARE_WRITE8_MEMBER(tehkanwc_flipscreen_x_w);
50   DECLARE_WRITE8_MEMBER(tehkanwc_flipscreen_y_w);
53   DECLARE_WRITE8_MEMBER(videoram_w);
54   DECLARE_WRITE8_MEMBER(colorram_w);
55   DECLARE_WRITE8_MEMBER(videoram2_w);
56   DECLARE_WRITE8_MEMBER(scroll_x_w);
57   DECLARE_WRITE8_MEMBER(scroll_y_w);
58   DECLARE_WRITE8_MEMBER(flipscreen_x_w);
59   DECLARE_WRITE8_MEMBER(flipscreen_y_w);
5160   DECLARE_WRITE8_MEMBER(gridiron_led0_w);
5261   DECLARE_WRITE8_MEMBER(gridiron_led1_w);
53   DECLARE_READ8_MEMBER(tehkanwc_portA_r);
54   DECLARE_READ8_MEMBER(tehkanwc_portB_r);
55   DECLARE_WRITE8_MEMBER(tehkanwc_portA_w);
56   DECLARE_WRITE8_MEMBER(tehkanwc_portB_w);
62   DECLARE_READ8_MEMBER(portA_r);
63   DECLARE_READ8_MEMBER(portB_r);
64   DECLARE_WRITE8_MEMBER(portA_w);
65   DECLARE_WRITE8_MEMBER(portB_w);
5766   DECLARE_WRITE8_MEMBER(msm_reset_w);
58   DECLARE_DRIVER_INIT(teedoff);
67   DECLARE_WRITE_LINE_MEMBER(adpcm_int);
68
5969   TILE_GET_INFO_MEMBER(get_bg_tile_info);
6070   TILE_GET_INFO_MEMBER(get_fg_tile_info);
71
72   DECLARE_DRIVER_INIT(teedoff);
73   virtual void machine_start();
6174   virtual void video_start();
62   UINT32 screen_update_tehkanwc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
63   void gridiron_draw_led(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 led,int player);
75   
76   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
77   void draw_led(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 led,int player);
6478   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
65   DECLARE_WRITE_LINE_MEMBER(tehkanwc_adpcm_int);
66   required_device<cpu_device> m_maincpu;
67   required_device<cpu_device> m_audiocpu;
68   required_device<cpu_device> m_subcpu;
69   required_device<msm5205_device> m_msm;
70   required_device<gfxdecode_device> m_gfxdecode;
71   required_device<palette_device> m_palette;
79
7280protected:
7381   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
7482};
trunk/src/mame/video/tehkanwc.c
r243679r243680
1515#include "includes/tehkanwc.h"
1616
1717
18WRITE8_MEMBER(tehkanwc_state::tehkanwc_videoram_w)
18WRITE8_MEMBER(tehkanwc_state::videoram_w)
1919{
2020   m_videoram[offset] = data;
2121   m_fg_tilemap->mark_tile_dirty(offset);
2222}
2323
24WRITE8_MEMBER(tehkanwc_state::tehkanwc_colorram_w)
24WRITE8_MEMBER(tehkanwc_state::colorram_w)
2525{
2626   m_colorram[offset] = data;
2727   m_fg_tilemap->mark_tile_dirty(offset);
2828}
2929
30WRITE8_MEMBER(tehkanwc_state::tehkanwc_videoram2_w)
30WRITE8_MEMBER(tehkanwc_state::videoram2_w)
3131{
3232   m_videoram2[offset] = data;
3333   m_bg_tilemap->mark_tile_dirty(offset / 2);
3434}
3535
36WRITE8_MEMBER(tehkanwc_state::tehkanwc_scroll_x_w)
36WRITE8_MEMBER(tehkanwc_state::scroll_x_w)
3737{
3838   m_scroll_x[offset] = data;
3939}
4040
41WRITE8_MEMBER(tehkanwc_state::tehkanwc_scroll_y_w)
41WRITE8_MEMBER(tehkanwc_state::scroll_y_w)
4242{
4343   m_bg_tilemap->set_scrolly(0, data);
4444}
4545
46WRITE8_MEMBER(tehkanwc_state::tehkanwc_flipscreen_x_w)
46WRITE8_MEMBER(tehkanwc_state::flipscreen_x_w)
4747{
4848   flip_screen_x_set(data & 0x40);
4949}
5050
51WRITE8_MEMBER(tehkanwc_state::tehkanwc_flipscreen_y_w)
51WRITE8_MEMBER(tehkanwc_state::flipscreen_y_w)
5252{
5353   flip_screen_y_set(data & 0x40);
5454}
r243679r243680
9494         8, 8, 32, 32);
9595
9696   m_fg_tilemap->set_transparent_pen(0);
97   
98   save_item(NAME(m_scroll_x));
99   save_item(NAME(m_led0));
100   save_item(NAME(m_led1));
97101}
98102
99103/*
r243679r243680
113117   bit 7 = enable (0 = display off)
114118 */
115119
116void tehkanwc_state::gridiron_draw_led(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 led,int player)
120void tehkanwc_state::draw_led(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 led,int player)
117121{
118122   if (led&0x80)
119123      output_set_digit_value(player, led&0x7f);
r243679r243680
123127
124128void tehkanwc_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
125129{
126   UINT8 *spriteram = m_spriteram;
127   int offs;
128
129   for (offs = 0;offs < m_spriteram.bytes();offs += 4)
130   for (int offs = 0;offs < m_spriteram.bytes();offs += 4)
130131   {
131      int attr = spriteram[offs + 1];
132      int code = spriteram[offs] + ((attr & 0x08) << 5);
132      int attr = m_spriteram[offs + 1];
133      int code = m_spriteram[offs] + ((attr & 0x08) << 5);
133134      int color = attr & 0x07;
134135      int flipx = attr & 0x40;
135136      int flipy = attr & 0x80;
136      int sx = spriteram[offs + 2] + ((attr & 0x20) << 3) - 128;
137      int sy = spriteram[offs + 3];
137      int sx = m_spriteram[offs + 2] + ((attr & 0x20) << 3) - 128;
138      int sy = m_spriteram[offs + 3];
138139
139140      if (flip_screen_x())
140141      {
r243679r243680
153154   }
154155}
155156
156UINT32 tehkanwc_state::screen_update_tehkanwc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
157UINT32 tehkanwc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
157158{
158159   m_bg_tilemap->set_scrollx(0, m_scroll_x[0] + 256 * m_scroll_x[1]);
159160   m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
160161   m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
161162   draw_sprites(bitmap, cliprect);
162163   m_fg_tilemap->draw(screen, bitmap, cliprect, 1, 0);
163   gridiron_draw_led(bitmap, cliprect, m_led0, 0);
164   gridiron_draw_led(bitmap, cliprect, m_led1, 1);
164   draw_led(bitmap, cliprect, m_led0, 0);
165   draw_led(bitmap, cliprect, m_led1, 1);
165166   return 0;
166167}


Previous 199869 Revisions Next


© 1997-2024 The MAME Team