|
10 | 10 | */ |
11 | 11 |
|
12 | 12 | #include "vga.h" |
| 13 | +#include "vga-modes.h" |
13 | 14 |
|
14 | 15 | #include "vrEmuTms9918Util.h" |
15 | 16 | #include "breakout.h" |
@@ -74,13 +75,15 @@ void animateSprites(uint64_t frameNumber) |
74 | 75 | for (int i = 0; i < 16; ++i) |
75 | 76 | { |
76 | 77 | float x = sin(frameNumber / 20.0f + i / 3.0f); |
77 | | - vrEmuTms9918SetAddressWrite(tms, TMS_DEFAULT_VRAM_SPRITE_ATTR_ADDRESS + (8 * i)); |
| 78 | + |
| 79 | + vrEmuTms9918SetAddressWrite(tms, TMS_DEFAULT_VRAM_SPRITE_ATTR_ADDRESS + (8 * i) + 4); |
78 | 80 | uint8_t yPos = (frameNumber / 2 + i * 10 + 24); |
79 | 81 | if (yPos == 0xd0) ++yPos; |
80 | 82 | vrEmuTms9918WriteData(tms, yPos); |
81 | 83 | vrEmuTms9918WriteData(tms, 128 - 8 + (x * 80.0f)); |
| 84 | + |
| 85 | + vrEmuTms9918SetAddressWrite(tms, TMS_DEFAULT_VRAM_SPRITE_ATTR_ADDRESS + (8 * i)); |
82 | 86 | if (yPos - 2 == 0xd0) ++yPos; |
83 | | - vrEmuTms9918SetAddressWrite(tms, TMS_DEFAULT_VRAM_SPRITE_ATTR_ADDRESS + (8 * i) + 4); |
84 | 87 | vrEmuTms9918WriteData(tms, yPos - 2); |
85 | 88 | vrEmuTms9918WriteData(tms, 128 - 8 + (x * 80.0f) - 2); |
86 | 89 | } |
@@ -114,18 +117,19 @@ int main(void) |
114 | 117 | const char* str = "Hello, World!"; |
115 | 118 | for (int i = 0; i < strlen(str); ++i) |
116 | 119 | { |
117 | | - vrEmuTms9918WriteData(tms, i * 10 + 24); |
118 | | - vrEmuTms9918WriteData(tms, i * 10); |
119 | | - vrEmuTms9918WriteData(tms, str[strlen(str) - (i + 1)]); |
120 | | - vrEmuTms9918WriteData(tms, 1); |
121 | | - |
122 | 120 | vrEmuTms9918WriteData(tms, i * 10 + 24 - 2); |
123 | 121 | vrEmuTms9918WriteData(tms, i * 10 - 2); |
124 | 122 | vrEmuTms9918WriteData(tms, str[strlen(str) - (i + 1)]); |
125 | 123 | vrEmuTms9918WriteData(tms, i + 2); |
| 124 | + |
| 125 | + vrEmuTms9918WriteData(tms, i * 10 + 24); |
| 126 | + vrEmuTms9918WriteData(tms, i * 10); |
| 127 | + vrEmuTms9918WriteData(tms, str[strlen(str) - (i + 1)]); |
| 128 | + vrEmuTms9918WriteData(tms, 1); |
126 | 129 | } |
127 | 130 |
|
128 | | - VgaInitParams params; |
| 131 | + VgaInitParams params = { 0 }; |
| 132 | + params.params = vgaGetParams(VGA_640_480_60HZ, 2); |
129 | 133 | params.scanlineFn = tmsScanline; |
130 | 134 | params.endOfFrameFn = animateSprites; |
131 | 135 |
|
|
0 commit comments