From 94a1f49df4ee1d25e7b10a0f5582f7a67f76c250 Mon Sep 17 00:00:00 2001 From: Heath123 Date: Tue, 28 Jun 2022 22:40:19 +0100 Subject: [PATCH] Cleanup, background graphics etc. --- .vscode/settings.json | 4 +- Makefile | 4 +- assets/img/bg.png | Bin 0 -> 12962 bytes build/main.d | 12 +- build/main.o | Bin 98748 -> 238876 bytes data-headers/generated_lut.h | 13 + data-headers/images.h | 1 + {data => data-headers}/kartsprites.h | 0 {data => data-headers}/track.h | 0 data/generated_lut.h | 398 --------------------------- fxcg-mock/include/fxcg/keyboard.c | 3 + scripts/img2header.py | 46 ++++ src/3d.c | 68 +++++ src/{graphics.h => 3d.h} | 0 src/graphics.c | 158 ----------- src/main.c | 62 +---- src/main.h | 4 + src/sprites.c | 52 ++++ src/sprites.h | 3 + src/tilemap.c | 8 +- unselected.png | Bin 0 -> 2908 bytes 21 files changed, 220 insertions(+), 616 deletions(-) create mode 100644 assets/img/bg.png create mode 100644 data-headers/generated_lut.h create mode 100644 data-headers/images.h rename {data => data-headers}/kartsprites.h (100%) rename {data => data-headers}/track.h (100%) delete mode 100644 data/generated_lut.h create mode 100644 scripts/img2header.py create mode 100644 src/3d.c rename src/{graphics.h => 3d.h} (100%) delete mode 100644 src/graphics.c create mode 100644 src/sprites.c create mode 100644 src/sprites.h create mode 100644 unselected.png diff --git a/.vscode/settings.json b/.vscode/settings.json index a618d45..ce62f1a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,8 @@ "generated_lut.cpp": "c", "track.cpp": "c", "kartsprites.h": "c", - "track.h": "c" + "track.h": "c", + "3d.h": "c", + "display.h": "c" } } \ No newline at end of file diff --git a/Makefile b/Makefile index 166d0a8..883a5f7 100644 --- a/Makefile +++ b/Makefile @@ -104,7 +104,7 @@ export OUTPUT := $(CURDIR)/$(TARGET) .PHONY: all clean #--------------------------------------------------------------------------------- -all: $(BUILD) +all: $(BUILD) data-headers/*.h @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile # Don't know what I'm doing here @@ -112,7 +112,7 @@ generated_lut.cpp: /home/heath/ti-mario-kart-py/compress.py lookup_gen_config.ya /usr/bin/env /bin/python3.10 /home/heath/ti-mario-kart-py/compress.py > generated_lut.cpp # Still not really sure what I'm doing here -html/index.html: src/*.c +html/index.html: src/*.c data-headers/*.h emcc -D FXCG_MOCK -D EMSCRIPTEN -Ifxcg-mock/include -g src/*.c ./fxcg-mock/include/fxcg/*.c -o html/index.html browser: html/index.html diff --git a/assets/img/bg.png b/assets/img/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..a8bc76a3352e29484f1ac26db028c3a300e368a9 GIT binary patch literal 12962 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

