aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlec Murphy <alec@checksum.fail>2017-06-11 19:28:04 -0400
committerAlec Murphy <alec@checksum.fail>2017-06-11 19:28:04 -0400
commitfb796d0addefd0e49ed1c564a1137f2b216e91bc (patch)
tree523b2bccd32ec0f1f1277bb6e50b86124286f050
parentc22dff0c7ab2e4e9a4fe4815afb743e54aca46e8 (diff)
Fix 8x16 sprites being Y-flipped incorrectly
-rw-r--r--LCD.HC17
1 files changed, 14 insertions, 3 deletions
diff --git a/LCD.HC b/LCD.HC
index 7399940..5d9a010 100644
--- a/LCD.HC
+++ b/LCD.HC
@@ -74,7 +74,7 @@ U0 DrawIt(CTask *,CDC *dc)
lcd->color=BLACK;
GrRect(lcd,0,8*17,160,8);
lcd->color=LTRED;
- GrPrint(lcd,0,8*17,DisplayMsg);
+ GrPrint(lcd,0,8*17,DisplayMsg);
};
I64 xpos=0;
I64 ypos=0;
@@ -460,7 +460,12 @@ U0 renderSprites()
};
if (odc->color!=TRANSPARENT)
{
- GrPlot(odc,memory[0xFE00+oam_ctr+1]-8+(7-sp_px),(8*sp_yf)+memory[0xFE00+oam_ctr]-16+sp_py);
+ if ((memory[0xFE00+oam_ctr+3]>>6)&1)
+ {
+ GrPlot(odc,memory[0xFE00+oam_ctr+1]-8+(7-sp_px),(-8*sp_yf)+8+memory[0xFE00+oam_ctr]-16+sp_py);
+ } else {
+ GrPlot(odc,memory[0xFE00+oam_ctr+1]-8+(7-sp_px),(8*sp_yf)+memory[0xFE00+oam_ctr]-16+sp_py);
+ };
};
if (tp3)
@@ -471,7 +476,12 @@ U0 renderSprites()
if((tp2>>bg_px)&1){odc->color=sp01;}else{odc->color=TRANSPARENT;}; };
if (odc->color!=TRANSPARENT)
{
- GrPlot(odc,memory[0xFE00+oam_ctr+1]-8+(7-sp_px),(-8*sp_yf)+8+memory[0xFE00+oam_ctr]-16+sp_py);
+ if ((memory[0xFE00+oam_ctr+3]>>6)&1)
+ {
+ GrPlot(odc,memory[0xFE00+oam_ctr+1]-8+(7-sp_px),(8*sp_yf)+memory[0xFE00+oam_ctr]-16+sp_py);
+ } else {
+ GrPlot(odc,memory[0xFE00+oam_ctr+1]-8+(7-sp_px),(-8*sp_yf)+8+memory[0xFE00+oam_ctr]-16+sp_py);
+ };
};
};
@@ -489,3 +499,4 @@ U0 renderSprites()
};
};
};
+ \ No newline at end of file