diff --git a/Assets/gamedb/gamedb_Odyssey2.txt b/Assets/gamedb/gamedb_Odyssey2.txt index bdc60043f5..3da3642bb2 100644 --- a/Assets/gamedb/gamedb_Odyssey2.txt +++ b/Assets/gamedb/gamedb_Odyssey2.txt @@ -17,7 +17,9 @@ SHA1:2B34EF0E1A8C0371F00A33D6950E0807F3CB886E D Happy Emu O2 US SHA1:03C846187581A44CE4F7B056C05186520C2DB1B4 D Happy Bird O2 US SHA1:42AD0C57BD16B7F24C242F60B5C0E9988D8DFBA8 D Kill The Attacking Aliens O2 US SHA1:BFAB5BECBF17AF0A304A50C81B04999D9830D817 D Pong O2 EU - +SHA1:13D5AF4DFB100724B8CA42D65CD1849E470784CD D Puzzle Piece Panic O2 US +SHA1:A878FEC75B0B2E60FA81E1EDA01A15F7CEEBF659 D Planet Lander O2 US +SHA1:BCD2DEEEED9283FF585D644993494961F0ACC46D D Mr Roboto O2 US diff --git a/src/BizHawk.Emulation.Cores/Consoles/Magnavox/Odyssey2/PPU.cs b/src/BizHawk.Emulation.Cores/Consoles/Magnavox/Odyssey2/PPU.cs index 48e7c1ed0a..07b3f16761 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Magnavox/Odyssey2/PPU.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Magnavox/Odyssey2/PPU.cs @@ -618,7 +618,15 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk if (((LY - OBJ_OFST) >= Sprites[i * 4]) && ((LY - OBJ_OFST) < (Sprites[i * 4] + 8 * double_size))) { - right_shift_even = (Sprites[i * 4 + 2].Bit(1) && (((Sprites[i * 4] + 8 * double_size - (LY - OBJ_OFST)) % 2) == 0)) ? 1 : 0; + if (double_size == 4) + { + right_shift_even = (Sprites[i * 4 + 2].Bit(1) && ((((LY - OBJ_OFST) - Sprites[i * 4]) % 8) < 4)) ? 1 : 0; + } + else + { + right_shift_even = (Sprites[i * 4 + 2].Bit(1) && ((((LY - OBJ_OFST) - Sprites[i * 4]) % 2) == 0)) ? 1 : 0; + } + x_base = Sprites[i * 4 + 1]; if ((right_shift + right_shift_even) == 0)