diff --git a/src/vid_ati_mach64.c b/src/vid_ati_mach64.c index 3f0ff01..8fb7802 100644 --- a/src/vid_ati_mach64.c +++ b/src/vid_ati_mach64.c @@ -633,17 +633,17 @@ void mach64_start_line(mach64_t *mach64) #define WRITE(addr, width) if (width == 0) \ { \ svga->vram[(addr) & 0x7fffff] = dest_dat; \ - svga->changedvram[((addr) & 0x7fffff) >> 10] = changeframecount; \ + svga->changedvram[((addr) & 0x7fffff) >> 12] = changeframecount; \ } \ else if (width == 1) \ { \ *(uint16_t *)&svga->vram[((addr) << 1) & 0x7fffff] = dest_dat; \ - svga->changedvram[(((addr) << 1) & 0x7fffff) >> 10] = changeframecount; \ + svga->changedvram[(((addr) << 1) & 0x7fffff) >> 12] = changeframecount; \ } \ else \ { \ *(uint32_t *)&svga->vram[((addr) << 2) & 0x7fffff] = dest_dat; \ - svga->changedvram[(((addr) << 2) & 0x7fffff) >> 10] = changeframecount; \ + svga->changedvram[(((addr) << 2) & 0x7fffff) >> 12] = changeframecount; \ } void mach64_blit(uint32_t cpu_dat, int count, mach64_t *mach64) diff --git a/src/vid_cl5429.c b/src/vid_cl5429.c index dc4264c..1e97404 100644 --- a/src/vid_cl5429.c +++ b/src/vid_cl5429.c @@ -351,14 +351,14 @@ void gd5429_write_linear(uint32_t addr, uint8_t val, void *p) if (addr >= svga->vram_limit) return; // if (svga_output) pclog("%08X\n", addr); - svga->changedvram[addr >> 10] = changeframecount; + svga->changedvram[addr >> 12] = changeframecount; switch (svga->writemode) { case 4: pclog("Writemode 4 : %X ", addr); addr <<= 1; - svga->changedvram[addr >> 10] = changeframecount; + svga->changedvram[addr >> 12] = changeframecount; pclog("%X %X\n", addr, val); if (val & 0x80) svga->vram[addr + 0] = svga->gdcreg[1]; @@ -381,7 +381,7 @@ void gd5429_write_linear(uint32_t addr, uint8_t val, void *p) case 5: pclog("Writemode 5 : %X ", addr); addr <<= 1; - svga->changedvram[addr >> 10] = changeframecount; + svga->changedvram[addr >> 12] = changeframecount; pclog("%X %X\n", addr, val); svga->vram[addr + 0] = (val & 0x80) ? svga->gdcreg[1] : svga->gdcreg[0]; svga->vram[addr + 1] = (val & 0x40) ? svga->gdcreg[1] : svga->gdcreg[0]; @@ -618,7 +618,7 @@ void gd5429_start_blit(uint32_t cpu_dat, int count, void *p) count--; } dst = svga->vram[gd5429->blt.dst_addr & svga->vrammask]; - svga->changedvram[(gd5429->blt.dst_addr & svga->vrammask) >> 10] = changeframecount; + svga->changedvram[(gd5429->blt.dst_addr & svga->vrammask) >> 12] = changeframecount; pclog("Blit %i,%i %06X %06X %06X %02X %02X %02X %02X ", gd5429->blt.width, gd5429->blt.height_internal, gd5429->blt.src_addr, gd5429->blt.dst_addr, gd5429->blt.src_addr & svga->vrammask, svga->vram[gd5429->blt.src_addr & svga->vrammask], 0x80 >> (gd5429->blt.dst_addr & 7), src, dst); switch (gd5429->blt.rop) diff --git a/src/vid_et4000w32.c b/src/vid_et4000w32.c index 03adf4b..5a0d1d6 100644 --- a/src/vid_et4000w32.c +++ b/src/vid_et4000w32.c @@ -371,7 +371,7 @@ void et4000w32p_mmu_write(uint32_t addr, uint8_t val, void *p) else { svga->vram[(addr & 0x1fff) + et4000->mmu.base[bank]] = val; - svga->changedvram[((addr & 0x1fff) + et4000->mmu.base[bank]) >> 10] = changeframecount; + svga->changedvram[((addr & 0x1fff) + et4000->mmu.base[bank]) >> 12] = changeframecount; } break; case 0x6000: @@ -705,7 +705,7 @@ void et4000w32_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input, et400 if (!(et4000->acl.internal.ctrl_routing & 0x40)) { svga->vram[et4000->acl.dest_addr & 0x1fffff] = out; - svga->changedvram[(et4000->acl.dest_addr & 0x1fffff) >> 10] = changeframecount; + svga->changedvram[(et4000->acl.dest_addr & 0x1fffff) >> 12] = changeframecount; } else { @@ -826,7 +826,7 @@ void et4000w32_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input, et400 if (!(et4000->acl.internal.ctrl_routing & 0x40)) { svga->vram[et4000->acl.dest_addr & 0x1fffff] = out; - svga->changedvram[(et4000->acl.dest_addr & 0x1fffff) >> 10] = changeframecount; + svga->changedvram[(et4000->acl.dest_addr & 0x1fffff) >> 12] = changeframecount; } else { diff --git a/src/vid_et4000w32i.c b/src/vid_et4000w32i.c index 3570b4c..09beb91 100644 --- a/src/vid_et4000w32i.c +++ b/src/vid_et4000w32i.c @@ -98,7 +98,7 @@ void et4000w32_mmu_write(uint32_t addr, uint8_t val) else { vram[(addr&0x1FFF)+mmu.base[bank]]=val; - changedvram[((addr&0x1FFF)+mmu.base[bank])>>10]=changeframecount; + changedvram[((addr&0x1FFF)+mmu.base[bank])>>12]=changeframecount; } break; case 0x6000: @@ -302,7 +302,7 @@ void et4000w32_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input) } pclog("%06X = %02X\n",acl.dest_addr&0x1FFFFF,out); vram[acl.dest_addr&0x1FFFFF]=out; - changedvram[(acl.dest_addr&0x1FFFFF)>>10]=changeframecount; + changedvram[(acl.dest_addr&0x1FFFFF)>>12]=changeframecount; acl.pattern_x++; acl.pattern_x&=et4000w32_wrap_x[acl.internal.pattern_wrap&7]; @@ -378,7 +378,7 @@ void et4000w32_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input) if (acl.internal.rop_bg&(1<>10]=changeframecount; + changedvram[(acl.dest_addr&0x1FFFFF)>>12]=changeframecount; pattern_x++; pattern_x&=et4000w32_wrap_x[acl.internal.pattern_wrap&7]; diff --git a/src/vid_s3.c b/src/vid_s3.c index 0f90835..1b9afc0 100644 --- a/src/vid_s3.c +++ b/src/vid_s3.c @@ -1048,17 +1048,17 @@ uint8_t s3_accel_read(uint32_t addr, void *p) #define WRITE(addr) if (s3->bpp == 0) \ { \ svga->vram[(addr) & 0x3fffff] = dest_dat; \ - svga->changedvram[((addr) & 0x3fffff) >> 10] = changeframecount; \ + svga->changedvram[((addr) & 0x3fffff) >> 12] = changeframecount; \ } \ else if (s3->bpp == 1) \ { \ vram_w[(addr) & 0x1fffff] = dest_dat; \ - svga->changedvram[((addr) & 0x1fffff) >> 9] = changeframecount; \ + svga->changedvram[((addr) & 0x1fffff) >> 11] = changeframecount; \ } \ else \ { \ vram_l[(addr) & 0xfffff] = dest_dat; \ - svga->changedvram[((addr) & 0xfffff) >> 8] = changeframecount; \ + svga->changedvram[((addr) & 0xfffff) >> 10] = changeframecount; \ } void s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_t *s3) diff --git a/src/vid_s3_virge.c b/src/vid_s3_virge.c index 5492467..71d7a2b 100644 --- a/src/vid_s3_virge.c +++ b/src/vid_s3_virge.c @@ -989,16 +989,16 @@ static void s3_virge_mmio_write_l(uint32_t addr, uint32_t val, void *p) { \ case 0: /*8 bpp*/ \ vram[addr & 0x3fffff] = val; \ - virge->svga.changedvram[(addr & 0x3fffff) >> 10] = changeframecount; \ + virge->svga.changedvram[(addr & 0x3fffff) >> 12] = changeframecount; \ break; \ case 1: /*16 bpp*/ \ *(uint16_t *)&vram[addr & 0x3fffff] = val; \ - virge->svga.changedvram[(addr & 0x3fffff) >> 10] = changeframecount; \ + virge->svga.changedvram[(addr & 0x3fffff) >> 12] = changeframecount; \ break; \ case 2: /*24 bpp*/ \ *(uint32_t *)&vram[addr & 0x3fffff] = (val & 0xffffff) | \ (vram[(addr + 3) & 0x3fffff] << 24); \ - virge->svga.changedvram[(addr & 0x3fffff) >> 10] = changeframecount; \ + virge->svga.changedvram[(addr & 0x3fffff) >> 12] = changeframecount; \ break; \ } \ } while (0) diff --git a/src/vid_svga.c b/src/vid_svga.c index 85ae6d3..9a13efc 100644 --- a/src/vid_svga.c +++ b/src/vid_svga.c @@ -415,7 +415,7 @@ void svga_poll(void *p) svga->firstline = svga->displine; if (svga->hwcursor_on) - svga->changedvram[svga->ma >> 10] = svga->changedvram[(svga->ma >> 10) + 1] = 2; + svga->changedvram[svga->ma >> 12] = svga->changedvram[(svga->ma >> 12) + 1] = 2; svga->render(svga); @@ -503,7 +503,7 @@ void svga_poll(void *p) svga->fullchange = 2; svga->blink++; - for (x = 0; x < (svga->vram_limit >> 10); x++) + for (x = 0; x < (svga->vram_limit >> 12); x++) { if (svga->changedvram[x]) svga->changedvram[x]--; @@ -634,7 +634,7 @@ int svga_init(svga_t *svga, void *p, int memsize, svga->vram = malloc(memsize); svga->vram_limit = memsize; svga->vrammask = memsize - 1; - svga->changedvram = malloc(/*(memsize >> 10) << 1*/0x800000 >> 10); + svga->changedvram = malloc(/*(memsize >> 12) << 1*/0x800000 >> 12); svga->recalctimings_ex = recalctimings_ex; svga->video_in = video_in; svga->video_out = video_out; @@ -687,7 +687,7 @@ void svga_write(uint32_t addr, uint8_t val, void *p) return; if (svga_output) pclog("%08X (%i, %i) %02X %i %i %i %02X\n", addr, addr & 1023, addr >> 10, val, writemask2, svga->writemode, svga->chain4, svga->gdcreg[8]); - svga->changedvram[addr >> 10] = changeframecount; + svga->changedvram[addr >> 12] = changeframecount; switch (svga->writemode) { @@ -913,7 +913,7 @@ void svga_write_linear(uint32_t addr, uint8_t val, void *p) if (addr >= svga->vram_limit) return; if (svga_output) pclog("%08X\n", addr); - svga->changedvram[addr>>10]=changeframecount; + svga->changedvram[addr >> 12]=changeframecount; switch (svga->writemode) { @@ -1161,7 +1161,7 @@ void svga_writew(uint32_t addr, uint16_t val, void *p) if (addr >= svga->vram_limit) return; if (svga_output) pclog("%08X (%i, %i) %04X\n", addr, addr & 1023, addr >> 10, val); - svga->changedvram[addr >> 10] = changeframecount; + svga->changedvram[addr >> 12] = changeframecount; *(uint16_t *)&svga->vram[addr] = val; } @@ -1190,7 +1190,7 @@ void svga_writel(uint32_t addr, uint32_t val, void *p) return; if (svga_output) pclog("%08X (%i, %i) %08X\n", addr, addr & 1023, addr >> 10, val); - svga->changedvram[addr >> 10] = changeframecount; + svga->changedvram[addr >> 12] = changeframecount; *(uint32_t *)&svga->vram[addr] = val; } @@ -1256,7 +1256,7 @@ void svga_writew_linear(uint32_t addr, uint16_t val, void *p) addr &= 0x7FFFFF; if (addr >= svga->vram_limit) return; - svga->changedvram[addr >> 10] = changeframecount; + svga->changedvram[addr >> 12] = changeframecount; *(uint16_t *)&svga->vram[addr] = val; } @@ -1282,7 +1282,7 @@ void svga_writel_linear(uint32_t addr, uint32_t val, void *p) addr &= 0x7fffff; if (addr >= svga->vram_limit) return; - svga->changedvram[addr >> 10] = changeframecount; + svga->changedvram[addr >> 12] = changeframecount; *(uint32_t *)&svga->vram[addr] = val; } diff --git a/src/vid_svga_render.c b/src/vid_svga_render.c index 19850f3..4f93336 100644 --- a/src/vid_svga_render.c +++ b/src/vid_svga_render.c @@ -163,9 +163,9 @@ void svga_render_2bpp_lowres(svga_t *svga) int changed_offset; if (svga->sc & 1 && !(svga->crtc[0x17] & 1)) - changed_offset = (svga->ma << 1) >> 10; + changed_offset = (svga->ma << 1) >> 12; else - changed_offset = ((svga->ma << 1) + 0x8000) >> 10; + changed_offset = ((svga->ma << 1) + 0x8000) >> 12; if (svga->changedvram[changed_offset] || svga->changedvram[changed_offset + 1] || svga->fullchange) { @@ -213,9 +213,9 @@ void svga_render_2bpp_highres(svga_t *svga) int changed_offset; if (svga->sc & 1 && !(svga->crtc[0x17] & 1)) - changed_offset = ((svga->ma << 1) | 0x8000) >> 10; + changed_offset = ((svga->ma << 1) | 0x8000) >> 12; else - changed_offset = (svga->ma << 1) >> 10; + changed_offset = (svga->ma << 1) >> 12; if (svga->changedvram[changed_offset] || svga->changedvram[changed_offset + 1] || svga->fullchange) { @@ -260,7 +260,7 @@ void svga_render_2bpp_highres(svga_t *svga) void svga_render_4bpp_lowres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { int x; int offset = ((8 - svga->scrollcache) << 1) + 16; @@ -302,11 +302,11 @@ void svga_render_4bpp_highres(svga_t *svga) int changed_offset; if (svga->sc & 1 && !(svga->crtc[0x17] & 1)) - changed_offset = (svga->ma | 0x8000) >> 10; + changed_offset = (svga->ma | 0x8000) >> 12; else - changed_offset = svga->ma >> 10; + changed_offset = svga->ma >> 12; - if (svga->changedvram[changed_offset] || svga->changedvram[changed_offset + 1] || svga->changedvram[changed_offset + 2] || svga->fullchange) + if (svga->changedvram[changed_offset] || svga->changedvram[changed_offset + 1] || svga->fullchange) { int x; int offset = (8 - svga->scrollcache) + 24; @@ -348,7 +348,7 @@ void svga_render_4bpp_highres(svga_t *svga) void svga_render_8bpp_lowres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { int x; int offset = (8 - (svga->scrollcache & 6)) + 24; @@ -376,7 +376,7 @@ void svga_render_8bpp_lowres(svga_t *svga) void svga_render_8bpp_highres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { int x; int offset = (8 - ((svga->scrollcache & 6) >> 1)) + 24; @@ -410,7 +410,7 @@ void svga_render_8bpp_highres(svga_t *svga) void svga_render_15bpp_lowres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { int x; int offset = (8 - (svga->scrollcache & 6)) + 24; @@ -439,7 +439,7 @@ void svga_render_15bpp_lowres(svga_t *svga) void svga_render_15bpp_highres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { int x; int offset = (8 - ((svga->scrollcache & 6) >> 1)) + 24; @@ -474,7 +474,7 @@ void svga_render_15bpp_highres(svga_t *svga) void svga_render_16bpp_lowres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { int x; int offset = (8 - (svga->scrollcache & 6)) + 24; @@ -503,7 +503,7 @@ void svga_render_16bpp_lowres(svga_t *svga) void svga_render_16bpp_highres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { int x; int offset = (8 - ((svga->scrollcache & 6) >> 1)) + 24; @@ -541,7 +541,7 @@ void svga_render_24bpp_lowres(svga_t *svga) int x, offset; uint32_t fg; - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { if (svga->firstline_draw == 2000) svga->firstline_draw = svga->displine; @@ -561,7 +561,7 @@ void svga_render_24bpp_lowres(svga_t *svga) void svga_render_24bpp_highres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { int x; int offset = (8 - ((svga->scrollcache & 6) >> 1)) + 24; @@ -596,7 +596,7 @@ void svga_render_32bpp_lowres(svga_t *svga) int x, offset; uint32_t fg; - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { if (svga->firstline_draw == 2000) svga->firstline_draw = svga->displine; @@ -618,7 +618,7 @@ void svga_render_32bpp_lowres(svga_t *svga) 91%*/ void svga_render_32bpp_highres(svga_t *svga) { - if (svga->changedvram[svga->ma >> 10] || svga->changedvram[(svga->ma >> 10) + 1] || svga->changedvram[(svga->ma >> 10) + 2] || svga->fullchange) + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->changedvram[(svga->ma >> 12) + 2] || svga->fullchange) { int x; int offset = (8 - ((svga->scrollcache & 6) >> 1)) + 24; diff --git a/src/vid_tgui9440.c b/src/vid_tgui9440.c index 1aeba17..545235f 100644 --- a/src/vid_tgui9440.c +++ b/src/vid_tgui9440.c @@ -552,12 +552,12 @@ enum #define WRITE(addr, dat) if (tgui->accel.bpp == 0) \ { \ svga->vram[addr & 0x1fffff] = dat; \ - svga->changedvram[((addr) & 0x1fffff) >> 10] = changeframecount; \ + svga->changedvram[((addr) & 0x1fffff) >> 12] = changeframecount; \ } \ else \ { \ vram_w[addr & 0xfffff] = dat; \ - svga->changedvram[((addr) & 0xfffff) >> 9] = changeframecount; \ + svga->changedvram[((addr) & 0xfffff) >> 11] = changeframecount; \ } void tgui_accel_write_fb_b(uint32_t addr, uint8_t val, void *priv);