Skip to content

Commit cffe7e8

Browse files
committed
V9990 ScrollY in IL/EO modes fix
1 parent bee8b16 commit cffe7e8

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/main/msx/video/V9990.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1352,7 +1352,7 @@ wmsx.V9990 = function() {
13521352
var buffPos, realLine, quantBytes, scrollXMaxBytes, leftPixels;
13531353
var byteYBase, byteXPos, v1, v2, v3, v4, chroma;
13541354

1355-
realLine = (((currentScanline - frameStartingActiveScanline + scrollYOffsetFrame) << vramEOLineShift) + vramEOLineAdd) & scrollYMax;
1355+
realLine = (((currentScanline - frameStartingActiveScanline) << vramEOLineShift) + vramEOLineAdd + scrollYOffsetFrame) & scrollYMax;
13561356
byteYBase = realLine * imageWidth; // 1 ppb
13571357
scrollXMaxBytes = imageWidth - 1; // 1 ppb
13581358
byteXPos = (scrollXOffset & ~0x03) & scrollXMaxBytes; // 4 pixel blocks
@@ -1377,7 +1377,7 @@ wmsx.V9990 = function() {
13771377
var buffPos, realLine, quantBytes, scrollXMaxBytes, leftPixels;
13781378
var byteYBase, byteXPos, v1, v2, v3, v4, chroma;
13791379

1380-
realLine = (((currentScanline - frameStartingActiveScanline + scrollYOffsetFrame) << vramEOLineShift) + vramEOLineAdd) & scrollYMax;
1380+
realLine = (((currentScanline - frameStartingActiveScanline) << vramEOLineShift) + vramEOLineAdd + scrollYOffsetFrame) & scrollYMax;
13811381
byteYBase = realLine * imageWidth; // 1 ppb
13821382
scrollXMaxBytes = imageWidth - 1; // 1 ppb
13831383
byteXPos = (scrollXOffset & ~0x03) & scrollXMaxBytes; // 4 pixel blocks
@@ -1406,7 +1406,7 @@ wmsx.V9990 = function() {
14061406
var buffPos, realLine, quantBytes, scrollXMaxBytes;
14071407
var byteYBase, byteXPos, v;
14081408

1409-
realLine = (((currentScanline - frameStartingActiveScanline + scrollYOffsetFrame) << vramEOLineShift) + vramEOLineAdd) & scrollYMax;
1409+
realLine = (((currentScanline - frameStartingActiveScanline) << vramEOLineShift) + vramEOLineAdd + scrollYOffsetFrame) & scrollYMax;
14101410
byteYBase = realLine * (imageWidth << 1); // 0.5 ppb (16 bpp)
14111411
scrollXMaxBytes = (imageWidth << 1) - 1; // 0.5 ppb
14121412
byteXPos = modeData.width > 256
@@ -1430,7 +1430,7 @@ wmsx.V9990 = function() {
14301430

14311431
if (!colors8bitValues) colors8bitValues = wmsx.ColorCache.getColors8bit9990Values(ys16BitColorMask !== 0x7fff);
14321432

1433-
realLine = (((currentScanline - frameStartingActiveScanline + scrollYOffsetFrame) << vramEOLineShift) + vramEOLineAdd) & scrollYMax;
1433+
realLine = (((currentScanline - frameStartingActiveScanline) << vramEOLineShift) + vramEOLineAdd + scrollYOffsetFrame) & scrollYMax;
14341434
byteYBase = realLine * imageWidth; // 1 ppb
14351435
scrollXMaxBytes = imageWidth - 1; // 1 ppb
14361436
byteXPos = scrollXOffset & scrollXMaxBytes; // 1 ppb
@@ -1450,7 +1450,7 @@ wmsx.V9990 = function() {
14501450
var buffPos, realLine, quantBytes, scrollXMaxBytes;
14511451
var byteYBase, byteXPos, v;
14521452

1453-
realLine = (((currentScanline - frameStartingActiveScanline + scrollYOffsetFrame) << vramEOLineShift) + vramEOLineAdd) & scrollYMax;
1453+
realLine = (((currentScanline - frameStartingActiveScanline) << vramEOLineShift) + vramEOLineAdd + scrollYOffsetFrame) & scrollYMax;
14541454
byteYBase = realLine * imageWidth; // 1 ppb
14551455
scrollXMaxBytes = imageWidth - 1; // 1 ppb
14561456
byteXPos = scrollXOffset & scrollXMaxBytes; // 1 ppb
@@ -1470,7 +1470,7 @@ wmsx.V9990 = function() {
14701470
var buffPos, realLine, quantBytes, scrollXMaxBytes, leftPixels;
14711471
var byteYBase, byteXPos, v;
14721472

1473-
realLine = (((currentScanline - frameStartingActiveScanline + scrollYOffsetFrame) << vramEOLineShift) + vramEOLineAdd) & scrollYMax;
1473+
realLine = (((currentScanline - frameStartingActiveScanline) << vramEOLineShift) + vramEOLineAdd + scrollYOffsetFrame) & scrollYMax;
14741474
byteYBase = realLine * (imageWidth >> 1); // 2 ppb
14751475
scrollXMaxBytes = (imageWidth >> 1) - 1; // 2 ppb
14761476
byteXPos = (scrollXOffset >> 1) & scrollXMaxBytes; // 2 ppb
@@ -1496,7 +1496,7 @@ wmsx.V9990 = function() {
14961496
var buffPos, realLine, quantBytes, scrollXMaxBytes, leftPixels;
14971497
var byteYBase, byteXPos, v;
14981498

1499-
realLine = (((currentScanline - frameStartingActiveScanline + scrollYOffsetFrame) << vramEOLineShift) + vramEOLineAdd) & scrollYMax;
1499+
realLine = (((currentScanline - frameStartingActiveScanline) << vramEOLineShift) + vramEOLineAdd + scrollYOffsetFrame) & scrollYMax;
15001500
byteYBase = realLine * (imageWidth >> 2); // 4 ppb
15011501
scrollXMaxBytes = (imageWidth >> 2) - 1; // 4 ppb
15021502
byteXPos = (scrollXOffset >> 2) & scrollXMaxBytes; // 4 ppb

0 commit comments

Comments
 (0)