diff --git a/programs/gbmeta/ICON.BMP b/programs/gbmeta/ICON.BMP new file mode 100644 index 0000000..e94da02 Binary files /dev/null and b/programs/gbmeta/ICON.BMP differ diff --git a/programs/gbmeta/TITLESCREEN.BMP b/programs/gbmeta/TITLESCREEN.BMP new file mode 100644 index 0000000..c433991 Binary files /dev/null and b/programs/gbmeta/TITLESCREEN.BMP differ diff --git a/programs/gbmeta/chestModel.h b/programs/gbmeta/chestModel.h new file mode 100644 index 0000000..5784024 --- /dev/null +++ b/programs/gbmeta/chestModel.h @@ -0,0 +1,768 @@ +#ifndef CHEST_MODEL_H +#define CHEST_MODEL_H + +#define CHEST_VERTEX_COUNT 118 +const S3L_Unit chestVertices[CHEST_VERTEX_COUNT * 3] = { + 1335, -1581, 959, // 0 + 1504, -822, 1122, // 3 + 1504, -822, -971, // 6 + 1335, -1581, -808, // 9 + 1656, -822, 1273, // 12 + 1656, -822, -1123, // 15 + 1451, 823, 707, // 18 + 1484, 549, 532, // 21 + 1539, 66, 860, // 24 + 1521, 214, 1160, // 27 + 331, -501, -969, // 30 + 1247, -501, -969, // 33 + 1163, 101, -875, // 36 + 287, 95, -875, // 39 + 223, 647, -479, // 42 + 250, 794, -562, // 45 + 313, 179, -1016, // 48 + 1100, 649, -479, // 51 + 223, 647, 629, // 54 + 287, 95, 1026, // 57 + 313, 179, 1158, // 60 + 250, 794, 705, // 63 + 1079, 835, 75, // 66 + 223, 833, 75, // 69 + 1100, 649, 629, // 72 + 1163, 101, 1026, // 75 + 1247, -501, 1120, // 78 + 331, -501, 1120, // 81 + 230, 986, 71, // 84 + 354, -822, -1123, // 87 + 357, -502, -1123, // 90 + -357, -502, -1123, // 93 + -354, -822, -1123, // 96 + 357, -502, 1265, // 99 + 1334, 531, 532, // 102 + 1389, 48, 860, // 105 + 1156, 172, -1009, // 108 + 1086, 781, -557, // 111 + 1389, 48, -709, // 114 + 1334, 531, -382, // 117 + 1484, 549, -382, // 120 + 1539, 66, -709, // 123 + 1466, -509, 937, // 126 + 1617, -509, 937, // 129 + 1451, 823, -557, // 132 + 1521, 214, -1009, // 135 + 1466, -509, -787, // 138 + 1617, -509, -787, // 141 + 1465, 712, 75, // 144 + 1428, 1028, 75, // 147 + 1621, -501, 1273, // 150 + 1621, -501, -1123, // 153 + 1315, 695, 75, // 156 + 1247, -501, -1123, // 159 + 1247, -501, 1271, // 162 + 1156, 172, 1160, // 165 + 1086, 781, 707, // 168 + 1062, 986, 75, // 171 + 300, -1121, -892, // 174 + 348, -822, -971, // 177 + 300, -1121, -1123, // 180 + -1335, -1581, 959, // 183 + -1335, -1581, -808, // 186 + -1504, -822, -971, // 189 + -1504, -822, 1122, // 192 + -1656, -822, -1123, // 195 + -1656, -822, 1273, // 198 + -331, -501, -969, // 201 + -287, 95, -875, // 204 + -1163, 101, -875, // 207 + -1247, -501, -969, // 210 + -313, 179, -1016, // 213 + -250, 794, -562, // 216 + -223, 647, -479, // 219 + -1100, 649, -479, // 222 + -223, 647, 629, // 225 + -250, 794, 705, // 228 + -313, 179, 1158, // 231 + -287, 95, 1026, // 234 + -223, 833, 75, // 237 + -1079, 835, 75, // 240 + -1100, 649, 629, // 243 + -1163, 101, 1026, // 246 + -1247, -501, 1120, // 249 + -331, -501, 1120, // 252 + -230, 986, 71, // 255 + -1247, -501, -1123, // 258 + -1621, -501, -1123, // 261 + -357, -502, 1265, // 264 + -1334, 531, 532, // 267 + -1484, 549, 532, // 270 + -1539, 66, 860, // 273 + -1389, 48, 860, // 276 + -1086, 781, -557, // 279 + -1156, 172, -1009, // 282 + -1389, 48, -709, // 285 + -1539, 66, -709, // 288 + -1484, 549, -382, // 291 + -1334, 531, -382, // 294 + -1617, -509, 937, // 297 + -1466, -509, 937, // 300 + -1466, -509, -787, // 303 + -1617, -509, -787, // 306 + -1465, 712, 75, // 309 + -1315, 695, 75, // 312 + -1521, 214, -1009, // 315 + -1451, 823, -557, // 318 + -1247, -501, 1271, // 321 + -1621, -501, 1273, // 324 + -1521, 214, 1160, // 327 + -1156, 172, 1160, // 330 + -1451, 823, 707, // 333 + -1086, 781, 707, // 336 + -1062, 986, 75, // 339 + -1428, 1028, 75, // 342 + -300, -1121, -892, // 345 + -300, -1121, -1123, // 348 + -348, -822, -971 // 351 +}; // chestVertices + +#define CHEST_TRIANGLE_COUNT 232 +const S3L_Index chestTriangleIndices[CHEST_TRIANGLE_COUNT * 3] = { + 1, 3, 0, // 0 + 1, 5, 2, // 3 + 7, 9, 6, // 6 + 10, 12, 13, // 9 + 14, 16, 13, // 12 + 13, 17, 14, // 15 + 18, 20, 21, // 18 + 14, 22, 23, // 21 + 18, 22, 24, // 24 + 19, 24, 25, // 27 + 27, 25, 26, // 30 + 23, 15, 14, // 33 + 30, 32, 29, // 36 + 13, 30, 10, // 39 + 19, 33, 20, // 42 + 23, 21, 28, // 45 + 34, 8, 7, // 48 + 17, 36, 37, // 51 + 39, 41, 38, // 54 + 42, 8, 35, // 57 + 40, 45, 41, // 60 + 46, 41, 47, // 63 + 48, 44, 40, // 66 + 4, 50, 43, // 69 + 5, 47, 51, // 72 + 5, 43, 47, // 75 + 52, 40, 39, // 78 + 52, 7, 48, // 81 + 53, 45, 36, // 84 + 6, 48, 7, // 87 + 36, 44, 37, // 90 + 26, 33, 27, // 93 + 30, 11, 10, // 96 + 54, 9, 50, // 99 + 55, 6, 9, // 102 + 37, 49, 57, // 105 + 56, 49, 6, // 108 + 41, 51, 47, // 111 + 24, 55, 25, // 114 + 22, 37, 57, // 117 + 12, 53, 36, // 120 + 22, 56, 24, // 123 + 25, 54, 26, // 126 + 46, 43, 42, // 129 + 35, 39, 38, // 132 + 52, 39, 34, // 135 + 46, 35, 38, // 138 + 59, 60, 58, // 141 + 62, 64, 61, // 144 + 65, 64, 63, // 147 + 67, 69, 70, // 150 + 71, 73, 68, // 153 + 68, 74, 69, // 156 + 75, 77, 78, // 159 + 73, 80, 74, // 162 + 80, 75, 81, // 165 + 81, 78, 82, // 168 + 82, 84, 83, // 171 + 72, 79, 73, // 174 + 86, 87, 65, // 177 + 72, 16, 15, // 180 + 71, 30, 16, // 183 + 31, 68, 67, // 186 + 78, 88, 84, // 189 + 79, 76, 75, // 192 + 89, 91, 92, // 195 + 74, 94, 69, // 198 + 96, 98, 95, // 201 + 91, 100, 92, // 204 + 101, 96, 95, // 207 + 65, 99, 66, // 210 + 98, 103, 104, // 213 + 103, 89, 104, // 216 + 105, 86, 94, // 219 + 106, 94, 93, // 222 + 83, 88, 107, // 225 + 70, 31, 67, // 228 + 107, 109, 110, // 231 + 110, 111, 112, // 234 + 114, 93, 113, // 237 + 111, 113, 112, // 240 + 110, 81, 82, // 243 + 80, 93, 74, // 246 + 69, 86, 70, // 249 + 112, 80, 81, // 252 + 107, 82, 83, // 255 + 99, 101, 100, // 258 + 98, 92, 95, // 261 + 104, 89, 98, // 264 + 95, 100, 101, // 267 + 32, 86, 65, // 270 + 116, 117, 115, // 273 + 15, 85, 72, // 276 + 21, 85, 28, // 279 + 20, 76, 21, // 282 + 33, 77, 20, // 285 + 29, 116, 60, // 288 + 116, 58, 60, // 291 + 62, 58, 115, // 294 + 2, 58, 3, // 297 + 63, 115, 117, // 300 + 0, 64, 1, // 303 + 3, 61, 0, // 306 + 29, 53, 30, // 309 + 53, 5, 51, // 312 + 50, 4, 54, // 315 + 54, 4, 33, // 318 + 66, 107, 88, // 321 + 108, 107, 66, // 324 + 33, 66, 88, // 327 + 1, 66, 4, // 330 + 32, 63, 117, // 333 + 2, 29, 59, // 336 + 66, 99, 108, // 339 + 91, 108, 99, // 342 + 90, 109, 91, // 345 + 103, 111, 90, // 348 + 103, 106, 114, // 351 + 97, 105, 106, // 354 + 96, 87, 105, // 357 + 87, 102, 65, // 360 + 50, 8, 43, // 363 + 1, 2, 3, // 366 + 1, 4, 5, // 369 + 7, 8, 9, // 372 + 10, 11, 12, // 375 + 14, 15, 16, // 378 + 13, 12, 17, // 381 + 18, 19, 20, // 384 + 14, 17, 22, // 387 + 18, 23, 22, // 390 + 19, 18, 24, // 393 + 27, 19, 25, // 396 + 23, 28, 15, // 399 + 30, 31, 32, // 402 + 13, 16, 30, // 405 + 19, 27, 33, // 408 + 23, 18, 21, // 411 + 34, 35, 8, // 414 + 17, 12, 36, // 417 + 39, 40, 41, // 420 + 42, 43, 8, // 423 + 40, 44, 45, // 426 + 46, 38, 41, // 429 + 48, 49, 44, // 432 + 5, 4, 43, // 435 + 52, 48, 40, // 438 + 52, 34, 7, // 441 + 53, 51, 45, // 444 + 6, 49, 48, // 447 + 36, 45, 44, // 450 + 26, 54, 33, // 453 + 30, 53, 11, // 456 + 54, 55, 9, // 459 + 55, 56, 6, // 462 + 37, 44, 49, // 465 + 56, 57, 49, // 468 + 41, 45, 51, // 471 + 24, 56, 55, // 474 + 22, 17, 37, // 477 + 12, 11, 53, // 480 + 22, 57, 56, // 483 + 25, 55, 54, // 486 + 46, 47, 43, // 489 + 35, 34, 39, // 492 + 46, 42, 35, // 495 + 59, 29, 60, // 498 + 62, 63, 64, // 501 + 65, 66, 64, // 504 + 67, 68, 69, // 507 + 71, 72, 73, // 510 + 68, 73, 74, // 513 + 75, 76, 77, // 516 + 73, 79, 80, // 519 + 80, 79, 75, // 522 + 81, 75, 78, // 525 + 82, 78, 84, // 528 + 72, 85, 79, // 531 + 72, 71, 16, // 534 + 71, 31, 30, // 537 + 31, 71, 68, // 540 + 78, 77, 88, // 543 + 79, 85, 76, // 546 + 89, 90, 91, // 549 + 74, 93, 94, // 552 + 96, 97, 98, // 555 + 91, 99, 100, // 558 + 101, 102, 96, // 561 + 65, 102, 99, // 564 + 98, 97, 103, // 567 + 103, 90, 89, // 570 + 105, 87, 86, // 573 + 106, 105, 94, // 576 + 83, 84, 88, // 579 + 70, 86, 31, // 582 + 107, 108, 109, // 585 + 110, 109, 111, // 588 + 114, 106, 93, // 591 + 111, 114, 113, // 594 + 110, 112, 81, // 597 + 80, 113, 93, // 600 + 69, 94, 86, // 603 + 112, 113, 80, // 606 + 107, 110, 82, // 609 + 99, 102, 101, // 612 + 98, 89, 92, // 615 + 95, 92, 100, // 618 + 32, 31, 86, // 621 + 116, 32, 117, // 624 + 15, 28, 85, // 627 + 21, 76, 85, // 630 + 20, 77, 76, // 633 + 33, 88, 77, // 636 + 29, 32, 116, // 639 + 116, 115, 58, // 642 + 62, 3, 58, // 645 + 2, 59, 58, // 648 + 63, 62, 115, // 651 + 0, 61, 64, // 654 + 3, 62, 61, // 657 + 29, 5, 53, // 660 + 33, 4, 66, // 663 + 1, 64, 66, // 666 + 32, 65, 63, // 669 + 2, 5, 29, // 672 + 91, 109, 108, // 675 + 90, 111, 109, // 678 + 103, 114, 111, // 681 + 103, 97, 106, // 684 + 97, 96, 105, // 687 + 96, 102, 87, // 690 + 50, 9, 8 // 693 +}; // chestTriangleIndices + +#define CHEST_UV_COUNT 154 +const S3L_Unit chestUVs[CHEST_UV_COUNT * 2] = { + 23, 196, // 0 + 71, 313, // 2 + 71, 196, // 4 + 307, 495, // 6 + 495, 483, // 8 + 482, 495, // 10 + 343, 350, // 12 + 286, 392, // 14 + 322, 325, // 16 + 151, 185, // 18 + 198, 247, // 20 + 198, 185, // 22 + 250, 185, // 24 + 198, 172, // 26 + 250, 247, // 28 + 347, 185, // 30 + 397, 172, // 32 + 347, 172, // 34 + 298, 247, // 36 + 298, 185, // 38 + 347, 247, // 40 + 397, 185, // 42 + 397, 247, // 44 + 436, 185, // 46 + 436, 247, // 48 + 250, 172, // 50 + 143, 172, // 52 + 122, 124, // 54 + 122, 172, // 56 + 448, 172, // 58 + 298, 172, // 60 + 353, 360, // 62 + 316, 400, // 64 + 198, 260, // 66 + 250, 260, // 68 + 426, 358, // 70 + 469, 396, // 72 + 452, 400, // 74 + 332, 444, // 76 + 330, 402, // 78 + 435, 345, // 80 + 500, 385, // 82 + 454, 444, // 84 + 465, 456, // 86 + 387, 330, // 88 + 454, 317, // 90 + 294, 483, // 92 + 293, 460, // 94 + 322, 457, // 96 + 496, 459, // 98 + 389, 345, // 100 + 143, 260, // 102 + 198, 283, // 104 + 250, 283, // 106 + 151, 247, // 108 + 448, 260, // 110 + 397, 283, // 112 + 448, 283, // 114 + 397, 260, // 116 + 347, 283, // 118 + 298, 283, // 120 + 298, 260, // 122 + 347, 260, // 124 + 109, 178, // 126 + 105, 158, // 128 + 90, 162, // 130 + 270, 313, // 132 + 203, 495, // 134 + 270, 495, // 136 + 495, 483, // 138 + 307, 495, // 140 + 482, 495, // 142 + 151, 111, // 144 + 198, 51, // 146 + 151, 51, // 148 + 198, 124, // 150 + 250, 111, // 152 + 198, 111, // 154 + 250, 51, // 156 + 347, 111, // 158 + 397, 124, // 160 + 397, 111, // 162 + 298, 51, // 164 + 347, 51, // 166 + 397, 51, // 168 + 436, 111, // 170 + 436, 51, // 172 + 250, 124, // 174 + 298, 111, // 176 + 143, 40, // 178 + 143, 13, // 180 + 122, 13, // 182 + 143, 124, // 184 + 448, 124, // 186 + 347, 124, // 188 + 353, 360, // 190 + 317, 400, // 192 + 331, 402, // 194 + 198, 40, // 196 + 469, 396, // 198 + 427, 358, // 200 + 452, 400, // 202 + 333, 444, // 204 + 455, 444, // 206 + 322, 457, // 208 + 295, 483, // 210 + 388, 330, // 212 + 389, 345, // 214 + 198, 13, // 216 + 250, 13, // 218 + 250, 40, // 220 + 448, 40, // 222 + 397, 13, // 224 + 397, 40, // 226 + 347, 13, // 228 + 347, 40, // 230 + 298, 13, // 232 + 298, 40, // 234 + 105, 138, // 236 + 111, 119, // 238 + 90, 133, // 240 + 298, 124, // 242 + 71, 495, // 244 + 39, 385, // 246 + 39, 424, // 248 + 23, 313, // 250 + 23, 495, // 252 + 23, 427, // 254 + 23, 11, // 256 + 183, 495, // 258 + 183, 313, // 260 + 122, 283, // 262 + 143, 283, // 264 + 471, 283, // 266 + 470, 13, // 268 + 448, 13, // 270 + 482, 283, // 272 + 111, 26, // 274 + 109, 274, // 276 + 294, 460, // 278 + 343, 350, // 280 + 287, 392, // 282 + 323, 325, // 284 + 454, 317, // 286 + 386, 297, // 288 + 436, 345, // 290 + 500, 385, // 292 + 496, 459, // 294 + 465, 456, // 296 + 385, 297, // 298 + 203, 313, // 300 + 23, 382, // 302 + 71, 11, // 304 + 482, 13 // 306 +}; // chestUVs + +#define CHEST_UV_INDEX_COUNT 232 +const S3L_Index chestUVIndices[CHEST_UV_INDEX_COUNT * 3] = { + 0, 1, 2, // 0 + 3, 4, 5, // 3 + 6, 7, 8, // 6 + 9, 10, 11, // 9 + 12, 13, 11, // 12 + 11, 14, 12, // 15 + 15, 16, 17, // 18 + 12, 18, 19, // 21 + 15, 18, 20, // 24 + 21, 20, 22, // 27 + 23, 22, 24, // 30 + 19, 25, 12, // 33 + 26, 27, 28, // 36 + 11, 26, 9, // 39 + 21, 29, 16, // 42 + 19, 17, 30, // 45 + 31, 32, 6, // 48 + 14, 33, 34, // 51 + 35, 36, 37, // 54 + 38, 32, 39, // 57 + 40, 41, 36, // 60 + 42, 36, 43, // 63 + 44, 45, 40, // 66 + 46, 47, 48, // 69 + 4, 43, 49, // 72 + 4, 48, 43, // 75 + 50, 40, 35, // 78 + 50, 6, 44, // 81 + 51, 52, 33, // 84 + 8, 44, 6, // 87 + 33, 53, 34, // 90 + 24, 29, 23, // 93 + 26, 54, 9, // 96 + 55, 56, 57, // 99 + 58, 59, 56, // 102 + 34, 60, 61, // 105 + 62, 60, 59, // 108 + 36, 49, 43, // 111 + 20, 58, 22, // 114 + 18, 34, 61, // 117 + 10, 51, 33, // 120 + 18, 62, 20, // 123 + 22, 55, 24, // 126 + 42, 48, 38, // 129 + 39, 35, 37, // 132 + 50, 35, 31, // 135 + 42, 39, 37, // 138 + 63, 64, 65, // 141 + 66, 67, 68, // 144 + 69, 70, 71, // 147 + 72, 73, 74, // 150 + 75, 76, 77, // 153 + 77, 78, 73, // 156 + 79, 80, 81, // 159 + 76, 82, 78, // 162 + 82, 79, 83, // 165 + 83, 81, 84, // 168 + 84, 85, 86, // 171 + 87, 88, 76, // 174 + 89, 90, 91, // 177 + 87, 13, 25, // 180 + 75, 26, 13, // 183 + 92, 77, 72, // 186 + 81, 93, 85, // 189 + 88, 94, 79, // 192 + 95, 96, 97, // 195 + 78, 98, 73, // 198 + 99, 100, 101, // 201 + 96, 102, 97, // 204 + 103, 99, 101, // 207 + 69, 104, 105, // 210 + 100, 106, 107, // 213 + 106, 95, 107, // 216 + 108, 89, 98, // 219 + 109, 98, 110, // 222 + 86, 93, 111, // 225 + 74, 92, 72, // 228 + 111, 112, 113, // 231 + 113, 114, 115, // 234 + 116, 110, 117, // 237 + 114, 117, 115, // 240 + 113, 83, 84, // 243 + 82, 110, 78, // 246 + 73, 89, 74, // 249 + 115, 82, 83, // 252 + 111, 84, 86, // 255 + 104, 103, 102, // 258 + 100, 97, 101, // 261 + 107, 95, 100, // 264 + 101, 102, 103, // 267 + 27, 89, 91, // 270 + 118, 119, 120, // 273 + 25, 121, 87, // 276 + 17, 121, 30, // 279 + 16, 94, 17, // 282 + 29, 80, 16, // 285 + 28, 118, 64, // 288 + 118, 65, 64, // 291 + 122, 123, 124, // 294 + 125, 123, 1, // 297 + 126, 124, 127, // 300 + 2, 128, 0, // 303 + 1, 129, 130, // 306 + 28, 51, 26, // 309 + 51, 131, 132, // 312 + 57, 133, 55, // 315 + 55, 133, 29, // 318 + 134, 111, 93, // 321 + 135, 111, 134, // 324 + 29, 134, 93, // 327 + 136, 134, 133, // 330 + 27, 137, 119, // 333 + 138, 28, 63, // 336 + 105, 104, 139, // 339 + 96, 139, 104, // 342 + 140, 141, 96, // 345 + 106, 142, 140, // 348 + 106, 143, 144, // 351 + 145, 146, 143, // 354 + 99, 147, 146, // 357 + 147, 148, 69, // 360 + 47, 32, 48, // 363 + 0, 125, 1, // 366 + 3, 46, 4, // 369 + 6, 32, 7, // 372 + 9, 54, 10, // 375 + 12, 25, 13, // 378 + 11, 10, 14, // 381 + 15, 21, 16, // 384 + 12, 14, 18, // 387 + 15, 19, 18, // 390 + 21, 15, 20, // 393 + 23, 21, 22, // 396 + 19, 30, 25, // 399 + 26, 92, 27, // 402 + 11, 13, 26, // 405 + 21, 23, 29, // 408 + 19, 15, 17, // 411 + 31, 39, 32, // 414 + 14, 10, 33, // 417 + 35, 40, 36, // 420 + 38, 48, 32, // 423 + 40, 45, 41, // 426 + 42, 37, 36, // 429 + 44, 149, 45, // 432 + 4, 46, 48, // 435 + 50, 44, 40, // 438 + 50, 31, 6, // 441 + 51, 132, 52, // 444 + 8, 149, 44, // 447 + 33, 52, 53, // 450 + 24, 55, 29, // 453 + 26, 51, 54, // 456 + 55, 58, 56, // 459 + 58, 62, 59, // 462 + 34, 53, 60, // 465 + 62, 61, 60, // 468 + 36, 41, 49, // 471 + 20, 62, 58, // 474 + 18, 14, 34, // 477 + 10, 54, 51, // 480 + 18, 61, 62, // 483 + 22, 58, 55, // 486 + 42, 43, 48, // 489 + 39, 31, 35, // 492 + 42, 38, 39, // 495 + 63, 28, 64, // 498 + 66, 150, 67, // 501 + 69, 105, 70, // 504 + 72, 77, 73, // 507 + 75, 87, 76, // 510 + 77, 76, 78, // 513 + 79, 94, 80, // 516 + 76, 88, 82, // 519 + 82, 88, 79, // 522 + 83, 79, 81, // 525 + 84, 81, 85, // 528 + 87, 121, 88, // 531 + 87, 75, 13, // 534 + 75, 92, 26, // 537 + 92, 75, 77, // 540 + 81, 80, 93, // 543 + 88, 121, 94, // 546 + 95, 140, 96, // 549 + 78, 110, 98, // 552 + 99, 145, 100, // 555 + 96, 104, 102, // 558 + 103, 148, 99, // 561 + 69, 148, 104, // 564 + 100, 145, 106, // 567 + 106, 140, 95, // 570 + 108, 90, 89, // 573 + 109, 108, 98, // 576 + 86, 85, 93, // 579 + 74, 89, 92, // 582 + 111, 135, 112, // 585 + 113, 112, 114, // 588 + 116, 109, 110, // 591 + 114, 116, 117, // 594 + 113, 115, 83, // 597 + 82, 117, 110, // 600 + 73, 98, 89, // 603 + 115, 117, 82, // 606 + 111, 113, 84, // 609 + 104, 148, 103, // 612 + 100, 95, 97, // 615 + 101, 97, 102, // 618 + 27, 92, 89, // 621 + 118, 27, 119, // 624 + 25, 30, 121, // 627 + 17, 94, 121, // 630 + 16, 80, 94, // 633 + 29, 93, 80, // 636 + 28, 27, 118, // 639 + 118, 120, 65, // 642 + 122, 1, 123, // 645 + 125, 151, 123, // 648 + 126, 122, 124, // 651 + 2, 152, 128, // 654 + 1, 122, 129, // 657 + 28, 131, 51, // 660 + 29, 133, 134, // 663 + 136, 153, 134, // 666 + 27, 91, 137, // 669 + 138, 131, 28, // 672 + 96, 141, 139, // 675 + 140, 142, 141, // 678 + 106, 144, 142, // 681 + 106, 145, 143, // 684 + 145, 99, 146, // 687 + 99, 148, 147, // 690 + 47, 7, 32 // 693 +}; // chestUVIndices + +S3L_Model3D chestModel; + +void chestModelInit() +{ + S3L_initModel3D( + chestVertices, + CHEST_VERTEX_COUNT, + chestTriangleIndices, + CHEST_TRIANGLE_COUNT, + &chestModel); +} + +#endif // guard diff --git a/programs/gbmeta/chestTexture.h b/programs/gbmeta/chestTexture.h new file mode 100644 index 0000000..581b0c8 --- /dev/null +++ b/programs/gbmeta/chestTexture.h @@ -0,0 +1,136 @@ +#ifndef CHEST_TEXTURE_H +#define CHEST_TEXTURE_H + +#define CHEST_TEXTURE_WIDTH 64 +#define CHEST_TEXTURE_HEIGHT 64 + +const uint8_t chestTexture[4096] = { +9,9,9,9,9,9,8,8,9,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,8, +9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,7,23,23,7,7,7,7,8,8,9,9,9, +9,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,8, +8,8,8,8,8,8,9,9,9,8,9,8,21,24,24,24,24,24,21,8,9,8,9,9,7,7,7,7,7,7,7,7,7,7,7,7, +7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,7,7,9,9,8,9, +24,20,21,21,20,22,22,20,8,9,9,8,7,7,7,9,9,9,9,9,8,9,9,9,9,9,9,8,11,9,8,9,9,9,8, +8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,6,9,9,9,9,7,7,7,7,9,9,8,9,24,20,24,25,22,25,24, +21,8,8,9,8,7,7,7,9,8,8,8,8,6,8,8,9,7,6,8,7,8,8,8,8,8,7,8,6,8,8,8,9,8,8,8,6,8,8, +8,8,8,8,7,6,8,8,8,9,7,7,7,7,9,9,9,8,24,20,24,25,23,25,25,23,8,9,9,8,7,7,7,8,7,7, +7,8,7,6,6,7,6,7,7,7,7,7,7,7,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,5,7,7,7,7,7,9,8,7, +7,7,9,9,9,9,24,20,24,25,24,26,25,23,8,8,9,8,7,7,7,8,6,7,7,7,7,7,7,7,7,7,7,7,7,7, +7,7,7,7,7,7,7,7,7,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,7,7,7,7,9,9,9,9,24,20,24,26, +24,26,25,21,8,8,9,8,7,6,7,8,6,6,22,22,22,22,22,21,22,22,22,22,22,21,22,22,22,22, +23,22,23,23,23,23,23,22,23,23,23,23,22,22,23,22,22,22,22,7,7,8,8,7,8,7,8,9,9,9, +24,20,24,26,24,26,24,20,8,9,9,8,7,6,7,8,6,22,23,23,25,25,24,24,24,25,25,25,25, +24,24,26,25,24,25,24,25,26,26,26,25,24,25,25,26,25,26,25,25,24,24,24,22,7,7,8,7, +7,8,7,8,9,9,9,24,20,24,26,24,26,25,20,8,9,9,8,7,6,7,8,6,22,24,24,26,25,25,24,25, +26,26,26,25,25,25,26,26,24,26,24,25,26,26,26,25,24,25,25,26,26,26,25,26,25,25, +25,22,7,7,8,8,7,7,7,8,9,8,9,24,20,24,26,24,25,25,20,8,8,9,8,7,7,7,8,6,22,24,25, +26,25,24,24,26,26,26,26,25,25,26,26,26,25,26,25,25,26,26,26,26,25,25,25,26,26, +26,25,26,26,26,25,23,6,7,8,8,6,7,6,8,9,8,9,24,20,24,26,23,25,25,20,8,8,8,8,7,7, +7,8,5,22,24,25,26,25,25,24,26,26,26,26,25,25,26,26,26,25,26,25,26,26,26,26,26, +25,24,26,26,26,26,25,26,25,26,25,23,6,6,8,8,6,7,7,8,9,8,9,24,20,24,26,23,26,25, +20,8,8,8,8,7,7,7,8,6,5,24,25,25,25,24,24,25,26,26,25,25,25,25,26,26,25,25,25,25, +26,26,26,25,25,25,26,26,26,26,25,26,24,25,24,23,6,6,8,8,6,7,6,8,8,8,9,24,20,24, +26,23,25,25,20,8,8,8,8,7,7,7,8,6,5,23,23,23,24,23,23,23,24,23,23,24,24,24,24,24, +24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,22,23,6,6,8,8,6,7,6,8,8,8, +9,24,20,24,26,23,26,24,20,8,8,8,8,7,7,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,6,7,6,8,8,8,8,8,20,24,26,23,26,25, +20,8,8,7,7,7,7,6,8,6,7,7,7,6,6,6,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,7,6,6,6, +6,6,6,6,6,6,6,7,6,8,8,6,7,6,8,8,8,8,8,21,24,26,23,26,26,20,8,7,7,7,7,8,8,8,5,7, +7,7,7,7,7,7,6,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,6,7,6,6,6,6,7,8,8,6, +7,6,8,8,8,8,8,21,24,26,23,26,25,21,8,7,7,7,8,8,9,9,7,8,8,8,8,9,8,9,8,9,8,8,8,8, +8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,6,7,6,8,9,8,8,24,20,24,26, +23,26,25,21,8,7,7,7,8,4,9,9,7,8,9,9,8,10,9,9,9,9,8,5,10,9,9,8,8,9,8,8,10,8,8,8, +9,8,9,9,7,8,8,8,8,8,10,8,8,9,9,9,7,6,7,6,8,8,8,9,7,20,24,26,23,26,25,21,8,7,7,7, +8,9,9,9,7,8,8,9,6,8,9,9,8,8,9,6,9,9,8,9,8,9,9,7,8,8,8,9,9,8,9,8,6,8,8,8,8,8,10, +7,8,8,8,8,7,6,7,6,8,8,8,8,8,20,24,25,23,26,25,22,8,7,7,6,8,9,8,9,7,8,8,8,8,8,8, +8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,6,7,6,8,8,8, +8,8,20,24,25,23,25,25,21,8,7,7,7,7,8,8,8,5,7,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7, +7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,8,8,6,7,6,8,8,8,8,8,20,23,23,21,23,23, +21,8,8,7,6,7,7,6,7,6,7,7,7,6,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,8,8,6,7,6,8,8,8,8,8,20,21,21,22,22,22,21,8,8,8,7,7,7,7,8,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,22,22,22,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,6,8, +8,6,7,6,7,8,8,8,7,20,23,23,22,23,22,21,8,8,8,7,7,7,7,8,6,5,23,24,25,24,24,23,24, +24,25,25,24,25,24,24,24,23,24,22,23,24,24,24,23,24,23,23,23,23,24,23,24,24,23, +22,22,6,6,8,8,6,7,6,7,8,8,8,24,20,24,24,24,24,23,22,8,8,8,7,7,6,7,8,6,21,23,25, +26,25,25,24,24,26,26,26,26,26,25,25,25,24,25,23,25,26,26,26,25,24,24,25,26,26, +25,25,25,25,26,24,22,6,6,8,8,6,7,6,7,8,8,8,24,20,22,22,21,21,21,22,8,8,8,7,7,6, +7,8,7,21,24,25,26,26,25,24,24,26,26,26,26,26,25,26,26,24,26,24,25,26,26,26,26, +25,25,26,26,26,26,26,26,26,26,25,22,6,6,8,8,6,7,6,7,8,8,8,24,20,24,25,23,25,25, +20,8,8,8,7,7,6,7,8,6,22,24,26,26,26,25,24,26,26,26,26,26,26,25,26,26,25,26,24, +26,26,26,26,26,26,25,26,26,26,26,25,26,26,26,25,22,6,6,8,8,6,7,6,7,8,8,8,24,20, +24,25,23,26,24,20,8,8,8,7,7,6,7,8,6,22,24,26,26,26,25,24,26,26,26,26,26,26,25, +26,26,26,26,25,26,26,26,26,26,24,25,26,26,26,26,25,26,26,26,25,22,6,6,7,8,6,7,6, +7,8,8,8,24,20,25,26,23,26,24,20,8,8,8,7,7,6,7,7,6,22,24,25,26,26,25,23,25,25,26, +26,25,26,25,25,25,26,25,24,25,26,26,26,25,25,24,25,26,26,26,24,26,25,25,24,22,6, +6,7,8,6,7,6,7,8,8,9,24,20,24,26,23,26,24,21,8,8,8,7,7,6,7,8,6,6,23,24,24,24,24, +23,24,24,24,24,24,25,24,24,23,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,25, +24,23,22,22,6,6,7,7,6,6,6,7,8,8,8,24,20,24,26,23,26,24,21,8,8,8,7,7,6,7,8,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,8,6,6, +6,7,8,8,8,24,20,25,26,23,26,25,21,8,8,8,7,7,6,7,8,6,7,7,7,6,6,7,7,7,7,7,7,7,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,8,6,6,6,8,8,8,8,7,20,25,26,24, +26,25,21,8,8,8,7,7,6,7,8,7,7,6,7,6,7,6,6,6,6,6,6,7,6,7,7,7,7,6,6,7,7,7,7,6,6,7, +6,6,6,6,6,6,6,6,6,6,7,7,8,7,6,7,6,8,8,8,8,7,20,25,26,24,26,25,22,8,8,8,7,7,6,6, +8,8,8,8,8,9,8,8,8,8,8,8,7,8,8,8,8,8,8,8,9,8,8,8,8,8,8,7,9,8,8,8,8,8,9,9,5,8,8,8, +8,7,6,6,6,7,8,8,8,8,21,25,26,23,26,24,23,8,8,8,8,8,6,6,6,6,6,7,7,6,7,7,7,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,7,8,8,8,21, +25,25,22,25,24,23,8,8,8,8,8,7,7,7,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,6,7, +7,7,7,7,7,7,7,7,6,7,7,7,6,7,6,7,7,7,7,7,7,8,7,8,8,8,21,23,23,22,24,23,21,8,8,8, +8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7,7,6,7,7,7,7, +8,8,7,8,8,8,9,8,8,8,8,8,8,8,20,24,24,24,24,24,21,24,24,24,24,25,8,8,8,8,8,8,8,8, +8,8,8,7,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,7,6,6,6,6,6,6,6,6,6,6,7,7,8,8,8,8,8,8, +7,8,8,7,20,22,22,21,22,22,20,21,21,21,22,23,23,23,23,23,23,22,21,21,22,24,23,21, +22,21,21,21,21,21,21,6,8,8,8,8,8,8,7,6,6,6,6,6,7,8,8,8,7,7,6,6,6,6,7,8,7,8,8,8, +8,8,8,23,20,24,24,24,25,25,21,23,23,24,24,25,23,24,24,22,24,24,24,24,21,24,22, +22,24,24,24,24,24,24,24,21,8,8,8,8,7,6,6,6,6,7,7,8,8,8,8,8,8,8,8,7,7,6,6,7,8,8, +8,8,8,8,8,22,20,22,22,21,23,22,21,23,24,24,25,26,25,25,25,22,25,26,25,24,20,24, +22,24,24,23,24,25,24,24,24,22,8,8,8,7,6,6,6,7,8,8,8,8,7,6,7,7,7,8,8,8,8,7,6,6,7, +8,8,8,8,8,8,23,20,25,25,23,25,25,21,23,26,25,25,25,25,25,25,23,25,25,25,24,20, +24,22,22,24,24,24,25,24,24,23,22,8,8,8,8,6,6,7,8,8,7,7,6,6,6,6,6,7,6,6,7,8,8,7, +6,6,7,8,8,8,8,8,6,20,25,26,23,26,25,21,23,26,26,25,25,26,25,25,24,25,26,25,24, +20,24,22,23,25,25,25,26,25,24,24,22,8,8,7,7,5,7,8,8,7,6,6,6,6,7,7,7,7,6,6,6,7,8, +8,7,6,6,7,8,8,8,8,6,20,25,26,23,26,25,21,24,26,26,26,25,26,25,25,24,25,26,26,24, +20,24,23,22,25,26,25,26,25,26,25,22,8,8,8,6,6,7,8,6,6,6,6,6,22,23,23,23,6,6,7,7, +5,7,8,7,7,6,6,8,8,8,7,22,21,25,26,23,26,25,21,24,26,26,26,26,26,25,25,25,25,26, +25,24,21,24,23,23,26,26,25,26,26,26,25,22,8,7,7,5,7,8,7,6,6,6,21,24,25,25,25,25, +25,24,21,7,6,6,7,8,7,6,6,7,8,7,24,22,21,25,25,23,26,25,21,24,26,26,25,26,26,26, +26,25,25,26,25,24,21,24,23,23,25,26,25,26,26,26,24,21,8,7,6,6,7,7,6,6,6,6,23,25, +25,26,26,25,25,25,25,22,7,6,6,7,8,7,6,6,8,23,23,22,21,24,24,24,26,25,21,24,26, +26,25,26,26,26,26,25,26,26,26,24,21,24,22,23,26,26,26,25,26,26,24,22,7,7,6,7,8, +7,6,7,6,24,24,25,26,26,26,26,25,25,26,23,7,7,6,7,8,7,7,6,6,23,23,24,22,23,22,22, +26,25,21,24,26,26,25,26,26,26,26,25,25,26,26,24,22,24,22,23,26,26,26,25,26,25, +24,23,7,6,6,7,7,6,6,6,22,24,23,25,26,26,26,26,26,25,25,24,22,7,6,6,7,7,7,6,6,7, +23,24,24,23,22,22,26,25,21,24,26,26,25,26,26,26,26,24,25,26,25,24,23,24,22,23, +25,25,25,25,26,25,24,23,7,5,7,8,7,6,7,6,23,25,25,25,26,26,26,26,26,25,25,25,22, +7,7,6,6,7,7,6,6,8,8,8,24,23,23,22,25,26,21,23,26,26,26,26,26,26,26,24,25,26,25, +24,21,24,23,23,26,26,26,26,26,25,24,23,7,5,6,7,7,5,7,22,24,25,25,26,26,26,26,26, +26,26,26,25,23,6,7,6,6,7,7,6,6,8,9,8,24,24,23,22,26,25,21,24,25,25,25,26,26,26, +26,23,26,26,25,24,22,24,23,23,25,26,25,25,26,25,24,23,7,5,6,7,6,6,7,22,25,26,25, +25,26,26,26,26,26,25,25,26,24,22,7,6,6,7,7,6,6,8,8,8,23,23,23,22,25,26,21,24,26, +26,26,26,26,26,26,23,26,26,25,25,22,23,23,23,25,26,26,25,26,25,24,22,7,6,6,8,7, +5,6,22,25,26,25,26,26,26,26,26,26,25,25,26,25,22,7,6,7,7,7,6,6,8,8,7,22,22,22, +23,26,25,21,24,25,25,25,26,26,26,26,23,25,26,25,24,22,23,23,22,26,26,26,26,26, +26,24,22,8,6,6,8,7,6,6,22,25,26,24,26,26,26,26,26,26,25,25,26,25,22,7,5,7,8,8,6, +6,8,8,7,20,24,24,23,26,26,20,23,24,25,25,25,26,26,26,23,25,25,24,24,22,24,24,22, +26,26,25,26,26,25,23,21,8,6,5,7,8,6,5,22,25,26,25,24,26,25,26,25,26,25,25,24,24, +22,7,5,6,7,7,6,6,8,8,7,21,25,25,23,26,25,20,24,25,26,26,25,26,26,26,23,23,23,23, +22,21,23,24,22,26,26,26,26,26,26,23,23,8,6,6,7,6,5,6,22,23,23,24,22,24,24,23,23, +23,23,23,23,23,22,7,6,6,8,8,6,6,8,8,23,20,25,26,23,26,25,20,24,26,26,25,25,26, +26,26,23,25,24,25,24,20,24,23,22,25,26,25,25,26,26,24,23,8,7,5,7,8,5,5,5,6,5,5, +5,5,6,6,6,6,6,6,6,6,6,6,6,6,8,7,6,6,8,8,23,20,25,26,23,26,25,21,24,26,26,25,25, +26,26,26,23,25,26,25,24,20,24,23,22,25,26,25,25,26,25,24,22,8,7,5,7,8,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,5,6,6,7,8,7,5,6,8,7,23,21,25,26,23,26,25,21,24,25,26,25, +25,26,26,26,23,25,26,26,24,20,24,23,22,24,25,25,25,25,25,24,22,8,7,6,7,8,8,8,7, +7,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,8,8,7,5,7,8,23,23,20,25,25,23,25,24,20,24,25,25, +25,25,25,25,25,22,25,26,25,24,20,24,22,22,22,22,22,23,22,22,22,22,8,7,6,7,7,7,7, +8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,7,7,7,5,7,8,23,23,20,23,23,21,24,23,20,24,25, +25,25,25,25,25,25,23,24,25,25,24,20,24,22,23,24,24,25,25,24,24,23,21,8,8,6,6,6, +6,6,6,6,6,6,6,6,6,5,5,6,6,6,6,6,6,6,6,6,5,5,6,7,8,23,23,20,25,24,25,25,25,20,23, +23,23,24,24,24,23,23,22,23,24,24,24,20,25,22,22,24,24,24,23,23,23,22,21,8,8,7,7, +7,7,7,7,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,7,6,7,8,8,8,23,21,21,20,20,20,21,20, +20,21,21,21,21,20,21,21,21,21,21,21,20,20,24,7,22,23,22,22,23,22,21,22,6,8,8,8, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7, +7,7,8,8,8,8,8,8,8,8,9,9,9,8,8,9,9,8,8,9,8,8,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, +7,7,7,7,7,7,7,7,8,8 +}; // chestTexture + +#endif // guard diff --git a/programs/gbmeta/demo.ino b/programs/gbmeta/demo.ino new file mode 100644 index 0000000..f984afe --- /dev/null +++ b/programs/gbmeta/demo.ino @@ -0,0 +1,3 @@ +// super hack because Arduino + +#include "modelViewer.hpp" diff --git a/programs/gbmeta/earthModel.h b/programs/gbmeta/earthModel.h new file mode 100644 index 0000000..710b4de --- /dev/null +++ b/programs/gbmeta/earthModel.h @@ -0,0 +1,295 @@ +#ifndef EARTH_MODEL_H +#define EARTH_MODEL_H + +#define EARTH_VERTEX_COUNT 42 +const S3L_Unit earthVertices[EARTH_VERTEX_COUNT * 3] = { + 0, -1984, 0, // 0 + 0, -1718, 992, // 3 + 701, -1718, 701, // 6 + 0, 0, 1984, // 9 + 1215, -992, 1215, // 12 + 0, -992, 1718, // 15 + 0, 1718, 992, // 18 + 1215, 992, 1215, // 21 + 0, 992, 1718, // 24 + 1403, 0, 1403, // 27 + 0, 1984, 0, // 30 + 701, 1718, 701, // 33 + 1718, 992, 0, // 36 + 992, -1718, 0, // 39 + 1984, 0, 0, // 42 + 992, 1718, 0, // 45 + 1718, -992, 0, // 48 + 701, -1718, -701, // 51 + 1215, 992, -1215, // 54 + 1403, 0, -1403, // 57 + 701, 1718, -701, // 60 + 1215, -992, -1215, // 63 + 0, -1718, -992, // 66 + 0, 0, -1984, // 69 + 0, 1718, -992, // 72 + 0, -992, -1718, // 75 + 0, 992, -1718, // 78 + -701, -1718, -701, // 81 + -1215, 992, -1215, // 84 + -1403, 0, -1403, // 87 + -701, 1718, -701, // 90 + -1215, -992, -1215, // 93 + -992, -1718, 0, // 96 + -1984, 0, 0, // 99 + -992, 1718, 0, // 102 + -1718, -992, 0, // 105 + -1718, 992, 0, // 108 + -1403, 0, 1403, // 111 + -701, 1718, 701, // 114 + -701, -1718, 701, // 117 + -1215, -992, 1215, // 120 + -1215, 992, 1215 // 123 +}; // earthVertices + +#define EARTH_TRIANGLE_COUNT 80 +const S3L_Index earthTriangleIndices[EARTH_TRIANGLE_COUNT * 3] = { + 0, 1, 2, // 0 + 3, 4, 5, // 3 + 6, 7, 8, // 6 + 1, 4, 2, // 9 + 8, 9, 3, // 12 + 6, 10, 11, // 15 + 11, 12, 7, // 18 + 4, 13, 2, // 21 + 7, 14, 9, // 24 + 11, 10, 15, // 27 + 0, 2, 13, // 30 + 9, 16, 4, // 33 + 16, 17, 13, // 36 + 14, 18, 19, // 39 + 15, 10, 20, // 42 + 0, 13, 17, // 45 + 14, 21, 16, // 48 + 15, 18, 12, // 51 + 21, 22, 17, // 54 + 18, 23, 19, // 57 + 20, 10, 24, // 60 + 0, 17, 22, // 63 + 19, 25, 21, // 66 + 20, 26, 18, // 69 + 25, 27, 22, // 72 + 23, 28, 29, // 75 + 24, 10, 30, // 78 + 0, 22, 27, // 81 + 25, 29, 31, // 84 + 24, 28, 26, // 87 + 31, 32, 27, // 90 + 28, 33, 29, // 93 + 30, 10, 34, // 96 + 0, 27, 32, // 99 + 29, 35, 31, // 102 + 30, 36, 28, // 105 + 36, 37, 33, // 108 + 34, 10, 38, // 111 + 0, 32, 39, // 114 + 33, 40, 35, // 117 + 34, 41, 36, // 120 + 35, 39, 32, // 123 + 38, 10, 6, // 126 + 0, 39, 1, // 129 + 37, 5, 40, // 132 + 38, 8, 41, // 135 + 39, 5, 1, // 138 + 41, 3, 37, // 141 + 3, 9, 4, // 144 + 6, 11, 7, // 147 + 1, 5, 4, // 150 + 8, 7, 9, // 153 + 11, 15, 12, // 156 + 4, 16, 13, // 159 + 7, 12, 14, // 162 + 9, 14, 16, // 165 + 16, 21, 17, // 168 + 14, 12, 18, // 171 + 14, 19, 21, // 174 + 15, 20, 18, // 177 + 21, 25, 22, // 180 + 18, 26, 23, // 183 + 19, 23, 25, // 186 + 20, 24, 26, // 189 + 25, 31, 27, // 192 + 23, 26, 28, // 195 + 25, 23, 29, // 198 + 24, 30, 28, // 201 + 31, 35, 32, // 204 + 28, 36, 33, // 207 + 29, 33, 35, // 210 + 30, 34, 36, // 213 + 36, 41, 37, // 216 + 33, 37, 40, // 219 + 34, 38, 41, // 222 + 35, 40, 39, // 225 + 37, 3, 5, // 228 + 38, 6, 8, // 231 + 39, 40, 5, // 234 + 41, 8, 3 // 237 +}; // earthTriangleIndices + +#define EARTH_UV_COUNT 61 +const S3L_Unit earthUVs[EARTH_UV_COUNT * 2] = { + 352, 501, // 0 + 384, 426, // 2 + 320, 426, // 4 + 384, 256, // 6 + 320, 341, // 8 + 384, 341, // 10 + 384, 85, // 12 + 320, 170, // 14 + 384, 170, // 16 + 320, 256, // 18 + 352, 10, // 20 + 320, 85, // 22 + 256, 170, // 24 + 256, 426, // 26 + 256, 256, // 28 + 288, 10, // 30 + 256, 85, // 32 + 288, 501, // 34 + 256, 341, // 36 + 192, 426, // 38 + 192, 170, // 40 + 192, 256, // 42 + 224, 10, // 44 + 192, 85, // 46 + 224, 501, // 48 + 192, 341, // 50 + 128, 426, // 52 + 128, 256, // 54 + 160, 10, // 56 + 128, 85, // 58 + 160, 501, // 60 + 128, 341, // 62 + 128, 170, // 64 + 64, 426, // 66 + 64, 170, // 68 + 64, 256, // 70 + 96, 10, // 72 + 64, 85, // 74 + 96, 501, // 76 + 64, 341, // 78 + 0, 426, // 80 + 0, 256, // 82 + 32, 10, // 84 + 0, 85, // 86 + 32, 501, // 88 + 0, 341, // 90 + 0, 170, // 92 + 512, 170, // 94 + 448, 256, // 96 + 512, 256, // 98 + 512, 85, // 100 + 480, 10, // 102 + 448, 85, // 104 + 480, 501, // 106 + 512, 426, // 108 + 448, 426, // 110 + 448, 341, // 112 + 512, 341, // 114 + 448, 170, // 116 + 416, 10, // 118 + 416, 501 // 120 +}; // earthUVs + +#define EARTH_UV_INDEX_COUNT 80 +const S3L_Index earthUVIndices[EARTH_UV_INDEX_COUNT * 3] = { + 0, 1, 2, // 0 + 3, 4, 5, // 3 + 6, 7, 8, // 6 + 1, 4, 2, // 9 + 8, 9, 3, // 12 + 6, 10, 11, // 15 + 11, 12, 7, // 18 + 4, 13, 2, // 21 + 7, 14, 9, // 24 + 11, 15, 16, // 27 + 17, 2, 13, // 30 + 9, 18, 4, // 33 + 18, 19, 13, // 36 + 14, 20, 21, // 39 + 16, 22, 23, // 42 + 24, 13, 19, // 45 + 14, 25, 18, // 48 + 16, 20, 12, // 51 + 25, 26, 19, // 54 + 20, 27, 21, // 57 + 23, 28, 29, // 60 + 30, 19, 26, // 63 + 21, 31, 25, // 66 + 23, 32, 20, // 69 + 31, 33, 26, // 72 + 27, 34, 35, // 75 + 29, 36, 37, // 78 + 38, 26, 33, // 81 + 31, 35, 39, // 84 + 29, 34, 32, // 87 + 39, 40, 33, // 90 + 34, 41, 35, // 93 + 37, 42, 43, // 96 + 44, 33, 40, // 99 + 35, 45, 39, // 102 + 37, 46, 34, // 105 + 47, 48, 49, // 108 + 50, 51, 52, // 111 + 53, 54, 55, // 114 + 49, 56, 57, // 117 + 50, 58, 47, // 120 + 57, 55, 54, // 123 + 52, 59, 6, // 126 + 60, 55, 1, // 129 + 48, 5, 56, // 132 + 52, 8, 58, // 135 + 55, 5, 1, // 138 + 58, 3, 48, // 141 + 3, 9, 4, // 144 + 6, 11, 7, // 147 + 1, 5, 4, // 150 + 8, 7, 9, // 153 + 11, 16, 12, // 156 + 4, 18, 13, // 159 + 7, 12, 14, // 162 + 9, 14, 18, // 165 + 18, 25, 19, // 168 + 14, 12, 20, // 171 + 14, 21, 25, // 174 + 16, 23, 20, // 177 + 25, 31, 26, // 180 + 20, 32, 27, // 183 + 21, 27, 31, // 186 + 23, 29, 32, // 189 + 31, 39, 33, // 192 + 27, 32, 34, // 195 + 31, 27, 35, // 198 + 29, 37, 34, // 201 + 39, 45, 40, // 204 + 34, 46, 41, // 207 + 35, 41, 45, // 210 + 37, 43, 46, // 213 + 47, 58, 48, // 216 + 49, 48, 56, // 219 + 50, 52, 58, // 222 + 57, 56, 55, // 225 + 48, 3, 5, // 228 + 52, 6, 8, // 231 + 55, 56, 5, // 234 + 58, 8, 3 // 237 +}; // earthUVIndices + +S3L_Model3D earthModel; + +void earthModelInit() +{ + S3L_initModel3D( + earthVertices, + EARTH_VERTEX_COUNT, + earthTriangleIndices, + EARTH_TRIANGLE_COUNT, + &earthModel); +} + +#endif // guard diff --git a/programs/gbmeta/earthTexture.h b/programs/gbmeta/earthTexture.h new file mode 100644 index 0000000..e44702b --- /dev/null +++ b/programs/gbmeta/earthTexture.h @@ -0,0 +1,166 @@ +#ifndef EARTH_TEXTURE_H +#define EARTH_TEXTURE_H + +#define EARTH_TEXTURE_WIDTH 64 +#define EARTH_TEXTURE_HEIGHT 64 + +const uint8_t earthTexture[4096] = { +13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, +13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, +13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,13,12,13,14,13,14, +12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, +13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,13,12,12,12,12,13,12, +14,13,14,14,14,14,14,14,14,14,14,13,13,13,13,13,13,13,14,13,13,11,11,11,12,11, +11,11,12,12,13,12,13,13,13,13,13,13,12,12,12,12,12,12,12,13,13,12,11,12,12,11, +11,11,11,12,13,12,12,12,12,12,13,12,12,13,13,13,14,14,14,14,14,14,13,12,13,13, +12,12,14,11,10,13,10,11,13,14,12,11,11,9,67,83,68,67,83,194,194,7,194,83,194, +195,67,84,8,9,9,6,67,68,9,10,11,12,12,13,12,12,12,12,13,12,13,12,13,12,13,13,13, +13,13,14,13,14,13,13,13,13,8,12,8,9,13,10,7,13,14,14,14,14,13,13,13,195,195,66, +66,66,67,6,195,67,67,66,195,195,84,67,195,84,67,66,67,84,7,66,68,10,11,9,8,8,10, +11,13,12,12,13,13,14,13,12,13,13,13,12,11,12,12,7,10,11,9,10,8,10,67,196,85,66, +13,13,14,14,14,14,12,84,66,67,67,66,67,84,66,66,66,66,66,67,67,9,195,66,67,67, +84,6,5,7,5,84,195,84,67,9,194,5,11,12,12,12,13,14,13,11,12,11,11,11,10,84,23,26, +12,10,11,11,5,6,12,84,84,84,7,14,14,14,14,14,7,84,67,67,67,84,84,67,84,67,67,67, +84,195,6,67,84,84,67,6,21,21,5,68,22,5,5,67,67,84,67,195,195,194,7,12,14,12,85, +84,20,4,67,84,84,196,67,196,4,24,12,24,12,23,4,10,10,10,67,6,14,14,14,10,69,84, +84,84,67,67,84,67,68,5,67,67,67,67,84,195,6,195,21,21,22,38,5,6,4,37,6,39,22,21, +6,37,21,84,84,84,23,13,84,7,24,9,24,23,20,22,22,24,6,21,22,8,25,24,10,10,11,11, +67,7,14,14,12,67,84,84,67,67,67,67,67,12,22,6,7,23,4,6,37,38,22,84,4,21,22,24,5, +4,5,37,5,9,21,21,4,22,23,39,8,40,67,68,67,4,21,21,22,23,25,24,22,21,24,23,25,21, +25,24,67,21,28,9,67,6,14,67,84,84,85,13,67,84,67,67,68,24,67,6,21,68,21,39,21, +21,21,36,36,21,23,23,39,6,22,21,37,25,8,8,25,22,24,10,23,5,67,67,196,37,22,7,8, +9,23,24,22,22,6,24,25,6,67,67,196,27,67,67,67,67,14,67,67,67,67,67,67,67,67,8,7, +22,37,5,22,37,37,20,21,20,36,36,20,21,21,23,6,21,22,20,38,37,37,10,10,9,5,67,25, +68,67,67,67,196,21,69,67,196,12,24,22,23,24,22,24,22,67,67,84,23,67,67,67,67,67, +67,67,67,67,67,67,68,67,68,5,4,67,5,22,37,21,37,37,20,37,36,36,20,20,38,20,22, +21,23,40,39,22,39,68,6,67,68,85,67,67,67,67,67,85,84,67,67,69,7,9,25,24,24,24, +23,23,85,68,25,24,6,67,67,67,67,67,67,67,67,67,4,67,67,85,67,22,22,23,37,20,37, +37,37,21,21,36,36,37,37,21,24,23,27,10,10,9,67,67,67,23,5,67,67,67,67,68,67,67, +67,67,67,67,5,25,9,41,25,23,39,23,22,22,24,25,26,23,67,67,67,67,67,67,67,68,85, +68,68,37,22,22,24,23,37,21,21,22,23,22,21,36,21,26,8,37,25,25,25,37,39,25,6,67, +67,24,67,67,67,67,67,67,67,67,67,67,67,67,67,11,8,26,25,24,39,24,22,23,25,24,22, +9,85,67,67,67,67,67,67,67,85,68,22,24,24,24,25,37,37,22,37,37,23,39,24,21,26,10, +27,9,6,9,24,23,23,26,68,68,67,196,67,67,67,67,67,67,67,67,67,67,67,67,67,24,24, +9,24,26,24,68,40,39,23,38,68,8,85,85,67,67,67,67,67,67,85,23,24,25,22,24,37,36, +22,22,85,22,24,24,25,23,6,29,29,26,7,25,24,21,23,23,85,67,67,67,67,67,67,67,67, +67,67,67,67,67,67,67,68,39,8,11,8,25,24,40,23,41,22,37,85,68,85,67,67,67,68,67, +67,67,67,24,25,24,24,26,23,4,21,24,68,25,24,24,24,25,23,25,28,28,28,27,27,24,24, +41,196,85,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,23,9,10,11,27,25,39,24, +40,41,85,85,67,85,67,67,67,68,67,67,68,26,24,85,68,85,26,85,196,196,27,68,25,25, +23,9,11,27,23,28,25,28,28,27,23,27,85,85,67,67,67,67,67,67,67,67,67,67,67,67,67, +67,67,67,5,10,11,11,28,24,38,23,38,68,85,67,67,67,67,67,68,85,68,67,67,25,196, +85,85,9,25,24,28,29,28,68,23,25,26,11,26,27,27,12,28,27,27,23,86,85,68,21,67,67, +67,67,67,68,68,68,67,67,67,67,68,67,68,68,68,10,10,10,27,38,21,39,38,68,68,68, +68,67,68,85,68,85,68,68,68,24,85,8,68,68,69,69,27,27,28,9,26,23,29,12,12,11,12, +28,27,29,26,24,68,6,85,6,67,67,68,68,68,67,85,68,68,68,68,68,68,68,68,68,85,69, +25,27,28,23,38,40,69,68,68,68,68,68,68,68,68,68,68,196,85,25,29,27,68,68,68,68, +85,28,25,29,26,26,12,22,10,11,10,11,29,25,26,25,68,86,68,68,68,68,68,68,68,68, +68,85,68,68,68,68,68,85,85,85,68,68,25,27,26,23,37,40,68,68,85,85,68,68,68,68, +68,68,68,85,68,26,12,11,28,26,26,25,26,27,26,27,28,26,28,38,11,11,11,10,11,24, +25,23,68,68,68,68,68,68,85,68,68,85,68,68,68,85,85,85,68,68,68,68,68,68,198,10, +24,86,69,86,68,68,85,85,85,85,68,68,68,85,85,72,6,29,27,28,28,28,26,27,7,29,27, +69,28,26,26,27,25,10,12,26,13,27,25,25,86,70,68,68,68,68,85,68,68,85,68,68,68, +68,68,68,68,68,68,68,68,68,87,24,10,68,68,86,69,68,68,85,68,68,68,68,68,68,68, +68,27,27,28,28,28,27,28,27,25,25,28,69,7,8,26,25,24,25,26,22,29,25,25,25,86,85, +68,68,68,68,85,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,87,11,68,69,69, +69,68,68,68,68,68,68,68,68,68,68,68,28,27,29,28,29,12,28,28,25,24,28,26,10,68, +69,23,23,25,24,26,27,25,27,69,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68, +68,68,68,68,68,68,68,68,26,69,24,68,69,71,68,68,68,68,68,68,68,68,68,197,12,11, +28,28,12,12,12,28,27,68,29,27,27,68,68,23,23,24,69,24,27,198,69,68,68,68,68,68, +68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,8,23,69,69,68,68, +69,68,68,68,68,68,68,69,87,26,29,28,28,12,27,29,28,26,198,28,29,68,68,69,70,27, +69,86,23,24,26,69,68,68,68,68,68,69,68,68,68,68,68,68,68,68,68,68,68,68,68,68, +68,68,68,68,69,69,69,43,39,86,69,68,69,68,68,86,68,68,68,68,7,24,27,27,28,29,28, +29,28,25,28,28,69,86,68,68,69,25,86,86,69,23,26,69,68,69,68,68,68,68,68,68,68, +68,68,68,68,68,68,68,68,68,68,68,68,68,68,69,86,69,69,69,38,69,70,87,69,68,68, +69,68,68,68,68,69,25,26,26,26,27,26,27,27,26,28,69,11,69,69,68,69,24,69,86,69, +87,25,68,69,69,68,68,86,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,69,69, +69,86,86,69,69,69,69,27,22,9,69,68,68,86,68,68,68,86,41,25,23,25,24,24,26,25,23, +28,28,198,69,69,68,69,198,69,69,69,69,69,69,198,9,68,69,86,69,69,68,69,69,68,68, +68,68,68,69,68,68,69,68,69,69,69,69,69,69,86,69,69,69,11,25,29,8,69,86,69,69,69, +86,68,69,26,70,25,24,24,25,25,24,27,27,68,69,69,69,69,69,86,69,71,28,69,69,8,86, +68,68,69,86,69,69,69,68,68,68,68,68,68,69,68,69,69,69,69,69,69,86,69,69,69,69, +69,69,23,23,22,26,69,69,69,69,69,69,69,68,69,68,69,24,24,24,26,27,26,23,68,68, +69,86,69,69,69,69,69,70,69,23,198,198,69,69,86,68,69,69,69,69,69,68,68,68,68,69, +69,69,68,69,69,69,86,86,86,69,69,69,69,12,24,22,21,26,69,87,86,69,86,86,86,69, +68,68,69,39,24,23,26,87,24,86,68,68,69,69,69,69,69,86,69,22,87,24,69,198,69,69, +69,69,69,69,69,69,68,68,68,68,68,68,68,68,69,69,68,68,69,69,69,86,86,86,69,12, +21,23,21,22,21,25,69,69,68,68,68,86,68,68,69,24,23,26,43,27,24,69,68,68,68,69, +69,68,69,69,69,7,69,24,69,68,69,87,8,69,69,69,69,86,68,68,68,68,68,68,68,68,68, +68,68,68,68,68,86,69,69,69,68,27,20,22,22,37,22,21,27,68,68,68,68,86,68,68,68, +69,24,25,26,26,86,68,68,69,69,69,69,68,68,68,68,68,69,69,69,69,68,69,25,71,7,69, +69,69,68,68,68,68,69,68,68,68,69,68,68,68,68,68,69,68,68,68,68,9,37,21,23,40,39, +24,26,68,68,68,68,69,68,68,68,69,25,26,25,26,69,68,68,86,69,69,68,68,68,68,68, +68,86,70,7,70,69,69,6,5,86,7,69,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68, +68,68,68,68,68,25,21,21,38,22,25,27,68,68,68,68,68,68,68,68,68,25,25,25,26,26, +68,68,68,69,68,68,68,68,68,68,68,68,68,68,86,69,69,87,69,86,86,68,68,69,69,68, +68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,11,37,20,24,22,25,24,68,68, +68,68,68,68,68,68,68,25,25,25,26,25,68,68,68,68,68,68,68,68,68,68,68,68,68,68, +86,69,22,86,68,68,68,68,68,68,70,68,68,68,68,69,68,68,68,68,68,68,68,68,68,68, +68,68,68,86,27,23,21,26,26,23,68,68,68,68,68,68,68,68,197,26,26,7,24,6,24,68,68, +68,68,68,68,68,68,68,68,68,68,68,69,25,23,198,86,86,68,68,86,68,68,69,85,68,68, +68,68,68,68,68,68,68,68,68,68,68,68,68,68,85,12,22,22,25,25,86,68,68,85,68,68, +68,85,68,68,25,26,26,23,68,24,68,68,68,68,68,68,68,68,68,85,85,68,68,28,28,26, +24,26,86,68,68,68,68,68,67,68,68,85,68,85,68,68,68,68,68,68,68,68,85,68,68,85, +68,12,20,23,25,7,68,68,68,85,68,68,85,68,68,68,26,26,26,23,68,26,85,68,68,68,68, +85,85,85,85,85,68,68,25,27,27,26,26,25,87,68,68,68,85,68,85,68,68,68,68,68,85, +85,85,68,68,68,68,68,68,68,68,68,85,11,23,23,26,68,85,68,68,68,85,85,68,68,68, +68,26,28,25,68,85,25,68,68,68,85,68,85,68,68,68,85,68,68,27,27,27,26,25,25,25, +85,68,68,68,68,68,68,67,68,68,68,85,85,68,85,85,68,85,85,85,85,68,68,68,27,22, +24,25,85,68,85,68,68,68,85,68,68,68,68,27,28,26,68,68,68,68,68,68,68,85,68,68, +85,85,68,67,85,27,27,26,25,26,23,25,68,68,85,85,68,67,67,67,67,67,67,68,68,68, +68,68,85,68,68,85,68,68,68,68,25,22,24,5,68,68,68,68,68,68,85,68,68,67,68,196, +26,8,85,67,85,68,68,68,68,68,85,68,85,85,68,67,67,26,25,26,24,25,23,26,68,68,68, +68,68,67,67,67,67,67,67,67,67,68,68,68,85,68,68,67,68,68,68,67,24,23,25,68,68, +67,67,67,67,68,68,67,67,67,67,85,24,85,68,67,68,67,68,67,67,68,68,68,68,67,67, +67,68,25,7,85,22,22,25,196,67,68,85,68,67,67,67,67,67,67,67,67,67,67,67,67,68, +67,67,67,67,67,67,86,24,23,85,67,67,67,67,67,67,68,67,67,67,67,67,67,67,67,67, +67,68,68,67,67,67,67,68,67,67,67,67,67,67,67,67,67,67,24,23,67,67,85,85,6,67,67, +67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,5,24,196,196,67,67,67,67,67, +67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,68,67,67,67,67,67,67,67, +67,67,67,85,68,67,67,67,85,25,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67, +67,67,67,68,24,85,67,67,67,67,67,67,67,67,67,67,68,67,67,67,67,67,67,67,67,67, +67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,6,67,67,67,85,68,67,67,67,67,67, +67,67,67,67,67,67,67,67,67,67,67,67,67,67,7,25,85,67,67,67,67,67,67,67,67,67,67, +67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67, +67,67,67,67,7,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,9,23, +67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67, +67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,85,67,67,67,67,67,67,67,67,67,67, +67,67,67,67,67,67,67,67,67,67,12,196,67,67,67,67,84,67,67,67,67,67,67,67,67,67, +67,67,67,67,67,67,67,67,84,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67, +67,67,67,67,67,67,67,67,84,67,67,67,67,67,67,67,67,67,84,67,67,67,5,67,196,84, +67,67,67,67,67,84,67,67,67,67,67,67,67,67,67,67,67,67,84,84,84,84,67,67,84,84, +67,67,67,67,67,84,67,67,67,67,67,84,67,67,67,67,67,67,67,84,84,67,67,84,84,84, +84,84,67,67,67,67,67,67,84,85,84,84,67,84,67,67,67,67,67,67,67,84,84,67,67,84, +67,67,67,67,67,67,67,67,67,67,67,67,67,84,67,67,67,67,67,84,84,67,84,84,67,84, +67,67,67,67,67,67,84,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,84,67,84,67, +84,84,67,67,67,67,67,67,66,67,66,66,66,67,66,67,67,66,67,67,67,67,84,67,67,67, +67,67,67,67,67,67,67,67,84,67,67,67,67,66,67,67,67,67,67,67,67,67,67,195,66,67, +66,67,67,66,66,66,67,67,84,67,84,67,84,67,67,67,67,66,66,66,66,66,67,66,67,66, +67,67,66,67,66,67,66,67,84,67,67,67,67,67,67,67,67,67,67,67,67,84,84,67,67,67, +67,67,67,67,66,66,66,195,66,66,66,66,66,66,66,66,67,84,67,84,9,84,67,66,66,66, +66,66,66,66,66,66,67,66,66,66,66,66,66,66,67,84,66,67,67,67,66,67,84,12,84,84, +84,67,195,195,67,67,67,67,67,67,67,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, +66,66,66,66,67,13,12,84,195,66,66,66,66,66,66,66,66,66,66,66,66,66,66,84,66,67, +13,13,69,83,84,15,13,13,14,13,13,13,13,13,13,14,13,13,84,84,67,67,66,66,66,66, +66,66,66,66,66,66,66,66,66,66,66,195,67,67,84,67,12,13,12,84,66,66,66,66,66,66, +66,195,195,13,11,13,12,12,13,13,12,14,14,14,14,13,13,13,14,13,14,14,14,13,13,14, +14,13,14,14,14,14,13,70,66,83,66,66,66,66,66,66,66,195,66,66,195,195,84,13,13, +13,83,9,11,13,13,84,66,66,66,66,66,66,11,13,14,14,13,13,14,13,13,13,14,14,14,13, +13,11,13,14,14,14,13,14,13,14,14,14,14,13,14,13,13,14,13,14,195,66,66,66,66,66, +83,14,14,13,14,14,13,13,13,13,13,13,14,13,12,14,13,67,66,66,66,195,84,13,13,13, +14,13,14,14,14,14,14,14,14,14,14,13,13,13,13,13,13,14,13,13,14,14,14,14,14,13, +14,13,13,13,12,67,66,13,12,12,13,13,14,13,13,13,14,13,13,13,13,13,13,13,14,13, +12,12,11,12,12,13,13,13,13,13,13,13,14,14,13,14,14,14,14,14,13,13,14,14,14,13, +13,13,13,13,13,13,13,13,14,14,13,13,13,13,13,13,13,13,14,14,13,13,13,13,13,12, +12,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,13,12,13,13,13,12,13,13,13, +13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,13,13,13,13,13,13,13,13,13, +13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12, +12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14, +13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,14,14,14,14,14,13,13,14,13, +14,13,13,14,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,13,13, +13,13,13,13,13,14,14,13,13,13,13,13,13,14,14,13,13,13,13,13,13,13,13,14,14,14, +14,14,14 +}; // earthTexture + +#endif // guard diff --git a/programs/gbmeta/gbmetaModel.h b/programs/gbmeta/gbmetaModel.h new file mode 100644 index 0000000..737c037 --- /dev/null +++ b/programs/gbmeta/gbmetaModel.h @@ -0,0 +1,112 @@ +#ifndef GBMETA_MODEL_H +#define GBMETA_MODEL_H + +#define GBMETA_VERTEX_COUNT 12 +const S3L_Unit gbmetaVertices[GBMETA_VERTEX_COUNT * 3] = { + -2732, 1591, -512, // 0 + -2732, -1591, -512, // 3 + -2732, 1591, 511, // 6 + -2732, -1591, 511, // 9 + 2732, 1591, -511, // 12 + 2732, -1591, -511, // 15 + 2732, 1591, 512, // 18 + 2732, -1591, 512, // 21 + 3198, -1591, 0, // 24 + -3198, 1591, 0, // 27 + 3198, 1591, 0, // 30 + -3198, -1591, 0 // 33 +}; // gbmetaVertices + +#define GBMETA_TRIANGLE_COUNT 20 +const S3L_Index gbmetaTriangleIndices[GBMETA_TRIANGLE_COUNT * 3] = { + 11, 3, 1, // 0 + 2, 7, 3, // 3 + 10, 5, 8, // 6 + 8, 5, 7, // 9 + 9, 3, 11, // 12 + 4, 1, 5, // 15 + 0, 11, 1, // 18 + 10, 6, 4, // 21 + 6, 8, 7, // 24 + 3, 5, 1, // 27 + 0, 6, 2, // 30 + 9, 0, 2, // 33 + 2, 6, 7, // 36 + 10, 4, 5, // 39 + 9, 2, 3, // 42 + 4, 0, 1, // 45 + 0, 9, 11, // 48 + 6, 10, 8, // 51 + 3, 7, 5, // 54 + 0, 4, 6 // 57 +}; // gbmetaTriangleIndices + +#define GBMETA_UV_COUNT 28 +const S3L_Unit gbmetaUVs[GBMETA_UV_COUNT * 2] = { + 261, 37, // 0 + 278, 55, // 2 + 278, 18, // 4 + 451, 82, // 6 + 56, 287, // 8 + 451, 287, // 10 + 501, 297, // 12 + 451, 501, // 14 + 501, 501, // 16 + 496, 37, // 18 + 479, 18, // 20 + 479, 55, // 22 + 501, 82, // 24 + 501, 287, // 26 + 451, 297, // 28 + 57, 501, // 30 + 57, 297, // 32 + 7, 501, // 34 + 12, 36, // 36 + 29, 55, // 38 + 29, 17, // 40 + 56, 82, // 42 + 6, 287, // 44 + 230, 17, // 46 + 230, 55, // 48 + 247, 36, // 50 + 7, 297, // 52 + 6, 82 // 54 +}; // gbmetaUVs + +#define GBMETA_UV_INDEX_COUNT 20 +const S3L_Index gbmetaUVIndices[GBMETA_UV_INDEX_COUNT * 3] = { + 0, 1, 2, // 0 + 3, 4, 5, // 3 + 6, 7, 8, // 6 + 9, 10, 11, // 9 + 12, 5, 13, // 12 + 14, 15, 7, // 15 + 16, 17, 15, // 18 + 18, 19, 20, // 21 + 21, 22, 4, // 24 + 1, 10, 2, // 27 + 23, 19, 24, // 30 + 25, 23, 24, // 33 + 3, 21, 4, // 36 + 6, 14, 7, // 39 + 12, 3, 5, // 42 + 14, 16, 15, // 45 + 16, 26, 17, // 48 + 21, 27, 22, // 51 + 1, 11, 10, // 54 + 23, 20, 19 // 57 +}; // gbmetaUVIndices + +S3L_Model3D gbmetaModel; + +void gbmetaModelInit() +{ + S3L_initModel3D( + gbmetaVertices, + GBMETA_VERTEX_COUNT, + gbmetaTriangleIndices, + GBMETA_TRIANGLE_COUNT, + &gbmetaModel); +} + +#endif // guard diff --git a/programs/gbmeta/gbmetaTexture.h b/programs/gbmeta/gbmetaTexture.h new file mode 100644 index 0000000..6140dbe --- /dev/null +++ b/programs/gbmeta/gbmetaTexture.h @@ -0,0 +1,147 @@ +#ifndef GBMETA_TEXTURE_H +#define GBMETA_TEXTURE_H + +#define GBMETA_TEXTURE_WIDTH 64 +#define GBMETA_TEXTURE_HEIGHT 64 + +const uint8_t gbmetaTexture[4096] = { +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,9,9,9,9,9,9,7,4,9,7,4,7,9,9,9,9,9,9,9,9, +9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,4,7,9,9,9,9,9,9,9,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,9,9,9,9,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, +9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,22, +22,21,20,20,20,20,20,7,9,9,9,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,20,20,20,20,20,21,22,22,22,22,21,20,20,20, +20,20,20,20,20,9,9,9,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,6,0,0,0,0,9,9,9,7,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20, +20,20,20,20,9,9,0,0,0,0,9,6,0,6,6,0,6,6,6,6,0,6,6,0,6,6,0,6,6,0,6,6,0,6,6,0,6,0, +0,0,9,9,7,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20, +20,20,20,9,9,0,0,0,9,6,155,6,6,155,6,6,6,6,155,6,6,155,6,6,155,6,6,155,6,6,155, +6,6,0,6,155,155,9,9,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20, +20,20,20,20,20,20,20,20,20,9,9,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20, +20,20,20,20,20,20,20,20,20,20,9,9,0,0,155,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, +7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20, +20,20,20,20,20,20,20,20,20,20,20,7,9,0,0,155,7,7,7,7,7,7,7,7,7,7,7,9,7,7,7,7,7, +7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20, +20,20,20,20,20,20,20,20,20,20,20,20,20,9,9,0,155,7,7,7,7,7,7,7,7,7,7,7,9,7,7,7, +7,7,7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22, +21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,9,9,0,155,7,7,7,7,7,7,7,7,7,7,7,9, +7,7,7,7,7,7,7,7,7,7,7,7,7,9,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22, +22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,7,9,0,155,7,7,7,7,7,7,7,7,7, +7,7,9,7,7,7,7,7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21, +22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,9,7,155,7,7,7,7,7,7, +12,12,12,12,12,9,12,12,12,12,7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20, +20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,9,9, +155,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,7,20,20,20,20,20,20,20,20, +20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20, +20,9,9,155,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,7,20,20,20,20,20, +20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20, +20,20,20,20,9,9,155,7,7,7,7,7,7,7,7,12,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,9,7,20,20, +20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20, +20,20,20,20,20,20,20,9,7,155,7,7,7,7,7,7,7,9,7,7,7,9,7,7,9,9,7,7,7,7,7,7,7,7,9, +9,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20, +20,20,20,20,20,20,20,20,7,9,0,155,7,7,7,7,7,7,9,7,7,7,7,9,7,7,7,9,7,7,7,7,7,7,7, +7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20, +20,20,20,20,20,20,20,20,20,20,9,9,0,155,7,7,7,7,7,7,7,7,7,7,7,9,7,7,7,7,7,7,7,7, +7,7,7,7,7,9,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20, +20,20,20,20,20,20,20,20,20,20,20,20,9,9,0,155,7,7,7,7,7,7,7,7,7,7,7,9,7,7,7,7,7, +7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20, +20,20,20,20,20,20,20,20,20,20,20,20,7,9,0,0,155,7,7,7,7,7,7,7,7,7,7,7,9,7,7,7,7, +7,7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21, +20,20,20,20,20,20,20,20,20,20,20,20,20,9,9,0,0,155,7,7,7,7,7,7,7,7,7,7,7,9,7,7, +7,7,7,7,7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22, +21,20,20,20,20,20,20,20,20,20,20,20,20,9,9,0,0,0,155,7,7,7,7,7,7,7,7,7,7,7,7,7, +7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22, +22,21,20,20,20,20,20,20,20,20,20,20,20,9,9,0,0,0,0,155,7,7,7,7,7,7,7,7,7,7,7,7, +7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22, +22,21,20,20,20,20,20,20,20,20,20,20,9,9,0,0,0,0,0,155,155,155,155,155,155,155, +155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, +155,155,9,9,7,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20, +20,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,9,9,9,7,20,20,20,20,20,20,20,21,22,22,22,22,21,21,20,20,20,20,8,9,9,9,8,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9, +21,21,21,21,21,21,22,22,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,22,22,22,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,149, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,21,21,21,21,21,21,21,21, +21,21,21,21,21,21,21,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20, +20,20,20,20,0,0,0,0,14,0,14,14,14,14,14,3,14,3,14,14,14,14,14,14,14,0,0,0,0,20, +20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20, +20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,20,20,20,20,146,20,20,146,20,146,20,20,20,20,20,20,21,22,22,22,22,21,20, +20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,14,14,14,14,14,14,14,14,14,14, +14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,20,20,20,20,128,128,128,128,20,128, +128,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20, +20,20,20,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20, +20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20, +20,20,20,20,20,20,20,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20, +20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20, +20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,14,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20, +20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,14,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21, +20,20,20,20,20,20,20,20,20,14,14,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22, +22,22,21,20,20,20,20,20,20,20,20,20,12,11,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, +21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,12,12,20,20,20,20,20,20,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20,20,14,14,20,20,20,20, +20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,14,14,14,12,12,14,14,14,20,20,20,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20,14,11,11,10, +20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,12,11,12,12,12,12,11,12, +20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,14,12,14,20, +14,11,11,10,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,10,10,10,12, +12,10,10,10,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20, +12,11,12,20,20,10,10,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20, +20,20,20,12,12,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,14,20,20,10,12,10,20,20,146,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20, +20,20,20,20,20,20,20,12,11,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,14,20,20,20,20,20,20,20,146,146,20,20,20,20,20,20,20,21,22,22,22, +22,21,20,20,20,20,20,20,20,20,20,10,10,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21, +22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20,20,20,20,20,20,20,20,20, +20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20,20,20,20,20,20, +20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, +20,20,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20,20,20,20,20, +20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20, +20,20,20,20,20,20,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,20,20,20, +20,20,20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,20,20,20,20,20,20,20, +20,20,20,20,20,20,20,20,20,20,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, +14,14,14,14,14,14,14,14,14,20,20,146,20,20,20,20,20,20,20,20,20,20,20,20,20,21, +22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,146,20,146,20,20,20,20,20,20,20,20,20,20, +20,20,21,22,22,22,22,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0, +0,0,12,12,12,12,0,0,157,0,157,157,0,157,0,12,12,12,12,0,0,0,0,20,20,146,20,20, +20,20,20,20,20,20,20,20,20,20,20,21,22,22,22,22,21,21,20,20,20,20,20,20,20,20, +20,20,20,20,20,20,20,148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148, +20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,22,22,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, +10,10,10,10 +}; // gbmetaTexture + +#endif // guard diff --git a/programs/gbmeta/houseModel.h b/programs/gbmeta/houseModel.h new file mode 100644 index 0000000..8b5269a --- /dev/null +++ b/programs/gbmeta/houseModel.h @@ -0,0 +1,732 @@ +#ifndef HOUSE_MODEL_H +#define HOUSE_MODEL_H + +#define HOUSE_VERTEX_COUNT 127 +const S3L_Unit houseVertices[HOUSE_VERTEX_COUNT * 3] = { + 1809, 657, -687, // 0 + 1635, -291, -914, // 3 + 1635, -309, -632, // 6 + 1473, 657, -1113, // 9 + 1809, 657, -1113, // 12 + 2070, 661, -1396, // 15 + 1659, 657, -687, // 18 + 1659, 657, 1039, // 21 + 1563, 142, -217, // 24 + 1563, 138, 582, // 27 + 1489, -270, -632, // 30 + 188, 733, -1473, // 33 + 1354, -245, -914, // 36 + 1473, 657, -910, // 39 + 1354, -206, -729, // 42 + 1240, 2205, 176, // 45 + 68, 2107, 176, // 48 + 1530, -1123, -636, // 51 + 1313, -1123, -765, // 54 + 1313, -1123, -1005, // 57 + 1644, -1123, -1005, // 60 + 1644, -1123, -636, // 63 + 602, -251, -728, // 66 + 637, 374, -882, // 69 + 539, -1118, -936, // 72 + 637, 372, -1124, // 75 + 539, -1123, -768, // 78 + 464, 190, -1109, // 81 + 372, -1119, -948, // 84 + 464, 192, -845, // 87 + 372, -1123, -748, // 90 + 1312, 142, -217, // 93 + 1489, -248, -204, // 96 + 1312, -534, -171, // 99 + 1312, -533, 521, // 102 + 1312, 138, 582, // 105 + 1508, -534, -171, // 108 + 1508, -533, 521, // 111 + 1530, -1123, 988, // 114 + -1672, 657, -687, // 117 + -1498, -315, -914, // 120 + -1672, 657, -1113, // 123 + -1336, 657, -1113, // 126 + -1909, 681, -1429, // 129 + -1352, -251, -632, // 132 + -1498, -315, -632, // 135 + -1426, 146, 494, // 138 + -1323, -347, 999, // 141 + -1352, -247, 503, // 144 + -1221, -305, -914, // 147 + -1336, 657, -910, // 150 + -2446, 2327, 278, // 153 + -1872, 681, 1713, // 156 + -1393, -1123, -636, // 159 + -1176, -1123, -765, // 162 + -1221, -284, -729, // 165 + -1176, -1123, -961, // 168 + -1527, -1123, -636, // 171 + -443, -251, -728, // 174 + -477, 343, -882, // 177 + -402, -1118, -936, // 180 + -402, -1123, -768, // 183 + -304, 160, -1109, // 186 + -477, 341, -1124, // 189 + -235, -1119, -948, // 192 + -304, 162, -845, // 195 + -1672, 657, 1039, // 198 + -1175, 146, -142, // 201 + -1175, -645, -145, // 204 + -1352, -247, -151, // 207 + -1426, 146, -142, // 210 + -1371, -645, -145, // 213 + -1523, 657, 1039, // 216 + 1809, 657, 1039, // 219 + 1635, -251, 1266, // 222 + 1809, 628, 1466, // 225 + 2450, 2567, 227, // 228 + -1336, 657, 1262, // 231 + 247, 714, 1527, // 234 + 1473, 657, 1262, // 237 + 1473, 657, 1466, // 240 + 2042, 591, 1653, // 243 + 1635, -219, 984, // 246 + 1373, -213, 1266, // 249 + -1103, 2205, 176, // 252 + -1286, 1892, -143, // 255 + 1489, -219, 984, // 258 + 1313, -1123, 1117, // 261 + 1373, -213, 1081, // 264 + 1313, -1123, 1313, // 267 + 1644, -1123, 988, // 270 + 1489, -248, 555, // 273 + -1468, -347, 1266, // 276 + -1468, -347, 999, // 279 + -1336, 657, 1466, // 282 + -1672, 657, 1466, // 285 + -1175, 146, 494, // 288 + -1523, 657, -687, // 291 + -1222, -347, 1266, // 294 + -1222, -347, 1081, // 297 + -1393, -1123, 988, // 300 + -1176, -1123, 1117, // 303 + -1176, -1123, 1313, // 306 + -1507, -1123, 1313, // 309 + -1507, -1123, 988, // 312 + -1371, -645, 497, // 315 + -1175, -645, 497, // 318 + -235, -1123, -748, // 321 + -1442, 2357, -538, // 324 + -1405, 1712, -323, // 327 + -1589, 1878, -170, // 330 + -1257, 2383, -200, // 333 + -1712, 2416, -224, // 336 + -1527, -1123, -961, // 339 + 1644, -1123, 1313, // 342 + -1636, 657, -930, // 345 + -1636, 657, -930, // 348 + -1672, 657, 1466, // 351 + 1773, 657, -930, // 354 + 1773, 657, -930, // 357 + 1809, 657, 1466, // 360 + -1636, 657, 1282, // 363 + -1636, 657, 1282, // 366 + -1672, 657, -1113, // 369 + 1773, 657, 1282, // 372 + 1773, 657, 1282, // 375 + 1809, 657, -1113 // 378 +}; // houseVertices + +#define HOUSE_TRIANGLE_COUNT 200 +const S3L_Index houseTriangleIndices[HOUSE_TRIANGLE_COUNT * 3] = { + 0, 1, 2, // 0 + 3, 1, 4, // 3 + 3, 4, 5, // 6 + 0, 5, 4, // 9 + 2, 6, 0, // 12 + 7, 8, 9, // 15 + 6, 10, 8, // 18 + 11, 3, 5, // 21 + 12, 13, 14, // 24 + 15, 16, 11, // 27 + 2, 17, 10, // 30 + 12, 18, 19, // 33 + 1, 19, 20, // 36 + 1, 21, 2, // 39 + 22, 18, 14, // 42 + 23, 14, 13, // 45 + 24, 23, 25, // 48 + 26, 22, 23, // 51 + 24, 27, 28, // 54 + 28, 29, 30, // 57 + 31, 32, 33, // 60 + 32, 31, 8, // 63 + 31, 34, 35, // 66 + 36, 33, 32, // 69 + 37, 17, 38, // 72 + 17, 36, 10, // 75 + 39, 40, 41, // 78 + 40, 42, 41, // 81 + 42, 43, 41, // 84 + 39, 41, 43, // 87 + 39, 44, 45, // 90 + 46, 47, 48, // 93 + 11, 43, 42, // 96 + 49, 50, 42, // 99 + 51, 52, 43, // 102 + 53, 45, 44, // 105 + 49, 54, 55, // 108 + 40, 56, 49, // 111 + 57, 40, 45, // 114 + 54, 58, 55, // 117 + 55, 59, 50, // 120 + 60, 59, 61, // 123 + 61, 59, 58, // 126 + 60, 62, 63, // 129 + 64, 65, 62, // 132 + 43, 66, 39, // 135 + 67, 68, 69, // 138 + 69, 70, 67, // 141 + 71, 69, 68, // 144 + 72, 47, 46, // 147 + 73, 74, 75, // 150 + 15, 5, 76, // 153 + 77, 78, 79, // 156 + 74, 80, 75, // 159 + 80, 81, 75, // 162 + 73, 75, 81, // 165 + 7, 82, 73, // 168 + 0, 7, 73, // 171 + 10, 32, 8, // 174 + 78, 81, 80, // 177 + 83, 79, 80, // 180 + 16, 84, 85, // 183 + 15, 78, 16, // 186 + 38, 82, 86, // 189 + 83, 87, 88, // 192 + 74, 89, 83, // 195 + 90, 74, 82, // 198 + 35, 34, 91, // 201 + 91, 9, 35, // 204 + 8, 35, 9, // 207 + 37, 91, 34, // 210 + 33, 37, 34, // 213 + 10, 36, 32, // 216 + 66, 92, 93, // 219 + 84, 52, 51, // 222 + 94, 78, 77, // 225 + 94, 92, 95, // 228 + 94, 95, 52, // 231 + 66, 52, 95, // 234 + 93, 72, 66, // 237 + 96, 68, 67, // 240 + 97, 70, 44, // 243 + 78, 94, 52, // 246 + 98, 77, 99, // 249 + 15, 81, 78, // 252 + 84, 16, 78, // 255 + 70, 72, 46, // 258 + 93, 100, 47, // 261 + 98, 101, 102, // 264 + 98, 103, 92, // 267 + 92, 104, 93, // 270 + 99, 87, 101, // 273 + 77, 88, 99, // 276 + 105, 53, 71, // 279 + 96, 48, 106, // 282 + 48, 96, 46, // 285 + 106, 71, 68, // 288 + 105, 106, 48, // 291 + 46, 67, 70, // 294 + 70, 69, 44, // 297 + 66, 97, 39, // 300 + 81, 0, 73, // 303 + 76, 5, 81, // 306 + 30, 65, 107, // 309 + 27, 65, 29, // 312 + 27, 63, 62, // 315 + 59, 25, 23, // 318 + 23, 50, 59, // 321 + 11, 50, 13, // 324 + 3, 11, 13, // 327 + 11, 42, 50, // 330 + 7, 9, 86, // 333 + 86, 9, 91, // 336 + 86, 91, 37, // 339 + 38, 86, 37, // 342 + 105, 48, 47, // 345 + 47, 100, 105, // 348 + 71, 44, 69, // 351 + 44, 71, 53, // 354 + 85, 108, 109, // 357 + 108, 110, 109, // 360 + 110, 111, 85, // 363 + 112, 108, 111, // 366 + 43, 110, 51, // 369 + 109, 110, 43, // 372 + 11, 16, 85, // 375 + 109, 11, 85, // 378 + 109, 43, 11, // 381 + 85, 84, 110, // 384 + 84, 51, 110, // 387 + 78, 80, 79, // 390 + 0, 4, 1, // 393 + 3, 12, 1, // 396 + 2, 10, 6, // 399 + 7, 6, 8, // 402 + 12, 3, 13, // 405 + 2, 21, 17, // 408 + 12, 14, 18, // 411 + 1, 12, 19, // 414 + 1, 20, 21, // 417 + 22, 26, 18, // 420 + 23, 22, 14, // 423 + 24, 26, 23, // 426 + 24, 25, 27, // 429 + 28, 27, 29, // 432 + 31, 33, 34, // 435 + 37, 36, 17, // 438 + 39, 45, 40, // 441 + 40, 49, 42, // 444 + 39, 97, 44, // 447 + 49, 55, 50, // 450 + 53, 57, 45, // 453 + 49, 56, 54, // 456 + 40, 113, 56, // 459 + 57, 113, 40, // 462 + 54, 61, 58, // 465 + 55, 58, 59, // 468 + 60, 63, 59, // 471 + 60, 64, 62, // 474 + 64, 107, 65, // 477 + 43, 52, 66, // 480 + 73, 82, 74, // 483 + 15, 11, 5, // 486 + 74, 83, 80, // 489 + 7, 86, 82, // 492 + 0, 6, 7, // 495 + 83, 88, 79, // 498 + 38, 90, 82, // 501 + 83, 89, 87, // 504 + 74, 114, 89, // 507 + 90, 114, 74, // 510 + 8, 31, 35, // 513 + 33, 36, 37, // 516 + 66, 95, 92, // 519 + 84, 78, 52, // 522 + 94, 98, 92, // 525 + 93, 47, 72, // 528 + 96, 106, 68, // 531 + 98, 94, 77, // 534 + 15, 76, 81, // 537 + 70, 97, 72, // 540 + 93, 104, 100, // 543 + 98, 99, 101, // 546 + 98, 102, 103, // 549 + 92, 103, 104, // 552 + 99, 88, 87, // 555 + 77, 79, 88, // 558 + 105, 100, 53, // 561 + 106, 105, 71, // 564 + 46, 96, 67, // 567 + 66, 72, 97, // 570 + 81, 5, 0, // 573 + 30, 29, 65, // 576 + 27, 62, 65, // 579 + 27, 25, 63, // 582 + 59, 63, 25, // 585 + 23, 13, 50, // 588 + 85, 111, 108, // 591 + 108, 112, 110, // 594 + 110, 112, 111 // 597 +}; // houseTriangleIndices + +#define HOUSE_UV_COUNT 173 +const S3L_Unit houseUVs[HOUSE_UV_COUNT * 2] = { + 279, 174, // 0 + 166, 140, // 2 + 166, 174, // 4 + 279, 106, // 6 + 279, 140, // 8 + 281, 238, // 10 + 307, 238, // 12 + 327, 260, // 14 + 307, 206, // 16 + 279, 204, // 18 + 484, 15, // 20 + 393, 53, // 22 + 447, 53, // 24 + 355, 15, // 26 + 360, 83, // 28 + 183, 266, // 30 + 166, 106, // 32 + 279, 74, // 34 + 166, 74, // 36 + 263, 397, // 38 + 203, 397, // 40 + 203, 505, // 42 + 68, 204, // 44 + 166, 204, // 46 + 68, 74, // 48 + 68, 106, // 50 + 68, 140, // 52 + 68, 174, // 54 + 454, 338, // 56 + 494, 392, // 58 + 496, 335, // 60 + 451, 298, // 62 + 504, 280, // 64 + 440, 382, // 66 + 445, 304, // 68 + 445, 392, // 70 + 436, 314, // 72 + 431, 382, // 74 + 432, 318, // 76 + 428, 373, // 78 + 399, 58, // 80 + 392, 82, // 82 + 401, 102, // 84 + 439, 102, // 86 + 441, 58, // 88 + 395, 107, // 90 + 444, 107, // 92 + 359, 147, // 94 + 480, 147, // 96 + 279, 106, // 98 + 166, 140, // 100 + 279, 140, // 102 + 279, 174, // 104 + 66, 238, // 106 + 22, 263, // 108 + 41, 238, // 110 + 41, 206, // 112 + 166, 74, // 114 + 166, 106, // 116 + 447, 53, // 118 + 480, 85, // 120 + 448, 82, // 122 + 166, 174, // 124 + 279, 204, // 126 + 86, 397, // 128 + 0, 449, // 130 + 86, 505, // 132 + 68, 74, // 134 + 68, 204, // 136 + 166, 204, // 138 + 68, 174, // 140 + 68, 106, // 142 + 337, 392, // 144 + 378, 338, // 146 + 334, 340, // 148 + 381, 300, // 150 + 327, 280, // 152 + 391, 382, // 154 + 385, 392, // 156 + 396, 315, // 158 + 387, 306, // 160 + 399, 382, // 162 + 400, 319, // 164 + 41, 74, // 166 + 399, 58, // 168 + 401, 102, // 170 + 392, 82, // 172 + 393, 53, // 174 + 395, 107, // 176 + 484, 15, // 178 + 279, 106, // 180 + 166, 140, // 182 + 279, 140, // 184 + 314, 505, // 186 + 314, 397, // 188 + 66, 57, // 190 + 187, 36, // 192 + 281, 57, // 194 + 279, 174, // 196 + 281, 41, // 198 + 325, 27, // 200 + 307, 41, // 202 + 307, 74, // 204 + 279, 74, // 206 + 166, 106, // 208 + 295, 74, // 210 + 166, 174, // 212 + 279, 204, // 214 + 144, 397, // 216 + 136, 420, // 218 + 203, 291, // 220 + 68, 74, // 222 + 166, 74, // 224 + 68, 204, // 226 + 166, 204, // 228 + 68, 174, // 230 + 68, 106, // 232 + 448, 82, // 234 + 279, 174, // 236 + 166, 140, // 238 + 166, 174, // 240 + 86, 291, // 242 + 66, 41, // 244 + 279, 106, // 246 + 279, 140, // 248 + 41, 41, // 250 + 25, 22, // 252 + 279, 204, // 254 + 441, 58, // 256 + 355, 15, // 258 + 360, 83, // 260 + 166, 106, // 262 + 279, 74, // 264 + 166, 74, // 266 + 314, 291, // 268 + 68, 204, // 270 + 166, 204, // 272 + 68, 74, // 274 + 68, 106, // 276 + 68, 140, // 278 + 68, 174, // 280 + 495, 218, // 282 + 345, 264, // 284 + 492, 264, // 286 + 502, 158, // 288 + 342, 210, // 290 + 444, 107, // 292 + 359, 147, // 294 + 439, 102, // 296 + 52, 206, // 298 + 402, 449, // 300 + 403, 373, // 302 + 66, 223, // 304 + 281, 223, // 306 + 480, 85, // 308 + 480, 147, // 310 + 492, 407, // 312 + 425, 437, // 314 + 492, 437, // 316 + 492, 467, // 318 + 425, 500, // 320 + 492, 500, // 322 + 425, 467, // 324 + 398, 484, // 326 + 121, 423, // 328 + 131, 433, // 330 + 279, 74, // 332 + 68, 140, // 334 + 295, 206, // 336 + 68, 140, // 338 + 336, 158, // 340 + 52, 74, // 342 + 425, 407 // 344 +}; // houseUVs + +#define HOUSE_UV_INDEX_COUNT 200 +const S3L_Index houseUVIndices[HOUSE_UV_INDEX_COUNT * 3] = { + 0, 1, 2, // 0 + 3, 1, 4, // 3 + 5, 6, 7, // 6 + 8, 7, 6, // 9 + 2, 9, 0, // 12 + 10, 11, 12, // 15 + 13, 14, 11, // 18 + 15, 5, 7, // 21 + 16, 17, 18, // 24 + 19, 20, 21, // 27 + 2, 22, 23, // 30 + 16, 24, 25, // 33 + 1, 25, 26, // 36 + 1, 27, 2, // 39 + 28, 29, 30, // 42 + 31, 30, 32, // 45 + 33, 31, 34, // 48 + 35, 28, 31, // 51 + 33, 36, 37, // 54 + 37, 38, 39, // 57 + 40, 41, 42, // 60 + 41, 40, 11, // 63 + 40, 43, 44, // 66 + 45, 42, 41, // 69 + 46, 47, 48, // 72 + 47, 45, 14, // 75 + 49, 50, 51, // 78 + 50, 52, 51, // 81 + 53, 54, 55, // 84 + 56, 55, 54, // 87 + 49, 57, 58, // 90 + 59, 60, 61, // 93 + 15, 54, 53, // 96 + 62, 63, 52, // 99 + 64, 65, 66, // 102 + 67, 58, 57, // 105 + 62, 68, 69, // 108 + 50, 70, 62, // 111 + 71, 50, 58, // 114 + 72, 73, 74, // 117 + 74, 75, 76, // 120 + 77, 75, 78, // 123 + 78, 75, 73, // 126 + 77, 79, 80, // 129 + 81, 82, 79, // 132 + 54, 83, 56, // 135 + 84, 85, 86, // 138 + 86, 87, 84, // 141 + 88, 86, 85, // 144 + 89, 60, 59, // 147 + 90, 91, 92, // 150 + 19, 93, 94, // 153 + 95, 96, 97, // 156 + 91, 98, 92, // 159 + 99, 100, 101, // 162 + 102, 101, 100, // 165 + 103, 104, 90, // 168 + 8, 105, 102, // 171 + 14, 41, 11, // 174 + 96, 100, 99, // 177 + 106, 107, 98, // 180 + 20, 108, 109, // 183 + 19, 110, 20, // 186 + 111, 104, 112, // 189 + 106, 113, 114, // 192 + 91, 115, 106, // 195 + 116, 91, 104, // 198 + 44, 43, 117, // 201 + 117, 12, 44, // 204 + 11, 44, 12, // 207 + 46, 117, 43, // 210 + 42, 46, 43, // 213 + 14, 45, 41, // 216 + 118, 119, 120, // 219 + 108, 121, 64, // 222 + 122, 96, 95, // 225 + 123, 119, 124, // 228 + 122, 125, 126, // 231 + 83, 126, 125, // 234 + 120, 127, 118, // 237 + 128, 85, 84, // 240 + 129, 87, 130, // 243 + 96, 122, 126, // 246 + 131, 132, 133, // 249 + 19, 134, 110, // 252 + 108, 20, 110, // 255 + 87, 89, 59, // 258 + 120, 135, 136, // 261 + 131, 137, 138, // 264 + 131, 139, 119, // 267 + 119, 140, 120, // 270 + 141, 142, 143, // 273 + 144, 145, 141, // 276 + 146, 147, 88, // 279 + 128, 61, 148, // 282 + 61, 128, 59, // 285 + 148, 88, 85, // 288 + 146, 148, 61, // 291 + 59, 84, 87, // 294 + 87, 86, 130, // 297 + 83, 149, 56, // 300 + 100, 8, 102, // 303 + 94, 93, 150, // 306 + 39, 82, 151, // 309 + 36, 82, 38, // 312 + 36, 80, 79, // 315 + 75, 34, 31, // 318 + 31, 76, 75, // 321 + 15, 152, 153, // 324 + 5, 15, 153, // 327 + 15, 53, 152, // 330 + 10, 12, 154, // 333 + 154, 12, 117, // 336 + 154, 117, 46, // 339 + 48, 154, 46, // 342 + 146, 61, 60, // 345 + 60, 155, 146, // 348 + 88, 130, 86, // 351 + 130, 88, 147, // 354 + 156, 157, 158, // 357 + 157, 159, 158, // 360 + 159, 160, 161, // 363 + 162, 163, 160, // 366 + 66, 164, 64, // 369 + 165, 164, 66, // 372 + 21, 20, 109, // 375 + 165, 21, 109, // 378 + 165, 66, 21, // 381 + 109, 108, 164, // 384 + 108, 64, 164, // 387 + 96, 99, 97, // 390 + 0, 4, 1, // 393 + 3, 16, 1, // 396 + 2, 23, 9, // 399 + 10, 13, 11, // 402 + 16, 3, 17, // 405 + 2, 27, 22, // 408 + 16, 18, 24, // 411 + 1, 16, 25, // 414 + 1, 26, 27, // 417 + 28, 35, 29, // 420 + 31, 28, 30, // 423 + 33, 35, 31, // 426 + 33, 34, 36, // 429 + 37, 36, 38, // 432 + 40, 42, 43, // 435 + 46, 45, 47, // 438 + 49, 58, 50, // 441 + 50, 62, 52, // 444 + 49, 166, 57, // 447 + 62, 69, 63, // 450 + 67, 71, 58, // 453 + 62, 70, 68, // 456 + 50, 167, 70, // 459 + 71, 167, 50, // 462 + 72, 78, 73, // 465 + 74, 73, 75, // 468 + 77, 80, 75, // 471 + 77, 81, 79, // 474 + 81, 151, 82, // 477 + 54, 126, 83, // 480 + 90, 104, 91, // 483 + 19, 21, 93, // 486 + 91, 106, 98, // 489 + 103, 112, 104, // 492 + 8, 168, 105, // 495 + 106, 114, 107, // 498 + 111, 116, 104, // 501 + 106, 115, 113, // 504 + 91, 169, 115, // 507 + 116, 169, 91, // 510 + 11, 40, 44, // 513 + 42, 45, 46, // 516 + 118, 124, 119, // 519 + 108, 110, 121, // 522 + 123, 131, 119, // 525 + 120, 136, 127, // 528 + 128, 148, 85, // 531 + 131, 123, 132, // 534 + 19, 94, 134, // 537 + 87, 129, 89, // 540 + 120, 140, 135, // 543 + 131, 133, 137, // 546 + 131, 138, 139, // 549 + 119, 139, 140, // 552 + 141, 145, 142, // 555 + 144, 170, 145, // 558 + 146, 155, 147, // 561 + 148, 146, 88, // 564 + 59, 128, 84, // 567 + 83, 171, 149, // 570 + 100, 7, 8, // 573 + 39, 38, 82, // 576 + 36, 79, 82, // 579 + 36, 34, 80, // 582 + 75, 80, 34, // 585 + 31, 32, 76, // 588 + 156, 172, 157, // 591 + 157, 162, 159, // 594 + 159, 162, 160 // 597 +}; // houseUVIndices + +S3L_Model3D houseModel; + +void houseModelInit() +{ + S3L_initModel3D( + houseVertices, + HOUSE_VERTEX_COUNT, + houseTriangleIndices, + HOUSE_TRIANGLE_COUNT, + &houseModel); +} + +#endif // guard diff --git a/programs/gbmeta/houseTexture.h b/programs/gbmeta/houseTexture.h new file mode 100644 index 0000000..e506bfa --- /dev/null +++ b/programs/gbmeta/houseTexture.h @@ -0,0 +1,164 @@ +#ifndef HOUSE_TEXTURE_H +#define HOUSE_TEXTURE_H + +#define HOUSE_TEXTURE_WIDTH 64 +#define HOUSE_TEXTURE_HEIGHT 64 + +const uint8_t houseTexture[4096] = { +24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, +24,24,24,24,24,24,24,24,24,24,24,24,24,23,23,8,25,25,25,25,25,25,25,25,25,25,25, +25,25,25,25,25,25,25,25,25,25,25,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, +24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,23,8, +25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,24,24,25,7,23, +24,20,22,21,8,22,21,25,22,22,25,22,22,25,21,22,21,21,22,21,21,22,21,20,22,21,20, +21,22,25,21,22,25,21,22,24,9,25,24,23,20,20,19,20,21,20,20,3,20,20,20,22,22,19, +21,20,23,24,25,24,24,8,21,18,18,18,19,18,21,19,19,22,20,20,23,21,21,24,21,22,21, +21,22,21,21,22,22,21,22,21,20,22,21,24,21,21,23,20,20,21,24,25,25,24,21,23,22, +25,22,23,24,20,25,25,23,25,25,23,24,23,24,24,25,24,24,24,20,19,19,19,20,19,18, +20,19,18,19,18,17,18,18,21,19,19,18,19,20,19,19,20,19,19,19,19,19,18,18,17,18, +18,18,18,18,18,6,25,25,24,21,25,25,26,24,25,25,22,26,27,26,27,26,25,25,23,24,25, +25,24,24,24,20,19,18,18,19,18,18,21,20,19,21,20,18,20,20,19,20,20,19,19,19,18, +18,19,18,19,20,20,19,21,20,19,20,19,18,19,20,18,6,25,25,24,22,26,25,26,25,25,25, +24,26,27,26,27,27,25,26,23,25,25,25,24,24,24,18,19,18,19,19,19,18,21,20,18,21, +20,18,20,20,19,20,21,19,20,21,19,19,21,19,20,21,19,19,20,19,18,19,19,19,19,19, +19,19,25,25,25,22,26,26,10,24,22,6,5,23,24,25,27,27,26,24,23,25,25,25,24,24,24, +19,21,19,22,22,19,17,19,18,17,19,18,18,18,19,17,18,19,18,18,19,18,18,19,17,18, +19,18,18,19,18,113,19,20,22,20,20,20,19,25,25,25,22,27,26,10,21,6,8,8,24,25,23, +5,27,24,9,24,25,25,25,24,24,24,18,19,18,20,21,24,23,23,23,23,23,23,23,23,23,23, +24,24,24,23,23,23,23,23,23,23,23,23,23,23,22,21,21,24,21,19,19,19,19,25,25,25, +22,27,27,11,21,7,8,8,8,8,9,4,10,7,10,24,25,25,25,24,24,8,19,19,17,21,22,24,25, +25,25,25,24,24,24,24,24,24,24,23,23,23,23,24,23,23,22,22,23,23,23,24,22,21,21, +21,21,21,19,19,6,25,25,25,22,27,27,11,20,8,12,11,11,12,11,4,11,7,9,24,25,25,25, +24,24,8,19,21,21,19,20,20,19,20,20,21,21,21,21,21,20,21,20,20,20,21,21,20,20,20, +20,20,20,20,20,20,19,18,2,19,18,20,21,20,19,25,25,25,5,27,26,28,21,6,7,7,7,7,8, +4,27,7,26,22,25,25,25,24,24,25,19,20,20,18,20,20,21,22,22,22,22,22,23,23,23,23, +23,23,23,24,24,23,23,23,23,22,22,22,21,21,21,19,17,19,18,20,21,20,19,25,25,25,4, +10,26,27,21,7,12,10,12,12,8,4,26,24,26,19,25,25,25,24,24,24,21,19,19,17,22,20, +22,23,24,24,24,24,24,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,23,23,22,21, +17,19,17,19,21,19,20,25,25,25,5,27,26,28,5,6,12,10,11,12,25,21,25,25,27,21,25, +25,25,24,24,8,19,20,21,19,20,20,21,22,22,22,22,22,23,22,22,21,21,21,22,22,22,23, +23,23,23,22,22,22,22,22,21,20,17,19,18,20,21,20,19,25,25,25,4,25,26,28,5,7,9,9, +9,9,23,22,27,26,27,21,25,25,25,24,24,8,19,21,21,19,20,20,22,22,22,22,22,22,23, +22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21,20,17,19,19,21,21,20,19, +25,25,25,4,25,5,27,22,6,22,22,22,22,22,21,27,27,27,21,25,25,25,24,24,8,21,19,19, +18,22,19,20,23,23,24,24,24,23,23,24,24,23,24,24,24,24,24,24,24,25,24,24,24,24, +24,23,22,17,19,18,19,21,20,20,25,25,25,4,27,8,28,23,23,23,24,24,24,24,6,26,27,9, +21,25,25,25,24,24,24,19,20,21,18,20,19,22,23,24,24,24,23,24,24,24,23,24,24,24, +24,24,25,24,25,24,24,24,24,24,23,23,21,17,19,18,20,21,20,18,25,25,25,21,27,8,28, +26,26,26,24,26,25,23,25,26,26,26,21,25,25,25,24,24,24,19,21,21,19,20,19,20,22, +22,22,22,22,22,23,22,23,22,22,22,23,23,24,23,23,23,23,23,22,22,21,21,20,17,19, +19,21,21,20,19,25,25,25,21,26,6,27,25,25,26,23,26,25,23,25,26,8,26,21,25,25,25, +24,24,24,18,19,20,18,22,19,21,22,22,22,22,21,22,22,22,22,22,22,23,23,23,23,23, +23,23,23,22,22,22,22,21,20,17,19,18,20,22,20,21,8,25,25,5,25,5,27,24,26,26,23, +25,25,23,26,25,25,26,21,25,25,25,24,24,24,18,20,21,19,20,19,21,23,23,23,23,23, +23,23,23,24,24,25,25,25,25,25,25,25,25,24,24,24,24,23,22,21,17,19,18,20,21,20, +19,8,25,25,25,25,26,26,26,25,26,24,25,25,25,25,25,26,26,8,25,25,25,24,24,24,19, +21,21,19,20,21,23,24,24,24,24,24,24,24,25,25,24,24,25,25,25,24,24,25,24,24,24, +24,24,23,22,21,17,20,19,21,21,20,19,19,20,19,2,18,8,20,20,19,18,18,20,20,19,19, +21,21,21,19,19,19,22,24,24,24,18,19,20,17,22,20,19,23,23,23,23,23,23,23,24,23, +24,23,22,22,22,22,23,23,23,22,22,23,22,23,22,21,17,20,17,19,20,19,19,23,10,25,4, +11,24,21,24,23,4,25,24,21,25,23,25,25,24,23,24,22,23,24,24,24,18,20,20,18,19,20, +22,22,22,22,22,22,22,22,22,22,23,24,23,22,22,22,22,22,22,22,22,22,22,22,21,20, +17,19,18,19,20,19,19,24,10,27,4,26,25,23,24,24,6,26,25,22,25,24,7,7,4,24,24,22, +24,24,24,24,19,21,21,19,20,21,22,23,23,23,23,23,23,23,23,23,23,23,24,23,22,22, +22,22,22,22,23,23,23,23,22,21,17,19,19,21,21,20,19,25,24,27,5,27,26,25,26,9,25, +11,10,24,27,26,25,25,25,8,25,22,8,24,24,24,18,19,20,18,19,21,19,22,23,24,24,24, +23,23,23,23,22,22,22,22,22,21,21,21,21,21,22,21,22,22,21,20,17,19,18,18,20,19, +19,26,10,26,5,27,27,24,26,10,24,7,6,25,27,10,26,26,25,25,25,21,25,24,24,24,18, +20,18,18,19,21,19,20,21,21,21,21,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, +20,20,20,20,18,1,19,18,19,20,19,19,24,22,25,5,10,27,25,27,10,10,11,11,25,27,27, +9,10,25,25,25,5,25,24,24,24,19,21,19,20,21,25,25,25,24,24,24,24,24,25,25,25,25, +25,25,25,25,25,25,25,25,24,25,25,25,25,23,22,22,23,20,19,21,20,19,24,5,26,5,27, +26,26,11,11,11,12,12,26,11,10,10,10,9,25,25,22,25,24,24,24,18,20,18,20,22,23,23, +23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21,21,21,20,20, +22,21,19,20,19,19,25,5,26,24,27,26,26,11,28,11,12,12,26,11,11,27,26,26,5,24,22, +25,24,24,24,18,20,18,20,20,19,18,19,18,17,18,18,18,18,18,18,18,19,18,18,19,18, +18,19,18,18,19,18,18,19,18,17,18,19,21,19,19,19,20,26,5,27,25,26,26,8,11,27,12, +12,12,27,12,28,27,27,26,26,25,24,25,24,24,24,19,21,19,20,20,19,19,20,20,19,20, +21,19,20,21,20,20,21,20,20,21,20,20,21,20,20,21,20,20,21,21,19,19,19,21,19,21, +20,19,26,4,27,23,26,26,26,10,10,12,12,11,27,28,27,27,28,27,26,25,25,25,24,24,24, +18,20,19,18,19,18,20,21,20,20,21,21,19,20,21,20,21,21,20,20,21,19,20,21,20,21, +21,20,21,21,20,20,20,18,18,18,20,19,19,25,21,26,23,24,7,26,10,25,11,11,28,26,25, +24,27,27,26,26,25,25,25,24,24,24,18,20,19,20,20,20,20,21,20,20,21,21,19,20,21, +19,20,21,20,20,21,19,20,21,20,21,21,21,21,21,21,20,21,20,20,20,20,20,21,25,22, +26,23,8,25,26,10,26,10,11,28,26,27,26,26,27,25,26,24,24,25,24,24,24,19,20,19,19, +19,19,19,20,19,18,19,19,18,19,19,18,19,19,18,19,19,18,18,19,18,18,19,18,18,19, +18,18,19,18,19,19,19,19,19,25,25,25,24,26,25,23,25,25,27,28,27,25,26,25,8,27,24, +25,24,24,25,24,24,8,19,18,19,19,19,19,20,20,19,18,19,19,18,19,19,18,19,19,18,19, +20,18,19,20,18,19,20,20,41,21,20,24,21,20,20,20,20,20,21,25,25,26,25,26,26,8,26, +24,26,26,26,25,26,24,24,26,24,25,23,24,25,24,24,24,24,24,24,24,24,26,26,26,27, +27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,27, +27,24,25,25,25,25,25,25,25,25,25,25,25,26,25,25,25,8,25,25,26,26,26,25,25,25,24, +24,24,24,24,24,24,24,26,26,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, +28,28,28,28,28,28,28,28,28,28,28,28,27,23,4,20,21,20,22,22,21,20,21,21,21,21,21, +22,23,23,22,23,23,23,21,21,22,24,24,24,24,24,24,24,26,26,26,28,28,28,28,28,27, +27,27,27,27,26,27,27,27,27,28,28,28,28,28,27,27,25,26,26,27,27,28,28,28,23,3,23, +22,23,23,21,24,22,23,24,22,23,23,22,24,24,24,24,10,26,21,23,22,24,24,24,24,24, +24,24,26,26,26,28,24,24,24,24,24,24,23,23,24,24,24,24,24,23,24,23,25,24,25,24, +24,23,23,24,24,24,24,24,23,24,23,25,23,24,25,22,25,22,22,23,21,22,21,21,22,23, +24,23,24,25,21,24,23,24,24,24,24,24,24,24,26,26,26,28,23,24,23,24,23,23,23,23, +23,23,24,23,23,22,23,22,24,23,23,23,23,21,21,23,23,23,23,23,23,24,24,25,25,26, +26,25,23,22,23,24,7,7,23,23,22,5,25,25,7,26,9,24,24,24,24,24,24,24,24,26,26,26, +27,28,23,23,23,22,22,24,23,23,23,23,23,23,23,23,23,23,23,24,22,23,23,23,23,23, +23,23,23,24,24,43,26,24,26,26,26,8,21,24,8,25,25,25,24,24,25,6,23,26,7,27,25,23, +8,24,24,24,24,24,26,26,26,26,28,28,23,22,24,22,23,24,24,23,24,24,24,24,24,25,24, +24,24,24,23,24,23,24,23,23,23,23,23,23,23,28,26,24,25,7,24,26,21,24,10,20,19,21, +20,20,26,23,22,26,25,28,24,22,26,24,24,24,24,26,26,26,26,26,28,28,23,23,24,24, +25,24,24,25,25,26,26,25,25,24,25,24,25,24,24,24,24,25,24,24,24,21,22,23,23,27, +26,23,25,28,28,25,20,24,26,19,22,23,22,20,26,24,21,26,24,11,22,23,26,24,24,24, +24,26,26,26,26,26,28,27,24,24,24,25,25,25,25,26,26,26,27,25,27,24,27,25,27,25, +24,24,24,24,25,25,24,22,21,24,24,28,26,23,25,11,28,26,20,24,26,19,21,24,21,21, +26,25,21,27,26,11,7,22,26,24,24,24,26,26,26,26,26,26,28,27,22,23,23,23,23,22,24, +25,25,25,25,24,23,22,23,23,24,23,22,22,22,22,22,22,24,22,20,21,21,25,25,22,25, +11,28,26,20,24,8,20,22,26,7,21,25,24,21,27,27,10,24,4,25,24,24,26,26,26,26,26, +26,26,28,27,25,23,25,25,26,24,24,25,22,24,26,26,25,24,23,26,24,25,23,25,24,24, +24,24,24,24,23,23,23,28,25,21,25,27,11,9,21,22,24,21,24,9,8,22,25,22,23,27,10,9, +24,21,25,24,25,26,26,26,26,26,26,27,28,27,23,22,23,23,23,24,25,24,25,24,24,24, +23,22,22,24,22,23,22,22,23,22,23,23,23,22,22,22,22,28,25,4,24,25,11,26,22,21,24, +22,24,24,23,22,25,21,24,25,5,7,24,24,25,24,26,26,26,26,26,26,26,28,28,28,24,24, +24,24,24,25,25,20,27,24,25,24,25,24,25,24,25,25,25,25,25,25,25,25,24,25,24,25, +24,28,25,19,23,24,11,8,23,20,24,22,24,24,23,22,23,20,25,23,9,25,24,24,25,26,26, +26,26,26,26,27,28,28,28,28,24,24,23,23,23,23,21,24,21,23,23,22,24,22,24,23,24, +24,24,24,24,24,24,24,23,23,23,24,21,28,24,20,25,24,11,7,24,20,23,22,22,22,21,22, +23,4,25,22,26,24,25,24,25,26,26,26,26,26,28,28,28,28,28,27,24,23,22,23,23,23,23, +23,23,23,23,23,23,23,23,23,22,23,23,23,23,24,24,23,24,24,24,24,24,27,25,23,25, +24,27,24,25,2,23,24,24,24,24,23,23,4,25,22,25,25,24,24,25,26,26,26,28,28,28,28, +28,28,28,27,23,24,23,23,23,23,23,23,23,24,24,23,23,23,23,23,23,23,23,23,24,23, +23,23,23,24,24,24,23,27,28,25,25,23,24,24,26,20,24,24,24,24,24,24,24,21,25,23, +25,25,25,25,25,24,24,26,26,25,26,25,8,26,28,22,24,24,24,24,24,24,22,24,23,23,23, +23,23,23,24,23,23,23,24,24,24,24,24,24,24,25,25,25,26,22,26,27,8,8,8,25,26,25, +24,24,24,24,24,24,24,25,24,24,24,25,27,25,25,25,25,25,8,8,8,8,28,22,22,20,24,23, +24,24,24,23,23,21,22,23,23,23,23,23,23,24,22,24,22,23,23,23,23,23,23,23,23,23, +24,19,21,22,28,26,8,8,8,8,8,8,8,8,24,8,9,9,9,9,8,24,22,24,8,8,8,9,9,24,27,27,22, +20,22,21,22,22,22,22,21,20,20,21,20,21,21,22,21,22,22,22,22,22,20,21,22,21,0,21, +20,22,22,22,22,19,22,19,22,23,27,8,24,24,8,8,8,8,23,8,9,10,10,10,25,23,21,22,8, +24,24,8,27,28,22,22,22,24,24,22,23,23,23,24,21,159,20,23,23,23,23,24,23,24,24, +23,24,23,23,21,24,23,25,23,23,23,23,23,23,20,23,23,21,20,22,27,28,8,24,24,24,24, +22,8,9,10,11,10,9,23,20,21,23,26,26,28,23,22,20,23,22,25,24,22,23,24,23,23,23, +20,22,23,23,23,23,24,24,24,24,24,24,24,21,21,23,22,22,22,23,23,23,23,23,19,24, +25,23,23,20,22,22,27,28,26,24,24,22,8,9,11,11,10,25,22,20,21,23,28,28,22,20,23, +25,23,26,26,21,22,24,22,24,23,23,23,22,22,23,23,23,24,24,25,24,24,24,24,24,25, +22,24,18,24,24,24,22,22,24,20,21,26,27,23,25,23,19,22,26,28,28,24,22,8,9,11,11, +11,9,23,21,21,23,22,22,23,25,24,23,27,27,25,24,22,23,23,23,23,23,24,24,24,24,24, +24,25,26,25,26,25,25,26,25,24,24,23,24,23,23,23,22,22,23,20,24,26,27,26,24,23, +25,21,20,22,28,28,22,8,9,11,12,11,9,24,21,21,23,22,22,21,22,24,26,26,26,25,25, +21,22,22,22,21,22,24,23,24,23,23,24,24,25,25,24,23,26,25,26,24,25,24,25,24,24, +23,23,23,23,20,25,26,24,26,26,23,20,21,22,23,28,28,23,8,9,10,11,10,9,7,21,150, +23,21,23,23,22,21,23,24,26,25,22,21,23,23,22,22,24,24,24,24,24,24,25,25,26,26, +25,23,26,26,26,25,26,24,24,24,24,23,23,23,23,22,22,25,26,25,23,21,23,24,23,22, +28,27,23,8,9,9,10,10,25,23,21,21,23,27,25,22,24,24,23,20,21,25,26,23,22,21,22, +22,22,22,22,22,23,23,23,24,23,24,22,24,22,24,23,24,23,23,23,23,23,23,23,23,22, +21,26,24,21,20,23,24,24,22,28,27,26,25,7,8,9,10,11,10,9,23,21,21,23,26,28,28,23, +22,23,24,21,23,24,22,23,23,23,23,24,24,25,24,24,24,24,23,23,24,24,24,22,24,24, +24,24,24,23,23,23,23,23,23,24,19,22,22,22,24,23,22,23,28,28,26,7,1,6,8,9,10,11, +10,9,24,21,21,23,25,27,28,28,28,21,22,24,23,21,21,22,22,21,22,21,22,22,22,22,22, +22,22,22,22,22,22,21,20,23,22,22,22,23,22,22,22,22,22,22,19,21,23,24,22,21,28, +28,28,27,25,2,1,6,8,9,9,10,10,9,24,21,150,23,26,27,27,28,28,28,22,22,25,24,21, +23,24,23,24,23,24,23,24,24,24,24,24,23,23,24,23,22,21,24,23,24,23,24,23,24,24, +23,23,23,21,24,24,22,26,28,28,28,27,27,26,25,22,7,8,9,9,10,9,25,22,21,21,23,25, +25,27,28,28,28,28,28,23,22,23,24,23,23,23,23,23,24,23,23,23,23,23,23,23,23,23, +21,21,23,24,24,23,23,24,24,23,23,23,24,23,22,22,28,28,28,28,28,27,25,25,24,24, +22,23,23,24,24,24,22,22,21,22,23 +}; // houseTexture + +#endif // guard diff --git a/programs/gbmeta/modelViewer.bin b/programs/gbmeta/modelViewer.bin new file mode 100755 index 0000000..316d54b Binary files /dev/null and b/programs/gbmeta/modelViewer.bin differ diff --git a/programs/gbmeta/modelViewer.hpp b/programs/gbmeta/modelViewer.hpp new file mode 100644 index 0000000..adbda26 --- /dev/null +++ b/programs/gbmeta/modelViewer.hpp @@ -0,0 +1,201 @@ +/* + Gamebuino META example demo for small3dlib -- model viewer. + + author: Miloslav Ciz + license: CC0 1.0 +*/ + +#include + +/* Before including small3dlib, we need to define some values for it, such as + the resolution, the name of the pixel drawing function etc.: */ + +#define S3L_PIXEL_FUNCTION pixelFunc + +#define S3L_RESOLUTION_X 80 +#define S3L_RESOLUTION_Y 64 + +#define S3L_Z_BUFFER 2 // this sets up a reduced precision z-buffer +#define S3L_SORT 0 // no sorting of triangles +#define S3L_STENCIL_BUFFER 0 // no stencil buffer +#define S3L_PERSPECTIVE_CORRECTION 0 /* perspective correction expensive and + dosn't improve quality significantly + with far away models, so turn it off, + but you can try setting it it 2 + (approximation) */ +#include "small3dlib.h" // now we can include the library + +// include the resources (converted using provided Python scripts): + +#include "palette.h" +#include "houseModel.h" +#include "houseTexture.h" +#include "chestModel.h" +#include "chestTexture.h" +#include "earthModel.h" +#include "earthTexture.h" +#include "gbmetaModel.h" +#include "gbmetaTexture.h" + +Gamebuino_Meta::Color paletteGB[256]; + +#define MIN_ZOOM (-6 * S3L_FRACTIONS_PER_UNIT) +#define MAX_ZOOM (-16 * S3L_FRACTIONS_PER_UNIT) + +#define TEXTURE_W 64 +#define TEXTURE_H 64 + +// helper global variabls and pointers: + +int16_t previousTriangle = -1; +S3L_Vec4 uv0, uv1, uv2; +const uint8_t *texture = houseTexture; +const S3L_Index *uvIndices = houseUVIndices; +const S3L_Unit *uvs = houseUVs; + +static inline unsigned short sampleTexure(int32_t u, int32_t v) +{ + int index = v * TEXTURE_W + u; + + return texture[index]; +} + +/* This function will be called by the library to render individual pixels -- + remember, this is the bottleneck, it should be as fast as possible! */ +void pixelFunc(S3L_PixelInfo *p) +{ + S3L_Unit u, v; // texturing coordinates + + if (p->triangleIndex != previousTriangle) + { + /* This is a per-triangle cache, it prevents computing per-triangle values + for each pixel. We only recompute these when the triangleID changes. */ + + S3L_getIndexedTriangleValues(p->triangleIndex,uvIndices,uvs,2,&uv0,&uv1,&uv2); + /* ^ This is a helper funtion that retrieves the 3 UV coordinates of the + triangle (one for each triangle vertex). */ + + previousTriangle = p->triangleIndex; + } + + u = S3L_interpolateBarycentric(uv0.x,uv1.x,uv2.x,p->barycentric); + v = S3L_interpolateBarycentric(uv0.y,uv1.y,uv2.y,p->barycentric); + + uint8_t c = sampleTexure(u >> 3,v >> 3); + /* ^ Shifting by 3 gets the value from 0 to 512 + (S3L_FRACTIONS_PER_UNIT) to 0 to 32 (texture resoltion). */ + + // now write the pixel: + + Gamebuino_Meta::Color col = paletteGB[c]; + gb.display.drawPixel(p->x,p->y,col); +} + +S3L_Scene scene; // our 3D scene, it will only hold one model at a time + +void draw() +{ + S3L_newFrame(); // needs to be done before rendering a new frame + S3L_drawScene(scene); // renders the 3D scene +} + +void setModel(uint8_t index) +{ + #define modelCase(n)\ + scene.models = &(n##Model);\ + texture = n##Texture;\ + uvIndices = n##UVIndices;\ + uvs = n##UVs; + + switch (index) + { + case 1: + modelCase(chest) + break; + + case 2: + modelCase(earth) + break; + + case 3: + modelCase(gbmeta) + break; + + default: + modelCase(house) + break; + } + + #undef modelCase +} + +uint8_t modelIndex = 0; + +void setup() +{ + gb.begin(); + gb.setFrameRate(50); + + for (uint16_t i = 0; i < 256; ++i) + { + uint8_t h,s,v,r,g,b; + + r = palette[i * 3]; + g = palette[i * 3 + 1]; + b = palette[i * 3 + 2]; + + paletteGB[i] = gb.createColor(r,g,b); + } + + houseModelInit(); + chestModelInit(); + earthModelInit(); + gbmetaModelInit(); + + S3L_initScene(&houseModel,1,&scene); + + setModel(0); + + scene.camera.transform.translation.z = -8 * S3L_FRACTIONS_PER_UNIT; + // ^ place the camera a little bit to the front so that the model is seen +} + +void loop() +{ + while(!gb.update()); + + S3L_Unit rotationStep = 16; + S3L_Unit zoomStep = 140; + + if (gb.buttons.timeHeld(BUTTON_A) > 0) + { + if (gb.buttons.timeHeld(BUTTON_DOWN) > 0) + scene.camera.transform.translation.z = + S3L_max(MAX_ZOOM,scene.camera.transform.translation.z - zoomStep); + else if (gb.buttons.timeHeld(BUTTON_UP) > 0) + scene.camera.transform.translation.z = + S3L_min(MIN_ZOOM,scene.camera.transform.translation.z + zoomStep); + } + else + { + if (gb.buttons.timeHeld(BUTTON_UP) > 0) + scene.models[0].transform.rotation.x += rotationStep; + else if (gb.buttons.timeHeld(BUTTON_DOWN) > 0) + scene.models[0].transform.rotation.x -= rotationStep; + + if (gb.buttons.timeHeld(BUTTON_RIGHT) > 0) + scene.models[0].transform.rotation.y += rotationStep; + else if (gb.buttons.timeHeld(BUTTON_LEFT) > 0) + scene.models[0].transform.rotation.y -= rotationStep; + } + + if (gb.buttons.timeHeld(BUTTON_B) == 1) + { + modelIndex = (modelIndex + 1) % 4; + setModel(modelIndex); + } + + gb.display.clear(); + + draw(); +} diff --git a/programs/gbmeta/palette.h b/programs/gbmeta/palette.h new file mode 100644 index 0000000..e33e0cc --- /dev/null +++ b/programs/gbmeta/palette.h @@ -0,0 +1,38 @@ +#ifndef PALETTE_H +#define PALETTE_H + +const uint8_t palette[768] = { +0,0,0,16,16,16,32,32,32,49,48,49,65,68,65,82,85,82,98,101,98,115,117,115,139, +137,139,156,153,156,172,170,172,189,186,189,205,206,205,222,222,222,238,238,238, +255,255,255,16,12,8,32,28,16,49,40,24,65,56,32,82,68,41,98,85,49,115,97,57,131, +113,65,148,125,74,164,141,82,180,153,90,197,170,98,213,182,106,230,198,115,246, +210,123,255,222,131,8,16,8,24,32,16,32,48,24,49,64,32,57,80,41,74,97,49,82,113, +57,98,129,65,106,145,74,123,161,82,131,178,90,148,194,98,156,210,106,172,226, +115,180,242,123,197,255,131,8,16,8,16,32,16,24,48,24,32,64,41,41,80,49,49,97,57, +57,113,65,65,129,82,74,145,90,82,161,98,90,178,106,98,194,123,106,210,131,115, +226,139,123,242,148,131,255,164,8,16,16,16,32,32,24,48,49,32,64,65,41,80,82,49, +97,98,57,113,115,65,129,131,74,145,148,82,161,164,90,178,180,98,194,197,106,210, +213,115,226,230,123,242,246,131,255,255,8,8,16,16,20,32,24,28,49,32,40,65,41,48, +82,49,60,98,57,68,115,65,80,131,74,89,148,82,101,164,90,109,180,98,121,197,106, +129,213,115,141,230,123,149,246,131,161,255,8,8,16,24,16,32,32,24,49,49,32,65, +57,40,82,74,48,98,82,56,115,98,64,131,115,72,148,123,80,164,139,89,180,148,97, +197,164,105,213,172,113,230,189,121,246,197,129,255,16,8,8,32,16,24,49,24,41,65, +32,49,82,40,65,98,48,82,115,56,90,131,64,106,148,72,123,164,80,131,180,89,148, +197,97,164,213,105,172,230,113,189,246,121,205,255,129,213,16,0,0,32,0,0,49,0,0, +65,0,0,82,0,0,98,0,0,115,0,0,131,0,0,148,0,0,164,0,0,180,0,0,197,0,0,213,0,0, +230,0,0,246,0,0,255,0,0,16,12,0,32,24,0,49,36,0,65,48,0,82,60,0,98,72,0,115,85, +0,131,97,0,148,109,0,164,121,0,180,133,0,197,145,0,213,157,0,230,170,0,246,182, +0,255,190,0,8,16,0,16,32,0,24,48,0,32,64,0,41,80,0,49,97,0,57,113,0,65,129,0,74, +145,0,82,161,0,90,178,0,98,194,0,106,210,0,115,226,0,123,242,0,131,255,0,0,16,0, +0,32,8,0,48,8,0,64,16,0,80,16,0,97,24,0,113,24,0,129,32,0,145,32,0,161,41,0,178, +41,0,194,49,0,210,49,0,226,57,0,242,57,0,255,65,0,16,16,0,32,32,0,48,49,0,64,65, +0,80,82,0,97,98,0,113,115,0,129,131,0,145,148,0,161,164,0,178,180,0,194,197,0, +210,213,0,226,230,0,242,246,0,255,255,0,4,16,0,8,32,0,12,49,0,16,65,0,20,82,0, +24,98,0,28,115,0,32,131,0,36,148,0,40,164,0,44,180,0,48,197,0,52,213,0,56,230,0, +60,246,0,64,255,8,0,16,16,0,32,24,0,49,32,0,65,41,0,82,49,0,98,57,0,115,74,0, +131,82,0,148,90,0,164,98,0,180,106,0,197,115,0,213,123,0,230,131,0,246,148,0, +255,16,0,8,32,0,16,49,0,32,65,0,41,82,0,49,98,0,65,115,0,74,131,0,90,148,0,98, +164,0,106,180,0,123,197,0,131,213,0,139,230,0,156,246,0,164,255,0,172 +}; // level1Palette + +#endif