ml-ZGUQ!J<8~lL}czHzw8K8O7Ms^xC-u#(B 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%0D%PKSnL#T-X`UipyDvE};^!w8-f{C1r80}! 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 3); + if (rgb == 0x4fe0): + rgb = 0x4fe1 + if a < 128: + rgb = 0x4fe0 + outData.append(rgb) + out = f"const unsigned short img_{os.path.basename(path).split('.')[0]}[{len(outData)}] = {{" + for i in outData: + out += f"0x{i:04x}, " + out = out[:-2] + "};" + return out + +all = "" +# Loop over the PNG files in ../assets/img/ (relative to the script) +os.chdir(os.path.dirname(os.path.realpath(__file__))) +for file in os.listdir("../assets/img/"): + if file.endswith(".png"): + result = toHeader("../assets/img/" + file) + print("Converted " + file) + all += result + "\n" + else: + print("Skipping " + file) +# Write the header to a file. +with open("../data-headers/images.h", "w") as f: + f.write(all) diff --git a/src/3d.c b/src/3d.c new file mode 100644 index 0000000..f69eccc --- /dev/null +++ b/src/3d.c @@ -0,0 +1,68 @@ +#include "./main.h" +#include "./tilemap.h" + +#include "../data-headers/generated_lut.h" + +// const short lut[91] = { +// 0, 572, 1144, 1715, 2286, 2856, 3425, 3993, 4560, 5126, 5690, 6252, 6813, 7371, 7927, 8481, 9032, 9580, 10126, 10668, 11207, 11743, 12275, 12803, 13328, 13848, 14364, 14876, 15383, 15886, 16383, 16876, 17364, 17846, 18323, 18794, 19260, 19720, 20173, 20621, 21062, 21497, 21925, 22347, 22762, 23170, 23571, 23964, 24351, 24730, 25101, 25465, 25821, 26169, 26509, 26841, 27165, 27481, 27788, 28087, 28377, 28659, 28932, 29196, 29451, 29697, 29934, 30162, 30381, 30591, 30791, 30982, 31163, 31335, 31498, 31650, 31794, 31927, 32051, 32165, 32269, 32364, 32448, 32523, 32587, 32642, 32687, 32722, 32747, 32762, 32767 +// }; + +const short lut[angleWidth] = { + 0, 269, 539, 808, 1078, 1347, 1616, 1885, 2154, 2423, 2692, 2960, 3228, 3497, 3764, 4032, 4299, 4566, 4833, 5099, 5365, 5631, 5896, 6161, 6426, 6690, 6953, 7216, 7479, 7741, 8003, 8264, 8524, 8784, 9043, 9302, 9560, 9818, 10074, 10330, 10586, 10840, 11094, 11348, 11600, 11852, 12102, 12352, 12602, 12850, 13097, 13344, 13590, 13834, 14078, 14321, 14563, 14804, 15044, 15283, 15520, 15757, 15993, 16228, 16461, 16694, 16925, 17155, 17384, 17612, 17839, 18064, 18288, 18511, 18733, 18953, 19173, 19391, 19607, 19822, 20036, 20249, 20460, 20670, 20878, 21085, 21291, 21495, 21697, 21899, 22098, 22297, 22493, 22689, 22882, 23074, 23265, 23454, 23641, 23827, 24011, 24194, 24375, 24554, 24732, 24907, 25082, 25254, 25425, 25594, 25762, 25927, 26091, 26253, 26414, 26572, 26729, 26884, 27037, 27188, 27338, 27486, 27631, 27775, 27917, 28057, 28196, 28332, 28466, 28599, 28730, 28858, 28985, 29109, 29232, 29353, 29472, 29589, 29703, 29816, 29927, 30036, 30142, 30247, 30350, 30450, 30549, 30645, 30739, 30832, 30922, 31010, 31096, 31180, 31262, 31341, 31419, 31494, 31568, 31639, 31708, 31775, 31839, 31902, 31963, 32021, 32077, 32131, 32183, 32232, 32280, 32325, 32368, 32409, 32447, 32484, 32518, 32550, 32580, 32608, 32633, 32656, 32677, 32696, 32713, 32727, 32739, 32749, 32757, 32763, 32766, 32767 +}; + +short fpsin(short x) { + x = x % ((angleWidth - 1) * 4); + if (x < 0) { + x += ((angleWidth - 1) * 4); + } + short sign = 1; + if (x < ((angleWidth - 1) * 2)) { + sign = 1; + } else { + sign = -1; + } + x = x % ((angleWidth - 1) * 2); + if (x > (angleWidth - 1)) { + x = ((angleWidth - 1) * 2) - x; + } + return lut[x] * sign; +} + +/* +const short lut[angleWidth * 4] = { + 0, 269, 539, 808, 1078, 1347, 1616, 1885, 2154, 2423, 2692, 2960, 3228, 3497, 3764, 4032, 4299, 4566, 4833, 5099, 5365, 5631, 5896, 6161, 6426, 6690, 6953, 7216, 7479, 7741, 8003, 8264, 8524, 8784, 9043, 9302, 9560, 9818, 10074, 10330, 10586, 10840, 11094, 11348, 11600, 11852, 12102, 12352, 12602, 12850, 13097, 13344, 13590, 13834, 14078, 14321, 14563, 14804, 15044, 15283, 15520, 15757, 15993, 16228, 16461, 16694, 16925, 17155, 17384, 17612, 17839, 18064, 18288, 18511, 18733, 18953, 19173, 19391, 19607, 19822, 20036, 20249, 20460, 20670, 20878, 21085, 21291, 21495, 21697, 21899, 22098, 22297, 22493, 22689, 22882, 23074, 23265, 23454, 23641, 23827, 24011, 24194, 24375, 24554, 24732, 24907, 25082, 25254, 25425, 25594, 25762, 25927, 26091, 26253, 26414, 26572, 26729, 26884, 27037, 27188, 27338, 27486, 27631, 27775, 27917, 28057, 28196, 28332, 28466, 28599, 28730, 28858, 28985, 29109, 29232, 29353, 29472, 29589, 29703, 29816, 29927, 30036, 30142, 30247, 30350, 30450, 30549, 30645, 30739, 30832, 30922, 31010, 31096, 31180, 31262, 31341, 31419, 31494, 31568, 31639, 31708, 31775, 31839, 31902, 31963, 32021, 32077, 32131, 32183, 32232, 32280, 32325, 32368, 32409, 32447, 32484, 32518, 32550, 32580, 32608, 32633, 32656, 32677, 32696, 32713, 32727, 32739, 32749, 32757, 32763, 32766, 32767, 32766, 32763, 32757, 32749, 32739, 32727, 32713, 32696, 32677, 32656, 32633, 32608, 32580, 32550, 32518, 32484, 32447, 32409, 32368, 32325, 32280, 32232, 32183, 32131, 32077, 32021, 31963, 31902, 31839, 31775, 31708, 31639, 31568, 31494, 31419, 31341, 31262, 31180, 31096, 31010, 30922, 30832, 30739, 30645, 30549, 30450, 30350, 30247, 30142, 30036, 29927, 29816, 29703, 29589, 29472, 29353, 29232, 29109, 28985, 28858, 28730, 28599, 28466, 28332, 28196, 28057, 27917, 27775, 27631, 27486, 27338, 27188, 27037, 26884, 26729, 26572, 26414, 26253, 26091, 25927, 25762, 25594, 25425, 25254, 25082, 24907, 24732, 24554, 24375, 24194, 24011, 23827, 23641, 23454, 23265, 23074, 22882, 22689, 22493, 22297, 22098, 21899, 21697, 21495, 21291, 21085, 20878, 20670, 20460, 20249, 20036, 19822, 19607, 19391, 19173, 18953, 18733, 18511, 18288, 18064, 17839, 17612, 17384, 17155, 16925, 16694, 16461, 16228, 15993, 15757, 15520, 15283, 15044, 14804, 14563, 14321, 14078, 13834, 13590, 13344, 13097, 12850, 12602, 12352, 12102, 11852, 11600, 11348, 11094, 10840, 10586, 10330, 10074, 9818, 9560, 9302, 9043, 8784, 8524, 8264, 8003, 7741, 7479, 7216, 6953, 6690, 6426, 6161, 5896, 5631, 5365, 5099, 4833, 4566, 4299, 4032, 3764, 3497, 3228, 2960, 2692, 2423, 2154, 1885, 1616, 1347, 1078, 808, 539, 269, 0, -269, -539, -808, -1078, -1347, -1616, -1885, -2154, -2423, -2692, -2960, -3228, -3497, -3764, -4032, -4299, -4566, -4833, -5099, -5365, -5631, -5896, -6161, -6426, -6690, -6953, -7216, -7479, -7741, -8003, -8264, -8524, -8784, -9043, -9302, -9560, -9818, -10074, -10330, -10586, -10840, -11094, -11348, -11600, -11852, -12102, -12352, -12602, -12850, -13097, -13344, -13590, -13834, -14078, -14321, -14563, -14804, -15044, -15283, -15520, -15757, -15993, -16228, -16461, -16694, -16925, -17155, -17384, -17612, -17839, -18064, -18288, -18511, -18733, -18953, -19173, -19391, -19607, -19822, -20036, -20249, -20460, -20670, -20878, -21085, -21291, -21495, -21697, -21899, -22098, -22297, -22493, -22689, -22882, -23074, -23265, -23454, -23641, -23827, -24011, -24194, -24375, -24554, -24732, -24907, -25082, -25254, -25425, -25594, -25762, -25927, -26091, -26253, -26414, -26572, -26729, -26884, -27037, -27188, -27338, -27486, -27631, -27775, -27917, -28057, -28196, -28332, -28466, -28599, -28730, -28858, -28985, -29109, -29232, -29353, -29472, -29589, -29703, -29816, -29927, -30036, -30142, -30247, -30350, -30450, -30549, -30645, -30739, -30832, -30922, -31010, -31096, -31180, -31262, -31341, -31419, -31494, -31568, -31639, -31708, -31775, -31839, -31902, -31963, -32021, -32077, -32131, -32183, -32232, -32280, -32325, -32368, -32409, -32447, -32484, -32518, -32550, -32580, -32608, -32633, -32656, -32677, -32696, -32713, -32727, -32739, -32749, -32757, -32763, -32766, -32767, -32766, -32763, -32757, -32749, -32739, -32727, -32713, -32696, -32677, -32656, -32633, -32608, -32580, -32550, -32518, -32484, -32447, -32409, -32368, -32325, -32280, -32232, -32183, -32131, -32077, -32021, -31963, -31902, -31839, -31775, -31708, -31639, -31568, -31494, -31419, -31341, -31262, -31180, -31096, -31010, -30922, -30832, -30739, -30645, -30549, -30450, -30350, -30247, -30142, -30036, -29927, -29816, -29703, -29589, -29472, -29353, -29232, -29109, -28985, -28858, -28730, -28599, -28466, -28332, -28196, -28057, -27917, -27775, -27631, -27486, -27338, -27188, -27037, -26884, -26729, -26572, -26414, -26253, -26091, -25927, -25762, -25594, -25425, -25254, -25082, -24907, -24732, -24554, -24375, -24194, -24011, -23827, -23641, -23454, -23265, -23074, -22882, -22689, -22493, -22297, -22098, -21899, -21697, -21495, -21291, -21085, -20878, -20670, -20460, -20249, -20036, -19822, -19607, -19391, -19173, -18953, -18733, -18511, -18288, -18064, -17839, -17612, -17384, -17155, -16925, -16694, -16461, -16228, -15993, -15757, -15520, -15283, -15044, -14804, -14563, -14321, -14078, -13834, -13590, -13344, -13097, -12850, -12602, -12352, -12102, -11852, -11600, -11348, -11094, -10840, -10586, -10330, -10074, -9818, -9560, -9302, -9043, -8784, -8524, -8264, -8003, -7741, -7479, -7216, -6953, -6690, -6426, -6161, -5896, -5631, -5365, -5099, -4833, -4566, -4299, -4032, -3764, -3497, -3228, -2960, -2692, -2423, -2154, -1885, -1616, -1347, -1078, -808, -539, -269, 0 +}; + +short fpsin(short x) { + x = x % ((angleWidth - 1) * 4); + return lut[x]; +} +*/ + +short fpcos(short x) { + return fpsin(x + angleWidth); +} + +unsigned short getScreenPixel(unsigned short x, unsigned short y) { + // __builtin_expect(x == (int)(LUT_WIDTH / 2), 0); + // if (x < (int)(LUT_WIDTH / 2)) { + // y = distortion_correction[x][y - horizon]; + // } else if (x == (int)(LUT_WIDTH / 2)) { + // y = y - 1; + // } else { + // y = distortion_correction[(int)(LUT_WIDTH / 2) + ((int)(LUT_WIDTH / 2) - x)][y - horizon]; + // } + + int distance = newLut[y - horizon]; + + // Rotate by x + // Fixed point multiplication + x += angle; + short xPos = ((distance * fpsin(x)) >> 15); + short yPos = ((distance * fpcos(x)) >> 15); + + return samplePixel(xPos, yPos); +} + + diff --git a/src/graphics.h b/src/3d.h similarity index 100% rename from src/graphics.h rename to src/3d.h diff --git a/src/graphics.c b/src/graphics.c deleted file mode 100644 index ce684f3..0000000 --- a/src/graphics.c +++ /dev/null @@ -1,158 +0,0 @@ -#include "./main.h" -#include "./tilemap.h" - -#include "../data/generated_lut.h" - -// const short lut[91] = { -// 0, 572, 1144, 1715, 2286, 2856, 3425, 3993, 4560, 5126, 5690, 6252, 6813, 7371, 7927, 8481, 9032, 9580, 10126, 10668, 11207, 11743, 12275, 12803, 13328, 13848, 14364, 14876, 15383, 15886, 16383, 16876, 17364, 17846, 18323, 18794, 19260, 19720, 20173, 20621, 21062, 21497, 21925, 22347, 22762, 23170, 23571, 23964, 24351, 24730, 25101, 25465, 25821, 26169, 26509, 26841, 27165, 27481, 27788, 28087, 28377, 28659, 28932, 29196, 29451, 29697, 29934, 30162, 30381, 30591, 30791, 30982, 31163, 31335, 31498, 31650, 31794, 31927, 32051, 32165, 32269, 32364, 32448, 32523, 32587, 32642, 32687, 32722, 32747, 32762, 32767 -// }; - -const short lut[angleWidth] = { - 0, 269, 539, 808, 1078, 1347, 1616, 1885, 2154, 2423, 2692, 2960, 3228, 3497, 3764, 4032, 4299, 4566, 4833, 5099, 5365, 5631, 5896, 6161, 6426, 6690, 6953, 7216, 7479, 7741, 8003, 8264, 8524, 8784, 9043, 9302, 9560, 9818, 10074, 10330, 10586, 10840, 11094, 11348, 11600, 11852, 12102, 12352, 12602, 12850, 13097, 13344, 13590, 13834, 14078, 14321, 14563, 14804, 15044, 15283, 15520, 15757, 15993, 16228, 16461, 16694, 16925, 17155, 17384, 17612, 17839, 18064, 18288, 18511, 18733, 18953, 19173, 19391, 19607, 19822, 20036, 20249, 20460, 20670, 20878, 21085, 21291, 21495, 21697, 21899, 22098, 22297, 22493, 22689, 22882, 23074, 23265, 23454, 23641, 23827, 24011, 24194, 24375, 24554, 24732, 24907, 25082, 25254, 25425, 25594, 25762, 25927, 26091, 26253, 26414, 26572, 26729, 26884, 27037, 27188, 27338, 27486, 27631, 27775, 27917, 28057, 28196, 28332, 28466, 28599, 28730, 28858, 28985, 29109, 29232, 29353, 29472, 29589, 29703, 29816, 29927, 30036, 30142, 30247, 30350, 30450, 30549, 30645, 30739, 30832, 30922, 31010, 31096, 31180, 31262, 31341, 31419, 31494, 31568, 31639, 31708, 31775, 31839, 31902, 31963, 32021, 32077, 32131, 32183, 32232, 32280, 32325, 32368, 32409, 32447, 32484, 32518, 32550, 32580, 32608, 32633, 32656, 32677, 32696, 32713, 32727, 32739, 32749, 32757, 32763, 32766, 32767 -}; - -short fpsin(short x) { - x = x % ((angleWidth - 1) * 4); - if (x < 0) { - x += ((angleWidth - 1) * 4); - } - short sign = 1; - if (x < ((angleWidth - 1) * 2)) { - sign = 1; - } else { - sign = -1; - } - x = x % ((angleWidth - 1) * 2); - if (x > (angleWidth - 1)) { - x = ((angleWidth - 1) * 2) - x; - } - return lut[x] * sign; -} - -short fpcos(short x) { - return fpsin(x + angleWidth); -} - -unsigned short getScreenPixel(unsigned short x, unsigned short y) { - // Use trigonometry to get the position of the track (mode 7 style) - /* short xPos = (short)(cos(index) * x - sin(index) * y); - short yPos = (short)(sin(index) * x + cos(index) * y); - // Get the colour of the pixel in the track - return samplePixel(xPos, yPos); */ - - // Used to indicate framerate - /* if (x == 0 && y == 0) { - return angle == 0; - } */ - - // x /= WIDTH_DIVIDER; - - // Temporary for small screen sizes - /* if (y >= LUT_HEIGHT) return false; - if (x >= LUT_WIDTH) return false; */ - - // If both samples are 0 in the Python, the horizon colour is set but that doesn't seem to be needed - - // return x % 2 == y % 2 ? 0 : 0xFFFF; - - // unsigned short newY; - // __builtin_expect(x == (int)(LUT_WIDTH / 2), 0); - - // if (x < (int)(LUT_WIDTH / 2)) { - // y = distortion_correction[x][y - horizon]; - // } else if (x == (int)(LUT_WIDTH / 2)) { - // y = y - 1; - // } else { - // y = distortion_correction[(int)(LUT_WIDTH / 2) + ((int)(LUT_WIDTH / 2) - x)][y - horizon]; - // } - - int thingX; - int thingY; - if ((y - horizon) < sixteenBitHeight) { - thingX = angles16[0][y - horizon][0]; - thingY = angles16[0][y - horizon][1]; - } else { - thingX = angles8[0][y - horizon][0]; - thingY = angles8[0][y - horizon][1]; - } - // Rotate thingX and thingY by x - // short xPos = (short)(cos(x) * thingX - sin(x) * thingY); - // short yPos = (short)(sin(x) * thingX + cos(x) * thingY); - // Fixed point multiplication - x += angle; - short xPos = ((thingX * fpcos(x)) >> 16) + ((thingY * fpsin(x)) >> 16); - short yPos = ((thingY * fpcos(x)) >> 16) - ((thingX * fpsin(x)) >> 16); - - return samplePixel(xPos, yPos); - - // x = 0; - // index2 = 0; - // element = 0; - - // unsigned short newY; - // // __builtin_expect(x == (int)(LUT_WIDTH / 2), 0); - // if (x < (int)(LUT_WIDTH / 2)) { - // newY = distortion_correction[x][y - horizon]; - // } else if (x == (int)(LUT_WIDTH / 2)) { - // newY = y - 1; - // } else { - // newY = distortion_correction[(int)(LUT_WIDTH / 2) + ((int)(LUT_WIDTH / 2) - x)][y - horizon]; - // } - - // if ((y - horizon) < sixteenBitHeight) { - // // TODO: Remove again? Or remove the similar code in the loop - // /* short index = x + angle; - // index = mod(index, (angleWidth * 4)); - // unsigned short element = mod(index, angleWidth); */ - - // if (index2 < angleWidth) { - // return samplePixel( - // angles16[element % 16][newY - horizon][0], - // angles16[element % 16][newY - horizon][1]); - // } else if (index2 < angleWidth * 2) { - // // Return 90 degree rotated position - // return samplePixel( - // angles16[element % 16][newY - horizon][1], - // -angles16[element % 16][newY - horizon][0]); - // } else if (index2 < angleWidth * 3) { - // // Return 180 degree rotated position - // return samplePixel( - // -angles16[element % 16][newY - horizon][0], - // -angles16[element % 16][newY - horizon][1]); - // } else /*if (index < angleWidth * 4)*/ { - // // Return 270 degree rotated position - // return samplePixel( - // -angles16[element % 16][newY - horizon][1], - // angles16[element % 16][newY - horizon][0]); - // } - - // } else { - // // TODO: no duplicated code? - - // // TODO: Remove again? Or remove the similar code in the loop - // /* short index = x + angle; - // index = mod(index, (angleWidth * 4)); - // unsigned short element = mod(index, angleWidth); */ - - // if (index2 < angleWidth) { - // return samplePixel( - // angles8[element][newY - horizon - sixteenBitHeight][0], - // angles8[element][newY - horizon - sixteenBitHeight][1]); - // } else if (index2 < angleWidth * 2) { - // // Return 90 degree rotated position - // return samplePixel( - // angles8[element][newY - horizon - sixteenBitHeight][1], - // -angles8[element][newY - horizon - sixteenBitHeight][0]); - // } else if (index2 < angleWidth * 3) { - // // Return 180 degree rotated position - // return samplePixel( - // -angles8[element][newY - horizon - sixteenBitHeight][0], - // -angles8[element][newY - horizon - sixteenBitHeight][1]); - // } else /*if (index < angleWidth * 4)*/ { - // // Return 270 degree rotated position - // return samplePixel( - // -angles8[element][newY - horizon - sixteenBitHeight][1], - // angles8[element][newY - horizon - sixteenBitHeight][0]); - // } - // } -} diff --git a/src/main.c b/src/main.c index 8144b64..70f7adf 100644 --- a/src/main.c +++ b/src/main.c @@ -11,7 +11,9 @@ #endif #endif -#include "./graphics.h" +#include "./3d.h" +#include "./sprites.h" +#include "../data-headers/images.h" #define bool unsigned char #define true 1 @@ -45,7 +47,7 @@ float fmod(float a, float b) { return r < 0 ? r + b : r; } -#include "../data/kartsprites.h" +#include "../data-headers/kartsprites.h" // https://stackoverflow.com/a/3689059/4012708 // TODO: use the symmetry of the sine graph to make this smaller @@ -74,45 +76,6 @@ void setPixel(int x, int y, color_t color) { VRAM[y * LCD_WIDTH_PX + x] = color; } -// From https://www.cemetech.net/forum/viewtopic.php?t=6114&postdays=0&postorder=asc&start=100 -void CopySpriteMasked(const void* datar, int x, int y, int width, int height, int maskcolor) { - color_t* data = (color_t*)datar; - color_t* VRAM2 = (color_t*)VRAM; - VRAM2 += LCD_WIDTH_PX * y + x; - for (int j = y; j < y + height; j++) { - for (int i = x; i < x + width; i++) { - if (*(data) != maskcolor) { - *(VRAM2++) = *(data++); - } else { - VRAM2++; - data++; - } - } - VRAM2 += LCD_WIDTH_PX - width; - } -} - -// Version of the function above that draws the sprite flipped horizontally -void CopySpriteMaskedFlipped(const void* datar, int x, int y, int width, int height, int maskcolor) { - color_t* data = (color_t*)datar; - color_t* VRAM2 = (color_t*)VRAM; - VRAM2 += LCD_WIDTH_PX * y + x; - for (int j = y; j < y + height; j++) { - // Start at the end of the line and work backwards - data += width - 1; - for (int i = x; i < x + width; i++) { - if (*(data) != maskcolor) { - *(VRAM2++) = *(data--); - } else { - VRAM2++; - data--; - } - } - data += width + 1; - VRAM2 += LCD_WIDTH_PX - width; - } -} - // https://prizm.cemetech.net/index.php?title=PRGM_GetKey int PRGM_GetKey(void) { unsigned char buffer[12]; @@ -142,11 +105,12 @@ void cameraBehind(short x, short y, short objectAngle, short distance) { } void fillSky(unsigned short yMin, unsigned short yMax) { - for (unsigned short x = 0; x < LCD_WIDTH_PX; x++) { + /* for (unsigned short x = 0; x < LCD_WIDTH_PX; x++) { for (unsigned short y = yMin; y < yMax; y++) { setPixel(x, y, 0x867D); } - } + } */ + draw(img_bg, 0, 0); Bdisp_PutDisp_DD(); } @@ -196,7 +160,7 @@ float kartVel = 0; float kartAngle = 90; #define kartSpeed 2 -int labelType = 0; +int debugType = 0; bool exeWasPressed = false; // For framerate counter @@ -213,7 +177,7 @@ void main_loop() { if (currentTime - lastTime >= 128) { lastTime = currentTime; - if (labelType == 1) { + if (debugType == 1) { int x = 8; int y = 0; @@ -222,7 +186,7 @@ void main_loop() { PrintMiniMini(&x, &y, buffer, 0, COLOR_BLACK, 0); Bdisp_PutDisp_DD_stripe(24, 34); - } else if (labelType == 2) { + } else if (debugType == 2) { int x = 8; int y = 0; @@ -306,9 +270,9 @@ void main_loop() { bool exePressed = keydown(31); if (exePressed && !exeWasPressed) { - labelType++; - labelType = labelType % 3; - if (!labelType) { + debugType++; + debugType = debugType % 3; + if (!debugType) { // Put the sky back fillSky(24, 34); Bdisp_PutDisp_DD_stripe(24, 34); diff --git a/src/main.h b/src/main.h index 7e3f9f9..521f418 100644 --- a/src/main.h +++ b/src/main.h @@ -5,6 +5,10 @@ extern short yOffset; extern short index2; extern unsigned short element; +extern int debugType; + +extern unsigned short* VRAM; + int mod(int a, int b); float sin(int angle); float cos(int angle); diff --git a/src/sprites.c b/src/sprites.c new file mode 100644 index 0000000..af4cea3 --- /dev/null +++ b/src/sprites.c @@ -0,0 +1,52 @@ +#include + +#include "./main.h" + +// From https://www.cemetech.net/forum/viewtopic.php?t=6114&postdays=0&postorder=asc&start=100 +void CopySpriteMasked(const void* datar, int x, int y, int width, int height, int maskcolor) { + color_t* data = (color_t*)datar; + color_t* VRAM2 = (color_t*)VRAM; + VRAM2 += LCD_WIDTH_PX * y + x; + for (int j = y; j < y + height; j++) { + for (int i = x; i < x + width; i++) { + if (*(data) != maskcolor) { + *(VRAM2++) = *(data++); + } else { + VRAM2++; + data++; + } + } + VRAM2 += LCD_WIDTH_PX - width; + } +} + +// Version of the function above that draws the sprite flipped horizontally +void CopySpriteMaskedFlipped(const void* datar, int x, int y, int width, int height, int maskcolor) { + color_t* data = (color_t*)datar; + color_t* VRAM2 = (color_t*)VRAM; + VRAM2 += LCD_WIDTH_PX * y + x; + for (int j = y; j < y + height; j++) { + // Start at the end of the line and work backwards + data += width - 1; + for (int i = x; i < x + width; i++) { + if (*(data) != maskcolor) { + *(VRAM2++) = *(data--); + } else { + VRAM2++; + data--; + } + } + data += width + 1; + VRAM2 += LCD_WIDTH_PX - width; + } +} + +void draw(const unsigned short* data, int x, int y) { + // The height and width of the sprite are the first two elements in the data array + int width = data[0]; + int height = data[1]; + // The data array starts at index 2 + const unsigned short* data2 = data + 2; + // Now draw the sprite + CopySpriteMasked(data2, x, y, width, height, 0x4fe0); +} diff --git a/src/sprites.h b/src/sprites.h new file mode 100644 index 0000000..b6a81eb --- /dev/null +++ b/src/sprites.h @@ -0,0 +1,3 @@ +void CopySpriteMasked(const void* datar, int x, int y, int width, int height, int maskcolor); +void CopySpriteMaskedFlipped(const void* datar, int x, int y, int width, int height, int maskcolor); +void draw(const unsigned short* data, int x, int y); diff --git a/src/tilemap.c b/src/tilemap.c index 6cab5c1..aaec035 100644 --- a/src/tilemap.c +++ b/src/tilemap.c @@ -1,11 +1,11 @@ #include "./main.h" -#include "../data/track.h" +#include "../data-headers/track.h" #define precision 8 unsigned char getTileType(short xPos, short yPos) { - __builtin_expect(xPos < 0 || xPos >= trackImageWidth || yPos < 0 || yPos >= trackImageHeight, 0); + // __builtin_expect(xPos < 0 || xPos >= trackImageWidth || yPos < 0 || yPos >= trackImageHeight, 0); if (xPos < 0 || xPos >= trackImageWidth || yPos < 0 || yPos >= trackImageHeight) { return 0; // Grass } else { @@ -13,7 +13,7 @@ unsigned char getTileType(short xPos, short yPos) { int xPixel = xPos >> 3; int yPixel = yPos >> 3; - return trackData[((yPixel * (trackImageWidth / precision)) + xPixel) /*% 8192*/];// + return trackData[((yPixel * (trackImageWidth / precision)) + xPixel)]; } } @@ -30,5 +30,5 @@ unsigned short samplePixel(short xPos, short yPos) { int yPixelInTile = yPos & (precision - 1); // Get the colour of the pixel in the tile - return tileData[getTileType(xPos, yPos) /*% 64*/][(yPixelInTile * precision) + xPixelInTile /*% 64*/]; + return tileData[getTileType(xPos, yPos)][(yPixelInTile * precision) + xPixelInTile]; } diff --git a/unselected.png b/unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..b10d02d2320e7697ce6d88b6ab6662c8e664b40d GIT binary patch literal 2908 zcmbuB`8U)L7so&L!IXU&DU5xIv6W)2)xS+Y&`?VH_*Ffp=A z_K=~JuPE7-eR-VcUwF>B@AvDRd(QpwzV9Vim>FDR5nurT;F6Ic-0Fgk7t#UIUO0bF z{3ZafiWsTk%+{se|??g({wfRHg7}L4!#bN>5!w37uJ$L*_{5K zse3rMuuXwH7+QaP{u?+GS_d2Vjucw2UEr+aEPa0~zk*8~Y(Rx1qM&1CEAk%6+S+X z^<0o?bh+YO4UMlx9GMNtVdQABo*n>2qY2p(;YO#tdIBA^EXqk7-;{leC83;aB680D zJe0h;ta|#?byPsGXYALJSl6wOYg$-fcz>GT`|Yp?3V4$Dt8H)ZsrtOaY*JaJQXPj# z9w(1ZPBwRG?fc#j8v&>D1l#2q!>bIxb_Q_EGoHb&>e0KmyswB z5!_yeXczqRIa(ANAC2`30Mo$x_`MLQB=LlEFf1ZD0!*V#(Rhcw319?5w*9%(@np$>y5Q5wl$`sSBN8Lx797hzIqKnmmb0|P;Y1XyK2gX`z z_vBw}!-tPwJ!SAR5>-l$%E2djUokq#xMt#^3@@F=<7Wj^Y6WcGxNcQB;ip$Yb^|t3 z8R>}eD+3(`$_Pn)9>)4GZ{W}Ar{?F1{Qc4jSdb}xfQnB{b^X-p2II2D2^TPePl^unp)-qSK+J+GIMCdCCZ`3m(zUJDI!Xg5V@JDGy`C!q183>fX=g{< z0M8shjgT<4H`BB(eUBa_6|uvTuhkFOv&j;sa3s*JnGvl(i=KUB_tfR8SOsHuNTFKA z)fBU(!Z5Ugynu(`W#sucT|7I6Pw^)(reYc}FM3s59hlBtM`8UMeyL-zvbjnMl;ehr zG)Qi1dc8{2z0RIm5FDEi=miQ%9cJh(n%~8BCA>oP_;>+-*qk@0o5X*|7dnKHXgq=! zO-Py`9pboUv74J(2i@)D&}nBUA2FYgaiDGVlM^+9ixJbnar+DL?jPog;sqF4XwPms zHwI3>Im~upw^j{7-e6NM3ikGx2DgA}QaZj(-66ZhIuw^0)B{|!y>EPK=G6fKLC2rj zU2}tSX;W=#YKlpfS3+Z@f76LbdZhKp_?Fg=ELM+Iu20kcJeHPMN~Y17w3xJw`~<)K z3^SD`QX_KNn^`r%K%~>w3ksbGDS6RP<$zn4*dEBEi2tndWs?|V(W4e64`>Y&c-wGj zWgipZD4u`^b}x1%pRn-mi?f!Odl2%#!@wY_98(Kl-m$|T7oqz8?sg{<=>QZaTxZ|U zO4oi|XQjT(;NeRf)t9rcHyShCwryCl%DM^lO(|etdIh^ zWY?qX2(I5ZEOldQRM$lx3UH0GjKt2=9eJ{(^7#q)%f|?>sLob)UQf4nJBTQf_FS3L zM(tH!8>@Wnw{bg6oB5m|2W%epnl3aqV@aM4jbH3LmAbJpFp5cz1Y?UQB4*HDDK04| z8WQK*^6cNA#Z-6?d4yI?(2Xd13tcV29fpgewZnXN)tCc|uiBbQSk=3C85gTo=7NH*^!px%XG`3FmuMNn>@_^KTLadryZ={) zQ(C^tIy3On@`tWp8A8$m?jl}FR7#Kw}#vhKuyI_=uN{R zb>@t{zvw_B^w6~k>c&11nV5L>^2XjNJ1w1rX32#9YIoYXDwH$1E!JjVdg0hQ2RDf( zyc=6u(l8lX3CzrfxOfPS&ucxRHhVgVDtx918ofBu*+=ox`NYX=N=!xt{n6_ml|I+I ztrLV~?fu?o1ez?fFTH9mPZUm5)RP|IMEV^W`j}9Ie+oIC3*Q>x7J1GOg=8?b3a9b6 z1@#+a(n0?6t{kcLX9WoNeNQ1sXT|$gE1eyF#hHwc$Pwr1_y#pUc1W>AJC91+r%CS{ z6lN1i&B4lQK|1ydtILKyhFK~3%6#-W5D;0&w4pyu+Q+N!{w$Uc=akiuATg9*u50<3 z;Fu;Z_Mt}?sOV=9*eC6K87RqDQaKzmRjT8uq1FWEeN)t;rGvw3Y2X!WnD!sGkzN0;{eX09o@ZHL{sHc4z!^@D$DJzx