From b06af2cb4ab38c15a27b0e1cb53c9556027bcd5a Mon Sep 17 00:00:00 2001 From: John Bintz Date: Sun, 2 Jun 2024 14:37:37 -0400 Subject: [PATCH] buns can march --- NOTES.md | 4 +-- bun.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ bun.h | 38 ++++++++++++++++++-- bun_test | Bin 0 -> 17888 bytes bun_test.c | 30 ++++++++++++++++ main | Bin 10468 -> 15776 bytes main.c | 57 +++++------------------------- smakefile | 6 ++-- 8 files changed, 179 insertions(+), 57 deletions(-) create mode 100755 bun_test create mode 100644 bun_test.c diff --git a/NOTES.md b/NOTES.md index d22c3ea..bd2475e 100644 --- a/NOTES.md +++ b/NOTES.md @@ -1,3 +1 @@ -Left off at implementing asm routine for injecting point in -copperlist ram where bitplane pointers are going for -easy replacement for double buffering. +* [ ] Move bun calculation to separate file for CuTest and vamos diff --git a/bun.c b/bun.c index 8c6ccd9..2dd2bce 100644 --- a/bun.c +++ b/bun.c @@ -1,3 +1,5 @@ +#include + // Custom #include @@ -193,3 +195,102 @@ void renderBun( } } +short int allBunPositionsByFrame[FRAMES_FOR_SCREEN][BUN_COUNT][2]; + +void calculateAllBunPositions( + struct ScreenSetup *screenSetup +) { + int frame; + + for (frame = 0; frame < FRAMES_FOR_SCREEN; ++frame) { + calculateBunPositions( + frame, + allBunPositionsByFrame[frame], + screenSetup + ); + } +} + +#define MAX_SINE_WAVE_CHANGE (20) + +int bunAngleAdjustments[BUN_COUNT]; + +void buildBunAngleAdjustments() { + int row, column, current, angleAdjustment; + for (current = 0; current < BUN_COUNT; ++current) { + angleAdjustment = 0; + if (current % 2 == 1) angleAdjustment += 180; + if (current / 4 == 1) angleAdjustment += 90; + + bunAngleAdjustments[current] = angleAdjustment; + } +} + +void calculateBunPositions( + uint16_t frame, + short int bunPositions[BUN_COUNT][2], + struct ScreenSetup *screenSetup +) { + int x, y, row, column, current; + float angle, startAngle; + + frame %= FRAMES_FOR_SCREEN; + + startAngle = (float)(frame % BUN_WAVE_LENGTH) * 360 / BUN_WAVE_LENGTH; + + for (current = 0; current < BUN_COUNT; ++current) { + row = current / 4; + column = current % 4; + angle = startAngle + bunAngleAdjustments[current]; + + x = column * BUN_TOTAL_HORIZ_DISTANCE + ((float)frame * BUN_MAX_RANGE / FRAMES_FOR_SCREEN); + if (row == 1) { + x += BUN_TOTAL_HORIZ_DISTANCE / 2; + } + x %= BUN_MAX_RANGE; + x -= 31; + + angle = angle * PI / 180; + + y = BUN_ROW_START + + row * BUN_TOTAL_VERT_DISTANCE + + sin(angle) * MAX_SINE_WAVE_CHANGE; + + bunPositions[current][0] = x; + bunPositions[current][1] = y; + } +} + +void setupBunRenderer( + struct BunRenderer *bunRenderer, + struct ScreenSetup *screenSetup, + struct CurrentScreen *currentScreen) { + bunRenderer->screenSetup = screenSetup; + bunRenderer->currentScreen = currentScreen; + + setupBun(); + buildBunAngleAdjustments(); + calculateAllBunPositions(screenSetup); +} + +void renderBunFrame( + int frame, + struct BunRenderer *bunRenderer +) { + int bun; + + frame %= FRAMES_FOR_SCREEN; + + for (bun = 0; bun < BUN_COUNT; ++bun) { + renderBun( + allBunPositionsByFrame[frame][bun][0], + allBunPositionsByFrame[frame][bun][1], + bunRenderer->screenSetup, + bunRenderer->currentScreen + ); + } +} + +void teardownBunRenderer() { + teardownBun(); +} diff --git a/bun.h b/bun.h index a275440..8dfc3fe 100644 --- a/bun.h +++ b/bun.h @@ -13,13 +13,47 @@ #define COOL_BUN_PLANE_SIZE (COOL_BUN_WIDTH_BYTES * COOL_BUN_HEIGHT) #define COOL_BUN_MEMORY_SIZE (COOL_BUN_PLANE_SIZE * COOL_BUN_PLANES) -void setupBun(void); +#define BUN_MAX_RANGE (31 + 320) + +#define BUN_COUNT (12) +#define BUN_SPEED (1) + +#define BUN_HORIZ_DISTANCE_BETWEEN_BUNS ((BUN_MAX_RANGE / 4) - COOL_BUN_WIDTH) +#define BUN_TOTAL_HORIZ_DISTANCE (BUN_HORIZ_DISTANCE_BETWEEN_BUNS + COOL_BUN_WIDTH) +#define BUN_ROW_START (30) +#define BUN_VERT_DISTANCE_BETWEEN_BUNS (20) +#define BUN_TOTAL_VERT_DISTANCE (COOL_BUN_HEIGHT + BUN_VERT_DISTANCE_BETWEEN_BUNS) +#define FRAME_MAX (BUN_TOTAL_HORIZ_DISTANCE / BUN_SPEED) + +#define FRAMES_FOR_SCREEN (90) +#define BUN_WAVE_LENGTH (FRAMES_FOR_SCREEN / 2) + +struct BunRenderer { + struct ScreenSetup *screenSetup; + struct CurrentScreen *currentScreen; +}; + +void setupBunRenderer( + struct BunRenderer *, + struct ScreenSetup *, + struct CurrentScreen * +); + +void renderBunFrame( + int frame, + struct BunRenderer * +); + void renderBun( int x, int y, struct ScreenSetup *screenSetup, struct CurrentScreen *currentScreen ); -void teardownBun(void); +void calculateBunPositions( + uint16_t frame, + short int bunPositions[BUN_COUNT][2], + struct ScreenSetup *screenSetup +); #endif diff --git a/bun_test b/bun_test new file mode 100755 index 0000000000000000000000000000000000000000..0e58ab82a350c095ec46d72985ac63f7583eda73 GIT binary patch literal 17888 zcmc(GeRNaTmG8dS*Rl}82uE>UaNr<>V+$cE;1EK2i7bDh2uC(D5R*rfYp^9ggsljh zQWlR~*~T~x={TfxlD@o@H7l!+CM0#4w2Ly7n7q6^lF4)#%H%PbOrU8fB&CF5SQ&;m z`2F^|k_~BBU*BI(_PzJq^Rds~`|Ptn&N-JT@88J$Y1wBU(d6?)N*&&B!-f33PdG1p ze#Z@W*i8@o2iNp&C2a{(T78gT)zm4 za;iMnuUo|AftP8KYw{k$l0hq@qDt!@JfNOxT`s)pDT^WVg4%Z1Vp2$nzB;-nVkAf{ zst9UZ$4dK$(ZWUcc5;(*Qwhq}0Z!|l1KRegi<&Mn(O188>#8pZTsm>3ked_-wEk=h zjmtv^w0$W;KNO(ot2chd_*P$6UQOZc%hQ0_7`LQab)ruzHqx`&^O2W93(*d-kq(?V ze&V=m9XWpe_OIU-YMP3^Uh#l7Fr0bBP=nw=P+J{79}JGuP=7{MBSzesa{4Jj$|4a& zoo1mn8K*K+4iX{N4c>h|

