nova64 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +25 -8
  2. package/bin/nova64.js +165 -0
  3. package/dist/assets/console-CY_kygm3.js +14 -0
  4. package/dist/assets/console-CY_kygm3.js.map +1 -0
  5. package/dist/assets/main-l0sNRNKZ.js.map +1 -0
  6. package/dist/assets/sky/studio/nx.png +0 -0
  7. package/dist/assets/sky/studio/ny.png +0 -0
  8. package/dist/assets/sky/studio/nz.png +0 -0
  9. package/dist/assets/sky/studio/px.png +0 -0
  10. package/dist/assets/sky/studio/py.png +0 -0
  11. package/dist/assets/sky/studio/pz.png +0 -0
  12. package/dist/assets/vanilla-Dcuy32gi.js +2 -0
  13. package/dist/assets/vanilla-Dcuy32gi.js.map +1 -0
  14. package/dist/console.html +899 -0
  15. package/dist/docs/BENCHMARK.md +77 -0
  16. package/dist/docs/CHEATSHEET.md +255 -0
  17. package/dist/docs/EFFECTS_API_GUIDE.md +577 -0
  18. package/dist/docs/EFFECTS_QUICK_REFERENCE.md +331 -0
  19. package/dist/docs/FONT_CHARACTER_REFERENCE.md +219 -0
  20. package/dist/docs/FREE_GLB_ASSETS.md +330 -0
  21. package/dist/docs/FULLSCREEN_BUTTON_FEATURE.md +296 -0
  22. package/dist/docs/GAMEPAD_SUPPORT.md +348 -0
  23. package/dist/docs/GAME_IMPROVEMENTS.md +278 -0
  24. package/dist/docs/GAME_QUALITY_STATUS.md +300 -0
  25. package/dist/docs/MIGRATION_GUIDE.md +553 -0
  26. package/dist/docs/NOVA64_3D_API.md +356 -0
  27. package/dist/docs/NOVA64_API_REFERENCE.md +1406 -0
  28. package/dist/docs/NOVA64_UI_API.md +503 -0
  29. package/dist/docs/UI_SYSTEM_SUMMARY.md +445 -0
  30. package/dist/docs/VOXEL_ENGINE_GUIDE.md +662 -0
  31. package/dist/docs/VOXEL_QUICK_REFERENCE.md +386 -0
  32. package/dist/docs/api-3d.html +750 -0
  33. package/dist/docs/api-effects.html +385 -0
  34. package/dist/docs/api-improvements.md +121 -0
  35. package/dist/docs/api-skybox.html +407 -0
  36. package/dist/docs/api-sprites.html +321 -0
  37. package/dist/docs/api-voxel.html +337 -0
  38. package/dist/docs/api.html +543 -0
  39. package/dist/docs/assets.html +306 -0
  40. package/dist/docs/audio.html +340 -0
  41. package/dist/docs/blogs.html +286 -0
  42. package/dist/docs/collision.html +316 -0
  43. package/dist/docs/console.html +247 -0
  44. package/dist/docs/editor.html +297 -0
  45. package/dist/docs/font.html +247 -0
  46. package/dist/docs/framebuffer.html +247 -0
  47. package/dist/docs/fullscreen-button.html +297 -0
  48. package/dist/docs/gpu-systems.html +247 -0
  49. package/dist/docs/index.html +580 -0
  50. package/dist/docs/input.html +491 -0
  51. package/dist/docs/physics.html +311 -0
  52. package/dist/docs/screens.html +311 -0
  53. package/dist/docs/storage.html +311 -0
  54. package/dist/docs/textinput.html +332 -0
  55. package/dist/docs/ui.html +488 -0
  56. package/dist/examples/3d-advanced/code.js +695 -0
  57. package/dist/examples/adventure-comic-3d/code.js +342 -0
  58. package/dist/examples/audio-lab/code.js +150 -0
  59. package/dist/examples/boids-flocking/code.js +270 -0
  60. package/dist/examples/crystal-cathedral-3d/code.js +706 -0
  61. package/dist/examples/cyberpunk-city-3d/code.js +1383 -0
  62. package/dist/examples/demoscene/README.md +192 -0
  63. package/dist/examples/demoscene/code.js +1081 -0
  64. package/dist/examples/demoscene/meta.json +21 -0
  65. package/dist/examples/dungeon-crawler-3d/code.js +1117 -0
  66. package/dist/examples/f-zero-nova-3d/code.js +865 -0
  67. package/dist/examples/f-zero-nova-3d/code_old.js +1555 -0
  68. package/dist/examples/fps-demo-3d/code.js +744 -0
  69. package/dist/examples/game-of-life-3d/code.js +338 -0
  70. package/dist/examples/generative-art/code.js +632 -0
  71. package/dist/examples/hello-3d/code.js +325 -0
  72. package/dist/examples/hello-skybox/code.js +183 -0
  73. package/dist/examples/hello-world/code.js +19 -0
  74. package/dist/examples/input-showcase/code.js +109 -0
  75. package/dist/examples/instancing-demo/code.js +315 -0
  76. package/dist/examples/minecraft-demo/code.js +387 -0
  77. package/dist/examples/model-viewer-3d/code.js +114 -0
  78. package/dist/examples/mystical-realm-3d/code.js +1203 -0
  79. package/dist/examples/nature-explorer-3d/code.js +1318 -0
  80. package/dist/examples/particles-demo/code.js +522 -0
  81. package/dist/examples/pbr-showcase/code.js +140 -0
  82. package/dist/examples/physics-demo-3d/code.js +948 -0
  83. package/dist/examples/screen-demo/code.js +267 -0
  84. package/dist/examples/shooter-demo-3d/code.js +1286 -0
  85. package/dist/examples/space-combat-3d/IMPLEMENTATION_SUMMARY.md +109 -0
  86. package/dist/examples/space-combat-3d/README.md +135 -0
  87. package/dist/examples/space-combat-3d/code.js +1332 -0
  88. package/dist/examples/space-harrier-3d/code.js +923 -0
  89. package/dist/examples/star-fox-nova-3d/code.js +1116 -0
  90. package/dist/examples/star-fox-nova-3d/code_backup.js +410 -0
  91. package/dist/examples/star-fox-nova-3d/code_broken.js +1821 -0
  92. package/dist/examples/storage-quest/code.js +209 -0
  93. package/dist/examples/strider-demo-3d/IMPROVEMENT_OPTIONS.md +285 -0
  94. package/dist/examples/strider-demo-3d/cache-test.html +132 -0
  95. package/dist/examples/strider-demo-3d/code-fixed.js +582 -0
  96. package/dist/examples/strider-demo-3d/code-old.js +1537 -0
  97. package/dist/examples/strider-demo-3d/code.js +1462 -0
  98. package/dist/examples/strider-demo-3d/code.js.bak2 +1169 -0
  99. package/dist/examples/strider-demo-3d/fix-game.sh +53 -0
  100. package/dist/examples/super-plumber-64/README.md +128 -0
  101. package/dist/examples/super-plumber-64/code.js +1185 -0
  102. package/dist/examples/super-plumber-64/index.html +88 -0
  103. package/dist/examples/test-2d-overlay/code.js +32 -0
  104. package/dist/examples/test-font/code.js +51 -0
  105. package/dist/examples/test-minimal/code.js +21 -0
  106. package/dist/examples/ui-demo/code.js +306 -0
  107. package/dist/examples/wing-commander-space/README.md +180 -0
  108. package/dist/examples/wing-commander-space/code.js +1285 -0
  109. package/dist/examples/wizardry-3d/CHANGELOG.md +366 -0
  110. package/dist/examples/wizardry-3d/code.js +3928 -0
  111. package/dist/index.html +666 -0
  112. package/dist/os9-shell/assets/index-DIHfrTaW.css +1 -0
  113. package/dist/os9-shell/assets/index-KchE_ngx.js +483 -0
  114. package/dist/os9-shell/assets/index-KchE_ngx.js.map +1 -0
  115. package/dist/os9-shell/index.html +23 -0
  116. package/dist/os9-shell/nova-icon.svg +12 -0
  117. package/index.html +6 -1
  118. package/package.json +37 -32
  119. package/public/assets/sky/studio/nx.png +0 -0
  120. package/public/assets/sky/studio/ny.png +0 -0
  121. package/public/assets/sky/studio/nz.png +0 -0
  122. package/public/assets/sky/studio/px.png +0 -0
  123. package/public/assets/sky/studio/py.png +0 -0
  124. package/public/assets/sky/studio/pz.png +0 -0
  125. package/public/os9-shell/assets/index-KchE_ngx.js +483 -0
  126. package/public/os9-shell/assets/index-KchE_ngx.js.map +1 -0
  127. package/public/os9-shell/index.html +10 -1
  128. package/runtime/api-2d.js +301 -21
  129. package/runtime/api-3d/pbr.js +45 -1
  130. package/runtime/api-3d.js +1 -0
  131. package/runtime/api-effects.js +90 -3
  132. package/runtime/api-gameutils.js +476 -0
  133. package/runtime/api-generative.js +610 -0
  134. package/runtime/api-skybox.js +54 -0
  135. package/runtime/api-voxel.js +139 -28
  136. package/runtime/gpu-threejs.js +13 -9
  137. package/runtime/ui.js +2 -2
  138. package/src/main.js +20 -0
  139. package/public/os9-shell/assets/index-B1Uvacma.js +0 -32825
  140. package/public/os9-shell/assets/index-B1Uvacma.js.map +0 -1
