romdevtools 0.13.0

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 (1346) hide show
  1. package/AGENTS.md +1110 -0
  2. package/CHANGELOG.md +525 -0
  3. package/LICENSE +45 -0
  4. package/NOTICE +102 -0
  5. package/README.md +84 -0
  6. package/examples/README.md +36 -0
  7. package/examples/art-first-workflow/README.md +209 -0
  8. package/examples/atari2600/main.asm +143 -0
  9. package/examples/atari2600/templates/default.asm +183 -0
  10. package/examples/atari2600/templates/mini_invaders.asm +381 -0
  11. package/examples/atari2600/templates/music_demo.asm +322 -0
  12. package/examples/atari2600/templates/paddle.asm +345 -0
  13. package/examples/atari2600/templates/single_screen.asm +242 -0
  14. package/examples/atari7800/main.c +88 -0
  15. package/examples/atari7800/templates/default.c +183 -0
  16. package/examples/atari7800/templates/hello_sprite.c +141 -0
  17. package/examples/atari7800/templates/music_demo.c +123 -0
  18. package/examples/atari7800/templates/platformer.c +159 -0
  19. package/examples/atari7800/templates/puzzle.c +164 -0
  20. package/examples/atari7800/templates/racing.c +139 -0
  21. package/examples/atari7800/templates/shmup.c +148 -0
  22. package/examples/atari7800/templates/sports.c +207 -0
  23. package/examples/c64/main.c +63 -0
  24. package/examples/c64/templates/hello_sprite.c +117 -0
  25. package/examples/c64/templates/music_demo.c +131 -0
  26. package/examples/c64/templates/platformer.c +194 -0
  27. package/examples/c64/templates/puzzle.c +178 -0
  28. package/examples/c64/templates/racing.c +140 -0
  29. package/examples/c64/templates/shmup.c +201 -0
  30. package/examples/c64/templates/sports.c +109 -0
  31. package/examples/c64/templates/tile_engine.c +174 -0
  32. package/examples/gb/main.asm +106 -0
  33. package/examples/gb/main.c +49 -0
  34. package/examples/gb/templates/default.c +58 -0
  35. package/examples/gb/templates/hello_sprite.c +130 -0
  36. package/examples/gb/templates/music_demo.c +52 -0
  37. package/examples/gb/templates/platformer.c +178 -0
  38. package/examples/gb/templates/puzzle.c +217 -0
  39. package/examples/gb/templates/racing.c +158 -0
  40. package/examples/gb/templates/shmup.c +172 -0
  41. package/examples/gb/templates/sports.c +136 -0
  42. package/examples/gb/templates/tile_engine.c +280 -0
  43. package/examples/gba/templates/gba_hello.c +64 -0
  44. package/examples/gba/templates/maxmod_demo.c +105 -0
  45. package/examples/gba/templates/platformer.c +215 -0
  46. package/examples/gba/templates/puzzle.c +237 -0
  47. package/examples/gba/templates/racing.c +175 -0
  48. package/examples/gba/templates/shmup.c +197 -0
  49. package/examples/gba/templates/sports.c +177 -0
  50. package/examples/gba/templates/tonc_hello.c +72 -0
  51. package/examples/gba/templates/tonc_hello_sprite.c +109 -0
  52. package/examples/gbc/main.asm +123 -0
  53. package/examples/gbc/templates/default.c +61 -0
  54. package/examples/gbc/templates/hello_sprite.c +140 -0
  55. package/examples/gbc/templates/music_demo.c +63 -0
  56. package/examples/gbc/templates/platformer.c +181 -0
  57. package/examples/gbc/templates/puzzle.c +217 -0
  58. package/examples/gbc/templates/racing.c +164 -0
  59. package/examples/gbc/templates/shmup.c +188 -0
  60. package/examples/gbc/templates/sports.c +142 -0
  61. package/examples/gbc/templates/tile_engine.c +280 -0
  62. package/examples/genesis/main.s +161 -0
  63. package/examples/genesis/templates/hello_sprite.c +75 -0
  64. package/examples/genesis/templates/platformer.c +166 -0
  65. package/examples/genesis/templates/puzzle.c +240 -0
  66. package/examples/genesis/templates/racing.c +170 -0
  67. package/examples/genesis/templates/sgdk_hello.c +41 -0
  68. package/examples/genesis/templates/shmup.c +188 -0
  69. package/examples/genesis/templates/shmup_2p.c +244 -0
  70. package/examples/genesis/templates/sports.c +172 -0
  71. package/examples/genesis/templates/tile_engine.c +135 -0
  72. package/examples/genesis/templates/xgm2_demo.c +53 -0
  73. package/examples/genesis/templates/xgm2_demo_data.s +27 -0
  74. package/examples/gg/main.c +10 -0
  75. package/examples/gg/templates/default.c +156 -0
  76. package/examples/gg/templates/hello_sprite.c +90 -0
  77. package/examples/gg/templates/music_demo.c +156 -0
  78. package/examples/gg/templates/platformer.c +220 -0
  79. package/examples/gg/templates/puzzle.c +204 -0
  80. package/examples/gg/templates/racing.c +161 -0
  81. package/examples/gg/templates/shmup.c +188 -0
  82. package/examples/gg/templates/sports.c +137 -0
  83. package/examples/gg/templates/tile_engine.c +137 -0
  84. package/examples/lynx/main.c +4 -0
  85. package/examples/lynx/templates/default.c +41 -0
  86. package/examples/lynx/templates/hello_sprite.c +39 -0
  87. package/examples/lynx/templates/music_demo.c +37 -0
  88. package/examples/lynx/templates/platformer.c +72 -0
  89. package/examples/lynx/templates/puzzle.c +142 -0
  90. package/examples/lynx/templates/racing.c +94 -0
  91. package/examples/lynx/templates/shmup.c +132 -0
  92. package/examples/lynx/templates/sports.c +59 -0
  93. package/examples/msx/catch_game/README.md +75 -0
  94. package/examples/msx/catch_game/_verify.mjs +93 -0
  95. package/examples/msx/catch_game/main.c +249 -0
  96. package/examples/msx/catch_game/shot_after_left.png +0 -0
  97. package/examples/msx/catch_game/shot_after_right.png +0 -0
  98. package/examples/msx/catch_game/shot_before.png +0 -0
  99. package/examples/msx/catch_game/shot_scored.png +0 -0
  100. package/examples/msx/music_sfx/README.md +38 -0
  101. package/examples/msx/music_sfx/main.c +164 -0
  102. package/examples/msx/sprite_move/README.md +44 -0
  103. package/examples/msx/sprite_move/main.c +100 -0
  104. package/examples/nes/main.c +143 -0
  105. package/examples/nes/space-shooter/README.md +69 -0
  106. package/examples/nes/space-shooter/main.c +441 -0
  107. package/examples/nes/space-shooter/nes_runtime.c +347 -0
  108. package/examples/nes/space-shooter/nes_runtime.h +141 -0
  109. package/examples/nes/templates/default.c +41 -0
  110. package/examples/nes/templates/hello_sprite.c +104 -0
  111. package/examples/nes/templates/music_demo.c +80 -0
  112. package/examples/nes/templates/platformer.c +171 -0
  113. package/examples/nes/templates/puzzle.c +232 -0
  114. package/examples/nes/templates/racing.c +203 -0
  115. package/examples/nes/templates/shmup.c +228 -0
  116. package/examples/nes/templates/sports.c +205 -0
  117. package/examples/nes/templates/tile_engine.c +224 -0
  118. package/examples/pce/catch_game/README.md +8 -0
  119. package/examples/pce/catch_game/_verify.mjs +75 -0
  120. package/examples/pce/catch_game/main.c +327 -0
  121. package/examples/pce/catch_game/shot_after.png +0 -0
  122. package/examples/pce/catch_game/shot_before.png +0 -0
  123. package/examples/pce/main.c +37 -0
  124. package/examples/pce/music_sfx/README.md +8 -0
  125. package/examples/pce/music_sfx/main.c +154 -0
  126. package/examples/pce/sprite_move/README.md +19 -0
  127. package/examples/pce/sprite_move/main.c +155 -0
  128. package/examples/porting-across-platforms/README.md +59 -0
  129. package/examples/sms/main.c +129 -0
  130. package/examples/sms/templates/default.c +110 -0
  131. package/examples/sms/templates/hello_sprite.c +90 -0
  132. package/examples/sms/templates/music_demo.c +151 -0
  133. package/examples/sms/templates/platformer.c +215 -0
  134. package/examples/sms/templates/puzzle.c +204 -0
  135. package/examples/sms/templates/racing.c +161 -0
  136. package/examples/sms/templates/shmup.c +167 -0
  137. package/examples/sms/templates/shmup_2p.c +219 -0
  138. package/examples/sms/templates/sports.c +147 -0
  139. package/examples/sms/templates/tile_engine.c +137 -0
  140. package/examples/snes/main.asm +70 -0
  141. package/examples/snes/templates/c-hello-data.asm +28 -0
  142. package/examples/snes/templates/c-hello.c +71 -0
  143. package/examples/snes/templates/default-data.asm +36 -0
  144. package/examples/snes/templates/default.c +74 -0
  145. package/examples/snes/templates/hello_sprite-data.asm +45 -0
  146. package/examples/snes/templates/hello_sprite.c +76 -0
  147. package/examples/snes/templates/music_demo-data.asm +20 -0
  148. package/examples/snes/templates/music_demo.c +83 -0
  149. package/examples/snes/templates/platformer-data.asm +27 -0
  150. package/examples/snes/templates/platformer.c +142 -0
  151. package/examples/snes/templates/puzzle-data.asm +14 -0
  152. package/examples/snes/templates/puzzle.c +199 -0
  153. package/examples/snes/templates/racing-data.asm +33 -0
  154. package/examples/snes/templates/racing.c +146 -0
  155. package/examples/snes/templates/shmup-data.asm +61 -0
  156. package/examples/snes/templates/shmup.c +199 -0
  157. package/examples/snes/templates/sports-data.asm +28 -0
  158. package/examples/snes/templates/sports.c +144 -0
  159. package/package.json +97 -0
  160. package/src/cheats/gamegenie.js +506 -0
  161. package/src/cheats/lookup.js +262 -0
  162. package/src/cheats/parse-cht.js +92 -0
  163. package/src/cli/smoke.js +283 -0
  164. package/src/cores/registry.js +99 -0
  165. package/src/cores/wasm/bluemsx_libretro.js +2 -0
  166. package/src/cores/wasm/bluemsx_libretro.wasm +0 -0
  167. package/src/cores/wasm/fceumm_libretro.js +2 -0
  168. package/src/cores/wasm/fceumm_libretro.wasm +0 -0
  169. package/src/cores/wasm/gambatte_libretro.js +2 -0
  170. package/src/cores/wasm/gambatte_libretro.wasm +0 -0
  171. package/src/cores/wasm/geargrafx_libretro.js +2 -0
  172. package/src/cores/wasm/geargrafx_libretro.wasm +0 -0
  173. package/src/cores/wasm/genesis_plus_gx_libretro.js +2 -0
  174. package/src/cores/wasm/genesis_plus_gx_libretro.wasm +0 -0
  175. package/src/cores/wasm/handy_libretro.js +2 -0
  176. package/src/cores/wasm/handy_libretro.wasm +0 -0
  177. package/src/cores/wasm/mgba_libretro.js +2 -0
  178. package/src/cores/wasm/mgba_libretro.wasm +0 -0
  179. package/src/cores/wasm/prosystem_libretro.js +2 -0
  180. package/src/cores/wasm/prosystem_libretro.wasm +0 -0
  181. package/src/cores/wasm/snes9x_libretro.js +2 -0
  182. package/src/cores/wasm/snes9x_libretro.wasm +0 -0
  183. package/src/cores/wasm/stella2014_libretro.js +2 -0
  184. package/src/cores/wasm/stella2014_libretro.wasm +0 -0
  185. package/src/cores/wasm/vice_x64_libretro.js +2 -0
  186. package/src/cores/wasm/vice_x64_libretro.wasm +0 -0
  187. package/src/host/LibretroHost.js +1469 -0
  188. package/src/host/c64-sid-state.js +161 -0
  189. package/src/host/callbacks.js +444 -0
  190. package/src/host/chafa-render.js +170 -0
  191. package/src/host/coreLoader.js +57 -0
  192. package/src/host/cpu-state.js +543 -0
  193. package/src/host/dsp-state.js +188 -0
  194. package/src/host/framebuffer.js +115 -0
  195. package/src/host/gb-apu-state.js +321 -0
  196. package/src/host/gba-video-state.js +215 -0
  197. package/src/host/gpgx-state.js +320 -0
  198. package/src/host/index.js +4 -0
  199. package/src/host/lynx-mikey-state.js +226 -0
  200. package/src/host/msx-ay-state.js +78 -0
  201. package/src/host/nes-apu-state.js +194 -0
  202. package/src/host/pce-psg-state.js +82 -0
  203. package/src/host/retroConstants.js +72 -0
  204. package/src/host/snes9x-state.js +35 -0
  205. package/src/host/types.js +332 -0
  206. package/src/http/routes.js +182 -0
  207. package/src/http/skill-doc.js +176 -0
  208. package/src/http/swagger.js +84 -0
  209. package/src/http/tool-registry.js +142 -0
  210. package/src/install/postinstall.mjs +81 -0
  211. package/src/mcp/disclosure.js +250 -0
  212. package/src/mcp/log.js +87 -0
  213. package/src/mcp/server.js +498 -0
  214. package/src/mcp/state.js +88 -0
  215. package/src/mcp/tool-manifest.js +92 -0
  216. package/src/mcp/tools/address-to-symbol.js +145 -0
  217. package/src/mcp/tools/art-loaders.js +743 -0
  218. package/src/mcp/tools/assets.js +87 -0
  219. package/src/mcp/tools/audio.js +562 -0
  220. package/src/mcp/tools/cart-parts.js +651 -0
  221. package/src/mcp/tools/cheats.js +343 -0
  222. package/src/mcp/tools/classify-region.js +107 -0
  223. package/src/mcp/tools/diff-cluster.js +32 -0
  224. package/src/mcp/tools/diff-roms.js +394 -0
  225. package/src/mcp/tools/disasm.js +1410 -0
  226. package/src/mcp/tools/find-references.js +375 -0
  227. package/src/mcp/tools/font-map.js +563 -0
  228. package/src/mcp/tools/frame.js +293 -0
  229. package/src/mcp/tools/free-space.js +71 -0
  230. package/src/mcp/tools/index.js +339 -0
  231. package/src/mcp/tools/input-layout.js +231 -0
  232. package/src/mcp/tools/input.js +227 -0
  233. package/src/mcp/tools/lifecycle.js +132 -0
  234. package/src/mcp/tools/lospec.js +187 -0
  235. package/src/mcp/tools/memory.js +472 -0
  236. package/src/mcp/tools/metasprite-tools.js +256 -0
  237. package/src/mcp/tools/platform-docs.js +113 -0
  238. package/src/mcp/tools/platform-tools.js +1300 -0
  239. package/src/mcp/tools/platforms.js +139 -0
  240. package/src/mcp/tools/playtest.js +360 -0
  241. package/src/mcp/tools/preview-tile.js +478 -0
  242. package/src/mcp/tools/project.js +1939 -0
  243. package/src/mcp/tools/record.js +180 -0
  244. package/src/mcp/tools/reinject.js +732 -0
  245. package/src/mcp/tools/rendering-context.js +838 -0
  246. package/src/mcp/tools/rom-id.js +308 -0
  247. package/src/mcp/tools/run-until.js +176 -0
  248. package/src/mcp/tools/snippets.js +209 -0
  249. package/src/mcp/tools/splice-chr.js +190 -0
  250. package/src/mcp/tools/sprite-pipeline.js +626 -0
  251. package/src/mcp/tools/state.js +198 -0
  252. package/src/mcp/tools/symbols.js +400 -0
  253. package/src/mcp/tools/tile-inspect.js +293 -0
  254. package/src/mcp/tools/toolchain.js +720 -0
  255. package/src/mcp/tools/trace-vram-source.js +81 -0
  256. package/src/mcp/tools/watch-memory.js +1036 -0
  257. package/src/mcp/tools/which-tiles.js +180 -0
  258. package/src/mcp/util.js +355 -0
  259. package/src/observer/bus.js +127 -0
  260. package/src/observer/livestream.html +594 -0
  261. package/src/observer/server.js +78 -0
  262. package/src/observer/tool-wrap.js +142 -0
  263. package/src/platforms/_guides/MUSIC_SOURCING.md +104 -0
  264. package/src/platforms/_guides/ROMHACKING_PLAYBOOK.md +245 -0
  265. package/src/platforms/atari2600/MENTAL_MODEL.md +194 -0
  266. package/src/platforms/atari2600/TROUBLESHOOTING.md +155 -0
  267. package/src/platforms/atari2600/UPSTREAM_SOURCES.md +49 -0
  268. package/src/platforms/atari2600/lib/README.md +67 -0
  269. package/src/platforms/atari2600/lib/cc65-src/crt0.s +49 -0
  270. package/src/platforms/atari2600/lib/cc65-src/ctype.s +5 -0
  271. package/src/platforms/atari2600/lib/kernel_skeleton.asm +85 -0
  272. package/src/platforms/atari2600/lib/player_kernel.asm +87 -0
  273. package/src/platforms/atari2600/lib/playfield_kernel.asm +63 -0
  274. package/src/platforms/atari2600/lib/read_joystick.asm +76 -0
  275. package/src/platforms/atari2600/lib/score_kernel.asm +141 -0
  276. package/src/platforms/atari2600/lib/vcs_constants.h +97 -0
  277. package/src/platforms/atari2600/lib/vectors.asm +16 -0
  278. package/src/platforms/atari2600/tia.js +355 -0
  279. package/src/platforms/atari7800/MENTAL_MODEL.md +324 -0
  280. package/src/platforms/atari7800/TROUBLESHOOTING.md +195 -0
  281. package/src/platforms/atari7800/UPSTREAM_SOURCES.md +43 -0
  282. package/src/platforms/atari7800/lib/README.md +45 -0
  283. package/src/platforms/atari7800/lib/c/atari7800_music.c +215 -0
  284. package/src/platforms/atari7800/lib/c/atari7800_music.h +33 -0
  285. package/src/platforms/atari7800/lib/c/atari7800_sfx.c +74 -0
  286. package/src/platforms/atari7800/lib/c/atari7800_sfx.h +45 -0
  287. package/src/platforms/atari7800/lib/cc65-src/clock.s +69 -0
  288. package/src/platforms/atari7800/lib/cc65-src/clocks_per_sec.s +34 -0
  289. package/src/platforms/atari7800/lib/cc65-src/clrscr.s +27 -0
  290. package/src/platforms/atari7800/lib/cc65-src/conio.s +226 -0
  291. package/src/platforms/atari7800/lib/cc65-src/conio_font.s +278 -0
  292. package/src/platforms/atari7800/lib/cc65-src/cputc.s +139 -0
  293. package/src/platforms/atari7800/lib/cc65-src/crt0.s +71 -0
  294. package/src/platforms/atari7800/lib/cc65-src/ctype.s +5 -0
  295. package/src/platforms/atari7800/lib/cc65-src/exehdr.s +46 -0
  296. package/src/platforms/atari7800/lib/cc65-src/extra/mono.s +28 -0
  297. package/src/platforms/atari7800/lib/cc65-src/extzp.inc +15 -0
  298. package/src/platforms/atari7800/lib/cc65-src/extzp.s +15 -0
  299. package/src/platforms/atari7800/lib/cc65-src/get_tv.s +65 -0
  300. package/src/platforms/atari7800/lib/cc65-src/irq.s +36 -0
  301. package/src/platforms/atari7800/lib/cc65-src/joy/atari7800-stdjoy.s +197 -0
  302. package/src/platforms/atari7800/lib/cc65-src/joy_stat_stddrv.s +14 -0
  303. package/src/platforms/atari7800/lib/cc65-src/libref.s +8 -0
  304. package/src/platforms/atari7800/lib/cc65-src/mono_clrscr.s +27 -0
  305. package/src/platforms/atari7800/lib/cc65-src/mono_conio.s +231 -0
  306. package/src/platforms/atari7800/lib/cc65-src/mono_cputc.s +102 -0
  307. package/src/platforms/atari7800/lib/cc65-src/mono_font.s +2065 -0
  308. package/src/platforms/atari7800/lib/cc65-src/mono_setcursor.s +214 -0
  309. package/src/platforms/atari7800/lib/cc65-src/setcursor.s +214 -0
  310. package/src/platforms/atari7800/lib/cc65-src/textcolor.s +53 -0
  311. package/src/platforms/atari7800/lib/cc65-src/wherex.s +19 -0
  312. package/src/platforms/atari7800/lib/cc65-src/wherey.s +19 -0
  313. package/src/platforms/atari7800/lib/display_list.asm +53 -0
  314. package/src/platforms/atari7800/lib/maria_init.asm +48 -0
  315. package/src/platforms/atari7800/lib/maria_registers.h +61 -0
  316. package/src/platforms/atari7800/lib/palette_load.asm +53 -0
  317. package/src/platforms/atari7800/lib/read_pad.asm +57 -0
  318. package/src/platforms/atari7800/lib/vblank_wait.asm +16 -0
  319. package/src/platforms/atari7800/maria.js +220 -0
  320. package/src/platforms/atari7800/song.js +232 -0
  321. package/src/platforms/c64/MENTAL_MODEL.md +188 -0
  322. package/src/platforms/c64/TROUBLESHOOTING.md +130 -0
  323. package/src/platforms/c64/UPSTREAM_SOURCES.md +35 -0
  324. package/src/platforms/c64/image-to-tilemap.js +190 -0
  325. package/src/platforms/c64/lib/README.md +52 -0
  326. package/src/platforms/c64/lib/basic_stub.s +25 -0
  327. package/src/platforms/c64/lib/c/c64_music.c +248 -0
  328. package/src/platforms/c64/lib/c/c64_music.h +36 -0
  329. package/src/platforms/c64/lib/c/c64_sfx.c +94 -0
  330. package/src/platforms/c64/lib/c/c64_sfx.h +37 -0
  331. package/src/platforms/c64/lib/c64_registers.h +108 -0
  332. package/src/platforms/c64/lib/cc65-src/_scrsize.s +12 -0
  333. package/src/platforms/c64/lib/cc65-src/acc_c128_speed.s +5 -0
  334. package/src/platforms/c64/lib/cc65-src/acc_c64dtv_speed.s +64 -0
  335. package/src/platforms/c64/lib/cc65-src/acc_c65_speed.s +69 -0
  336. package/src/platforms/c64/lib/cc65-src/acc_chameleon_speed.s +100 -0
  337. package/src/platforms/c64/lib/cc65-src/acc_detect_c128.s +33 -0
  338. package/src/platforms/c64/lib/cc65-src/acc_detect_c64dtv.s +44 -0
  339. package/src/platforms/c64/lib/cc65-src/acc_detect_c65.s +55 -0
  340. package/src/platforms/c64/lib/cc65-src/acc_detect_chameleon.s +39 -0
  341. package/src/platforms/c64/lib/cc65-src/acc_detect_scpu.s +34 -0
  342. package/src/platforms/c64/lib/cc65-src/acc_detect_turbomaster.s +45 -0
  343. package/src/platforms/c64/lib/cc65-src/acc_scpu_speed.s +59 -0
  344. package/src/platforms/c64/lib/cc65-src/acc_turbomaster_speed.s +56 -0
  345. package/src/platforms/c64/lib/cc65-src/bordercolor.s +17 -0
  346. package/src/platforms/c64/lib/cc65-src/break.s +108 -0
  347. package/src/platforms/c64/lib/cc65-src/cgetc.s +62 -0
  348. package/src/platforms/c64/lib/cc65-src/clrscr.s +11 -0
  349. package/src/platforms/c64/lib/cc65-src/color.s +24 -0
  350. package/src/platforms/c64/lib/cc65-src/conio.s +10 -0
  351. package/src/platforms/c64/lib/cc65-src/cputc.s +105 -0
  352. package/src/platforms/c64/lib/cc65-src/crt0.s +117 -0
  353. package/src/platforms/c64/lib/cc65-src/devnum.s +7 -0
  354. package/src/platforms/c64/lib/cc65-src/emd/c64-65816.s +377 -0
  355. package/src/platforms/c64/lib/cc65-src/emd/c64-c256k.s +508 -0
  356. package/src/platforms/c64/lib/cc65-src/emd/c64-dqbb.s +447 -0
  357. package/src/platforms/c64/lib/cc65-src/emd/c64-georam.s +355 -0
  358. package/src/platforms/c64/lib/cc65-src/emd/c64-isepic.s +276 -0
  359. package/src/platforms/c64/lib/cc65-src/emd/c64-kerberos.s +281 -0
  360. package/src/platforms/c64/lib/cc65-src/emd/c64-ram.s +270 -0
  361. package/src/platforms/c64/lib/cc65-src/emd/c64-ramcart.s +297 -0
  362. package/src/platforms/c64/lib/cc65-src/emd/c64-reu.s +286 -0
  363. package/src/platforms/c64/lib/cc65-src/emd/c64-rrr.s +363 -0
  364. package/src/platforms/c64/lib/cc65-src/emd/c64-vdc.s +405 -0
  365. package/src/platforms/c64/lib/cc65-src/emd/dtv-himem.s +251 -0
  366. package/src/platforms/c64/lib/cc65-src/extra/soft80.s +71 -0
  367. package/src/platforms/c64/lib/cc65-src/extra/soft80mono.s +74 -0
  368. package/src/platforms/c64/lib/cc65-src/extra/tgimousedata.s +21 -0
  369. package/src/platforms/c64/lib/cc65-src/get_ostype.s +43 -0
  370. package/src/platforms/c64/lib/cc65-src/get_tv.s +20 -0
  371. package/src/platforms/c64/lib/cc65-src/gettime.s +83 -0
  372. package/src/platforms/c64/lib/cc65-src/irq.s +49 -0
  373. package/src/platforms/c64/lib/cc65-src/joy/c64-hitjoy.s +218 -0
  374. package/src/platforms/c64/lib/cc65-src/joy/c64-numpad.s +155 -0
  375. package/src/platforms/c64/lib/cc65-src/joy/c64-ptvjoy.s +146 -0
  376. package/src/platforms/c64/lib/cc65-src/joy/c64-stdjoy.s +111 -0
  377. package/src/platforms/c64/lib/cc65-src/joy_stat_stddrv.s +14 -0
  378. package/src/platforms/c64/lib/cc65-src/joy_stddrv.s +14 -0
  379. package/src/platforms/c64/lib/cc65-src/kbhit.s +23 -0
  380. package/src/platforms/c64/lib/cc65-src/kbrepeat.s +14 -0
  381. package/src/platforms/c64/lib/cc65-src/kernal.s +53 -0
  382. package/src/platforms/c64/lib/cc65-src/kplot.s +22 -0
  383. package/src/platforms/c64/lib/cc65-src/libref.s +16 -0
  384. package/src/platforms/c64/lib/cc65-src/mainargs.s +137 -0
  385. package/src/platforms/c64/lib/cc65-src/mcbdefault.s +146 -0
  386. package/src/platforms/c64/lib/cc65-src/mcbspritedata.s +4 -0
  387. package/src/platforms/c64/lib/cc65-src/mou/c64-1351.s +467 -0
  388. package/src/platforms/c64/lib/cc65-src/mou/c64-inkwell.s +446 -0
  389. package/src/platforms/c64/lib/cc65-src/mou/c64-joy.s +451 -0
  390. package/src/platforms/c64/lib/cc65-src/mou/c64-pot.s +409 -0
  391. package/src/platforms/c64/lib/cc65-src/mouse_stat_stddrv.s +14 -0
  392. package/src/platforms/c64/lib/cc65-src/mouse_stddrv.s +14 -0
  393. package/src/platforms/c64/lib/cc65-src/mouseref.s +23 -0
  394. package/src/platforms/c64/lib/cc65-src/pencalib.c +94 -0
  395. package/src/platforms/c64/lib/cc65-src/randomize.s +18 -0
  396. package/src/platforms/c64/lib/cc65-src/revers.s +27 -0
  397. package/src/platforms/c64/lib/cc65-src/ser/c64-swlink.s +484 -0
  398. package/src/platforms/c64/lib/cc65-src/ser_stat_stddrv.s +14 -0
  399. package/src/platforms/c64/lib/cc65-src/ser_stddrv.s +13 -0
  400. package/src/platforms/c64/lib/cc65-src/settime.s +84 -0
  401. package/src/platforms/c64/lib/cc65-src/soft80.inc +46 -0
  402. package/src/platforms/c64/lib/cc65-src/soft80_cgetc.s +85 -0
  403. package/src/platforms/c64/lib/cc65-src/soft80_charset.s +182 -0
  404. package/src/platforms/c64/lib/cc65-src/soft80_color.s +159 -0
  405. package/src/platforms/c64/lib/cc65-src/soft80_conio.s +157 -0
  406. package/src/platforms/c64/lib/cc65-src/soft80_cpeekc.s +148 -0
  407. package/src/platforms/c64/lib/cc65-src/soft80_cpeekcolor.s +19 -0
  408. package/src/platforms/c64/lib/cc65-src/soft80_cpeekrevers.s +15 -0
  409. package/src/platforms/c64/lib/cc65-src/soft80_cpeeks.s +71 -0
  410. package/src/platforms/c64/lib/cc65-src/soft80_cputc.s +521 -0
  411. package/src/platforms/c64/lib/cc65-src/soft80_kclrscr.s +76 -0
  412. package/src/platforms/c64/lib/cc65-src/soft80_kplot.s +63 -0
  413. package/src/platforms/c64/lib/cc65-src/soft80_scrsize.s +14 -0
  414. package/src/platforms/c64/lib/cc65-src/soft80mono_cgetc.s +67 -0
  415. package/src/platforms/c64/lib/cc65-src/soft80mono_color.s +65 -0
  416. package/src/platforms/c64/lib/cc65-src/soft80mono_conio.s +168 -0
  417. package/src/platforms/c64/lib/cc65-src/soft80mono_cpeekcolor.s +17 -0
  418. package/src/platforms/c64/lib/cc65-src/soft80mono_cputc.s +204 -0
  419. package/src/platforms/c64/lib/cc65-src/soft80mono_kclrscr.s +63 -0
  420. package/src/platforms/c64/lib/cc65-src/soft80mono_kplot.s +52 -0
  421. package/src/platforms/c64/lib/cc65-src/status.s +15 -0
  422. package/src/platforms/c64/lib/cc65-src/sysuname.s +37 -0
  423. package/src/platforms/c64/lib/cc65-src/tgi/c64-hi.s +881 -0
  424. package/src/platforms/c64/lib/cc65-src/tgi_stat_stddrv.s +14 -0
  425. package/src/platforms/c64/lib/cc65-src/tgi_stddrv.s +13 -0
  426. package/src/platforms/c64/lib/cc65-src/tmcommon.s +67 -0
  427. package/src/platforms/c64/lib/cc65-src/waitvsync.s +18 -0
  428. package/src/platforms/c64/lib/read_joystick.s +28 -0
  429. package/src/platforms/c64/lib/sid_play.s +48 -0
  430. package/src/platforms/c64/lib/sprite_table.s +73 -0
  431. package/src/platforms/c64/lib/vic_init.s +47 -0
  432. package/src/platforms/c64/sid.js +128 -0
  433. package/src/platforms/c64/song.js +262 -0
  434. package/src/platforms/c64/vic.js +273 -0
  435. package/src/platforms/common/default-palette.js +139 -0
  436. package/src/platforms/common/image-to-tiles.js +418 -0
  437. package/src/platforms/common/intent.js +111 -0
  438. package/src/platforms/common/metasprite-adapters.js +279 -0
  439. package/src/platforms/common/metasprite-codegen.js +192 -0
  440. package/src/platforms/common/metasprite-core.js +201 -0
  441. package/src/platforms/common/metasprite.js +89 -0
  442. package/src/platforms/common/platform-palette.js +137 -0
  443. package/src/platforms/common/registers.js +329 -0
  444. package/src/platforms/common/render-tiles.js +86 -0
  445. package/src/platforms/common/screenshot-sprite.js +153 -0
  446. package/src/platforms/common/tile-decode.js +149 -0
  447. package/src/platforms/gb/MENTAL_MODEL.md +262 -0
  448. package/src/platforms/gb/TROUBLESHOOTING.md +218 -0
  449. package/src/platforms/gb/UPSTREAM_SOURCES.md +43 -0
  450. package/src/platforms/gb/image-to-tilemap.js +173 -0
  451. package/src/platforms/gb/lib/README.md +115 -0
  452. package/src/platforms/gb/lib/c/LICENSE-HUGEDRIVER +25 -0
  453. package/src/platforms/gb/lib/c/README.md +122 -0
  454. package/src/platforms/gb/lib/c/SDCC_GOTCHAS.md +190 -0
  455. package/src/platforms/gb/lib/c/gb_crt0.s +163 -0
  456. package/src/platforms/gb/lib/c/gb_hardware.h +113 -0
  457. package/src/platforms/gb/lib/c/gb_runtime.c +284 -0
  458. package/src/platforms/gb/lib/c/gb_runtime.h +145 -0
  459. package/src/platforms/gb/lib/c/hUGEDriver.c +191 -0
  460. package/src/platforms/gb/lib/c/hUGEDriver.h +95 -0
  461. package/src/platforms/gb/lib/c/hUGEDriver.upstream.asm +1908 -0
  462. package/src/platforms/gb/lib/c/lcd_init.c +19 -0
  463. package/src/platforms/gb/lib/c/patch-header.js +154 -0
  464. package/src/platforms/gb/lib/c/song_data.c +88 -0
  465. package/src/platforms/gb/lib/c/unroll.h +52 -0
  466. package/src/platforms/gb/lib/c/wait_vblank.c +14 -0
  467. package/src/platforms/gb/lib/dma_oam.asm +51 -0
  468. package/src/platforms/gb/lib/header.asm +56 -0
  469. package/src/platforms/gb/lib/joypad_read.asm +47 -0
  470. package/src/platforms/gb/lib/lcd_init.asm +44 -0
  471. package/src/platforms/gb/lib/load_palette.asm +25 -0
  472. package/src/platforms/gb/lib/load_tiles.asm +29 -0
  473. package/src/platforms/gb/lib/vblank_wait.asm +31 -0
  474. package/src/platforms/gb/ppu.js +574 -0
  475. package/src/platforms/gb/song.js +140 -0
  476. package/src/platforms/gba/MENTAL_MODEL.md +216 -0
  477. package/src/platforms/gba/TROUBLESHOOTING.md +250 -0
  478. package/src/platforms/gba/UPSTREAM_SOURCES.md +41 -0
  479. package/src/platforms/gba/lib/arm-archives/libc.a +0 -0
  480. package/src/platforms/gba/lib/arm-archives/libgcc.a +0 -0
  481. package/src/platforms/gba/lib/arm-archives/libnosys.a +0 -0
  482. package/src/platforms/gba/lib/c/gba_sfx.c +81 -0
  483. package/src/platforms/gba/lib/c/gba_sfx.h +48 -0
  484. package/src/platforms/gba/lib/libgba/crtbegin.o +0 -0
  485. package/src/platforms/gba/lib/libgba/crtend.o +0 -0
  486. package/src/platforms/gba/lib/libgba/crti.o +0 -0
  487. package/src/platforms/gba/lib/libgba/crtn.o +0 -0
  488. package/src/platforms/gba/lib/libgba/gba_cart.ld +319 -0
  489. package/src/platforms/gba/lib/libgba/gba_crt0.s +258 -0
  490. package/src/platforms/gba/lib/libgba/include/BoyScout.h +128 -0
  491. package/src/platforms/gba/lib/libgba/include/disc.h +36 -0
  492. package/src/platforms/gba/lib/libgba/include/disc_io.h +64 -0
  493. package/src/platforms/gba/lib/libgba/include/dldi.h +112 -0
  494. package/src/platforms/gba/lib/libgba/include/erapi.h +195 -0
  495. package/src/platforms/gba/lib/libgba/include/fade.h +76 -0
  496. package/src/platforms/gba/lib/libgba/include/gba.h +47 -0
  497. package/src/platforms/gba/lib/libgba/include/gba_affine.h +83 -0
  498. package/src/platforms/gba/lib/libgba/include/gba_base.h +122 -0
  499. package/src/platforms/gba/lib/libgba/include/gba_compression.h +66 -0
  500. package/src/platforms/gba/lib/libgba/include/gba_console.h +55 -0
  501. package/src/platforms/gba/lib/libgba/include/gba_dma.h +100 -0
  502. package/src/platforms/gba/lib/libgba/include/gba_input.h +127 -0
  503. package/src/platforms/gba/lib/libgba/include/gba_interrupt.h +146 -0
  504. package/src/platforms/gba/lib/libgba/include/gba_multiboot.h +72 -0
  505. package/src/platforms/gba/lib/libgba/include/gba_sio.h +124 -0
  506. package/src/platforms/gba/lib/libgba/include/gba_sound.h +356 -0
  507. package/src/platforms/gba/lib/libgba/include/gba_sprites.h +195 -0
  508. package/src/platforms/gba/lib/libgba/include/gba_systemcalls.h +194 -0
  509. package/src/platforms/gba/lib/libgba/include/gba_timers.h +63 -0
  510. package/src/platforms/gba/lib/libgba/include/gba_types.h +60 -0
  511. package/src/platforms/gba/lib/libgba/include/gba_video.h +307 -0
  512. package/src/platforms/gba/lib/libgba/include/mappy.h +72 -0
  513. package/src/platforms/gba/lib/libgba/include/mbv2.h +90 -0
  514. package/src/platforms/gba/lib/libgba/include/xcomms.h +93 -0
  515. package/src/platforms/gba/lib/libgba/include/xcomms_cmd.h +53 -0
  516. package/src/platforms/gba/lib/libgba/libgba.seed.a +0 -0
  517. package/src/platforms/gba/lib/libgba/libgba.seed.hash +1 -0
  518. package/src/platforms/gba/lib/libgba/src/AffineSet.c +42 -0
  519. package/src/platforms/gba/lib/libgba/src/ArcTan.s +41 -0
  520. package/src/platforms/gba/lib/libgba/src/BoyScout/BoyScout.c +1242 -0
  521. package/src/platforms/gba/lib/libgba/src/BoyScout/GBASoundRegs.h +200 -0
  522. package/src/platforms/gba/lib/libgba/src/Compression.c +84 -0
  523. package/src/platforms/gba/lib/libgba/src/CpuSet.c +41 -0
  524. package/src/platforms/gba/lib/libgba/src/Div.s +58 -0
  525. package/src/platforms/gba/lib/libgba/src/DivArm.s +50 -0
  526. package/src/platforms/gba/lib/libgba/src/InterruptDispatcher.s +113 -0
  527. package/src/platforms/gba/lib/libgba/src/IntrWait.c +35 -0
  528. package/src/platforms/gba/lib/libgba/src/MultiBoot.s +33 -0
  529. package/src/platforms/gba/lib/libgba/src/Reset.s +49 -0
  530. package/src/platforms/gba/lib/libgba/src/Sound.s +48 -0
  531. package/src/platforms/gba/lib/libgba/src/Sqrt.s +34 -0
  532. package/src/platforms/gba/lib/libgba/src/disc_io/disc.c +58 -0
  533. package/src/platforms/gba/lib/libgba/src/disc_io/dldi.c +189 -0
  534. package/src/platforms/gba/lib/libgba/src/disc_io/dldi_stub.s +78 -0
  535. package/src/platforms/gba/lib/libgba/src/disc_io/io_cf_common.c +260 -0
  536. package/src/platforms/gba/lib/libgba/src/disc_io/io_cf_common.h +72 -0
  537. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3_common.c +60 -0
  538. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3_common.h +48 -0
  539. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3cf.c +83 -0
  540. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3cf.h +45 -0
  541. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3sd.c +508 -0
  542. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3sd.h +45 -0
  543. package/src/platforms/gba/lib/libgba/src/disc_io/io_mpcf.c +87 -0
  544. package/src/platforms/gba/lib/libgba/src/disc_io/io_mpcf.h +42 -0
  545. package/src/platforms/gba/lib/libgba/src/disc_io/io_sc_common.c +47 -0
  546. package/src/platforms/gba/lib/libgba/src/disc_io/io_sc_common.h +43 -0
  547. package/src/platforms/gba/lib/libgba/src/disc_io/io_sccf.c +83 -0
  548. package/src/platforms/gba/lib/libgba/src/disc_io/io_sccf.h +45 -0
  549. package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd.c +385 -0
  550. package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd.h +48 -0
  551. package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd_s.s +139 -0
  552. package/src/platforms/gba/lib/libgba/src/disc_io/io_sd_common.c +203 -0
  553. package/src/platforms/gba/lib/libgba/src/disc_io/io_sd_common.h +108 -0
  554. package/src/platforms/gba/lib/libgba/src/fade.c +185 -0
  555. package/src/platforms/gba/lib/libgba/src/input.c +127 -0
  556. package/src/platforms/gba/lib/libgba/src/interrupt.c +116 -0
  557. package/src/platforms/gba/lib/libgba/src/mappy_print.c +74 -0
  558. package/src/platforms/gba/lib/libgba/src/mb2print.c +69 -0
  559. package/src/platforms/gba/lib/libgba/src/mbv2.c +230 -0
  560. package/src/platforms/gba/lib/libgba/src/mbv2.txt +119 -0
  561. package/src/platforms/gba/lib/libgba/src/xcomms.c +203 -0
  562. package/src/platforms/gba/lib/libgba/src/xcomms_print.c +56 -0
  563. package/src/platforms/gba/lib/libgba/sysinclude/_ansi.h +82 -0
  564. package/src/platforms/gba/lib/libgba/sysinclude/_newlib_version.h +11 -0
  565. package/src/platforms/gba/lib/libgba/sysinclude/_syslist.h +41 -0
  566. package/src/platforms/gba/lib/libgba/sysinclude/alloca.h +21 -0
  567. package/src/platforms/gba/lib/libgba/sysinclude/ar.h +65 -0
  568. package/src/platforms/gba/lib/libgba/sysinclude/argz.h +33 -0
  569. package/src/platforms/gba/lib/libgba/sysinclude/assert.h +50 -0
  570. package/src/platforms/gba/lib/libgba/sysinclude/complex.h +150 -0
  571. package/src/platforms/gba/lib/libgba/sysinclude/cpio.h +30 -0
  572. package/src/platforms/gba/lib/libgba/sysinclude/ctype.h +183 -0
  573. package/src/platforms/gba/lib/libgba/sysinclude/devctl.h +78 -0
  574. package/src/platforms/gba/lib/libgba/sysinclude/dirent.h +85 -0
  575. package/src/platforms/gba/lib/libgba/sysinclude/elf.h +3147 -0
  576. package/src/platforms/gba/lib/libgba/sysinclude/envlock.h +15 -0
  577. package/src/platforms/gba/lib/libgba/sysinclude/envz.h +16 -0
  578. package/src/platforms/gba/lib/libgba/sysinclude/errno.h +11 -0
  579. package/src/platforms/gba/lib/libgba/sysinclude/fastmath.h +13 -0
  580. package/src/platforms/gba/lib/libgba/sysinclude/fcntl.h +1 -0
  581. package/src/platforms/gba/lib/libgba/sysinclude/fenv.h +42 -0
  582. package/src/platforms/gba/lib/libgba/sysinclude/float.h +631 -0
  583. package/src/platforms/gba/lib/libgba/sysinclude/fnmatch.h +55 -0
  584. package/src/platforms/gba/lib/libgba/sysinclude/ftw.h +66 -0
  585. package/src/platforms/gba/lib/libgba/sysinclude/getopt.h +185 -0
  586. package/src/platforms/gba/lib/libgba/sysinclude/glob.h +90 -0
  587. package/src/platforms/gba/lib/libgba/sysinclude/grp.h +86 -0
  588. package/src/platforms/gba/lib/libgba/sysinclude/iconv.h +63 -0
  589. package/src/platforms/gba/lib/libgba/sysinclude/ieeefp.h +295 -0
  590. package/src/platforms/gba/lib/libgba/sysinclude/inttypes.h +345 -0
  591. package/src/platforms/gba/lib/libgba/sysinclude/iso646.h +45 -0
  592. package/src/platforms/gba/lib/libgba/sysinclude/langinfo.h +332 -0
  593. package/src/platforms/gba/lib/libgba/sysinclude/libgen.h +37 -0
  594. package/src/platforms/gba/lib/libgba/sysinclude/limits.h +168 -0
  595. package/src/platforms/gba/lib/libgba/sysinclude/locale.h +96 -0
  596. package/src/platforms/gba/lib/libgba/sysinclude/machine/_arc4random.h +1 -0
  597. package/src/platforms/gba/lib/libgba/sysinclude/machine/_default_types.h +250 -0
  598. package/src/platforms/gba/lib/libgba/sysinclude/machine/_endian.h +39 -0
  599. package/src/platforms/gba/lib/libgba/sysinclude/machine/_time.h +3 -0
  600. package/src/platforms/gba/lib/libgba/sysinclude/machine/_types.h +8 -0
  601. package/src/platforms/gba/lib/libgba/sysinclude/machine/ansi.h +1 -0
  602. package/src/platforms/gba/lib/libgba/sysinclude/machine/endian.h +69 -0
  603. package/src/platforms/gba/lib/libgba/sysinclude/machine/fastmath.h +98 -0
  604. package/src/platforms/gba/lib/libgba/sysinclude/machine/ieee.h +127 -0
  605. package/src/platforms/gba/lib/libgba/sysinclude/machine/ieeefp.h +533 -0
  606. package/src/platforms/gba/lib/libgba/sysinclude/machine/malloc.h +8 -0
  607. package/src/platforms/gba/lib/libgba/sysinclude/machine/param.h +8 -0
  608. package/src/platforms/gba/lib/libgba/sysinclude/machine/setjmp-dj.h +43 -0
  609. package/src/platforms/gba/lib/libgba/sysinclude/machine/setjmp.h +524 -0
  610. package/src/platforms/gba/lib/libgba/sysinclude/machine/stdlib.h +8 -0
  611. package/src/platforms/gba/lib/libgba/sysinclude/machine/termios.h +1 -0
  612. package/src/platforms/gba/lib/libgba/sysinclude/machine/time.h +15 -0
  613. package/src/platforms/gba/lib/libgba/sysinclude/machine/types.h +13 -0
  614. package/src/platforms/gba/lib/libgba/sysinclude/malloc.h +173 -0
  615. package/src/platforms/gba/lib/libgba/sysinclude/math.h +645 -0
  616. package/src/platforms/gba/lib/libgba/sysinclude/memory.h +4 -0
  617. package/src/platforms/gba/lib/libgba/sysinclude/ndbm.h +91 -0
  618. package/src/platforms/gba/lib/libgba/sysinclude/newlib.h +427 -0
  619. package/src/platforms/gba/lib/libgba/sysinclude/paths.h +9 -0
  620. package/src/platforms/gba/lib/libgba/sysinclude/pthread.h +456 -0
  621. package/src/platforms/gba/lib/libgba/sysinclude/pwd.h +83 -0
  622. package/src/platforms/gba/lib/libgba/sysinclude/reent.h +190 -0
  623. package/src/platforms/gba/lib/libgba/sysinclude/regdef.h +7 -0
  624. package/src/platforms/gba/lib/libgba/sysinclude/regex.h +103 -0
  625. package/src/platforms/gba/lib/libgba/sysinclude/sched.h +112 -0
  626. package/src/platforms/gba/lib/libgba/sysinclude/search.h +64 -0
  627. package/src/platforms/gba/lib/libgba/sysinclude/setjmp.h +25 -0
  628. package/src/platforms/gba/lib/libgba/sysinclude/signal.h +35 -0
  629. package/src/platforms/gba/lib/libgba/sysinclude/spawn.h +111 -0
  630. package/src/platforms/gba/lib/libgba/sysinclude/ssp/ssp.h +76 -0
  631. package/src/platforms/gba/lib/libgba/sysinclude/ssp/stdio.h +101 -0
  632. package/src/platforms/gba/lib/libgba/sysinclude/ssp/stdlib.h +30 -0
  633. package/src/platforms/gba/lib/libgba/sysinclude/ssp/string.h +115 -0
  634. package/src/platforms/gba/lib/libgba/sysinclude/ssp/strings.h +55 -0
  635. package/src/platforms/gba/lib/libgba/sysinclude/ssp/unistd.h +93 -0
  636. package/src/platforms/gba/lib/libgba/sysinclude/ssp/wchar.h +97 -0
  637. package/src/platforms/gba/lib/libgba/sysinclude/stdarg.h +135 -0
  638. package/src/platforms/gba/lib/libgba/sysinclude/stdatomic.h +409 -0
  639. package/src/platforms/gba/lib/libgba/sysinclude/stdbool.h +51 -0
  640. package/src/platforms/gba/lib/libgba/sysinclude/stddef.h +463 -0
  641. package/src/platforms/gba/lib/libgba/sysinclude/stdint.h +466 -0
  642. package/src/platforms/gba/lib/libgba/sysinclude/stdio.h +807 -0
  643. package/src/platforms/gba/lib/libgba/sysinclude/stdio_ext.h +79 -0
  644. package/src/platforms/gba/lib/libgba/sysinclude/stdlib.h +345 -0
  645. package/src/platforms/gba/lib/libgba/sysinclude/string.h +183 -0
  646. package/src/platforms/gba/lib/libgba/sysinclude/strings.h +80 -0
  647. package/src/platforms/gba/lib/libgba/sysinclude/sys/_default_fcntl.h +241 -0
  648. package/src/platforms/gba/lib/libgba/sysinclude/sys/_intsup.h +199 -0
  649. package/src/platforms/gba/lib/libgba/sysinclude/sys/_locale.h +12 -0
  650. package/src/platforms/gba/lib/libgba/sysinclude/sys/_pthreadtypes.h +233 -0
  651. package/src/platforms/gba/lib/libgba/sysinclude/sys/_sigset.h +43 -0
  652. package/src/platforms/gba/lib/libgba/sysinclude/sys/_stdint.h +90 -0
  653. package/src/platforms/gba/lib/libgba/sysinclude/sys/_timespec.h +52 -0
  654. package/src/platforms/gba/lib/libgba/sysinclude/sys/_timeval.h +60 -0
  655. package/src/platforms/gba/lib/libgba/sysinclude/sys/_types.h +228 -0
  656. package/src/platforms/gba/lib/libgba/sysinclude/sys/_tz_structs.h +24 -0
  657. package/src/platforms/gba/lib/libgba/sysinclude/sys/cdefs.h +754 -0
  658. package/src/platforms/gba/lib/libgba/sysinclude/sys/config.h +314 -0
  659. package/src/platforms/gba/lib/libgba/sysinclude/sys/custom_file.h +2 -0
  660. package/src/platforms/gba/lib/libgba/sysinclude/sys/dir.h +10 -0
  661. package/src/platforms/gba/lib/libgba/sysinclude/sys/dirent.h +13 -0
  662. package/src/platforms/gba/lib/libgba/sysinclude/sys/endian.h +207 -0
  663. package/src/platforms/gba/lib/libgba/sysinclude/sys/errno.h +198 -0
  664. package/src/platforms/gba/lib/libgba/sysinclude/sys/fcntl.h +12 -0
  665. package/src/platforms/gba/lib/libgba/sysinclude/sys/features.h +551 -0
  666. package/src/platforms/gba/lib/libgba/sysinclude/sys/fenv.h +90 -0
  667. package/src/platforms/gba/lib/libgba/sysinclude/sys/file.h +2 -0
  668. package/src/platforms/gba/lib/libgba/sysinclude/sys/iconvnls.h +77 -0
  669. package/src/platforms/gba/lib/libgba/sysinclude/sys/iosupport.h +143 -0
  670. package/src/platforms/gba/lib/libgba/sysinclude/sys/lock.h +75 -0
  671. package/src/platforms/gba/lib/libgba/sysinclude/sys/param.h +35 -0
  672. package/src/platforms/gba/lib/libgba/sysinclude/sys/queue.h +919 -0
  673. package/src/platforms/gba/lib/libgba/sysinclude/sys/reent.h +913 -0
  674. package/src/platforms/gba/lib/libgba/sysinclude/sys/resource.h +24 -0
  675. package/src/platforms/gba/lib/libgba/sysinclude/sys/sched.h +69 -0
  676. package/src/platforms/gba/lib/libgba/sysinclude/sys/select.h +94 -0
  677. package/src/platforms/gba/lib/libgba/sysinclude/sys/signal.h +388 -0
  678. package/src/platforms/gba/lib/libgba/sysinclude/sys/stat.h +179 -0
  679. package/src/platforms/gba/lib/libgba/sysinclude/sys/statvfs.h +41 -0
  680. package/src/platforms/gba/lib/libgba/sysinclude/sys/stdio.h +27 -0
  681. package/src/platforms/gba/lib/libgba/sysinclude/sys/string.h +2 -0
  682. package/src/platforms/gba/lib/libgba/sysinclude/sys/syslimits.h +61 -0
  683. package/src/platforms/gba/lib/libgba/sysinclude/sys/time.h +448 -0
  684. package/src/platforms/gba/lib/libgba/sysinclude/sys/timeb.h +40 -0
  685. package/src/platforms/gba/lib/libgba/sysinclude/sys/times.h +32 -0
  686. package/src/platforms/gba/lib/libgba/sysinclude/sys/timespec.h +63 -0
  687. package/src/platforms/gba/lib/libgba/sysinclude/sys/tree.h +864 -0
  688. package/src/platforms/gba/lib/libgba/sysinclude/sys/types.h +228 -0
  689. package/src/platforms/gba/lib/libgba/sysinclude/sys/unistd.h +591 -0
  690. package/src/platforms/gba/lib/libgba/sysinclude/sys/utime.h +22 -0
  691. package/src/platforms/gba/lib/libgba/sysinclude/sys/wait.h +44 -0
  692. package/src/platforms/gba/lib/libgba/sysinclude/tar.h +43 -0
  693. package/src/platforms/gba/lib/libgba/sysinclude/termios.h +7 -0
  694. package/src/platforms/gba/lib/libgba/sysinclude/tgmath.h +127 -0
  695. package/src/platforms/gba/lib/libgba/sysinclude/threads.h +93 -0
  696. package/src/platforms/gba/lib/libgba/sysinclude/time.h +313 -0
  697. package/src/platforms/gba/lib/libgba/sysinclude/unctrl.h +42 -0
  698. package/src/platforms/gba/lib/libgba/sysinclude/unistd.h +6 -0
  699. package/src/platforms/gba/lib/libgba/sysinclude/utime.h +12 -0
  700. package/src/platforms/gba/lib/libgba/sysinclude/utmp.h +8 -0
  701. package/src/platforms/gba/lib/libgba/sysinclude/varargs.h +7 -0
  702. package/src/platforms/gba/lib/libgba/sysinclude/wchar.h +339 -0
  703. package/src/platforms/gba/lib/libgba/sysinclude/wctype.h +74 -0
  704. package/src/platforms/gba/lib/libgba/sysinclude/wordexp.h +53 -0
  705. package/src/platforms/gba/lib/libtonc/crtbegin.o +0 -0
  706. package/src/platforms/gba/lib/libtonc/crtend.o +0 -0
  707. package/src/platforms/gba/lib/libtonc/crti.o +0 -0
  708. package/src/platforms/gba/lib/libtonc/crtn.o +0 -0
  709. package/src/platforms/gba/lib/libtonc/gba_cart.ld +319 -0
  710. package/src/platforms/gba/lib/libtonc/gba_crt0.s +258 -0
  711. package/src/platforms/gba/lib/libtonc/include/tonc.h +72 -0
  712. package/src/platforms/gba/lib/libtonc/include/tonc_asminc.h +132 -0
  713. package/src/platforms/gba/lib/libtonc/include/tonc_bios.h +555 -0
  714. package/src/platforms/gba/lib/libtonc/include/tonc_core.h +573 -0
  715. package/src/platforms/gba/lib/libtonc/include/tonc_input.h +184 -0
  716. package/src/platforms/gba/lib/libtonc/include/tonc_irq.h +121 -0
  717. package/src/platforms/gba/lib/libtonc/include/tonc_legacy.h +481 -0
  718. package/src/platforms/gba/lib/libtonc/include/tonc_libgba.h +537 -0
  719. package/src/platforms/gba/lib/libtonc/include/tonc_math.h +692 -0
  720. package/src/platforms/gba/lib/libtonc/include/tonc_memdef.h +962 -0
  721. package/src/platforms/gba/lib/libtonc/include/tonc_memmap.h +583 -0
  722. package/src/platforms/gba/lib/libtonc/include/tonc_nocash.h +51 -0
  723. package/src/platforms/gba/lib/libtonc/include/tonc_oam.h +186 -0
  724. package/src/platforms/gba/lib/libtonc/include/tonc_surface.h +461 -0
  725. package/src/platforms/gba/lib/libtonc/include/tonc_text.h +270 -0
  726. package/src/platforms/gba/lib/libtonc/include/tonc_tte.h +748 -0
  727. package/src/platforms/gba/lib/libtonc/include/tonc_types.h +376 -0
  728. package/src/platforms/gba/lib/libtonc/include/tonc_video.h +615 -0
  729. package/src/platforms/gba/lib/libtonc/libtonc.seed.a +0 -0
  730. package/src/platforms/gba/lib/libtonc/libtonc.seed.hash +1 -0
  731. package/src/platforms/gba/lib/libtonc/src/asm/clr_blend_fast.s +72 -0
  732. package/src/platforms/gba/lib/libtonc/src/asm/clr_fade_fast.s +74 -0
  733. package/src/platforms/gba/lib/libtonc/src/asm/div_lut.s +54 -0
  734. package/src/platforms/gba/lib/libtonc/src/asm/sin_lut.s +90 -0
  735. package/src/platforms/gba/lib/libtonc/src/asm/tonc_bios.s +289 -0
  736. package/src/platforms/gba/lib/libtonc/src/asm/tonc_bios_ex.s +97 -0
  737. package/src/platforms/gba/lib/libtonc/src/asm/tonc_isr_master.s +92 -0
  738. package/src/platforms/gba/lib/libtonc/src/asm/tonc_isr_nest.s +98 -0
  739. package/src/platforms/gba/lib/libtonc/src/asm/tonc_memcpy.s +126 -0
  740. package/src/platforms/gba/lib/libtonc/src/asm/tonc_memset.s +123 -0
  741. package/src/platforms/gba/lib/libtonc/src/asm/tonc_nocash.s +73 -0
  742. package/src/platforms/gba/lib/libtonc/src/font/sys8.png +0 -0
  743. package/src/platforms/gba/lib/libtonc/src/font/sys8.s +46 -0
  744. package/src/platforms/gba/lib/libtonc/src/font/verdana10.png +0 -0
  745. package/src/platforms/gba/lib/libtonc/src/font/verdana10.s +293 -0
  746. package/src/platforms/gba/lib/libtonc/src/font/verdana9.png +0 -0
  747. package/src/platforms/gba/lib/libtonc/src/font/verdana9.s +167 -0
  748. package/src/platforms/gba/lib/libtonc/src/font/verdana9_b4.png +0 -0
  749. package/src/platforms/gba/lib/libtonc/src/font/verdana9_b4.s +545 -0
  750. package/src/platforms/gba/lib/libtonc/src/font/verdana9b.png +0 -0
  751. package/src/platforms/gba/lib/libtonc/src/font/verdana9b.s +167 -0
  752. package/src/platforms/gba/lib/libtonc/src/font/verdana9i.png +0 -0
  753. package/src/platforms/gba/lib/libtonc/src/font/verdana9i.s +167 -0
  754. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_bitmap.c +289 -0
  755. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text.c +81 -0
  756. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_bm.c +244 -0
  757. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_map.c +122 -0
  758. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_oam.c +113 -0
  759. package/src/platforms/gba/lib/libtonc/src/pre1.3/toncfont.s +43 -0
  760. package/src/platforms/gba/lib/libtonc/src/tonc_bg.c +61 -0
  761. package/src/platforms/gba/lib/libtonc/src/tonc_bg_affine.c +112 -0
  762. package/src/platforms/gba/lib/libtonc/src/tonc_bmp16.c +240 -0
  763. package/src/platforms/gba/lib/libtonc/src/tonc_bmp8.c +314 -0
  764. package/src/platforms/gba/lib/libtonc/src/tonc_color.c +368 -0
  765. package/src/platforms/gba/lib/libtonc/src/tonc_core.c +237 -0
  766. package/src/platforms/gba/lib/libtonc/src/tonc_input.c +118 -0
  767. package/src/platforms/gba/lib/libtonc/src/tonc_irq.c +271 -0
  768. package/src/platforms/gba/lib/libtonc/src/tonc_math.c +54 -0
  769. package/src/platforms/gba/lib/libtonc/src/tonc_oam.c +76 -0
  770. package/src/platforms/gba/lib/libtonc/src/tonc_obj_affine.c +146 -0
  771. package/src/platforms/gba/lib/libtonc/src/tonc_sbmp16.c +369 -0
  772. package/src/platforms/gba/lib/libtonc/src/tonc_sbmp8.c +405 -0
  773. package/src/platforms/gba/lib/libtonc/src/tonc_schr4c.c +588 -0
  774. package/src/platforms/gba/lib/libtonc/src/tonc_schr4r.c +462 -0
  775. package/src/platforms/gba/lib/libtonc/src/tonc_surface.c +105 -0
  776. package/src/platforms/gba/lib/libtonc/src/tonc_video.c +33 -0
  777. package/src/platforms/gba/lib/libtonc/src/tte/ase_drawg.c +83 -0
  778. package/src/platforms/gba/lib/libtonc/src/tte/bmp16_drawg.c +72 -0
  779. package/src/platforms/gba/lib/libtonc/src/tte/bmp16_drawg_b1cs.c +92 -0
  780. package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg.c +71 -0
  781. package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg_b1cs.c +104 -0
  782. package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg_b1cts_fast.s +115 -0
  783. package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b1cts.c +76 -0
  784. package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b1cts_fast.s +128 -0
  785. package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b4cts.c +67 -0
  786. package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b4cts_fast.s +127 -0
  787. package/src/platforms/gba/lib/libtonc/src/tte/chr4r_drawg_b1cts.c +80 -0
  788. package/src/platforms/gba/lib/libtonc/src/tte/chr4r_drawg_b1cts_fast.s +145 -0
  789. package/src/platforms/gba/lib/libtonc/src/tte/obj_drawg.c +61 -0
  790. package/src/platforms/gba/lib/libtonc/src/tte/se_drawg.c +110 -0
  791. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_ase.c +87 -0
  792. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_bmp.c +118 -0
  793. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_chr4c.c +86 -0
  794. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_chr4r.c +87 -0
  795. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_obj.c +84 -0
  796. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_se.c +96 -0
  797. package/src/platforms/gba/lib/libtonc/src/tte/tte_iohook.c +264 -0
  798. package/src/platforms/gba/lib/libtonc/src/tte/tte_main.c +756 -0
  799. package/src/platforms/gba/lib/libtonc/src/tte/tte_types.s +119 -0
  800. package/src/platforms/gba/lib/maxmod/LICENSE-MAXMOD +23 -0
  801. package/src/platforms/gba/lib/maxmod/asm_include/mp_defs.inc +117 -0
  802. package/src/platforms/gba/lib/maxmod/asm_include/mp_format_mas.inc +108 -0
  803. package/src/platforms/gba/lib/maxmod/asm_include/mp_macros.inc +195 -0
  804. package/src/platforms/gba/lib/maxmod/asm_include/mp_mas.inc +40 -0
  805. package/src/platforms/gba/lib/maxmod/asm_include/mp_mas_structs.inc +189 -0
  806. package/src/platforms/gba/lib/maxmod/asm_include/mp_mixer_ds.inc +46 -0
  807. package/src/platforms/gba/lib/maxmod/asm_include/mp_mixer_gba.inc +42 -0
  808. package/src/platforms/gba/lib/maxmod/asm_include/swi_gba.inc +23 -0
  809. package/src/platforms/gba/lib/maxmod/include/maxmod.h +412 -0
  810. package/src/platforms/gba/lib/maxmod/include/mm_types.h +333 -0
  811. package/src/platforms/gba/lib/maxmod/maxmod.seed.a +0 -0
  812. package/src/platforms/gba/lib/maxmod/maxmod.seed.hash +1 -0
  813. package/src/platforms/gba/lib/maxmod/music/chiptune.xm +0 -0
  814. package/src/platforms/gba/lib/maxmod/music/chiptune_soundbank.bin +0 -0
  815. package/src/platforms/gba/lib/maxmod/music/chiptune_soundbank.h +4 -0
  816. package/src/platforms/gba/lib/maxmod/music/make_chiptune_xm.js +203 -0
  817. package/src/platforms/gba/lib/maxmod/source/mm_effect.s +767 -0
  818. package/src/platforms/gba/lib/maxmod/source/mm_main.s +115 -0
  819. package/src/platforms/gba/lib/maxmod/source/mm_mas.s +4990 -0
  820. package/src/platforms/gba/lib/maxmod/source/mm_mas_arm.s +612 -0
  821. package/src/platforms/gba/lib/maxmod/source_gba/mm_init_default.s +98 -0
  822. package/src/platforms/gba/lib/maxmod/source_gba/mm_main_gba.s +292 -0
  823. package/src/platforms/gba/lib/maxmod/source_gba/mm_mixer_gba.s +1367 -0
  824. package/src/platforms/gba/lib/sysbase/gba_iosupport.c +138 -0
  825. package/src/platforms/gbc/MENTAL_MODEL.md +178 -0
  826. package/src/platforms/gbc/TROUBLESHOOTING.md +142 -0
  827. package/src/platforms/gbc/UPSTREAM_SOURCES.md +60 -0
  828. package/src/platforms/gbc/lib/c/LICENSE-HUGEDRIVER +25 -0
  829. package/src/platforms/gbc/lib/c/README.md +122 -0
  830. package/src/platforms/gbc/lib/c/SDCC_GOTCHAS.md +190 -0
  831. package/src/platforms/gbc/lib/c/gb_crt0.s +163 -0
  832. package/src/platforms/gbc/lib/c/gb_hardware.h +113 -0
  833. package/src/platforms/gbc/lib/c/gb_runtime.c +284 -0
  834. package/src/platforms/gbc/lib/c/gb_runtime.h +145 -0
  835. package/src/platforms/gbc/lib/c/hUGEDriver.c +191 -0
  836. package/src/platforms/gbc/lib/c/hUGEDriver.h +95 -0
  837. package/src/platforms/gbc/lib/c/hUGEDriver.upstream.asm +1908 -0
  838. package/src/platforms/gbc/lib/c/lcd_init.c +19 -0
  839. package/src/platforms/gbc/lib/c/patch-header.js +154 -0
  840. package/src/platforms/gbc/lib/c/song_data.c +88 -0
  841. package/src/platforms/gbc/lib/c/unroll.h +52 -0
  842. package/src/platforms/gbc/lib/c/wait_vblank.c +14 -0
  843. package/src/platforms/gbc/song.js +3 -0
  844. package/src/platforms/genesis/MENTAL_MODEL.md +306 -0
  845. package/src/platforms/genesis/TROUBLESHOOTING.md +226 -0
  846. package/src/platforms/genesis/UPSTREAM_SOURCES.md +53 -0
  847. package/src/platforms/genesis/image-to-tilemap.js +351 -0
  848. package/src/platforms/genesis/lib/README.md +160 -0
  849. package/src/platforms/genesis/lib/c/crtbegin.o +0 -0
  850. package/src/platforms/genesis/lib/c/crtend.o +0 -0
  851. package/src/platforms/genesis/lib/c/genesis.ld +44 -0
  852. package/src/platforms/genesis/lib/c/genesis_sfx.c +51 -0
  853. package/src/platforms/genesis/lib/c/genesis_sfx.h +49 -0
  854. package/src/platforms/genesis/lib/c/libc.a +0 -0
  855. package/src/platforms/genesis/lib/c/libgcc.a +0 -0
  856. package/src/platforms/genesis/lib/c/libm.a +0 -0
  857. package/src/platforms/genesis/lib/c/sega.s +71 -0
  858. package/src/platforms/genesis/lib/header.s +96 -0
  859. package/src/platforms/genesis/lib/nmi_safe.s +79 -0
  860. package/src/platforms/genesis/lib/pad_read.s +104 -0
  861. package/src/platforms/genesis/lib/sgdk/COPYING.RUNTIME +73 -0
  862. package/src/platforms/genesis/lib/sgdk/LICENSE +12 -0
  863. package/src/platforms/genesis/lib/sgdk/include/asm.h +52 -0
  864. package/src/platforms/genesis/lib/sgdk/include/asm_mac.i +9 -0
  865. package/src/platforms/genesis/lib/sgdk/include/bmp.h +690 -0
  866. package/src/platforms/genesis/lib/sgdk/include/config.h +208 -0
  867. package/src/platforms/genesis/lib/sgdk/include/dma.h +542 -0
  868. package/src/platforms/genesis/lib/sgdk/include/ext/console.h +387 -0
  869. package/src/platforms/genesis/lib/sgdk/include/ext/everdrive.h +116 -0
  870. package/src/platforms/genesis/lib/sgdk/include/ext/fat16.h +84 -0
  871. package/src/platforms/genesis/lib/sgdk/include/ext/flash-save/flash.h +164 -0
  872. package/src/platforms/genesis/lib/sgdk/include/ext/flash-save/saveman.h +177 -0
  873. package/src/platforms/genesis/lib/sgdk/include/ext/link_cable.h +316 -0
  874. package/src/platforms/genesis/lib/sgdk/include/ext/minimusic/minimus.h +29 -0
  875. package/src/platforms/genesis/lib/sgdk/include/ext/mw/16c550.h +221 -0
  876. package/src/platforms/genesis/lib/sgdk/include/ext/mw/comm.h +93 -0
  877. package/src/platforms/genesis/lib/sgdk/include/ext/mw/gamejolt.h +541 -0
  878. package/src/platforms/genesis/lib/sgdk/include/ext/mw/jsmn.h +471 -0
  879. package/src/platforms/genesis/lib/sgdk/include/ext/mw/json.h +122 -0
  880. package/src/platforms/genesis/lib/sgdk/include/ext/mw/lsd.h +172 -0
  881. package/src/platforms/genesis/lib/sgdk/include/ext/mw/megawifi.h +984 -0
  882. package/src/platforms/genesis/lib/sgdk/include/ext/mw/mw-msg.h +392 -0
  883. package/src/platforms/genesis/lib/sgdk/include/ext/mw/ssf_ed_pro.h +38 -0
  884. package/src/platforms/genesis/lib/sgdk/include/ext/mw/ssf_ed_x7.h +73 -0
  885. package/src/platforms/genesis/lib/sgdk/include/ext/serial/buffer.h +8 -0
  886. package/src/platforms/genesis/lib/sgdk/include/ext/serial/serial.h +133 -0
  887. package/src/platforms/genesis/lib/sgdk/include/ext/stb/stb_sprintf.h +1864 -0
  888. package/src/platforms/genesis/lib/sgdk/include/genesis.h +92 -0
  889. package/src/platforms/genesis/lib/sgdk/include/joy.h +482 -0
  890. package/src/platforms/genesis/lib/sgdk/include/kdebug.h +21 -0
  891. package/src/platforms/genesis/lib/sgdk/include/map.h +409 -0
  892. package/src/platforms/genesis/lib/sgdk/include/mapper.h +186 -0
  893. package/src/platforms/genesis/lib/sgdk/include/maths.h +1071 -0
  894. package/src/platforms/genesis/lib/sgdk/include/maths3D.h +480 -0
  895. package/src/platforms/genesis/lib/sgdk/include/memory.h +346 -0
  896. package/src/platforms/genesis/lib/sgdk/include/memory_base.h +37 -0
  897. package/src/platforms/genesis/lib/sgdk/include/object.h +171 -0
  898. package/src/platforms/genesis/lib/sgdk/include/pal.h +500 -0
  899. package/src/platforms/genesis/lib/sgdk/include/pool.h +171 -0
  900. package/src/platforms/genesis/lib/sgdk/include/psg.h +153 -0
  901. package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_dpcm2.h +79 -0
  902. package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_pcm.h +98 -0
  903. package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_pcm4.h +125 -0
  904. package/src/platforms/genesis/lib/sgdk/include/snd/pcm/tab_vol.h +6 -0
  905. package/src/platforms/genesis/lib/sgdk/include/snd/smp_null.h +6 -0
  906. package/src/platforms/genesis/lib/sgdk/include/snd/smp_null_dpcm.h +6 -0
  907. package/src/platforms/genesis/lib/sgdk/include/snd/sound.h +70 -0
  908. package/src/platforms/genesis/lib/sgdk/include/snd/xgm.h +399 -0
  909. package/src/platforms/genesis/lib/sgdk/include/snd/xgm2.h +389 -0
  910. package/src/platforms/genesis/lib/sgdk/include/snd/z80_def.i80 +41 -0
  911. package/src/platforms/genesis/lib/sgdk/include/snd/z80_fct.i80 +83 -0
  912. package/src/platforms/genesis/lib/sgdk/include/snd/z80_mac.i80 +1476 -0
  913. package/src/platforms/genesis/lib/sgdk/include/sprite_eng.h +1095 -0
  914. package/src/platforms/genesis/lib/sgdk/include/sprite_eng_legacy.h +1030 -0
  915. package/src/platforms/genesis/lib/sgdk/include/sram.h +110 -0
  916. package/src/platforms/genesis/lib/sgdk/include/string.h +349 -0
  917. package/src/platforms/genesis/lib/sgdk/include/sys.h +511 -0
  918. package/src/platforms/genesis/lib/sgdk/include/tab_cnv.h +19 -0
  919. package/src/platforms/genesis/lib/sgdk/include/task.h +77 -0
  920. package/src/platforms/genesis/lib/sgdk/include/task_cst.h +33 -0
  921. package/src/platforms/genesis/lib/sgdk/include/timer.h +132 -0
  922. package/src/platforms/genesis/lib/sgdk/include/tools.h +450 -0
  923. package/src/platforms/genesis/lib/sgdk/include/types.h +320 -0
  924. package/src/platforms/genesis/lib/sgdk/include/vdp.h +1150 -0
  925. package/src/platforms/genesis/lib/sgdk/include/vdp_bg.h +723 -0
  926. package/src/platforms/genesis/lib/sgdk/include/vdp_pal.h +101 -0
  927. package/src/platforms/genesis/lib/sgdk/include/vdp_spr.h +448 -0
  928. package/src/platforms/genesis/lib/sgdk/include/vdp_tile.h +1136 -0
  929. package/src/platforms/genesis/lib/sgdk/include/vram.h +270 -0
  930. package/src/platforms/genesis/lib/sgdk/include/ym2612.h +87 -0
  931. package/src/platforms/genesis/lib/sgdk/include/z80_ctrl.h +420 -0
  932. package/src/platforms/genesis/lib/sgdk/libmd.seed.a +0 -0
  933. package/src/platforms/genesis/lib/sgdk/libmd.seed.hash +1 -0
  934. package/src/platforms/genesis/lib/sgdk/md.ld +120 -0
  935. package/src/platforms/genesis/lib/sgdk/music/demo.vgm +0 -0
  936. package/src/platforms/genesis/lib/sgdk/music/demo.xgc +0 -0
  937. package/src/platforms/genesis/lib/sgdk/music/demo.xgm +0 -0
  938. package/src/platforms/genesis/lib/sgdk/res/image/font_default.png +0 -0
  939. package/src/platforms/genesis/lib/sgdk/res/image/sgdk_logo.png +0 -0
  940. package/src/platforms/genesis/lib/sgdk/res/libres.h +10 -0
  941. package/src/platforms/genesis/lib/sgdk/res/libres.res +5 -0
  942. package/src/platforms/genesis/lib/sgdk/res/libres.s +166 -0
  943. package/src/platforms/genesis/lib/sgdk/res/sound/stop_xgm.bin +0 -0
  944. package/src/platforms/genesis/lib/sgdk/rom_header.c +33 -0
  945. package/src/platforms/genesis/lib/sgdk/sega.preprocessed.s +364 -0
  946. package/src/platforms/genesis/lib/sgdk/sega.s +365 -0
  947. package/src/platforms/genesis/lib/sgdk/src/bmp.c +1539 -0
  948. package/src/platforms/genesis/lib/sgdk/src/bmp_a.s +3477 -0
  949. package/src/platforms/genesis/lib/sgdk/src/boot/rom_header.c +33 -0
  950. package/src/platforms/genesis/lib/sgdk/src/boot/sega.s +365 -0
  951. package/src/platforms/genesis/lib/sgdk/src/dma.c +782 -0
  952. package/src/platforms/genesis/lib/sgdk/src/dma_a.s +23 -0
  953. package/src/platforms/genesis/lib/sgdk/src/error_a.s +376 -0
  954. package/src/platforms/genesis/lib/sgdk/src/ext/console.c +490 -0
  955. package/src/platforms/genesis/lib/sgdk/src/ext/everdrive.c +285 -0
  956. package/src/platforms/genesis/lib/sgdk/src/ext/fat16.c +610 -0
  957. package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/README.md +112 -0
  958. package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/flash.c +300 -0
  959. package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/saveman.c +641 -0
  960. package/src/platforms/genesis/lib/sgdk/src/ext/link_cable.c +1758 -0
  961. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/CHANGELOG.md +31 -0
  962. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/LICENSE.txt +17 -0
  963. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/README.md +18 -0
  964. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/data.z80 +148 -0
  965. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/define.z80 +173 -0
  966. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/api-c.md +80 -0
  967. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/format.md +132 -0
  968. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/teradrive.md +33 -0
  969. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/fm.z80 +363 -0
  970. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/main.z80 +433 -0
  971. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/minimus.c +129 -0
  972. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/minimus_drv.s80 +17 -0
  973. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/psg.z80 +231 -0
  974. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/track.z80 +398 -0
  975. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/util.z80 +98 -0
  976. package/src/platforms/genesis/lib/sgdk/src/ext/mw/16c550.c +84 -0
  977. package/src/platforms/genesis/lib/sgdk/src/ext/mw/README.md +849 -0
  978. package/src/platforms/genesis/lib/sgdk/src/ext/mw/comm.c +141 -0
  979. package/src/platforms/genesis/lib/sgdk/src/ext/mw/gamejolt.c +758 -0
  980. package/src/platforms/genesis/lib/sgdk/src/ext/mw/json.c +153 -0
  981. package/src/platforms/genesis/lib/sgdk/src/ext/mw/lsd.c +364 -0
  982. package/src/platforms/genesis/lib/sgdk/src/ext/mw/megawifi.c +1501 -0
  983. package/src/platforms/genesis/lib/sgdk/src/ext/mw/ssf_ed_pro.c +98 -0
  984. package/src/platforms/genesis/lib/sgdk/src/ext/mw/ssf_ed_x7.c +67 -0
  985. package/src/platforms/genesis/lib/sgdk/src/ext/serial/buffer.c +69 -0
  986. package/src/platforms/genesis/lib/sgdk/src/ext/serial/serial.c +158 -0
  987. package/src/platforms/genesis/lib/sgdk/src/joy.c +1361 -0
  988. package/src/platforms/genesis/lib/sgdk/src/kdebug.s +109 -0
  989. package/src/platforms/genesis/lib/sgdk/src/map.c +1915 -0
  990. package/src/platforms/genesis/lib/sgdk/src/mapper.c +280 -0
  991. package/src/platforms/genesis/lib/sgdk/src/maths.c +878 -0
  992. package/src/platforms/genesis/lib/sgdk/src/maths3D.c +480 -0
  993. package/src/platforms/genesis/lib/sgdk/src/maths3D_a.s +205 -0
  994. package/src/platforms/genesis/lib/sgdk/src/memory.c +760 -0
  995. package/src/platforms/genesis/lib/sgdk/src/memory_a.s +306 -0
  996. package/src/platforms/genesis/lib/sgdk/src/object.c +111 -0
  997. package/src/platforms/genesis/lib/sgdk/src/pal.c +484 -0
  998. package/src/platforms/genesis/lib/sgdk/src/pool.c +234 -0
  999. package/src/platforms/genesis/lib/sgdk/src/psg.c +82 -0
  1000. package/src/platforms/genesis/lib/sgdk/src/snd/drv_null.s80 +27 -0
  1001. package/src/platforms/genesis/lib/sgdk/src/snd/drv_xgm.s80 +3037 -0
  1002. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_dpcm2.s80 +984 -0
  1003. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_pcm.s80 +592 -0
  1004. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_pcm4.s80 +699 -0
  1005. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_dpcm2.c +172 -0
  1006. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_pcm.c +152 -0
  1007. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_pcm4.c +213 -0
  1008. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/tab_vol.c +277 -0
  1009. package/src/platforms/genesis/lib/sgdk/src/snd/smp_null.s +22 -0
  1010. package/src/platforms/genesis/lib/sgdk/src/snd/smp_null_dpcm.s +15 -0
  1011. package/src/platforms/genesis/lib/sgdk/src/snd/sound.c +33 -0
  1012. package/src/platforms/genesis/lib/sgdk/src/snd/xgm.c +683 -0
  1013. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2.s80 +993 -0
  1014. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_fct.i80 +611 -0
  1015. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_mac.i80 +133 -0
  1016. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_pcm_fct.i80 +114 -0
  1017. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_pcm_mac.i80 +1444 -0
  1018. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_psg_fct.i80 +491 -0
  1019. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_psg_mac.i80 +43 -0
  1020. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_ym_fct.i80 +1664 -0
  1021. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_ym_mac.i80 +295 -0
  1022. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2.c +1083 -0
  1023. package/src/platforms/genesis/lib/sgdk/src/sprite_eng.c +2256 -0
  1024. package/src/platforms/genesis/lib/sgdk/src/sprite_eng_legacy.c +2309 -0
  1025. package/src/platforms/genesis/lib/sgdk/src/sram.c +30 -0
  1026. package/src/platforms/genesis/lib/sgdk/src/sram_a.s +41 -0
  1027. package/src/platforms/genesis/lib/sgdk/src/string.c +720 -0
  1028. package/src/platforms/genesis/lib/sgdk/src/sys.c +1053 -0
  1029. package/src/platforms/genesis/lib/sgdk/src/sys_a.s +74 -0
  1030. package/src/platforms/genesis/lib/sgdk/src/tab_cnv.c +129 -0
  1031. package/src/platforms/genesis/lib/sgdk/src/tab_log10.c +8201 -0
  1032. package/src/platforms/genesis/lib/sgdk/src/tab_log2.c +8201 -0
  1033. package/src/platforms/genesis/lib/sgdk/src/tab_sin.c +2058 -0
  1034. package/src/platforms/genesis/lib/sgdk/src/tab_sqrt.c +8201 -0
  1035. package/src/platforms/genesis/lib/sgdk/src/task.s +148 -0
  1036. package/src/platforms/genesis/lib/sgdk/src/timer.c +201 -0
  1037. package/src/platforms/genesis/lib/sgdk/src/tools.c +1299 -0
  1038. package/src/platforms/genesis/lib/sgdk/src/tools_a.s +979 -0
  1039. package/src/platforms/genesis/lib/sgdk/src/types.c +18 -0
  1040. package/src/platforms/genesis/lib/sgdk/src/vdp.c +1060 -0
  1041. package/src/platforms/genesis/lib/sgdk/src/vdp_bg.c +511 -0
  1042. package/src/platforms/genesis/lib/sgdk/src/vdp_spr.c +322 -0
  1043. package/src/platforms/genesis/lib/sgdk/src/vdp_tile.c +1011 -0
  1044. package/src/platforms/genesis/lib/sgdk/src/vdp_tile_a.s +68 -0
  1045. package/src/platforms/genesis/lib/sgdk/src/vram.c +273 -0
  1046. package/src/platforms/genesis/lib/sgdk/src/ym2612.c +175 -0
  1047. package/src/platforms/genesis/lib/sgdk/src/z80_ctrl.c +334 -0
  1048. package/src/platforms/genesis/lib/sprite_table.s +129 -0
  1049. package/src/platforms/genesis/lib/vblank_wait.s +73 -0
  1050. package/src/platforms/genesis/lib/vdp_init.s +85 -0
  1051. package/src/platforms/genesis/lib/wram.s +88 -0
  1052. package/src/platforms/genesis/lib/z80_bootstrap.s +102 -0
  1053. package/src/platforms/genesis/vdp.js +548 -0
  1054. package/src/platforms/genesis/xgm2-pcm.js +165 -0
  1055. package/src/platforms/gg/MENTAL_MODEL.md +174 -0
  1056. package/src/platforms/gg/TROUBLESHOOTING.md +105 -0
  1057. package/src/platforms/gg/UPSTREAM_SOURCES.md +36 -0
  1058. package/src/platforms/gg/lib/c/gg_crt0.s +112 -0
  1059. package/src/platforms/gg/lib/c/gg_hw.h +62 -0
  1060. package/src/platforms/gg/lib/c/gg_music.c +155 -0
  1061. package/src/platforms/gg/lib/c/gg_music.h +89 -0
  1062. package/src/platforms/gg/lib/c/gg_sfx.c +82 -0
  1063. package/src/platforms/gg/lib/c/gg_sfx.h +40 -0
  1064. package/src/platforms/gg/lib/c/joypad_read.c +22 -0
  1065. package/src/platforms/gg/lib/c/load_palette.c +20 -0
  1066. package/src/platforms/gg/lib/c/load_tiles.c +32 -0
  1067. package/src/platforms/gg/lib/c/sprite_table.c +60 -0
  1068. package/src/platforms/gg/lib/c/vblank_wait.c +10 -0
  1069. package/src/platforms/gg/lib/c/vdp_init.c +58 -0
  1070. package/src/platforms/gg/song.js +189 -0
  1071. package/src/platforms/index.js +7 -0
  1072. package/src/platforms/lynx/MENTAL_MODEL.md +248 -0
  1073. package/src/platforms/lynx/TROUBLESHOOTING.md +105 -0
  1074. package/src/platforms/lynx/UPSTREAM_SOURCES.md +66 -0
  1075. package/src/platforms/lynx/lib/c/lynx_music.c +63 -0
  1076. package/src/platforms/lynx/lib/c/lynx_music.h +16 -0
  1077. package/src/platforms/lynx/lib/c/lynx_sfx.c +147 -0
  1078. package/src/platforms/lynx/lib/c/lynx_sfx.h +59 -0
  1079. package/src/platforms/lynx/lib/cc65-src/bllhdr.s +18 -0
  1080. package/src/platforms/lynx/lib/cc65-src/bootldr.s +195 -0
  1081. package/src/platforms/lynx/lib/cc65-src/cgetc.s +69 -0
  1082. package/src/platforms/lynx/lib/cc65-src/clock.s +87 -0
  1083. package/src/platforms/lynx/lib/cc65-src/crt0.s +135 -0
  1084. package/src/platforms/lynx/lib/cc65-src/defdir.s +29 -0
  1085. package/src/platforms/lynx/lib/cc65-src/eeprom.s +255 -0
  1086. package/src/platforms/lynx/lib/cc65-src/eeprom46.s +204 -0
  1087. package/src/platforms/lynx/lib/cc65-src/eeprom66.s +227 -0
  1088. package/src/platforms/lynx/lib/cc65-src/eeprom86.s +236 -0
  1089. package/src/platforms/lynx/lib/cc65-src/exec.s +34 -0
  1090. package/src/platforms/lynx/lib/cc65-src/exehdr.s +27 -0
  1091. package/src/platforms/lynx/lib/cc65-src/extzp.inc +23 -0
  1092. package/src/platforms/lynx/lib/cc65-src/extzp.s +30 -0
  1093. package/src/platforms/lynx/lib/cc65-src/irq.s +45 -0
  1094. package/src/platforms/lynx/lib/cc65-src/joy/lynx-stdjoy.s +93 -0
  1095. package/src/platforms/lynx/lib/cc65-src/joy_stat_stddrv.s +14 -0
  1096. package/src/platforms/lynx/lib/cc65-src/kbhit.s +56 -0
  1097. package/src/platforms/lynx/lib/cc65-src/libref.s +9 -0
  1098. package/src/platforms/lynx/lib/cc65-src/load.s +41 -0
  1099. package/src/platforms/lynx/lib/cc65-src/lseek.s +58 -0
  1100. package/src/platforms/lynx/lib/cc65-src/lynx-cart.s +98 -0
  1101. package/src/platforms/lynx/lib/cc65-src/lynx-snd.s +1270 -0
  1102. package/src/platforms/lynx/lib/cc65-src/mainargs.s +24 -0
  1103. package/src/platforms/lynx/lib/cc65-src/open.s +136 -0
  1104. package/src/platforms/lynx/lib/cc65-src/oserror.s +14 -0
  1105. package/src/platforms/lynx/lib/cc65-src/read.s +44 -0
  1106. package/src/platforms/lynx/lib/cc65-src/ser/lynx-comlynx.s +404 -0
  1107. package/src/platforms/lynx/lib/cc65-src/ser_stat_stddrv.s +14 -0
  1108. package/src/platforms/lynx/lib/cc65-src/sysuname.s +39 -0
  1109. package/src/platforms/lynx/lib/cc65-src/tgi/lynx-160-102-16.s +1075 -0
  1110. package/src/platforms/lynx/lib/cc65-src/tgi_colors.s +9 -0
  1111. package/src/platforms/lynx/lib/cc65-src/tgi_irq.s +11 -0
  1112. package/src/platforms/lynx/lib/cc65-src/tgi_stat_stddrv.s +14 -0
  1113. package/src/platforms/lynx/lib/cc65-src/tgi_stddrv.s +13 -0
  1114. package/src/platforms/lynx/lib/cc65-src/uploader.s +81 -0
  1115. package/src/platforms/lynx/song.js +291 -0
  1116. package/src/platforms/msx/MENTAL_MODEL.md +115 -0
  1117. package/src/platforms/msx/TROUBLESHOOTING.md +62 -0
  1118. package/src/platforms/msx/UPSTREAM_SOURCES.md +46 -0
  1119. package/src/platforms/msx/image-to-tilemap.js +103 -0
  1120. package/src/platforms/msx/lib/c/hello_msx.c +51 -0
  1121. package/src/platforms/msx/lib/c/msx_crt0.s +74 -0
  1122. package/src/platforms/msx/lib/c/msx_hw.h +92 -0
  1123. package/src/platforms/msx/lib/c/msx_vdp.c +150 -0
  1124. package/src/platforms/msx/tiles.js +99 -0
  1125. package/src/platforms/msx/vdp.js +160 -0
  1126. package/src/platforms/nes/MENTAL_MODEL.md +323 -0
  1127. package/src/platforms/nes/TROUBLESHOOTING.md +319 -0
  1128. package/src/platforms/nes/UPSTREAM_SOURCES.md +31 -0
  1129. package/src/platforms/nes/image-to-chr.js +195 -0
  1130. package/src/platforms/nes/image-to-tilemap.js +415 -0
  1131. package/src/platforms/nes/lib/README.md +40 -0
  1132. package/src/platforms/nes/lib/asm/LICENSE-FAMITONE +40 -0
  1133. package/src/platforms/nes/lib/asm/chr_ram_header.s +32 -0
  1134. package/src/platforms/nes/lib/asm/famitone2.s +1258 -0
  1135. package/src/platforms/nes/lib/asm/famitone_bridge.s +50 -0
  1136. package/src/platforms/nes/lib/asm/music_data.s +238 -0
  1137. package/src/platforms/nes/lib/c/chr_ram_runtime_hello_sprite.c +81 -0
  1138. package/src/platforms/nes/lib/c/chr_ram_runtime_hud_row.c +101 -0
  1139. package/src/platforms/nes/lib/c/nes_runtime.c +347 -0
  1140. package/src/platforms/nes/lib/c/nes_runtime.h +153 -0
  1141. package/src/platforms/nes/lib/c/nmi_handler.c +51 -0
  1142. package/src/platforms/nes/lib/c/nmi_trampoline.s +25 -0
  1143. package/src/platforms/nes/lib/cc65-src/Makefile.inc +9 -0
  1144. package/src/platforms/nes/lib/cc65-src/_scrsize.s +24 -0
  1145. package/src/platforms/nes/lib/cc65-src/cclear.s +29 -0
  1146. package/src/platforms/nes/lib/cc65-src/chline.s +31 -0
  1147. package/src/platforms/nes/lib/cc65-src/clock.s +31 -0
  1148. package/src/platforms/nes/lib/cc65-src/clrscr.s +72 -0
  1149. package/src/platforms/nes/lib/cc65-src/color.s +68 -0
  1150. package/src/platforms/nes/lib/cc65-src/cpeekc.s +37 -0
  1151. package/src/platforms/nes/lib/cc65-src/cpeekcolor.s +8 -0
  1152. package/src/platforms/nes/lib/cc65-src/cpeekrevers.s +37 -0
  1153. package/src/platforms/nes/lib/cc65-src/cputc.s +95 -0
  1154. package/src/platforms/nes/lib/cc65-src/crt0.s +180 -0
  1155. package/src/platforms/nes/lib/cc65-src/cvline.s +31 -0
  1156. package/src/platforms/nes/lib/cc65-src/get_tv.s +37 -0
  1157. package/src/platforms/nes/lib/cc65-src/gotox.s +21 -0
  1158. package/src/platforms/nes/lib/cc65-src/gotoxy.s +22 -0
  1159. package/src/platforms/nes/lib/cc65-src/gotoy.s +22 -0
  1160. package/src/platforms/nes/lib/cc65-src/irq.s +19 -0
  1161. package/src/platforms/nes/lib/cc65-src/joy/nes-stdjoy.s +102 -0
  1162. package/src/platforms/nes/lib/cc65-src/joy_stat_stddrv.s +14 -0
  1163. package/src/platforms/nes/lib/cc65-src/libref.s +9 -0
  1164. package/src/platforms/nes/lib/cc65-src/mainargs.s +24 -0
  1165. package/src/platforms/nes/lib/cc65-src/neschar.s +4616 -0
  1166. package/src/platforms/nes/lib/cc65-src/ppu.s +158 -0
  1167. package/src/platforms/nes/lib/cc65-src/ppubuf.s +117 -0
  1168. package/src/platforms/nes/lib/cc65-src/randomize.s +18 -0
  1169. package/src/platforms/nes/lib/cc65-src/revers.s +27 -0
  1170. package/src/platforms/nes/lib/cc65-src/setcursor.s +37 -0
  1171. package/src/platforms/nes/lib/cc65-src/sysuname.s +39 -0
  1172. package/src/platforms/nes/lib/cc65-src/tgi/nes-64-56-2.s +480 -0
  1173. package/src/platforms/nes/lib/cc65-src/tgi_stat_stddrv.s +14 -0
  1174. package/src/platforms/nes/lib/cc65-src/tgi_stddrv.s +13 -0
  1175. package/src/platforms/nes/lib/cc65-src/waitvsync.s +18 -0
  1176. package/src/platforms/nes/lib/cc65-src/wherex.s +19 -0
  1177. package/src/platforms/nes/lib/cc65-src/wherey.s +19 -0
  1178. package/src/platforms/nes/lib/clear_nametable.s +38 -0
  1179. package/src/platforms/nes/lib/clear_oam.s +18 -0
  1180. package/src/platforms/nes/lib/load_palette.s +31 -0
  1181. package/src/platforms/nes/lib/nmi_safe.s +65 -0
  1182. package/src/platforms/nes/lib/oam_dma.s +16 -0
  1183. package/src/platforms/nes/lib/read_pad.s +46 -0
  1184. package/src/platforms/nes/lib/reset.s +46 -0
  1185. package/src/platforms/nes/lib/sprite_table_populate.s +75 -0
  1186. package/src/platforms/nes/lib/wait_vblank.s +12 -0
  1187. package/src/platforms/nes/palette.js +39 -0
  1188. package/src/platforms/nes/ppu.js +448 -0
  1189. package/src/platforms/pce/MENTAL_MODEL.md +98 -0
  1190. package/src/platforms/pce/TROUBLESHOOTING.md +54 -0
  1191. package/src/platforms/pce/UPSTREAM_SOURCES.md +38 -0
  1192. package/src/platforms/pce/image-to-tilemap.js +123 -0
  1193. package/src/platforms/pce/lib/c/hello_pce.c +37 -0
  1194. package/src/platforms/pce/lib/c/pce_hw.h +130 -0
  1195. package/src/platforms/pce/lib/c/pce_input.c +36 -0
  1196. package/src/platforms/pce/lib/c/pce_sound.c +53 -0
  1197. package/src/platforms/pce/lib/c/pce_video.c +113 -0
  1198. package/src/platforms/pce/tiles.js +92 -0
  1199. package/src/platforms/pce/vce.js +59 -0
  1200. package/src/platforms/pce/vdc.js +52 -0
  1201. package/src/platforms/sms/MENTAL_MODEL.md +286 -0
  1202. package/src/platforms/sms/TROUBLESHOOTING.md +140 -0
  1203. package/src/platforms/sms/UPSTREAM_SOURCES.md +29 -0
  1204. package/src/platforms/sms/image-to-tilemap.js +260 -0
  1205. package/src/platforms/sms/lib/README.md +117 -0
  1206. package/src/platforms/sms/lib/c/joypad_read.c +33 -0
  1207. package/src/platforms/sms/lib/c/load_palette.c +24 -0
  1208. package/src/platforms/sms/lib/c/load_tiles.c +32 -0
  1209. package/src/platforms/sms/lib/c/sms_crt0.s +101 -0
  1210. package/src/platforms/sms/lib/c/sms_hw.h +53 -0
  1211. package/src/platforms/sms/lib/c/sms_music.c +178 -0
  1212. package/src/platforms/sms/lib/c/sms_music.h +50 -0
  1213. package/src/platforms/sms/lib/c/sms_sfx.c +82 -0
  1214. package/src/platforms/sms/lib/c/sms_sfx.h +40 -0
  1215. package/src/platforms/sms/lib/c/sprite_table.c +60 -0
  1216. package/src/platforms/sms/lib/c/vblank_wait.c +10 -0
  1217. package/src/platforms/sms/lib/c/vdp_init.c +58 -0
  1218. package/src/platforms/sms/lib/header.s +33 -0
  1219. package/src/platforms/sms/lib/joypad_read.s +40 -0
  1220. package/src/platforms/sms/lib/load_palette.s +30 -0
  1221. package/src/platforms/sms/lib/load_tiles.s +50 -0
  1222. package/src/platforms/sms/lib/sprite_table.s +44 -0
  1223. package/src/platforms/sms/lib/vblank_wait.s +36 -0
  1224. package/src/platforms/sms/lib/vdp_init.s +47 -0
  1225. package/src/platforms/sms/song.js +217 -0
  1226. package/src/platforms/sms/vdp.js +530 -0
  1227. package/src/platforms/snes/MENTAL_MODEL.md +289 -0
  1228. package/src/platforms/snes/TROUBLESHOOTING.md +208 -0
  1229. package/src/platforms/snes/UPSTREAM_SOURCES.md +50 -0
  1230. package/src/platforms/snes/brr.js +208 -0
  1231. package/src/platforms/snes/image-to-tilemap.js +227 -0
  1232. package/src/platforms/snes/lib/audio/apu_blob.asm +228 -0
  1233. package/src/platforms/snes/lib/audio/apu_blob.bin +0 -0
  1234. package/src/platforms/snes/lib/audio/explosion.brr +0 -0
  1235. package/src/platforms/snes/lib/audio/sample_bank.bin +0 -0
  1236. package/src/platforms/snes/lib/audio/shoot.brr +0 -0
  1237. package/src/platforms/snes/lib/audio/spc_driver.asm +241 -0
  1238. package/src/platforms/snes/lib/audio_pipeline.asm +62 -0
  1239. package/src/platforms/snes/lib/c/crt0.asm +125 -0
  1240. package/src/platforms/snes/lib/c/hdr.asm +50 -0
  1241. package/src/platforms/snes/lib/c/snes_sfx.c +116 -0
  1242. package/src/platforms/snes/lib/c/snes_sfx.h +96 -0
  1243. package/src/platforms/snes/lib/c/snes_sfx_data.asm +25 -0
  1244. package/src/platforms/snes/lib/cgram_upload.asm +43 -0
  1245. package/src/platforms/snes/lib/lorom_header.asm +47 -0
  1246. package/src/platforms/snes/lib/lorom_multibank.asm +66 -0
  1247. package/src/platforms/snes/lib/nmi_safe.asm +77 -0
  1248. package/src/platforms/snes/lib/oam_upload.asm +45 -0
  1249. package/src/platforms/snes/lib/pad_read.asm +64 -0
  1250. package/src/platforms/snes/lib/pvsneslib/LICENSE +21 -0
  1251. package/src/platforms/snes/lib/pvsneslib/include/ctype.h +6 -0
  1252. package/src/platforms/snes/lib/pvsneslib/include/float.h +4 -0
  1253. package/src/platforms/snes/lib/pvsneslib/include/hdr.asm +47 -0
  1254. package/src/platforms/snes/lib/pvsneslib/include/limits.h +13 -0
  1255. package/src/platforms/snes/lib/pvsneslib/include/math.h +10 -0
  1256. package/src/platforms/snes/lib/pvsneslib/include/setjmp.h +4 -0
  1257. package/src/platforms/snes/lib/pvsneslib/include/snes/background.h +396 -0
  1258. package/src/platforms/snes/lib/pvsneslib/include/snes/console.h +188 -0
  1259. package/src/platforms/snes/lib/pvsneslib/include/snes/dma.h +381 -0
  1260. package/src/platforms/snes/lib/pvsneslib/include/snes/input.h +289 -0
  1261. package/src/platforms/snes/lib/pvsneslib/include/snes/interrupt.h +264 -0
  1262. package/src/platforms/snes/lib/pvsneslib/include/snes/libversion.h +10 -0
  1263. package/src/platforms/snes/lib/pvsneslib/include/snes/lzss.h +43 -0
  1264. package/src/platforms/snes/lib/pvsneslib/include/snes/map.h +113 -0
  1265. package/src/platforms/snes/lib/pvsneslib/include/snes/object.h +234 -0
  1266. package/src/platforms/snes/lib/pvsneslib/include/snes/pixel.h +53 -0
  1267. package/src/platforms/snes/lib/pvsneslib/include/snes/scores.h +66 -0
  1268. package/src/platforms/snes/lib/pvsneslib/include/snes/snestypes.h +65 -0
  1269. package/src/platforms/snes/lib/pvsneslib/include/snes/sound.h +245 -0
  1270. package/src/platforms/snes/lib/pvsneslib/include/snes/sprite.h +456 -0
  1271. package/src/platforms/snes/lib/pvsneslib/include/snes/video.h +465 -0
  1272. package/src/platforms/snes/lib/pvsneslib/include/snes.h +190 -0
  1273. package/src/platforms/snes/lib/pvsneslib/include/stdarg.h +28 -0
  1274. package/src/platforms/snes/lib/pvsneslib/include/stdbool.h +53 -0
  1275. package/src/platforms/snes/lib/pvsneslib/include/stddef.h +27 -0
  1276. package/src/platforms/snes/lib/pvsneslib/include/stdint.h +7 -0
  1277. package/src/platforms/snes/lib/pvsneslib/include/stdio.h +9 -0
  1278. package/src/platforms/snes/lib/pvsneslib/include/stdlib.h +13 -0
  1279. package/src/platforms/snes/lib/pvsneslib/include/string.h +19 -0
  1280. package/src/platforms/snes/lib/pvsneslib/include/strings.h +5 -0
  1281. package/src/platforms/snes/lib/pvsneslib/source/Makefile +87 -0
  1282. package/src/platforms/snes/lib/pvsneslib/source/backgrounds.asm +834 -0
  1283. package/src/platforms/snes/lib/pvsneslib/source/consoles.asm +1028 -0
  1284. package/src/platforms/snes/lib/pvsneslib/source/crt0_snes.asm +329 -0
  1285. package/src/platforms/snes/lib/pvsneslib/source/dmas.asm +1275 -0
  1286. package/src/platforms/snes/lib/pvsneslib/source/hdr.asm +56 -0
  1287. package/src/platforms/snes/lib/pvsneslib/source/input.asm +445 -0
  1288. package/src/platforms/snes/lib/pvsneslib/source/libc.asm +485 -0
  1289. package/src/platforms/snes/lib/pvsneslib/source/libc_c.c +1214 -0
  1290. package/src/platforms/snes/lib/pvsneslib/source/libm.asm +510 -0
  1291. package/src/platforms/snes/lib/pvsneslib/source/libtcc.asm +374 -0
  1292. package/src/platforms/snes/lib/pvsneslib/source/lzsss.asm +256 -0
  1293. package/src/platforms/snes/lib/pvsneslib/source/maps.asm +1078 -0
  1294. package/src/platforms/snes/lib/pvsneslib/source/objects.asm +2881 -0
  1295. package/src/platforms/snes/lib/pvsneslib/source/scores.asm +226 -0
  1296. package/src/platforms/snes/lib/pvsneslib/source/sm_spc.asm +187 -0
  1297. package/src/platforms/snes/lib/pvsneslib/source/snesmodwla.asm +1186 -0
  1298. package/src/platforms/snes/lib/pvsneslib/source/sounds.asm +273 -0
  1299. package/src/platforms/snes/lib/pvsneslib/source/sprites.asm +3946 -0
  1300. package/src/platforms/snes/lib/pvsneslib/source/vblank.asm +917 -0
  1301. package/src/platforms/snes/lib/pvsneslib/source/videos.asm +1137 -0
  1302. package/src/platforms/snes/lib/reset_init.asm +31 -0
  1303. package/src/platforms/snes/lib/sprite_table_populate.asm +122 -0
  1304. package/src/platforms/snes/lib/vram_dma_upload.asm +42 -0
  1305. package/src/platforms/snes/ppu.js +606 -0
  1306. package/src/platforms/snes/song.js +128 -0
  1307. package/src/playtest/playtest.js +841 -0
  1308. package/src/rom-id/identifier.js +421 -0
  1309. package/src/rom-id/patch.js +217 -0
  1310. package/src/toolchains/_worker/pool.js +253 -0
  1311. package/src/toolchains/_worker/run.js +78 -0
  1312. package/src/toolchains/_worker/wasm-worker.js +233 -0
  1313. package/src/toolchains/arm-none-eabi-gcc/gcc.js +216 -0
  1314. package/src/toolchains/asar/asar.js +542 -0
  1315. package/src/toolchains/assemble-snippet.js +256 -0
  1316. package/src/toolchains/cc65/cc65.js +395 -0
  1317. package/src/toolchains/cc65/da65.js +119 -0
  1318. package/src/toolchains/cc65/dbgparse.js +274 -0
  1319. package/src/toolchains/cc65/preset-resolver.js +59 -0
  1320. package/src/toolchains/cc65/presets/nes/chr-ram-runtime.cfg +79 -0
  1321. package/src/toolchains/cc65/presets/nes/chr-ram-runtime.crt0.s +178 -0
  1322. package/src/toolchains/cc65/presets/nes/chr-ram.cfg +76 -0
  1323. package/src/toolchains/cc65/presets/nes/chr-ram.crt0.s +106 -0
  1324. package/src/toolchains/common/ar.js +121 -0
  1325. package/src/toolchains/common/reassemble.js +353 -0
  1326. package/src/toolchains/common/sdk-cache.js +116 -0
  1327. package/src/toolchains/common/symbols.js +139 -0
  1328. package/src/toolchains/dasm/dasm.js +96 -0
  1329. package/src/toolchains/gba-c/gba-c.js +838 -0
  1330. package/src/toolchains/genesis-c/README.md +61 -0
  1331. package/src/toolchains/genesis-c/genesis-c.js +600 -0
  1332. package/src/toolchains/gnu-ld-map.js +86 -0
  1333. package/src/toolchains/index.js +862 -0
  1334. package/src/toolchains/m68k-elf-gcc/gcc.js +230 -0
  1335. package/src/toolchains/objdump.js +199 -0
  1336. package/src/toolchains/parse-errors.js +338 -0
  1337. package/src/toolchains/registry.js +67 -0
  1338. package/src/toolchains/rgbds/rgbds.js +144 -0
  1339. package/src/toolchains/sdcc/preflight-lint.js +295 -0
  1340. package/src/toolchains/sdcc/sdcc.js +540 -0
  1341. package/src/toolchains/sjasm/sjasm.js +85 -0
  1342. package/src/toolchains/snes-c/snes-c.js +409 -0
  1343. package/src/toolchains/tcc816/tcc816.js +79 -0
  1344. package/src/toolchains/vasm68k/vasm68k.js +138 -0
  1345. package/src/toolchains/wladx/wladx.js +120 -0
  1346. package/src/toolchains/z80/binutils.js +82 -0
