A7800Hawk: Add kangaroo mode and mappers

This commit is contained in:
alyosha-tas 2017-07-24 19:36:54 -04:00 committed by GitHub
parent 2277c58122
commit fb10cc4bcd
2 changed files with 22 additions and 12 deletions

View File

@ -284,6 +284,14 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
{
mapper = new MapperRampage();
}
if (m == "5")
{
mapper = new MapperFractulus();
}
if (m == "6")
{
mapper = new MapperFractulus();
}
mapper.Core = this;
}

View File

@ -543,6 +543,11 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
line_ram[GFX_index, (temp_start + z) % 512] = temp_check;
line_ram[GFX_index, (temp_start + z) % 512] += (byte)((GFX_Objects[header_counter].palette & 4) << 2);
}
else if (Core.Maria_regs[0x1C].Bit(2))
{
// kangaroo mode, override transparency with zero
line_ram[GFX_index, (temp_start + z) % 512] = 0;
}
}
}
}
@ -576,6 +581,11 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
line_ram[GFX_index, (temp_start + z) % 512] = temp_check;
line_ram[GFX_index, (temp_start + z) % 512] += (byte)(GFX_Objects[header_counter].palette << 2);
}
else if (Core.Maria_regs[0x1C].Bit(2))
{
// kangaroo mode, override transparency with zero
line_ram[GFX_index, (temp_start + z) % 512] = 0;
}
}
}
}
@ -598,12 +608,9 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
color = line_ram[local_GFX_index, pixel];
if (disp_mode == 0)
{
if ((color & 3) != 0)
{
scanline_buffer[pixel] = _palette[Core.Maria_regs[color]];
}
}
else if (disp_mode == 2) // note: 1 is not used
{
// there is a trick here to be aware of.
@ -628,11 +635,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
color = temp_palette + temp_bit_1 + temp_bit_0;
if ((color & 3) != 0)
{
scanline_buffer[pixel] = _palette[Core.Maria_regs[color]];
}
}
else
{
// same as above, we can use the pixel index to pick the bits out
@ -645,10 +649,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
color = (color & 0x1C) + ((color & 1) << 1);
}
if ((color & 3) != 0)
{
scanline_buffer[pixel] = _palette[Core.Maria_regs[color]];
}
}
// send buffer to the video buffer