mirror of
https://github.com/holub/mame
synced 2025-06-21 19:56:53 +03:00
new working clone
--------------------------- Operation Thunderbolt (Japan, SC) [ShouTime, The Dumping Union]
This commit is contained in:
parent
c2dfe876ce
commit
7b2e155728
@ -114,7 +114,7 @@ Notes:
|
||||
|
||||
Operation Thunderbolt operates on hardware very similar to the Taito Z
|
||||
system, in particular the game Spacegun. The lightgun hardware in these
|
||||
two (as well as the eerom and calibration process) looks identical.
|
||||
two (as well as the eeprom and calibration process) looks identical.
|
||||
|
||||
The game has 4 separate layers of graphics - one 64x64 tiled scrolling
|
||||
background plane of 8x8 tiles, a similar foreground plane, a sprite plane,
|
||||
@ -280,7 +280,7 @@ TODO:
|
||||
made by 16x8 tiles loses precision due to limitations of drawgfxzoom().
|
||||
|
||||
- Schematics show a OBPRI output to control sprite priority. This doesn't seem
|
||||
to be used however, and isn't hooked up. See othunder_TC0220IOC_w().
|
||||
to be used however, and isn't hooked up. See tc0220ioc_w().
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -302,7 +302,7 @@ TODO:
|
||||
INTERRUPTS
|
||||
***********************************************************/
|
||||
|
||||
void othunder_state::update_irq( )
|
||||
void othunder_state::update_irq()
|
||||
{
|
||||
m_maincpu->set_input_line(6, m_ad_irq ? ASSERT_LINE : CLEAR_LINE);
|
||||
m_maincpu->set_input_line(5, m_vblank_irq ? ASSERT_LINE : CLEAR_LINE);
|
||||
@ -352,7 +352,7 @@ The eeprom unlock command is different, and the write/clock/reset
|
||||
bits are different.
|
||||
******************************************************************/
|
||||
|
||||
WRITE16_MEMBER(othunder_state::othunder_tc0220ioc_w)
|
||||
WRITE16_MEMBER(othunder_state::tc0220ioc_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
@ -392,7 +392,7 @@ WRITE16_MEMBER(othunder_state::othunder_tc0220ioc_w)
|
||||
GAME INPUTS
|
||||
**********************************************************/
|
||||
|
||||
READ16_MEMBER(othunder_state::othunder_tc0220ioc_r)
|
||||
READ16_MEMBER(othunder_state::tc0220ioc_r)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
@ -410,13 +410,13 @@ READ16_MEMBER(othunder_state::othunder_tc0220ioc_r)
|
||||
#define P2Y_PORT_TAG "P2Y"
|
||||
#define ROTARY_PORT_TAG "ROTARY"
|
||||
|
||||
READ16_MEMBER(othunder_state::othunder_lightgun_r)
|
||||
READ16_MEMBER(othunder_state::lightgun_r)
|
||||
{
|
||||
static const char *const portname[4] = { P1X_PORT_TAG, P1Y_PORT_TAG, P2X_PORT_TAG, P2Y_PORT_TAG };
|
||||
return ioport(portname[offset])->read();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(othunder_state::othunder_lightgun_w)
|
||||
WRITE16_MEMBER(othunder_state::lightgun_w)
|
||||
{
|
||||
/* A write starts the A/D conversion. An interrupt will be triggered when
|
||||
the conversion is complete.
|
||||
@ -436,7 +436,7 @@ WRITE8_MEMBER(othunder_state::sound_bankswitch_w)
|
||||
membank("z80bank")->set_entry(data & 3);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(othunder_state::othunder_sound_w)
|
||||
WRITE16_MEMBER(othunder_state::sound_w)
|
||||
{
|
||||
if (offset == 0)
|
||||
m_tc0140syt->master_port_w(space, 0, data & 0xff);
|
||||
@ -444,7 +444,7 @@ WRITE16_MEMBER(othunder_state::othunder_sound_w)
|
||||
m_tc0140syt->master_comm_w(space, 0, data & 0xff);
|
||||
}
|
||||
|
||||
READ16_MEMBER(othunder_state::othunder_sound_r)
|
||||
READ16_MEMBER(othunder_state::sound_r)
|
||||
{
|
||||
if (offset == 1)
|
||||
return ((m_tc0140syt->master_comm_r(space, 0) & 0xff));
|
||||
@ -452,7 +452,7 @@ READ16_MEMBER(othunder_state::othunder_sound_r)
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(othunder_state::othunder_TC0310FAM_w)
|
||||
WRITE8_MEMBER(othunder_state::tc0310fam_w)
|
||||
{
|
||||
/* there are two TC0310FAM, one for CH1 and one for CH2 from the YM2610. The
|
||||
PSG output is routed to both chips. */
|
||||
@ -488,15 +488,15 @@ WRITE8_MEMBER(othunder_state::othunder_TC0310FAM_w)
|
||||
static ADDRESS_MAP_START( othunder_map, AS_PROGRAM, 16, othunder_state )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x080000, 0x08ffff) AM_RAM
|
||||
AM_RANGE(0x090000, 0x09000f) AM_READWRITE(othunder_tc0220ioc_r, othunder_tc0220ioc_w)
|
||||
AM_RANGE(0x090000, 0x09000f) AM_READWRITE(tc0220ioc_r, tc0220ioc_w)
|
||||
// AM_RANGE(0x090006, 0x090007) AM_WRITE(eeprom_w)
|
||||
// AM_RANGE(0x09000c, 0x09000d) AM_WRITENOP /* ?? (keeps writing 0x77) */
|
||||
AM_RANGE(0x100000, 0x100007) AM_DEVREADWRITE("tc0110pcr", tc0110pcr_device, word_r, step1_rbswap_word_w) /* palette */
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
|
||||
AM_RANGE(0x220000, 0x22000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
|
||||
AM_RANGE(0x300000, 0x300003) AM_READWRITE(othunder_sound_r, othunder_sound_w)
|
||||
AM_RANGE(0x300000, 0x300003) AM_READWRITE(sound_r, sound_w)
|
||||
AM_RANGE(0x400000, 0x4005ff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x500000, 0x500007) AM_READWRITE(othunder_lightgun_r, othunder_lightgun_w)
|
||||
AM_RANGE(0x500000, 0x500007) AM_READWRITE(lightgun_r, lightgun_w)
|
||||
AM_RANGE(0x600000, 0x600003) AM_WRITE(irq_ack_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -510,7 +510,7 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, othunder_state )
|
||||
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
|
||||
AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w)
|
||||
AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w)
|
||||
AM_RANGE(0xe400, 0xe403) AM_WRITE(othunder_TC0310FAM_w) /* pan */
|
||||
AM_RANGE(0xe400, 0xe403) AM_WRITE(tc0310fam_w) /* pan */
|
||||
AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */
|
||||
AM_RANGE(0xea00, 0xea00) AM_READ_PORT(ROTARY_PORT_TAG) /* rotary input */
|
||||
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
|
||||
@ -618,6 +618,9 @@ static INPUT_PORTS_START( othundu )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Continue_Price ) ) /* see notes */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x40, "Same as Start" )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Language ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( English ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Japanese ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -681,7 +684,7 @@ static MACHINE_CONFIG_START( othunder )
|
||||
// MCFG_CPU_ADD("maincpu", M68000, 24000000/2 ) /* 12 MHz */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 13000000 ) /* fixes garbage graphics on startup */
|
||||
MCFG_CPU_PROGRAM_MAP(othunder_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", othunder_state, vblank_interrupt)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", othunder_state, vblank_interrupt)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80,16000000/4 ) /* 4 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(z80_sound_map)
|
||||
@ -702,7 +705,7 @@ static MACHINE_CONFIG_START( othunder )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(othunder_state, screen_update_othunder)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(othunder_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", othunder)
|
||||
@ -944,10 +947,47 @@ ROM_START( othunderj )
|
||||
ROM_LOAD16_WORD( "93c46_eeprom-othunder.ic86", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( othunderjsc ) // SC stands for Shopping Center. It was put in a smaller, single player cabinet aimed at children
|
||||
ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code */
|
||||
ROM_LOAD16_BYTE( "b67-24.ic63", 0x00000, 0x20000, CRC(18670e0b) SHA1(d848623046905471e3f859db6f179e1e4b3e4d51) ) // 27C1001
|
||||
ROM_LOAD16_BYTE( "b67-25.ic64", 0x00001, 0x20000, CRC(3d422991) SHA1(22d18fdd9c4511774e0a4b246a293d27f7498735) ) // 27C1001
|
||||
ROM_LOAD16_BYTE( "b67-14.ic61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
|
||||
ROM_LOAD16_BYTE( "b67-15.ic62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
|
||||
|
||||
GAME( 1988, othunder, 0, othunder, othunder, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World, rev 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othundero, othunder, othunder, othunder, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othunderu, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, rev 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othunderuo, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othunderj, othunder, othunder, othundrj, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", 0 )
|
||||
ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
|
||||
ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
|
||||
ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
|
||||
ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
|
||||
|
||||
ROM_REGION16_LE( 0x80000, "user1", 0 )
|
||||
ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b67-08.ic67", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd.deltat", 0 ) /* Delta-T samples */
|
||||
ROM_LOAD( "b67-07.ic44", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
|
||||
|
||||
ROM_REGION( 0x0800, "plds", 0 )
|
||||
ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) )
|
||||
ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) )
|
||||
ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) )
|
||||
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
|
||||
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||
ROM_LOAD16_WORD( "93c46_eeprom-othunder.ic86", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
|
||||
ROM_END
|
||||
|
||||
GAME( 1988, othunder, 0, othunder, othunder, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World, rev 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othundero, othunder, othunder, othunder, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othunderu, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, rev 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othunderuo, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othunderj, othunder, othunder, othundrj, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, othunderjsc, othunder, othunder, othundrj, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan, SC)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -14,17 +14,6 @@
|
||||
#include "video/tc0110pcr.h"
|
||||
|
||||
|
||||
struct othunder_tempsprite
|
||||
{
|
||||
int gfx;
|
||||
int code,color;
|
||||
int flipx,flipy;
|
||||
int x,y;
|
||||
int zoomx,zoomy;
|
||||
int primask;
|
||||
};
|
||||
|
||||
|
||||
class othunder_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -52,11 +41,43 @@ public:
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
DECLARE_WRITE16_MEMBER(irq_ack_w);
|
||||
DECLARE_WRITE16_MEMBER(tc0220ioc_w);
|
||||
DECLARE_READ16_MEMBER(tc0220ioc_r);
|
||||
DECLARE_READ16_MEMBER(lightgun_r);
|
||||
DECLARE_WRITE16_MEMBER(lightgun_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
|
||||
DECLARE_WRITE16_MEMBER(sound_w);
|
||||
DECLARE_READ16_MEMBER(sound_r);
|
||||
DECLARE_WRITE8_MEMBER(tc0310fam_w);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(vblank_interrupt);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
|
||||
private:
|
||||
void update_irq();
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs);
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
|
||||
/* video-related */
|
||||
std::unique_ptr<othunder_tempsprite[]> m_spritelist;
|
||||
struct tempsprite
|
||||
{
|
||||
int gfx;
|
||||
int code,color;
|
||||
int flipx,flipy;
|
||||
int x,y;
|
||||
int zoomx,zoomy;
|
||||
int primask;
|
||||
};
|
||||
|
||||
std::unique_ptr<tempsprite[]> m_spritelist;
|
||||
|
||||
/* misc */
|
||||
int m_vblank_irq;
|
||||
@ -80,24 +101,4 @@ public:
|
||||
required_device<filter_volume_device> m_2610_2r;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
DECLARE_WRITE16_MEMBER(irq_ack_w);
|
||||
DECLARE_WRITE16_MEMBER(othunder_tc0220ioc_w);
|
||||
DECLARE_READ16_MEMBER(othunder_tc0220ioc_r);
|
||||
DECLARE_READ16_MEMBER(othunder_lightgun_r);
|
||||
DECLARE_WRITE16_MEMBER(othunder_lightgun_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
|
||||
DECLARE_WRITE16_MEMBER(othunder_sound_w);
|
||||
DECLARE_READ16_MEMBER(othunder_sound_r);
|
||||
DECLARE_WRITE8_MEMBER(othunder_TC0310FAM_w);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(vblank_interrupt);
|
||||
void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs );
|
||||
void update_irq();
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
};
|
||||
|
@ -29725,6 +29725,7 @@ othello // (c) 1984 Success.
|
||||
@source:othunder.cpp
|
||||
othunder // B67 (c) 1988 Taito Corporation Japan (World, rev 1)
|
||||
othunderj // B67 (c) 1988 Taito Corporation (Japan)
|
||||
othunderjsc // B67 (c) 1988 Taito Corporation (Japan)
|
||||
othundero // B67 (c) 1988 Taito Corporation Japan (World)
|
||||
othunderu // B67 (c) 1988 Taito America Corporation (US, rev 1)
|
||||
othunderuo // B67 (c) 1988 Taito America Corporation (US)
|
||||
|
@ -10,7 +10,7 @@ void othunder_state::video_start()
|
||||
/* Up to $800/8 big sprites, requires 0x100 * sizeof(*spritelist)
|
||||
Multiply this by 32 to give room for the number of small sprites,
|
||||
which are what actually get put in the structure. */
|
||||
m_spritelist = std::make_unique<othunder_tempsprite[]>(0x2000);
|
||||
m_spritelist = std::make_unique<tempsprite[]>(0x2000);
|
||||
}
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@ spriteram is being tested, take no notice of that.]
|
||||
********************************************************/
|
||||
|
||||
|
||||
void othunder_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs )
|
||||
void othunder_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs)
|
||||
{
|
||||
uint16_t *spritemap = (uint16_t *)memregion("user1")->base();
|
||||
uint16_t tile_mask = (m_gfxdecode->gfx(0)->elements()) - 1;
|
||||
@ -78,7 +78,7 @@ void othunder_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,
|
||||
|
||||
/* pdrawgfx() needs us to draw sprites front to back, so we have to build a list
|
||||
while processing sprite ram and then draw them all at the end */
|
||||
struct othunder_tempsprite *sprite_ptr = m_spritelist.get();
|
||||
struct tempsprite *sprite_ptr = m_spritelist.get();
|
||||
|
||||
for (offs = (m_spriteram.bytes() / 2) - 4; offs >= 0; offs -= 4)
|
||||
{
|
||||
@ -200,7 +200,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks);
|
||||
SCREEN REFRESH
|
||||
**************************************************************/
|
||||
|
||||
uint32_t othunder_state::screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
uint32_t othunder_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int layer[3];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user