@@ -0,0 +1,258 @@
1
+ /*--------------------------------------------------------------------------------
2
+ This Source Code Form is subject to the terms of the Mozilla Public License,
3
+ v. 2.0. If a copy of the MPL was not distributed with this file, You can
4
+ obtain one at https://mozilla.org/MPL/2.0/.
5
+ --------------------------------------------------------------------------------*/
6
+
7
+ .section ".crt0","ax"
8
+ .global _start
9
+ .align
10
+
11
+ .arm
12
+ .cpu arm7tdmi
13
+
14
+ @---------------------------------------------------------------------------------
15
+ _start:
16
+ @---------------------------------------------------------------------------------
17
+ b rom_header_end
18
+
19
+ .fill 156,1,0 @ Nintendo Logo Character Data (8000004h)
20
+ .fill 16,1,0 @ Game Title
21
+ .byte 0x30,0x31 @ Maker Code (80000B0h)
22
+ .byte 0x96 @ Fixed Value (80000B2h)
23
+ .byte 0x00 @ Main Unit Code (80000B3h)
24
+ .byte 0x00 @ Device Type (80000B4h)
25
+ .fill 7,1,0 @ unused
26
+ .byte 0x00 @ Software Version No (80000BCh)
27
+ .byte 0xf0 @ Complement Check (80000BDh)
28
+ .byte 0x00,0x00 @ Checksum (80000BEh)
29
+
30
+ @---------------------------------------------------------------------------------
31
+ rom_header_end:
32
+ @---------------------------------------------------------------------------------
33
+ b start_vector @ This branch must be here for proper
34
+ @ positioning of the following header.
35
+
36
+ .GLOBAL __boot_method, __slave_number
37
+ @---------------------------------------------------------------------------------
38
+ __boot_method:
39
+ @---------------------------------------------------------------------------------
40
+ .byte 0 @ boot method (0=ROM boot, 3=Multiplay boot)
41
+ @---------------------------------------------------------------------------------
42
+ __slave_number:
43
+ @---------------------------------------------------------------------------------
44
+ .byte 0 @ slave # (1=slave#1, 2=slave#2, 3=slave#3)
45
+
46
+ .byte 0 @ reserved
47
+ .byte 0 @ reserved
48
+ .word 0 @ reserved
49
+ .word 0 @ reserved
50
+ .word 0 @ reserved
51
+ .word 0 @ reserved
52
+ .word 0 @ reserved
53
+ .word 0 @ reserved
54
+
55
+ .global start_vector
56
+ .align
57
+ @---------------------------------------------------------------------------------
58
+ start_vector:
59
+ @---------------------------------------------------------------------------------
60
+ mov r0, #0x4000000 @ REG_BASE
61
+ str r0, [r0, #0x208]
62
+
63
+ mov r0, #0x12 @ Switch to IRQ Mode
64
+ msr cpsr, r0
65
+ ldr sp, =__sp_irq @ Set IRQ stack
66
+ mov r0, #0x1f @ Switch to System Mode
67
+ msr cpsr, r0
68
+ ldr sp, =__sp_usr @ Set user stack
69
+
70
+ @---------------------------------------------------------------------------------
71
+ @ Enter Thumb mode
72
+ @---------------------------------------------------------------------------------
73
+ add r0, pc, #1
74
+ bx r0
75
+
76
+ .thumb
77
+
78
+ ldr r0, =__text_start
79
+ lsl r0, #5 @ Was code compiled at 0x08000000 or higher?
80
+ bcs DoEWRAMClear @ yes, you can not run it in external WRAM
81
+
82
+ mov r0, pc
83
+ lsl r0, #5 @ Are we running from ROM (0x8000000 or higher) ?
84
+ bcc SkipEWRAMClear @ No, so no need to do a copy.
85
+
86
+ @---------------------------------------------------------------------------------
87
+ @ We were started in ROM, silly emulators. :P
88
+ @ So we need to copy to ExWRAM.
89
+ @---------------------------------------------------------------------------------
90
+ mov r2, #2
91
+ lsl r2, r2, #24 @ r2= 0x02000000
92
+ ldr r3, =__end__ @ last ewram address
93
+ sub r3, r2 @ r3= actual binary size
94
+ mov r6, r2 @ r6= 0x02000000
95
+ lsl r1, r2, #2 @ r1= 0x08000000
96
+
97
+ bl CopyMem
98
+
99
+ bx r6 @ Jump to the code to execute
100
+
101
+ @---------------------------------------------------------------------------------
102
+ DoEWRAMClear: @ Clear External WRAM to 0x00
103
+ @---------------------------------------------------------------------------------
104
+ mov r1, #0x40
105
+ lsl r1, #12 @ r1 = 0x40000
106
+ lsl r0, r1, #7 @ r0 = 0x2000000
107
+ bl ClearMem
108
+
109
+ @---------------------------------------------------------------------------------
110
+ SkipEWRAMClear: @ Clear Internal WRAM to 0x00
111
+ @---------------------------------------------------------------------------------
112
+
113
+ @---------------------------------------------------------------------------------
114
+ @ Clear BSS section to 0x00
115
+ @---------------------------------------------------------------------------------
116
+ ldr r0, =__bss_start__
117
+ ldr r1, =__bss_end__
118
+ sub r1, r0
119
+ bl ClearMem
120
+
121
+ @---------------------------------------------------------------------------------
122
+ @ Clear SBSS section to 0x00
123
+ @---------------------------------------------------------------------------------
124
+ ldr r0, =__sbss_start__
125
+ ldr r1, =__sbss_end__
126
+ sub r1, r0
127
+ bl ClearMem
128
+
129
+ @---------------------------------------------------------------------------------
130
+ @ Copy initialized data (data section) from LMA to VMA (ROM to RAM)
131
+ @---------------------------------------------------------------------------------
132
+ ldr r1, =__data_lma
133
+ ldr r2, =__data_start__
134
+ ldr r4, =__data_end__
135
+ bl CopyMemChk
136
+
137
+ @---------------------------------------------------------------------------------
138
+ @ Copy internal work ram (iwram section) from LMA to VMA (ROM to RAM)
139
+ @---------------------------------------------------------------------------------
140
+ ldr r1,= __iwram_lma
141
+ ldr r2,= __iwram_start__
142
+ ldr r4,= __iwram_end__
143
+ bl CopyMemChk
144
+
145
+ @---------------------------------------------------------------------------------
146
+ @ Copy internal work ram overlay 0 (iwram0 section) from LMA to VMA (ROM to RAM)
147
+ @---------------------------------------------------------------------------------
148
+ ldr r2,= __load_stop_iwram0
149
+ ldr r1,= __load_start_iwram0
150
+ sub r3, r2, r1 @ Is there any data to copy?
151
+ beq CIW0Skip @ no
152
+
153
+ ldr r2,= __iwram_overlay_start
154
+ bl CopyMem
155
+ @---------------------------------------------------------------------------------
156
+ CIW0Skip:
157
+ @---------------------------------------------------------------------------------
158
+ @ Copy external work ram (ewram section) from LMA to VMA (ROM to RAM)
159
+ @---------------------------------------------------------------------------------
160
+ ldr r1, =__ewram_lma
161
+ ldr r2, =__ewram_start
162
+ ldr r4, =__ewram_end
163
+ bl CopyMemChk
164
+
165
+ @---------------------------------------------------------------------------------
166
+ CEW0Skip:
167
+ @---------------------------------------------------------------------------------
168
+ @ set heap end
169
+ @---------------------------------------------------------------------------------
170
+ ldr r1, =fake_heap_end
171
+ ldr r0, =__eheap_end
172
+ str r0, [r1]
173
+ @---------------------------------------------------------------------------------
174
+ @ global constructors
175
+ @---------------------------------------------------------------------------------
176
+ ldr r3, =__libc_init_array
177
+ bl _blx_r3_stub
178
+ @---------------------------------------------------------------------------------
179
+ @ Jump to user code
180
+ @---------------------------------------------------------------------------------
181
+ mov r0, #0 @ int argc
182
+ mov r1, #0 @ char *argv[]
183
+ ldr r3, =main
184
+ bl _blx_r3_stub
185
+
186
+ swi #0x00 @ SoftReset
187
+
188
+ @---------------------------------------------------------------------------------
189
+ @ Clear memory to 0x00 if length != 0
190
+ @---------------------------------------------------------------------------------
191
+ @ r0 = Start Address
192
+ @ r1 = Length
193
+ @---------------------------------------------------------------------------------
194
+ ClearMem:
195
+ @---------------------------------------------------------------------------------
196
+ mov r2,#3 @ These commands are used in cases where
197
+ add r1,r2 @ the length is not a multiple of 4,
198
+ bic r1,r2 @ even though it should be.
199
+
200
+ beq ClearMX @ Length is zero so exit
201
+
202
+ mov r2,#0
203
+ @---------------------------------------------------------------------------------
204
+ ClrLoop:
205
+ @---------------------------------------------------------------------------------
206
+ stmia r0!, {r2}
207
+ sub r1,#4
208
+ bne ClrLoop
209
+ @---------------------------------------------------------------------------------
210
+ ClearMX:
211
+ @---------------------------------------------------------------------------------
212
+ bx lr
213
+
214
+ @---------------------------------------------------------------------------------
215
+ _blx_r3_stub:
216
+ @---------------------------------------------------------------------------------
217
+ bx r3
218
+
219
+ @---------------------------------------------------------------------------------
220
+ @ Copy memory if length != 0
221
+ @---------------------------------------------------------------------------------
222
+ @ r1 = Source Address
223
+ @ r2 = Dest Address
224
+ @ r4 = Dest Address + Length
225
+ @---------------------------------------------------------------------------------
226
+ CopyMemChk:
227
+ @---------------------------------------------------------------------------------
228
+ sub r3, r4, r2 @ Is there any data to copy?
229
+ @---------------------------------------------------------------------------------
230
+ @ Copy memory
231
+ @---------------------------------------------------------------------------------
232
+ @ r1 = Source Address
233
+ @ r2 = Dest Address
234
+ @ r3 = Length
235
+ @---------------------------------------------------------------------------------
236
+ CopyMem:
237
+ @---------------------------------------------------------------------------------
238
+ mov r0, #3 @ These commands are used in cases where
239
+ add r3, r0 @ the length is not a multiple of 4,
240
+ bic r3, r0 @ even though it should be.
241
+ beq CIDExit @ Length is zero so exit
242
+
243
+ @---------------------------------------------------------------------------------
244
+ CIDLoop:
245
+ @---------------------------------------------------------------------------------
246
+ ldmia r1!, {r0}
247
+ stmia r2!, {r0}
248
+ sub r3, #4
249
+ bne CIDLoop
250
+ @---------------------------------------------------------------------------------
251
+ CIDExit:
252
+ @---------------------------------------------------------------------------------
253
+ bx lr
254
+
255
+ .align
256
+ .pool
257
+ .end
258
+
@@ -0,0 +1,128 @@
1
+ //////////////////////////////////////////////////////////////////////////
2
+ // File: BoyScout.h //
3
+ // //
4
+ // Description: Header file for BoyScout music playback on the GameBoy. //
5
+ // //
6
+ // Author: Christer Andersson (c) 2001 //
7
+ // Addon: Willem Kokke //
8
+ // //
9
+ //////////////////////////////////////////////////////////////////////////
10
+
11
+ //////////////////////////////////////////////////////////////
12
+ // New section of functions were written by Willem Kokke. //
13
+ // He also fixed a silly miss in the wave RAM copy of the //
14
+ // v.0.93 playback libraries. Thanks alot mate :O) //
15
+ // //
16
+ // / Christer //
17
+ //////////////////////////////////////////////////////////////
18
+
19
+ // Make sure header is only included once
20
+ #ifndef HEADER_BOYSCOUT_H
21
+ #define HEADER_BOYSCOUT_H
22
+
23
+ // DEFINES ////////
24
+
25
+ #define PATTERN_PARAMETER_EMPTY 10000
26
+
27
+ #define SOUND_CHANNEL_COUNT 4
28
+
29
+ #define SOUND1_PARAMETER_COUNT 7
30
+ #define SOUND2_PARAMETER_COUNT 5
31
+ #define SOUND3_PARAMETER_COUNT 4
32
+ #define SOUND4_PARAMETER_COUNT 7
33
+
34
+ // Play states
35
+ #define PLAYSTATE_STOP 1
36
+ #define PLAYSTATE_PLAY 2
37
+ #define PLAYSTATE_LOOP 4
38
+
39
+
40
+ // STRUCTS ////////
41
+
42
+ // Iterator for traversing compressed data
43
+ typedef struct SRLEIterator
44
+ {
45
+ unsigned char *pData;
46
+ unsigned char iValue;
47
+ unsigned char mask;
48
+ unsigned char cValue;
49
+ short nValue;
50
+ unsigned char iValuePos;
51
+ } SRLEIterator;
52
+
53
+ // Sound 1 pattern
54
+ typedef struct
55
+ {
56
+ unsigned short nLength;
57
+ unsigned char *apParams[SOUND1_PARAMETER_COUNT];
58
+ } SSound1Pattern;
59
+
60
+ // Sound 2 pattern
61
+ typedef struct
62
+ {
63
+ unsigned short nLength;
64
+ unsigned char *apParams[SOUND2_PARAMETER_COUNT];
65
+ } SSound2Pattern;
66
+
67
+ // Sound 3 pattern
68
+ typedef struct
69
+ {
70
+ unsigned short nLength;
71
+ unsigned char *apParams[SOUND3_PARAMETER_COUNT];
72
+ } SSound3Pattern;
73
+
74
+ // Sound 4 pattern
75
+ typedef struct
76
+ {
77
+ unsigned short nLength;
78
+ unsigned char *apParams[SOUND4_PARAMETER_COUNT];
79
+ } SSound4Pattern;
80
+
81
+ // PROTOTYPES /////
82
+
83
+ void RLEISet(unsigned char *pData, SRLEIterator *pRLEIterator);
84
+ void RLEINext(SRLEIterator *pRLEIterator);
85
+
86
+ void BoyScoutInitialize();
87
+ void BoyScoutOpenSong(const unsigned char *pSongData);
88
+ void BoyScoutPlaySong(int nLoop);
89
+ void BoyScoutStopSong();
90
+ unsigned short BoyScoutGetNeededSongMemory(const unsigned char *pSongData);
91
+ void BoyScoutSetMemoryArea(unsigned int nMemoryAddress);
92
+ unsigned int BoyScoutGetMemoryArea();
93
+ int BoyScoutUpdateSong();
94
+
95
+ void DMA3Copy32(unsigned int Src, unsigned int Dst, unsigned short Count);
96
+
97
+ // WK Set to 1 to use dma, or to 0 to use software copy
98
+ // Software copy is the preffered option, it's faster and more stable
99
+ #define USE_DMA 0
100
+
101
+ // WK some functions to manipulate the speed of the original song
102
+ // You directly manipulate the time a beat takes
103
+ // a beat takes x/60, where x is the value you give
104
+ // increasing this value slows the song down, decreasing speeds it up
105
+
106
+ // TODO? move the timing to a timer to get a better control through increades granularity
107
+
108
+ unsigned char BoyScoutGetNormalSpeed();
109
+ unsigned char BoyScoutGetSpeed();
110
+
111
+ void BoyScoutIncSpeed(unsigned char speed);
112
+ void BoyScoutDecSpeed(unsigned char speed);
113
+ void BoyScoutSetSpeed(unsigned char speed);
114
+
115
+
116
+ // WK some functions to mute individual channels
117
+ void BoyScoutMuteChannel1(int mute);
118
+ void BoyScoutMuteChannel2(int mute);
119
+ void BoyScoutMuteChannel3(int mute);
120
+ void BoyScoutMuteChannel4(int mute);
121
+
122
+ #endif
123
+
124
+
125
+
126
+
127
+
128
+
@@ -0,0 +1,36 @@
1
+ /*
2
+ disc.h
3
+
4
+ Copyright (c) 2008 Michael "Chishm" Chisholm
5
+
6
+ Redistribution and use in source and binary forms, with or without modification,
7
+ are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation and/or
13
+ other materials provided with the distribution.
14
+ 3. The name of the author may not be used to endorse or promote products derived
15
+ from this software without specific prior written permission.
16
+
17
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
18
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
20
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ */
27
+
28
+
29
+ #ifndef GBA_DISC_INCLUDE
30
+ #define GBA_DISC_INCLUDE
31
+
32
+ #include "disc_io.h"
33
+
34
+ extern const DISC_INTERFACE* discGetInterface (void);
35
+
36
+ #endif // GBA_DISC_INCLUDE
@@ -0,0 +1,64 @@
1
+ /*
2
+ disc_io.h
3
+ Interface template for low level disc functions.
4
+
5
+ Copyright (c) 2006 Michael "Chishm" Chisholm
6
+ Based on code originally written by MightyMax
7
+
8
+ Redistribution and use in source and binary forms, with or without modification,
9
+ are permitted provided that the following conditions are met:
10
+
11
+ 1. Redistributions of source code must retain the above copyright notice,
12
+ this list of conditions and the following disclaimer.
13
+ 2. Redistributions in binary form must reproduce the above copyright notice,
14
+ this list of conditions and the following disclaimer in the documentation and/or
15
+ other materials provided with the distribution.
16
+ 3. The name of the author may not be used to endorse or promote products derived
17
+ from this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
20
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
21
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
22
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ */
29
+
30
+ #ifndef GBA_DISC_IO_INCLUDE
31
+ #define GBA_DISC_IO_INCLUDE
32
+
33
+ #include "gba_types.h"
34
+ #include <stdint.h>
35
+ #include <sys/types.h>
36
+
37
+ #define FEATURE_MEDIUM_CANREAD 0x00000001
38
+ #define FEATURE_MEDIUM_CANWRITE 0x00000002
39
+ #define FEATURE_SLOT_GBA 0x00000010
40
+ #define FEATURE_SLOT_NDS 0x00000020
41
+
42
+ typedef uint32_t sec_t;
43
+
44
+ typedef bool (* FN_MEDIUM_STARTUP)(void) ;
45
+ typedef bool (* FN_MEDIUM_ISINSERTED)(void) ;
46
+ typedef bool (* FN_MEDIUM_READSECTORS)(sec_t sector, sec_t numSectors, void* buffer) ;
47
+ typedef bool (* FN_MEDIUM_WRITESECTORS)(sec_t sector, sec_t numSectors, const void* buffer) ;
48
+ typedef bool (* FN_MEDIUM_CLEARSTATUS)(void) ;
49
+ typedef bool (* FN_MEDIUM_SHUTDOWN)(void) ;
50
+
51
+ struct DISC_INTERFACE_STRUCT {
52
+ unsigned long ioType ;
53
+ unsigned long features ;
54
+ FN_MEDIUM_STARTUP startup ;
55
+ FN_MEDIUM_ISINSERTED isInserted ;
56
+ FN_MEDIUM_READSECTORS readSectors ;
57
+ FN_MEDIUM_WRITESECTORS writeSectors ;
58
+ FN_MEDIUM_CLEARSTATUS clearStatus ;
59
+ FN_MEDIUM_SHUTDOWN shutdown ;
60
+ } ;
61
+
62
+ typedef struct DISC_INTERFACE_STRUCT DISC_INTERFACE ;
63
+
64
+ #endif // define GBA_DISC_IO_INCLUDE
@@ -0,0 +1,112 @@
1
+ /*
2
+ dldi.h
3
+
4
+ Copyright (c) 2006 Michael "Chishm" Chisholm
5
+
6
+ Redistribution and use in source and binary forms, with or without modification,
7
+ are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation and/or
13
+ other materials provided with the distribution.
14
+ 3. The name of the author may not be used to endorse or promote products derived
15
+ from this software without specific prior written permission.
16
+
17
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
18
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
20
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ */
27
+
28
+
29
+ #ifndef GBA_DLDI_INCLUDE
30
+ #define GBA_DLDI_INCLUDE
31
+
32
+ #include "disc_io.h"
33
+
34
+ #define FIX_ALL 0x01
35
+ #define FIX_GLUE 0x02
36
+ #define FIX_GOT 0x04
37
+ #define FIX_BSS 0x08
38
+
39
+ #define DLDI_MAGIC_STRING_LEN 8
40
+ #define DLDI_FRIENDLY_NAME_LEN 48
41
+
42
+ extern const u32 DLDI_MAGIC_NUMBER;
43
+
44
+ // I/O interface with DLDI extensions
45
+ typedef struct {
46
+ u32 magicNumber;
47
+ char magicString [DLDI_MAGIC_STRING_LEN];
48
+ u8 versionNumber;
49
+ u8 driverSize; // log-2 of driver size in bytes
50
+ u8 fixSectionsFlags;
51
+ u8 allocatedSize; // log-2 of the allocated space in bytes
52
+
53
+ char friendlyName [DLDI_FRIENDLY_NAME_LEN];
54
+
55
+ // Pointers to sections that need address fixing
56
+ void* dldiStart;
57
+ void* dldiEnd;
58
+ void* interworkStart;
59
+ void* interworkEnd;
60
+ void* gotStart;
61
+ void* gotEnd;
62
+ void* bssStart;
63
+ void* bssEnd;
64
+
65
+ // Original I/O interface data
66
+ DISC_INTERFACE ioInterface;
67
+ } DLDI_INTERFACE;
68
+
69
+
70
+ /*
71
+ Pointer to the internal DLDI, not directly usable by libfat.
72
+ You'll need to set the bus permissions appropriately before using.
73
+ */
74
+ extern const DLDI_INTERFACE* io_dldi_data;
75
+
76
+ /*
77
+ Return a pointer to the internal IO interface,
78
+ setting up bus permissions in the process.
79
+ */
80
+ extern const DISC_INTERFACE* dldiGetInternal (void);
81
+
82
+ /*
83
+ Determines if an IO driver is a valid DLDI driver
84
+ */
85
+ extern bool dldiIsValid (const DLDI_INTERFACE* io);
86
+
87
+ /*
88
+ Adjust the pointer addresses within a DLDI driver
89
+ */
90
+ extern void dldiFixDriverAddresses (DLDI_INTERFACE* io);
91
+
92
+ /*
93
+ Load a DLDI from disc and set up the bus permissions.
94
+ This returns a type not directly usable in libfat,
95
+ but it does give extra information, such as a friendly name.
96
+ To use in libfat:
97
+ const DLDI_INTERFACE* loadedDldi = dldi_loadFromFile ("file");
98
+ loadedDldi->ioInterface.startup();
99
+ fatMount(&loadedDldi->ioInterface, "devname", 0);
100
+ */
101
+ extern DLDI_INTERFACE* dldiLoadFromFile (const char* path);
102
+
103
+ /*
104
+ Free resources used by a loaded DLDI.
105
+ Remember to unmount and shutdown first:
106
+ fatUnmount("devname");
107
+ loadedDldi->ioInterface.shutdown();
108
+ dldiFree(loadedDldi);
109
+ */
110
+ extern void dldiFree (DLDI_INTERFACE* dldi);
111
+
112
+ #endif // GBA_DLDI_INCLUDE