diff options
Diffstat (limited to 'apps/plugins/doom/v_video.c')
-rw-r--r-- | apps/plugins/doom/v_video.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/apps/plugins/doom/v_video.c b/apps/plugins/doom/v_video.c index ca90c4b293..bd4d507510 100644 --- a/apps/plugins/doom/v_video.c +++ b/apps/plugins/doom/v_video.c | |||
@@ -527,7 +527,7 @@ void V_DrawMemPatch(int x, int y, int scrn, const patch_t *patch, | |||
527 | 527 | ||
528 | byte *desttop; | 528 | byte *desttop; |
529 | int col; | 529 | int col; |
530 | int w = (SHORT( patch->width ) << 16) - 1; // CPhipps - -1 for faster flipping | 530 | int w = (SHORT( patch->width ) << 16) -1; // CPhipps - -1 for faster flipping |
531 | int stretchx, stretchy; | 531 | int stretchx, stretchy; |
532 | int DX = (SCREENWIDTH<<16) / 320; | 532 | int DX = (SCREENWIDTH<<16) / 320; |
533 | int DXI = (320<<16) / SCREENWIDTH; | 533 | int DXI = (320<<16) / SCREENWIDTH; |
@@ -559,6 +559,17 @@ void V_DrawMemPatch(int x, int y, int scrn, const patch_t *patch, | |||
559 | register int count = ( column->length * DY ) >> 16; | 559 | register int count = ( column->length * DY ) >> 16; |
560 | register int srccol = 0x8000; | 560 | register int srccol = 0x8000; |
561 | 561 | ||
562 | count = (count>SCREENHEIGHT)?SCREENHEIGHT:count; // Bounds checking allows those messed up | ||
563 | // GP32 mods to work (they're using patch-> | ||
564 | // height values of 240, this code cuts off | ||
565 | // thier bottom few pixels | ||
566 | |||
567 | // NOTE: This scaling code does not work correctly on at least the H300's, this can be seen | ||
568 | // in the intro graphic along the left side, the pixels are not correct. A more blatant | ||
569 | // example is the bunnyscroller at the end of retail doom episode 3. I've added one extra | ||
570 | // width to d_screens[0] and this seemed to stop the freeze at the end of the game. This | ||
571 | // needs to be fixed properly. | ||
572 | |||
562 | if (flags & VPT_TRANS) | 573 | if (flags & VPT_TRANS) |
563 | while (count--) { | 574 | while (count--) { |
564 | *dest = trans[source[srccol>>16]]; | 575 | *dest = trans[source[srccol>>16]]; |