@@ -0,0 +1,580 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Nova64 Runtime API Documentation</title>
7
+ <style>
8
+ :root {
9
+ --bg-primary: #0f1115;
10
+ --bg-secondary: #151822;
11
+ --bg-tertiary: #1a1d2e;
12
+ --text-primary: #dcdfe4;
13
+ --text-secondary: #99a1b3;
14
+ --accent-cyan: #00ffff;
15
+ --accent-magenta: #ff0080;
16
+ --accent-yellow: #ffff00;
17
+ --border: #2a324a;
18
+ --code-bg: #1a1d2e;
19
+ --link-hover: #33ffff;
20
+ }
21
+
22
+ * {
23
+ margin: 0;
24
+ padding: 0;
25
+ box-sizing: border-box;
26
+ }
27
+
28
+ body {
29
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
30
+ background: linear-gradient(135deg, var(--bg-primary) 0%, #1a1625 50%, var(--bg-primary) 100%);
31
+ background-attachment: fixed;
32
+ color: var(--text-primary);
33
+ line-height: 1.6;
34
+ }
35
+
36
+ .container {
37
+ max-width: 1400px;
38
+ margin: 0 auto;
39
+ padding: 20px;
40
+ }
41
+
42
+ header {
43
+ background: var(--bg-secondary);
44
+ border: 2px solid var(--accent-cyan);
45
+ border-radius: 12px;
46
+ padding: 40px;
47
+ margin-bottom: 40px;
48
+ text-align: center;
49
+ box-shadow: 0 0 30px rgba(0, 255, 255, 0.3);
50
+ }
51
+
52
+ h1 {
53
+ color: var(--accent-cyan);
54
+ font-size: 3em;
55
+ text-shadow: 0 0 20px rgba(0, 255, 255, 0.6);
56
+ margin-bottom: 10px;
57
+ }
58
+
59
+ .subtitle {
60
+ color: var(--text-secondary);
61
+ font-size: 1.2em;
62
+ }
63
+
64
+ .version {
65
+ display: inline-block;
66
+ background: var(--accent-magenta);
67
+ color: white;
68
+ padding: 5px 15px;
69
+ border-radius: 20px;
70
+ font-size: 0.9em;
71
+ margin-top: 15px;
72
+ }
73
+
74
+ .intro {
75
+ background: var(--bg-secondary);
76
+ border-left: 4px solid var(--accent-cyan);
77
+ padding: 25px;
78
+ margin-bottom: 40px;
79
+ border-radius: 8px;
80
+ }
81
+
82
+ .intro h2 {
83
+ color: var(--accent-cyan);
84
+ margin-bottom: 15px;
85
+ }
86
+
87
+ .api-grid {
88
+ display: grid;
89
+ grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
90
+ gap: 25px;
91
+ margin-bottom: 40px;
92
+ }
93
+
94
+ .api-card {
95
+ background: var(--bg-secondary);
96
+ border: 1px solid var(--border);
97
+ border-radius: 12px;
98
+ padding: 25px;
99
+ transition: all 0.3s ease;
100
+ position: relative;
101
+ overflow: hidden;
102
+ }
103
+
104
+ .api-card::before {
105
+ content: '';
106
+ position: absolute;
107
+ top: 0;
108
+ left: 0;
109
+ width: 100%;
110
+ height: 4px;
111
+ background: linear-gradient(90deg, var(--accent-cyan), var(--accent-magenta));
112
+ opacity: 0;
113
+ transition: opacity 0.3s ease;
114
+ }
115
+
116
+ .api-card:hover {
117
+ transform: translateY(-5px);
118
+ box-shadow: 0 10px 30px rgba(0, 255, 255, 0.2);
119
+ border-color: var(--accent-cyan);
120
+ }
121
+
122
+ .api-card:hover::before {
123
+ opacity: 1;
124
+ }
125
+
126
+ .api-card h3 {
127
+ color: var(--accent-cyan);
128
+ font-size: 1.4em;
129
+ margin-bottom: 10px;
130
+ }
131
+
132
+ .api-card .icon {
133
+ font-size: 2.5em;
134
+ margin-bottom: 10px;
135
+ }
136
+
137
+ .api-card .description {
138
+ color: var(--text-secondary);
139
+ margin-bottom: 15px;
140
+ min-height: 60px;
141
+ }
142
+
143
+ .api-card .features {
144
+ list-style: none;
145
+ margin-bottom: 20px;
146
+ }
147
+
148
+ .api-card .features li {
149
+ padding: 5px 0;
150
+ padding-left: 20px;
151
+ position: relative;
152
+ color: var(--text-secondary);
153
+ font-size: 0.9em;
154
+ }
155
+
156
+ .api-card .features li::before {
157
+ content: '▸';
158
+ position: absolute;
159
+ left: 0;
160
+ color: var(--accent-cyan);
161
+ }
162
+
163
+ .api-link {
164
+ display: inline-block;
165
+ background: var(--accent-cyan);
166
+ color: var(--bg-primary);
167
+ padding: 10px 20px;
168
+ border-radius: 6px;
169
+ text-decoration: none;
170
+ font-weight: bold;
171
+ transition: all 0.3s ease;
172
+ }
173
+
174
+ .api-link:hover {
175
+ background: var(--link-hover);
176
+ transform: scale(1.05);
177
+ box-shadow: 0 5px 15px rgba(0, 255, 255, 0.4);
178
+ }
179
+
180
+ .category-header {
181
+ color: var(--accent-magenta);
182
+ font-size: 2em;
183
+ margin: 40px 0 20px 0;
184
+ padding-bottom: 10px;
185
+ border-bottom: 2px solid var(--border);
186
+ text-shadow: 0 0 10px rgba(255, 0, 128, 0.5);
187
+ }
188
+
189
+ footer {
190
+ text-align: center;
191
+ padding: 40px 20px;
192
+ color: var(--text-secondary);
193
+ border-top: 1px solid var(--border);
194
+ margin-top: 60px;
195
+ }
196
+
197
+ footer a {
198
+ color: var(--accent-cyan);
199
+ text-decoration: none;
200
+ }
201
+
202
+ footer a:hover {
203
+ text-decoration: underline;
204
+ }
205
+
206
+ .quick-links {
207
+ background: var(--bg-tertiary);
208
+ border-radius: 8px;
209
+ padding: 20px;
210
+ margin-bottom: 30px;
211
+ }
212
+
213
+ .quick-links h3 {
214
+ color: var(--accent-yellow);
215
+ margin-bottom: 15px;
216
+ }
217
+
218
+ .quick-links ul {
219
+ list-style: none;
220
+ columns: 3;
221
+ column-gap: 20px;
222
+ }
223
+
224
+ .quick-links li {
225
+ padding: 8px 0;
226
+ }
227
+
228
+ .quick-links a {
229
+ color: var(--accent-cyan);
230
+ text-decoration: none;
231
+ transition: color 0.3s ease;
232
+ }
233
+
234
+ .quick-links a:hover {
235
+ color: var(--link-hover);
236
+ text-decoration: underline;
237
+ }
238
+
239
+ @media (max-width: 768px) {
240
+ .api-grid {
241
+ grid-template-columns: 1fr;
242
+ }
243
+
244
+ .quick-links ul {
245
+ columns: 1;
246
+ }
247
+
248
+ h1 {
249
+ font-size: 2em;
250
+ }
251
+ }
252
+ </style>
253
+ </head>
254
+ <body>
255
+ <div class="container">
256
+ <header>
257
+ <h1>🎮 Nova64 Runtime API</h1>
258
+ <p class="subtitle">Complete Documentation for the Nintendo 64 / PlayStation Style Fantasy Console</p>
259
+ <span class="version">v0.2.5</span>
260
+ </header>
261
+
262
+ <div class="intro">
263
+ <h2>📘 Welcome to Nova64 Documentation</h2>
264
+ <p>Nova64 is a JavaScript fantasy console inspired by classic 3D gaming consoles like the Nintendo 64 and PlayStation. This documentation covers all runtime APIs available for creating games and demos.</p>
265
+ <p style="margin-top: 15px;"><strong>Key Features:</strong> Full 3D acceleration with Three.js, retro-style graphics rendering, sprite system, physics engine, audio support, voxel engine, and much more!</p>
266
+ </div>
267
+
268
+ <div class="quick-links">
269
+ <h3>⚡ Quick Links</h3>
270
+ <ul>
271
+ <li><a href="api.html">2D Drawing API</a></li>
272
+ <li><a href="api-3d.html">3D Graphics API</a></li>
273
+ <li><a href="api-sprites.html">Sprite System</a></li>
274
+ <li><a href="api-skybox.html">Skybox API</a></li>
275
+ <li><a href="api-effects.html">Visual Effects</a></li>
276
+ <li><a href="api-voxel.html">Voxel Engine</a></li>
277
+ <li><a href="input.html">Input System</a></li>
278
+ <li><a href="audio.html">Audio System</a></li>
279
+ <li><a href="physics.html">Physics Engine</a></li>
280
+ <li><a href="collision.html">Collision Detection</a></li>
281
+ <li><a href="ui.html">UI System</a></li>
282
+ <li><a href="storage.html">Storage API</a></li>
283
+ </ul>
284
+ </div>
285
+
286
+ <h2 class="category-header">🎨 Graphics APIs</h2>
287
+ <div class="api-grid">
288
+ <div class="api-card">
289
+ <div class="icon">🎨</div>
290
+ <h3>2D Drawing API</h3>
291
+ <p class="description">Core 2D drawing functions for pixels, lines, rectangles, circles, and sprites.</p>
292
+ <ul class="features">
293
+ <li>Pixel-perfect drawing</li>
294
+ <li>Geometric shapes</li>
295
+ <li>Camera system</li>
296
+ <li>Color management (RGBA64)</li>
297
+ </ul>
298
+ <a href="api.html" class="api-link">View Documentation →</a>
299
+ </div>
300
+
301
+ <div class="api-card">
302
+ <div class="icon">🎮</div>
303
+ <h3>3D Graphics API</h3>
304
+ <p class="description">Complete 3D rendering system using Three.js for meshes, materials, lighting, and cameras.</p>
305
+ <ul class="features">
306
+ <li>7 primitive shapes (cube, sphere, cone, capsule…)</li>
307
+ <li>PBR materials with IBL reflections</li>
308
+ <li>Lighting: directional, ambient, point</li>
309
+ <li>GLB model loading</li>
310
+ </ul>
311
+ <a href="api-3d.html" class="api-link">View Documentation →</a>
312
+ </div>
313
+
314
+ <div class="api-card">
315
+ <div class="icon">👾</div>
316
+ <h3>Sprite System</h3>
317
+ <p class="description">Retro-style sprite rendering with animations, transformations, and sprite sheets.</p>
318
+ <ul class="features">
319
+ <li>8×8 sprite tiles</li>
320
+ <li>Animations and flipping</li>
321
+ <li>Sprite editor integration</li>
322
+ <li>Layering and sorting</li>
323
+ </ul>
324
+ <a href="api-sprites.html" class="api-link">View Documentation →</a>
325
+ </div>
326
+
327
+ <div class="api-card">
328
+ <div class="icon">🌌</div>
329
+ <h3>Skybox API</h3>
330
+ <p class="description">Space, gradient, solid-colour, and image-based cube-map skyboxes with animation control and IBL support for PBR materials.</p>
331
+ <ul class="features">
332
+ <li>Procedural star fields &amp; nebulae</li>
333
+ <li>Gradient &amp; solid-colour skyboxes</li>
334
+ <li>Image cube-maps with IBL</li>
335
+ <li>Speed control &amp; auto-animate</li>
336
+ </ul>
337
+ <a href="api-skybox.html" class="api-link">View Documentation →</a>
338
+ </div>
339
+
340
+ <div class="api-card">
341
+ <div class="icon">✨</div>
342
+ <h3>Visual Effects</h3>
343
+ <p class="description">Post-processing effects like bloom, chromatic aberration, and scanlines.</p>
344
+ <ul class="features">
345
+ <li>Bloom glow effects</li>
346
+ <li>Chromatic aberration</li>
347
+ <li>CRT scanlines</li>
348
+ <li>FXAA anti-aliasing</li>
349
+ </ul>
350
+ <a href="api-effects.html" class="api-link">View Documentation →</a>
351
+ </div>
352
+
353
+ <div class="api-card">
354
+ <div class="icon">🧱</div>
355
+ <h3>Voxel Engine</h3>
356
+ <p class="description">Minecraft-style voxel world with chunk management and block manipulation.</p>
357
+ <ul class="features">
358
+ <li>Chunk-based terrain</li>
359
+ <li>Block types and textures</li>
360
+ <li>Efficient meshing</li>
361
+ <li>World generation</li>
362
+ </ul>
363
+ <a href="api-voxel.html" class="api-link">View Documentation →</a>
364
+ </div>
365
+ </div>
366
+
367
+ <h2 class="category-header">🎯 Input & Interaction</h2>
368
+ <div class="api-grid">
369
+ <div class="api-card">
370
+ <div class="icon">🕹️</div>
371
+ <h3>Input System</h3>
372
+ <p class="description">Keyboard, mouse, and gamepad input handling with button states and axes.</p>
373
+ <ul class="features">
374
+ <li>Keyboard key detection</li>
375
+ <li>Mouse position and buttons</li>
376
+ <li>Gamepad support (analog sticks)</li>
377
+ <li>Button press/release states</li>
378
+ </ul>
379
+ <a href="input.html" class="api-link">View Documentation →</a>
380
+ </div>
381
+
382
+ <div class="api-card">
383
+ <div class="icon">🖼️</div>
384
+ <h3>UI System</h3>
385
+ <p class="description">User interface components like buttons, panels, and text rendering.</p>
386
+ <ul class="features">
387
+ <li>Buttons with callbacks</li>
388
+ <li>Panels and containers</li>
389
+ <li>Text with shadows/outlines</li>
390
+ <li>Layout management</li>
391
+ </ul>
392
+ <a href="ui.html" class="api-link">View Documentation →</a>
393
+ </div>
394
+ </div>
395
+
396
+ <h2 class="category-header">🔊 Audio & Physics</h2>
397
+ <div class="api-grid">
398
+ <div class="api-card">
399
+ <div class="icon">🔊</div>
400
+ <h3>Audio System</h3>
401
+ <p class="description">Sound effects and music playback with volume control and synthesis.</p>
402
+ <ul class="features">
403
+ <li>Sound effect playback</li>
404
+ <li>Music streaming</li>
405
+ <li>Volume control</li>
406
+ <li>Audio synthesis (SFXR)</li>
407
+ </ul>
408
+ <a href="audio.html" class="api-link">View Documentation →</a>
409
+ </div>
410
+
411
+ <div class="api-card">
412
+ <div class="icon">⚛️</div>
413
+ <h3>Physics Engine</h3>
414
+ <p class="description">Simple physics simulation with gravity, velocity, and forces.</p>
415
+ <ul class="features">
416
+ <li>Gravity simulation</li>
417
+ <li>Velocity and acceleration</li>
418
+ <li>Force application</li>
419
+ <li>Particle systems</li>
420
+ </ul>
421
+ <a href="physics.html" class="api-link">View Documentation →</a>
422
+ </div>
423
+
424
+ <div class="api-card">
425
+ <div class="icon">💥</div>
426
+ <h3>Collision Detection</h3>
427
+ <p class="description">AABB, circle, and tilemap collision detection utilities.</p>
428
+ <ul class="features">
429
+ <li>AABB box collisions</li>
430
+ <li>Circle collisions</li>
431
+ <li>Tilemap raycasting</li>
432
+ <li>Collision responses</li>
433
+ </ul>
434
+ <a href="collision.html" class="api-link">View Documentation →</a>
435
+ </div>
436
+ </div>
437
+
438
+ <h2 class="category-header">🛠️ Utilities & Systems</h2>
439
+ <div class="api-grid">
440
+ <div class="api-card">
441
+ <div class="icon">💾</div>
442
+ <h3>Storage API</h3>
443
+ <p class="description">LocalStorage wrapper for saving and loading game data.</p>
444
+ <ul class="features">
445
+ <li>Save/load game state</li>
446
+ <li>High scores</li>
447
+ <li>Settings persistence</li>
448
+ <li>JSON serialization</li>
449
+ </ul>
450
+ <a href="storage.html" class="api-link">View Documentation →</a>
451
+ </div>
452
+
453
+ <div class="api-card">
454
+ <div class="icon">📺</div>
455
+ <h3>Screen Manager</h3>
456
+ <p class="description">Multi-screen game state management (title, gameplay, game over).</p>
457
+ <ul class="features">
458
+ <li>Screen transitions</li>
459
+ <li>State management</li>
460
+ <li>Lifecycle callbacks</li>
461
+ <li>Screen stacking</li>
462
+ </ul>
463
+ <a href="screens.html" class="api-link">View Documentation →</a>
464
+ </div>
465
+
466
+ <div class="api-card">
467
+ <div class="icon">⌨️</div>
468
+ <h3>Text Input</h3>
469
+ <p class="description">Keyboard text input handling for game UI.</p>
470
+ <ul class="features">
471
+ <li>Text field input</li>
472
+ <li>Cursor management</li>
473
+ <li>Character filtering</li>
474
+ <li>Clipboard support</li>
475
+ </ul>
476
+ <a href="textinput.html" class="api-link">View Documentation →</a>
477
+ </div>
478
+
479
+ <div class="api-card">
480
+ <div class="icon">🖌️</div>
481
+ <h3>Sprite Editor</h3>
482
+ <p class="description">Built-in pixel art editor for creating and editing sprites.</p>
483
+ <ul class="features">
484
+ <li>8×8 pixel editor</li>
485
+ <li>Color palette</li>
486
+ <li>Drawing tools</li>
487
+ <li>Export/import</li>
488
+ </ul>
489
+ <a href="editor.html" class="api-link">View Documentation →</a>
490
+ </div>
491
+
492
+ <div class="api-card">
493
+ <div class="icon">🖥️</div>
494
+ <h3>Fullscreen Button</h3>
495
+ <p class="description">Universal fullscreen toggle button for all demos.</p>
496
+ <ul class="features">
497
+ <li>One-click fullscreen</li>
498
+ <li>ESC key support</li>
499
+ <li>Auto-positioning</li>
500
+ <li>Cross-browser support</li>
501
+ </ul>
502
+ <a href="fullscreen-button.html" class="api-link">View Documentation →</a>
503
+ </div>
504
+ </div>
505
+
506
+ <h2 class="category-header">🔧 Internal Systems</h2>
507
+ <div class="api-grid">
508
+ <div class="api-card">
509
+ <div class="icon">🎬</div>
510
+ <h3>Console System</h3>
511
+ <p class="description">Core runtime console for loading and managing game cartridges.</p>
512
+ <ul class="features">
513
+ <li>Cart loading</li>
514
+ <li>Scene management</li>
515
+ <li>Lifecycle hooks</li>
516
+ <li>Error handling</li>
517
+ </ul>
518
+ <a href="console.html" class="api-link">View Documentation →</a>
519
+ </div>
520
+
521
+ <div class="api-card">
522
+ <div class="icon">🖼️</div>
523
+ <h3>Framebuffer</h3>
524
+ <p class="description">Low-level pixel buffer for 2D rendering operations.</p>
525
+ <ul class="features">
526
+ <li>Direct pixel access</li>
527
+ <li>Buffer operations</li>
528
+ <li>Color blending</li>
529
+ <li>Memory management</li>
530
+ </ul>
531
+ <a href="framebuffer.html" class="api-link">View Documentation →</a>
532
+ </div>
533
+
534
+ <div class="api-card">
535
+ <div class="icon">🔤</div>
536
+ <h3>Font System</h3>
537
+ <p class="description">Bitmap font rendering for text display.</p>
538
+ <ul class="features">
539
+ <li>Bitmap font loading</li>
540
+ <li>Character rendering</li>
541
+ <li>Text measurement</li>
542
+ <li>Unicode support</li>
543
+ </ul>
544
+ <a href="font.html" class="api-link">View Documentation →</a>
545
+ </div>
546
+
547
+ <div class="api-card">
548
+ <div class="icon">📦</div>
549
+ <h3>Asset Loader</h3>
550
+ <p class="description">Loading and caching of images, sounds, and models.</p>
551
+ <ul class="features">
552
+ <li>Image loading</li>
553
+ <li>Sound loading</li>
554
+ <li>Model loading</li>
555
+ <li>Cache management</li>
556
+ </ul>
557
+ <a href="assets.html" class="api-link">View Documentation →</a>
558
+ </div>
559
+
560
+ <div class="api-card">
561
+ <div class="icon">🎨</div>
562
+ <h3>GPU Systems</h3>
563
+ <p class="description">Low-level rendering backends (Canvas2D, WebGL2, Three.js).</p>
564
+ <ul class="features">
565
+ <li>Canvas2D renderer</li>
566
+ <li>WebGL2 renderer</li>
567
+ <li>Three.js renderer</li>
568
+ <li>Abstraction layer</li>
569
+ </ul>
570
+ <a href="gpu-systems.html" class="api-link">View Documentation →</a>
571
+ </div>
572
+ </div>
573
+
574
+ <footer>
575
+ <p>Nova64 Fantasy Console © 2026 | <a href="https://github.com/seacloud9/nova64" target="_blank">GitHub Repository</a></p>
576
+ <p style="margin-top: 10px;">Built with ❤️ for retro gaming enthusiasts</p>
577
+ </footer>
578
+ </div>
579
+ </body>
580
+ </html>