Support WIN0/1 in modes 2 - 5
Jeffrey Pfau jeffrey@endrift.com
Sat, 26 Oct 2013 02:33:29 -0700
1 files changed,
6 insertions(+),
6 deletions(-)
M
src/gba/renderers/video-software.c
→
src/gba/renderers/video-software.c
@@ -993,8 +993,8 @@ }
#define BACKGROUND_BITMAP_INIT \ (void)(unused); \ - int32_t x = background->sx - background->dx; \ - int32_t y = background->sy - background->dy; \ + int32_t x = background->sx + (renderer->start - 1) * background->dx; \ + int32_t y = background->sy + (renderer->start - 1) * background->dy; \ int32_t localX; \ int32_t localY; \ \@@ -1030,7 +1030,7 @@ uint8_t mapData;
uint8_t tileData; int outX; - for (outX = renderer->start; outX < VIDEO_HORIZONTAL_PIXELS; ++outX) { + for (outX = renderer->start; outX < renderer->end; ++outX) { x += background->dx; y += background->dy;@@ -1065,7 +1065,7 @@ uint16_t color;
uint32_t color32; int outX; - for (outX = 0; outX < VIDEO_HORIZONTAL_PIXELS; ++outX) { + for (outX = renderer->start; outX < renderer->end; ++outX) { BACKGROUND_BITMAP_ITERATE(VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS); color = ((uint16_t*)renderer->d.vram)[(localX >> 8) + (localY >> 8) * VIDEO_HORIZONTAL_PIXELS];@@ -1097,7 +1097,7 @@ offset = 0xA000;
} int outX; - for (outX = 0; outX < VIDEO_HORIZONTAL_PIXELS; ++outX) { + for (outX = renderer->start; outX < renderer->end; ++outX) { BACKGROUND_BITMAP_ITERATE(VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS); color = ((uint8_t*)renderer->d.vram)[offset + (localX >> 8) + (localY >> 8) * VIDEO_HORIZONTAL_PIXELS];@@ -1124,7 +1124,7 @@ offset = 0xA000;
} int outX; - for (outX = 0; outX < VIDEO_HORIZONTAL_PIXELS; ++outX) { + for (outX = renderer->start; outX < renderer->end; ++outX) { BACKGROUND_BITMAP_ITERATE(160, 128); color = ((uint16_t*)renderer->d.vram)[offset + (localX >> 8) + (localY >> 8) * 160];