romdev-mcp 0.1.1

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 (1247) hide show
  1. package/AGENTS.md +726 -0
  2. package/LICENSE +45 -0
  3. package/NOTICE +86 -0
  4. package/README.md +46 -0
  5. package/examples/README.md +36 -0
  6. package/examples/art-first-workflow/README.md +205 -0
  7. package/examples/atari2600/main.asm +143 -0
  8. package/examples/atari2600/templates/default.asm +183 -0
  9. package/examples/atari2600/templates/mini_invaders.asm +381 -0
  10. package/examples/atari2600/templates/music_demo.asm +322 -0
  11. package/examples/atari2600/templates/paddle.asm +345 -0
  12. package/examples/atari2600/templates/single_screen.asm +242 -0
  13. package/examples/atari7800/main.c +88 -0
  14. package/examples/atari7800/templates/default.c +183 -0
  15. package/examples/atari7800/templates/hello_sprite.c +141 -0
  16. package/examples/atari7800/templates/music_demo.c +123 -0
  17. package/examples/atari7800/templates/platformer.c +159 -0
  18. package/examples/atari7800/templates/puzzle.c +164 -0
  19. package/examples/atari7800/templates/racing.c +139 -0
  20. package/examples/atari7800/templates/shmup.c +148 -0
  21. package/examples/atari7800/templates/sports.c +207 -0
  22. package/examples/c64/main.c +63 -0
  23. package/examples/c64/templates/hello_sprite.c +117 -0
  24. package/examples/c64/templates/music_demo.c +131 -0
  25. package/examples/c64/templates/platformer.c +194 -0
  26. package/examples/c64/templates/puzzle.c +178 -0
  27. package/examples/c64/templates/racing.c +140 -0
  28. package/examples/c64/templates/shmup.c +201 -0
  29. package/examples/c64/templates/sports.c +109 -0
  30. package/examples/c64/templates/tile_engine.c +174 -0
  31. package/examples/gb/main.asm +106 -0
  32. package/examples/gb/main.c +49 -0
  33. package/examples/gb/templates/default.c +58 -0
  34. package/examples/gb/templates/hello_sprite.c +130 -0
  35. package/examples/gb/templates/music_demo.c +52 -0
  36. package/examples/gb/templates/platformer.c +178 -0
  37. package/examples/gb/templates/puzzle.c +217 -0
  38. package/examples/gb/templates/racing.c +158 -0
  39. package/examples/gb/templates/shmup.c +172 -0
  40. package/examples/gb/templates/sports.c +136 -0
  41. package/examples/gb/templates/tile_engine.c +280 -0
  42. package/examples/gba/templates/gba_hello.c +64 -0
  43. package/examples/gba/templates/maxmod_demo.c +105 -0
  44. package/examples/gba/templates/platformer.c +215 -0
  45. package/examples/gba/templates/puzzle.c +237 -0
  46. package/examples/gba/templates/racing.c +175 -0
  47. package/examples/gba/templates/shmup.c +197 -0
  48. package/examples/gba/templates/sports.c +177 -0
  49. package/examples/gba/templates/tonc_hello.c +72 -0
  50. package/examples/gba/templates/tonc_hello_sprite.c +109 -0
  51. package/examples/gbc/main.asm +123 -0
  52. package/examples/gbc/templates/default.c +61 -0
  53. package/examples/gbc/templates/hello_sprite.c +140 -0
  54. package/examples/gbc/templates/music_demo.c +63 -0
  55. package/examples/gbc/templates/platformer.c +181 -0
  56. package/examples/gbc/templates/puzzle.c +217 -0
  57. package/examples/gbc/templates/racing.c +164 -0
  58. package/examples/gbc/templates/shmup.c +188 -0
  59. package/examples/gbc/templates/sports.c +142 -0
  60. package/examples/gbc/templates/tile_engine.c +280 -0
  61. package/examples/genesis/main.s +161 -0
  62. package/examples/genesis/templates/hello_sprite.c +75 -0
  63. package/examples/genesis/templates/platformer.c +166 -0
  64. package/examples/genesis/templates/puzzle.c +240 -0
  65. package/examples/genesis/templates/racing.c +170 -0
  66. package/examples/genesis/templates/sgdk_hello.c +41 -0
  67. package/examples/genesis/templates/shmup.c +188 -0
  68. package/examples/genesis/templates/shmup_2p.c +244 -0
  69. package/examples/genesis/templates/sports.c +172 -0
  70. package/examples/genesis/templates/tile_engine.c +135 -0
  71. package/examples/genesis/templates/xgm2_demo.c +53 -0
  72. package/examples/genesis/templates/xgm2_demo_data.s +27 -0
  73. package/examples/gg/main.c +10 -0
  74. package/examples/gg/templates/default.c +156 -0
  75. package/examples/gg/templates/hello_sprite.c +90 -0
  76. package/examples/gg/templates/music_demo.c +156 -0
  77. package/examples/gg/templates/platformer.c +220 -0
  78. package/examples/gg/templates/puzzle.c +204 -0
  79. package/examples/gg/templates/racing.c +161 -0
  80. package/examples/gg/templates/shmup.c +188 -0
  81. package/examples/gg/templates/sports.c +137 -0
  82. package/examples/gg/templates/tile_engine.c +137 -0
  83. package/examples/lynx/main.c +4 -0
  84. package/examples/lynx/templates/default.c +41 -0
  85. package/examples/lynx/templates/hello_sprite.c +39 -0
  86. package/examples/lynx/templates/music_demo.c +37 -0
  87. package/examples/lynx/templates/platformer.c +72 -0
  88. package/examples/lynx/templates/puzzle.c +142 -0
  89. package/examples/lynx/templates/racing.c +94 -0
  90. package/examples/lynx/templates/shmup.c +132 -0
  91. package/examples/lynx/templates/sports.c +59 -0
  92. package/examples/nes/main.c +143 -0
  93. package/examples/nes/space-shooter/README.md +68 -0
  94. package/examples/nes/space-shooter/main.c +441 -0
  95. package/examples/nes/space-shooter/nes_runtime.c +347 -0
  96. package/examples/nes/space-shooter/nes_runtime.h +141 -0
  97. package/examples/nes/templates/default.c +41 -0
  98. package/examples/nes/templates/hello_sprite.c +104 -0
  99. package/examples/nes/templates/music_demo.c +80 -0
  100. package/examples/nes/templates/platformer.c +171 -0
  101. package/examples/nes/templates/puzzle.c +232 -0
  102. package/examples/nes/templates/racing.c +203 -0
  103. package/examples/nes/templates/shmup.c +228 -0
  104. package/examples/nes/templates/sports.c +205 -0
  105. package/examples/nes/templates/tile_engine.c +224 -0
  106. package/examples/porting-across-platforms/README.md +59 -0
  107. package/examples/sms/main.c +129 -0
  108. package/examples/sms/templates/default.c +110 -0
  109. package/examples/sms/templates/hello_sprite.c +90 -0
  110. package/examples/sms/templates/music_demo.c +151 -0
  111. package/examples/sms/templates/platformer.c +215 -0
  112. package/examples/sms/templates/puzzle.c +204 -0
  113. package/examples/sms/templates/racing.c +161 -0
  114. package/examples/sms/templates/shmup.c +167 -0
  115. package/examples/sms/templates/shmup_2p.c +219 -0
  116. package/examples/sms/templates/sports.c +147 -0
  117. package/examples/sms/templates/tile_engine.c +137 -0
  118. package/examples/snes/main.asm +70 -0
  119. package/examples/snes/templates/c-hello-data.asm +28 -0
  120. package/examples/snes/templates/c-hello.c +71 -0
  121. package/examples/snes/templates/default-data.asm +36 -0
  122. package/examples/snes/templates/default.c +74 -0
  123. package/examples/snes/templates/hello_sprite-data.asm +45 -0
  124. package/examples/snes/templates/hello_sprite.c +76 -0
  125. package/examples/snes/templates/music_demo-data.asm +20 -0
  126. package/examples/snes/templates/music_demo.c +83 -0
  127. package/examples/snes/templates/platformer-data.asm +27 -0
  128. package/examples/snes/templates/platformer.c +142 -0
  129. package/examples/snes/templates/puzzle-data.asm +14 -0
  130. package/examples/snes/templates/puzzle.c +199 -0
  131. package/examples/snes/templates/racing-data.asm +33 -0
  132. package/examples/snes/templates/racing.c +146 -0
  133. package/examples/snes/templates/shmup-data.asm +61 -0
  134. package/examples/snes/templates/shmup.c +199 -0
  135. package/examples/snes/templates/sports-data.asm +28 -0
  136. package/examples/snes/templates/sports.c +144 -0
  137. package/package.json +83 -0
  138. package/src/cli/smoke.js +283 -0
  139. package/src/cores/registry.js +95 -0
  140. package/src/host/LibretroHost.js +502 -0
  141. package/src/host/callbacks.js +444 -0
  142. package/src/host/chafa-render.js +170 -0
  143. package/src/host/coreLoader.js +57 -0
  144. package/src/host/cpu-state.js +422 -0
  145. package/src/host/dsp-state.js +188 -0
  146. package/src/host/framebuffer.js +115 -0
  147. package/src/host/gpgx-state.js +309 -0
  148. package/src/host/index.js +4 -0
  149. package/src/host/retroConstants.js +72 -0
  150. package/src/host/snes9x-state.js +35 -0
  151. package/src/host/types.js +280 -0
  152. package/src/mcp/disclosure.js +250 -0
  153. package/src/mcp/log.js +87 -0
  154. package/src/mcp/server.js +433 -0
  155. package/src/mcp/state.js +83 -0
  156. package/src/mcp/tools/address-to-symbol.js +151 -0
  157. package/src/mcp/tools/art-loaders.js +740 -0
  158. package/src/mcp/tools/assets.js +89 -0
  159. package/src/mcp/tools/audio.js +173 -0
  160. package/src/mcp/tools/cart-parts.js +649 -0
  161. package/src/mcp/tools/diff-roms.js +412 -0
  162. package/src/mcp/tools/disasm.js +980 -0
  163. package/src/mcp/tools/find-references.js +361 -0
  164. package/src/mcp/tools/font-map.js +353 -0
  165. package/src/mcp/tools/frame.js +249 -0
  166. package/src/mcp/tools/free-space.js +95 -0
  167. package/src/mcp/tools/index.js +351 -0
  168. package/src/mcp/tools/input-layout.js +215 -0
  169. package/src/mcp/tools/input.js +142 -0
  170. package/src/mcp/tools/lifecycle.js +110 -0
  171. package/src/mcp/tools/lospec.js +156 -0
  172. package/src/mcp/tools/memory.js +169 -0
  173. package/src/mcp/tools/metasprite-tools.js +261 -0
  174. package/src/mcp/tools/platform-docs.js +102 -0
  175. package/src/mcp/tools/platform-tools.js +1063 -0
  176. package/src/mcp/tools/platforms.js +86 -0
  177. package/src/mcp/tools/playtest.js +280 -0
  178. package/src/mcp/tools/preview-tile.js +360 -0
  179. package/src/mcp/tools/project.js +1885 -0
  180. package/src/mcp/tools/record.js +131 -0
  181. package/src/mcp/tools/rendering-context.js +700 -0
  182. package/src/mcp/tools/rom-id.js +256 -0
  183. package/src/mcp/tools/run-until.js +173 -0
  184. package/src/mcp/tools/snippets.js +235 -0
  185. package/src/mcp/tools/splice-chr.js +215 -0
  186. package/src/mcp/tools/sprite-pipeline.js +614 -0
  187. package/src/mcp/tools/state.js +99 -0
  188. package/src/mcp/tools/symbols.js +277 -0
  189. package/src/mcp/tools/tile-inspect.js +206 -0
  190. package/src/mcp/tools/toolchain.js +680 -0
  191. package/src/mcp/tools/watch-memory.js +212 -0
  192. package/src/mcp/tools/which-tiles.js +193 -0
  193. package/src/mcp/util.js +85 -0
  194. package/src/observer/bus.js +127 -0
  195. package/src/observer/livestream.html +589 -0
  196. package/src/observer/server.js +66 -0
  197. package/src/observer/tool-wrap.js +115 -0
  198. package/src/platforms/atari2600/MENTAL_MODEL.md +185 -0
  199. package/src/platforms/atari2600/TROUBLESHOOTING.md +155 -0
  200. package/src/platforms/atari2600/UPSTREAM_SOURCES.md +49 -0
  201. package/src/platforms/atari2600/lib/README.md +67 -0
  202. package/src/platforms/atari2600/lib/cc65-src/crt0.s +49 -0
  203. package/src/platforms/atari2600/lib/cc65-src/ctype.s +5 -0
  204. package/src/platforms/atari2600/lib/kernel_skeleton.asm +85 -0
  205. package/src/platforms/atari2600/lib/player_kernel.asm +87 -0
  206. package/src/platforms/atari2600/lib/playfield_kernel.asm +63 -0
  207. package/src/platforms/atari2600/lib/read_joystick.asm +76 -0
  208. package/src/platforms/atari2600/lib/score_kernel.asm +141 -0
  209. package/src/platforms/atari2600/lib/vcs_constants.h +97 -0
  210. package/src/platforms/atari2600/lib/vectors.asm +16 -0
  211. package/src/platforms/atari2600/tia.js +355 -0
  212. package/src/platforms/atari7800/MENTAL_MODEL.md +306 -0
  213. package/src/platforms/atari7800/TROUBLESHOOTING.md +195 -0
  214. package/src/platforms/atari7800/UPSTREAM_SOURCES.md +43 -0
  215. package/src/platforms/atari7800/lib/README.md +45 -0
  216. package/src/platforms/atari7800/lib/c/atari7800_music.c +215 -0
  217. package/src/platforms/atari7800/lib/c/atari7800_music.h +33 -0
  218. package/src/platforms/atari7800/lib/c/atari7800_sfx.c +74 -0
  219. package/src/platforms/atari7800/lib/c/atari7800_sfx.h +45 -0
  220. package/src/platforms/atari7800/lib/cc65-src/clock.s +69 -0
  221. package/src/platforms/atari7800/lib/cc65-src/clocks_per_sec.s +34 -0
  222. package/src/platforms/atari7800/lib/cc65-src/clrscr.s +27 -0
  223. package/src/platforms/atari7800/lib/cc65-src/conio.s +226 -0
  224. package/src/platforms/atari7800/lib/cc65-src/conio_font.s +278 -0
  225. package/src/platforms/atari7800/lib/cc65-src/cputc.s +139 -0
  226. package/src/platforms/atari7800/lib/cc65-src/crt0.s +71 -0
  227. package/src/platforms/atari7800/lib/cc65-src/ctype.s +5 -0
  228. package/src/platforms/atari7800/lib/cc65-src/exehdr.s +46 -0
  229. package/src/platforms/atari7800/lib/cc65-src/extra/mono.s +28 -0
  230. package/src/platforms/atari7800/lib/cc65-src/extzp.inc +15 -0
  231. package/src/platforms/atari7800/lib/cc65-src/extzp.s +15 -0
  232. package/src/platforms/atari7800/lib/cc65-src/get_tv.s +65 -0
  233. package/src/platforms/atari7800/lib/cc65-src/irq.s +36 -0
  234. package/src/platforms/atari7800/lib/cc65-src/joy/atari7800-stdjoy.s +197 -0
  235. package/src/platforms/atari7800/lib/cc65-src/joy_stat_stddrv.s +14 -0
  236. package/src/platforms/atari7800/lib/cc65-src/libref.s +8 -0
  237. package/src/platforms/atari7800/lib/cc65-src/mono_clrscr.s +27 -0
  238. package/src/platforms/atari7800/lib/cc65-src/mono_conio.s +231 -0
  239. package/src/platforms/atari7800/lib/cc65-src/mono_cputc.s +102 -0
  240. package/src/platforms/atari7800/lib/cc65-src/mono_font.s +2065 -0
  241. package/src/platforms/atari7800/lib/cc65-src/mono_setcursor.s +214 -0
  242. package/src/platforms/atari7800/lib/cc65-src/setcursor.s +214 -0
  243. package/src/platforms/atari7800/lib/cc65-src/textcolor.s +53 -0
  244. package/src/platforms/atari7800/lib/cc65-src/wherex.s +19 -0
  245. package/src/platforms/atari7800/lib/cc65-src/wherey.s +19 -0
  246. package/src/platforms/atari7800/lib/display_list.asm +53 -0
  247. package/src/platforms/atari7800/lib/maria_init.asm +48 -0
  248. package/src/platforms/atari7800/lib/maria_registers.h +61 -0
  249. package/src/platforms/atari7800/lib/palette_load.asm +53 -0
  250. package/src/platforms/atari7800/lib/read_pad.asm +57 -0
  251. package/src/platforms/atari7800/lib/vblank_wait.asm +16 -0
  252. package/src/platforms/atari7800/maria.js +220 -0
  253. package/src/platforms/c64/MENTAL_MODEL.md +175 -0
  254. package/src/platforms/c64/TROUBLESHOOTING.md +130 -0
  255. package/src/platforms/c64/UPSTREAM_SOURCES.md +35 -0
  256. package/src/platforms/c64/image-to-tilemap.js +190 -0
  257. package/src/platforms/c64/lib/README.md +52 -0
  258. package/src/platforms/c64/lib/basic_stub.s +25 -0
  259. package/src/platforms/c64/lib/c/c64_music.c +248 -0
  260. package/src/platforms/c64/lib/c/c64_music.h +36 -0
  261. package/src/platforms/c64/lib/c/c64_sfx.c +94 -0
  262. package/src/platforms/c64/lib/c/c64_sfx.h +37 -0
  263. package/src/platforms/c64/lib/c64_registers.h +108 -0
  264. package/src/platforms/c64/lib/cc65-src/_scrsize.s +12 -0
  265. package/src/platforms/c64/lib/cc65-src/acc_c128_speed.s +5 -0
  266. package/src/platforms/c64/lib/cc65-src/acc_c64dtv_speed.s +64 -0
  267. package/src/platforms/c64/lib/cc65-src/acc_c65_speed.s +69 -0
  268. package/src/platforms/c64/lib/cc65-src/acc_chameleon_speed.s +100 -0
  269. package/src/platforms/c64/lib/cc65-src/acc_detect_c128.s +33 -0
  270. package/src/platforms/c64/lib/cc65-src/acc_detect_c64dtv.s +44 -0
  271. package/src/platforms/c64/lib/cc65-src/acc_detect_c65.s +55 -0
  272. package/src/platforms/c64/lib/cc65-src/acc_detect_chameleon.s +39 -0
  273. package/src/platforms/c64/lib/cc65-src/acc_detect_scpu.s +34 -0
  274. package/src/platforms/c64/lib/cc65-src/acc_detect_turbomaster.s +45 -0
  275. package/src/platforms/c64/lib/cc65-src/acc_scpu_speed.s +59 -0
  276. package/src/platforms/c64/lib/cc65-src/acc_turbomaster_speed.s +56 -0
  277. package/src/platforms/c64/lib/cc65-src/bordercolor.s +17 -0
  278. package/src/platforms/c64/lib/cc65-src/break.s +108 -0
  279. package/src/platforms/c64/lib/cc65-src/cgetc.s +62 -0
  280. package/src/platforms/c64/lib/cc65-src/clrscr.s +11 -0
  281. package/src/platforms/c64/lib/cc65-src/color.s +24 -0
  282. package/src/platforms/c64/lib/cc65-src/conio.s +10 -0
  283. package/src/platforms/c64/lib/cc65-src/cputc.s +105 -0
  284. package/src/platforms/c64/lib/cc65-src/crt0.s +117 -0
  285. package/src/platforms/c64/lib/cc65-src/devnum.s +7 -0
  286. package/src/platforms/c64/lib/cc65-src/emd/c64-65816.s +377 -0
  287. package/src/platforms/c64/lib/cc65-src/emd/c64-c256k.s +508 -0
  288. package/src/platforms/c64/lib/cc65-src/emd/c64-dqbb.s +447 -0
  289. package/src/platforms/c64/lib/cc65-src/emd/c64-georam.s +355 -0
  290. package/src/platforms/c64/lib/cc65-src/emd/c64-isepic.s +276 -0
  291. package/src/platforms/c64/lib/cc65-src/emd/c64-kerberos.s +281 -0
  292. package/src/platforms/c64/lib/cc65-src/emd/c64-ram.s +270 -0
  293. package/src/platforms/c64/lib/cc65-src/emd/c64-ramcart.s +297 -0
  294. package/src/platforms/c64/lib/cc65-src/emd/c64-reu.s +286 -0
  295. package/src/platforms/c64/lib/cc65-src/emd/c64-rrr.s +363 -0
  296. package/src/platforms/c64/lib/cc65-src/emd/c64-vdc.s +405 -0
  297. package/src/platforms/c64/lib/cc65-src/emd/dtv-himem.s +251 -0
  298. package/src/platforms/c64/lib/cc65-src/extra/soft80.s +71 -0
  299. package/src/platforms/c64/lib/cc65-src/extra/soft80mono.s +74 -0
  300. package/src/platforms/c64/lib/cc65-src/extra/tgimousedata.s +21 -0
  301. package/src/platforms/c64/lib/cc65-src/get_ostype.s +43 -0
  302. package/src/platforms/c64/lib/cc65-src/get_tv.s +20 -0
  303. package/src/platforms/c64/lib/cc65-src/gettime.s +83 -0
  304. package/src/platforms/c64/lib/cc65-src/irq.s +49 -0
  305. package/src/platforms/c64/lib/cc65-src/joy/c64-hitjoy.s +218 -0
  306. package/src/platforms/c64/lib/cc65-src/joy/c64-numpad.s +155 -0
  307. package/src/platforms/c64/lib/cc65-src/joy/c64-ptvjoy.s +146 -0
  308. package/src/platforms/c64/lib/cc65-src/joy/c64-stdjoy.s +111 -0
  309. package/src/platforms/c64/lib/cc65-src/joy_stat_stddrv.s +14 -0
  310. package/src/platforms/c64/lib/cc65-src/joy_stddrv.s +14 -0
  311. package/src/platforms/c64/lib/cc65-src/kbhit.s +23 -0
  312. package/src/platforms/c64/lib/cc65-src/kbrepeat.s +14 -0
  313. package/src/platforms/c64/lib/cc65-src/kernal.s +53 -0
  314. package/src/platforms/c64/lib/cc65-src/kplot.s +22 -0
  315. package/src/platforms/c64/lib/cc65-src/libref.s +16 -0
  316. package/src/platforms/c64/lib/cc65-src/mainargs.s +137 -0
  317. package/src/platforms/c64/lib/cc65-src/mcbdefault.s +146 -0
  318. package/src/platforms/c64/lib/cc65-src/mcbspritedata.s +4 -0
  319. package/src/platforms/c64/lib/cc65-src/mou/c64-1351.s +467 -0
  320. package/src/platforms/c64/lib/cc65-src/mou/c64-inkwell.s +446 -0
  321. package/src/platforms/c64/lib/cc65-src/mou/c64-joy.s +451 -0
  322. package/src/platforms/c64/lib/cc65-src/mou/c64-pot.s +409 -0
  323. package/src/platforms/c64/lib/cc65-src/mouse_stat_stddrv.s +14 -0
  324. package/src/platforms/c64/lib/cc65-src/mouse_stddrv.s +14 -0
  325. package/src/platforms/c64/lib/cc65-src/mouseref.s +23 -0
  326. package/src/platforms/c64/lib/cc65-src/pencalib.c +94 -0
  327. package/src/platforms/c64/lib/cc65-src/randomize.s +18 -0
  328. package/src/platforms/c64/lib/cc65-src/revers.s +27 -0
  329. package/src/platforms/c64/lib/cc65-src/ser/c64-swlink.s +484 -0
  330. package/src/platforms/c64/lib/cc65-src/ser_stat_stddrv.s +14 -0
  331. package/src/platforms/c64/lib/cc65-src/ser_stddrv.s +13 -0
  332. package/src/platforms/c64/lib/cc65-src/settime.s +84 -0
  333. package/src/platforms/c64/lib/cc65-src/soft80.inc +46 -0
  334. package/src/platforms/c64/lib/cc65-src/soft80_cgetc.s +85 -0
  335. package/src/platforms/c64/lib/cc65-src/soft80_charset.s +182 -0
  336. package/src/platforms/c64/lib/cc65-src/soft80_color.s +159 -0
  337. package/src/platforms/c64/lib/cc65-src/soft80_conio.s +157 -0
  338. package/src/platforms/c64/lib/cc65-src/soft80_cpeekc.s +148 -0
  339. package/src/platforms/c64/lib/cc65-src/soft80_cpeekcolor.s +19 -0
  340. package/src/platforms/c64/lib/cc65-src/soft80_cpeekrevers.s +15 -0
  341. package/src/platforms/c64/lib/cc65-src/soft80_cpeeks.s +71 -0
  342. package/src/platforms/c64/lib/cc65-src/soft80_cputc.s +521 -0
  343. package/src/platforms/c64/lib/cc65-src/soft80_kclrscr.s +76 -0
  344. package/src/platforms/c64/lib/cc65-src/soft80_kplot.s +63 -0
  345. package/src/platforms/c64/lib/cc65-src/soft80_scrsize.s +14 -0
  346. package/src/platforms/c64/lib/cc65-src/soft80mono_cgetc.s +67 -0
  347. package/src/platforms/c64/lib/cc65-src/soft80mono_color.s +65 -0
  348. package/src/platforms/c64/lib/cc65-src/soft80mono_conio.s +168 -0
  349. package/src/platforms/c64/lib/cc65-src/soft80mono_cpeekcolor.s +17 -0
  350. package/src/platforms/c64/lib/cc65-src/soft80mono_cputc.s +204 -0
  351. package/src/platforms/c64/lib/cc65-src/soft80mono_kclrscr.s +63 -0
  352. package/src/platforms/c64/lib/cc65-src/soft80mono_kplot.s +52 -0
  353. package/src/platforms/c64/lib/cc65-src/status.s +15 -0
  354. package/src/platforms/c64/lib/cc65-src/sysuname.s +37 -0
  355. package/src/platforms/c64/lib/cc65-src/tgi/c64-hi.s +881 -0
  356. package/src/platforms/c64/lib/cc65-src/tgi_stat_stddrv.s +14 -0
  357. package/src/platforms/c64/lib/cc65-src/tgi_stddrv.s +13 -0
  358. package/src/platforms/c64/lib/cc65-src/tmcommon.s +67 -0
  359. package/src/platforms/c64/lib/cc65-src/waitvsync.s +18 -0
  360. package/src/platforms/c64/lib/read_joystick.s +28 -0
  361. package/src/platforms/c64/lib/sid_play.s +48 -0
  362. package/src/platforms/c64/lib/sprite_table.s +73 -0
  363. package/src/platforms/c64/lib/vic_init.s +47 -0
  364. package/src/platforms/c64/sid.js +128 -0
  365. package/src/platforms/c64/vic.js +273 -0
  366. package/src/platforms/common/default-palette.js +139 -0
  367. package/src/platforms/common/image-to-tiles.js +407 -0
  368. package/src/platforms/common/intent.js +111 -0
  369. package/src/platforms/common/metasprite-adapters.js +279 -0
  370. package/src/platforms/common/metasprite-codegen.js +192 -0
  371. package/src/platforms/common/metasprite-core.js +201 -0
  372. package/src/platforms/common/metasprite.js +89 -0
  373. package/src/platforms/common/platform-palette.js +137 -0
  374. package/src/platforms/common/registers.js +329 -0
  375. package/src/platforms/common/render-tiles.js +86 -0
  376. package/src/platforms/common/screenshot-sprite.js +153 -0
  377. package/src/platforms/common/tile-decode.js +149 -0
  378. package/src/platforms/gb/MENTAL_MODEL.md +252 -0
  379. package/src/platforms/gb/TROUBLESHOOTING.md +221 -0
  380. package/src/platforms/gb/UPSTREAM_SOURCES.md +43 -0
  381. package/src/platforms/gb/image-to-tilemap.js +173 -0
  382. package/src/platforms/gb/lib/README.md +115 -0
  383. package/src/platforms/gb/lib/c/LICENSE-HUGEDRIVER +25 -0
  384. package/src/platforms/gb/lib/c/README.md +120 -0
  385. package/src/platforms/gb/lib/c/SDCC_GOTCHAS.md +189 -0
  386. package/src/platforms/gb/lib/c/gb_crt0.s +163 -0
  387. package/src/platforms/gb/lib/c/gb_hardware.h +113 -0
  388. package/src/platforms/gb/lib/c/gb_runtime.c +284 -0
  389. package/src/platforms/gb/lib/c/gb_runtime.h +145 -0
  390. package/src/platforms/gb/lib/c/hUGEDriver.c +191 -0
  391. package/src/platforms/gb/lib/c/hUGEDriver.h +95 -0
  392. package/src/platforms/gb/lib/c/hUGEDriver.upstream.asm +1908 -0
  393. package/src/platforms/gb/lib/c/lcd_init.c +19 -0
  394. package/src/platforms/gb/lib/c/patch-header.js +154 -0
  395. package/src/platforms/gb/lib/c/song_data.c +88 -0
  396. package/src/platforms/gb/lib/c/unroll.h +52 -0
  397. package/src/platforms/gb/lib/c/wait_vblank.c +14 -0
  398. package/src/platforms/gb/lib/dma_oam.asm +51 -0
  399. package/src/platforms/gb/lib/header.asm +56 -0
  400. package/src/platforms/gb/lib/joypad_read.asm +47 -0
  401. package/src/platforms/gb/lib/lcd_init.asm +44 -0
  402. package/src/platforms/gb/lib/load_palette.asm +25 -0
  403. package/src/platforms/gb/lib/load_tiles.asm +29 -0
  404. package/src/platforms/gb/lib/vblank_wait.asm +31 -0
  405. package/src/platforms/gb/ppu.js +574 -0
  406. package/src/platforms/gba/MENTAL_MODEL.md +203 -0
  407. package/src/platforms/gba/TROUBLESHOOTING.md +250 -0
  408. package/src/platforms/gba/UPSTREAM_SOURCES.md +41 -0
  409. package/src/platforms/gba/lib/arm-archives/libc.a +0 -0
  410. package/src/platforms/gba/lib/arm-archives/libgcc.a +0 -0
  411. package/src/platforms/gba/lib/arm-archives/libnosys.a +0 -0
  412. package/src/platforms/gba/lib/c/gba_sfx.c +81 -0
  413. package/src/platforms/gba/lib/c/gba_sfx.h +48 -0
  414. package/src/platforms/gba/lib/libgba/crtbegin.o +0 -0
  415. package/src/platforms/gba/lib/libgba/crtend.o +0 -0
  416. package/src/platforms/gba/lib/libgba/crti.o +0 -0
  417. package/src/platforms/gba/lib/libgba/crtn.o +0 -0
  418. package/src/platforms/gba/lib/libgba/gba_cart.ld +319 -0
  419. package/src/platforms/gba/lib/libgba/gba_crt0.s +258 -0
  420. package/src/platforms/gba/lib/libgba/include/BoyScout.h +128 -0
  421. package/src/platforms/gba/lib/libgba/include/disc.h +36 -0
  422. package/src/platforms/gba/lib/libgba/include/disc_io.h +64 -0
  423. package/src/platforms/gba/lib/libgba/include/dldi.h +112 -0
  424. package/src/platforms/gba/lib/libgba/include/erapi.h +195 -0
  425. package/src/platforms/gba/lib/libgba/include/fade.h +76 -0
  426. package/src/platforms/gba/lib/libgba/include/gba.h +47 -0
  427. package/src/platforms/gba/lib/libgba/include/gba_affine.h +83 -0
  428. package/src/platforms/gba/lib/libgba/include/gba_base.h +122 -0
  429. package/src/platforms/gba/lib/libgba/include/gba_compression.h +66 -0
  430. package/src/platforms/gba/lib/libgba/include/gba_console.h +55 -0
  431. package/src/platforms/gba/lib/libgba/include/gba_dma.h +100 -0
  432. package/src/platforms/gba/lib/libgba/include/gba_input.h +127 -0
  433. package/src/platforms/gba/lib/libgba/include/gba_interrupt.h +146 -0
  434. package/src/platforms/gba/lib/libgba/include/gba_multiboot.h +72 -0
  435. package/src/platforms/gba/lib/libgba/include/gba_sio.h +124 -0
  436. package/src/platforms/gba/lib/libgba/include/gba_sound.h +356 -0
  437. package/src/platforms/gba/lib/libgba/include/gba_sprites.h +195 -0
  438. package/src/platforms/gba/lib/libgba/include/gba_systemcalls.h +194 -0
  439. package/src/platforms/gba/lib/libgba/include/gba_timers.h +63 -0
  440. package/src/platforms/gba/lib/libgba/include/gba_types.h +60 -0
  441. package/src/platforms/gba/lib/libgba/include/gba_video.h +307 -0
  442. package/src/platforms/gba/lib/libgba/include/mappy.h +72 -0
  443. package/src/platforms/gba/lib/libgba/include/mbv2.h +90 -0
  444. package/src/platforms/gba/lib/libgba/include/xcomms.h +93 -0
  445. package/src/platforms/gba/lib/libgba/include/xcomms_cmd.h +53 -0
  446. package/src/platforms/gba/lib/libgba/libgba.seed.a +0 -0
  447. package/src/platforms/gba/lib/libgba/libgba.seed.hash +1 -0
  448. package/src/platforms/gba/lib/libgba/src/AffineSet.c +42 -0
  449. package/src/platforms/gba/lib/libgba/src/ArcTan.s +41 -0
  450. package/src/platforms/gba/lib/libgba/src/BoyScout/BoyScout.c +1242 -0
  451. package/src/platforms/gba/lib/libgba/src/BoyScout/GBASoundRegs.h +200 -0
  452. package/src/platforms/gba/lib/libgba/src/Compression.c +84 -0
  453. package/src/platforms/gba/lib/libgba/src/CpuSet.c +41 -0
  454. package/src/platforms/gba/lib/libgba/src/Div.s +58 -0
  455. package/src/platforms/gba/lib/libgba/src/DivArm.s +50 -0
  456. package/src/platforms/gba/lib/libgba/src/InterruptDispatcher.s +113 -0
  457. package/src/platforms/gba/lib/libgba/src/IntrWait.c +35 -0
  458. package/src/platforms/gba/lib/libgba/src/MultiBoot.s +33 -0
  459. package/src/platforms/gba/lib/libgba/src/Reset.s +49 -0
  460. package/src/platforms/gba/lib/libgba/src/Sound.s +48 -0
  461. package/src/platforms/gba/lib/libgba/src/Sqrt.s +34 -0
  462. package/src/platforms/gba/lib/libgba/src/disc_io/disc.c +58 -0
  463. package/src/platforms/gba/lib/libgba/src/disc_io/dldi.c +189 -0
  464. package/src/platforms/gba/lib/libgba/src/disc_io/dldi_stub.s +78 -0
  465. package/src/platforms/gba/lib/libgba/src/disc_io/io_cf_common.c +260 -0
  466. package/src/platforms/gba/lib/libgba/src/disc_io/io_cf_common.h +72 -0
  467. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3_common.c +60 -0
  468. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3_common.h +48 -0
  469. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3cf.c +83 -0
  470. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3cf.h +45 -0
  471. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3sd.c +508 -0
  472. package/src/platforms/gba/lib/libgba/src/disc_io/io_m3sd.h +45 -0
  473. package/src/platforms/gba/lib/libgba/src/disc_io/io_mpcf.c +87 -0
  474. package/src/platforms/gba/lib/libgba/src/disc_io/io_mpcf.h +42 -0
  475. package/src/platforms/gba/lib/libgba/src/disc_io/io_sc_common.c +47 -0
  476. package/src/platforms/gba/lib/libgba/src/disc_io/io_sc_common.h +43 -0
  477. package/src/platforms/gba/lib/libgba/src/disc_io/io_sccf.c +83 -0
  478. package/src/platforms/gba/lib/libgba/src/disc_io/io_sccf.h +45 -0
  479. package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd.c +385 -0
  480. package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd.h +48 -0
  481. package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd_s.s +139 -0
  482. package/src/platforms/gba/lib/libgba/src/disc_io/io_sd_common.c +203 -0
  483. package/src/platforms/gba/lib/libgba/src/disc_io/io_sd_common.h +108 -0
  484. package/src/platforms/gba/lib/libgba/src/fade.c +185 -0
  485. package/src/platforms/gba/lib/libgba/src/input.c +127 -0
  486. package/src/platforms/gba/lib/libgba/src/interrupt.c +116 -0
  487. package/src/platforms/gba/lib/libgba/src/mappy_print.c +74 -0
  488. package/src/platforms/gba/lib/libgba/src/mb2print.c +69 -0
  489. package/src/platforms/gba/lib/libgba/src/mbv2.c +230 -0
  490. package/src/platforms/gba/lib/libgba/src/mbv2.txt +119 -0
  491. package/src/platforms/gba/lib/libgba/src/xcomms.c +203 -0
  492. package/src/platforms/gba/lib/libgba/src/xcomms_print.c +56 -0
  493. package/src/platforms/gba/lib/libgba/sysinclude/_ansi.h +82 -0
  494. package/src/platforms/gba/lib/libgba/sysinclude/_newlib_version.h +11 -0
  495. package/src/platforms/gba/lib/libgba/sysinclude/_syslist.h +41 -0
  496. package/src/platforms/gba/lib/libgba/sysinclude/alloca.h +21 -0
  497. package/src/platforms/gba/lib/libgba/sysinclude/ar.h +65 -0
  498. package/src/platforms/gba/lib/libgba/sysinclude/argz.h +33 -0
  499. package/src/platforms/gba/lib/libgba/sysinclude/assert.h +50 -0
  500. package/src/platforms/gba/lib/libgba/sysinclude/complex.h +150 -0
  501. package/src/platforms/gba/lib/libgba/sysinclude/cpio.h +30 -0
  502. package/src/platforms/gba/lib/libgba/sysinclude/ctype.h +183 -0
  503. package/src/platforms/gba/lib/libgba/sysinclude/devctl.h +78 -0
  504. package/src/platforms/gba/lib/libgba/sysinclude/dirent.h +85 -0
  505. package/src/platforms/gba/lib/libgba/sysinclude/elf.h +3147 -0
  506. package/src/platforms/gba/lib/libgba/sysinclude/envlock.h +15 -0
  507. package/src/platforms/gba/lib/libgba/sysinclude/envz.h +16 -0
  508. package/src/platforms/gba/lib/libgba/sysinclude/errno.h +11 -0
  509. package/src/platforms/gba/lib/libgba/sysinclude/fastmath.h +13 -0
  510. package/src/platforms/gba/lib/libgba/sysinclude/fcntl.h +1 -0
  511. package/src/platforms/gba/lib/libgba/sysinclude/fenv.h +42 -0
  512. package/src/platforms/gba/lib/libgba/sysinclude/float.h +631 -0
  513. package/src/platforms/gba/lib/libgba/sysinclude/fnmatch.h +55 -0
  514. package/src/platforms/gba/lib/libgba/sysinclude/ftw.h +66 -0
  515. package/src/platforms/gba/lib/libgba/sysinclude/getopt.h +185 -0
  516. package/src/platforms/gba/lib/libgba/sysinclude/glob.h +90 -0
  517. package/src/platforms/gba/lib/libgba/sysinclude/grp.h +86 -0
  518. package/src/platforms/gba/lib/libgba/sysinclude/iconv.h +63 -0
  519. package/src/platforms/gba/lib/libgba/sysinclude/ieeefp.h +295 -0
  520. package/src/platforms/gba/lib/libgba/sysinclude/inttypes.h +345 -0
  521. package/src/platforms/gba/lib/libgba/sysinclude/iso646.h +45 -0
  522. package/src/platforms/gba/lib/libgba/sysinclude/langinfo.h +332 -0
  523. package/src/platforms/gba/lib/libgba/sysinclude/libgen.h +37 -0
  524. package/src/platforms/gba/lib/libgba/sysinclude/limits.h +168 -0
  525. package/src/platforms/gba/lib/libgba/sysinclude/locale.h +96 -0
  526. package/src/platforms/gba/lib/libgba/sysinclude/machine/_arc4random.h +1 -0
  527. package/src/platforms/gba/lib/libgba/sysinclude/machine/_default_types.h +250 -0
  528. package/src/platforms/gba/lib/libgba/sysinclude/machine/_endian.h +39 -0
  529. package/src/platforms/gba/lib/libgba/sysinclude/machine/_time.h +3 -0
  530. package/src/platforms/gba/lib/libgba/sysinclude/machine/_types.h +8 -0
  531. package/src/platforms/gba/lib/libgba/sysinclude/machine/ansi.h +1 -0
  532. package/src/platforms/gba/lib/libgba/sysinclude/machine/endian.h +69 -0
  533. package/src/platforms/gba/lib/libgba/sysinclude/machine/fastmath.h +98 -0
  534. package/src/platforms/gba/lib/libgba/sysinclude/machine/ieee.h +127 -0
  535. package/src/platforms/gba/lib/libgba/sysinclude/machine/ieeefp.h +533 -0
  536. package/src/platforms/gba/lib/libgba/sysinclude/machine/malloc.h +8 -0
  537. package/src/platforms/gba/lib/libgba/sysinclude/machine/param.h +8 -0
  538. package/src/platforms/gba/lib/libgba/sysinclude/machine/setjmp-dj.h +43 -0
  539. package/src/platforms/gba/lib/libgba/sysinclude/machine/setjmp.h +524 -0
  540. package/src/platforms/gba/lib/libgba/sysinclude/machine/stdlib.h +8 -0
  541. package/src/platforms/gba/lib/libgba/sysinclude/machine/termios.h +1 -0
  542. package/src/platforms/gba/lib/libgba/sysinclude/machine/time.h +15 -0
  543. package/src/platforms/gba/lib/libgba/sysinclude/machine/types.h +13 -0
  544. package/src/platforms/gba/lib/libgba/sysinclude/malloc.h +173 -0
  545. package/src/platforms/gba/lib/libgba/sysinclude/math.h +645 -0
  546. package/src/platforms/gba/lib/libgba/sysinclude/memory.h +4 -0
  547. package/src/platforms/gba/lib/libgba/sysinclude/ndbm.h +91 -0
  548. package/src/platforms/gba/lib/libgba/sysinclude/newlib.h +427 -0
  549. package/src/platforms/gba/lib/libgba/sysinclude/paths.h +9 -0
  550. package/src/platforms/gba/lib/libgba/sysinclude/pthread.h +456 -0
  551. package/src/platforms/gba/lib/libgba/sysinclude/pwd.h +83 -0
  552. package/src/platforms/gba/lib/libgba/sysinclude/reent.h +190 -0
  553. package/src/platforms/gba/lib/libgba/sysinclude/regdef.h +7 -0
  554. package/src/platforms/gba/lib/libgba/sysinclude/regex.h +103 -0
  555. package/src/platforms/gba/lib/libgba/sysinclude/sched.h +112 -0
  556. package/src/platforms/gba/lib/libgba/sysinclude/search.h +64 -0
  557. package/src/platforms/gba/lib/libgba/sysinclude/setjmp.h +25 -0
  558. package/src/platforms/gba/lib/libgba/sysinclude/signal.h +35 -0
  559. package/src/platforms/gba/lib/libgba/sysinclude/spawn.h +111 -0
  560. package/src/platforms/gba/lib/libgba/sysinclude/ssp/ssp.h +76 -0
  561. package/src/platforms/gba/lib/libgba/sysinclude/ssp/stdio.h +101 -0
  562. package/src/platforms/gba/lib/libgba/sysinclude/ssp/stdlib.h +30 -0
  563. package/src/platforms/gba/lib/libgba/sysinclude/ssp/string.h +115 -0
  564. package/src/platforms/gba/lib/libgba/sysinclude/ssp/strings.h +55 -0
  565. package/src/platforms/gba/lib/libgba/sysinclude/ssp/unistd.h +93 -0
  566. package/src/platforms/gba/lib/libgba/sysinclude/ssp/wchar.h +97 -0
  567. package/src/platforms/gba/lib/libgba/sysinclude/stdarg.h +135 -0
  568. package/src/platforms/gba/lib/libgba/sysinclude/stdatomic.h +409 -0
  569. package/src/platforms/gba/lib/libgba/sysinclude/stdbool.h +51 -0
  570. package/src/platforms/gba/lib/libgba/sysinclude/stddef.h +463 -0
  571. package/src/platforms/gba/lib/libgba/sysinclude/stdint.h +466 -0
  572. package/src/platforms/gba/lib/libgba/sysinclude/stdio.h +807 -0
  573. package/src/platforms/gba/lib/libgba/sysinclude/stdio_ext.h +79 -0
  574. package/src/platforms/gba/lib/libgba/sysinclude/stdlib.h +345 -0
  575. package/src/platforms/gba/lib/libgba/sysinclude/string.h +183 -0
  576. package/src/platforms/gba/lib/libgba/sysinclude/strings.h +80 -0
  577. package/src/platforms/gba/lib/libgba/sysinclude/sys/_default_fcntl.h +241 -0
  578. package/src/platforms/gba/lib/libgba/sysinclude/sys/_intsup.h +199 -0
  579. package/src/platforms/gba/lib/libgba/sysinclude/sys/_locale.h +12 -0
  580. package/src/platforms/gba/lib/libgba/sysinclude/sys/_pthreadtypes.h +233 -0
  581. package/src/platforms/gba/lib/libgba/sysinclude/sys/_sigset.h +43 -0
  582. package/src/platforms/gba/lib/libgba/sysinclude/sys/_stdint.h +90 -0
  583. package/src/platforms/gba/lib/libgba/sysinclude/sys/_timespec.h +52 -0
  584. package/src/platforms/gba/lib/libgba/sysinclude/sys/_timeval.h +60 -0
  585. package/src/platforms/gba/lib/libgba/sysinclude/sys/_types.h +228 -0
  586. package/src/platforms/gba/lib/libgba/sysinclude/sys/_tz_structs.h +24 -0
  587. package/src/platforms/gba/lib/libgba/sysinclude/sys/cdefs.h +754 -0
  588. package/src/platforms/gba/lib/libgba/sysinclude/sys/config.h +314 -0
  589. package/src/platforms/gba/lib/libgba/sysinclude/sys/custom_file.h +2 -0
  590. package/src/platforms/gba/lib/libgba/sysinclude/sys/dir.h +10 -0
  591. package/src/platforms/gba/lib/libgba/sysinclude/sys/dirent.h +13 -0
  592. package/src/platforms/gba/lib/libgba/sysinclude/sys/endian.h +207 -0
  593. package/src/platforms/gba/lib/libgba/sysinclude/sys/errno.h +198 -0
  594. package/src/platforms/gba/lib/libgba/sysinclude/sys/fcntl.h +12 -0
  595. package/src/platforms/gba/lib/libgba/sysinclude/sys/features.h +551 -0
  596. package/src/platforms/gba/lib/libgba/sysinclude/sys/fenv.h +90 -0
  597. package/src/platforms/gba/lib/libgba/sysinclude/sys/file.h +2 -0
  598. package/src/platforms/gba/lib/libgba/sysinclude/sys/iconvnls.h +77 -0
  599. package/src/platforms/gba/lib/libgba/sysinclude/sys/iosupport.h +143 -0
  600. package/src/platforms/gba/lib/libgba/sysinclude/sys/lock.h +75 -0
  601. package/src/platforms/gba/lib/libgba/sysinclude/sys/param.h +35 -0
  602. package/src/platforms/gba/lib/libgba/sysinclude/sys/queue.h +919 -0
  603. package/src/platforms/gba/lib/libgba/sysinclude/sys/reent.h +913 -0
  604. package/src/platforms/gba/lib/libgba/sysinclude/sys/resource.h +24 -0
  605. package/src/platforms/gba/lib/libgba/sysinclude/sys/sched.h +69 -0
  606. package/src/platforms/gba/lib/libgba/sysinclude/sys/select.h +94 -0
  607. package/src/platforms/gba/lib/libgba/sysinclude/sys/signal.h +388 -0
  608. package/src/platforms/gba/lib/libgba/sysinclude/sys/stat.h +179 -0
  609. package/src/platforms/gba/lib/libgba/sysinclude/sys/statvfs.h +41 -0
  610. package/src/platforms/gba/lib/libgba/sysinclude/sys/stdio.h +27 -0
  611. package/src/platforms/gba/lib/libgba/sysinclude/sys/string.h +2 -0
  612. package/src/platforms/gba/lib/libgba/sysinclude/sys/syslimits.h +61 -0
  613. package/src/platforms/gba/lib/libgba/sysinclude/sys/time.h +448 -0
  614. package/src/platforms/gba/lib/libgba/sysinclude/sys/timeb.h +40 -0
  615. package/src/platforms/gba/lib/libgba/sysinclude/sys/times.h +32 -0
  616. package/src/platforms/gba/lib/libgba/sysinclude/sys/timespec.h +63 -0
  617. package/src/platforms/gba/lib/libgba/sysinclude/sys/tree.h +864 -0
  618. package/src/platforms/gba/lib/libgba/sysinclude/sys/types.h +228 -0
  619. package/src/platforms/gba/lib/libgba/sysinclude/sys/unistd.h +591 -0
  620. package/src/platforms/gba/lib/libgba/sysinclude/sys/utime.h +22 -0
  621. package/src/platforms/gba/lib/libgba/sysinclude/sys/wait.h +44 -0
  622. package/src/platforms/gba/lib/libgba/sysinclude/tar.h +43 -0
  623. package/src/platforms/gba/lib/libgba/sysinclude/termios.h +7 -0
  624. package/src/platforms/gba/lib/libgba/sysinclude/tgmath.h +127 -0
  625. package/src/platforms/gba/lib/libgba/sysinclude/threads.h +93 -0
  626. package/src/platforms/gba/lib/libgba/sysinclude/time.h +313 -0
  627. package/src/platforms/gba/lib/libgba/sysinclude/unctrl.h +42 -0
  628. package/src/platforms/gba/lib/libgba/sysinclude/unistd.h +6 -0
  629. package/src/platforms/gba/lib/libgba/sysinclude/utime.h +12 -0
  630. package/src/platforms/gba/lib/libgba/sysinclude/utmp.h +8 -0
  631. package/src/platforms/gba/lib/libgba/sysinclude/varargs.h +7 -0
  632. package/src/platforms/gba/lib/libgba/sysinclude/wchar.h +339 -0
  633. package/src/platforms/gba/lib/libgba/sysinclude/wctype.h +74 -0
  634. package/src/platforms/gba/lib/libgba/sysinclude/wordexp.h +53 -0
  635. package/src/platforms/gba/lib/libtonc/crtbegin.o +0 -0
  636. package/src/platforms/gba/lib/libtonc/crtend.o +0 -0
  637. package/src/platforms/gba/lib/libtonc/crti.o +0 -0
  638. package/src/platforms/gba/lib/libtonc/crtn.o +0 -0
  639. package/src/platforms/gba/lib/libtonc/gba_cart.ld +319 -0
  640. package/src/platforms/gba/lib/libtonc/gba_crt0.s +258 -0
  641. package/src/platforms/gba/lib/libtonc/include/tonc.h +72 -0
  642. package/src/platforms/gba/lib/libtonc/include/tonc_asminc.h +132 -0
  643. package/src/platforms/gba/lib/libtonc/include/tonc_bios.h +555 -0
  644. package/src/platforms/gba/lib/libtonc/include/tonc_core.h +573 -0
  645. package/src/platforms/gba/lib/libtonc/include/tonc_input.h +184 -0
  646. package/src/platforms/gba/lib/libtonc/include/tonc_irq.h +121 -0
  647. package/src/platforms/gba/lib/libtonc/include/tonc_legacy.h +481 -0
  648. package/src/platforms/gba/lib/libtonc/include/tonc_libgba.h +537 -0
  649. package/src/platforms/gba/lib/libtonc/include/tonc_math.h +692 -0
  650. package/src/platforms/gba/lib/libtonc/include/tonc_memdef.h +962 -0
  651. package/src/platforms/gba/lib/libtonc/include/tonc_memmap.h +583 -0
  652. package/src/platforms/gba/lib/libtonc/include/tonc_nocash.h +51 -0
  653. package/src/platforms/gba/lib/libtonc/include/tonc_oam.h +186 -0
  654. package/src/platforms/gba/lib/libtonc/include/tonc_surface.h +461 -0
  655. package/src/platforms/gba/lib/libtonc/include/tonc_text.h +270 -0
  656. package/src/platforms/gba/lib/libtonc/include/tonc_tte.h +748 -0
  657. package/src/platforms/gba/lib/libtonc/include/tonc_types.h +376 -0
  658. package/src/platforms/gba/lib/libtonc/include/tonc_video.h +615 -0
  659. package/src/platforms/gba/lib/libtonc/libtonc.seed.a +0 -0
  660. package/src/platforms/gba/lib/libtonc/libtonc.seed.hash +1 -0
  661. package/src/platforms/gba/lib/libtonc/src/asm/clr_blend_fast.s +72 -0
  662. package/src/platforms/gba/lib/libtonc/src/asm/clr_fade_fast.s +74 -0
  663. package/src/platforms/gba/lib/libtonc/src/asm/div_lut.s +54 -0
  664. package/src/platforms/gba/lib/libtonc/src/asm/sin_lut.s +90 -0
  665. package/src/platforms/gba/lib/libtonc/src/asm/tonc_bios.s +289 -0
  666. package/src/platforms/gba/lib/libtonc/src/asm/tonc_bios_ex.s +97 -0
  667. package/src/platforms/gba/lib/libtonc/src/asm/tonc_isr_master.s +92 -0
  668. package/src/platforms/gba/lib/libtonc/src/asm/tonc_isr_nest.s +98 -0
  669. package/src/platforms/gba/lib/libtonc/src/asm/tonc_memcpy.s +126 -0
  670. package/src/platforms/gba/lib/libtonc/src/asm/tonc_memset.s +123 -0
  671. package/src/platforms/gba/lib/libtonc/src/asm/tonc_nocash.s +73 -0
  672. package/src/platforms/gba/lib/libtonc/src/font/sys8.png +0 -0
  673. package/src/platforms/gba/lib/libtonc/src/font/sys8.s +46 -0
  674. package/src/platforms/gba/lib/libtonc/src/font/verdana10.png +0 -0
  675. package/src/platforms/gba/lib/libtonc/src/font/verdana10.s +293 -0
  676. package/src/platforms/gba/lib/libtonc/src/font/verdana9.png +0 -0
  677. package/src/platforms/gba/lib/libtonc/src/font/verdana9.s +167 -0
  678. package/src/platforms/gba/lib/libtonc/src/font/verdana9_b4.png +0 -0
  679. package/src/platforms/gba/lib/libtonc/src/font/verdana9_b4.s +545 -0
  680. package/src/platforms/gba/lib/libtonc/src/font/verdana9b.png +0 -0
  681. package/src/platforms/gba/lib/libtonc/src/font/verdana9b.s +167 -0
  682. package/src/platforms/gba/lib/libtonc/src/font/verdana9i.png +0 -0
  683. package/src/platforms/gba/lib/libtonc/src/font/verdana9i.s +167 -0
  684. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_bitmap.c +289 -0
  685. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text.c +81 -0
  686. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_bm.c +244 -0
  687. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_map.c +122 -0
  688. package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_oam.c +113 -0
  689. package/src/platforms/gba/lib/libtonc/src/pre1.3/toncfont.s +43 -0
  690. package/src/platforms/gba/lib/libtonc/src/tonc_bg.c +61 -0
  691. package/src/platforms/gba/lib/libtonc/src/tonc_bg_affine.c +112 -0
  692. package/src/platforms/gba/lib/libtonc/src/tonc_bmp16.c +240 -0
  693. package/src/platforms/gba/lib/libtonc/src/tonc_bmp8.c +314 -0
  694. package/src/platforms/gba/lib/libtonc/src/tonc_color.c +368 -0
  695. package/src/platforms/gba/lib/libtonc/src/tonc_core.c +237 -0
  696. package/src/platforms/gba/lib/libtonc/src/tonc_input.c +118 -0
  697. package/src/platforms/gba/lib/libtonc/src/tonc_irq.c +271 -0
  698. package/src/platforms/gba/lib/libtonc/src/tonc_math.c +54 -0
  699. package/src/platforms/gba/lib/libtonc/src/tonc_oam.c +76 -0
  700. package/src/platforms/gba/lib/libtonc/src/tonc_obj_affine.c +146 -0
  701. package/src/platforms/gba/lib/libtonc/src/tonc_sbmp16.c +369 -0
  702. package/src/platforms/gba/lib/libtonc/src/tonc_sbmp8.c +405 -0
  703. package/src/platforms/gba/lib/libtonc/src/tonc_schr4c.c +588 -0
  704. package/src/platforms/gba/lib/libtonc/src/tonc_schr4r.c +462 -0
  705. package/src/platforms/gba/lib/libtonc/src/tonc_surface.c +105 -0
  706. package/src/platforms/gba/lib/libtonc/src/tonc_video.c +33 -0
  707. package/src/platforms/gba/lib/libtonc/src/tte/ase_drawg.c +83 -0
  708. package/src/platforms/gba/lib/libtonc/src/tte/bmp16_drawg.c +72 -0
  709. package/src/platforms/gba/lib/libtonc/src/tte/bmp16_drawg_b1cs.c +92 -0
  710. package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg.c +71 -0
  711. package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg_b1cs.c +104 -0
  712. package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg_b1cts_fast.s +115 -0
  713. package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b1cts.c +76 -0
  714. package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b1cts_fast.s +128 -0
  715. package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b4cts.c +67 -0
  716. package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b4cts_fast.s +127 -0
  717. package/src/platforms/gba/lib/libtonc/src/tte/chr4r_drawg_b1cts.c +80 -0
  718. package/src/platforms/gba/lib/libtonc/src/tte/chr4r_drawg_b1cts_fast.s +145 -0
  719. package/src/platforms/gba/lib/libtonc/src/tte/obj_drawg.c +61 -0
  720. package/src/platforms/gba/lib/libtonc/src/tte/se_drawg.c +110 -0
  721. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_ase.c +87 -0
  722. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_bmp.c +118 -0
  723. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_chr4c.c +86 -0
  724. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_chr4r.c +87 -0
  725. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_obj.c +84 -0
  726. package/src/platforms/gba/lib/libtonc/src/tte/tte_init_se.c +96 -0
  727. package/src/platforms/gba/lib/libtonc/src/tte/tte_iohook.c +264 -0
  728. package/src/platforms/gba/lib/libtonc/src/tte/tte_main.c +756 -0
  729. package/src/platforms/gba/lib/libtonc/src/tte/tte_types.s +119 -0
  730. package/src/platforms/gba/lib/maxmod/LICENSE-MAXMOD +23 -0
  731. package/src/platforms/gba/lib/maxmod/asm_include/mp_defs.inc +117 -0
  732. package/src/platforms/gba/lib/maxmod/asm_include/mp_format_mas.inc +108 -0
  733. package/src/platforms/gba/lib/maxmod/asm_include/mp_macros.inc +195 -0
  734. package/src/platforms/gba/lib/maxmod/asm_include/mp_mas.inc +40 -0
  735. package/src/platforms/gba/lib/maxmod/asm_include/mp_mas_structs.inc +189 -0
  736. package/src/platforms/gba/lib/maxmod/asm_include/mp_mixer_ds.inc +46 -0
  737. package/src/platforms/gba/lib/maxmod/asm_include/mp_mixer_gba.inc +42 -0
  738. package/src/platforms/gba/lib/maxmod/asm_include/swi_gba.inc +23 -0
  739. package/src/platforms/gba/lib/maxmod/include/maxmod.h +412 -0
  740. package/src/platforms/gba/lib/maxmod/include/mm_types.h +333 -0
  741. package/src/platforms/gba/lib/maxmod/maxmod.seed.a +0 -0
  742. package/src/platforms/gba/lib/maxmod/maxmod.seed.hash +1 -0
  743. package/src/platforms/gba/lib/maxmod/music/chiptune.xm +0 -0
  744. package/src/platforms/gba/lib/maxmod/music/chiptune_soundbank.bin +0 -0
  745. package/src/platforms/gba/lib/maxmod/music/chiptune_soundbank.h +4 -0
  746. package/src/platforms/gba/lib/maxmod/music/make_chiptune_xm.js +203 -0
  747. package/src/platforms/gba/lib/maxmod/source/mm_effect.s +767 -0
  748. package/src/platforms/gba/lib/maxmod/source/mm_main.s +115 -0
  749. package/src/platforms/gba/lib/maxmod/source/mm_mas.s +4990 -0
  750. package/src/platforms/gba/lib/maxmod/source/mm_mas_arm.s +612 -0
  751. package/src/platforms/gba/lib/maxmod/source_gba/mm_init_default.s +98 -0
  752. package/src/platforms/gba/lib/maxmod/source_gba/mm_main_gba.s +292 -0
  753. package/src/platforms/gba/lib/maxmod/source_gba/mm_mixer_gba.s +1367 -0
  754. package/src/platforms/gba/lib/sysbase/gba_iosupport.c +138 -0
  755. package/src/platforms/gbc/MENTAL_MODEL.md +165 -0
  756. package/src/platforms/gbc/TROUBLESHOOTING.md +142 -0
  757. package/src/platforms/gbc/UPSTREAM_SOURCES.md +60 -0
  758. package/src/platforms/gbc/lib/c/LICENSE-HUGEDRIVER +25 -0
  759. package/src/platforms/gbc/lib/c/README.md +120 -0
  760. package/src/platforms/gbc/lib/c/SDCC_GOTCHAS.md +189 -0
  761. package/src/platforms/gbc/lib/c/gb_crt0.s +163 -0
  762. package/src/platforms/gbc/lib/c/gb_hardware.h +113 -0
  763. package/src/platforms/gbc/lib/c/gb_runtime.c +284 -0
  764. package/src/platforms/gbc/lib/c/gb_runtime.h +145 -0
  765. package/src/platforms/gbc/lib/c/hUGEDriver.c +191 -0
  766. package/src/platforms/gbc/lib/c/hUGEDriver.h +95 -0
  767. package/src/platforms/gbc/lib/c/hUGEDriver.upstream.asm +1908 -0
  768. package/src/platforms/gbc/lib/c/lcd_init.c +19 -0
  769. package/src/platforms/gbc/lib/c/patch-header.js +154 -0
  770. package/src/platforms/gbc/lib/c/song_data.c +88 -0
  771. package/src/platforms/gbc/lib/c/unroll.h +52 -0
  772. package/src/platforms/gbc/lib/c/wait_vblank.c +14 -0
  773. package/src/platforms/genesis/MENTAL_MODEL.md +223 -0
  774. package/src/platforms/genesis/TROUBLESHOOTING.md +193 -0
  775. package/src/platforms/genesis/UPSTREAM_SOURCES.md +52 -0
  776. package/src/platforms/genesis/image-to-tilemap.js +333 -0
  777. package/src/platforms/genesis/lib/README.md +157 -0
  778. package/src/platforms/genesis/lib/c/crtbegin.o +0 -0
  779. package/src/platforms/genesis/lib/c/crtend.o +0 -0
  780. package/src/platforms/genesis/lib/c/genesis.ld +44 -0
  781. package/src/platforms/genesis/lib/c/genesis_sfx.c +51 -0
  782. package/src/platforms/genesis/lib/c/genesis_sfx.h +49 -0
  783. package/src/platforms/genesis/lib/c/libc.a +0 -0
  784. package/src/platforms/genesis/lib/c/libgcc.a +0 -0
  785. package/src/platforms/genesis/lib/c/libm.a +0 -0
  786. package/src/platforms/genesis/lib/c/sega.s +71 -0
  787. package/src/platforms/genesis/lib/header.s +96 -0
  788. package/src/platforms/genesis/lib/nmi_safe.s +79 -0
  789. package/src/platforms/genesis/lib/pad_read.s +104 -0
  790. package/src/platforms/genesis/lib/sgdk/COPYING.RUNTIME +73 -0
  791. package/src/platforms/genesis/lib/sgdk/LICENSE +12 -0
  792. package/src/platforms/genesis/lib/sgdk/include/asm.h +52 -0
  793. package/src/platforms/genesis/lib/sgdk/include/asm_mac.i +9 -0
  794. package/src/platforms/genesis/lib/sgdk/include/bmp.h +690 -0
  795. package/src/platforms/genesis/lib/sgdk/include/config.h +208 -0
  796. package/src/platforms/genesis/lib/sgdk/include/dma.h +542 -0
  797. package/src/platforms/genesis/lib/sgdk/include/ext/console.h +387 -0
  798. package/src/platforms/genesis/lib/sgdk/include/ext/everdrive.h +116 -0
  799. package/src/platforms/genesis/lib/sgdk/include/ext/fat16.h +84 -0
  800. package/src/platforms/genesis/lib/sgdk/include/ext/flash-save/flash.h +164 -0
  801. package/src/platforms/genesis/lib/sgdk/include/ext/flash-save/saveman.h +177 -0
  802. package/src/platforms/genesis/lib/sgdk/include/ext/link_cable.h +316 -0
  803. package/src/platforms/genesis/lib/sgdk/include/ext/minimusic/minimus.h +29 -0
  804. package/src/platforms/genesis/lib/sgdk/include/ext/mw/16c550.h +221 -0
  805. package/src/platforms/genesis/lib/sgdk/include/ext/mw/comm.h +93 -0
  806. package/src/platforms/genesis/lib/sgdk/include/ext/mw/gamejolt.h +541 -0
  807. package/src/platforms/genesis/lib/sgdk/include/ext/mw/jsmn.h +471 -0
  808. package/src/platforms/genesis/lib/sgdk/include/ext/mw/json.h +122 -0
  809. package/src/platforms/genesis/lib/sgdk/include/ext/mw/lsd.h +172 -0
  810. package/src/platforms/genesis/lib/sgdk/include/ext/mw/megawifi.h +984 -0
  811. package/src/platforms/genesis/lib/sgdk/include/ext/mw/mw-msg.h +392 -0
  812. package/src/platforms/genesis/lib/sgdk/include/ext/mw/ssf_ed_pro.h +38 -0
  813. package/src/platforms/genesis/lib/sgdk/include/ext/mw/ssf_ed_x7.h +73 -0
  814. package/src/platforms/genesis/lib/sgdk/include/ext/serial/buffer.h +8 -0
  815. package/src/platforms/genesis/lib/sgdk/include/ext/serial/serial.h +133 -0
  816. package/src/platforms/genesis/lib/sgdk/include/ext/stb/stb_sprintf.h +1864 -0
  817. package/src/platforms/genesis/lib/sgdk/include/genesis.h +92 -0
  818. package/src/platforms/genesis/lib/sgdk/include/joy.h +482 -0
  819. package/src/platforms/genesis/lib/sgdk/include/kdebug.h +21 -0
  820. package/src/platforms/genesis/lib/sgdk/include/map.h +409 -0
  821. package/src/platforms/genesis/lib/sgdk/include/mapper.h +186 -0
  822. package/src/platforms/genesis/lib/sgdk/include/maths.h +1071 -0
  823. package/src/platforms/genesis/lib/sgdk/include/maths3D.h +480 -0
  824. package/src/platforms/genesis/lib/sgdk/include/memory.h +346 -0
  825. package/src/platforms/genesis/lib/sgdk/include/memory_base.h +37 -0
  826. package/src/platforms/genesis/lib/sgdk/include/object.h +171 -0
  827. package/src/platforms/genesis/lib/sgdk/include/pal.h +500 -0
  828. package/src/platforms/genesis/lib/sgdk/include/pool.h +171 -0
  829. package/src/platforms/genesis/lib/sgdk/include/psg.h +153 -0
  830. package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_dpcm2.h +79 -0
  831. package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_pcm.h +98 -0
  832. package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_pcm4.h +125 -0
  833. package/src/platforms/genesis/lib/sgdk/include/snd/pcm/tab_vol.h +6 -0
  834. package/src/platforms/genesis/lib/sgdk/include/snd/smp_null.h +6 -0
  835. package/src/platforms/genesis/lib/sgdk/include/snd/smp_null_dpcm.h +6 -0
  836. package/src/platforms/genesis/lib/sgdk/include/snd/sound.h +70 -0
  837. package/src/platforms/genesis/lib/sgdk/include/snd/xgm.h +399 -0
  838. package/src/platforms/genesis/lib/sgdk/include/snd/xgm2.h +389 -0
  839. package/src/platforms/genesis/lib/sgdk/include/snd/z80_def.i80 +41 -0
  840. package/src/platforms/genesis/lib/sgdk/include/snd/z80_fct.i80 +83 -0
  841. package/src/platforms/genesis/lib/sgdk/include/snd/z80_mac.i80 +1476 -0
  842. package/src/platforms/genesis/lib/sgdk/include/sprite_eng.h +1095 -0
  843. package/src/platforms/genesis/lib/sgdk/include/sprite_eng_legacy.h +1030 -0
  844. package/src/platforms/genesis/lib/sgdk/include/sram.h +110 -0
  845. package/src/platforms/genesis/lib/sgdk/include/string.h +349 -0
  846. package/src/platforms/genesis/lib/sgdk/include/sys.h +511 -0
  847. package/src/platforms/genesis/lib/sgdk/include/tab_cnv.h +19 -0
  848. package/src/platforms/genesis/lib/sgdk/include/task.h +77 -0
  849. package/src/platforms/genesis/lib/sgdk/include/task_cst.h +33 -0
  850. package/src/platforms/genesis/lib/sgdk/include/timer.h +132 -0
  851. package/src/platforms/genesis/lib/sgdk/include/tools.h +450 -0
  852. package/src/platforms/genesis/lib/sgdk/include/types.h +320 -0
  853. package/src/platforms/genesis/lib/sgdk/include/vdp.h +1150 -0
  854. package/src/platforms/genesis/lib/sgdk/include/vdp_bg.h +723 -0
  855. package/src/platforms/genesis/lib/sgdk/include/vdp_pal.h +101 -0
  856. package/src/platforms/genesis/lib/sgdk/include/vdp_spr.h +448 -0
  857. package/src/platforms/genesis/lib/sgdk/include/vdp_tile.h +1136 -0
  858. package/src/platforms/genesis/lib/sgdk/include/vram.h +270 -0
  859. package/src/platforms/genesis/lib/sgdk/include/ym2612.h +87 -0
  860. package/src/platforms/genesis/lib/sgdk/include/z80_ctrl.h +420 -0
  861. package/src/platforms/genesis/lib/sgdk/libmd.seed.a +0 -0
  862. package/src/platforms/genesis/lib/sgdk/libmd.seed.hash +1 -0
  863. package/src/platforms/genesis/lib/sgdk/md.ld +120 -0
  864. package/src/platforms/genesis/lib/sgdk/music/demo.vgm +0 -0
  865. package/src/platforms/genesis/lib/sgdk/music/demo.xgc +0 -0
  866. package/src/platforms/genesis/lib/sgdk/music/demo.xgm +0 -0
  867. package/src/platforms/genesis/lib/sgdk/res/image/font_default.png +0 -0
  868. package/src/platforms/genesis/lib/sgdk/res/image/sgdk_logo.png +0 -0
  869. package/src/platforms/genesis/lib/sgdk/res/libres.h +10 -0
  870. package/src/platforms/genesis/lib/sgdk/res/libres.res +5 -0
  871. package/src/platforms/genesis/lib/sgdk/res/libres.s +166 -0
  872. package/src/platforms/genesis/lib/sgdk/res/sound/stop_xgm.bin +0 -0
  873. package/src/platforms/genesis/lib/sgdk/rom_header.c +33 -0
  874. package/src/platforms/genesis/lib/sgdk/sega.preprocessed.s +364 -0
  875. package/src/platforms/genesis/lib/sgdk/sega.s +365 -0
  876. package/src/platforms/genesis/lib/sgdk/src/bmp.c +1539 -0
  877. package/src/platforms/genesis/lib/sgdk/src/bmp_a.s +3477 -0
  878. package/src/platforms/genesis/lib/sgdk/src/boot/rom_header.c +33 -0
  879. package/src/platforms/genesis/lib/sgdk/src/boot/sega.s +365 -0
  880. package/src/platforms/genesis/lib/sgdk/src/dma.c +782 -0
  881. package/src/platforms/genesis/lib/sgdk/src/dma_a.s +23 -0
  882. package/src/platforms/genesis/lib/sgdk/src/error_a.s +376 -0
  883. package/src/platforms/genesis/lib/sgdk/src/ext/console.c +490 -0
  884. package/src/platforms/genesis/lib/sgdk/src/ext/everdrive.c +285 -0
  885. package/src/platforms/genesis/lib/sgdk/src/ext/fat16.c +610 -0
  886. package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/README.md +112 -0
  887. package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/flash.c +300 -0
  888. package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/saveman.c +641 -0
  889. package/src/platforms/genesis/lib/sgdk/src/ext/link_cable.c +1758 -0
  890. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/CHANGELOG.md +31 -0
  891. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/LICENSE.txt +17 -0
  892. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/README.md +18 -0
  893. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/data.z80 +148 -0
  894. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/define.z80 +173 -0
  895. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/api-c.md +80 -0
  896. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/format.md +132 -0
  897. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/teradrive.md +33 -0
  898. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/fm.z80 +363 -0
  899. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/main.z80 +433 -0
  900. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/minimus.c +129 -0
  901. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/minimus_drv.s80 +17 -0
  902. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/psg.z80 +231 -0
  903. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/track.z80 +398 -0
  904. package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/util.z80 +98 -0
  905. package/src/platforms/genesis/lib/sgdk/src/ext/mw/16c550.c +84 -0
  906. package/src/platforms/genesis/lib/sgdk/src/ext/mw/README.md +849 -0
  907. package/src/platforms/genesis/lib/sgdk/src/ext/mw/comm.c +141 -0
  908. package/src/platforms/genesis/lib/sgdk/src/ext/mw/gamejolt.c +758 -0
  909. package/src/platforms/genesis/lib/sgdk/src/ext/mw/json.c +153 -0
  910. package/src/platforms/genesis/lib/sgdk/src/ext/mw/lsd.c +364 -0
  911. package/src/platforms/genesis/lib/sgdk/src/ext/mw/megawifi.c +1501 -0
  912. package/src/platforms/genesis/lib/sgdk/src/ext/mw/ssf_ed_pro.c +98 -0
  913. package/src/platforms/genesis/lib/sgdk/src/ext/mw/ssf_ed_x7.c +67 -0
  914. package/src/platforms/genesis/lib/sgdk/src/ext/serial/buffer.c +69 -0
  915. package/src/platforms/genesis/lib/sgdk/src/ext/serial/serial.c +158 -0
  916. package/src/platforms/genesis/lib/sgdk/src/joy.c +1361 -0
  917. package/src/platforms/genesis/lib/sgdk/src/kdebug.s +109 -0
  918. package/src/platforms/genesis/lib/sgdk/src/map.c +1915 -0
  919. package/src/platforms/genesis/lib/sgdk/src/mapper.c +280 -0
  920. package/src/platforms/genesis/lib/sgdk/src/maths.c +878 -0
  921. package/src/platforms/genesis/lib/sgdk/src/maths3D.c +480 -0
  922. package/src/platforms/genesis/lib/sgdk/src/maths3D_a.s +205 -0
  923. package/src/platforms/genesis/lib/sgdk/src/memory.c +760 -0
  924. package/src/platforms/genesis/lib/sgdk/src/memory_a.s +306 -0
  925. package/src/platforms/genesis/lib/sgdk/src/object.c +111 -0
  926. package/src/platforms/genesis/lib/sgdk/src/pal.c +484 -0
  927. package/src/platforms/genesis/lib/sgdk/src/pool.c +234 -0
  928. package/src/platforms/genesis/lib/sgdk/src/psg.c +82 -0
  929. package/src/platforms/genesis/lib/sgdk/src/snd/drv_null.s80 +27 -0
  930. package/src/platforms/genesis/lib/sgdk/src/snd/drv_xgm.s80 +3037 -0
  931. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_dpcm2.s80 +984 -0
  932. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_pcm.s80 +592 -0
  933. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_pcm4.s80 +699 -0
  934. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_dpcm2.c +172 -0
  935. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_pcm.c +152 -0
  936. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_pcm4.c +213 -0
  937. package/src/platforms/genesis/lib/sgdk/src/snd/pcm/tab_vol.c +277 -0
  938. package/src/platforms/genesis/lib/sgdk/src/snd/smp_null.s +22 -0
  939. package/src/platforms/genesis/lib/sgdk/src/snd/smp_null_dpcm.s +15 -0
  940. package/src/platforms/genesis/lib/sgdk/src/snd/sound.c +33 -0
  941. package/src/platforms/genesis/lib/sgdk/src/snd/xgm.c +683 -0
  942. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2.s80 +993 -0
  943. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_fct.i80 +611 -0
  944. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_mac.i80 +133 -0
  945. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_pcm_fct.i80 +114 -0
  946. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_pcm_mac.i80 +1444 -0
  947. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_psg_fct.i80 +491 -0
  948. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_psg_mac.i80 +43 -0
  949. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_ym_fct.i80 +1664 -0
  950. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_ym_mac.i80 +295 -0
  951. package/src/platforms/genesis/lib/sgdk/src/snd/xgm2.c +1083 -0
  952. package/src/platforms/genesis/lib/sgdk/src/sprite_eng.c +2256 -0
  953. package/src/platforms/genesis/lib/sgdk/src/sprite_eng_legacy.c +2309 -0
  954. package/src/platforms/genesis/lib/sgdk/src/sram.c +30 -0
  955. package/src/platforms/genesis/lib/sgdk/src/sram_a.s +41 -0
  956. package/src/platforms/genesis/lib/sgdk/src/string.c +720 -0
  957. package/src/platforms/genesis/lib/sgdk/src/sys.c +1053 -0
  958. package/src/platforms/genesis/lib/sgdk/src/sys_a.s +74 -0
  959. package/src/platforms/genesis/lib/sgdk/src/tab_cnv.c +129 -0
  960. package/src/platforms/genesis/lib/sgdk/src/tab_log10.c +8201 -0
  961. package/src/platforms/genesis/lib/sgdk/src/tab_log2.c +8201 -0
  962. package/src/platforms/genesis/lib/sgdk/src/tab_sin.c +2058 -0
  963. package/src/platforms/genesis/lib/sgdk/src/tab_sqrt.c +8201 -0
  964. package/src/platforms/genesis/lib/sgdk/src/task.s +148 -0
  965. package/src/platforms/genesis/lib/sgdk/src/timer.c +201 -0
  966. package/src/platforms/genesis/lib/sgdk/src/tools.c +1299 -0
  967. package/src/platforms/genesis/lib/sgdk/src/tools_a.s +979 -0
  968. package/src/platforms/genesis/lib/sgdk/src/types.c +18 -0
  969. package/src/platforms/genesis/lib/sgdk/src/vdp.c +1060 -0
  970. package/src/platforms/genesis/lib/sgdk/src/vdp_bg.c +511 -0
  971. package/src/platforms/genesis/lib/sgdk/src/vdp_spr.c +322 -0
  972. package/src/platforms/genesis/lib/sgdk/src/vdp_tile.c +1011 -0
  973. package/src/platforms/genesis/lib/sgdk/src/vdp_tile_a.s +68 -0
  974. package/src/platforms/genesis/lib/sgdk/src/vram.c +273 -0
  975. package/src/platforms/genesis/lib/sgdk/src/ym2612.c +175 -0
  976. package/src/platforms/genesis/lib/sgdk/src/z80_ctrl.c +334 -0
  977. package/src/platforms/genesis/lib/sprite_table.s +129 -0
  978. package/src/platforms/genesis/lib/vblank_wait.s +73 -0
  979. package/src/platforms/genesis/lib/vdp_init.s +85 -0
  980. package/src/platforms/genesis/lib/wram.s +88 -0
  981. package/src/platforms/genesis/lib/z80_bootstrap.s +102 -0
  982. package/src/platforms/genesis/vdp.js +495 -0
  983. package/src/platforms/gg/MENTAL_MODEL.md +155 -0
  984. package/src/platforms/gg/TROUBLESHOOTING.md +91 -0
  985. package/src/platforms/gg/UPSTREAM_SOURCES.md +36 -0
  986. package/src/platforms/gg/lib/c/gg_crt0.s +112 -0
  987. package/src/platforms/gg/lib/c/gg_hw.h +62 -0
  988. package/src/platforms/gg/lib/c/gg_music.c +155 -0
  989. package/src/platforms/gg/lib/c/gg_music.h +89 -0
  990. package/src/platforms/gg/lib/c/gg_sfx.c +82 -0
  991. package/src/platforms/gg/lib/c/gg_sfx.h +40 -0
  992. package/src/platforms/gg/lib/c/joypad_read.c +22 -0
  993. package/src/platforms/gg/lib/c/load_palette.c +20 -0
  994. package/src/platforms/gg/lib/c/load_tiles.c +32 -0
  995. package/src/platforms/gg/lib/c/sprite_table.c +60 -0
  996. package/src/platforms/gg/lib/c/vblank_wait.c +10 -0
  997. package/src/platforms/gg/lib/c/vdp_init.c +58 -0
  998. package/src/platforms/index.js +7 -0
  999. package/src/platforms/lynx/MENTAL_MODEL.md +231 -0
  1000. package/src/platforms/lynx/TROUBLESHOOTING.md +105 -0
  1001. package/src/platforms/lynx/UPSTREAM_SOURCES.md +66 -0
  1002. package/src/platforms/lynx/lib/c/lynx_music.c +63 -0
  1003. package/src/platforms/lynx/lib/c/lynx_music.h +16 -0
  1004. package/src/platforms/lynx/lib/c/lynx_sfx.c +147 -0
  1005. package/src/platforms/lynx/lib/c/lynx_sfx.h +59 -0
  1006. package/src/platforms/lynx/lib/cc65-src/bllhdr.s +18 -0
  1007. package/src/platforms/lynx/lib/cc65-src/bootldr.s +195 -0
  1008. package/src/platforms/lynx/lib/cc65-src/cgetc.s +69 -0
  1009. package/src/platforms/lynx/lib/cc65-src/clock.s +87 -0
  1010. package/src/platforms/lynx/lib/cc65-src/crt0.s +135 -0
  1011. package/src/platforms/lynx/lib/cc65-src/defdir.s +29 -0
  1012. package/src/platforms/lynx/lib/cc65-src/eeprom.s +255 -0
  1013. package/src/platforms/lynx/lib/cc65-src/eeprom46.s +204 -0
  1014. package/src/platforms/lynx/lib/cc65-src/eeprom66.s +227 -0
  1015. package/src/platforms/lynx/lib/cc65-src/eeprom86.s +236 -0
  1016. package/src/platforms/lynx/lib/cc65-src/exec.s +34 -0
  1017. package/src/platforms/lynx/lib/cc65-src/exehdr.s +27 -0
  1018. package/src/platforms/lynx/lib/cc65-src/extzp.inc +23 -0
  1019. package/src/platforms/lynx/lib/cc65-src/extzp.s +30 -0
  1020. package/src/platforms/lynx/lib/cc65-src/irq.s +45 -0
  1021. package/src/platforms/lynx/lib/cc65-src/joy/lynx-stdjoy.s +93 -0
  1022. package/src/platforms/lynx/lib/cc65-src/joy_stat_stddrv.s +14 -0
  1023. package/src/platforms/lynx/lib/cc65-src/kbhit.s +56 -0
  1024. package/src/platforms/lynx/lib/cc65-src/libref.s +9 -0
  1025. package/src/platforms/lynx/lib/cc65-src/load.s +41 -0
  1026. package/src/platforms/lynx/lib/cc65-src/lseek.s +58 -0
  1027. package/src/platforms/lynx/lib/cc65-src/lynx-cart.s +98 -0
  1028. package/src/platforms/lynx/lib/cc65-src/lynx-snd.s +1270 -0
  1029. package/src/platforms/lynx/lib/cc65-src/mainargs.s +24 -0
  1030. package/src/platforms/lynx/lib/cc65-src/open.s +136 -0
  1031. package/src/platforms/lynx/lib/cc65-src/oserror.s +14 -0
  1032. package/src/platforms/lynx/lib/cc65-src/read.s +44 -0
  1033. package/src/platforms/lynx/lib/cc65-src/ser/lynx-comlynx.s +404 -0
  1034. package/src/platforms/lynx/lib/cc65-src/ser_stat_stddrv.s +14 -0
  1035. package/src/platforms/lynx/lib/cc65-src/sysuname.s +39 -0
  1036. package/src/platforms/lynx/lib/cc65-src/tgi/lynx-160-102-16.s +1075 -0
  1037. package/src/platforms/lynx/lib/cc65-src/tgi_colors.s +9 -0
  1038. package/src/platforms/lynx/lib/cc65-src/tgi_irq.s +11 -0
  1039. package/src/platforms/lynx/lib/cc65-src/tgi_stat_stddrv.s +14 -0
  1040. package/src/platforms/lynx/lib/cc65-src/tgi_stddrv.s +13 -0
  1041. package/src/platforms/lynx/lib/cc65-src/uploader.s +81 -0
  1042. package/src/platforms/nes/MENTAL_MODEL.md +301 -0
  1043. package/src/platforms/nes/TROUBLESHOOTING.md +321 -0
  1044. package/src/platforms/nes/UPSTREAM_SOURCES.md +31 -0
  1045. package/src/platforms/nes/image-to-chr.js +195 -0
  1046. package/src/platforms/nes/image-to-tilemap.js +415 -0
  1047. package/src/platforms/nes/lib/README.md +40 -0
  1048. package/src/platforms/nes/lib/asm/LICENSE-FAMITONE +40 -0
  1049. package/src/platforms/nes/lib/asm/chr_ram_header.s +32 -0
  1050. package/src/platforms/nes/lib/asm/famitone2.s +1258 -0
  1051. package/src/platforms/nes/lib/asm/famitone_bridge.s +50 -0
  1052. package/src/platforms/nes/lib/asm/music_data.s +238 -0
  1053. package/src/platforms/nes/lib/c/chr_ram_runtime_hello_sprite.c +81 -0
  1054. package/src/platforms/nes/lib/c/chr_ram_runtime_hud_row.c +101 -0
  1055. package/src/platforms/nes/lib/c/nes_runtime.c +347 -0
  1056. package/src/platforms/nes/lib/c/nes_runtime.h +153 -0
  1057. package/src/platforms/nes/lib/c/nmi_handler.c +51 -0
  1058. package/src/platforms/nes/lib/c/nmi_trampoline.s +25 -0
  1059. package/src/platforms/nes/lib/cc65-src/Makefile.inc +9 -0
  1060. package/src/platforms/nes/lib/cc65-src/_scrsize.s +24 -0
  1061. package/src/platforms/nes/lib/cc65-src/cclear.s +29 -0
  1062. package/src/platforms/nes/lib/cc65-src/chline.s +31 -0
  1063. package/src/platforms/nes/lib/cc65-src/clock.s +31 -0
  1064. package/src/platforms/nes/lib/cc65-src/clrscr.s +72 -0
  1065. package/src/platforms/nes/lib/cc65-src/color.s +68 -0
  1066. package/src/platforms/nes/lib/cc65-src/cpeekc.s +37 -0
  1067. package/src/platforms/nes/lib/cc65-src/cpeekcolor.s +8 -0
  1068. package/src/platforms/nes/lib/cc65-src/cpeekrevers.s +37 -0
  1069. package/src/platforms/nes/lib/cc65-src/cputc.s +95 -0
  1070. package/src/platforms/nes/lib/cc65-src/crt0.s +180 -0
  1071. package/src/platforms/nes/lib/cc65-src/cvline.s +31 -0
  1072. package/src/platforms/nes/lib/cc65-src/get_tv.s +37 -0
  1073. package/src/platforms/nes/lib/cc65-src/gotox.s +21 -0
  1074. package/src/platforms/nes/lib/cc65-src/gotoxy.s +22 -0
  1075. package/src/platforms/nes/lib/cc65-src/gotoy.s +22 -0
  1076. package/src/platforms/nes/lib/cc65-src/irq.s +19 -0
  1077. package/src/platforms/nes/lib/cc65-src/joy/nes-stdjoy.s +102 -0
  1078. package/src/platforms/nes/lib/cc65-src/joy_stat_stddrv.s +14 -0
  1079. package/src/platforms/nes/lib/cc65-src/libref.s +9 -0
  1080. package/src/platforms/nes/lib/cc65-src/mainargs.s +24 -0
  1081. package/src/platforms/nes/lib/cc65-src/neschar.s +4616 -0
  1082. package/src/platforms/nes/lib/cc65-src/ppu.s +158 -0
  1083. package/src/platforms/nes/lib/cc65-src/ppubuf.s +117 -0
  1084. package/src/platforms/nes/lib/cc65-src/randomize.s +18 -0
  1085. package/src/platforms/nes/lib/cc65-src/revers.s +27 -0
  1086. package/src/platforms/nes/lib/cc65-src/setcursor.s +37 -0
  1087. package/src/platforms/nes/lib/cc65-src/sysuname.s +39 -0
  1088. package/src/platforms/nes/lib/cc65-src/tgi/nes-64-56-2.s +480 -0
  1089. package/src/platforms/nes/lib/cc65-src/tgi_stat_stddrv.s +14 -0
  1090. package/src/platforms/nes/lib/cc65-src/tgi_stddrv.s +13 -0
  1091. package/src/platforms/nes/lib/cc65-src/waitvsync.s +18 -0
  1092. package/src/platforms/nes/lib/cc65-src/wherex.s +19 -0
  1093. package/src/platforms/nes/lib/cc65-src/wherey.s +19 -0
  1094. package/src/platforms/nes/lib/clear_nametable.s +38 -0
  1095. package/src/platforms/nes/lib/clear_oam.s +18 -0
  1096. package/src/platforms/nes/lib/load_palette.s +31 -0
  1097. package/src/platforms/nes/lib/nmi_safe.s +65 -0
  1098. package/src/platforms/nes/lib/oam_dma.s +16 -0
  1099. package/src/platforms/nes/lib/read_pad.s +46 -0
  1100. package/src/platforms/nes/lib/reset.s +46 -0
  1101. package/src/platforms/nes/lib/sprite_table_populate.s +75 -0
  1102. package/src/platforms/nes/lib/wait_vblank.s +12 -0
  1103. package/src/platforms/nes/palette.js +39 -0
  1104. package/src/platforms/nes/ppu.js +372 -0
  1105. package/src/platforms/sms/MENTAL_MODEL.md +267 -0
  1106. package/src/platforms/sms/TROUBLESHOOTING.md +124 -0
  1107. package/src/platforms/sms/UPSTREAM_SOURCES.md +29 -0
  1108. package/src/platforms/sms/image-to-tilemap.js +260 -0
  1109. package/src/platforms/sms/lib/README.md +117 -0
  1110. package/src/platforms/sms/lib/c/joypad_read.c +33 -0
  1111. package/src/platforms/sms/lib/c/load_palette.c +24 -0
  1112. package/src/platforms/sms/lib/c/load_tiles.c +32 -0
  1113. package/src/platforms/sms/lib/c/sms_crt0.s +101 -0
  1114. package/src/platforms/sms/lib/c/sms_hw.h +53 -0
  1115. package/src/platforms/sms/lib/c/sms_music.c +178 -0
  1116. package/src/platforms/sms/lib/c/sms_music.h +50 -0
  1117. package/src/platforms/sms/lib/c/sms_sfx.c +82 -0
  1118. package/src/platforms/sms/lib/c/sms_sfx.h +40 -0
  1119. package/src/platforms/sms/lib/c/sprite_table.c +60 -0
  1120. package/src/platforms/sms/lib/c/vblank_wait.c +10 -0
  1121. package/src/platforms/sms/lib/c/vdp_init.c +58 -0
  1122. package/src/platforms/sms/lib/header.s +33 -0
  1123. package/src/platforms/sms/lib/joypad_read.s +40 -0
  1124. package/src/platforms/sms/lib/load_palette.s +30 -0
  1125. package/src/platforms/sms/lib/load_tiles.s +50 -0
  1126. package/src/platforms/sms/lib/sprite_table.s +44 -0
  1127. package/src/platforms/sms/lib/vblank_wait.s +36 -0
  1128. package/src/platforms/sms/lib/vdp_init.s +47 -0
  1129. package/src/platforms/sms/vdp.js +530 -0
  1130. package/src/platforms/snes/MENTAL_MODEL.md +275 -0
  1131. package/src/platforms/snes/TROUBLESHOOTING.md +208 -0
  1132. package/src/platforms/snes/UPSTREAM_SOURCES.md +50 -0
  1133. package/src/platforms/snes/brr.js +208 -0
  1134. package/src/platforms/snes/image-to-tilemap.js +227 -0
  1135. package/src/platforms/snes/lib/audio/apu_blob.asm +228 -0
  1136. package/src/platforms/snes/lib/audio/apu_blob.bin +0 -0
  1137. package/src/platforms/snes/lib/audio/explosion.brr +0 -0
  1138. package/src/platforms/snes/lib/audio/sample_bank.bin +0 -0
  1139. package/src/platforms/snes/lib/audio/shoot.brr +0 -0
  1140. package/src/platforms/snes/lib/audio/spc_driver.asm +241 -0
  1141. package/src/platforms/snes/lib/audio_pipeline.asm +62 -0
  1142. package/src/platforms/snes/lib/c/crt0.asm +125 -0
  1143. package/src/platforms/snes/lib/c/hdr.asm +50 -0
  1144. package/src/platforms/snes/lib/c/snes_sfx.c +116 -0
  1145. package/src/platforms/snes/lib/c/snes_sfx.h +96 -0
  1146. package/src/platforms/snes/lib/c/snes_sfx_data.asm +25 -0
  1147. package/src/platforms/snes/lib/cgram_upload.asm +43 -0
  1148. package/src/platforms/snes/lib/lorom_header.asm +47 -0
  1149. package/src/platforms/snes/lib/lorom_multibank.asm +66 -0
  1150. package/src/platforms/snes/lib/nmi_safe.asm +77 -0
  1151. package/src/platforms/snes/lib/oam_upload.asm +45 -0
  1152. package/src/platforms/snes/lib/pad_read.asm +64 -0
  1153. package/src/platforms/snes/lib/pvsneslib/LICENSE +21 -0
  1154. package/src/platforms/snes/lib/pvsneslib/include/ctype.h +6 -0
  1155. package/src/platforms/snes/lib/pvsneslib/include/float.h +4 -0
  1156. package/src/platforms/snes/lib/pvsneslib/include/hdr.asm +47 -0
  1157. package/src/platforms/snes/lib/pvsneslib/include/limits.h +13 -0
  1158. package/src/platforms/snes/lib/pvsneslib/include/math.h +10 -0
  1159. package/src/platforms/snes/lib/pvsneslib/include/setjmp.h +4 -0
  1160. package/src/platforms/snes/lib/pvsneslib/include/snes/background.h +396 -0
  1161. package/src/platforms/snes/lib/pvsneslib/include/snes/console.h +188 -0
  1162. package/src/platforms/snes/lib/pvsneslib/include/snes/dma.h +381 -0
  1163. package/src/platforms/snes/lib/pvsneslib/include/snes/input.h +289 -0
  1164. package/src/platforms/snes/lib/pvsneslib/include/snes/interrupt.h +264 -0
  1165. package/src/platforms/snes/lib/pvsneslib/include/snes/libversion.h +10 -0
  1166. package/src/platforms/snes/lib/pvsneslib/include/snes/lzss.h +43 -0
  1167. package/src/platforms/snes/lib/pvsneslib/include/snes/map.h +113 -0
  1168. package/src/platforms/snes/lib/pvsneslib/include/snes/object.h +234 -0
  1169. package/src/platforms/snes/lib/pvsneslib/include/snes/pixel.h +53 -0
  1170. package/src/platforms/snes/lib/pvsneslib/include/snes/scores.h +66 -0
  1171. package/src/platforms/snes/lib/pvsneslib/include/snes/snestypes.h +65 -0
  1172. package/src/platforms/snes/lib/pvsneslib/include/snes/sound.h +245 -0
  1173. package/src/platforms/snes/lib/pvsneslib/include/snes/sprite.h +456 -0
  1174. package/src/platforms/snes/lib/pvsneslib/include/snes/video.h +465 -0
  1175. package/src/platforms/snes/lib/pvsneslib/include/snes.h +190 -0
  1176. package/src/platforms/snes/lib/pvsneslib/include/stdarg.h +28 -0
  1177. package/src/platforms/snes/lib/pvsneslib/include/stdbool.h +53 -0
  1178. package/src/platforms/snes/lib/pvsneslib/include/stddef.h +27 -0
  1179. package/src/platforms/snes/lib/pvsneslib/include/stdint.h +7 -0
  1180. package/src/platforms/snes/lib/pvsneslib/include/stdio.h +9 -0
  1181. package/src/platforms/snes/lib/pvsneslib/include/stdlib.h +13 -0
  1182. package/src/platforms/snes/lib/pvsneslib/include/string.h +19 -0
  1183. package/src/platforms/snes/lib/pvsneslib/include/strings.h +5 -0
  1184. package/src/platforms/snes/lib/pvsneslib/source/Makefile +87 -0
  1185. package/src/platforms/snes/lib/pvsneslib/source/backgrounds.asm +834 -0
  1186. package/src/platforms/snes/lib/pvsneslib/source/consoles.asm +1028 -0
  1187. package/src/platforms/snes/lib/pvsneslib/source/crt0_snes.asm +329 -0
  1188. package/src/platforms/snes/lib/pvsneslib/source/dmas.asm +1275 -0
  1189. package/src/platforms/snes/lib/pvsneslib/source/hdr.asm +56 -0
  1190. package/src/platforms/snes/lib/pvsneslib/source/input.asm +445 -0
  1191. package/src/platforms/snes/lib/pvsneslib/source/libc.asm +485 -0
  1192. package/src/platforms/snes/lib/pvsneslib/source/libc_c.c +1214 -0
  1193. package/src/platforms/snes/lib/pvsneslib/source/libm.asm +510 -0
  1194. package/src/platforms/snes/lib/pvsneslib/source/libtcc.asm +374 -0
  1195. package/src/platforms/snes/lib/pvsneslib/source/lzsss.asm +256 -0
  1196. package/src/platforms/snes/lib/pvsneslib/source/maps.asm +1078 -0
  1197. package/src/platforms/snes/lib/pvsneslib/source/objects.asm +2881 -0
  1198. package/src/platforms/snes/lib/pvsneslib/source/scores.asm +226 -0
  1199. package/src/platforms/snes/lib/pvsneslib/source/sm_spc.asm +187 -0
  1200. package/src/platforms/snes/lib/pvsneslib/source/snesmodwla.asm +1186 -0
  1201. package/src/platforms/snes/lib/pvsneslib/source/sounds.asm +273 -0
  1202. package/src/platforms/snes/lib/pvsneslib/source/sprites.asm +3946 -0
  1203. package/src/platforms/snes/lib/pvsneslib/source/vblank.asm +917 -0
  1204. package/src/platforms/snes/lib/pvsneslib/source/videos.asm +1137 -0
  1205. package/src/platforms/snes/lib/reset_init.asm +31 -0
  1206. package/src/platforms/snes/lib/sprite_table_populate.asm +122 -0
  1207. package/src/platforms/snes/lib/vram_dma_upload.asm +42 -0
  1208. package/src/platforms/snes/ppu.js +606 -0
  1209. package/src/playtest/playtest.js +612 -0
  1210. package/src/rom-id/identifier.js +421 -0
  1211. package/src/rom-id/patch.js +217 -0
  1212. package/src/toolchains/_worker/pool.js +253 -0
  1213. package/src/toolchains/_worker/run.js +78 -0
  1214. package/src/toolchains/_worker/wasm-worker.js +233 -0
  1215. package/src/toolchains/arm-none-eabi-gcc/gcc.js +208 -0
  1216. package/src/toolchains/asar/asar.js +542 -0
  1217. package/src/toolchains/assemble-snippet.js +256 -0
  1218. package/src/toolchains/cc65/cc65.js +395 -0
  1219. package/src/toolchains/cc65/da65.js +119 -0
  1220. package/src/toolchains/cc65/dbgparse.js +274 -0
  1221. package/src/toolchains/cc65/preset-resolver.js +59 -0
  1222. package/src/toolchains/cc65/presets/nes/chr-ram-runtime.cfg +79 -0
  1223. package/src/toolchains/cc65/presets/nes/chr-ram-runtime.crt0.s +178 -0
  1224. package/src/toolchains/cc65/presets/nes/chr-ram.cfg +76 -0
  1225. package/src/toolchains/cc65/presets/nes/chr-ram.crt0.s +106 -0
  1226. package/src/toolchains/common/ar.js +121 -0
  1227. package/src/toolchains/common/sdk-cache.js +116 -0
  1228. package/src/toolchains/common/symbols.js +139 -0
  1229. package/src/toolchains/dasm/dasm.js +96 -0
  1230. package/src/toolchains/gba-c/gba-c.js +832 -0
  1231. package/src/toolchains/genesis-c/README.md +61 -0
  1232. package/src/toolchains/genesis-c/genesis-c.js +598 -0
  1233. package/src/toolchains/index.js +727 -0
  1234. package/src/toolchains/m68k-elf-gcc/gcc.js +220 -0
  1235. package/src/toolchains/m68kdasm.js +438 -0
  1236. package/src/toolchains/parse-errors.js +258 -0
  1237. package/src/toolchains/registry.js +67 -0
  1238. package/src/toolchains/rgbds/rgbds.js +144 -0
  1239. package/src/toolchains/sdcc/preflight-lint.js +295 -0
  1240. package/src/toolchains/sdcc/sdcc.js +519 -0
  1241. package/src/toolchains/sjasm/sjasm.js +85 -0
  1242. package/src/toolchains/sm83dasm.js +194 -0
  1243. package/src/toolchains/snes-c/snes-c.js +409 -0
  1244. package/src/toolchains/tcc816/tcc816.js +79 -0
  1245. package/src/toolchains/vasm68k/vasm68k.js +138 -0
  1246. package/src/toolchains/wladx/wladx.js +120 -0
  1247. package/src/toolchains/z80dasm.js +303 -0
