summaryrefslogtreecommitdiff
path: root/sys/src/games
diff options
context:
space:
mode:
authorqwx <qwx@sciops.net>2022-08-22 22:04:44 +0000
committerqwx <qwx@sciops.net>2022-08-22 22:04:44 +0000
commit846debd082dcb0ac7b0297c6d68a0aa382f95de5 (patch)
tree87dd8c5d415876448fa7b756c78cea6c753a5340 /sys/src/games
parentec8d7cdf024949d73c5f887f23f060cd33c1df28 (diff)
games/doom: raise max scale factor for 4k
side-bonus: fullscreen 1920x1200 working perfectly on t61p :)
Diffstat (limited to 'sys/src/games')
-rw-r--r--sys/src/games/doom/i_video.c38
1 files changed, 35 insertions, 3 deletions
diff --git a/sys/src/games/doom/i_video.c b/sys/src/games/doom/i_video.c
index 0d1cddea9..752686086 100644
--- a/sys/src/games/doom/i_video.c
+++ b/sys/src/games/doom/i_video.c
@@ -92,7 +92,7 @@ void I_FinishUpdate(void)
Rectangle r;
int y, scale;
uchar *s, *e, *d, *m;
- uchar buf[SCREENWIDTH*3*4];
+ uchar buf[SCREENWIDTH*3*12];
if(resized){
resized = 0;
@@ -109,8 +109,8 @@ void I_FinishUpdate(void)
scale = Dx(screen->r)/SCREENWIDTH;
if(scale <= 0)
scale = 1;
- else if(scale > 4)
- scale = 4;
+ else if(scale > 12)
+ scale = 12;
/* where to draw the scaled row */
r = rectsubpt(rectaddpt(Rect(0, 0, scale*SCREENWIDTH, scale), center),
@@ -128,6 +128,38 @@ void I_FinishUpdate(void)
for(; s < e; s++){
m = &cmap[*s * 3];
switch(scale){
+ case 12:
+ *d++ = m[2];
+ *d++ = m[1];
+ *d++ = m[0];
+ case 11:
+ *d++ = m[2];
+ *d++ = m[1];
+ *d++ = m[0];
+ case 10:
+ *d++ = m[2];
+ *d++ = m[1];
+ *d++ = m[0];
+ case 9:
+ *d++ = m[2];
+ *d++ = m[1];
+ *d++ = m[0];
+ case 8:
+ *d++ = m[2];
+ *d++ = m[1];
+ *d++ = m[0];
+ case 7:
+ *d++ = m[2];
+ *d++ = m[1];
+ *d++ = m[0];
+ case 6:
+ *d++ = m[2];
+ *d++ = m[1];
+ *d++ = m[0];
+ case 5:
+ *d++ = m[2];
+ *d++ = m[1];
+ *d++ = m[0];
case 4:
*d++ = m[2];
*d++ = m[1];