diff options
author | Michael Pavone <pavone@retrodev.com> | 2017-03-19 12:54:20 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2017-03-19 12:54:20 -0700 |
commit | adb4a2d80e282052b3457ad14a164d12d6cc2cea (patch) | |
tree | 11f66bceaca0cbb23750e3f9ec440fce0f9d2b95 | |
parent | c8c8169fb851935b416cc58eb5f7670aebc0d5a8 (diff) |
Change handling of invalid scroll plane sizes. Fixes title and high score screens in The Incredible Hulk
-rw-r--r-- | vdp.c | 21 |
1 files changed, 3 insertions, 18 deletions
@@ -998,23 +998,8 @@ static void read_map_scroll(uint16_t column, uint16_t vsram_off, uint32_t line, } context->flags &= ~FLAG_WINDOW; } - uint16_t vscroll; - switch(context->regs[REG_SCROLL] & 0x30) - { - case 0: - vscroll = 0xFF; - break; - case 0x10: - vscroll = 0x1FF; - break; - case 0x20: - //TODO: Verify this behavior - vscroll = 0; - break; - case 0x30: - vscroll = 0x3FF; - break; - } + //TODO: Verify behavior for 0x20 case + uint16_t vscroll = 0xFF | (context->regs[REG_SCROLL] & 0x30) << 4; if (context->double_res) { vscroll <<= 1; vscroll |= 1; @@ -1057,7 +1042,7 @@ static void read_map_scroll(uint16_t column, uint16_t vsram_off, uint32_t line, break; case 0x2: //TODO: Verify this behavior - hscroll_mask = 0; + hscroll_mask = 0x5F; v_mul = 0; break; case 0x3: |