/* set scrolling to whole screen */
vdp_setreg(VDP_REG_MODE3, 0);
- scroll = 0;
- vdp_setup_addr(VDP_VRAM, 0xf000); /* hscroll table is at f000, see vdp.S */
- VDP_DATA = 0;
- VDP_DATA = 0;
+ scroll = 256;
}
void simba_update(void)
{
if(bnstate & PAD_LEFT) {
- if(scroll < 0) scroll++;
+ if(scroll > 256) scroll--;
} else if(bnstate & PAD_RIGHT) {
- if(scroll > -192) scroll--;
+ if(scroll < 704) scroll++;
}
dbgval[0] = scroll;
}
void simba_vblank(void)
{
vdp_setup_addr(VDP_VRAM, 0xf000); /* hscroll table is at f000, see vdp.S */
- VDP_DATA = scroll;
- VDP_DATA = scroll >> 1;
+ if(scroll < 512) {
+ VDP_DATA = 0;
+ } else {
+ VDP_DATA = 1024 - scroll;
+ }
+ VDP_DATA = 512 - (scroll >> 1);
}