Skip to content

Commit

Permalink
V9990 ScrollY in IL/EO modes fix
Browse files Browse the repository at this point in the history
  • Loading branch information
ppeccin committed Mar 17, 2020
1 parent bee8b16 commit cffe7e8
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions src/main/msx/video/V9990.js
Original file line number Diff line number Diff line change
Expand Up @@ -1352,7 +1352,7 @@ wmsx.V9990 = function() {
var buffPos, realLine, quantBytes, scrollXMaxBytes, leftPixels;
var byteYBase, byteXPos, v1, v2, v3, v4, chroma;

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

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

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

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

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

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

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

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

0 comments on commit cffe7e8

Please sign in to comment.