mirror of
https://github.com/holub/mame
synced 2025-05-04 21:43:05 +03:00
More Sega updates:
* Fully modernized X-board driver * Misc. cleanups New working games ----------------- AB Cop (Japan) [ShouTime]
This commit is contained in:
parent
af5abe6bc8
commit
3258eb6014
@ -1777,14 +1777,12 @@ DRIVER_INIT_MEMBER(segahang_state,sharrier)
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segahang_state::sharrier_i8751_sim), this);
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(segahang_state,enduror)
|
||||
{
|
||||
DRIVER_INIT_CALL(generic);
|
||||
m_sharrier_video = true;
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(segahang_state,endurobl)
|
||||
{
|
||||
DRIVER_INIT_CALL(enduror);
|
||||
@ -1797,7 +1795,6 @@ DRIVER_INIT_MEMBER(segahang_state,endurobl)
|
||||
m_maincpu->space(AS_PROGRAM)->set_decrypted_region(0x000000, 0x03ffff, decrypt);
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(segahang_state,endurob2)
|
||||
{
|
||||
DRIVER_INIT_CALL(enduror);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -3483,49 +3483,49 @@ DRIVER_INIT_MEMBER(segas16a_state,generic)
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16a_state,aceattaa)
|
||||
{
|
||||
init_generic();
|
||||
DRIVER_INIT_CALL(generic);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16a_state::aceattaa_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16a_state,dumpmtmt)
|
||||
{
|
||||
init_generic();
|
||||
DRIVER_INIT_CALL(generic);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16a_state::dumpmtmt_i8751_sim), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16a_state,mjleague)
|
||||
{
|
||||
init_generic();
|
||||
DRIVER_INIT_CALL(generic);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16a_state::mjleague_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16a_state,passsht16a)
|
||||
{
|
||||
init_generic();
|
||||
DRIVER_INIT_CALL(generic);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16a_state::passsht16a_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16a_state,quartet)
|
||||
{
|
||||
init_generic();
|
||||
DRIVER_INIT_CALL(generic);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16a_state::quartet_i8751_sim), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16a_state,fantzonep)
|
||||
{
|
||||
init_generic();
|
||||
DRIVER_INIT_CALL(generic);
|
||||
sega_315_5177_decode(machine(), "soundcpu");
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16a_state,sdi)
|
||||
{
|
||||
init_generic();
|
||||
DRIVER_INIT_CALL(generic);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16a_state::sdi_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16a_state,sjryukoa)
|
||||
{
|
||||
init_generic();
|
||||
DRIVER_INIT_CALL(generic);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16a_state::sjryuko_custom_io_r), this);
|
||||
m_lamp_changed_w = lamp_changed_delegate(FUNC(segas16a_state::sjryuko_lamp_changed_w), this);
|
||||
}
|
||||
|
@ -6433,56 +6433,56 @@ DRIVER_INIT_MEMBER(segas16b_state,generic_korean)
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,aceattac_5358)
|
||||
{
|
||||
init_generic_5358();
|
||||
DRIVER_INIT_CALL(generic_5358);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16b_state::aceattac_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,altbeast_5521)
|
||||
{
|
||||
init_generic_5521();
|
||||
DRIVER_INIT_CALL(generic_5521);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16b_state::altbeast_i8751_sim), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,altbeasj_5521)
|
||||
{
|
||||
init_generic_5521();
|
||||
DRIVER_INIT_CALL(generic_5521);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16b_state::altbeasj_i8751_sim), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,altbeas5_5521)
|
||||
{
|
||||
init_generic_5521();
|
||||
DRIVER_INIT_CALL(generic_5521);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16b_state::altbeas5_i8751_sim), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,altbeas4_5521)
|
||||
{
|
||||
init_generic_5521();
|
||||
DRIVER_INIT_CALL(generic_5521);
|
||||
mc8123_decrypt_rom(machine(), "soundcpu", "mcu", NULL, 0);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,ddux_5704)
|
||||
{
|
||||
init_generic_5704();
|
||||
DRIVER_INIT_CALL(generic_5704);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16b_state::ddux_i8751_sim), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,dunkshot_5358_small)
|
||||
{
|
||||
init_generic_5358_small();
|
||||
DRIVER_INIT_CALL(generic_5358_small);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16b_state::dunkshot_custom_io_r), this);
|
||||
m_tilemap_type = SEGAIC16_TILEMAP_16B_ALT;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,exctleag_5358)
|
||||
{
|
||||
init_generic_5358();
|
||||
DRIVER_INIT_CALL(generic_5358);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,goldnaxe_5704)
|
||||
{
|
||||
init_generic_5704();
|
||||
DRIVER_INIT_CALL(generic_5704);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16b_state::goldnaxe_i8751_sim), this);
|
||||
|
||||
static const UINT8 memory_control_5704[0x10] =
|
||||
@ -6492,7 +6492,7 @@ DRIVER_INIT_MEMBER(segas16b_state,goldnaxe_5704)
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,goldnaxe_5797)
|
||||
{
|
||||
init_generic_5797();
|
||||
DRIVER_INIT_CALL(generic_5797);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16b_state::goldnaxe_i8751_sim), this);
|
||||
|
||||
static const UINT8 memory_control_5797[0x10] =
|
||||
@ -6502,44 +6502,44 @@ DRIVER_INIT_MEMBER(segas16b_state,goldnaxe_5797)
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,hwchamp_5521)
|
||||
{
|
||||
init_generic_5521();
|
||||
DRIVER_INIT_CALL(generic_5521);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16b_state::hwchamp_custom_io_r), this);
|
||||
m_custom_io_w = write16_delegate(FUNC(segas16b_state::hwchamp_custom_io_w), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,passshtj_5358)
|
||||
{
|
||||
init_generic_5358();
|
||||
DRIVER_INIT_CALL(generic_5358);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16b_state::passshtj_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,sdi_5358_small)
|
||||
{
|
||||
init_generic_5358_small();
|
||||
DRIVER_INIT_CALL(generic_5358_small);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,defense_5358_small)
|
||||
{
|
||||
init_generic_5358_small();
|
||||
DRIVER_INIT_CALL(generic_5358_small);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,shinobi4_5521)
|
||||
{
|
||||
init_generic_5521();
|
||||
DRIVER_INIT_CALL(generic_5521);
|
||||
mc8123_decrypt_rom(machine(), "soundcpu", "mcu", NULL, 0);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,shinobi3_5358)
|
||||
{
|
||||
init_generic_5358();
|
||||
DRIVER_INIT_CALL(generic_5358);
|
||||
mc8123_decrypt_rom(machine(), "soundcpu", "mcu", NULL, 0);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,sjryuko_5358_small)
|
||||
{
|
||||
init_generic_5358_small();
|
||||
DRIVER_INIT_CALL(generic_5358_small);
|
||||
m_custom_io_r = read16_delegate(FUNC(segas16b_state::sjryuko_custom_io_r), this);
|
||||
m_custom_io_w = write16_delegate(FUNC(segas16b_state::sjryuko_custom_io_w), this);
|
||||
m_tilemap_type = SEGAIC16_TILEMAP_16B_ALT;
|
||||
@ -6547,24 +6547,25 @@ DRIVER_INIT_MEMBER(segas16b_state,sjryuko_5358_small)
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,timescan_5358_small)
|
||||
{
|
||||
init_generic_5358_small();
|
||||
DRIVER_INIT_CALL(generic_5358_small);
|
||||
m_tilemap_type = SEGAIC16_TILEMAP_16B_ALT;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,tturf_5704)
|
||||
{
|
||||
init_generic_5704();
|
||||
DRIVER_INIT_CALL(generic_5704);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16b_state::tturf_i8751_sim), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,wb3_5704)
|
||||
{
|
||||
init_generic_5704();
|
||||
DRIVER_INIT_CALL(generic_5704);
|
||||
m_i8751_vblank_hook = i8751_sim_delegate(FUNC(segas16b_state::wb3_i8751_sim), this);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(segas16b_state,snapper)
|
||||
{
|
||||
init_generic_korean();
|
||||
DRIVER_INIT_CALL(generic_korean);
|
||||
m_atomicp_sound_divisor = 4;
|
||||
}
|
||||
|
||||
@ -7127,7 +7128,7 @@ MACHINE_CONFIG_END
|
||||
|
||||
DRIVER_INIT_MEMBER(isgsm_state,isgsm)
|
||||
{
|
||||
init_generic_5521();
|
||||
DRIVER_INIT_CALL(generic_5521);
|
||||
|
||||
// decrypt the bios...
|
||||
dynamic_array<UINT16> temp(0x20000/2);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -59,43 +59,41 @@ public:
|
||||
m_nvram(*this, "nvram"),
|
||||
m_workram(*this, "workram"),
|
||||
m_custom_map(NULL),
|
||||
m_is_shangon(false),
|
||||
m_shangon_video(false),
|
||||
m_scanline_timer(NULL),
|
||||
m_irq2_state(0),
|
||||
m_adc_select(0),
|
||||
m_vblank_irq_state(0)
|
||||
{ }
|
||||
|
||||
// driver init
|
||||
DECLARE_DRIVER_INIT(outrunb);
|
||||
DECLARE_DRIVER_INIT(shangon);
|
||||
DECLARE_DRIVER_INIT(outrun);
|
||||
DECLARE_DRIVER_INIT(shangon3);
|
||||
|
||||
// memory mapping
|
||||
void memory_mapper(sega_315_5195_mapper_device &mapper, UINT8 index);
|
||||
UINT8 mapper_sound_r();
|
||||
void mapper_sound_w(UINT8 data);
|
||||
|
||||
// read/write handlers
|
||||
DECLARE_READ16_MEMBER( misc_io_r );
|
||||
DECLARE_WRITE16_MEMBER( misc_io_w );
|
||||
DECLARE_WRITE16_MEMBER( nop_w );
|
||||
// PPI read/write handlers
|
||||
DECLARE_READ8_MEMBER( unknown_porta_r );
|
||||
DECLARE_READ8_MEMBER( unknown_portb_r );
|
||||
DECLARE_READ8_MEMBER( unknown_portc_r );
|
||||
DECLARE_WRITE8_MEMBER( unknown_porta_w );
|
||||
DECLARE_WRITE8_MEMBER( unknown_portb_w );
|
||||
DECLARE_WRITE8_MEMBER( video_control_w );
|
||||
|
||||
// memory mapping
|
||||
void memory_mapper(sega_315_5195_mapper_device &mapper, UINT8 index);
|
||||
UINT8 mapper_sound_r();
|
||||
void mapper_sound_w(UINT8 data);
|
||||
|
||||
// main CPU read/write handlers
|
||||
DECLARE_READ16_MEMBER( misc_io_r );
|
||||
DECLARE_WRITE16_MEMBER( misc_io_w );
|
||||
DECLARE_WRITE16_MEMBER( nop_w );
|
||||
|
||||
// Z80 sound CPU read/write handlers
|
||||
DECLARE_READ8_MEMBER( sound_data_r );
|
||||
|
||||
// custom I/O
|
||||
DECLARE_READ16_MEMBER( outrun_custom_io_r );
|
||||
DECLARE_WRITE16_MEMBER( outrun_custom_io_w );
|
||||
DECLARE_READ16_MEMBER( shangon_custom_io_r );
|
||||
DECLARE_WRITE16_MEMBER( shangon_custom_io_w );
|
||||
// game-specific driver init
|
||||
DECLARE_DRIVER_INIT(generic);
|
||||
DECLARE_DRIVER_INIT(outrun);
|
||||
DECLARE_DRIVER_INIT(outrunb);
|
||||
DECLARE_DRIVER_INIT(shangon);
|
||||
|
||||
// video rendering
|
||||
// video updates
|
||||
UINT32 screen_update_outrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_shangon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
@ -115,15 +113,19 @@ protected:
|
||||
};
|
||||
|
||||
// device overrides
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
|
||||
// internal helpers
|
||||
void init_generic();
|
||||
void update_main_irqs();
|
||||
static void m68k_reset_callback(device_t *device);
|
||||
|
||||
// custom I/O
|
||||
DECLARE_READ16_MEMBER( outrun_custom_io_r );
|
||||
DECLARE_WRITE16_MEMBER( outrun_custom_io_w );
|
||||
DECLARE_READ16_MEMBER( shangon_custom_io_r );
|
||||
DECLARE_WRITE16_MEMBER( shangon_custom_io_w );
|
||||
|
||||
// devices
|
||||
required_device<sega_315_5195_mapper_device> m_mapper;
|
||||
@ -140,7 +142,7 @@ protected:
|
||||
read16_delegate m_custom_io_r;
|
||||
write16_delegate m_custom_io_w;
|
||||
const UINT8 * m_custom_map;
|
||||
bool m_is_shangon;
|
||||
bool m_shangon_video;
|
||||
|
||||
// internal state
|
||||
emu_timer * m_scanline_timer;
|
||||
|
@ -57,22 +57,86 @@ public:
|
||||
m_mcu(*this, "mcu"),
|
||||
m_cmptimer_1(*this, "cmptimer_main"),
|
||||
m_gprider_hack(false),
|
||||
m_road_priority(1),
|
||||
m_scanline_timer(NULL),
|
||||
m_timer_irq_state(0),
|
||||
m_vblank_irq_state(0),
|
||||
m_road_priority(0),
|
||||
m_loffire_sync(NULL),
|
||||
m_lastsurv_mux(0)
|
||||
{
|
||||
memset(m_adc_reverse, 0, sizeof(m_adc_reverse));
|
||||
memset(m_iochip_custom_io_r, 0, sizeof(m_iochip_custom_io_r));
|
||||
memset(m_iochip_custom_io_w, 0, sizeof(m_iochip_custom_io_w));
|
||||
memset(m_iochip_regs, 0, sizeof(m_iochip_regs));
|
||||
}
|
||||
|
||||
//protected:
|
||||
// internal helpers
|
||||
void sound_data_w(UINT8 data);
|
||||
// compare/timer chip callbacks
|
||||
void timer_ack_callback();
|
||||
void sound_data_w(UINT8 data);
|
||||
|
||||
// YM2151 chip callbacks
|
||||
WRITE_LINE_MEMBER( sound_cpu_irq );
|
||||
|
||||
// main CPU read/write handlers
|
||||
READ16_MEMBER( adc_r );
|
||||
WRITE16_MEMBER( adc_w );
|
||||
UINT16 iochip_r(int which, int port, int inputval);
|
||||
READ16_MEMBER( iochip_0_r );
|
||||
WRITE16_MEMBER( iochip_0_w );
|
||||
READ16_MEMBER( iochip_1_r );
|
||||
WRITE16_MEMBER( iochip_1_w );
|
||||
WRITE16_MEMBER( iocontrol_w );
|
||||
|
||||
// game-specific main CPU read/write handlers
|
||||
WRITE16_MEMBER( loffire_sync0_w );
|
||||
READ16_MEMBER( rascot_excs_r );
|
||||
WRITE16_MEMBER( rascot_excs_w );
|
||||
READ16_MEMBER( smgp_excs_r );
|
||||
WRITE16_MEMBER( smgp_excs_w );
|
||||
|
||||
// sound Z80 CPU read/write handlers
|
||||
READ8_MEMBER( sound_data_r );
|
||||
|
||||
// game-specific driver init
|
||||
DECLARE_DRIVER_INIT(generic);
|
||||
DECLARE_DRIVER_INIT(aburner2);
|
||||
DECLARE_DRIVER_INIT(lastsurv);
|
||||
DECLARE_DRIVER_INIT(loffire);
|
||||
DECLARE_DRIVER_INIT(smgp);
|
||||
DECLARE_DRIVER_INIT(rascot);
|
||||
DECLARE_DRIVER_INIT(gprider);
|
||||
|
||||
// video updates
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
protected:
|
||||
// internal types
|
||||
typedef delegate<UINT8 (UINT8)> ioread_delegate;
|
||||
typedef delegate<void (UINT8)> iowrite_delegate;
|
||||
|
||||
// timer IDs
|
||||
enum
|
||||
{
|
||||
TID_SCANLINE,
|
||||
TID_IRQ2_GEN,
|
||||
TID_SOUND_WRITE
|
||||
};
|
||||
|
||||
// device overrides
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
|
||||
// internal helpers
|
||||
void update_main_irqs();
|
||||
static void m68k_reset_callback(device_t *device);
|
||||
|
||||
// custom I/O
|
||||
void generic_iochip0_lamps_w(UINT8 data);
|
||||
UINT8 aburner2_iochip0_motor_r(UINT8 data);
|
||||
void aburner2_iochip0_motor_w(UINT8 data);
|
||||
UINT8 smgp_iochip0_motor_r(UINT8 data);
|
||||
void smgp_iochip0_motor_w(UINT8 data);
|
||||
UINT8 lastsurv_iochip1_port_r(UINT8 data);
|
||||
void lastsurv_iochip0_muxer_w(UINT8 data);
|
||||
|
||||
// devices
|
||||
required_device<m68000_device> m_maincpu;
|
||||
@ -85,30 +149,17 @@ public:
|
||||
// configuration
|
||||
bool m_gprider_hack;
|
||||
bool m_adc_reverse[8];
|
||||
UINT8 (*m_iochip_custom_io_r[2][8])(running_machine &machine, UINT8 data);
|
||||
void (*m_iochip_custom_io_w[2][8])(running_machine &machine, UINT8 data);
|
||||
ioread_delegate m_iochip_custom_io_r[2][8];
|
||||
iowrite_delegate m_iochip_custom_io_w[2][8];
|
||||
UINT8 m_road_priority;
|
||||
|
||||
// internal state
|
||||
emu_timer * m_scanline_timer;
|
||||
UINT8 m_timer_irq_state;
|
||||
UINT8 m_vblank_irq_state;
|
||||
UINT8 m_iochip_regs[2][8];
|
||||
UINT8 m_road_priority;
|
||||
|
||||
// game-specific state
|
||||
UINT16 * m_loffire_sync;
|
||||
UINT8 m_lastsurv_mux;
|
||||
DECLARE_DRIVER_INIT(generic_xboard);
|
||||
DECLARE_DRIVER_INIT(loffire);
|
||||
DECLARE_DRIVER_INIT(smgp);
|
||||
DECLARE_DRIVER_INIT(aburner2);
|
||||
DECLARE_DRIVER_INIT(gprider);
|
||||
DECLARE_DRIVER_INIT(rascot);
|
||||
DECLARE_DRIVER_INIT(lastsurv);
|
||||
};
|
||||
|
||||
|
||||
/*----------- defined in video/segaxbd.c -----------*/
|
||||
|
||||
VIDEO_START( xboard );
|
||||
SCREEN_UPDATE_IND16( xboard );
|
||||
|
@ -4356,11 +4356,10 @@ loffireu // 1990.04 Line of Fire (US, FD1094, decrypted)
|
||||
// 1990.03 Racing Hero (Japan)
|
||||
rachero // 1990.?? Racing Hero (World, FD1094, decrypted)
|
||||
abcop // 1990.?? A.B.Cop (World, FD1094, decrypted)
|
||||
// 1991.01 A.B.Cop (Japan)
|
||||
// 1990.10 GP Rider (Japan)
|
||||
abcopj // 1991.01 A.B.Cop (Japan, FD1094, decrypted)
|
||||
gpriderj // 1990.10 GP Rider (Japan, FD1094, decrypted)
|
||||
gprider // 1990.?? GP Rider (World, FD1094, decrypted)
|
||||
gprideru // 1990.12 GP Rider (US, FD1094, decrypted)
|
||||
gpriderj // 1990.12 GP Rider (Japan, FD1094, decrypted)
|
||||
rascot // 1991.?? Royal Ascot (Japan)
|
||||
|
||||
|
||||
|
@ -49,7 +49,7 @@ void segaorun_state::video_start()
|
||||
// compute palette info
|
||||
segaic16_palette_init(0x1000);
|
||||
|
||||
if (m_is_shangon)
|
||||
if (m_shangon_video)
|
||||
{
|
||||
// initialize the tile/text layers
|
||||
segaic16_tilemap_init(machine(), 0, SEGAIC16_TILEMAP_16B_ALT, 0x000, 0, 2);
|
||||
|
@ -39,67 +39,62 @@
|
||||
#include "includes/segaxbd.h"
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Video startup
|
||||
*
|
||||
*************************************/
|
||||
//**************************************************************************
|
||||
// VIDEO STARTUP
|
||||
//**************************************************************************
|
||||
|
||||
VIDEO_START( xboard )
|
||||
void segaxbd_state::video_start()
|
||||
{
|
||||
/* compute palette info */
|
||||
// compute palette info
|
||||
segaic16_palette_init(0x2000);
|
||||
|
||||
/* initialize the tile/text layers */
|
||||
segaic16_tilemap_init(machine, 0, SEGAIC16_TILEMAP_16B, 0x1c00, 0, 2);
|
||||
// initialize the tile/text layers
|
||||
segaic16_tilemap_init(machine(), 0, SEGAIC16_TILEMAP_16B, 0x1c00, 0, 2);
|
||||
|
||||
/* initialize the road */
|
||||
segaic16_road_init(machine, 0, SEGAIC16_ROAD_XBOARD, 0x1700, 0x1720, 0x1780, -166);
|
||||
// initialize the road
|
||||
segaic16_road_init(machine(), 0, SEGAIC16_ROAD_XBOARD, 0x1700, 0x1720, 0x1780, -166);
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Video update
|
||||
*
|
||||
*************************************/
|
||||
|
||||
SCREEN_UPDATE_IND16( xboard )
|
||||
//**************************************************************************
|
||||
// VIDEO STARTUP
|
||||
//**************************************************************************
|
||||
|
||||
UINT32 segaxbd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
segaxbd_state *state = screen.machine().driver_data<segaxbd_state>();
|
||||
|
||||
/* if no drawing is happening, fill with black and get out */
|
||||
// if no drawing is happening, fill with black and get out
|
||||
if (!segaic16_display_enable)
|
||||
{
|
||||
bitmap.fill(get_black_pen(screen.machine()), cliprect);
|
||||
bitmap.fill(get_black_pen(machine()), cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* reset priorities */
|
||||
screen.machine().priority_bitmap.fill(0, cliprect);
|
||||
// reset priorities
|
||||
machine().priority_bitmap.fill(0, cliprect);
|
||||
|
||||
/* draw the low priority road layer */
|
||||
// draw the low priority road layer
|
||||
segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND);
|
||||
if (state->m_road_priority == 0)
|
||||
if (m_road_priority == 0)
|
||||
segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND);
|
||||
|
||||
/* draw background */
|
||||
// draw background
|
||||
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0, 0x01);
|
||||
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 1, 0x02);
|
||||
|
||||
/* draw foreground */
|
||||
// draw foreground
|
||||
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 0, 0x02);
|
||||
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_FOREGROUND, 1, 0x04);
|
||||
|
||||
/* draw the high priority road */
|
||||
if (state->m_road_priority == 1)
|
||||
// draw the high priority road
|
||||
if (m_road_priority == 1)
|
||||
segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_FOREGROUND);
|
||||
|
||||
/* text layer */
|
||||
// text layer
|
||||
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 0, 0x04);
|
||||
segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_TEXT, 1, 0x08);
|
||||
|
||||
/* draw the sprites */
|
||||
// draw the sprites
|
||||
segaic16_sprites_draw(screen, bitmap, cliprect, 0);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user