mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
alpha68k.cpp : Updates
Simplify handlers, Simplify gfxdecodes, Reduce unnecessary handlers, Unnecessary lines, Fix bankswitch behavior, Fix Naming, Spacings, Use shorter / Correct type values
This commit is contained in:
parent
7772cfc363
commit
6437d47def
File diff suppressed because it is too large
Load Diff
@ -66,25 +66,23 @@ public:
|
|||||||
void init_sstingry();
|
void init_sstingry();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_WRITE16_MEMBER(tnextspc_coin_counters_w);
|
void tnextspc_coin_counters_w(offs_t offset, u16 data);
|
||||||
DECLARE_WRITE16_MEMBER(tnextspc_unknown_w);
|
void tnextspc_unknown_w(offs_t offset, u16 data);
|
||||||
DECLARE_WRITE16_MEMBER(alpha_microcontroller_w);
|
void alpha_microcontroller_w(offs_t offset, u16 data, u16 mem_mask);
|
||||||
DECLARE_READ16_MEMBER(kyros_dip_r);
|
u16 control_1_r();
|
||||||
DECLARE_READ16_MEMBER(control_1_r);
|
u16 control_2_r();
|
||||||
DECLARE_READ16_MEMBER(control_2_r);
|
u16 control_3_r();
|
||||||
DECLARE_READ16_MEMBER(control_2_V_r);
|
u16 control_4_r();
|
||||||
DECLARE_READ16_MEMBER(control_3_r);
|
u16 jongbou_inputs_r();
|
||||||
DECLARE_READ16_MEMBER(control_4_r);
|
void outlatch_w(offs_t offset, u8 data = 0);
|
||||||
DECLARE_READ16_MEMBER(jongbou_inputs_r);
|
void tnextspc_soundlatch_w(u8 data);
|
||||||
DECLARE_WRITE8_MEMBER(outlatch_w);
|
u16 kyros_alpha_trigger_r(offs_t offset);
|
||||||
DECLARE_WRITE8_MEMBER(tnextspc_soundlatch_w);
|
u16 alpha_II_trigger_r(offs_t offset);
|
||||||
DECLARE_READ16_MEMBER(kyros_alpha_trigger_r);
|
u16 alpha_V_trigger_r(offs_t offset);
|
||||||
DECLARE_READ16_MEMBER(alpha_II_trigger_r);
|
u16 sound_cpu_r();
|
||||||
DECLARE_READ16_MEMBER(alpha_V_trigger_r);
|
void sound_bank_w(u8 data);
|
||||||
DECLARE_READ16_MEMBER(sound_cpu_r);
|
void porta_w(u8 data);
|
||||||
DECLARE_WRITE8_MEMBER(sound_bank_w);
|
void videoram_w(offs_t offset, u16 data);
|
||||||
DECLARE_WRITE8_MEMBER(porta_w);
|
|
||||||
DECLARE_WRITE16_MEMBER(alpha68k_videoram_w);
|
|
||||||
DECLARE_WRITE_LINE_MEMBER(video_control2_w);
|
DECLARE_WRITE_LINE_MEMBER(video_control2_w);
|
||||||
DECLARE_WRITE_LINE_MEMBER(video_control3_w);
|
DECLARE_WRITE_LINE_MEMBER(video_control3_w);
|
||||||
|
|
||||||
@ -98,22 +96,22 @@ private:
|
|||||||
DECLARE_VIDEO_START(alpha68k);
|
DECLARE_VIDEO_START(alpha68k);
|
||||||
DECLARE_MACHINE_START(alpha68k_V);
|
DECLARE_MACHINE_START(alpha68k_V);
|
||||||
DECLARE_MACHINE_RESET(alpha68k_V);
|
DECLARE_MACHINE_RESET(alpha68k_V);
|
||||||
uint32_t screen_update_sstingry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
u32 screen_update_sstingry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
uint32_t screen_update_kyros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
u32 screen_update_kyros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
uint32_t screen_update_alpha68k_I(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
u32 screen_update_alpha68k_I(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
uint32_t screen_update_alpha68k_II(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
u32 screen_update_alpha68k_II(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
uint32_t screen_update_alpha68k_V(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
u32 screen_update_alpha68k_V(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
uint32_t screen_update_alpha68k_V_sb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
u32 screen_update_alpha68k_V_sb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
INTERRUPT_GEN_MEMBER(alpha68k_sound_nmi);
|
INTERRUPT_GEN_MEMBER(sound_nmi);
|
||||||
void alpha68k_flipscreen_w( int flip );
|
void flipscreen_w(int flip);
|
||||||
DECLARE_WRITE8_MEMBER(video_bank_w);
|
void video_bank_w(u8 data);
|
||||||
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int j, int s, int e );
|
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int j, int s, int e);
|
||||||
void draw_sprites_V( bitmap_ind16 &bitmap, const rectangle &cliprect, int j, int s, int e, int fx_mask, int fy_mask, int sprite_mask );
|
void draw_sprites_V(bitmap_ind16 &bitmap, const rectangle &cliprect, int j, int s, int e, u16 fx_mask, u16 fy_mask, u16 sprite_mask);
|
||||||
void draw_sprites_I( bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d, int yshift );
|
void draw_sprites_I(bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d, int yshift);
|
||||||
void kyros_video_banking(int *bank, int data);
|
void kyros_video_banking(u8 *bank, int data);
|
||||||
void jongbou_video_banking(int *bank, int data);
|
void jongbou_video_banking(u8 *bank, int data);
|
||||||
void kyros_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d );
|
void kyros_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d);
|
||||||
void sstingry_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d );
|
void sstingry_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d);
|
||||||
void alpha68k_II_map(address_map &map);
|
void alpha68k_II_map(address_map &map);
|
||||||
void alpha68k_I_map(address_map &map);
|
void alpha68k_I_map(address_map &map);
|
||||||
void alpha68k_I_s_map(address_map &map);
|
void alpha68k_I_s_map(address_map &map);
|
||||||
@ -131,9 +129,9 @@ private:
|
|||||||
void tnextspc_sound_portmap(address_map &map);
|
void tnextspc_sound_portmap(address_map &map);
|
||||||
|
|
||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
optional_shared_ptr<uint16_t> m_shared_ram;
|
optional_shared_ptr<u16> m_shared_ram;
|
||||||
required_shared_ptr<uint16_t> m_spriteram;
|
required_shared_ptr<u16> m_spriteram;
|
||||||
optional_shared_ptr<uint16_t> m_videoram;
|
optional_shared_ptr<u16> m_videoram;
|
||||||
|
|
||||||
/* devices */
|
/* devices */
|
||||||
required_device<cpu_device> m_audiocpu;
|
required_device<cpu_device> m_audiocpu;
|
||||||
@ -144,13 +142,13 @@ private:
|
|||||||
optional_device<ls259_device> m_outlatch;
|
optional_device<ls259_device> m_outlatch;
|
||||||
required_device<generic_latch_8_device> m_soundlatch;
|
required_device<generic_latch_8_device> m_soundlatch;
|
||||||
|
|
||||||
optional_region_ptr<uint8_t> m_color_proms;
|
optional_region_ptr<u8> m_color_proms;
|
||||||
|
|
||||||
optional_ioport_array<7> m_in;
|
optional_ioport_array<7> m_in;
|
||||||
optional_memory_bank m_audiobank;
|
optional_memory_bank m_audiobank;
|
||||||
|
|
||||||
uint8_t m_sound_nmi_mask;
|
u8 m_sound_nmi_mask;
|
||||||
uint8_t m_sound_pa_latch;
|
u8 m_sound_pa_latch;
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
tilemap_t *m_fix_tilemap;
|
tilemap_t *m_fix_tilemap;
|
||||||
|
@ -10,12 +10,12 @@
|
|||||||
#include "includes/alpha68k.h"
|
#include "includes/alpha68k.h"
|
||||||
|
|
||||||
|
|
||||||
void alpha68k_state::alpha68k_flipscreen_w( int flip )
|
void alpha68k_state::flipscreen_w(int flip)
|
||||||
{
|
{
|
||||||
m_flipscreen = flip;
|
m_flipscreen = flip;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(alpha68k_state::video_bank_w)
|
void alpha68k_state::video_bank_w(u8 data)
|
||||||
{
|
{
|
||||||
if ((m_bank_base ^ data) & 0xf)
|
if ((m_bank_base ^ data) & 0xf)
|
||||||
{
|
{
|
||||||
@ -28,15 +28,13 @@ WRITE8_MEMBER(alpha68k_state::video_bank_w)
|
|||||||
|
|
||||||
TILE_GET_INFO_MEMBER(alpha68k_state::get_tile_info)
|
TILE_GET_INFO_MEMBER(alpha68k_state::get_tile_info)
|
||||||
{
|
{
|
||||||
int tile = m_videoram[2 * tile_index] & 0xff;
|
const u32 tile = m_videoram[2 * tile_index] & 0xff;
|
||||||
int color = m_videoram[2 * tile_index + 1] & 0x0f;
|
const u32 color = m_videoram[2 * tile_index + 1] & 0x0f;
|
||||||
|
|
||||||
tile = tile | (m_bank_base << 8);
|
SET_TILE_INFO_MEMBER(0, tile | (m_bank_base << 8), color, 0);
|
||||||
|
|
||||||
SET_TILE_INFO_MEMBER(0, tile, color, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_MEMBER(alpha68k_state::alpha68k_videoram_w)
|
void alpha68k_state::videoram_w(offs_t offset, u16 data)
|
||||||
{
|
{
|
||||||
/* 8 bit RAM, upper & lower byte writes end up in the same place due to m68k byte smearing */
|
/* 8 bit RAM, upper & lower byte writes end up in the same place due to m68k byte smearing */
|
||||||
m_videoram[offset] = data & 0xff;
|
m_videoram[offset] = data & 0xff;
|
||||||
@ -53,14 +51,12 @@ VIDEO_START_MEMBER(alpha68k_state,alpha68k)
|
|||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
//AT
|
//AT
|
||||||
void alpha68k_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int j, int s, int e )
|
void alpha68k_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int j, int s, int e)
|
||||||
{
|
{
|
||||||
int offs, mx, my, color, tile, fx, fy, i;
|
for (int offs = s; offs < e; offs += 0x40)
|
||||||
|
|
||||||
for (offs = s; offs < e; offs += 0x40)
|
|
||||||
{
|
{
|
||||||
my = m_spriteram[offs + 3 + (j << 1)];
|
int my = m_spriteram[offs + 3 + (j << 1)];
|
||||||
mx = m_spriteram[offs + 2 + (j << 1)] << 1 | my >> 15;
|
int mx = m_spriteram[offs + 2 + (j << 1)] << 1 | my >> 15;
|
||||||
my = -my & 0x1ff;
|
my = -my & 0x1ff;
|
||||||
mx = ((mx + 0x100) & 0x1ff) - 0x100;
|
mx = ((mx + 0x100) & 0x1ff) - 0x100;
|
||||||
if (j == 0 && s == 0x7c0)
|
if (j == 0 && s == 0x7c0)
|
||||||
@ -72,13 +68,13 @@ void alpha68k_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
|
|||||||
my = 240 - my;
|
my = 240 - my;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 0x40; i += 2)
|
for (int i = 0; i < 0x40; i += 2)
|
||||||
{
|
{
|
||||||
tile = m_spriteram[offs + 1 + i + (0x800 * j) + 0x800];
|
u16 tile = m_spriteram[offs + 1 + i + (0x800 * j) + 0x800];
|
||||||
color = m_spriteram[offs + i + (0x800 * j) + 0x800] & 0x7f;
|
const u16 color = m_spriteram[offs + i + (0x800 * j) + 0x800] & 0x7f;
|
||||||
|
|
||||||
fy = tile & 0x8000;
|
int fy = tile & 0x8000;
|
||||||
fx = tile & 0x4000;
|
int fx = tile & 0x4000;
|
||||||
tile &= 0x3fff;
|
tile &= 0x3fff;
|
||||||
|
|
||||||
if (m_flipscreen)
|
if (m_flipscreen)
|
||||||
@ -104,7 +100,7 @@ void alpha68k_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
|
|||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
uint32_t alpha68k_state::screen_update_alpha68k_II(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
u32 alpha68k_state::screen_update_alpha68k_II(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||||
|
|
||||||
@ -152,15 +148,13 @@ WRITE_LINE_MEMBER(alpha68k_state::video_control3_w)
|
|||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
void alpha68k_state::draw_sprites_V( bitmap_ind16 &bitmap, const rectangle &cliprect, int j, int s, int e, int fx_mask, int fy_mask, int sprite_mask )
|
void alpha68k_state::draw_sprites_V(bitmap_ind16 &bitmap, const rectangle &cliprect, int j, int s, int e, u16 fx_mask, u16 fy_mask, u16 sprite_mask)
|
||||||
{
|
{
|
||||||
int offs, mx, my, color, tile, fx, fy, i;
|
for (int offs = s; offs < e; offs += 0x40)
|
||||||
|
|
||||||
for (offs = s; offs < e; offs += 0x40)
|
|
||||||
{
|
{
|
||||||
//AT
|
//AT
|
||||||
my = m_spriteram[offs + 3 + (j << 1)];
|
int my = m_spriteram[offs + 3 + (j << 1)];
|
||||||
mx = m_spriteram[offs + 2 + (j << 1)] << 1 | my >> 15;
|
int mx = m_spriteram[offs + 2 + (j << 1)] << 1 | my >> 15;
|
||||||
my = -my & 0x1ff;
|
my = -my & 0x1ff;
|
||||||
mx = ((mx + 0x100) & 0x1ff) - 0x100;
|
mx = ((mx + 0x100) & 0x1ff) - 0x100;
|
||||||
if (j == 0 && s == 0x7c0)
|
if (j == 0 && s == 0x7c0)
|
||||||
@ -172,13 +166,13 @@ void alpha68k_state::draw_sprites_V( bitmap_ind16 &bitmap, const rectangle &clip
|
|||||||
my = 240 - my;
|
my = 240 - my;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 0x40; i += 2)
|
for (int i = 0; i < 0x40; i += 2)
|
||||||
{
|
{
|
||||||
tile = m_spriteram[offs + 1 + i + (0x800 * j) + 0x800];
|
u16 tile = m_spriteram[offs + 1 + i + (0x800 * j) + 0x800];
|
||||||
color = m_spriteram[offs + i + (0x800 * j) + 0x800] & 0xff;
|
const u16 color = m_spriteram[offs + i + (0x800 * j) + 0x800] & 0xff;
|
||||||
|
|
||||||
fx = tile & fx_mask;
|
int fx = tile & fx_mask;
|
||||||
fy = tile & fy_mask;
|
int fy = tile & fy_mask;
|
||||||
tile = tile & sprite_mask;
|
tile = tile & sprite_mask;
|
||||||
if (tile > 0x4fff)
|
if (tile > 0x4fff)
|
||||||
continue;
|
continue;
|
||||||
@ -204,7 +198,7 @@ void alpha68k_state::draw_sprites_V( bitmap_ind16 &bitmap, const rectangle &clip
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t alpha68k_state::screen_update_alpha68k_V(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
u32 alpha68k_state::screen_update_alpha68k_V(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||||
|
|
||||||
@ -238,7 +232,7 @@ uint32_t alpha68k_state::screen_update_alpha68k_V(screen_device &screen, bitmap_
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t alpha68k_state::screen_update_alpha68k_V_sb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
u32 alpha68k_state::screen_update_alpha68k_V_sb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||||
|
|
||||||
@ -256,23 +250,22 @@ uint32_t alpha68k_state::screen_update_alpha68k_V_sb(screen_device &screen, bitm
|
|||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
//AT
|
//AT
|
||||||
void alpha68k_state::draw_sprites_I( bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d, int yshift )
|
void alpha68k_state::draw_sprites_I(bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d, int yshift)
|
||||||
{
|
{
|
||||||
int data, offs, mx, my, tile, color, fy, i;
|
|
||||||
gfx_element *gfx = m_gfxdecode->gfx(0);
|
gfx_element *gfx = m_gfxdecode->gfx(0);
|
||||||
|
|
||||||
for (offs = 0; offs < 0x400; offs += 0x20)
|
for (int offs = 0; offs < 0x400; offs += 0x20)
|
||||||
{
|
{
|
||||||
mx = m_spriteram[offs + c];
|
int mx = m_spriteram[offs + c];
|
||||||
my = (yshift - (mx >> 8)) & 0xff;
|
int my = (yshift - (mx >> 8)) & 0xff;
|
||||||
mx &= 0xff;
|
mx &= 0xff;
|
||||||
|
|
||||||
for (i = 0; i < 0x20; i++)
|
for (int i = 0; i < 0x20; i++)
|
||||||
{
|
{
|
||||||
data = m_spriteram[offs + d + i];
|
const u16 data = m_spriteram[offs + d + i];
|
||||||
tile = data & 0x3fff;
|
const u16 tile = data & 0x3fff;
|
||||||
fy = data & 0x4000;
|
const bool fy = data & 0x4000;
|
||||||
color = m_color_proms[tile << 1 | data >> 15];
|
const u8 color = m_color_proms[tile << 1 | data >> 15];
|
||||||
|
|
||||||
gfx->transpen(bitmap,cliprect, tile, color, 0, fy, mx, my, 0);
|
gfx->transpen(bitmap,cliprect, tile, color, 0, fy, mx, my, 0);
|
||||||
|
|
||||||
@ -281,7 +274,7 @@ void alpha68k_state::draw_sprites_I( bitmap_ind16 &bitmap, const rectangle &clip
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t alpha68k_state::screen_update_alpha68k_I(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
u32 alpha68k_state::screen_update_alpha68k_I(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
int yshift = (m_microcontroller_id == 0x890a) ? 1 : 0; // The Next Space is 1 pixel off
|
int yshift = (m_microcontroller_id == 0x890a) ? 1 : 0; // The Next Space is 1 pixel off
|
||||||
|
|
||||||
@ -298,7 +291,7 @@ uint32_t alpha68k_state::screen_update_alpha68k_I(screen_device &screen, bitmap_
|
|||||||
|
|
||||||
void alpha68k_state::kyros_palette(palette_device &palette) const
|
void alpha68k_state::kyros_palette(palette_device &palette) const
|
||||||
{
|
{
|
||||||
const uint8_t *color_prom = memregion("proms")->base();
|
const u8 *color_prom = memregion("proms")->base();
|
||||||
|
|
||||||
/* create a lookup table for the palette */
|
/* create a lookup table for the palette */
|
||||||
for (int i = 0; i < 0x100; i++)
|
for (int i = 0; i < 0x100; i++)
|
||||||
@ -315,14 +308,14 @@ void alpha68k_state::kyros_palette(palette_device &palette) const
|
|||||||
|
|
||||||
for (int i = 0; i < 0x100; i++)
|
for (int i = 0; i < 0x100; i++)
|
||||||
{
|
{
|
||||||
uint8_t const ctabentry = ((color_prom[i] & 0x0f) << 4) | (color_prom[i + 0x100] & 0x0f);
|
u8 const ctabentry = ((color_prom[i] & 0x0f) << 4) | (color_prom[i + 0x100] & 0x0f);
|
||||||
palette.set_pen_indirect(i, ctabentry);
|
palette.set_pen_indirect(i, ctabentry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void alpha68k_state::paddlem_palette(palette_device &palette) const
|
void alpha68k_state::paddlem_palette(palette_device &palette) const
|
||||||
{
|
{
|
||||||
const uint8_t *color_prom = memregion("proms")->base();
|
const u8 *color_prom = memregion("proms")->base();
|
||||||
|
|
||||||
/* create a lookup table for the palette */
|
/* create a lookup table for the palette */
|
||||||
for (int i = 0; i < 0x100; i++)
|
for (int i = 0; i < 0x100; i++)
|
||||||
@ -339,54 +332,52 @@ void alpha68k_state::paddlem_palette(palette_device &palette) const
|
|||||||
|
|
||||||
for (int i = 0; i < 0x400; i++)
|
for (int i = 0; i < 0x400; i++)
|
||||||
{
|
{
|
||||||
uint8_t const ctabentry = ((color_prom[i + 0x400] & 0x0f) << 4) | (color_prom[i] & 0x0f);
|
u8 const ctabentry = ((color_prom[i + 0x400] & 0x0f) << 4) | (color_prom[i] & 0x0f);
|
||||||
palette.set_pen_indirect(i, ctabentry);
|
palette.set_pen_indirect(i, ctabentry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void alpha68k_state::kyros_video_banking(int *bank, int data)
|
void alpha68k_state::kyros_video_banking(u8 *bank, int data)
|
||||||
{
|
{
|
||||||
*bank = (data >> 13 & 4) | (data >> 10 & 3);
|
*bank = (data >> 13 & 4) | (data >> 10 & 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void alpha68k_state::jongbou_video_banking(int *bank, int data)
|
void alpha68k_state::jongbou_video_banking(u8 *bank, int data)
|
||||||
{
|
{
|
||||||
*bank = (data >> 11 & 4) | (data >> 10 & 3);
|
*bank = (data >> 11 & 4) | (data >> 10 & 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void alpha68k_state::kyros_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d )
|
void alpha68k_state::kyros_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d)
|
||||||
{
|
{
|
||||||
int offs, mx, my, color, tile, i, bank, fy, fx;
|
|
||||||
int data;
|
|
||||||
|
|
||||||
//AT
|
//AT
|
||||||
for (offs = 0; offs < 0x400; offs += 0x20)
|
for (int offs = 0; offs < 0x400; offs += 0x20)
|
||||||
{
|
{
|
||||||
mx = m_spriteram[offs + c];
|
int mx = m_spriteram[offs + c];
|
||||||
my = -(mx >> 8) & 0xff;
|
int my = -(mx >> 8) & 0xff;
|
||||||
mx &= 0xff;
|
mx &= 0xff;
|
||||||
|
|
||||||
if (m_flipscreen)
|
if (m_flipscreen)
|
||||||
my = 249 - my;
|
my = 249 - my;
|
||||||
|
|
||||||
for (i = 0; i < 0x20; i++)
|
for (int i = 0; i < 0x20; i++)
|
||||||
{
|
{
|
||||||
data = m_spriteram[offs + d + i];
|
const u16 data = m_spriteram[offs + d + i];
|
||||||
if (data!=0x20)
|
if (data != 0x20)
|
||||||
{
|
{
|
||||||
color = m_color_proms[(data >> 1 & 0x1000) | (data & 0xffc) | (data >> 14 & 3)];
|
const u8 color = m_color_proms[(data >> 1 & 0x1000) | (data & 0xffc) | (data >> 14 & 3)];
|
||||||
if (color != 0xff)
|
if (color != 0xff)
|
||||||
{
|
{
|
||||||
fy = data & 0x1000;
|
int fy = data & 0x1000;
|
||||||
fx = 0;
|
int fx = 0;
|
||||||
|
|
||||||
if(m_flipscreen)
|
if (m_flipscreen)
|
||||||
{
|
{
|
||||||
if (fy) fy = 0; else fy = 1;
|
if (fy) fy = 0; else fy = 1;
|
||||||
fx = 1;
|
fx = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
tile = (data >> 3 & 0x400) | (data & 0x3ff);
|
u8 bank = 0;
|
||||||
|
const u32 tile = (data >> 3 & 0x400) | (data & 0x3ff);
|
||||||
if (m_game_id == ALPHA68K_KYROS)
|
if (m_game_id == ALPHA68K_KYROS)
|
||||||
kyros_video_banking(&bank, data);
|
kyros_video_banking(&bank, data);
|
||||||
else
|
else
|
||||||
@ -404,7 +395,7 @@ void alpha68k_state::kyros_draw_sprites( bitmap_ind16 &bitmap, const rectangle &
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t alpha68k_state::screen_update_kyros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
u32 alpha68k_state::screen_update_kyros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
m_palette->set_pen_indirect(0x100, *m_videoram & 0xff);
|
m_palette->set_pen_indirect(0x100, *m_videoram & 0xff);
|
||||||
bitmap.fill(0x100, cliprect); //AT
|
bitmap.fill(0x100, cliprect); //AT
|
||||||
@ -417,15 +408,13 @@ uint32_t alpha68k_state::screen_update_kyros(screen_device &screen, bitmap_ind16
|
|||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
void alpha68k_state::sstingry_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d )
|
void alpha68k_state::sstingry_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d)
|
||||||
{
|
{
|
||||||
//AT
|
//AT
|
||||||
int data, offs, mx, my, color, tile, i, bank, fy, fx;
|
for (int offs = 0; offs < 0x400; offs += 0x20)
|
||||||
|
|
||||||
for (offs = 0; offs < 0x400; offs += 0x20)
|
|
||||||
{
|
{
|
||||||
mx = m_spriteram[offs + c];
|
int mx = m_spriteram[offs + c];
|
||||||
my = -(mx >> 8) & 0xff;
|
int my = -(mx >> 8) & 0xff;
|
||||||
mx &= 0xff;
|
mx &= 0xff;
|
||||||
if (mx > 0xf8)
|
if (mx > 0xf8)
|
||||||
mx -= 0x100;
|
mx -= 0x100;
|
||||||
@ -433,27 +422,27 @@ void alpha68k_state::sstingry_draw_sprites( bitmap_ind16 &bitmap, const rectangl
|
|||||||
if (m_flipscreen)
|
if (m_flipscreen)
|
||||||
my = 249 - my;
|
my = 249 - my;
|
||||||
|
|
||||||
for (i = 0; i < 0x20; i++)
|
for (int i = 0; i < 0x20; i++)
|
||||||
{
|
{
|
||||||
data = m_spriteram[offs + d + i];
|
const u16 data = m_spriteram[offs + d + i];
|
||||||
if (data != 0x40)
|
if (data != 0x40)
|
||||||
{
|
{
|
||||||
fy = data & 0x1000;
|
int fy = data & 0x1000;
|
||||||
fx = 0;
|
int fx = 0;
|
||||||
|
|
||||||
if(m_flipscreen)
|
if (m_flipscreen)
|
||||||
{
|
{
|
||||||
if (fy) fy = 0; else fy = 1;
|
if (fy) fy = 0; else fy = 1;
|
||||||
fx = 1;
|
fx = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
color = (data >> 7 & 0x18) | (data >> 13 & 7);
|
const u16 color = (data >> 7 & 0x18) | (data >> 13 & 7);
|
||||||
tile = data & 0x3ff;
|
const u16 tile = data & 0x3ff;
|
||||||
bank = data >> 10 & 3;
|
const u8 bank = data >> 10 & 3;
|
||||||
m_gfxdecode->gfx(bank)->transpen(bitmap,cliprect, tile, color, fx, fy, mx, my, 0);
|
m_gfxdecode->gfx(bank)->transpen(bitmap,cliprect, tile, color, fx, fy, mx, my, 0);
|
||||||
}
|
}
|
||||||
//ZT
|
//ZT
|
||||||
if(m_flipscreen)
|
if (m_flipscreen)
|
||||||
my = (my - 8) & 0xff;
|
my = (my - 8) & 0xff;
|
||||||
else
|
else
|
||||||
my = (my + 8) & 0xff;
|
my = (my + 8) & 0xff;
|
||||||
@ -461,7 +450,7 @@ void alpha68k_state::sstingry_draw_sprites( bitmap_ind16 &bitmap, const rectangl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t alpha68k_state::screen_update_sstingry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
u32 alpha68k_state::screen_update_sstingry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
m_palette->set_pen_indirect(0x100, *m_videoram & 0xff);
|
m_palette->set_pen_indirect(0x100, *m_videoram & 0xff);
|
||||||
bitmap.fill(0x100, cliprect); //AT
|
bitmap.fill(0x100, cliprect); //AT
|
||||||
|
Loading…
Reference in New Issue
Block a user