@@ -0,0 +1,962 @@
1
+ //
2
+ // Memory map defines. All of them
3
+ //
4
+ //! \file tonc_memdef.h
5
+ //! \author J Vijn
6
+ //! \date 20060508 - 20080521
7
+ //
8
+ /* === NOTES ===
9
+ * 20080521 : comms items taken from libgba
10
+ */
11
+
12
+ #ifndef TONC_MEMDEF
13
+ #define TONC_MEMDEF
14
+
15
+ /*! \defgroup grpMemBits Memory map bit(fields)
16
+ \ingroup grpMemmap
17
+ \brief List of all bit(field) definitions of memory mapped items.
18
+ */
19
+
20
+ // --- Prefixes ---
21
+ // REG_DISPCNT : DCNT
22
+ // REG_DISPSTAT : DSTAT
23
+ // REG_BGxCNT : BG
24
+ // REG_WIN_x : WIN
25
+ // REG_MOSAIC : MOS
26
+ // REG_BLDCNT : BLD
27
+ // REG_SND1SWEEP : SSW
28
+ // REG_SNDxCNT, : SSQR
29
+ // REG_SNDxFREQ, : SFREQ
30
+ // REG_SNDDMGCNT : SDMG
31
+ // REG_SNDDSCNT : SDS
32
+ // REG_SNDSTAT : SSTAT
33
+ // REG_DMAxCNT : DMA
34
+ // REG_TMxCNT : TM
35
+ // REG_SIOCNT : SIO(N/M/U)
36
+ // REG_RCNT : R / GPIO
37
+ // REG_KEYINPUT : KEY
38
+ // REG_KEYCNT : KCNT
39
+ // REG_IE, REG_IF : IRQ
40
+ // REG_WSCNT : WS
41
+ // Regular SE : SE
42
+ // OAM attr 0 : ATTR0
43
+ // OAM attr 1 : ATTR1
44
+ // OAM attr 2 : ATTR2
45
+
46
+
47
+ // --- REG_DISPCNT -----------------------------------------------------
48
+
49
+ /*! \defgroup grpVideoDCNT Display Control Flags
50
+ \ingroup grpMemBits
51
+ \brief Bits for REG_DISPCNT
52
+ */
53
+ /*! \{ */
54
+
55
+ #define DCNT_MODE0 0 //!< Mode 0; bg 0-4: reg
56
+ #define DCNT_MODE1 0x0001 //!< Mode 1; bg 0-1: reg; bg 2: affine
57
+ #define DCNT_MODE2 0x0002 //!< Mode 2; bg 2-3: affine
58
+ #define DCNT_MODE3 0x0003 //!< Mode 3; bg2: 240x160\@16 bitmap
59
+ #define DCNT_MODE4 0x0004 //!< Mode 4; bg2: 240x160\@8 bitmap
60
+ #define DCNT_MODE5 0x0005 //!< Mode 5; bg2: 160x128\@16 bitmap
61
+ #define DCNT_GB 0x0008 //!< (R) GBC indicator
62
+ #define DCNT_PAGE 0x0010 //!< Page indicator
63
+ #define DCNT_OAM_HBL 0x0020 //!< Allow OAM updates in HBlank
64
+ #define DCNT_OBJ_2D 0 //!< OBJ-VRAM as matrix
65
+ #define DCNT_OBJ_1D 0x0040 //!< OBJ-VRAM as array
66
+ #define DCNT_BLANK 0x0080 //!< Force screen blank
67
+ #define DCNT_BG0 0x0100 //!< Enable bg 0
68
+ #define DCNT_BG1 0x0200 //!< Enable bg 1
69
+ #define DCNT_BG2 0x0400 //!< Enable bg 2
70
+ #define DCNT_BG3 0x0800 //!< Enable bg 3
71
+ #define DCNT_OBJ 0x1000 //!< Enable objects
72
+ #define DCNT_WIN0 0x2000 //!< Enable window 0
73
+ #define DCNT_WIN1 0x4000 //!< Enable window 1
74
+ #define DCNT_WINOBJ 0x8000 //!< Enable object window
75
+
76
+ #define DCNT_MODE_MASK 0x0007
77
+ #define DCNT_MODE_SHIFT 0
78
+ #define DCNT_MODE(n) ((n)<<DCNT_MODE_SHIFT)
79
+
80
+ #define DCNT_LAYER_MASK 0x1F00
81
+ #define DCNT_LAYER_SHIFT 8
82
+ #define DCNT_LAYER(n) ((n)<<DCNT_LAYER_SHIFT)
83
+
84
+ #define DCNT_WIN_MASK 0xE000
85
+ #define DCNT_WIN_SHIFT 13
86
+ #define DCNT_WIN(n) ((n)<<DCNT_WIN_SHIFT)
87
+
88
+ #define DCNT_BUILD(mode, layer, win, obj1d, objhbl) \
89
+ ( \
90
+ (((win)&7)<<13) | (((layer)&31)<<8) | (((obj1d)&1)<<6) \
91
+ | (((objhbl)&1)<<5) | ((mode)&7) \
92
+ )
93
+
94
+
95
+ /*! \} /defgroup */
96
+
97
+
98
+ // --- REG_DISPSTAT ----------------------------------------------------
99
+
100
+ /*! \defgroup grpVideoDSTAT Display Status Flags
101
+ \ingroup grpMemBits
102
+ \brief Bits for REG_DISPSTAT
103
+ */
104
+ /*! \{ */
105
+
106
+ #define DSTAT_IN_VBL 0x0001 //!< Now in VBlank
107
+ #define DSTAT_IN_HBL 0x0002 //!< Now in HBlank
108
+ #define DSTAT_IN_VCT 0x0004 //!< Now in set VCount
109
+ #define DSTAT_VBL_IRQ 0x0008 //!< Enable VBlank irq
110
+ #define DSTAT_HBL_IRQ 0x0010 //!< Enable HBlank irq
111
+ #define DSTAT_VCT_IRQ 0x0020 //!< Enable VCount irq
112
+
113
+ #define DSTAT_VCT_MASK 0xFF00
114
+ #define DSTAT_VCT_SHIFT 8
115
+ #define DSTAT_VCT(n) ((n)<<DSTAT_VCT_SHIFT)
116
+
117
+ /*! \} /defgroup */
118
+
119
+ // --- REG_BGxCNT ------------------------------------------------------
120
+
121
+ /*! \defgroup grpVideoBGCNT Background Control Flags
122
+ \ingroup grpMemBits
123
+ \brief Bits for REG_BGxCNT
124
+ */
125
+ /*! \{ */
126
+
127
+ #define BG_MOSAIC 0x0040 //!< Enable Mosaic
128
+ #define BG_4BPP 0 //!< 4bpp (16 color) bg (no effect on affine bg)
129
+ #define BG_8BPP 0x0080 //!< 8bpp (256 color) bg (no effect on affine bg)
130
+ #define BG_WRAP 0x2000 //!< Wrap around edges of affine bgs
131
+ #define BG_SIZE0 0
132
+ #define BG_SIZE1 0x4000
133
+ #define BG_SIZE2 0x8000
134
+ #define BG_SIZE3 0xC000
135
+ #define BG_REG_32x32 0 //!< reg bg, 32x32 (256x256 px)
136
+ #define BG_REG_64x32 0x4000 //!< reg bg, 64x32 (512x256 px)
137
+ #define BG_REG_32x64 0x8000 //!< reg bg, 32x64 (256x512 px)
138
+ #define BG_REG_64x64 0xC000 //!< reg bg, 64x64 (512x512 px)
139
+ #define BG_AFF_16x16 0 //!< affine bg, 16x16 (128x128 px)
140
+ #define BG_AFF_32x32 0x4000 //!< affine bg, 32x32 (256x256 px)
141
+ #define BG_AFF_64x64 0x8000 //!< affine bg, 64x64 (512x512 px)
142
+ #define BG_AFF_128x128 0xC000 //!< affine bg, 128x128 (1024x1024 px)
143
+
144
+ #define BG_PRIO_MASK 0x0003
145
+ #define BG_PRIO_SHIFT 0
146
+ #define BG_PRIO(n) ((n)<<BG_PRIO_SHIFT)
147
+
148
+ #define BG_CBB_MASK 0x000C
149
+ #define BG_CBB_SHIFT 2
150
+ #define BG_CBB(n) ((n)<<BG_CBB_SHIFT)
151
+
152
+ #define BG_SBB_MASK 0x1F00
153
+ #define BG_SBB_SHIFT 8
154
+ #define BG_SBB(n) ((n)<<BG_SBB_SHIFT)
155
+
156
+ #define BG_SIZE_MASK 0xC000
157
+ #define BG_SIZE_SHIFT 14
158
+ #define BG_SIZE(n) ((n)<<BG_SIZE_SHIFT)
159
+
160
+
161
+ #define BG_BUILD(cbb, sbb, size, bpp, prio, mos, wrap) \
162
+ ( \
163
+ ((size)<<14) | (((wrap)&1)<<13) | (((sbb)&31)<<8) \
164
+ | (((bpp)&8)<<4) | (((mos)&1)<<6) | (((cbb)&3)<<2) \
165
+ | ((prio)&3) \
166
+ )
167
+
168
+ /*! \} */
169
+
170
+
171
+ /*! \defgroup grpVideoGfx Graphic effects
172
+ \ingroup grpMemBits
173
+ */
174
+ /*! \{ */
175
+
176
+ // --- REG_WIN_x ------------------------------------------------------
177
+
178
+ //! \name Window macros
179
+ //\{
180
+
181
+ #define WIN_BG0 0x0001 //!< Windowed bg 0
182
+ #define WIN_BG1 0x0002 //!< Windowed bg 1
183
+ #define WIN_BG2 0x0004 //!< Windowed bg 2
184
+ #define WIN_BG3 0x0008 //!< Windowed bg 3
185
+ #define WIN_OBJ 0x0010 //!< Windowed objects
186
+ #define WIN_ALL 0x001F //!< All layers in window.
187
+ #define WIN_BLD 0x0020 //!< Windowed blending
188
+
189
+ #define WIN_LAYER_MASK 0x003F
190
+ #define WIN_LAYER_SHIFT 0
191
+ #define WIN_LAYER(n) ((n)<<WIN_LAYER_SHIFT)
192
+
193
+
194
+ #define WIN_BUILD(low, high) \
195
+ ( ((high)<<8) | (low) )
196
+
197
+ #define WININ_BUILD(win0, win1) WIN_BUILD(win0, win1)
198
+
199
+ #define WINOUT_BUILD(out, obj) WIN_BUILD(out, obj)
200
+
201
+ //\}
202
+
203
+ // --- REG_MOSAIC ------------------------------------------------------
204
+
205
+ //! \name Mosaic macros
206
+ //\{
207
+
208
+ #define MOS_BH_MASK 0x000F
209
+ #define MOS_BH_SHIFT 0
210
+ #define MOS_BH(n) ((n)<<MOS_BH_SHIFT)
211
+
212
+ #define MOS_BV_MASK 0x00F0
213
+ #define MOS_BV_SHIFT 4
214
+ #define MOS_BV(n) ((n)<<MOS_BV_SHIFT)
215
+
216
+ #define MOS_OH_MASK 0x0F00
217
+ #define MOS_OH_SHIFT 8
218
+ #define MOS_OH(n) ((n)<<MOS_OH_SHIFT)
219
+
220
+ #define MOS_OV_MASK 0xF000
221
+ #define MOS_OV_SHIFT 12
222
+ #define MOS_OV(n) ((n)<<MOS_OV_SHIFT)
223
+
224
+ #define MOS_BUILD(bh, bv, oh, ov) \
225
+ ( (((ov)&15)<<12) | (((oh)&15)<<8) | (((bv)&15)<<4)| ((bh)&15) )
226
+
227
+ //\}
228
+
229
+ /* \} */
230
+
231
+
232
+ // --- REG_BLDCNT ------------------------------------------------------
233
+
234
+ /*! \defgroup grpVideoBLD Blend Flags
235
+ \ingroup grpMemBits
236
+ \brief Macros for REG_BLDCNT, REG_BLDY and REG_BLDALPHA
237
+ */
238
+ /*! \{ */
239
+
240
+ //!\ name Blend control
241
+ //\{
242
+
243
+ #define BLD_BG0 0x0001 //!< Blend bg 0
244
+ #define BLD_BG1 0x0002 //!< Blend bg 1
245
+ #define BLD_BG2 0x0004 //!< Blend bg 2
246
+ #define BLD_BG3 0x0008 //!< Blend bg 3
247
+ #define BLD_OBJ 0x0010 //!< Blend objects
248
+ #define BLD_ALL 0x001F //!< All layers (except backdrop)
249
+ #define BLD_BACKDROP 0x0020 //!< Blend backdrop
250
+ #define BLD_OFF 0 //!< Blend mode is off
251
+ #define BLD_STD 0x0040 //!< Normal alpha blend (with REG_EV)
252
+ #define BLD_WHITE 0x0080 //!< Fade to white (with REG_Y)
253
+ #define BLD_BLACK 0x00C0 //!< Fade to black (with REG_Y)
254
+
255
+ #define BLD_TOP_MASK 0x003F
256
+ #define BLD_TOP_SHIFT 0
257
+ #define BLD_TOP(n) ((n)<<BLD_TOP_SHIFT)
258
+
259
+ #define BLD_MODE_MASK 0x00C0
260
+ #define BLD_MODE_SHIFT 6
261
+ #define BLD_MODE(n) ((n)<<BLD_MODE_SHIFT)
262
+
263
+ #define BLD_BOT_MASK 0x3F00
264
+ #define BLD_BOT_SHIFT 8
265
+ #define BLD_BOT(n) ((n)<<BLD_BOT_SHIFT)
266
+
267
+ #define BLD_BUILD(top, bot, mode) \
268
+ ( (((bot)&63)<<8) | (((mode)&3)<<6) | ((top)&63) )
269
+
270
+ //\}
271
+
272
+ // --- REG_BLDALPHA ---
273
+
274
+ //! \name Blend weights
275
+
276
+ #define BLD_EVA_MASK 0x001F
277
+ #define BLD_EVA_SHIFT 0
278
+ #define BLD_EVA(n) ((n)<<BLD_EVA_SHIFT)
279
+
280
+ #define BLD_EVB_MASK 0x1F00
281
+ #define BLD_EVB_SHIFT 8
282
+ #define BLD_EVB(n) ((n)<<BLD_EVB_SHIFT)
283
+
284
+ #define BLDA_BUILD(eva, evb) \
285
+ ( ((eva)&31) | (((evb)&31)<<8) )
286
+
287
+ //\}
288
+
289
+
290
+ // --- REG_BLDY ---
291
+
292
+ //! \name Fade levels
293
+
294
+ #define BLDY_MASK 0x001F
295
+ #define BLDY_SHIFT 0
296
+ #define BLDY(n) ((n)<<BLD_EY_SHIFT)
297
+
298
+ #define BLDY_BUILD(ey) \
299
+ ( (ey)&31 )
300
+
301
+ //\}
302
+
303
+ /*! \} */
304
+
305
+
306
+ // --- REG_SND1SWEEP ---------------------------------------------------
307
+
308
+ /*! \defgroup grpAudioSSW Tone Generator, Sweep Flags
309
+ \ingroup grpMemBits
310
+ \brief Bits for REG_SND1SWEEP (aka REG_SOUND1CNT_L)
311
+ */
312
+ /*! \{ */
313
+
314
+ #define SSW_INC 0 //!< Increasing sweep rate
315
+ #define SSW_DEC 0x0008 //!< Decreasing sweep rate
316
+ #define SSW_OFF 0x0008 //!< Disable sweep altogether
317
+
318
+ #define SSW_SHIFT_MASK 0x0007
319
+ #define SSW_SHIFT_SHIFT 0
320
+ #define SSW_SHIFT(n) ((n)<<SSW_SHIFT_SHIFT)
321
+
322
+ #define SSW_TIME_MASK 0x0070
323
+ #define SSW_TIME_SHIFT 4
324
+ #define SSW_TIME(n) ((n)<<SSW_TIME_SHIFT)
325
+
326
+
327
+ #define SSW_BUILD(shift, dir, time) \
328
+ ( (((time)&7)<<4) | ((dir)<<3) | ((shift)&7) )
329
+
330
+ /*! \} /defgroup */
331
+
332
+ // --- REG_SND1CNT, REG_SND2CNT, REG_SND4CNT ---------------------------
333
+
334
+ /*! \defgroup grpAudioSSQR Tone Generator, Square Flags
335
+ \ingroup grpMemBits
336
+ \brief Bits for REG_SND{1,2,4}CNT
337
+ (aka REG_SOUND1CNT_H, REG_SOUND2CNT_L, REG_SOUND4CNT_L, respectively)
338
+ */
339
+ /*! \{ */
340
+
341
+ #define SSQR_DUTY1_8 0 //!< 12.5% duty cycle (#-------)
342
+ #define SSQR_DUTY1_4 0x0040 //!< 25% duty cycle (##------)
343
+ #define SSQR_DUTY1_2 0x0080 //!< 50% duty cycle (####----)
344
+ #define SSQR_DUTY3_4 0x00C0 //!< 75% duty cycle (######--) Equivalent to 25%
345
+ #define SSQR_INC 0 //!< Increasing volume
346
+ #define SSQR_DEC 0x0800 //!< Decreasing volume
347
+
348
+ #define SSQR_LEN_MASK 0x003F
349
+ #define SSQR_LEN_SHIFT 0
350
+ #define SSQR_LEN(n) ((n)<<SSQR_LEN_SHIFT)
351
+
352
+ #define SSQR_DUTY_MASK 0x00C0
353
+ #define SSQR_DUTY_SHIFT 6
354
+ #define SSQR_DUTY(n) ((n)<<SSQR_DUTY_SHIFT)
355
+
356
+ #define SSQR_TIME_MASK 0x0700
357
+ #define SSQR_TIME_SHIFT 8
358
+ #define SSQR_TIME(n) ((n)<<SSQR_TIME_SHIFT)
359
+
360
+ #define SSQR_IVOL_MASK 0xF000
361
+ #define SSQR_IVOL_SHIFT 12
362
+ #define SSQR_IVOL(n) ((n)<<SSQR_IVOL_SHIFT)
363
+
364
+
365
+ #define SSQR_ENV_BUILD(ivol, dir, time) \
366
+ ( ((ivol)<<12) | ((dir)<<11) | (((time)&7)<<8) )
367
+
368
+ #define SSQR_BUILD(_ivol, dir, step, duty, len) \
369
+ ( SSQR_ENV_BUILD(ivol,dir,step) | (((duty)&3)<<6) | ((len)&63) )
370
+
371
+
372
+ /*! \} /defgroup */
373
+
374
+ // --- REG_SND1FREQ, REG_SND2FREQ, REG_SND3FREQ ------------------------
375
+
376
+ /*! \defgroup grpAudioSFREQ Tone Generator, Frequency Flags
377
+ \ingroup grpMemBits
378
+ \brief Bits for REG_SND{1-3}FREQ
379
+ (aka REG_SOUND1CNT_X, REG_SOUND2CNT_H, REG_SOUND3CNT_X)
380
+ */
381
+ /*! \{ */
382
+
383
+ #define SFREQ_HOLD 0 //!< Continuous play
384
+ #define SFREQ_TIMED 0x4000 //!< Timed play
385
+ #define SFREQ_RESET 0x8000 //!< Reset sound
386
+
387
+ #define SFREQ_RATE_MASK 0x07FF
388
+ #define SFREQ_RATE_SHIFT 0
389
+ #define SFREQ_RATE(n) ((n)<<SFREQ_RATE_SHIFT)
390
+
391
+ #define SFREQ_BUILD(rate, timed, reset) \
392
+ ( ((rate)&0x7FF) | ((timed)<<14) | ((reset)<<15) )
393
+
394
+ /*! \} /defgroup */
395
+
396
+ // --- REG_SNDDMGCNT ---------------------------------------------------
397
+
398
+ /*! \defgroup grpAudioSDMG Tone Generator, Control Flags
399
+ \ingroup grpMemBits
400
+ \brief Bits for REG_SNDDMGCNT (aka REG_SOUNDCNT_L)
401
+ */
402
+ /*! \{ */
403
+
404
+
405
+ #define SDMG_LSQR1 0x0100 //!< Enable channel 1 on left
406
+ #define SDMG_LSQR2 0x0200 //!< Enable channel 2 on left
407
+ #define SDMG_LWAVE 0x0400 //!< Enable channel 3 on left
408
+ #define SDMG_LNOISE 0x0800 //!< Enable channel 4 on left
409
+ #define SDMG_RSQR1 0x1000 //!< Enable channel 1 on right
410
+ #define SDMG_RSQR2 0x2000 //!< Enable channel 2 on right
411
+ #define SDMG_RWAVE 0x4000 //!< Enable channel 3 on right
412
+ #define SDMG_RNOISE 0x8000 //!< Enable channel 4 on right
413
+
414
+ #define SDMG_LVOL_MASK 0x0007
415
+ #define SDMG_LVOL_SHIFT 0
416
+ #define SDMG_LVOL(n) ((n)<<SDMG_LVOL_SHIFT)
417
+
418
+ #define SDMG_RVOL_MASK 0x0070
419
+ #define SDMG_RVOL_SHIFT 4
420
+ #define SDMG_RVOL(n) ((n)<<SDMG_RVOL_SHIFT)
421
+
422
+
423
+ // Unshifted values
424
+ #define SDMG_SQR1 0x01
425
+ #define SDMG_SQR2 0x02
426
+ #define SDMG_WAVE 0x04
427
+ #define SDMG_NOISE 0x08
428
+
429
+
430
+ #define SDMG_BUILD(_lmode, _rmode, _lvol, _rvol) \
431
+ ( ((_rmode)<<12) | ((_lmode)<<8) | (((_rvol)&7)<<4) | ((_lvol)&7) )
432
+
433
+ #define SDMG_BUILD_LR(_mode, _vol) SDMG_BUILD(_mode, _mode, _vol, _vol)
434
+
435
+ /*! \} /defgroup */
436
+
437
+ // --- REG_SNDDSCNT ----------------------------------------------------
438
+
439
+ /*! \defgroup grpAudioSDS Direct Sound Flags
440
+ \ingroup grpMemBits
441
+ \brief Bits for REG_SNDDSCNT (aka REG_SOUNDCNT_H)
442
+ */
443
+ /*! \{ */
444
+
445
+ #define SDS_DMG25 0 //!< Tone generators at 25% volume
446
+ #define SDS_DMG50 0x0001 //!< Tone generators at 50% volume
447
+ #define SDS_DMG100 0x0002 //!< Tone generators at 100% volume
448
+ #define SDS_A50 0 //!< Direct Sound A at 50% volume
449
+ #define SDS_A100 0x0004 //!< Direct Sound A at 100% volume
450
+ #define SDS_B50 0 //!< Direct Sound B at 50% volume
451
+ #define SDS_B100 0x0008 //!< Direct Sound B at 100% volume
452
+ #define SDS_AR 0x0100 //!< Enable Direct Sound A on right
453
+ #define SDS_AL 0x0200 //!< Enable Direct Sound A on left
454
+ #define SDS_ATMR0 0 //!< Direct Sound A to use timer 0
455
+ #define SDS_ATMR1 0x0400 //!< Direct Sound A to use timer 1
456
+ #define SDS_ARESET 0x0800 //!< Reset FIFO of Direct Sound A
457
+ #define SDS_BR 0x1000 //!< Enable Direct Sound B on right
458
+ #define SDS_BL 0x2000 //!< Enable Direct Sound B on left
459
+ #define SDS_BTMR0 0 //!< Direct Sound B to use timer 0
460
+ #define SDS_BTMR1 0x4000 //!< Direct Sound B to use timer 1
461
+ #define SDS_BRESET 0x8000 //!< Reset FIFO of Direct Sound B
462
+
463
+ /*! \} /defgroup */
464
+
465
+ // --- REG_SNDSTAT -----------------------------------------------------
466
+
467
+ /*! \defgroup grpAudioSSTAT Sound Status Flags
468
+ \ingroup grpMemBits
469
+ \brief Bits for REG_SNDSTAT (and REG_SOUNDCNT_X)
470
+ */
471
+ /*! \{ */
472
+
473
+ #define SSTAT_SQR1 0x0001 //!< (R) Channel 1 status
474
+ #define SSTAT_SQR2 0x0002 //!< (R) Channel 2 status
475
+ #define SSTAT_WAVE 0x0004 //!< (R) Channel 3 status
476
+ #define SSTAT_NOISE 0x0008 //!< (R) Channel 4 status
477
+ #define SSTAT_DISABLE 0 //!< Disable sound
478
+ #define SSTAT_ENABLE 0x0080 //!< Enable sound. NOTE: enable before using any other sound regs
479
+
480
+ /*! \} /defgroup */
481
+
482
+ // --- REG_DMAxCNT -----------------------------------------------------
483
+
484
+ /*! \defgroup grpAudioDMA DMA Control Flags
485
+ \ingroup grpMemBits
486
+ \brief Bits for REG_DMAxCNT
487
+ */
488
+ /*! \{ */
489
+
490
+ #define DMA_DST_INC 0 //!< Incrementing destination address
491
+ #define DMA_DST_DEC 0x00200000 //!< Decrementing destination
492
+ #define DMA_DST_FIXED 0x00400000 //!< Fixed destination
493
+ #define DMA_DST_RELOAD 0x00600000 //!< Increment destination, reset after full run
494
+ #define DMA_SRC_INC 0 //!< Incrementing source address
495
+ #define DMA_SRC_DEC 0x00800000 //!< Decrementing source address
496
+ #define DMA_SRC_FIXED 0x01000000 //!< Fixed source address
497
+ #define DMA_REPEAT 0x02000000 //!< Repeat transfer at next start condition
498
+ #define DMA_16 0 //!< Transfer by halfword
499
+ #define DMA_32 0x04000000 //!< Transfer by word
500
+ #define DMA_AT_NOW 0 //!< Start transfer now
501
+ #define DMA_GAMEPAK 0x08000000 //!< Gamepak DRQ
502
+ #define DMA_AT_VBLANK 0x10000000 //!< Start transfer at VBlank
503
+ #define DMA_AT_HBLANK 0x20000000 //!< Start transfer at HBlank
504
+ #define DMA_AT_SPECIAL 0x30000000 //!< Start copy at 'special' condition. Channel dependent
505
+ #define DMA_AT_FIFO 0x30000000 //!< Start at FIFO empty (DMA0/DMA1)
506
+ #define DMA_AT_REFRESH 0x30000000 //!< VRAM special; start at VCount=2 (DMA3)
507
+ #define DMA_IRQ 0x40000000 //!< Enable DMA irq
508
+ #define DMA_ENABLE 0x80000000 //!< Enable DMA
509
+
510
+ #define DMA_COUNT_MASK 0x0000FFFF
511
+ #define DMA_COUNT_SHIFT 0
512
+ #define DMA_COUNT(n) ((n)<<DMA_COUNT_SHIFT)
513
+
514
+
515
+ // \name Extra
516
+ //\{
517
+
518
+ #define DMA_NOW (DMA_ENABLE | DMA_AT_NOW)
519
+ #define DMA_16NOW (DMA_NOW | DMA_16)
520
+ #define DMA_32NOW (DMA_NOW | DMA_32)
521
+
522
+ // copies
523
+ #define DMA_CPY16 (DMA_NOW | DMA_16)
524
+ #define DMA_CPY32 (DMA_NOW | DMA_32)
525
+
526
+ // fills
527
+ #define DMA_FILL16 (DMA_NOW | DMA_SRC_FIXED | DMA_16)
528
+ #define DMA_FILL32 (DMA_NOW | DMA_SRC_FIXED | DMA_32)
529
+
530
+ #define DMA_HDMA (DMA_ENABLE | DMA_REPEAT | DMA_AT_HBLANK | DMA_DST_RELOAD)
531
+
532
+ //\}
533
+
534
+ /*! \} /defgroup */
535
+
536
+
537
+ // --- REG_TMxCNT ------------------------------------------------------
538
+
539
+ /*! \defgroup grpTimerTM Timer Control Flags
540
+ \ingroup grpMemBits
541
+ \brief Bits for REG_TMxCNT
542
+ */
543
+ /*! \{ */
544
+
545
+ #define TM_FREQ_SYS 0 //!< System clock timer (16.7 Mhz)
546
+ #define TM_FREQ_1 0 //!< 1 cycle/tick (16.7 Mhz)
547
+ #define TM_FREQ_64 0x0001 //!< 64 cycles/tick (262 kHz)
548
+ #define TM_FREQ_256 0x0002 //!< 256 cycles/tick (66 kHz)
549
+ #define TM_FREQ_1024 0x0003 //!< 1024 cycles/tick (16 kHz)
550
+ #define TM_CASCADE 0x0004 //!< Increment when preceding timer overflows
551
+ #define TM_IRQ 0x0040 //!< Enable timer irq
552
+ #define TM_ENABLE 0x0080 //!< Enable timer
553
+
554
+ #define TM_FREQ_MASK 0x0003
555
+ #define TM_FREQ_SHIFT 0
556
+ #define TM_FREQ(n) ((n)<<TM_FREQ_SHIFT)
557
+
558
+ /*! \} /defgroup */
559
+
560
+
561
+ // --- REG_SIOCNT ----------------------------------------------------------
562
+
563
+ /*! \defgroup grpSioCnt Serial I/O Control
564
+ \ingroup grpMemBits
565
+ \brief Bits for REG_TMxCNT
566
+ */
567
+ /*! \{ */
568
+
569
+ //! \name General SIO bits.
570
+ //\{
571
+ #define SIO_MODE_8BIT 0x0000 //!< Normal comm mode, 8-bit.
572
+ #define SIO_MODE_32BIT 0x1000 //!< Normal comm mode, 32-bit.
573
+ #define SIO_MODE_MULTI 0x2000 //!< Multi-play comm mode.
574
+ #define SIO_MODE_UART 0x3000 //!< UART comm mode.
575
+
576
+ #define SIO_SI_HIGH 0x0004
577
+ #define SIO_IRQ 0x4000 //!< Enable serial irq.
578
+
579
+ #define SIO_MODE_MASK 0x3000
580
+ #define SIO_MODE_SHIFT 12
581
+ #define SIO_MODE(n) ((n)<<SIO_MODE_SHIFT)
582
+ //\}
583
+
584
+ //! \name Normal mode bits. UNTESTED.
585
+ //\{
586
+ #define SION_CLK_EXT 0x0000 //!< Slave unit; use external clock (default).
587
+ #define SION_CLK_INT 0x0001 //!< Master unit; use internal clock.
588
+
589
+ #define SION_256KHZ 0x0000 //!< 256 kHz clockspeed (default).
590
+ #define SION_2MHZ 0x0002 //!< 2 MHz clockspeed.
591
+
592
+ #define SION_RECV_HIGH 0x0004 //!< SI high; opponent ready to receive (R).
593
+ #define SION_SEND_HIGH 0x0008 //!< SO high; ready to transfer.
594
+
595
+ #define SION_ENABLE 0x0080 //!< Start transfer/transfer enabled.
596
+ //\}
597
+
598
+ //! \name Multiplayer mode bits. UNTESTED.
599
+ //\{
600
+ #define SIOM_9600 0x0000 //!< Baud rate, 9.6 kbps.
601
+ #define SIOM_38400 0x0001 //!< Baud rate, 38.4 kbps.
602
+ #define SIOM_57600 0x0002 //!< Baud rate, 57.6 kbps.
603
+ #define SIOM_115200 0x0003 //!< Baud rate, 115.2 kbps.
604
+
605
+ #define SIOM_SI 0x0004 //!< SI port (R).
606
+ #define SIOM_SLAVE 0x0004 //!< Not the master (R).
607
+ #define SIOM_SD 0x0008 //!< SD port (R).
608
+ #define SIOM_CONNECTED 0x0008 //!< All GBAs connected (R)
609
+
610
+ #define SIOM_ERROR 0x0040 //!< Error in transfer (R).
611
+ #define SIOM_ENABLE 0x0080 //!< Start transfer/transfer enabled.
612
+
613
+
614
+ #define SIOM_BAUD_MASK 0x0003
615
+ #define SIOM_BAUD_SHIFT 0
616
+ #define SIOM_BAUD(n) ((n)<<SIOM_BAUD_SHIFT)
617
+
618
+ #define SIOM_ID_MASK 0x0030 //!< Multi-player ID mask (R)
619
+ #define SIOM_ID_SHIFT 4
620
+ #define SIOM_ID(n) ((n)<<SIOM_ID_SHIFT)
621
+ //\}
622
+
623
+ //! \name UART mode bits. UNTESTED.
624
+ //!\{
625
+ #define SIOU_9600 0x0000 //!< Baud rate, 9.6 kbps.
626
+ #define SIOU_38400 0x0001 //!< Baud rate, 38.4 kbps.
627
+ #define SIOU_57600 0x0002 //!< Baud rate, 57.6 kbps.
628
+ #define SIOU_115200 0x0003 //!< Baud rate, 115.2 kbps.
629
+
630
+ #define SIOU_CTS 0x0004 //!< CTS enable.
631
+ #define SIOU_PARITY_EVEN 0x0000 //!< Use even parity.
632
+ #define SIOU_PARITY_ODD 0x0008 //!< Use odd parity.
633
+ #define SIOU_SEND_FULL 0x0010 //!< Send data is full (R).
634
+ #define SIOU_RECV_EMPTY 0x0020 //!< Receive data is empty (R).
635
+ #define SIOU_ERROR 0x0040 //!< Error in transfer (R).
636
+ #define SIOU_7BIT 0x0000 //!< Data is 7bits long.
637
+ #define SIOU_8BIT 0x0080 //!< Data is 8bits long.
638
+ #define SIOU_SEND 0x0100 //!< Start sending data.
639
+ #define SIOU_RECV 0x0200 //!< Start receiving data.
640
+
641
+ #define SIOU_BAUD_MASK 0x0003
642
+ #define SIOU_BAUD_SHIFT 0
643
+ #define SIOU_BAUD(n) ((n)<<SIOU_BAUD_SHIFT)
644
+ //\}
645
+
646
+ /*! \} */
647
+
648
+
649
+ /*! \defgroup grpCommR Comm control.
650
+ \ingroup grpMemBits
651
+ \brief Communication mode select and general purpose I/O (REG_RCNT).
652
+ */
653
+ /*! \{ */
654
+
655
+ //! \name Communication mode select.
656
+ //\{
657
+ #define R_MODE_NORMAL 0x0000 //!< Normal mode.
658
+ #define R_MODE_MULTI 0x0000 //!< Multiplayer mode.
659
+ #define R_MODE_UART 0x0000 //!< UART mode.
660
+ #define R_MODE_GPIO 0x8000 //!< General purpose mode.
661
+ #define R_MODE_JOYBUS 0xC000 //!< JOY mode.
662
+
663
+ #define R_MODE_MASK 0xC000
664
+ #define R_MODE_SHIFT 14
665
+ #define R_MODE(n) ((n)<<R_MODE_SHIFT)
666
+ //\}
667
+
668
+ //! \name General purpose I/O data
669
+ //\{
670
+ #define GPIO_SC 0x0001 // Data
671
+ #define GPIO_SD 0x0002
672
+ #define GPIO_SI 0x0004
673
+ #define GPIO_SO 0x0008
674
+ #define GPIO_SC_IO 0x0010 // Select I/O
675
+ #define GPIO_SD_IO 0x0020
676
+ #define GPIO_SI_IO 0x0040
677
+ #define GPIO_SO_IO 0x0080
678
+ #define GPIO_SC_INPUT 0x0000 // Input setting
679
+ #define GPIO_SD_INPUT 0x0000
680
+ #define GPIO_SI_INPUT 0x0000
681
+ #define GPIO_SO_INPUT 0x0000
682
+ #define GPIO_SC_OUTPUT 0x0010 // Output setting
683
+ #define GPIO_SD_OUTPUT 0x0020
684
+ #define GPIO_SI_OUTPUT 0x0040
685
+ #define GPIO_SO_OUTPUT 0x0080
686
+
687
+ #define GPIO_IRQ 0x0100 //! Interrupt on SI.
688
+ //\}
689
+
690
+ /*! \} */
691
+
692
+
693
+ // --- REG_KEYINPUT --------------------------------------------------------
694
+
695
+ /*! \defgroup grpInputKEY Key Flags
696
+ \ingroup grpMemBits
697
+ \brief Bits for REG_KEYINPUT and REG_KEYCNT
698
+ */
699
+ /*! \{ */
700
+
701
+ #define KEY_A 0x0001 //!< Button A
702
+ #define KEY_B 0x0002 //!< Button B
703
+ #define KEY_SELECT 0x0004 //!< Select button
704
+ #define KEY_START 0x0008 //!< Start button
705
+ #define KEY_RIGHT 0x0010 //!< Right D-pad
706
+ #define KEY_LEFT 0x0020 //!< Left D-pad
707
+ #define KEY_UP 0x0040 //!< Up D-pad
708
+ #define KEY_DOWN 0x0080 //!< Down D-pad
709
+ #define KEY_R 0x0100 //!< Shoulder R
710
+ #define KEY_L 0x0200 //!< Shoulder L
711
+
712
+ #define KEY_ACCEPT 0x0009 //!< Accept buttons: A or start
713
+ #define KEY_CANCEL 0x0002 //!< Cancel button: B (well, it usually is)
714
+ #define KEY_RESET 0x030C //!< St+Se+L+R
715
+
716
+ #define KEY_FIRE 0x0003 //!< Fire buttons: A or B
717
+ #define KEY_SPECIAL 0x000C //!< Special buttons: Select or Start
718
+ #define KEY_DIR 0x00F0 //!< Directions: left, right, up down
719
+ #define KEY_SHOULDER 0x0300 //!< L or R
720
+
721
+ #define KEY_ANY 0x03FF //!< Here's the Any key :)
722
+
723
+ #define KEY_MASK 0x03FF
724
+
725
+ /*! \} /defgroup */
726
+
727
+ // --- REG_KEYCNT ------------------------------------------------------
728
+
729
+ /*! \defgroup grpInputKCNT Key Control Flags
730
+ \ingroup grpMemBits
731
+ \brief Bits for REG_KEYCNT
732
+ */
733
+
734
+ /*! \{ */
735
+
736
+ #define KCNT_IRQ 0x4000 //!< Enable key irq
737
+ #define KCNT_OR 0 //!< Interrupt on any of selected keys
738
+ #define KCNT_AND 0x8000 //!< Interrupt on all of selected keys
739
+
740
+ /*! \} /defgroup */
741
+
742
+ // --- REG_IE, REG_IF, REG_IF_BIOS -------------------------------------
743
+
744
+ /*! \defgroup grpIrqIRQ Interrupt Flags
745
+ \ingroup grpMemBits
746
+ \brief Bits for REG_IE, REG_IF and REG_IFBIOS
747
+ */
748
+ /*! \{ */
749
+
750
+ #define IRQ_VBLANK 0x0001 //!< Catch VBlank irq
751
+ #define IRQ_HBLANK 0x0002 //!< Catch HBlank irq
752
+ #define IRQ_VCOUNT 0x0004 //!< Catch VCount irq
753
+ #define IRQ_TIMER0 0x0008 //!< Catch timer 0 irq
754
+ #define IRQ_TIMER1 0x0010 //!< Catch timer 1 irq
755
+ #define IRQ_TIMER2 0x0020 //!< Catch timer 2 irq
756
+ #define IRQ_TIMER3 0x0040 //!< Catch timer 3 irq
757
+ #define IRQ_SERIAL 0x0080 //!< Catch serial comm irq
758
+ #define IRQ_DMA0 0x0100 //!< Catch DMA 0 irq
759
+ #define IRQ_DMA1 0x0200 //!< Catch DMA 1 irq
760
+ #define IRQ_DMA2 0x0400 //!< Catch DMA 2 irq
761
+ #define IRQ_DMA3 0x0800 //!< Catch DMA 3 irq
762
+ #define IRQ_KEYPAD 0x1000 //!< Catch key irq
763
+ #define IRQ_GAMEPAK 0x2000 //!< Catch cart irq
764
+
765
+ /*! \} /defgroup */
766
+
767
+ // --- REG_WSCNT -------------------------------------------------------
768
+
769
+ /*! \defgroup grpMiscWS Waitstate Control Flags
770
+ \ingroup grpMemBits
771
+ \brief Bits for REG_WAITCNT
772
+ */
773
+ /*! \{ */
774
+
775
+ #define WS_SRAM_4 0
776
+ #define WS_SRAM_3 0x0001
777
+ #define WS_SRAM_2 0x0002
778
+ #define WS_SRAM_8 0x0003
779
+ #define WS_ROM0_N4 0
780
+ #define WS_ROM0_N3 0x0004
781
+ #define WS_ROM0_N2 0x0008
782
+ #define WS_ROM0_N8 0x000C
783
+ #define WS_ROM0_S2 0
784
+ #define WS_ROM0_S1 0x0010
785
+ #define WS_ROM1_N4 0
786
+ #define WS_ROM1_N3 0x0020
787
+ #define WS_ROM1_N2 0x0040
788
+ #define WS_ROM1_N8 0x0060
789
+ #define WS_ROM1_S4 0
790
+ #define WS_ROM1_S1 0x0080
791
+ #define WS_ROM2_N4 0
792
+ #define WS_ROM2_N3 0x0100
793
+ #define WS_ROM2_N2 0x0200
794
+ #define WS_ROM2_N8 0x0300
795
+ #define WS_ROM2_S8 0
796
+ #define WS_ROM2_S1 0x0400
797
+ #define WS_PHI_OFF 0
798
+ #define WS_PHI_4 0x0800
799
+ #define WS_PHI_2 0x1000
800
+ #define WS_PHI_1 0x1800
801
+ #define WS_PREFETCH 0x4000
802
+ #define WS_GBA 0
803
+ #define WS_CGB 0x8000
804
+
805
+ #define WS_STANDARD 0x4317
806
+
807
+ /*! \} /defgroup */
808
+
809
+ // --- Reg screen entries ----------------------------------------------
810
+
811
+ /*! \defgroup grpVideoSE Screen-entry Flags
812
+ \ingroup grpMemBits
813
+ */
814
+ /*! \{ */
815
+
816
+ #define SE_HFLIP 0x0400 //!< Horizontal flip
817
+ #define SE_VFLIP 0x0800 //!< Vertical flip
818
+
819
+ #define SE_ID_MASK 0x03FF
820
+ #define SE_ID_SHIFT 0
821
+ #define SE_ID(n) ((n)<<SE_ID_SHIFT)
822
+
823
+ #define SE_FLIP_MASK 0x0C00
824
+ #define SE_FLIP_SHIFT 10
825
+ #define SE_FLIP(n) ((n)<<SE_FLIP_SHIFT)
826
+
827
+ #define SE_PALBANK_MASK 0xF000
828
+ #define SE_PALBANK_SHIFT 12
829
+ #define SE_PALBANK(n) ((n)<<SE_PALBANK_SHIFT)
830
+
831
+
832
+ #define SE_BUILD(id, PALBANK, hflip, vflip) \
833
+ ( ((id)&0x03FF) | (((hflip)&1)<<10) | (((vflip)&1)<<11) | ((PALBANK)<<12) )
834
+
835
+
836
+ /*! \} /defgroup */
837
+
838
+ // --- OAM attribute 0 -------------------------------------------------
839
+
840
+ /*! \defgroup grpVideoAttr0 Object Attribute 0 Flags
841
+ \ingroup grpMemBits
842
+ */
843
+ /*! \{ */
844
+
845
+ #define ATTR0_REG 0 //!< Regular object
846
+ #define ATTR0_AFF 0x0100 //!< Affine object
847
+ #define ATTR0_HIDE 0x0200 //!< Inactive object
848
+ #define ATTR0_AFF_DBL 0x0300 //!< Double-size affine object
849
+ #define ATTR0_AFF_DBL_BIT 0x0200
850
+ #define ATTR0_BLEND 0x0400 //!< Enable blend
851
+ #define ATTR0_WINDOW 0x0800 //!< Use for object window
852
+ #define ATTR0_MOSAIC 0x1000 //!< Enable mosaic
853
+ #define ATTR0_4BPP 0 //!< Use 4bpp (16 color) tiles
854
+ #define ATTR0_8BPP 0x2000 //!< Use 8bpp (256 color) tiles
855
+ #define ATTR0_SQUARE 0 //!< Square shape
856
+ #define ATTR0_WIDE 0x4000 //!< Tall shape (height &gt; width)
857
+ #define ATTR0_TALL 0x8000 //!< Wide shape (height &lt; width)
858
+
859
+ #define ATTR0_Y_MASK 0x00FF
860
+ #define ATTR0_Y_SHIFT 0
861
+ #define ATTR0_Y(n) ((n)<<ATTR0_Y_SHIFT)
862
+
863
+ #define ATTR0_MODE_MASK 0x0300
864
+ #define ATTR0_MODE_SHIFT 8
865
+ #define ATTR0_MODE(n) ((n)<<ATTR0_MODE_SHIFT)
866
+
867
+ #define ATTR0_SHAPE_MASK 0xC000
868
+ #define ATTR0_SHAPE_SHIFT 14
869
+ #define ATTR0_SHAPE(n) ((n)<<ATTR0_SHAPE_SHIFT)
870
+
871
+
872
+ #define ATTR0_BUILD(y, shape, bpp, mode, mos, bld, win) \
873
+ ( \
874
+ ((y)&255) | (((mode)&3)<<8) | (((bld)&1)<<10) | (((win)&1)<<11) \
875
+ | (((mos)&1)<<12) | (((bpp)&8)<<10)| (((shape)&3)<<14) \
876
+ )
877
+
878
+ /*! \} /defgroup */
879
+
880
+ // --- OAM attribute 1 -------------------------------------------------
881
+
882
+ /*! \defgroup grpVideoAttr1 Object Attribute 1 Flags
883
+ \ingroup grpMemBits
884
+ */
885
+ /*! \{ */
886
+
887
+ #define ATTR1_HFLIP 0x1000 //!< Horizontal flip (reg obj only)
888
+ #define ATTR1_VFLIP 0x2000 //!< Vertical flip (reg obj only)
889
+ // Base sizes
890
+ #define ATTR1_SIZE_8 0
891
+ #define ATTR1_SIZE_16 0x4000
892
+ #define ATTR1_SIZE_32 0x8000
893
+ #define ATTR1_SIZE_64 0xC000
894
+ // Square sizes
895
+ #define ATTR1_SIZE_8x8 0 //!< Size flag for 8x8 px object
896
+ #define ATTR1_SIZE_16x16 0x4000 //!< Size flag for 16x16 px object
897
+ #define ATTR1_SIZE_32x32 0x8000 //!< Size flag for 32x32 px object
898
+ #define ATTR1_SIZE_64x64 0xC000 //!< Size flag for 64x64 px object
899
+ // Tall sizes
900
+ #define ATTR1_SIZE_8x16 0 //!< Size flag for 8x16 px object
901
+ #define ATTR1_SIZE_8x32 0x4000 //!< Size flag for 8x32 px object
902
+ #define ATTR1_SIZE_16x32 0x8000 //!< Size flag for 16x32 px object
903
+ #define ATTR1_SIZE_32x64 0xC000 //!< Size flag for 32x64 px object
904
+ // Wide sizes
905
+ #define ATTR1_SIZE_16x8 0 //!< Size flag for 16x8 px object
906
+ #define ATTR1_SIZE_32x8 0x4000 //!< Size flag for 32x8 px object
907
+ #define ATTR1_SIZE_32x16 0x8000 //!< Size flag for 32x16 px object
908
+ #define ATTR1_SIZE_64x32 0xC000 //!< Size flag for 64x64 px object
909
+
910
+
911
+ #define ATTR1_X_MASK 0x01FF
912
+ #define ATTR1_X_SHIFT 0
913
+ #define ATTR1_X(n) ((n)<<ATTR1_X_SHIFT)
914
+
915
+ #define ATTR1_AFF_ID_MASK 0x3E00
916
+ #define ATTR1_AFF_ID_SHIFT 9
917
+ #define ATTR1_AFF_ID(n) ((n)<<ATTR1_AFF_ID_SHIFT)
918
+
919
+ #define ATTR1_FLIP_MASK 0x3000
920
+ #define ATTR1_FLIP_SHIFT 12
921
+ #define ATTR1_FLIP(n) ((n)<<ATTR1_FLIP_SHIFT)
922
+
923
+ #define ATTR1_SIZE_MASK 0xC000
924
+ #define ATTR1_SIZE_SHIFT 14
925
+ #define ATTR1_SIZE(n) ((n)<<ATTR1_SIZE_SHIFT)
926
+
927
+
928
+ #define ATTR1_BUILDR(x, size, hflip, vflip) \
929
+ ( ((x)&511) | (((hflip)&1)<<12) | (((vflip)&1)<<13) | (((size)&3)<<14) )
930
+
931
+ #define ATTR1_BUILDA(x, size, affid) \
932
+ ( ((x)&511) | (((affid)&31)<<9) | (((size)&3)<<14) )
933
+
934
+ /*! \} /defgroup */
935
+
936
+ // --- OAM attribute 2 -------------------------------------------------
937
+
938
+ /*! \defgroup grpVideoAttr2 Object Attribute 2 Flags
939
+ \ingroup grpMemBits
940
+ */
941
+ /*! \{ */
942
+
943
+ #define ATTR2_ID_MASK 0x03FF
944
+ #define ATTR2_ID_SHIFT 0
945
+ #define ATTR2_ID(n) ((n)<<ATTR2_ID_SHIFT)
946
+
947
+ #define ATTR2_PRIO_MASK 0x0C00
948
+ #define ATTR2_PRIO_SHIFT 10
949
+ #define ATTR2_PRIO(n) ((n)<<ATTR2_PRIO_SHIFT)
950
+
951
+ #define ATTR2_PALBANK_MASK 0xF000
952
+ #define ATTR2_PALBANK_SHIFT 12
953
+ #define ATTR2_PALBANK(n) ((n)<<ATTR2_PALBANK_SHIFT)
954
+
955
+
956
+ #define ATTR2_BUILD(id, pb, prio) \
957
+ ( ((id)&0x3FF) | (((pb)&15)<<12) | (((prio)&3)<<10) )
958
+
959
+ /*! \} //defgroup */
960
+
961
+
962
+ #endif // TONC_MEMDEF