mirror of
https://github.com/holub/mame
synced 2025-07-03 09:06:08 +03:00
XaviX - Various improvements and note updates, allows taitons1/ns2 to run, ping pong to show stuff etc. (#4106)
* XaviX - Ping Pong has some funky code, make a quick note about it, needed for Radica logo to display * since taitons2 is apparently booting at the moment, add the directional inputs needed for it (nw) * improve palette handling for mode used by taitons2 (nw) * somewhat improved sprite positioning (nw) * fix some errors I introduced (nw) * (nw) * better position still (nw) * taitons1 inputs (nw) * give card night some inputs (nw)
This commit is contained in:
parent
50b026e57f
commit
ba0afc14aa
@ -247,39 +247,43 @@ WRITE8_MEMBER(xavix_state::main_w)
|
|||||||
this can't be correct, it breaks monster truck which expects ROM at 8000 even in the >0x800000 region, maybe code + data mappings need
|
this can't be correct, it breaks monster truck which expects ROM at 8000 even in the >0x800000 region, maybe code + data mappings need
|
||||||
to be kept separate, with >0x800000 showing both ROM banks for code, but still having the zero page area etc. for data?
|
to be kept separate, with >0x800000 showing both ROM banks for code, but still having the zero page area etc. for data?
|
||||||
|
|
||||||
|
The code at 00EA84 in Ping Pong stores 8e to the data bank, reads 16 bit pointer from from 0000 + y (expecting it to come from zero page ram - value 3081)
|
||||||
|
then reads data from 3081, pushes it to stack (which is expected to work) then sets data bank back to 00 (writes to ff, expecting it to work) then pulls
|
||||||
|
the value written and puts it in RAM. Is stack actually still memory mapped at this point, or do stack operations always go to stack regardless?
|
||||||
|
Do reads return databank/codebank/stack, or only zero page? is zero page visibility maybe even conditional on how it gets used?
|
||||||
|
|
||||||
*/
|
*/
|
||||||
READ8_MEMBER(xavix_state::main2_r)
|
READ8_MEMBER(xavix_state::main2_r)
|
||||||
{
|
{
|
||||||
if (offset & 0x8000)
|
if (offset & 0x8000)
|
||||||
{
|
{
|
||||||
return m_rgn[(offset) & (m_rgnlen - 1)];
|
return m_rgn[(offset) & (m_rgnlen - 1)];
|
||||||
// return m_lowbus->read8(space, offset&0x7fff);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (offset>0x200)
|
if ((offset & 0xffff) >= 0x200)
|
||||||
|
{
|
||||||
return m_rgn[(offset) & (m_rgnlen - 1)];
|
return m_rgn[(offset) & (m_rgnlen - 1)];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return m_lowbus->read8(space, offset&0x7fff);
|
return m_lowbus->read8(space, offset & 0x7fff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(xavix_state::main2_w)
|
WRITE8_MEMBER(xavix_state::main2_w)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if (offset & 0x8000)
|
if (offset & 0x8000)
|
||||||
{
|
{
|
||||||
m_lowbus->write8(space, offset & 0x7fff, data);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (offset>0x200)
|
if ((offset & 0xffff) >= 0x200)
|
||||||
logerror("write to ROM area?\n");
|
logerror("write to ROM area?\n");
|
||||||
else
|
else
|
||||||
m_lowbus->write8(space, offset & 0x7fff, data);
|
m_lowbus->write8(space, offset & 0x7fff, data);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// DATA reads from 0x8000-0xffff are banked by byte 0xff of 'ram' (this is handled in the CPU core)
|
// DATA reads from 0x8000-0xffff are banked by byte 0xff of 'ram' (this is handled in the CPU core)
|
||||||
@ -529,7 +533,14 @@ static INPUT_PORTS_START( rad_crdn )
|
|||||||
PORT_INCLUDE(xavix)
|
PORT_INCLUDE(xavix)
|
||||||
|
|
||||||
PORT_MODIFY("IN0")
|
PORT_MODIFY("IN0")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // can press this to get to a game select screen
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
||||||
|
|
||||||
|
PORT_MODIFY("IN1")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( rad_crdnp )
|
static INPUT_PORTS_START( rad_crdnp )
|
||||||
@ -588,10 +599,14 @@ static INPUT_PORTS_START( namcons2 )
|
|||||||
PORT_INCLUDE(xavix)
|
PORT_INCLUDE(xavix)
|
||||||
|
|
||||||
PORT_MODIFY("IN0")
|
PORT_MODIFY("IN0")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // Fire1?
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // Fire2?
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) // Pause / Add Coins
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
/* correct, 4bpp gfxs */
|
/* correct, 4bpp gfxs */
|
||||||
@ -850,7 +865,7 @@ ROM_END
|
|||||||
|
|
||||||
/* Standalone TV Games */
|
/* Standalone TV Games */
|
||||||
|
|
||||||
CONS( 2006, taitons1, 0, 0, xavix, xavix, xavix_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 1", MACHINE_IS_SKELETON )
|
CONS( 2006, taitons1, 0, 0, xavix, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 1", MACHINE_IS_SKELETON )
|
||||||
|
|
||||||
CONS( 2006, taitons2, 0, 0, xavix, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 2", MACHINE_IS_SKELETON )
|
CONS( 2006, taitons2, 0, 0, xavix, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 2", MACHINE_IS_SKELETON )
|
||||||
|
|
||||||
|
@ -217,17 +217,12 @@ void xavix_state::draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, cons
|
|||||||
|
|
||||||
int bpp, pal, scrolly, scrollx;
|
int bpp, pal, scrolly, scrollx;
|
||||||
int tile = 0;
|
int tile = 0;
|
||||||
int extraattr = 0;
|
|
||||||
|
|
||||||
// the register being 0 probably isn't the condition here
|
// the register being 0 probably isn't the condition here
|
||||||
if (tileregs[0x0] != 0x00) tile |= mainspace.read_byte((tileregs[0x0] << 8) + count);
|
if (tileregs[0x0] != 0x00) tile |= mainspace.read_byte((tileregs[0x0] << 8) + count);
|
||||||
if (tileregs[0x1] != 0x00) tile |= mainspace.read_byte((tileregs[0x1] << 8) + count) << 8;
|
if (tileregs[0x1] != 0x00) tile |= mainspace.read_byte((tileregs[0x1] << 8) + count) << 8;
|
||||||
|
// 24 bit modes can use reg 0x2, otherwise it gets used as extra attribute in other modes
|
||||||
|
|
||||||
// at the very least boxing leaves unwanted bits set in ram after changing between mode 0x8a and 0x82, expecting them to not be used
|
|
||||||
if (tileregs[0x7] & 0x08)
|
|
||||||
extraattr = mainspace.read_byte((tileregs[0x2] << 8) + count);
|
|
||||||
|
|
||||||
count++;
|
|
||||||
|
|
||||||
bpp = (tileregs[0x3] & 0x0e) >> 1;
|
bpp = (tileregs[0x3] & 0x0e) >> 1;
|
||||||
bpp++;
|
bpp++;
|
||||||
@ -244,7 +239,10 @@ void xavix_state::draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, cons
|
|||||||
// this is consistent with the top layer too
|
// this is consistent with the top layer too
|
||||||
// should we draw as solid in solid layer?
|
// should we draw as solid in solid layer?
|
||||||
if (tile == 0)
|
if (tile == 0)
|
||||||
|
{
|
||||||
|
count++;
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
const int debug_packets = 0;
|
const int debug_packets = 0;
|
||||||
int test = 0;
|
int test = 0;
|
||||||
@ -264,20 +262,21 @@ void xavix_state::draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, cons
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Addressing Mode 1 uses a fixed offset? (like sprites)
|
// 8-byte alignment Addressing Mode uses a fixed offset? (like sprites)
|
||||||
tile = tile * 8;
|
tile = tile * 8;
|
||||||
basereg = (tile & 0x70000) >> 16;
|
basereg = (tile & 0x70000) >> 16;
|
||||||
tile &= 0xffff;
|
tile &= 0xffff;
|
||||||
gfxbase = (m_segment_regs[(basereg * 2) + 1] << 16) | (m_segment_regs[(basereg * 2)] << 8);
|
gfxbase = (m_segment_regs[(basereg * 2) + 1] << 16) | (m_segment_regs[(basereg * 2)] << 8);
|
||||||
tile += gfxbase;
|
tile += gfxbase;
|
||||||
|
}
|
||||||
|
|
||||||
// Tilemap specific mode extension with an 8-bit per tile attribute
|
// Tilemap specific mode extension with an 8-bit per tile attribute, works in all modes except 24-bit (no room for attribute) and header (not needed?)
|
||||||
if (tileregs[0x7] & 0x08)
|
if (tileregs[0x7] & 0x08)
|
||||||
{
|
{
|
||||||
// make use of the extraattr stuff?
|
uint8_t extraattr = mainspace.read_byte((tileregs[0x2] << 8) + count);
|
||||||
pal = (extraattr & 0xf0)>>4;
|
// make use of the extraattr stuff?
|
||||||
// low bits are priority?
|
pal = (extraattr & 0xf0)>>4;
|
||||||
}
|
// low bits are priority?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -377,6 +376,8 @@ void xavix_state::draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, cons
|
|||||||
draw_tile(screen, bitmap, cliprect, tile, bpp, (x * xtilesize) + scrollx, (((y * ytilesize) - 16) - scrolly) + 256, ytilesize, xtilesize, flipx, flipy, pal, opaque); // wrap-y
|
draw_tile(screen, bitmap, cliprect, tile, bpp, (x * xtilesize) + scrollx, (((y * ytilesize) - 16) - scrolly) + 256, ytilesize, xtilesize, flipx, flipy, pal, opaque); // wrap-y
|
||||||
draw_tile(screen, bitmap, cliprect, tile, bpp, ((x * xtilesize) + scrollx) - 256, ((y * ytilesize) - 16) - scrolly, ytilesize, xtilesize, flipx, flipy, pal, opaque); // wrap-x
|
draw_tile(screen, bitmap, cliprect, tile, bpp, ((x * xtilesize) + scrollx) - 256, ((y * ytilesize) - 16) - scrolly, ytilesize, xtilesize, flipx, flipy, pal, opaque); // wrap-x
|
||||||
draw_tile(screen, bitmap, cliprect, tile, bpp, ((x * xtilesize) + scrollx) - 256, (((y * ytilesize) - 16) - scrolly) + 256, ytilesize, xtilesize, flipx, flipy, pal, opaque); // wrap-y and x
|
draw_tile(screen, bitmap, cliprect, tile, bpp, ((x * xtilesize) + scrollx) - 256, (((y * ytilesize) - 16) - scrolly) + 256, ytilesize, xtilesize, flipx, flipy, pal, opaque); // wrap-y and x
|
||||||
|
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -393,7 +394,7 @@ void xavix_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, cons
|
|||||||
}
|
}
|
||||||
else if (m_spritereg == 0x02)
|
else if (m_spritereg == 0x02)
|
||||||
{
|
{
|
||||||
// 16-bit addressing (Addressing Mode 1)
|
// 16-bit addressing (8-byte alignment Addressing Mode)
|
||||||
alt_addressing = 2;
|
alt_addressing = 2;
|
||||||
}
|
}
|
||||||
else if (m_spritereg == 0x04)
|
else if (m_spritereg == 0x04)
|
||||||
@ -441,6 +442,9 @@ void xavix_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, cons
|
|||||||
int drawheight = 16;
|
int drawheight = 16;
|
||||||
int drawwidth = 16;
|
int drawwidth = 16;
|
||||||
|
|
||||||
|
int xpos_adjust = 0;
|
||||||
|
int ypos_adjust = 0;
|
||||||
|
|
||||||
tile &= (m_rgnlen - 1);
|
tile &= (m_rgnlen - 1);
|
||||||
|
|
||||||
// taito nost attr1 is 84 / 80 / 88 / 8c for the various elements of the xavix logo. monster truck uses ec / fc / dc / 4c / 5c / 6c (final 6 sprites ingame are 00 00 f0 f0 f0 f0, radar?)
|
// taito nost attr1 is 84 / 80 / 88 / 8c for the various elements of the xavix logo. monster truck uses ec / fc / dc / 4c / 5c / 6c (final 6 sprites ingame are 00 00 f0 f0 f0 f0, radar?)
|
||||||
@ -454,20 +458,20 @@ void xavix_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, cons
|
|||||||
{
|
{
|
||||||
drawheight = 16;
|
drawheight = 16;
|
||||||
drawwidth = 8;
|
drawwidth = 8;
|
||||||
xpos += 4;
|
xpos_adjust = 4;
|
||||||
}
|
}
|
||||||
else if ((attr1 & 0x0c) == 0x04)
|
else if ((attr1 & 0x0c) == 0x04)
|
||||||
{
|
{
|
||||||
drawheight = 8;
|
drawheight = 8;
|
||||||
drawwidth = 16;
|
drawwidth = 16;
|
||||||
ypos -= 4;
|
ypos_adjust = -4;
|
||||||
}
|
}
|
||||||
else if ((attr1 & 0x0c) == 0x00)
|
else if ((attr1 & 0x0c) == 0x00)
|
||||||
{
|
{
|
||||||
drawheight = 8;
|
drawheight = 8;
|
||||||
drawwidth = 8;
|
drawwidth = 8;
|
||||||
xpos += 4;
|
xpos_adjust = 4;
|
||||||
ypos -= 4;
|
ypos_adjust = -4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Everything except direct addressing (Addressing Mode 2) goes through the segment registers?
|
// Everything except direct addressing (Addressing Mode 2) goes through the segment registers?
|
||||||
@ -477,41 +481,55 @@ void xavix_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, cons
|
|||||||
if (alt_addressing == 1)
|
if (alt_addressing == 1)
|
||||||
tile = (tile * drawheight * drawwidth) / 2;
|
tile = (tile * drawheight * drawwidth) / 2;
|
||||||
|
|
||||||
// Addressing Mode 1 uses a fixed offset?
|
// 8-byte alignment Addressing Mode uses a fixed offset?
|
||||||
if (alt_addressing == 2)
|
if (alt_addressing == 2)
|
||||||
tile = tile * 8;
|
tile = tile * 8;
|
||||||
|
|
||||||
int basereg = (tile & 0xf0000) >> 16;
|
int basereg = (tile & 0xf0000) >> 16;
|
||||||
tile &= 0xffff;
|
tile &= 0xffff;
|
||||||
int gfxbase = (m_segment_regs[(basereg * 2) + 1] << 16) | (m_segment_regs[(basereg * 2)] << 8);
|
int gfxbase = (m_segment_regs[(basereg * 2) + 1] << 16) | (m_segment_regs[(basereg * 2)] << 8);
|
||||||
tile+= gfxbase;
|
tile += gfxbase;
|
||||||
}
|
}
|
||||||
|
|
||||||
ypos = 0x100 - ypos;
|
/* coodrinates are signed, based on screen position 0,0 being at the center of the screen
|
||||||
|
tile addressing likewise, point 0,0 is center of tile?
|
||||||
|
this makes the calculation a bit more annoying in terms of knowing when to apply offsets, when to wrap etc.
|
||||||
|
this is likely still incorrect
|
||||||
|
|
||||||
|
I think there is also an additional x bit
|
||||||
|
*/
|
||||||
|
|
||||||
xpos -= 136;
|
xpos -= 136;
|
||||||
ypos -= 152;
|
|
||||||
|
|
||||||
xpos &= 0xff;
|
xpos &= 0xff;
|
||||||
ypos &= 0xff;
|
|
||||||
|
|
||||||
if (ypos >= 192)
|
ypos ^= 0xff;
|
||||||
ypos -= 256;
|
|
||||||
|
if (ypos & 0x80)
|
||||||
|
{
|
||||||
|
ypos = -0x80+(ypos&0x7f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ypos &= 0x7f;
|
||||||
|
}
|
||||||
|
|
||||||
|
ypos += 128 - 15 - 8;
|
||||||
|
|
||||||
|
|
||||||
int bpp = 1;
|
int bpp = 1;
|
||||||
|
|
||||||
bpp = (attr0 & 0x0e) >> 1;
|
bpp = (attr0 & 0x0e) >> 1;
|
||||||
bpp += 1;
|
bpp += 1;
|
||||||
|
|
||||||
draw_tile(screen, bitmap, cliprect, tile, bpp, xpos, ypos, drawheight, drawwidth, flipx, 0, pal, 0);
|
draw_tile(screen, bitmap, cliprect, tile, bpp, xpos + xpos_adjust, ypos - ypos_adjust, drawheight, drawwidth, flipx, 0, pal, 0);
|
||||||
draw_tile(screen, bitmap, cliprect, tile, bpp, xpos - 256, ypos, drawheight, drawwidth, flipx, 0, pal, 0); // wrap-x
|
draw_tile(screen, bitmap, cliprect, tile, bpp, xpos + xpos_adjust - 256, ypos - ypos_adjust, drawheight, drawwidth, flipx, 0, pal, 0); // wrap-x
|
||||||
draw_tile(screen, bitmap, cliprect, tile, bpp, xpos, ypos - 256, drawheight, drawwidth, flipx, 0, pal, 0); // wrap-y
|
draw_tile(screen, bitmap, cliprect, tile, bpp, xpos + xpos_adjust, ypos - 256 - ypos_adjust, drawheight, drawwidth, flipx, 0, pal, 0); // wrap-y
|
||||||
draw_tile(screen, bitmap, cliprect, tile, bpp, xpos - 256, ypos - 256, drawheight, drawwidth, flipx, 0, pal, 0); // wrap-x,y
|
draw_tile(screen, bitmap, cliprect, tile, bpp, xpos + xpos_adjust - 256, ypos - 256 - ypos_adjust, drawheight, drawwidth, flipx, 0, pal, 0); // wrap-x,y
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if ((spr_ypos[i] != 0x81) && (spr_ypos[i] != 0x80) && (spr_ypos[i] != 0x00))
|
if ((spr_ypos[i] != 0x81) && (spr_ypos[i] != 0x80) && (spr_ypos[i] != 0x00))
|
||||||
{
|
{
|
||||||
logerror("sprite with enable? %02x attr0 %02x attr1 %02x attr3 %02x attr5 %02x attr6 %02x attr7 %02x\n", spr_ypos[i], spr_attr0[i], spr_attr1[i], spr_xpos[i], spr_addr_lo[i], spr_addr_md[i], spr_addr_hi[i] );
|
logerror("sprite with enable? %02x attr0 %02x attr1 %02x attr3 %02x attr5 %02x attr6 %02x attr7 %02x\n", spr_ypos[i], spr_attr0[i], spr_attr1[i], spr_xpos[i], spr_addr_lo[i], spr_addr_md[i], spr_addr_hi[i] );
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
@ -673,13 +691,13 @@ WRITE8_MEMBER(xavix_state::tmap1_regs_w)
|
|||||||
modes are
|
modes are
|
||||||
---0 0000 (00) 8-bit addressing (Tile Number)
|
---0 0000 (00) 8-bit addressing (Tile Number)
|
||||||
---0 0001 (01) 16-bit addressing (Tile Number) (monster truck, ekara)
|
---0 0001 (01) 16-bit addressing (Tile Number) (monster truck, ekara)
|
||||||
---0 0010 (02) 16-bit addressing (Addressing Mode 1) (boxing)
|
---0 0010 (02) 16-bit addressing (8-byte alignment Addressing Mode) (boxing)
|
||||||
---0 0011 (03) 16-bit addressing (Addressing Mode 2)
|
---0 0011 (03) 16-bit addressing (Addressing Mode 2)
|
||||||
---0 0100 (04) 24-bit addressing (Addressing Mode 2)
|
---0 0100 (04) 24-bit addressing (Addressing Mode 2)
|
||||||
|
|
||||||
---0 1000 (08) 8-bit+8 addressing (Tile Number + 8-bit Attribute)
|
---0 1000 (08) 8-bit+8 addressing (Tile Number + 8-bit Attribute)
|
||||||
---0 1001 (09) 16-bit+8 addressing (Tile Number + 8-bit Attribute)
|
---0 1001 (09) 16-bit+8 addressing (Tile Number + 8-bit Attribute) (Taito Nostalgia 2)
|
||||||
---0 1010 (0a) 16-bit+8 addressing (Addressing Mode 1 + 8-bit Attribute) (boxing, Snowboard)
|
---0 1010 (0a) 16-bit+8 addressing (8-byte alignment Addressing Mode + 8-bit Attribute) (boxing, Snowboard)
|
||||||
---0 1011 (0b) 16-bit+8 addressing (Addressing Mode 2 + 8-bit Attribute)
|
---0 1011 (0b) 16-bit+8 addressing (Addressing Mode 2 + 8-bit Attribute)
|
||||||
|
|
||||||
---1 0011 (13) 16-bit addressing (Addressing Mode 2 + Inline Header) (monster truck)
|
---1 0011 (13) 16-bit addressing (Addressing Mode 2 + Inline Header) (monster truck)
|
||||||
@ -700,7 +718,7 @@ WRITE8_MEMBER(xavix_state::tmap2_regs_w)
|
|||||||
// same as above but for 2nd tilemap
|
// same as above but for 2nd tilemap
|
||||||
if ((offset != 0x4) && (offset != 0x5))
|
if ((offset != 0x4) && (offset != 0x5))
|
||||||
{
|
{
|
||||||
//logerror("%s: tmap2_regs_w offset %02x data %02x\n", machine().describe_context(), offset, data);
|
logerror("%s: tmap2_regs_w offset %02x data %02x\n", machine().describe_context(), offset, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
COMBINE_DATA(&m_tmap2_regs[offset]);
|
COMBINE_DATA(&m_tmap2_regs[offset]);
|
||||||
@ -715,7 +733,7 @@ WRITE8_MEMBER(xavix_state::spriteregs_w)
|
|||||||
|
|
||||||
---0 -000 (00) 8-bit addressing (Tile Number)
|
---0 -000 (00) 8-bit addressing (Tile Number)
|
||||||
---0 -001 (01) 16-bit addressing (Tile Number)
|
---0 -001 (01) 16-bit addressing (Tile Number)
|
||||||
---0 -010 (02) 16-bit addressing (Addressing Mode 1)
|
---0 -010 (02) 16-bit addressing (8-byte alignment Addressing Mode)
|
||||||
---0 -011 (03) 16-bit addressing (Addressing Mode 2)
|
---0 -011 (03) 16-bit addressing (Addressing Mode 2)
|
||||||
---0 -100 (04) 24-bit addressing (Addressing Mode 2)
|
---0 -100 (04) 24-bit addressing (Addressing Mode 2)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user