E*lH-~XnMlV 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 + +#include "bun.h" +#include "cutest/CuTest.h" + +void *coolbun; + +void TBun_calculateBunPositions(CuTest *tc) { + printf("wow\n"); +} + +CuSuite *BunSuite() { + CuSuite *suite = CuSuiteNew(); + + SUITE_ADD_TEST(suite, TBun_calculateBunPositions); +} + +int main(void) { + CuString *output = CuStringNew(); + CuSuite *suite = CuSuiteNew(); + + CuSuiteAddSuite(suite, BunSuite()); + + CuSuiteRun(suite); + CuSuiteSummary(suite, output); + CuSuiteDetails(suite, output); + printf("%s\n", output->buffer); + + return 0; +} diff --git a/main b/main index 4cb5827291fcd3ff59b048dac712c7ee3e2f051e..9b3097557984c5de6e5f8197d50968e99678e484 100755 GIT binary patch delta 9335 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 MCYhw^FBR7OA84VI4FCWD delta 4137 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 G_5T4ZaFxOU diff --git a/main.c b/main.c index 667cf46..9dbfc8e 100644 --- a/main.c +++ b/main.c @@ -37,52 +37,16 @@ void *copperlistSpritePointers[8]; uint16_t custom_color = (uint16_t)offsetof(Custom, color); uint16_t custom_sprite = (uint16_t)offsetof(Custom, sprpt); -#define BUN_COUNT (12) -#define BUN_SPEED (2) - short int bunPositions[BUN_COUNT][2]; -#define BUN_MAX_RANGE (31 + 320 - 1) - -#define BUN_HORIZ_DISTANCE_BETWEEN_BUNS ((BUN_MAX_RANGE / 4) - COOL_BUN_WIDTH) -#define BUN_TOTAL_HORIZ_DISTANCE (BUN_HORIZ_DISTANCE_BETWEEN_BUNS + COOL_BUN_WIDTH) -#define BUN_ROW_START (10) -#define BUN_VERT_DISTANCE_BETWEEN_BUNS (20) -#define BUN_TOTAL_VERT_DISTANCE (COOL_BUN_HEIGHT + BUN_VERT_DISTANCE_BETWEEN_BUNS) -#define FRAME_MAX (BUN_TOTAL_HORIZ_DISTANCE / BUN_SPEED) - -void calculateBunPositions( - uint16_t frame, - short int bunPositions[BUN_COUNT][2], - struct ScreenSetup *screenSetup -) { - int x, y, row, column, current; - - frame %= FRAME_MAX; - - for (current = 0; current < BUN_COUNT; ++current) { - row = current / 4; - column = current % 4; - - x = column * BUN_TOTAL_HORIZ_DISTANCE + frame * BUN_SPEED; - if (row == 1) { - //x += BUN_TOTAL_HORIZ_DISTANCE / 2; - } - x %= BUN_MAX_RANGE; - x -= 31; - y = BUN_ROW_START + row * BUN_TOTAL_VERT_DISTANCE; - - bunPositions[current][0] = x; - bunPositions[current][1] = y; - } -} - int main(void) { uint16_t *copperlist, *currentCopperlist, result; int i, j, x, y, plane; int blitShiftRight, memoryXOffset, blitWidth; uint32_t wow, wow2; + struct BunRenderer bunRenderer; + color_t colors[8]; colors[0] = 0x09b8; @@ -90,10 +54,14 @@ int main(void) { colors[2] = 0x0fff; colors[3] = 0x000f; + printf("setting up, i haven't crashed...yet.\n"); + setupBun(); setupScreen(&screenSetup, SCREEN_WIDTH, SCREEN_HEIGHT, 3); setupInitialCurrentScreen(&screenSetup, ¤tScreen); + setupBunRenderer(&bunRenderer, &screenSetup, ¤tScreen); + // blitter copy the first bitplane row down to the second copperlist = prepareNewCopperlist(); @@ -138,9 +106,7 @@ int main(void) { endCopperlist(currentCopperlist); - for (i = 0; i < FRAME_MAX * 6; ++i) { - calculateBunPositions(i, bunPositions, &screenSetup); - + for (i = 0; i < 200; ++i) { swapCurrentScreenBuffer(&screenSetup, ¤tScreen); for (plane = 0; plane < 2; ++plane) { @@ -155,14 +121,7 @@ int main(void) { WaitBlit(); } - for (j = 0; j < BUN_COUNT; ++j) { - renderBun( - bunPositions[j][0], - bunPositions[j][1], - &screenSetup, - ¤tScreen - ); - } + renderBunFrame(i, &bunRenderer); updateDisplayInCopperList( &screenSetup, diff --git a/smakefile b/smakefile index 2d770f7..62587b1 100644 --- a/smakefile +++ b/smakefile @@ -12,8 +12,8 @@ system.lib: system/system.o system/copper.o system/blitter.o sc objectlibrary=system.lib system/system.o system/copper.o system/blitter.o main: $(MAIN_OBJS) - sc link to main $(MAIN_OBJS) + sc link to main math=standard $(MAIN_OBJS) -test: blitter_test.o blitter.o system.o - sc link to blitter_test identifierlength=32 math=standard blitter_test.o blitter.o cutest/CuTest.c system.o +test: bun_test.o bun.o + sc link to bun_test identifierlength=32 math=standard bun_test.o bun.o cutest/CuTest.c