Mercurial > repos > blastem
comparison vdp.c @ 31:25016576b5f3
Make horizontal scrolling closer to correct, Comix Zone looks good, Sonic 2 slightly off
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 08 Dec 2012 20:25:56 -0800 |
parents | 03f9bb57cc54 |
children | 8602ad493794 |
comparison
equal
deleted
inserted
replaced
30:03f9bb57cc54 | 31:25016576b5f3 |
---|---|
178 v_mul = 256; | 178 v_mul = 256; |
179 break; | 179 break; |
180 } | 180 } |
181 uint16_t hscroll, offset; | 181 uint16_t hscroll, offset; |
182 for (int i = 0; i < 2; i++) { | 182 for (int i = 0; i < 2; i++) { |
183 hscroll = (hscroll_val + (column + i) * 8) & hscroll_mask; | 183 hscroll = ((column - 2 + i) * 8 - hscroll_val) & hscroll_mask; |
184 offset = address + ((vscroll * v_mul + hscroll/4) & 0x1FFF); | 184 offset = address + ((vscroll * v_mul + hscroll/4) & 0x1FFF); |
185 //printf("%s | line: %d, col: %d, x: %d, hs_mask %X, v_mul: %d, scr reg: %X, tbl addr: %X\n", (vsram_off ? "B" : "A"), line, (column-(2-i)), hscroll, hscroll_mask, v_mul, context->regs[REG_SCROLL], offset); | 185 //printf("%s | line: %d, col: %d, x: %d, hs_mask %X, v_mul: %d, scr reg: %X, tbl addr: %X\n", (vsram_off ? "B" : "A"), line, (column-(2-i)), hscroll, hscroll_mask, v_mul, context->regs[REG_SCROLL], offset); |
186 uint16_t col_val = (context->vdpmem[offset] << 8) | context->vdpmem[offset+1]; | 186 uint16_t col_val = (context->vdpmem[offset] << 8) | context->vdpmem[offset+1]; |
187 if (i) { | 187 if (i) { |
188 context->col_2 = col_val; | 188 context->col_2 = col_val; |