diff options
Diffstat (limited to 'frontends/calculator/CEdev/examples/gfx_tilemap_appvar')
14 files changed, 545 insertions, 0 deletions
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json new file mode 100644 index 0000000..9a2cd06 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json @@ -0,0 +1,43 @@ +{ + "rom": "84pce_515.rom", + "transfer_files": [ + "bin/DEMO.8xp", + "src/gfx/var_gfx.8xv" + ], + "target": { + "name": "DEMO", + "isASM": true + }, + "sequence": [ + "action|launch", + "hashWait|1", + "delay|100", + "key|right", + "key|right", + "key|down", + "key|down", + "hashWait|2", + "key|enter", + "hashWait|3" + ], + "hashes": { + "1": { + "description": "Initial sprite map state (top left)", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "3C2D7C36" ] + }, + "2": { + "description": "Moving a bit to the bottom right", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "F0C14AE9" ] + }, + "3": { + "description": "Back to the home screen (exit check)", + "start": "vram_start", + "size": "vram_16_size", + "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ] + } + } +} diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile new file mode 100644 index 0000000..1f1b36b --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile @@ -0,0 +1,15 @@ +# ---------------------------- +# Set NAME to the program name +# Set ICON to the png icon file name +# Set DESCRIPTION to display within a compatible shell +# Set COMPRESSED to "YES" to create a compressed program +# ---------------------------- + +NAME ?= DEMO +COMPRESSED ?= NO +ICON ?= iconc.png +DESCRIPTION ?= "C SDK Demo" + +# ---------------------------- + +include $(CEDEV)/include/.makefile diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md new file mode 100644 index 0000000..83c687b --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md @@ -0,0 +1,10 @@ +### GraphX Simple Appvar Tilemap Demo + +An example of tilemaping using a sequence of tiles and the keypad. Data for the tilemap is stored within an appvar. + + + +--- + +This demo is a part of the C SDK Toolchain for use on the CE. + diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/screenshot.gif b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/screenshot.gif Binary files differnew file mode 100644 index 0000000..741067c --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/screenshot.gif diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini new file mode 100644 index 0000000..ebcba17 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini @@ -0,0 +1,14 @@ +// Appvar to place all graphics in + +#AppvarC : var_gfx +#IncludePalettes : tiles_gfx +#PNGImages : + tileset + +// The group for the tileset + +#GroupC : tiles_gfx +#TransparentColor : 255,201,14 +#Tilemap : 16,16,true +#PNGImages : + tileset diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c new file mode 100644 index 0000000..7243683 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c @@ -0,0 +1,4 @@ +// convpng +#include <stdint.h> +#include "tiles_gfx.h" + diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h new file mode 100644 index 0000000..e86b1ce --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h @@ -0,0 +1,10 @@ +// convpng +// this file contains all the graphics sources for easy inclusion in a project +#ifndef __tiles_gfx__ +#define __tiles_gfx__ +#include <stdint.h> + +#define tiles_gfx_transparent_color_index 0 + + +#endif diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c new file mode 100644 index 0000000..f4abe71 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c @@ -0,0 +1,134 @@ +// convpng +#include <stdint.h> +#include "tiles_gfx.h" + +uint8_t *tileset_tiles_data[128] = { + (uint8_t*)0, + (uint8_t*)258, + (uint8_t*)516, + (uint8_t*)774, + (uint8_t*)1032, + (uint8_t*)1290, + (uint8_t*)1548, + (uint8_t*)1806, + (uint8_t*)2064, + (uint8_t*)2322, + (uint8_t*)2580, + (uint8_t*)2838, + (uint8_t*)3096, + (uint8_t*)3354, + (uint8_t*)3612, + (uint8_t*)3870, + (uint8_t*)4128, + (uint8_t*)4386, + (uint8_t*)4644, + (uint8_t*)4902, + (uint8_t*)5160, + (uint8_t*)5418, + (uint8_t*)5676, + (uint8_t*)5934, + (uint8_t*)6192, + (uint8_t*)6450, + (uint8_t*)6708, + (uint8_t*)6966, + (uint8_t*)7224, + (uint8_t*)7482, + (uint8_t*)7740, + (uint8_t*)7998, + (uint8_t*)8256, + (uint8_t*)8514, + (uint8_t*)8772, + (uint8_t*)9030, + (uint8_t*)9288, + (uint8_t*)9546, + (uint8_t*)9804, + (uint8_t*)10062, + (uint8_t*)10320, + (uint8_t*)10578, + (uint8_t*)10836, + (uint8_t*)11094, + (uint8_t*)11352, + (uint8_t*)11610, + (uint8_t*)11868, + (uint8_t*)12126, + (uint8_t*)12384, + (uint8_t*)12642, + (uint8_t*)12900, + (uint8_t*)13158, + (uint8_t*)13416, + (uint8_t*)13674, + (uint8_t*)13932, + (uint8_t*)14190, + (uint8_t*)14448, + (uint8_t*)14706, + (uint8_t*)14964, + (uint8_t*)15222, + (uint8_t*)15480, + (uint8_t*)15738, + (uint8_t*)15996, + (uint8_t*)16254, + (uint8_t*)16512, + (uint8_t*)16770, + (uint8_t*)17028, + (uint8_t*)17286, + (uint8_t*)17544, + (uint8_t*)17802, + (uint8_t*)18060, + (uint8_t*)18318, + (uint8_t*)18576, + (uint8_t*)18834, + (uint8_t*)19092, + (uint8_t*)19350, + (uint8_t*)19608, + (uint8_t*)19866, + (uint8_t*)20124, + (uint8_t*)20382, + (uint8_t*)20640, + (uint8_t*)20898, + (uint8_t*)21156, + (uint8_t*)21414, + (uint8_t*)21672, + (uint8_t*)21930, + (uint8_t*)22188, + (uint8_t*)22446, + (uint8_t*)22704, + (uint8_t*)22962, + (uint8_t*)23220, + (uint8_t*)23478, + (uint8_t*)23736, + (uint8_t*)23994, + (uint8_t*)24252, + (uint8_t*)24510, + (uint8_t*)24768, + (uint8_t*)25026, + (uint8_t*)25284, + (uint8_t*)25542, + (uint8_t*)25800, + (uint8_t*)26058, + (uint8_t*)26316, + (uint8_t*)26574, + (uint8_t*)26832, + (uint8_t*)27090, + (uint8_t*)27348, + (uint8_t*)27606, + (uint8_t*)27864, + (uint8_t*)28122, + (uint8_t*)28380, + (uint8_t*)28638, + (uint8_t*)28896, + (uint8_t*)29154, + (uint8_t*)29412, + (uint8_t*)29670, + (uint8_t*)29928, + (uint8_t*)30186, + (uint8_t*)30444, + (uint8_t*)30702, + (uint8_t*)30960, + (uint8_t*)31218, + (uint8_t*)31476, + (uint8_t*)31734, + (uint8_t*)31992, + (uint8_t*)32250, + (uint8_t*)32508, + (uint8_t*)32766, +}; diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.png b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.png Binary files differnew file mode 100644 index 0000000..c20a947 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.png diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.8xv b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.8xv Binary files differnew file mode 100644 index 0000000..20f2b3e --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.8xv diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c new file mode 100644 index 0000000..3b84b3f --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c @@ -0,0 +1,31 @@ +// convpng +#include <stdint.h> +#include "var_gfx.h" + +#include <fileioc.h> +uint8_t *var_gfx[2] = { + (uint8_t*)0, + (uint8_t*)33024, +}; + +bool var_gfx_init(void) { + unsigned int data, i; + ti_var_t appvar; + + ti_CloseAll(); + + appvar = ti_Open("var_gfx", "r"); + data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0]; + for (i = 0; i < var_gfx_num; i++) { + var_gfx[i] += data; + } + + ti_CloseAll(); + + data = (unsigned int)var_gfx[0] - (unsigned int)tileset_tiles_data[0]; + for (i = 0; i < tileset_tiles_num; i++) { + tileset_tiles_data[i] += data; + } + + return (bool)appvar; +} diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h new file mode 100644 index 0000000..d472794 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h @@ -0,0 +1,148 @@ +// convpng +// this file contains all the graphics sources for easy inclusion in a project +#ifndef __var_gfx__ +#define __var_gfx__ +#include <stdint.h> + +#include <stdbool.h> + +#define var_gfx_num 2 + +extern uint8_t *var_gfx[2]; +#define tileset ((gfx_sprite_t*)var_gfx[0]) +#define tileset_tiles_num 128 +extern uint8_t *tileset_tiles_data[128]; +#define tileset_tiles ((gfx_sprite_t**)tileset_tiles_data) +#define tileset_tile_0 ((gfx_sprite_t*)tileset_tiles_data[0]) +#define tileset_tile_1 ((gfx_sprite_t*)tileset_tiles_data[1]) +#define tileset_tile_2 ((gfx_sprite_t*)tileset_tiles_data[2]) +#define tileset_tile_3 ((gfx_sprite_t*)tileset_tiles_data[3]) +#define tileset_tile_4 ((gfx_sprite_t*)tileset_tiles_data[4]) +#define tileset_tile_5 ((gfx_sprite_t*)tileset_tiles_data[5]) +#define tileset_tile_6 ((gfx_sprite_t*)tileset_tiles_data[6]) +#define tileset_tile_7 ((gfx_sprite_t*)tileset_tiles_data[7]) +#define tileset_tile_8 ((gfx_sprite_t*)tileset_tiles_data[8]) +#define tileset_tile_9 ((gfx_sprite_t*)tileset_tiles_data[9]) +#define tileset_tile_10 ((gfx_sprite_t*)tileset_tiles_data[10]) +#define tileset_tile_11 ((gfx_sprite_t*)tileset_tiles_data[11]) +#define tileset_tile_12 ((gfx_sprite_t*)tileset_tiles_data[12]) +#define tileset_tile_13 ((gfx_sprite_t*)tileset_tiles_data[13]) +#define tileset_tile_14 ((gfx_sprite_t*)tileset_tiles_data[14]) +#define tileset_tile_15 ((gfx_sprite_t*)tileset_tiles_data[15]) +#define tileset_tile_16 ((gfx_sprite_t*)tileset_tiles_data[16]) +#define tileset_tile_17 ((gfx_sprite_t*)tileset_tiles_data[17]) +#define tileset_tile_18 ((gfx_sprite_t*)tileset_tiles_data[18]) +#define tileset_tile_19 ((gfx_sprite_t*)tileset_tiles_data[19]) +#define tileset_tile_20 ((gfx_sprite_t*)tileset_tiles_data[20]) +#define tileset_tile_21 ((gfx_sprite_t*)tileset_tiles_data[21]) +#define tileset_tile_22 ((gfx_sprite_t*)tileset_tiles_data[22]) +#define tileset_tile_23 ((gfx_sprite_t*)tileset_tiles_data[23]) +#define tileset_tile_24 ((gfx_sprite_t*)tileset_tiles_data[24]) +#define tileset_tile_25 ((gfx_sprite_t*)tileset_tiles_data[25]) +#define tileset_tile_26 ((gfx_sprite_t*)tileset_tiles_data[26]) +#define tileset_tile_27 ((gfx_sprite_t*)tileset_tiles_data[27]) +#define tileset_tile_28 ((gfx_sprite_t*)tileset_tiles_data[28]) +#define tileset_tile_29 ((gfx_sprite_t*)tileset_tiles_data[29]) +#define tileset_tile_30 ((gfx_sprite_t*)tileset_tiles_data[30]) +#define tileset_tile_31 ((gfx_sprite_t*)tileset_tiles_data[31]) +#define tileset_tile_32 ((gfx_sprite_t*)tileset_tiles_data[32]) +#define tileset_tile_33 ((gfx_sprite_t*)tileset_tiles_data[33]) +#define tileset_tile_34 ((gfx_sprite_t*)tileset_tiles_data[34]) +#define tileset_tile_35 ((gfx_sprite_t*)tileset_tiles_data[35]) +#define tileset_tile_36 ((gfx_sprite_t*)tileset_tiles_data[36]) +#define tileset_tile_37 ((gfx_sprite_t*)tileset_tiles_data[37]) +#define tileset_tile_38 ((gfx_sprite_t*)tileset_tiles_data[38]) +#define tileset_tile_39 ((gfx_sprite_t*)tileset_tiles_data[39]) +#define tileset_tile_40 ((gfx_sprite_t*)tileset_tiles_data[40]) +#define tileset_tile_41 ((gfx_sprite_t*)tileset_tiles_data[41]) +#define tileset_tile_42 ((gfx_sprite_t*)tileset_tiles_data[42]) +#define tileset_tile_43 ((gfx_sprite_t*)tileset_tiles_data[43]) +#define tileset_tile_44 ((gfx_sprite_t*)tileset_tiles_data[44]) +#define tileset_tile_45 ((gfx_sprite_t*)tileset_tiles_data[45]) +#define tileset_tile_46 ((gfx_sprite_t*)tileset_tiles_data[46]) +#define tileset_tile_47 ((gfx_sprite_t*)tileset_tiles_data[47]) +#define tileset_tile_48 ((gfx_sprite_t*)tileset_tiles_data[48]) +#define tileset_tile_49 ((gfx_sprite_t*)tileset_tiles_data[49]) +#define tileset_tile_50 ((gfx_sprite_t*)tileset_tiles_data[50]) +#define tileset_tile_51 ((gfx_sprite_t*)tileset_tiles_data[51]) +#define tileset_tile_52 ((gfx_sprite_t*)tileset_tiles_data[52]) +#define tileset_tile_53 ((gfx_sprite_t*)tileset_tiles_data[53]) +#define tileset_tile_54 ((gfx_sprite_t*)tileset_tiles_data[54]) +#define tileset_tile_55 ((gfx_sprite_t*)tileset_tiles_data[55]) +#define tileset_tile_56 ((gfx_sprite_t*)tileset_tiles_data[56]) +#define tileset_tile_57 ((gfx_sprite_t*)tileset_tiles_data[57]) +#define tileset_tile_58 ((gfx_sprite_t*)tileset_tiles_data[58]) +#define tileset_tile_59 ((gfx_sprite_t*)tileset_tiles_data[59]) +#define tileset_tile_60 ((gfx_sprite_t*)tileset_tiles_data[60]) +#define tileset_tile_61 ((gfx_sprite_t*)tileset_tiles_data[61]) +#define tileset_tile_62 ((gfx_sprite_t*)tileset_tiles_data[62]) +#define tileset_tile_63 ((gfx_sprite_t*)tileset_tiles_data[63]) +#define tileset_tile_64 ((gfx_sprite_t*)tileset_tiles_data[64]) +#define tileset_tile_65 ((gfx_sprite_t*)tileset_tiles_data[65]) +#define tileset_tile_66 ((gfx_sprite_t*)tileset_tiles_data[66]) +#define tileset_tile_67 ((gfx_sprite_t*)tileset_tiles_data[67]) +#define tileset_tile_68 ((gfx_sprite_t*)tileset_tiles_data[68]) +#define tileset_tile_69 ((gfx_sprite_t*)tileset_tiles_data[69]) +#define tileset_tile_70 ((gfx_sprite_t*)tileset_tiles_data[70]) +#define tileset_tile_71 ((gfx_sprite_t*)tileset_tiles_data[71]) +#define tileset_tile_72 ((gfx_sprite_t*)tileset_tiles_data[72]) +#define tileset_tile_73 ((gfx_sprite_t*)tileset_tiles_data[73]) +#define tileset_tile_74 ((gfx_sprite_t*)tileset_tiles_data[74]) +#define tileset_tile_75 ((gfx_sprite_t*)tileset_tiles_data[75]) +#define tileset_tile_76 ((gfx_sprite_t*)tileset_tiles_data[76]) +#define tileset_tile_77 ((gfx_sprite_t*)tileset_tiles_data[77]) +#define tileset_tile_78 ((gfx_sprite_t*)tileset_tiles_data[78]) +#define tileset_tile_79 ((gfx_sprite_t*)tileset_tiles_data[79]) +#define tileset_tile_80 ((gfx_sprite_t*)tileset_tiles_data[80]) +#define tileset_tile_81 ((gfx_sprite_t*)tileset_tiles_data[81]) +#define tileset_tile_82 ((gfx_sprite_t*)tileset_tiles_data[82]) +#define tileset_tile_83 ((gfx_sprite_t*)tileset_tiles_data[83]) +#define tileset_tile_84 ((gfx_sprite_t*)tileset_tiles_data[84]) +#define tileset_tile_85 ((gfx_sprite_t*)tileset_tiles_data[85]) +#define tileset_tile_86 ((gfx_sprite_t*)tileset_tiles_data[86]) +#define tileset_tile_87 ((gfx_sprite_t*)tileset_tiles_data[87]) +#define tileset_tile_88 ((gfx_sprite_t*)tileset_tiles_data[88]) +#define tileset_tile_89 ((gfx_sprite_t*)tileset_tiles_data[89]) +#define tileset_tile_90 ((gfx_sprite_t*)tileset_tiles_data[90]) +#define tileset_tile_91 ((gfx_sprite_t*)tileset_tiles_data[91]) +#define tileset_tile_92 ((gfx_sprite_t*)tileset_tiles_data[92]) +#define tileset_tile_93 ((gfx_sprite_t*)tileset_tiles_data[93]) +#define tileset_tile_94 ((gfx_sprite_t*)tileset_tiles_data[94]) +#define tileset_tile_95 ((gfx_sprite_t*)tileset_tiles_data[95]) +#define tileset_tile_96 ((gfx_sprite_t*)tileset_tiles_data[96]) +#define tileset_tile_97 ((gfx_sprite_t*)tileset_tiles_data[97]) +#define tileset_tile_98 ((gfx_sprite_t*)tileset_tiles_data[98]) +#define tileset_tile_99 ((gfx_sprite_t*)tileset_tiles_data[99]) +#define tileset_tile_100 ((gfx_sprite_t*)tileset_tiles_data[100]) +#define tileset_tile_101 ((gfx_sprite_t*)tileset_tiles_data[101]) +#define tileset_tile_102 ((gfx_sprite_t*)tileset_tiles_data[102]) +#define tileset_tile_103 ((gfx_sprite_t*)tileset_tiles_data[103]) +#define tileset_tile_104 ((gfx_sprite_t*)tileset_tiles_data[104]) +#define tileset_tile_105 ((gfx_sprite_t*)tileset_tiles_data[105]) +#define tileset_tile_106 ((gfx_sprite_t*)tileset_tiles_data[106]) +#define tileset_tile_107 ((gfx_sprite_t*)tileset_tiles_data[107]) +#define tileset_tile_108 ((gfx_sprite_t*)tileset_tiles_data[108]) +#define tileset_tile_109 ((gfx_sprite_t*)tileset_tiles_data[109]) +#define tileset_tile_110 ((gfx_sprite_t*)tileset_tiles_data[110]) +#define tileset_tile_111 ((gfx_sprite_t*)tileset_tiles_data[111]) +#define tileset_tile_112 ((gfx_sprite_t*)tileset_tiles_data[112]) +#define tileset_tile_113 ((gfx_sprite_t*)tileset_tiles_data[113]) +#define tileset_tile_114 ((gfx_sprite_t*)tileset_tiles_data[114]) +#define tileset_tile_115 ((gfx_sprite_t*)tileset_tiles_data[115]) +#define tileset_tile_116 ((gfx_sprite_t*)tileset_tiles_data[116]) +#define tileset_tile_117 ((gfx_sprite_t*)tileset_tiles_data[117]) +#define tileset_tile_118 ((gfx_sprite_t*)tileset_tiles_data[118]) +#define tileset_tile_119 ((gfx_sprite_t*)tileset_tiles_data[119]) +#define tileset_tile_120 ((gfx_sprite_t*)tileset_tiles_data[120]) +#define tileset_tile_121 ((gfx_sprite_t*)tileset_tiles_data[121]) +#define tileset_tile_122 ((gfx_sprite_t*)tileset_tiles_data[122]) +#define tileset_tile_123 ((gfx_sprite_t*)tileset_tiles_data[123]) +#define tileset_tile_124 ((gfx_sprite_t*)tileset_tiles_data[124]) +#define tileset_tile_125 ((gfx_sprite_t*)tileset_tiles_data[125]) +#define tileset_tile_126 ((gfx_sprite_t*)tileset_tiles_data[126]) +#define tileset_tile_127 ((gfx_sprite_t*)tileset_tiles_data[127]) +#define sizeof_tiles_gfx_pal 152 +#define tiles_gfx_pal ((uint16_t*)var_gfx[1]) +bool var_gfx_init(void); + +#endif diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c new file mode 100644 index 0000000..caaf863 --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c @@ -0,0 +1,106 @@ +#include <stdbool.h> +#include <stddef.h> +#include <stdint.h> +#include <tice.h> + +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <graphx.h> + +/* Include the graphics */ +#include "gfx/tiles_gfx.h" +#include "gfx/var_gfx.h" + +/* Include the external map data */ +extern uint8_t tilemap_map[]; + +/* Tilemap defines */ +#define TILE_WIDTH 16 +#define TILE_HEIGHT 16 + +#define TILEMAP_WIDTH 32 +#define TILEMAP_HEIGHT 25 + +#define TILEMAP_DRAW_WIDTH 20 +#define TILEMAP_DRAW_HEIGHT 14 + +#define Y_OFFSET 16 +#define X_OFFSET 0 + +void main(void) { + sk_key_t key; + unsigned int x_offset = 0; + unsigned int y_offset = 0; + gfx_tilemap_t tilemap; + + /* Initialize the graphics */ + var_gfx_init(); + + /* Initialize the tilemap structure */ + tilemap.map = tilemap_map; + tilemap.tiles = tileset_tiles; + tilemap.type_width = gfx_tile_16_pixel; + tilemap.type_height = gfx_tile_16_pixel; + tilemap.tile_height = TILE_HEIGHT; + tilemap.tile_width = TILE_WIDTH; + tilemap.draw_height = TILEMAP_DRAW_HEIGHT; + tilemap.draw_width = TILEMAP_DRAW_WIDTH; + tilemap.height = TILEMAP_HEIGHT; + tilemap.width = TILEMAP_WIDTH; + tilemap.y_loc = Y_OFFSET; + tilemap.x_loc = X_OFFSET; + + /* Initialize the 8bpp graphics */ + gfx_Begin(); + + /* Set up the palette */ + gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0); + gfx_SetColor(gfx_white); + + /* Draw to buffer to avoid tearing */ + gfx_SetDrawBuffer(); + + /* Set monospace font with width of 8 */ + gfx_SetMonospaceFont(8); + + /* Wait for the enter key to quit */ + while ((key = os_GetCSC()) != sk_Enter) { + + /* Draw tilemap and coords */ + gfx_Tilemap(&tilemap, x_offset, y_offset); + gfx_FillRectangle(0, 0, 320, 16); + gfx_PrintStringXY("x offset:", 48, 4); + gfx_PrintUInt(x_offset, 4); + gfx_PrintString(" y offset:"); + gfx_PrintUInt(y_offset, 4); + + /* Do something based on the keypress */ + switch (key) { + case sk_Down: + if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT)) + y_offset += TILE_HEIGHT; + break; + case sk_Left: + if (x_offset) + x_offset -= TILE_WIDTH; + break; + case sk_Right: + if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH)) + x_offset += TILE_WIDTH; + break; + case sk_Up: + if (y_offset) + y_offset -= TILE_HEIGHT; + break; + default: + break; + } + gfx_SwapDraw(); + } + + /* Close the graphics and return to the OS */ + gfx_End(); +} diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c new file mode 100644 index 0000000..d443c6c --- /dev/null +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c @@ -0,0 +1,30 @@ +#include <stdint.h> + +/* This is the data that is displayed with the tilemap */ +uint8_t tilemap_map[] = { + 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,0x14,0x15,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22, + 0x30,0x54,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,0x04,0x05,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32, + 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x50,0x51,0x51,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x32,0x00,0x10,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x40,0x42,0x04,0x05,0x14,0x15,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x70,0x71,0x71,0x72,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x32,0x00,0x01,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x32,0x01,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32, + 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32, + 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x20,0x22,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x00,0x00,0x00,0x01,0x00,0x01,0x10,0x10,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x00,0x10,0x10,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x01,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, + 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x30,0x32,0x14,0x15,0x24,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, + 0x30,0x44,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32, + 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42, +}; |