diff --git a/hash/ekara.xml b/hash/ekara.xml
index 0064b20dd2c..8f93981e6b4 100644
--- a/hash/ekara.xml
+++ b/hash/ekara.xml
@@ -15,9 +15,17 @@
ECxxxx-KID = Kid's Mix? (guess)
ECxxxx-ENK = unknown
ECxxxx-BSC = Graduation Encouragement
+ ECxxxx-G79 = unknown
Some Japanese carts have a number starting with BC
BCxxxx-BHT = unknown
+
+ Some Japanese carts have a number starting with GC
+ GCxxxx-BHT = unknown
+
+ Some Japanese carts have a number starting with SC
+ SCxxxx-SAI = unknown
+ SCxxxx-HKW = unknown
***********************************************************************************
@@ -25,20 +33,20 @@
* = dumped, # = identified, but not dumped. Titles in parenthesis are guessed
EC0001- (J-Pop Mix Volume 1?)
- EC0002- (J-Pop Mix Volume 2?)
+ *EC0002- (J-Pop Mix Volume 2?)
*EC0003- J-Pop Mix Volume 3
EC0004-
EC0005-
*EC0006- ENK Volume 1
EC0007-
- EC0008-
+ *EC0008- G79?
EC0009-
*EC0010- Kid's Mix Volume 1
EC0011-
*EC0012- J-Pop Mix Volume 7
*EC0013- J-Pop Mix Volume 8
- EC0014-
+ *EC0014- Artist Selection Volume 1 - unknown artist
*EC0015- Artist Selection Volume 2 - unknown artist
EC0016-
EC0017-
@@ -48,9 +56,9 @@
#EC0020- Kid's Mix Volume 2
EC0021-
*EC0022- J-Pop Mix Volume 10
- #EC0023- J-Pop Mix Volume 11
+ *EC0023- J-Pop Mix Volume 11
EC0024- (J-Pop Mix Volume 12?)
- EC0025- (J-Pop Mix Volume 13?)
+ *EC0025- J-Pop Mix Volume 13
*EC0026- J-Pop Mix Volume 14
*EC0027- J-Pop Mix Volume 15
EC0028-
@@ -61,14 +69,14 @@
EC0032-
EC0033-
*EC0034- Kid's Mix Volume 3
- #EC0035- Artist Selection Volume 5 - Matsuda Seiko
+ *EC0035- Artist Selection Volume 5 - Matsuda Seiko
*EC0036- Artist Selection Volume 6 - KinKi Kids
EC0037-
#EC0038- Graduation Encouragement Volume 2
EC0039-
EC0040-
- EC0041-
+ *EC0041- Artist Selection Volume ? - unknown artist
*EC0042- J-Pop Mix Volume 19
EC0043-
*EC0044- Artist Selection Volume 9 - Every Little Thing
@@ -97,19 +105,19 @@
EC0065
EC0066-
EC0067-
- EC0068-
+ *EC0068- J-Pop Mix Volume ?
EC0069-
- EC0070- (J-Pop Mix Volume Vol ?)
+ *EC0070- (J-Pop Mix Volume Vol ?)
EC0071-
- EC0072- (J-Pop Mix Volume Vol ?)
+ *EC0072- (J-Pop Mix Volume Vol ?)
EC0073-
EC0074-
EC0075
- EC0076- (J-Pop Mix Volume Vol ?)
+ *EC0076- (J-Pop Mix Volume Vol ?)
- (more? what's the GC highest number?)
+ (more? what's the EC highest number?)
***********************************************************************************
@@ -118,9 +126,22 @@
GC0001-
*GC0002- BHT Volume 1
+ GC0003-
+ GC0004-
+ GC0005-
+ *GC0006- BHT Volume ?
- (more? what's the BC highest number?)
-
+ (more? what's the GC highest number?)
+
+ ***********************************************************************************
+
+ Japanese cart listing (by MC code)
+ * = dumped, # = identified, but not dumped. Titles in parenthesis are guessed
+
+ *MC0001- Mini Volume 1
+
+ (more? what's the MC highest number?)
+
***********************************************************************************
Japanese cart listing (by DC code) (the numbering on these doesn't make much sense)
@@ -128,17 +149,36 @@
#(cartridge marked D-2) DC0002-BAT Best Artist Volume 6
#(cartridge marked D-3) DC0003-BHT Best Artist Volume 9
-
- (more? what's the BC highest number?)
+ (more? what's the DC highest number?)
***********************************************************************************
- Japanese cart listing (by S-* label) (these might have GC/DC numbering on the carts?)
- # S-1 Hello Kitty Special
- ...
- S-23
-
+ Japanese cart listing (by S-* label, SCxxxx- code)
+ #SC0001- Hello Kitty Special
+ SC0002-
+ SC0003-
+ SC0004-
+ *SC0005- unknown
+ *SC0006- unknown
+ SC0007-
+ SC0008-
+ *SC0009- unknown
+ *SC0010- unknown
+ SC0011-
+ SC0012-
+ SC0013-
+ SC0014-
+ SC0015-
+ SC0016-
+ SC0017-
+ SC0018-
+ *SC0019- unknown
+ SC0020-
+ *SC0021- unknown
+ *SC0022- unknown
+ SC0023-
+
(not seen above S-23)
-->
@@ -146,7 +186,7 @@
-
+
+ e-kara US Volume 3 (US-E003)
+ 2000
+ Takara
+
+
+
+
+
+
+
+
+
+ e-kara US Volume 8 'No Boys Allowed' (US-E008)
+ 2002
+ Takara
+
+
+
+
+
+
+
+
+
+ e-kara US Volume 9 'No Boys Allowed' (US-E009)
+ 2002
+ Takara
+
+
+
+
+
+
+
+
+ J-Pop Mix Volume 2 (Japan) (EC0002-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
J-Pop Mix Volume 3 (Japan) (EC0003-JPM)
2000
@@ -396,6 +516,17 @@
+
+ unknown (Japan) (EC0008-G79)
+ 2000
+ Takara
+
+
+
+
+
+
+
Kid's Mix Volume 1 (Japan) (EC0010-KID)
2000
@@ -429,6 +560,17 @@
+
+ Artist Selection Volume 1 (unknown) (Japan) (EC0014-ATS)
+ 2000
+ Takara
+
+
+
+
+
+
+
Artist Selection Volume 2 (unknown) (Japan) (EC0015-ATS)
2000
@@ -451,6 +593,28 @@
+
+ J-Pop Mix Volume 11 (Japan) (EC0023-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
+
+ J-Pop Mix Volume 13 (Japan) (EC0025-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
J-Pop Mix Volume 14 (Japan) (EC0026-JPM)
2000
@@ -506,6 +670,17 @@
+
+ Artist Selection Volume 5 (Matsuda Seiko) (Japan) (EC0035-ATS)
+ 2000
+ Takara
+
+
+
+
+
+
+
Artist Selection Volume 6 (KinKi Kids) (Japan) (EC0036-ATS)
2000
@@ -517,6 +692,17 @@
+
+ Artist Selection Volume ? (unknown) (Japan) (EC0041-ATS)
+ 2000
+ Takara
+
+
+
+
+
+
+
J-Pop Mix Volume 19 (Japan) (EC0042-JPM)
2000
@@ -581,7 +767,51 @@
-
+
+
+
+ J-Pop Mix Volume ? (Japan) (EC0068-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
+
+ J-Pop Mix Volume ? (Japan) (EC0070-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
+
+ J-Pop Mix Volume ? (Japan) (EC0072-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
+
+ J-Pop Mix Volume ? (Japan) (EC0076-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
@@ -594,6 +824,126 @@
+
+
+
+ BHT Volume ? (Japan) (GC0006-BHT)
+ 2000
+ Takara
+
+
+
+
+
+
+
+
+
+
+
+ Mini Volume 1 (Japan) (MC0001-ATM)
+ 2003
+ Takara
+
+
+
+
+
+
+
+
+
+
+
+ unknown (Japan) (SC0005-SAI)
+ 2001
+ Takara
+
+
+
+
+
+
+ unknown (Japan) (SC0006-SAI)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+ unknown (Japan) (SC0009-SAI)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+ unknown (Japan) (SC0010-HKW)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+ unknown (Japan) (SC0019-SAI)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+ unknown (Japan) (SC0021-SAI)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+ unknown (Japan) (SC0022-SAI)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+
+ e-kara Web cartridge 28M (Japan)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp
index 046833a3c4b..464cf9bf6e1 100644
--- a/src/mame/drivers/nes_vt.cpp
+++ b/src/mame/drivers/nes_vt.cpp
@@ -1843,10 +1843,10 @@ CONS( 200?, gprnrs1, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_ini
CONS( 200?, gprnrs16, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "", "Game Prince RS-16", MACHINE_IMPERFECT_GRAPHICS )
// Notes:
-// * Seems to have missing a few PCM sounds.
+// * Missing PCM sounds (unsupported in NES VT APU code right now)
// * Console has stereo output (dual RCA connectors).
// * It hangs when reset (F3) on a MAME debug build.
-CONS( 2001, ddrdismx, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "Majesco (licensed from Konami, Disney)", "Dance Dance Revolution Disney Mix", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+CONS( 2006, ddrdismx, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "Majesco (licensed from Konami, Disney)", "Dance Dance Revolution Disney Mix", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // shows (c)2001 Disney onscreen, but that's recycled art from the Playstation release, actual release was 2006
// unsorted, these were all in nes.xml listed as ONE BUS systems
CONS( 200?, mc_dg101, 0, 0, nes_vt, nes_vt, nes_vt_state, empty_init, "dreamGEAR", "dreamGEAR 101 in 1", MACHINE_IMPERFECT_GRAPHICS ) // dreamGear, but no enhanced games?
diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp
index 297614c4cb8..4be27cc6d78 100644
--- a/src/mame/drivers/xavix.cpp
+++ b/src/mame/drivers/xavix.cpp
@@ -275,7 +275,7 @@ void xavix_state::xavix_lowbus_map(address_map &map)
map(0x4000, 0x4fff).rw(FUNC(xavix_state::xavix_memoryemu_txarray_r), FUNC(xavix_state::xavix_memoryemu_txarray_w));
// Sprite RAM (aka Fragment RAM)
- map(0x6000, 0x67ff).ram().share("fragment_sprite");
+ map(0x6000, 0x67ff).ram().w(FUNC(xavix_state::spriteram_w)).share("fragment_sprite");
// Palette RAM
map(0x6800, 0x68ff).ram().w(FUNC(xavix_state::palram_sh_w)).share("palram_sh");
@@ -654,6 +654,13 @@ static INPUT_PORTS_START( rad_ping )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // pressing this will turn the game off.
INPUT_PORTS_END
+static INPUT_PORTS_START( rad_pingp )
+ PORT_INCLUDE(rad_ping)
+
+ PORT_MODIFY("REGION") // PAL/NTSC flag
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_CUSTOM )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( namcons2 )
PORT_INCLUDE(xavix)
@@ -1000,6 +1007,11 @@ ROM_START( rad_ping )
ROM_LOAD( "pingpong.bin", 0x000000, 0x100000, CRC(629f7f47) SHA1(2bb19fd202f1e6c319d2f7d18adbfed8a7669235) )
ROM_END
+ROM_START( rad_pingp )
+ ROM_REGION( 0x100000, "bios", ROMREGION_ERASE00 )
+ ROM_LOAD( "pingpong.bin", 0x000000, 0x100000, CRC(629f7f47) SHA1(2bb19fd202f1e6c319d2f7d18adbfed8a7669235) )
+ROM_END
+
ROM_START( rad_crdn )
ROM_REGION( 0x100000, "bios", ROMREGION_ERASE00 )
ROM_LOAD( "cardnight.bin", 0x000000, 0x100000, CRC(d19eba08) SHA1(cedb9fe785f2a559f518a1d8ecf80d500ddc63c7) )
@@ -1072,7 +1084,8 @@ CONS( 2006, namcons1, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_st
CONS( 2006, namcons2, 0, 0, xavix_i2c_24lc04, namcons2, xavix_i2c_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
-CONS( 2000, rad_ping, 0, 0, xavix, rad_ping, xavix_state, init_xavix, "Radica / SSD Company LTD / Simmer Technology", "Play TV Ping Pong", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // "Simmer Technology" is also known as "Hummer Technology Co., Ltd"
+CONS( 2000, rad_ping, 0, 0, xavix, rad_ping, xavix_state, init_xavix, "Radica / SSD Company LTD / Simmer Technology", "Play TV Ping Pong (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // "Simmer Technology" is also known as "Hummer Technology Co., Ltd"
+CONS( 2000, rad_pingp, rad_ping, 0, xavixp, rad_pingp,xavix_state, init_xavix, "Radica / SSD Company LTD / Simmer Technology", "ConnecTV Table Tennis (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
CONS( 2003, rad_mtrk, 0, 0, xavix_mtrk, rad_mtrk, xavix_mtrk_state, init_xavix, "Radica / SSD Company LTD", "Play TV Monster Truck (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
CONS( 2003, rad_mtrkp, rad_mtrk, 0, xavix_mtrkp, rad_mtrkp,xavix_mtrk_state, init_xavix, "Radica / SSD Company LTD", "ConnecTV Monster Truck (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )
diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h
index 7f3826d35e5..0349b892458 100644
--- a/src/mame/includes/xavix.h
+++ b/src/mame/includes/xavix.h
@@ -68,6 +68,7 @@ public:
: driver_device(mconfig, type, tag),
m_in0(*this, "IN0"),
m_in1(*this, "IN1"),
+ m_sprite_xhigh_ignore_hack(true),
m_maincpu(*this, "maincpu"),
m_screen(*this, "screen"),
m_mainram(*this, "mainram"),
@@ -345,7 +346,8 @@ private:
DECLARE_WRITE8_MEMBER(colmix_l_w);
DECLARE_WRITE8_MEMBER(bmp_palram_sh_w);
DECLARE_WRITE8_MEMBER(bmp_palram_l_w);
-
+ DECLARE_WRITE8_MEMBER(spriteram_w);
+ bool m_sprite_xhigh_ignore_hack;
DECLARE_WRITE8_MEMBER(tmap1_regs_w);
DECLARE_WRITE8_MEMBER(tmap2_regs_w);
diff --git a/src/mame/machine/xavix.cpp b/src/mame/machine/xavix.cpp
index 97ad3993018..a454cc955c2 100644
--- a/src/mame/machine/xavix.cpp
+++ b/src/mame/machine/xavix.cpp
@@ -766,43 +766,18 @@ WRITE8_MEMBER(xavix_state::mult_param_w)
// rad_madf uses this mode (add to previous result)
if ((m_multparams[0] & 0xc0) == 0xc0)
{
- if (signmode == 0x0)
- {
- uint8_t param1 = m_multparams[1];
- uint8_t param2 = m_multparams[2];
- result = param1 * param2;
- }
- else
- {
- popmessage("unknown signmode %02x", m_multparams[0] & 0x3f);
- }
+ const int param1 = signmode & 0x2 ? (int8_t)m_multparams[1] : (uint8_t)m_multparams[1];
+ const int param2 = signmode & 0x1 ? (int8_t)m_multparams[2] : (uint8_t)m_multparams[2];
+
+ result = param1 * param2;
uint16_t oldresult = (m_multresults[1] << 8) | m_multresults[0];
result = oldresult + result;
}
else if ((m_multparams[0] & 0xc0) == 0x00)
{
- int param1 = 0, param2 = 0;
-
- if (signmode == 0x0)
- {
- param1 = (uint8_t)m_multparams[1];
- param2 = (uint8_t)m_multparams[2];
- }
- else if (signmode == 0x2)
- {
- param1 = (int8_t)m_multparams[1];
- param2 = (uint8_t)m_multparams[2];
- }
- else if (signmode == 0x1)
- {
- param1 = (uint8_t)m_multparams[1];
- param2 = (int8_t)m_multparams[2];
- }
- else
- {
- popmessage("unknown signmode %02x", m_multparams[0] & 0x3f);
- }
+ const int param1 = signmode & 0x2 ? (int8_t)m_multparams[1] : (uint8_t)m_multparams[1];
+ const int param2 = signmode & 0x1 ? (int8_t)m_multparams[2] : (uint8_t)m_multparams[2];
result = param1 * param2;
}
@@ -924,6 +899,8 @@ void xavix_state::machine_reset()
m_sound_regbase = 0x00;
m_adc_control = 0x00;
+
+ m_sprite_xhigh_ignore_hack = true;
}
typedef device_delegate xavix_interrupt_vector_delegate;
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index d82eca8f66e..663a832663f 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -39562,6 +39562,7 @@ taitons2 //
namcons1 //
namcons2 //
rad_ping //
+rad_pingp //
rad_mtrk //
rad_mtrkp //
rad_bb2 //
diff --git a/src/mame/video/xavix.cpp b/src/mame/video/xavix.cpp
index b02e0311577..2cee99ef106 100644
--- a/src/mame/video/xavix.cpp
+++ b/src/mame/video/xavix.cpp
@@ -83,6 +83,29 @@ WRITE8_MEMBER(xavix_state::bmp_palram_l_w)
}
+WRITE8_MEMBER(xavix_state::spriteram_w)
+{
+ if (offset < 0x100)
+ {
+ m_fragment_sprite[offset] = data;
+ m_fragment_sprite[offset + 0x400] = data & 0x01;
+ }
+ else if (offset < 0x400)
+ {
+ m_fragment_sprite[offset] = data;
+ }
+ else if (offset < 0x500)
+ {
+ m_fragment_sprite[offset] = data & 1;
+ m_fragment_sprite[offset - 0x400] = (m_fragment_sprite[offset - 0x400] & 0xfe) | (data & 0x01);
+ m_sprite_xhigh_ignore_hack = false; // still doesn't help monster truck test mode case, which writes here, but still expects values to be ignored
+ }
+ else
+ {
+ m_fragment_sprite[offset] = data;
+ }
+}
+
double xavix_state::hue2rgb(double p, double q, double t)
{
if (t < 0) t += 1;
@@ -311,11 +334,6 @@ void xavix_state::draw_tilemap_line(screen_device &screen, bitmap_ind16 &bitmap,
gfxbase = (m_segment_regs[(basereg * 2) + 1] << 16) | (m_segment_regs[(basereg * 2)] << 8);
tile += gfxbase;
}
- else if (alt_tileaddressing2 == 2)
- {
- // 24-bit addressing (check if this is still needed)
- //tile |= 0x800000;
- }
// 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)
@@ -514,30 +532,14 @@ void xavix_state::draw_sprites_line(screen_device &screen, bitmap_ind16 &bitmap,
// 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?)
- if ((attr1 & 0x0c) == 0x0c)
- {
- drawheight = 16;
- drawwidth = 16;
- }
- else if ((attr1 & 0x0c) == 0x08)
- {
- drawheight = 16;
- drawwidth = 8;
- xpos_adjust += 4;
- }
- else if ((attr1 & 0x0c) == 0x04)
- {
- drawheight = 8;
- drawwidth = 16;
- ypos_adjust -= 4;
- }
- else if ((attr1 & 0x0c) == 0x00)
- {
- drawheight = 8;
- drawwidth = 8;
- xpos_adjust += 4;
- ypos_adjust -= 4;
- }
+ drawheight = 8;
+ drawwidth = 8;
+
+ if (attr1 & 0x04) drawwidth = 16;
+ if (attr1 & 0x08) drawheight = 16;
+
+ xpos_adjust = -(drawwidth/2);
+ ypos_adjust = -(drawheight/2);
ypos ^= 0xff;
@@ -550,9 +552,9 @@ void xavix_state::draw_sprites_line(screen_device &screen, bitmap_ind16 &bitmap,
ypos &= 0x7f;
}
- ypos += 128 - 15 - 8;
+ ypos += 128 + 1;
- ypos -= ypos_adjust;
+ ypos += ypos_adjust;
int spritelowy = ypos;
int spritehighy = ypos + drawheight;
@@ -567,16 +569,22 @@ void xavix_state::draw_sprites_line(screen_device &screen, bitmap_ind16 &bitmap,
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
+ -- NOTE! HACK!
+
Use of additional x-bit is very confusing rad_snow, taitons1 (ingame) etc. clearly need to use it
but the taitons1 xavix logo doesn't even initialize the RAM for it and behavior conflicts with ingame?
maybe only works with certain tile sizes?
some code even suggests this should be bit 0 of attr0, but it never gets set there
+ (I'm mirroring the bits in the write handler at the moment)
there must be a register somewhere (or a side-effect of another mode) that enables / disables this
behavior, as we need to make use of xposh for the left side in cases that need it, but that
completely breaks the games that never set it at all (monster truck, xavix logo on taitons1)
+ monster truck hidden service mode ends up writing to the RAM, breaking the 'clock' display if
+ we use the values for anything.. again suggesting there must be a way to ignore it entirely?
+
*/
int xposh = spr_xposh[i] & 1;
@@ -585,16 +593,28 @@ void xavix_state::draw_sprites_line(screen_device &screen, bitmap_ind16 &bitmap,
{
xpos &= 0x7f;
xpos = -0x80 + xpos;
+
+ if (!m_sprite_xhigh_ignore_hack)
+ if (!xposh)
+ xpos -= 0x80;
+
}
else // right side of center
{
xpos &= 0x7f;
- if (xposh)
- xpos += 0x80;
+ if (!m_sprite_xhigh_ignore_hack)
+ if (xposh)
+ xpos += 0x80;
}
- xpos += 128 - 8;
+ xpos += 128;
+
+ xpos += xpos_adjust;
+
+ // galplus phalanx beam (sprite wraparound)
+ if (xpos<-0x80)
+ xpos += 256+128;
int bpp = 1;
@@ -626,7 +646,7 @@ void xavix_state::draw_sprites_line(screen_device &screen, bitmap_ind16 &bitmap,
tile += gfxbase;
}
- draw_tile_line(screen, bitmap, cliprect, tile, bpp, xpos + xpos_adjust, line, drawheight, drawwidth, flipx, flipy, pal, zval, drawline);
+ draw_tile_line(screen, bitmap, cliprect, tile, bpp, xpos , line, drawheight, drawwidth, flipx, flipy, pal, zval, drawline);
/*
if ((spr_ypos[i] != 0x81) && (spr_ypos[i] != 0x80) && (spr_ypos[i] != 0x00))
@@ -834,7 +854,8 @@ WRITE8_MEMBER(xavix_state::spritefragment_dma_trg_w)
{
//uint8_t dat = m_maincpu->read_full_data_sp(src + i);
uint8_t dat = read_full_data_sp_bypass(src + i);
- m_fragment_sprite[(dst + i) & 0x7ff] = dat;
+ //m_fragment_sprite[(dst + i) & 0x7ff] = dat;
+ spriteram_w(space, (dst + i) & 0x7ff, dat);
}
}
}