TIA: Implemented missile copying. Also added the missile 1 size which was missing before.

This commit is contained in:
pjgat09 2012-03-22 22:01:20 +00:00
parent fa25305d67
commit e708527168
1 changed files with 42 additions and 0 deletions

View File

@ -27,12 +27,15 @@ namespace BizHawk.Emulation.Consoles.Atari
public bool resetToPlayer;
public byte hPosCnt;
public byte size;
public byte number;
public byte HM;
public byte collisions;
public bool tick()
{
bool result = false;
// At hPosCnt == 0, start drawing the missile, if enabled
if (hPosCnt < (1 << size))
{
if (enabled && !resetToPlayer)
@ -41,6 +44,42 @@ namespace BizHawk.Emulation.Consoles.Atari
result = true;
}
}
if ((number & 0x07) == 0x01 || ((number & 0x07) == 0x03))
{
if (hPosCnt >= 16 && hPosCnt <= (16 + (1 << size) - 1) )
{
if (enabled && !resetToPlayer)
{
// Draw the missile
result = true;
}
}
}
if (((number & 0x07) == 0x02 || ((number & 0x07) == 0x03) || ((number & 0x07) == 0x06)))
{
if (hPosCnt >= 32 && hPosCnt <= (32 + (1 << size) - 1) )
{
if (enabled && !resetToPlayer)
{
// Draw the missile
result = true;
}
}
}
if ((number & 0x07) == 0x04 || (number & 0x07) == 0x06)
{
if (hPosCnt >= 64 && hPosCnt <= (64 + (1 << size) - 1) )
{
if (enabled && !resetToPlayer)
{
// Draw the missile
result = true;
}
}
}
// Increment the counter
hPosCnt++;
@ -733,10 +772,13 @@ namespace BizHawk.Emulation.Consoles.Atari
{
player0.nusiz = (byte)(value & 0x37);
player0.missile.size = (byte)((value & 0x30) >> 4);
player0.missile.number = (byte)(value & 0x07);
}
else if (maskedAddr == 0x05) // NUSIZ1
{
player1.nusiz = (byte)(value & 0x37);
player1.missile.size = (byte)((value & 0x30) >> 4);
player1.missile.number = (byte)(value & 0x07);
}
else if (maskedAddr == 0x06) // COLUP0
{