Sprites somewhat working, colors are wrong, issues around clipping
This commit is contained in:
parent
c00d2c1360
commit
753ba38ce6
158
asm/drawsprite.s
158
asm/drawsprite.s
|
@ -39,113 +39,107 @@ iSpriteNo equ 7
|
|||
JMP (xrickBank,X) ; Bank Number Table
|
||||
|
||||
xrickNum ANOP
|
||||
dc h'5C00 5B00 5A00 5900 5800 5700 5500 5400'
|
||||
dc h'5300 5200 5100 5000 4F00 4D00 4C00 4B00'
|
||||
dc h'4A00 4900 4800 4700 4600 4500 4400 4300'
|
||||
dc h'9100 9000 3500 0E00 0400 1C00 0300 2400'
|
||||
dc h'6200 2B00 1200 0F00 0200 5900 5400 6000'
|
||||
dc h'5A00 6100 5800 0C00 1100 1000 1F00 6900'
|
||||
dc h'5E00 4E00 0700 3E00 6800 3400 2500 0400'
|
||||
dc h'6A00 2700 0B00 2000 4400 1E00 5F00 5800'
|
||||
dc h'6400 5500 5700 0E00 2600 5000 1E00 0000'
|
||||
dc h'3D00 4F00 1C00 2600 3000 2200 4800 4900'
|
||||
dc h'4C00 5600 4300 4400 1100 1200 2100 2400'
|
||||
dc h'2B00 2700 2600 2E00 7A00 7B00 7E00 7C00'
|
||||
dc h'2E00 1700 2700 1600 1500 0E00 1E00 4600'
|
||||
dc h'0100 0600 0500 6400 0800 0900 2800 2A00'
|
||||
dc h'0B00 2D00 4A00 4900 3F00 4600 1F00 4700'
|
||||
dc h'5400 2C00 1A00 0900 1C00 4000 5500 2B00'
|
||||
dc h'0700 2200 1D00 3100 2300 2100 2D00 5200'
|
||||
dc h'3700 1600 7100 5100 1D00 5D00 2800 1A00'
|
||||
dc h'4200 4C00 5C00 5D00 4700 3C00 4500 3200'
|
||||
dc h'2A00 6000 3B00 5A00 1700 1600 6000 3000'
|
||||
dc h'5200 3D00 1800 1900 5F00 3200 5000 0B00'
|
||||
dc h'3600 3000 3B00 2200 3600 2900 4000 4900'
|
||||
dc h'3500 5C00 3900 2000 3E00 3700 5700 3100'
|
||||
dc h'2400 3100 0500 5B00 4C00 1000 4300 2C00'
|
||||
dc h'4B00 2F00 2F00 7900 2800 1F00 4B00 2700'
|
||||
dc h'3400 4A00 4F00 3C00 6A00 0A00 1500 8B00'
|
||||
dc h'7300 1600 7D00 2200 3800 6700 5E00 1500'
|
||||
dc h'4200 6F00 2100 3900 4800 5100 3600 1900'
|
||||
dc h'1400 1300 5D00 1000 0200 0600 5300 4F00'
|
||||
dc h'0F00 0B00 4400 2D00 5200 3A00 4700 1800'
|
||||
dc h'8500 1900 4600 2E00 5900 3A00 6300 4D00'
|
||||
dc h'3500 4100 2A00 7100 7700 3300 2C00 3200'
|
||||
dc h'1B00 1C00 5700 6B00 2300 1A00 6900 6E00'
|
||||
dc h'4200 2F00 1700 2100 1D00 1E00 6F00 6800'
|
||||
dc h'3200 3600 2F00 3A00 3900 5A00 3D00 6500'
|
||||
dc h'1400 6C00 5B00 3400 3A00 5800 6E00 1300'
|
||||
dc h'0F00 0A00 2E00 3800 3800 5400 0600 0300'
|
||||
dc h'0500 0A00 2800 6600 0100 0800 0200 1200'
|
||||
dc h'2B00 1900 2400 2000 0D00 5600 2300 5300'
|
||||
dc h'1D00 4A00 5500 0800 2900 5100 1B00 4800'
|
||||
dc h'1B00 1F00 1800 1100 3F00 4E00 4D00 3C00'
|
||||
dc h'5600 4E00 8100 8000 8600 7F00 8700 8200'
|
||||
dc h'8900 8800 8D00 8A00 8C00 8F00 0300 0400'
|
||||
dc h'0100 0600 8400 8300 0800 0000 0900 0200'
|
||||
dc h'0E00 1000 6B00 8E00 5E00 6300 5C00 6700'
|
||||
dc h'5300 6D00 0D00 1A00 1200 0A00 1400 0C00'
|
||||
dc h'0700 0900 7800 7600 2000 2500 4300 4500'
|
||||
dc h'4E00 3B00 3300 2300 3F00 4500 1700 0000'
|
||||
dc h'1100 7000 3300 5F00 6100 4D00 4000 5600'
|
||||
dc h'2500 4100 4B00 5B00 1B00 1300 2600 3E00'
|
||||
dc h'5000 3700 0F00 2500 2900 4100 4200 3C00'
|
||||
dc h'3000 3500 0C00 0700 6C00 6600 7200 7500'
|
||||
dc h'1500 1300 3900 3300 4000 3700 2C00 2900'
|
||||
dc h'3D00 4100 3100 3E00 0D00 0500 6D00 6500'
|
||||
dc h'7000 7400 1400 1800 3B00 3400 3F00 3800'
|
||||
dc h'2D00 2A00 6200 5900 0C00 0D00 0100 0400'
|
||||
dc h'4300 9100 3400 0E00 0500 1D00 0300 2500'
|
||||
dc h'2900 6400 1300 0F00 0200 5C00 6100 5400'
|
||||
dc h'6000 5A00 0C00 5800 1100 1000 1F00 6900'
|
||||
dc h'4D00 5E00 3D00 0400 3500 6800 0500 2400'
|
||||
dc h'6C00 2700 0A00 2000 1F00 4400 5F00 5800'
|
||||
dc h'5500 6400 0F00 5700 5000 2500 0200 1E00'
|
||||
dc h'3D00 4F00 1C00 2600 3000 2200 4800 4A00'
|
||||
dc h'4C00 5600 4400 4300 1000 1100 2500 2000'
|
||||
dc h'2600 2B00 2E00 2700 7A00 7B00 7D00 7E00'
|
||||
dc h'1700 2D00 1500 2700 0E00 1600 1F00 4700'
|
||||
dc h'0000 0600 0500 6300 0800 0800 2800 2A00'
|
||||
dc h'2E00 0B00 4900 4B00 3E00 4600 4800 1E00'
|
||||
dc h'2B00 5400 0900 1900 1D00 4000 2C00 5200'
|
||||
dc h'2200 0700 1E00 3100 2300 2100 5200 2D00'
|
||||
dc h'1600 3600 7100 5100 5A00 1C00 2800 1A00'
|
||||
dc h'4200 4C00 5D00 5C00 3C00 4600 3200 4500'
|
||||
dc h'6000 2A00 5B00 3B00 1600 1800 3300 6100'
|
||||
dc h'3E00 5300 1700 1A00 5F00 3200 4E00 0A00'
|
||||
dc h'3600 2F00 2200 3B00 2B00 3700 4A00 4000'
|
||||
dc h'5700 3400 3800 2000 3900 3F00 3100 5D00'
|
||||
dc h'3000 2300 5A00 0400 0E00 4C00 2800 4300'
|
||||
dc h'4900 2F00 2F00 7900 2800 1F00 4A00 2700'
|
||||
dc h'3500 4900 4F00 3C00 6A00 0A00 1500 8C00'
|
||||
dc h'7300 1600 2200 7C00 6700 3900 1500 5E00'
|
||||
dc h'7000 4200 3A00 2100 4800 5100 3600 1900'
|
||||
dc h'1400 1300 5E00 1000 0600 0200 5300 5000'
|
||||
dc h'0E00 0B00 4400 2E00 5200 3A00 4700 1800'
|
||||
dc h'8500 1900 4600 2E00 5900 3800 6200 4D00'
|
||||
dc h'4000 3400 7200 2A00 3100 7700 2C00 3200'
|
||||
dc h'1B00 1C00 6B00 5700 2300 1A00 6E00 6900'
|
||||
dc h'3000 4100 1700 2100 1D00 1E00 6800 6F00'
|
||||
dc h'3200 3700 3B00 3000 3A00 5900 3D00 6500'
|
||||
dc h'6E00 1400 5800 3300 5B00 3900 6D00 1200'
|
||||
dc h'0B00 1100 3800 2D00 5400 3700 0700 0300'
|
||||
dc h'0B00 0600 6600 2C00 0900 0000 0100 1200'
|
||||
dc h'1900 2B00 2000 2500 5500 0D00 5500 2300'
|
||||
dc h'1C00 4B00 0800 5600 2900 5000 1B00 4700'
|
||||
dc h'1D00 1B00 1800 1100 4E00 3F00 3C00 4D00'
|
||||
dc h'4400 9000 8000 8300 8600 7F00 8100 8700'
|
||||
dc h'8900 8800 8D00 8B00 8F00 8A00 0500 0300'
|
||||
dc h'0600 0200 8200 8400 0000 0900 0800 0100'
|
||||
dc h'0F00 1200 8E00 6B00 5D00 6300 6700 5C00'
|
||||
dc h'6A00 5300 1A00 0D00 1200 0A00 1400 0C00'
|
||||
dc h'0900 0700 7800 7600 2400 2100 4500 4300'
|
||||
dc h'5100 3B00 2400 3300 3F00 4500 1700 0100'
|
||||
dc h'1000 6F00 3500 5F00 4E00 6000 5600 4100'
|
||||
dc h'2400 4200 4B00 5B00 1B00 1300 2600 3E00'
|
||||
dc h'4F00 3700 0F00 2600 2900 4100 4100 3D00'
|
||||
dc h'3500 3100 0D00 0700 6500 6D00 7100 7500'
|
||||
dc h'1500 1300 3400 3A00 3F00 3600 2D00 2900'
|
||||
dc h'3E00 4200 2F00 3C00 0C00 0400 6600 6C00'
|
||||
dc h'7400 7000 1800 1400 3300 3900 4000 3800'
|
||||
dc h'2C00 2A00 5900 6200 0D00 0C00 0100 0400'
|
||||
dc h'0000 0300'
|
||||
|
||||
xrickBank ANOP
|
||||
dc a'xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank03'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank02,xrickBank01,xrickBank02,xrickBank01,xrickBank01,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank00,xrickBank01,xrickBank02,xrickBank02,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank02,xrickBank02,xrickBank01,xrickBank02,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank03,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank02,xrickBank01,xrickBank01,xrickBank02,xrickBank01,xrickBank01,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank01,xrickBank00,xrickBank02,xrickBank02,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank02,xrickBank02,xrickBank02,xrickBank01,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank02,xrickBank02,xrickBank01,xrickBank01,xrickBank01,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank00,xrickBank01,xrickBank02,xrickBank01,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank01,xrickBank00,xrickBank01,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank00'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank03,xrickBank03,xrickBank03,xrickBank03'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank00'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank00,xrickBank01,xrickBank00,xrickBank02,xrickBank00,xrickBank00'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank02,xrickBank02,xrickBank01,xrickBank01,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank00,xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank00,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank02,xrickBank01,xrickBank01,xrickBank02,xrickBank01,xrickBank01,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank01,xrickBank00,xrickBank00,xrickBank00,xrickBank01,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank00,xrickBank02,xrickBank00,xrickBank01,xrickBank01,xrickBank01,xrickBank02'
|
||||
dc a'xrickBank00,xrickBank02,xrickBank01,xrickBank01,xrickBank01,xrickBank02,xrickBank00,xrickBank01'
|
||||
dc a'xrickBank00,xrickBank01,xrickBank01,xrickBank02,xrickBank01,xrickBank02,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank02,xrickBank02,xrickBank01,xrickBank02,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank01,xrickBank00,xrickBank00,xrickBank01,xrickBank01,xrickBank02'
|
||||
dc a'xrickBank01,xrickBank00,xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank00'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank01,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank02,xrickBank01,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank01,xrickBank00,xrickBank00,xrickBank01,xrickBank00,xrickBank01,xrickBank02'
|
||||
dc a'xrickBank00,xrickBank01,xrickBank00,xrickBank02,xrickBank01,xrickBank01,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank02,xrickBank00,xrickBank01,xrickBank01,xrickBank01,xrickBank02,xrickBank00,xrickBank01'
|
||||
dc a'xrickBank00,xrickBank01,xrickBank02,xrickBank01,xrickBank02,xrickBank01,xrickBank01,xrickBank02'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank02,xrickBank02,xrickBank02,xrickBank01,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank00,xrickBank01,xrickBank01,xrickBank00,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank02,xrickBank00,xrickBank02,xrickBank03,xrickBank03,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank02,xrickBank03,xrickBank01,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank03,xrickBank02,xrickBank03,xrickBank01,xrickBank01,xrickBank00,xrickBank02'
|
||||
dc a'xrickBank00,xrickBank01,xrickBank01,xrickBank00,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank03,xrickBank03,xrickBank02,xrickBank01,xrickBank01,xrickBank02,xrickBank00'
|
||||
dc a'xrickBank01,xrickBank00,xrickBank00,xrickBank01,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank02,xrickBank00,xrickBank00,xrickBank00,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank00,xrickBank01,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank03,xrickBank02,xrickBank02,xrickBank00,xrickBank01,xrickBank01,xrickBank00'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank00,xrickBank00'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank02,xrickBank01,xrickBank03,xrickBank03,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank01,xrickBank02,xrickBank03,xrickBank03,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank03,xrickBank02,xrickBank03,xrickBank03,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank03,xrickBank03,xrickBank01,xrickBank01,xrickBank00,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank00,xrickBank01,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank01,xrickBank00,xrickBank02,xrickBank01,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank02,xrickBank01,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank01,xrickBank01,xrickBank01,xrickBank00'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank00,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank00,xrickBank01,xrickBank01,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank01,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank01,xrickBank01,xrickBank00,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank01,xrickBank00,xrickBank01,xrickBank01'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank03,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank03,xrickBank03'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank02,xrickBank02,xrickBank03,xrickBank03,xrickBank03,xrickBank03'
|
||||
dc a'xrickBank03,xrickBank03,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02,xrickBank02'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank00,xrickBank00'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank02,xrickBank02,xrickBank03,xrickBank03,xrickBank00,xrickBank00'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank00,xrickBank02,xrickBank00,xrickBank01,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank00,xrickBank00,xrickBank02,xrickBank00,xrickBank00,xrickBank01,xrickBank02,xrickBank01'
|
||||
dc a'xrickBank01,xrickBank01,xrickBank01,xrickBank00,xrickBank01,xrickBank01,xrickBank00,xrickBank00'
|
||||
dc a'xrickBank00,xrickBank01,xrickBank00,xrickBank02,xrickBank02,xrickBank00,xrickBank01,xrickBank00'
|
||||
dc a'xrickBank02,xrickBank00,xrickBank00,xrickBank02,xrickBank00,xrickBank02,xrickBank03,xrickBank03'
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -182,7 +182,7 @@ extern volatile unsigned long* tick;
|
|||
extern void SetTileBank(short bank);
|
||||
extern void DrawTile(int offset, int tileNo);
|
||||
extern void SetSpriteBanks(short b0, short b1, short b2, short b3);
|
||||
extern void DrawSprite(int offset, into SpriteNo);
|
||||
extern void DrawSprite(int offset, int SpriteNo);
|
||||
|
||||
// ADB Support Code
|
||||
extern char KeyArray[128];
|
||||
|
|
37
src/draw.c
37
src/draw.c
|
@ -329,11 +329,48 @@ draw_sprite(U8 nbr, U16 x, U16 y)
|
|||
void
|
||||
draw_sprite(U8 number, U16 x, U16 y)
|
||||
{
|
||||
int frameNo = number;
|
||||
|
||||
if (y >= (200-21))
|
||||
return;
|
||||
|
||||
frameNo<<=1;
|
||||
|
||||
if (x & 1)
|
||||
frameNo|=1;
|
||||
|
||||
draw_setfb(x,y);
|
||||
DrawSprite((int)fb, frameNo);
|
||||
}
|
||||
|
||||
void
|
||||
draw_sprite2(U8 number, U16 x, U16 y, U8 front)
|
||||
{
|
||||
S16 x0, y0; /* clipped x, y */
|
||||
U16 w, h; /* width, height */
|
||||
int frameNo = number;
|
||||
|
||||
x0 = x;
|
||||
y0 = y;
|
||||
w = 0x20;
|
||||
h = 0x15;
|
||||
|
||||
if (draw_clipms(&x0, &y0, &w, &h)) /* return if not visible */
|
||||
return;
|
||||
|
||||
frameNo<<=1;
|
||||
|
||||
x0 -= DRAW_XYMAP_SCRLEFT;
|
||||
y0 -= (DRAW_XYMAP_SCRTOP-8);
|
||||
|
||||
if (x0 & 1)
|
||||
frameNo|=1;
|
||||
|
||||
if (y0 >= (200-21))
|
||||
return;
|
||||
|
||||
draw_setfb(x0, y0);
|
||||
DrawSprite((int)fb, frameNo);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue