Skip to content

Commit e26bf07

Browse files
runer112Matt Waltz
authored and
Matt Waltz
committed
Implement sprites with RLE transparency (#76)
1 parent f7c16b4 commit e26bf07

File tree

14 files changed

+1352
-81
lines changed

14 files changed

+1352
-81
lines changed
+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"rom": "84pce_515.rom",
3+
"transfer_files": [
4+
"bin/DEMO.8xp"
5+
],
6+
"target": {
7+
"name": "DEMO",
8+
"isASM": true
9+
},
10+
"sequence": [
11+
"action|launch",
12+
"hashWait|1",
13+
"key|enter",
14+
"hashWait|2"
15+
],
16+
"hashes": {
17+
"1": {
18+
"description": "Make sure the sprites are displayed properly",
19+
"start": "vram_start",
20+
"size": "vram_8_size",
21+
"expected_CRCs": [ "7C9ADADE" ]
22+
},
23+
"2": {
24+
"description": "Back to the home screen (exit check)",
25+
"start": "vram_start",
26+
"size": "vram_16_size",
27+
"expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
28+
}
29+
}
30+
}

examples/gfx_rletsprite/makefile

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# ----------------------------
2+
# Set NAME to the program name
3+
# Set DEBUGMODE to "DEBUG" to use debug functions
4+
# Set ICON to the png icon file name
5+
# Set DESCRIPTION to display within a compatible shell
6+
# Set COMPRESSED to "YES" to create a compressed program
7+
# ** Add all shared library names to L **
8+
# ----------------------------
9+
10+
NAME ?= DEMO
11+
DEBUGMODE ?= NDEBUG
12+
COMPRESSED ?= NO
13+
ICON ?= iconc.png
14+
DESCRIPTION ?= "C SDK Demo"
15+
16+
L ?= graphx
17+
18+
# ----------------------------
19+
# Specify source and output locations
20+
# ----------------------------
21+
22+
SRCDIR ?= src
23+
OBJDIR ?= obj
24+
BINDIR ?= bin
25+
GFXDIR ?= src/gfx
26+
27+
# ----------------------------
28+
# Use OS helper functions (Advanced)
29+
# ----------------------------
30+
31+
USE_FLASH_FUNCTIONS ?= YES
32+
33+
include $(CEDEV)/include/.makefile

examples/gfx_rletsprite/readme.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
### GraphX RLETSprite Demo
2+
3+
Draws a sprite with RLE transparency in many clipping scenarios and converts to
4+
and from a normal sprite with transparency. Created for testing.
5+
6+
![Screenshot](screenshot.png)
7+
8+
---
9+
10+
This demo is a part of the C SDK Toolchain for use on the CE.
6.83 KB
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#GroupC : logo_gfx
2+
#Style : rlet
3+
#TransparentColor : 255,255,255
4+
#PNGImages :
5+
ubuntu
+204
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
// Converted using ConvPNG
2+
#include <stdint.h>
3+
#include "logo_gfx.h"
4+
5+
uint16_t logo_gfx_pal[198] = {
6+
0xFFFF, // 00 :: rgba(255,255,255,255)
7+
0xFFE0, // 01 :: rgba(255,255,0,255)
8+
0x7C00, // 02 :: rgba(255,0,0,255)
9+
0x001F, // 03 :: rgba(0,0,255,255)
10+
0xFFFF, // 04 :: rgba(255,254,254,255)
11+
0xFFFF, // 05 :: rgba(255,255,254,255)
12+
0x83E0, // 06 :: rgba(0,255,0,255)
13+
0x6800, // 07 :: rgba(212,0,0,255)
14+
0x7E20, // 08 :: rgba(251,139,0,255)
15+
0x7920, // 09 :: rgba(244,72,0,255)
16+
0x6800, // 10 :: rgba(212,2,2,255)
17+
0xE821, // 11 :: rgba(213,11,11,255)
18+
0x7E20, // 12 :: rgba(251,139,2,255)
19+
0x7E20, // 13 :: rgba(251,139,1,255)
20+
0xFE20, // 14 :: rgba(251,140,4,255)
21+
0xFFFF, // 15 :: rgba(255,253,253,255)
22+
0xFFFF, // 16 :: rgba(255,254,253,255)
23+
0xFECC, // 17 :: rgba(252,182,97,255)
24+
0x7A90, // 18 :: rgba(249,163,128,255)
25+
0x7FDC, // 19 :: rgba(254,244,231,255)
26+
0xF985, // 20 :: rgba(245,100,40,255)
27+
0x7F9A, // 21 :: rgba(253,225,213,255)
28+
0x7FDD, // 22 :: rgba(253,242,242,255)
29+
0x6D6B, // 23 :: rgba(226,90,90,255)
30+
0xFFBC, // 24 :: rgba(254,239,233,255)
31+
0xF921, // 25 :: rgba(244,77,7,255)
32+
0x7EED, // 26 :: rgba(252,187,107,255)
33+
0xFF99, // 27 :: rgba(254,231,203,255)
34+
0xFFFE, // 28 :: rgba(255,253,250,255)
35+
0xFF16, // 29 :: rgba(251,199,177,255)
36+
0xF921, // 30 :: rgba(244,78,8,255)
37+
0x7F31, // 31 :: rgba(253,204,143,255)
38+
0xF18C, // 32 :: rgba(229,102,102,255)
39+
0x7FDD, // 33 :: rgba(252,241,241,255)
40+
0xFE87, // 34 :: rgba(251,164,56,255)
41+
0xFF76, // 35 :: rgba(253,221,181,255)
42+
0x7B5A, // 36 :: rgba(247,212,212,255)
43+
0x7652, // 37 :: rgba(236,145,145,255)
44+
0xF652, // 38 :: rgba(237,151,151,255)
45+
0xE800, // 39 :: rgba(212,3,3,255)
46+
0x6D29, // 40 :: rgba(224,74,74,255)
47+
0x718C, // 41 :: rgba(228,98,98,255)
48+
0xFF54, // 42 :: rgba(253,214,165,255)
49+
0xFB7B, // 43 :: rgba(250,224,224,255)
50+
0x7EEC, // 44 :: rgba(252,185,102,255)
51+
0x7FFF, // 45 :: rgba(254,252,252,255)
52+
0x7FBA, // 46 :: rgba(254,234,211,255)
53+
0xFF77, // 47 :: rgba(253,224,187,255)
54+
0x7F75, // 48 :: rgba(253,218,175,255)
55+
0x7FFE, // 49 :: rgba(254,249,249,255)
56+
0xFF32, // 50 :: rgba(252,205,148,255)
57+
0xE842, // 51 :: rgba(215,20,20,255)
58+
0xFFFF, // 52 :: rgba(255,253,251,255)
59+
0x6CC6, // 53 :: rgba(219,48,48,255)
60+
0x7EED, // 54 :: rgba(252,188,109,255)
61+
0xF652, // 55 :: rgba(237,149,149,255)
62+
0x7673, // 56 :: rgba(237,153,153,255)
63+
0x7FBD, // 57 :: rgba(252,236,236,255)
64+
0x7EA8, // 58 :: rgba(251,169,68,255)
65+
0xFAF4, // 59 :: rgba(250,190,165,255)
66+
0xFE87, // 60 :: rgba(251,167,61,255)
67+
0xECA5, // 61 :: rgba(218,43,43,255)
68+
0x7AD2, // 62 :: rgba(250,179,149,255)
69+
0xFAF7, // 63 :: rgba(243,189,189,255)
70+
0xFAF7, // 64 :: rgba(244,192,192,255)
71+
0x7B9B, // 65 :: rgba(250,225,225,255)
72+
0x7B7B, // 66 :: rgba(249,220,220,255)
73+
0xED09, // 67 :: rgba(224,70,70,255)
74+
0x6D08, // 68 :: rgba(222,63,63,255)
75+
0xF1AD, // 69 :: rgba(229,109,109,255)
76+
0xED08, // 70 :: rgba(223,69,69,255)
77+
0x76D6, // 71 :: rgba(242,178,178,255)
78+
0x6D4A, // 72 :: rgba(225,82,82,255)
79+
0xECC6, // 73 :: rgba(220,51,51,255)
80+
0x718C, // 74 :: rgba(228,97,97,255)
81+
0x76D6, // 75 :: rgba(242,179,179,255)
82+
0xFFDD, // 76 :: rgba(254,246,235,255)
83+
0xFFBC, // 77 :: rgba(254,239,234,255)
84+
0xFF77, // 78 :: rgba(253,223,187,255)
85+
0x6863, // 79 :: rgba(216,26,26,255)
86+
0x7AB1, // 80 :: rgba(249,169,136,255)
87+
0xFF9C, // 81 :: rgba(251,230,230,255)
88+
0xE843, // 82 :: rgba(215,21,21,255)
89+
0xF9A6, // 83 :: rgba(245,108,51,255)
90+
0x7942, // 84 :: rgba(244,81,13,255)
91+
0xFE21, // 85 :: rgba(251,143,11,255)
92+
0x7F97, // 86 :: rgba(253,225,189,255)
93+
0x7FBA, // 87 :: rgba(254,236,215,255)
94+
0x7FBC, // 88 :: rgba(251,234,234,255)
95+
0x7F9A, // 89 :: rgba(253,227,217,255)
96+
0x76D6, // 90 :: rgba(242,177,177,255)
97+
0xFB18, // 91 :: rgba(245,197,197,255)
98+
0x7AB1, // 92 :: rgba(249,171,139,255)
99+
0xFFBB, // 93 :: rgba(254,239,221,255)
100+
0xFAB2, // 94 :: rgba(249,176,144,255)
101+
0xF694, // 95 :: rgba(240,167,167,255)
102+
0x71AD, // 96 :: rgba(229,106,106,255)
103+
0x7FDE, // 97 :: rgba(253,243,243,255)
104+
0x7FDD, // 98 :: rgba(254,242,237,255)
105+
0x6842, // 99 :: rgba(214,16,16,255)
106+
0xE801, // 100 :: rgba(213,5,5,255)
107+
0xE822, // 101 :: rgba(214,14,14,255)
108+
0x6D29, // 102 :: rgba(223,71,71,255)
109+
0x7672, // 103 :: rgba(237,152,152,255)
110+
0x7A8F, // 104 :: rgba(249,161,124,255)
111+
0xF694, // 105 :: rgba(239,165,165,255)
112+
0x7FBB, // 106 :: rgba(253,233,224,255)
113+
0xFFBC, // 107 :: rgba(254,238,231,255)
114+
0xFEAA, // 108 :: rgba(251,175,80,255)
115+
0x7FFE, // 109 :: rgba(255,251,247,255)
116+
0xFA6F, // 110 :: rgba(249,159,121,255)
117+
0x7694, // 111 :: rgba(239,163,163,255)
118+
0xF920, // 112 :: rgba(244,75,4,255)
119+
0x7694, // 113 :: rgba(239,161,161,255)
120+
0xFF76, // 114 :: rgba(253,222,183,255)
121+
0x7A8F, // 115 :: rgba(249,160,123,255)
122+
0x7F0E, // 116 :: rgba(253,193,117,255)
123+
0xFB39, // 117 :: rgba(247,208,208,255)
124+
0xFF55, // 118 :: rgba(253,215,169,255)
125+
0xFFBA, // 119 :: rgba(254,237,216,255)
126+
0xFF7A, // 120 :: rgba(253,224,213,255)
127+
0xFF32, // 121 :: rgba(253,207,151,255)
128+
0x7631, // 122 :: rgba(235,138,138,255)
129+
0xFB7B, // 123 :: rgba(250,223,223,255)
130+
0x7B38, // 124 :: rgba(246,201,201,255)
131+
0x7AF3, // 125 :: rgba(250,186,160,255)
132+
0x7FFF, // 126 :: rgba(254,251,251,255)
133+
0xF16C, // 127 :: rgba(227,95,95,255)
134+
0x7FDB, // 128 :: rgba(254,241,224,255)
135+
0xFE87, // 129 :: rgba(251,165,60,255)
136+
0xFA6F, // 130 :: rgba(249,159,122,255)
137+
0xFE87, // 131 :: rgba(251,164,57,255)
138+
0x7F0E, // 132 :: rgba(252,193,119,255)
139+
0xFF9B, // 133 :: rgba(253,229,219,255)
140+
0x7A2B, // 134 :: rgba(247,138,92,255)
141+
0x7E42, // 135 :: rgba(251,146,19,255)
142+
0x7FDC, // 136 :: rgba(254,243,230,255)
143+
0x7963, // 137 :: rgba(244,89,24,255)
144+
0x7E41, // 138 :: rgba(251,144,12,255)
145+
0x7F79, // 139 :: rgba(252,220,207,255)
146+
0xFF33, // 140 :: rgba(252,208,154,255)
147+
0x7F36, // 141 :: rgba(251,202,182,255)
148+
0xFA6E, // 142 :: rgba(249,157,119,255)
149+
0xFFDD, // 143 :: rgba(254,245,240,255)
150+
0xF964, // 144 :: rgba(245,95,32,255)
151+
0x7920, // 145 :: rgba(244,74,3,255)
152+
0xF921, // 146 :: rgba(244,76,6,255)
153+
0xFFDE, // 147 :: rgba(254,246,243,255)
154+
0xFAD3, // 148 :: rgba(250,183,155,255)
155+
0x7B18, // 149 :: rgba(245,195,195,255)
156+
0x7FFE, // 150 :: rgba(255,252,250,255)
157+
0xFAD3, // 151 :: rgba(250,182,154,255)
158+
0x6800, // 152 :: rgba(212,1,1,255)
159+
0x7FFE, // 153 :: rgba(255,251,250,255)
160+
0xF985, // 154 :: rgba(245,103,44,255)
161+
0x7EA8, // 155 :: rgba(251,169,69,255)
162+
0xFEAA, // 156 :: rgba(251,176,82,255)
163+
0x7ECB, // 157 :: rgba(251,179,87,255)
164+
0x7AD2, // 158 :: rgba(250,178,148,255)
165+
0x6D08, // 159 :: rgba(222,65,65,255)
166+
0x71EF, // 160 :: rgba(231,120,120,255)
167+
0xFAD3, // 161 :: rgba(250,181,153,255)
168+
0x7A4D, // 162 :: rgba(248,147,106,255)
169+
0xFB5A, // 163 :: rgba(248,216,216,255)
170+
0x7FDE, // 164 :: rgba(253,244,244,255)
171+
0x7F15, // 165 :: rgba(251,196,173,255)
172+
0x7F79, // 166 :: rgba(253,220,206,255)
173+
0xFFDD, // 167 :: rgba(254,246,242,255)
174+
0x7652, // 168 :: rgba(236,146,146,255)
175+
0xF9E9, // 169 :: rgba(246,126,76,255)
176+
0xFB39, // 170 :: rgba(247,206,206,255)
177+
0xFF37, // 171 :: rgba(252,208,190,255)
178+
0xF942, // 172 :: rgba(244,83,16,255)
179+
0x7F31, // 173 :: rgba(252,201,137,255)
180+
0xFAB2, // 174 :: rgba(250,176,145,255)
181+
0xF9C8, // 175 :: rgba(246,116,62,255)
182+
0xFF9B, // 176 :: rgba(253,232,224,255)
183+
0xFF10, // 177 :: rgba(252,198,131,255)
184+
0x7A6E, // 178 :: rgba(248,155,117,255)
185+
0xFFBB, // 179 :: rgba(254,240,221,255)
186+
0xFE21, // 180 :: rgba(251,143,10,255)
187+
0xFEA9, // 181 :: rgba(251,174,78,255)
188+
0x7E87, // 182 :: rgba(251,163,54,255)
189+
0xFF54, // 183 :: rgba(253,213,164,255)
190+
0xF9E9, // 184 :: rgba(247,127,77,255)
191+
0x79E8, // 185 :: rgba(246,120,67,255)
192+
0xFE21, // 186 :: rgba(251,141,6,255)
193+
0xFFDD, // 187 :: rgba(254,248,240,255)
194+
0xFF58, // 188 :: rgba(252,213,197,255)
195+
0x7FDC, // 189 :: rgba(254,243,229,255)
196+
0x7F53, // 190 :: rgba(253,210,155,255)
197+
0xFE87, // 191 :: rgba(251,164,58,255)
198+
0x7920, // 192 :: rgba(244,74,2,255)
199+
0x7F57, // 193 :: rgba(252,210,193,255)
200+
0xC3E0, // 194 :: rgba(128,255,0,255)
201+
0x7E00, // 195 :: rgba(255,128,0,255)
202+
0x0210, // 196 :: rgba(0,128,128,255)
203+
0x4030, // 197 :: rgba(128,8,128,255)
204+
};
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Converted using ConvPNG
2+
// This file contains all the graphics sources for easier inclusion in a project
3+
#ifndef __logo_gfx__
4+
#define __logo_gfx__
5+
#include <stdint.h>
6+
7+
#define logo_gfx_transparent_color_index 0
8+
9+
extern uint8_t ubuntu_data[552];
10+
#define ubuntu ((gfx_rletsprite_t*)ubuntu_data)
11+
#define sizeof_logo_gfx_pal 396
12+
extern uint16_t logo_gfx_pal[198];
13+
14+
#endif
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Converted using ConvPNG
2+
#include <stdint.h>
3+
#include "logo_gfx.h"
4+
5+
// 8 bpp image
6+
uint8_t ubuntu_data[552] = {
7+
32,32, // width,height
8+
0x00,0x04,0xC2,0x01,0x01,0x01,0x18,0x04,0x01,0x01,0x01,0xC3,0x00,0x01,0x06,0x1E,0x01,0x02,0x00,0x01,0x06,0x15,0x04,0x0F,0x47,0x25,0x42,0x05,0x01,0x02,0x00,0x01,
9+
0x06,0x14,0x06,0x04,0x17,0x07,0x07,0x0B,0x40,0x04,0x01,0x02,0x0E,0x0D,0x04,0x59,0x3B,0x50,0x12,0x94,0x18,0xA3,0x07,0x07,0x07,0x07,0x28,0x05,0x0D,0x0E,0x8D,0x14,
10+
0x09,0x09,0x09,0x09,0x09,0xA5,0xAA,0x07,0x07,0x07,0x07,0x46,0x05,0x0B,0x01,0x88,0x01,0x0E,0x85,0x19,0x09,0x09,0x09,0x09,0x09,0xA2,0x04,0x9F,0x07,0x07,0x98,0x5A,
11+
0x05,0x0A,0x03,0x8C,0x87,0x13,0x01,0x0C,0x8E,0x09,0x09,0x09,0x09,0x09,0x19,0xA6,0xA4,0xA8,0xA0,0x95,0x06,0x09,0x04,0x76,0x0D,0x08,0x11,0x01,0x0E,0x8F,0x89,0x70,
12+
0x90,0x9A,0x1E,0x09,0xAC,0xA1,0xA7,0x99,0x15,0x5C,0x04,0x04,0x08,0x06,0x5D,0x55,0x08,0x08,0x0C,0x1B,0x01,0x03,0x78,0x62,0x05,0x01,0x09,0x96,0xAB,0xA9,0x09,0x09,
13+
0x92,0x09,0x09,0x3E,0x04,0x07,0x07,0x05,0x9C,0x08,0x08,0x08,0x08,0x84,0x07,0x08,0x04,0x97,0x91,0x09,0x09,0x09,0x54,0x4D,0x03,0x07,0x07,0xB3,0x0D,0x08,0x08,0x08,
14+
0x81,0x1C,0x09,0x06,0x5E,0x09,0x09,0x09,0x09,0x12,0x03,0x07,0x06,0xB7,0x08,0x08,0x08,0x0C,0x57,0x0A,0x07,0x04,0x53,0x09,0x09,0x09,0x14,0x04,0x02,0x03,0x09,0x93,
15+
0xAE,0xB2,0xC1,0x05,0x1A,0x08,0x08,0x9B,0x0C,0x06,0x7D,0x09,0x09,0x09,0x09,0x18,0x02,0x02,0x0A,0x10,0xAF,0x09,0x09,0xC0,0x1D,0xBB,0xB4,0x08,0xB1,0x0C,0x06,0x6B,
16+
0x68,0x73,0x82,0x6E,0x6A,0x02,0x02,0x06,0x8B,0x09,0x09,0x09,0x09,0xB9,0x01,0x03,0xBF,0x08,0xBE,0x14,0x02,0x06,0x15,0x09,0x09,0x09,0x09,0xB8,0x01,0x03,0xB6,0x08,
17+
0xAD,0x0C,0x06,0x61,0x71,0x6F,0x69,0x5F,0x58,0x02,0x02,0x0A,0x04,0x86,0x09,0x09,0x1E,0xBC,0xBD,0xBA,0x08,0x9D,0x0C,0x06,0x4B,0x07,0x07,0x07,0x07,0x51,0x02,0x03,
18+
0x0A,0x10,0x1D,0x9E,0xB0,0x1C,0xB5,0x08,0x08,0x8A,0x4C,0x0B,0x06,0x48,0x07,0x07,0x07,0x4F,0x0F,0x02,0x07,0x07,0x1B,0x08,0x08,0x08,0x08,0x2C,0x05,0x09,0x06,0x3F,
19+
0x0A,0x07,0x07,0x07,0x45,0x03,0x07,0x07,0x04,0x83,0x08,0x08,0x08,0x08,0x32,0x08,0x07,0x75,0x52,0x07,0x07,0x07,0x27,0x24,0x03,0x08,0x06,0x4E,0x08,0x08,0x08,0x08,
20+
0x30,0x01,0x02,0x31,0x04,0x03,0x08,0x16,0x7A,0x0B,0x07,0x07,0x07,0x07,0x20,0x04,0x08,0x14,0x05,0x36,0x08,0x08,0x3A,0x04,0x2D,0x35,0x49,0x4A,0x60,0x66,0x65,0x07,
21+
0x07,0x0A,0x0B,0x07,0x3D,0x21,0x04,0x09,0x04,0x34,0x11,0x0E,0x2E,0x01,0x0D,0x37,0x07,0x07,0x07,0x07,0x07,0x07,0x63,0x67,0x16,0x7E,0x7B,0x41,0x05,0x0A,0x02,0x05,
22+
0x2F,0x01,0x0D,0x39,0x33,0x07,0x07,0x07,0x07,0x07,0x64,0x7C,0x6D,0x79,0x74,0x56,0x06,0x0D,0x0E,0x38,0x0A,0x07,0x07,0x07,0x07,0x07,0x7F,0x04,0x6C,0x08,0x08,0x0D,
23+
0x2A,0x05,0x0E,0x0D,0x2B,0x26,0x29,0x43,0x44,0x17,0x5B,0x80,0x08,0x08,0x08,0x08,0x22,0x05,0x15,0x06,0x13,0x0C,0x08,0x08,0x08,0x3C,0x05,0x00,0x01,0x06,0x15,0x05,
24+
0x1A,0x08,0x08,0x0E,0x72,0x04,0x01,0x02,0x00,0x01,0x06,0x15,0x04,0x05,0x23,0x1F,0x77,0x05,0x01,0x02,0x00,0x01,0x06,0x1E,0x01,0x02,0x00,0x04,0xC4,0x03,0x03,0x03,
25+
0x18,0x04,0x03,0x03,0x03,0xC5,
26+
};
1.4 KB
Loading

0 commit comments

Comments
 (0)