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.
- package/AGENTS.md +726 -0
- package/LICENSE +45 -0
- package/NOTICE +86 -0
- package/README.md +46 -0
- package/examples/README.md +36 -0
- package/examples/art-first-workflow/README.md +205 -0
- package/examples/atari2600/main.asm +143 -0
- package/examples/atari2600/templates/default.asm +183 -0
- package/examples/atari2600/templates/mini_invaders.asm +381 -0
- package/examples/atari2600/templates/music_demo.asm +322 -0
- package/examples/atari2600/templates/paddle.asm +345 -0
- package/examples/atari2600/templates/single_screen.asm +242 -0
- package/examples/atari7800/main.c +88 -0
- package/examples/atari7800/templates/default.c +183 -0
- package/examples/atari7800/templates/hello_sprite.c +141 -0
- package/examples/atari7800/templates/music_demo.c +123 -0
- package/examples/atari7800/templates/platformer.c +159 -0
- package/examples/atari7800/templates/puzzle.c +164 -0
- package/examples/atari7800/templates/racing.c +139 -0
- package/examples/atari7800/templates/shmup.c +148 -0
- package/examples/atari7800/templates/sports.c +207 -0
- package/examples/c64/main.c +63 -0
- package/examples/c64/templates/hello_sprite.c +117 -0
- package/examples/c64/templates/music_demo.c +131 -0
- package/examples/c64/templates/platformer.c +194 -0
- package/examples/c64/templates/puzzle.c +178 -0
- package/examples/c64/templates/racing.c +140 -0
- package/examples/c64/templates/shmup.c +201 -0
- package/examples/c64/templates/sports.c +109 -0
- package/examples/c64/templates/tile_engine.c +174 -0
- package/examples/gb/main.asm +106 -0
- package/examples/gb/main.c +49 -0
- package/examples/gb/templates/default.c +58 -0
- package/examples/gb/templates/hello_sprite.c +130 -0
- package/examples/gb/templates/music_demo.c +52 -0
- package/examples/gb/templates/platformer.c +178 -0
- package/examples/gb/templates/puzzle.c +217 -0
- package/examples/gb/templates/racing.c +158 -0
- package/examples/gb/templates/shmup.c +172 -0
- package/examples/gb/templates/sports.c +136 -0
- package/examples/gb/templates/tile_engine.c +280 -0
- package/examples/gba/templates/gba_hello.c +64 -0
- package/examples/gba/templates/maxmod_demo.c +105 -0
- package/examples/gba/templates/platformer.c +215 -0
- package/examples/gba/templates/puzzle.c +237 -0
- package/examples/gba/templates/racing.c +175 -0
- package/examples/gba/templates/shmup.c +197 -0
- package/examples/gba/templates/sports.c +177 -0
- package/examples/gba/templates/tonc_hello.c +72 -0
- package/examples/gba/templates/tonc_hello_sprite.c +109 -0
- package/examples/gbc/main.asm +123 -0
- package/examples/gbc/templates/default.c +61 -0
- package/examples/gbc/templates/hello_sprite.c +140 -0
- package/examples/gbc/templates/music_demo.c +63 -0
- package/examples/gbc/templates/platformer.c +181 -0
- package/examples/gbc/templates/puzzle.c +217 -0
- package/examples/gbc/templates/racing.c +164 -0
- package/examples/gbc/templates/shmup.c +188 -0
- package/examples/gbc/templates/sports.c +142 -0
- package/examples/gbc/templates/tile_engine.c +280 -0
- package/examples/genesis/main.s +161 -0
- package/examples/genesis/templates/hello_sprite.c +75 -0
- package/examples/genesis/templates/platformer.c +166 -0
- package/examples/genesis/templates/puzzle.c +240 -0
- package/examples/genesis/templates/racing.c +170 -0
- package/examples/genesis/templates/sgdk_hello.c +41 -0
- package/examples/genesis/templates/shmup.c +188 -0
- package/examples/genesis/templates/shmup_2p.c +244 -0
- package/examples/genesis/templates/sports.c +172 -0
- package/examples/genesis/templates/tile_engine.c +135 -0
- package/examples/genesis/templates/xgm2_demo.c +53 -0
- package/examples/genesis/templates/xgm2_demo_data.s +27 -0
- package/examples/gg/main.c +10 -0
- package/examples/gg/templates/default.c +156 -0
- package/examples/gg/templates/hello_sprite.c +90 -0
- package/examples/gg/templates/music_demo.c +156 -0
- package/examples/gg/templates/platformer.c +220 -0
- package/examples/gg/templates/puzzle.c +204 -0
- package/examples/gg/templates/racing.c +161 -0
- package/examples/gg/templates/shmup.c +188 -0
- package/examples/gg/templates/sports.c +137 -0
- package/examples/gg/templates/tile_engine.c +137 -0
- package/examples/lynx/main.c +4 -0
- package/examples/lynx/templates/default.c +41 -0
- package/examples/lynx/templates/hello_sprite.c +39 -0
- package/examples/lynx/templates/music_demo.c +37 -0
- package/examples/lynx/templates/platformer.c +72 -0
- package/examples/lynx/templates/puzzle.c +142 -0
- package/examples/lynx/templates/racing.c +94 -0
- package/examples/lynx/templates/shmup.c +132 -0
- package/examples/lynx/templates/sports.c +59 -0
- package/examples/nes/main.c +143 -0
- package/examples/nes/space-shooter/README.md +68 -0
- package/examples/nes/space-shooter/main.c +441 -0
- package/examples/nes/space-shooter/nes_runtime.c +347 -0
- package/examples/nes/space-shooter/nes_runtime.h +141 -0
- package/examples/nes/templates/default.c +41 -0
- package/examples/nes/templates/hello_sprite.c +104 -0
- package/examples/nes/templates/music_demo.c +80 -0
- package/examples/nes/templates/platformer.c +171 -0
- package/examples/nes/templates/puzzle.c +232 -0
- package/examples/nes/templates/racing.c +203 -0
- package/examples/nes/templates/shmup.c +228 -0
- package/examples/nes/templates/sports.c +205 -0
- package/examples/nes/templates/tile_engine.c +224 -0
- package/examples/porting-across-platforms/README.md +59 -0
- package/examples/sms/main.c +129 -0
- package/examples/sms/templates/default.c +110 -0
- package/examples/sms/templates/hello_sprite.c +90 -0
- package/examples/sms/templates/music_demo.c +151 -0
- package/examples/sms/templates/platformer.c +215 -0
- package/examples/sms/templates/puzzle.c +204 -0
- package/examples/sms/templates/racing.c +161 -0
- package/examples/sms/templates/shmup.c +167 -0
- package/examples/sms/templates/shmup_2p.c +219 -0
- package/examples/sms/templates/sports.c +147 -0
- package/examples/sms/templates/tile_engine.c +137 -0
- package/examples/snes/main.asm +70 -0
- package/examples/snes/templates/c-hello-data.asm +28 -0
- package/examples/snes/templates/c-hello.c +71 -0
- package/examples/snes/templates/default-data.asm +36 -0
- package/examples/snes/templates/default.c +74 -0
- package/examples/snes/templates/hello_sprite-data.asm +45 -0
- package/examples/snes/templates/hello_sprite.c +76 -0
- package/examples/snes/templates/music_demo-data.asm +20 -0
- package/examples/snes/templates/music_demo.c +83 -0
- package/examples/snes/templates/platformer-data.asm +27 -0
- package/examples/snes/templates/platformer.c +142 -0
- package/examples/snes/templates/puzzle-data.asm +14 -0
- package/examples/snes/templates/puzzle.c +199 -0
- package/examples/snes/templates/racing-data.asm +33 -0
- package/examples/snes/templates/racing.c +146 -0
- package/examples/snes/templates/shmup-data.asm +61 -0
- package/examples/snes/templates/shmup.c +199 -0
- package/examples/snes/templates/sports-data.asm +28 -0
- package/examples/snes/templates/sports.c +144 -0
- package/package.json +83 -0
- package/src/cli/smoke.js +283 -0
- package/src/cores/registry.js +95 -0
- package/src/host/LibretroHost.js +502 -0
- package/src/host/callbacks.js +444 -0
- package/src/host/chafa-render.js +170 -0
- package/src/host/coreLoader.js +57 -0
- package/src/host/cpu-state.js +422 -0
- package/src/host/dsp-state.js +188 -0
- package/src/host/framebuffer.js +115 -0
- package/src/host/gpgx-state.js +309 -0
- package/src/host/index.js +4 -0
- package/src/host/retroConstants.js +72 -0
- package/src/host/snes9x-state.js +35 -0
- package/src/host/types.js +280 -0
- package/src/mcp/disclosure.js +250 -0
- package/src/mcp/log.js +87 -0
- package/src/mcp/server.js +433 -0
- package/src/mcp/state.js +83 -0
- package/src/mcp/tools/address-to-symbol.js +151 -0
- package/src/mcp/tools/art-loaders.js +740 -0
- package/src/mcp/tools/assets.js +89 -0
- package/src/mcp/tools/audio.js +173 -0
- package/src/mcp/tools/cart-parts.js +649 -0
- package/src/mcp/tools/diff-roms.js +412 -0
- package/src/mcp/tools/disasm.js +980 -0
- package/src/mcp/tools/find-references.js +361 -0
- package/src/mcp/tools/font-map.js +353 -0
- package/src/mcp/tools/frame.js +249 -0
- package/src/mcp/tools/free-space.js +95 -0
- package/src/mcp/tools/index.js +351 -0
- package/src/mcp/tools/input-layout.js +215 -0
- package/src/mcp/tools/input.js +142 -0
- package/src/mcp/tools/lifecycle.js +110 -0
- package/src/mcp/tools/lospec.js +156 -0
- package/src/mcp/tools/memory.js +169 -0
- package/src/mcp/tools/metasprite-tools.js +261 -0
- package/src/mcp/tools/platform-docs.js +102 -0
- package/src/mcp/tools/platform-tools.js +1063 -0
- package/src/mcp/tools/platforms.js +86 -0
- package/src/mcp/tools/playtest.js +280 -0
- package/src/mcp/tools/preview-tile.js +360 -0
- package/src/mcp/tools/project.js +1885 -0
- package/src/mcp/tools/record.js +131 -0
- package/src/mcp/tools/rendering-context.js +700 -0
- package/src/mcp/tools/rom-id.js +256 -0
- package/src/mcp/tools/run-until.js +173 -0
- package/src/mcp/tools/snippets.js +235 -0
- package/src/mcp/tools/splice-chr.js +215 -0
- package/src/mcp/tools/sprite-pipeline.js +614 -0
- package/src/mcp/tools/state.js +99 -0
- package/src/mcp/tools/symbols.js +277 -0
- package/src/mcp/tools/tile-inspect.js +206 -0
- package/src/mcp/tools/toolchain.js +680 -0
- package/src/mcp/tools/watch-memory.js +212 -0
- package/src/mcp/tools/which-tiles.js +193 -0
- package/src/mcp/util.js +85 -0
- package/src/observer/bus.js +127 -0
- package/src/observer/livestream.html +589 -0
- package/src/observer/server.js +66 -0
- package/src/observer/tool-wrap.js +115 -0
- package/src/platforms/atari2600/MENTAL_MODEL.md +185 -0
- package/src/platforms/atari2600/TROUBLESHOOTING.md +155 -0
- package/src/platforms/atari2600/UPSTREAM_SOURCES.md +49 -0
- package/src/platforms/atari2600/lib/README.md +67 -0
- package/src/platforms/atari2600/lib/cc65-src/crt0.s +49 -0
- package/src/platforms/atari2600/lib/cc65-src/ctype.s +5 -0
- package/src/platforms/atari2600/lib/kernel_skeleton.asm +85 -0
- package/src/platforms/atari2600/lib/player_kernel.asm +87 -0
- package/src/platforms/atari2600/lib/playfield_kernel.asm +63 -0
- package/src/platforms/atari2600/lib/read_joystick.asm +76 -0
- package/src/platforms/atari2600/lib/score_kernel.asm +141 -0
- package/src/platforms/atari2600/lib/vcs_constants.h +97 -0
- package/src/platforms/atari2600/lib/vectors.asm +16 -0
- package/src/platforms/atari2600/tia.js +355 -0
- package/src/platforms/atari7800/MENTAL_MODEL.md +306 -0
- package/src/platforms/atari7800/TROUBLESHOOTING.md +195 -0
- package/src/platforms/atari7800/UPSTREAM_SOURCES.md +43 -0
- package/src/platforms/atari7800/lib/README.md +45 -0
- package/src/platforms/atari7800/lib/c/atari7800_music.c +215 -0
- package/src/platforms/atari7800/lib/c/atari7800_music.h +33 -0
- package/src/platforms/atari7800/lib/c/atari7800_sfx.c +74 -0
- package/src/platforms/atari7800/lib/c/atari7800_sfx.h +45 -0
- package/src/platforms/atari7800/lib/cc65-src/clock.s +69 -0
- package/src/platforms/atari7800/lib/cc65-src/clocks_per_sec.s +34 -0
- package/src/platforms/atari7800/lib/cc65-src/clrscr.s +27 -0
- package/src/platforms/atari7800/lib/cc65-src/conio.s +226 -0
- package/src/platforms/atari7800/lib/cc65-src/conio_font.s +278 -0
- package/src/platforms/atari7800/lib/cc65-src/cputc.s +139 -0
- package/src/platforms/atari7800/lib/cc65-src/crt0.s +71 -0
- package/src/platforms/atari7800/lib/cc65-src/ctype.s +5 -0
- package/src/platforms/atari7800/lib/cc65-src/exehdr.s +46 -0
- package/src/platforms/atari7800/lib/cc65-src/extra/mono.s +28 -0
- package/src/platforms/atari7800/lib/cc65-src/extzp.inc +15 -0
- package/src/platforms/atari7800/lib/cc65-src/extzp.s +15 -0
- package/src/platforms/atari7800/lib/cc65-src/get_tv.s +65 -0
- package/src/platforms/atari7800/lib/cc65-src/irq.s +36 -0
- package/src/platforms/atari7800/lib/cc65-src/joy/atari7800-stdjoy.s +197 -0
- package/src/platforms/atari7800/lib/cc65-src/joy_stat_stddrv.s +14 -0
- package/src/platforms/atari7800/lib/cc65-src/libref.s +8 -0
- package/src/platforms/atari7800/lib/cc65-src/mono_clrscr.s +27 -0
- package/src/platforms/atari7800/lib/cc65-src/mono_conio.s +231 -0
- package/src/platforms/atari7800/lib/cc65-src/mono_cputc.s +102 -0
- package/src/platforms/atari7800/lib/cc65-src/mono_font.s +2065 -0
- package/src/platforms/atari7800/lib/cc65-src/mono_setcursor.s +214 -0
- package/src/platforms/atari7800/lib/cc65-src/setcursor.s +214 -0
- package/src/platforms/atari7800/lib/cc65-src/textcolor.s +53 -0
- package/src/platforms/atari7800/lib/cc65-src/wherex.s +19 -0
- package/src/platforms/atari7800/lib/cc65-src/wherey.s +19 -0
- package/src/platforms/atari7800/lib/display_list.asm +53 -0
- package/src/platforms/atari7800/lib/maria_init.asm +48 -0
- package/src/platforms/atari7800/lib/maria_registers.h +61 -0
- package/src/platforms/atari7800/lib/palette_load.asm +53 -0
- package/src/platforms/atari7800/lib/read_pad.asm +57 -0
- package/src/platforms/atari7800/lib/vblank_wait.asm +16 -0
- package/src/platforms/atari7800/maria.js +220 -0
- package/src/platforms/c64/MENTAL_MODEL.md +175 -0
- package/src/platforms/c64/TROUBLESHOOTING.md +130 -0
- package/src/platforms/c64/UPSTREAM_SOURCES.md +35 -0
- package/src/platforms/c64/image-to-tilemap.js +190 -0
- package/src/platforms/c64/lib/README.md +52 -0
- package/src/platforms/c64/lib/basic_stub.s +25 -0
- package/src/platforms/c64/lib/c/c64_music.c +248 -0
- package/src/platforms/c64/lib/c/c64_music.h +36 -0
- package/src/platforms/c64/lib/c/c64_sfx.c +94 -0
- package/src/platforms/c64/lib/c/c64_sfx.h +37 -0
- package/src/platforms/c64/lib/c64_registers.h +108 -0
- package/src/platforms/c64/lib/cc65-src/_scrsize.s +12 -0
- package/src/platforms/c64/lib/cc65-src/acc_c128_speed.s +5 -0
- package/src/platforms/c64/lib/cc65-src/acc_c64dtv_speed.s +64 -0
- package/src/platforms/c64/lib/cc65-src/acc_c65_speed.s +69 -0
- package/src/platforms/c64/lib/cc65-src/acc_chameleon_speed.s +100 -0
- package/src/platforms/c64/lib/cc65-src/acc_detect_c128.s +33 -0
- package/src/platforms/c64/lib/cc65-src/acc_detect_c64dtv.s +44 -0
- package/src/platforms/c64/lib/cc65-src/acc_detect_c65.s +55 -0
- package/src/platforms/c64/lib/cc65-src/acc_detect_chameleon.s +39 -0
- package/src/platforms/c64/lib/cc65-src/acc_detect_scpu.s +34 -0
- package/src/platforms/c64/lib/cc65-src/acc_detect_turbomaster.s +45 -0
- package/src/platforms/c64/lib/cc65-src/acc_scpu_speed.s +59 -0
- package/src/platforms/c64/lib/cc65-src/acc_turbomaster_speed.s +56 -0
- package/src/platforms/c64/lib/cc65-src/bordercolor.s +17 -0
- package/src/platforms/c64/lib/cc65-src/break.s +108 -0
- package/src/platforms/c64/lib/cc65-src/cgetc.s +62 -0
- package/src/platforms/c64/lib/cc65-src/clrscr.s +11 -0
- package/src/platforms/c64/lib/cc65-src/color.s +24 -0
- package/src/platforms/c64/lib/cc65-src/conio.s +10 -0
- package/src/platforms/c64/lib/cc65-src/cputc.s +105 -0
- package/src/platforms/c64/lib/cc65-src/crt0.s +117 -0
- package/src/platforms/c64/lib/cc65-src/devnum.s +7 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-65816.s +377 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-c256k.s +508 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-dqbb.s +447 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-georam.s +355 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-isepic.s +276 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-kerberos.s +281 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-ram.s +270 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-ramcart.s +297 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-reu.s +286 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-rrr.s +363 -0
- package/src/platforms/c64/lib/cc65-src/emd/c64-vdc.s +405 -0
- package/src/platforms/c64/lib/cc65-src/emd/dtv-himem.s +251 -0
- package/src/platforms/c64/lib/cc65-src/extra/soft80.s +71 -0
- package/src/platforms/c64/lib/cc65-src/extra/soft80mono.s +74 -0
- package/src/platforms/c64/lib/cc65-src/extra/tgimousedata.s +21 -0
- package/src/platforms/c64/lib/cc65-src/get_ostype.s +43 -0
- package/src/platforms/c64/lib/cc65-src/get_tv.s +20 -0
- package/src/platforms/c64/lib/cc65-src/gettime.s +83 -0
- package/src/platforms/c64/lib/cc65-src/irq.s +49 -0
- package/src/platforms/c64/lib/cc65-src/joy/c64-hitjoy.s +218 -0
- package/src/platforms/c64/lib/cc65-src/joy/c64-numpad.s +155 -0
- package/src/platforms/c64/lib/cc65-src/joy/c64-ptvjoy.s +146 -0
- package/src/platforms/c64/lib/cc65-src/joy/c64-stdjoy.s +111 -0
- package/src/platforms/c64/lib/cc65-src/joy_stat_stddrv.s +14 -0
- package/src/platforms/c64/lib/cc65-src/joy_stddrv.s +14 -0
- package/src/platforms/c64/lib/cc65-src/kbhit.s +23 -0
- package/src/platforms/c64/lib/cc65-src/kbrepeat.s +14 -0
- package/src/platforms/c64/lib/cc65-src/kernal.s +53 -0
- package/src/platforms/c64/lib/cc65-src/kplot.s +22 -0
- package/src/platforms/c64/lib/cc65-src/libref.s +16 -0
- package/src/platforms/c64/lib/cc65-src/mainargs.s +137 -0
- package/src/platforms/c64/lib/cc65-src/mcbdefault.s +146 -0
- package/src/platforms/c64/lib/cc65-src/mcbspritedata.s +4 -0
- package/src/platforms/c64/lib/cc65-src/mou/c64-1351.s +467 -0
- package/src/platforms/c64/lib/cc65-src/mou/c64-inkwell.s +446 -0
- package/src/platforms/c64/lib/cc65-src/mou/c64-joy.s +451 -0
- package/src/platforms/c64/lib/cc65-src/mou/c64-pot.s +409 -0
- package/src/platforms/c64/lib/cc65-src/mouse_stat_stddrv.s +14 -0
- package/src/platforms/c64/lib/cc65-src/mouse_stddrv.s +14 -0
- package/src/platforms/c64/lib/cc65-src/mouseref.s +23 -0
- package/src/platforms/c64/lib/cc65-src/pencalib.c +94 -0
- package/src/platforms/c64/lib/cc65-src/randomize.s +18 -0
- package/src/platforms/c64/lib/cc65-src/revers.s +27 -0
- package/src/platforms/c64/lib/cc65-src/ser/c64-swlink.s +484 -0
- package/src/platforms/c64/lib/cc65-src/ser_stat_stddrv.s +14 -0
- package/src/platforms/c64/lib/cc65-src/ser_stddrv.s +13 -0
- package/src/platforms/c64/lib/cc65-src/settime.s +84 -0
- package/src/platforms/c64/lib/cc65-src/soft80.inc +46 -0
- package/src/platforms/c64/lib/cc65-src/soft80_cgetc.s +85 -0
- package/src/platforms/c64/lib/cc65-src/soft80_charset.s +182 -0
- package/src/platforms/c64/lib/cc65-src/soft80_color.s +159 -0
- package/src/platforms/c64/lib/cc65-src/soft80_conio.s +157 -0
- package/src/platforms/c64/lib/cc65-src/soft80_cpeekc.s +148 -0
- package/src/platforms/c64/lib/cc65-src/soft80_cpeekcolor.s +19 -0
- package/src/platforms/c64/lib/cc65-src/soft80_cpeekrevers.s +15 -0
- package/src/platforms/c64/lib/cc65-src/soft80_cpeeks.s +71 -0
- package/src/platforms/c64/lib/cc65-src/soft80_cputc.s +521 -0
- package/src/platforms/c64/lib/cc65-src/soft80_kclrscr.s +76 -0
- package/src/platforms/c64/lib/cc65-src/soft80_kplot.s +63 -0
- package/src/platforms/c64/lib/cc65-src/soft80_scrsize.s +14 -0
- package/src/platforms/c64/lib/cc65-src/soft80mono_cgetc.s +67 -0
- package/src/platforms/c64/lib/cc65-src/soft80mono_color.s +65 -0
- package/src/platforms/c64/lib/cc65-src/soft80mono_conio.s +168 -0
- package/src/platforms/c64/lib/cc65-src/soft80mono_cpeekcolor.s +17 -0
- package/src/platforms/c64/lib/cc65-src/soft80mono_cputc.s +204 -0
- package/src/platforms/c64/lib/cc65-src/soft80mono_kclrscr.s +63 -0
- package/src/platforms/c64/lib/cc65-src/soft80mono_kplot.s +52 -0
- package/src/platforms/c64/lib/cc65-src/status.s +15 -0
- package/src/platforms/c64/lib/cc65-src/sysuname.s +37 -0
- package/src/platforms/c64/lib/cc65-src/tgi/c64-hi.s +881 -0
- package/src/platforms/c64/lib/cc65-src/tgi_stat_stddrv.s +14 -0
- package/src/platforms/c64/lib/cc65-src/tgi_stddrv.s +13 -0
- package/src/platforms/c64/lib/cc65-src/tmcommon.s +67 -0
- package/src/platforms/c64/lib/cc65-src/waitvsync.s +18 -0
- package/src/platforms/c64/lib/read_joystick.s +28 -0
- package/src/platforms/c64/lib/sid_play.s +48 -0
- package/src/platforms/c64/lib/sprite_table.s +73 -0
- package/src/platforms/c64/lib/vic_init.s +47 -0
- package/src/platforms/c64/sid.js +128 -0
- package/src/platforms/c64/vic.js +273 -0
- package/src/platforms/common/default-palette.js +139 -0
- package/src/platforms/common/image-to-tiles.js +407 -0
- package/src/platforms/common/intent.js +111 -0
- package/src/platforms/common/metasprite-adapters.js +279 -0
- package/src/platforms/common/metasprite-codegen.js +192 -0
- package/src/platforms/common/metasprite-core.js +201 -0
- package/src/platforms/common/metasprite.js +89 -0
- package/src/platforms/common/platform-palette.js +137 -0
- package/src/platforms/common/registers.js +329 -0
- package/src/platforms/common/render-tiles.js +86 -0
- package/src/platforms/common/screenshot-sprite.js +153 -0
- package/src/platforms/common/tile-decode.js +149 -0
- package/src/platforms/gb/MENTAL_MODEL.md +252 -0
- package/src/platforms/gb/TROUBLESHOOTING.md +221 -0
- package/src/platforms/gb/UPSTREAM_SOURCES.md +43 -0
- package/src/platforms/gb/image-to-tilemap.js +173 -0
- package/src/platforms/gb/lib/README.md +115 -0
- package/src/platforms/gb/lib/c/LICENSE-HUGEDRIVER +25 -0
- package/src/platforms/gb/lib/c/README.md +120 -0
- package/src/platforms/gb/lib/c/SDCC_GOTCHAS.md +189 -0
- package/src/platforms/gb/lib/c/gb_crt0.s +163 -0
- package/src/platforms/gb/lib/c/gb_hardware.h +113 -0
- package/src/platforms/gb/lib/c/gb_runtime.c +284 -0
- package/src/platforms/gb/lib/c/gb_runtime.h +145 -0
- package/src/platforms/gb/lib/c/hUGEDriver.c +191 -0
- package/src/platforms/gb/lib/c/hUGEDriver.h +95 -0
- package/src/platforms/gb/lib/c/hUGEDriver.upstream.asm +1908 -0
- package/src/platforms/gb/lib/c/lcd_init.c +19 -0
- package/src/platforms/gb/lib/c/patch-header.js +154 -0
- package/src/platforms/gb/lib/c/song_data.c +88 -0
- package/src/platforms/gb/lib/c/unroll.h +52 -0
- package/src/platforms/gb/lib/c/wait_vblank.c +14 -0
- package/src/platforms/gb/lib/dma_oam.asm +51 -0
- package/src/platforms/gb/lib/header.asm +56 -0
- package/src/platforms/gb/lib/joypad_read.asm +47 -0
- package/src/platforms/gb/lib/lcd_init.asm +44 -0
- package/src/platforms/gb/lib/load_palette.asm +25 -0
- package/src/platforms/gb/lib/load_tiles.asm +29 -0
- package/src/platforms/gb/lib/vblank_wait.asm +31 -0
- package/src/platforms/gb/ppu.js +574 -0
- package/src/platforms/gba/MENTAL_MODEL.md +203 -0
- package/src/platforms/gba/TROUBLESHOOTING.md +250 -0
- package/src/platforms/gba/UPSTREAM_SOURCES.md +41 -0
- package/src/platforms/gba/lib/arm-archives/libc.a +0 -0
- package/src/platforms/gba/lib/arm-archives/libgcc.a +0 -0
- package/src/platforms/gba/lib/arm-archives/libnosys.a +0 -0
- package/src/platforms/gba/lib/c/gba_sfx.c +81 -0
- package/src/platforms/gba/lib/c/gba_sfx.h +48 -0
- package/src/platforms/gba/lib/libgba/crtbegin.o +0 -0
- package/src/platforms/gba/lib/libgba/crtend.o +0 -0
- package/src/platforms/gba/lib/libgba/crti.o +0 -0
- package/src/platforms/gba/lib/libgba/crtn.o +0 -0
- package/src/platforms/gba/lib/libgba/gba_cart.ld +319 -0
- package/src/platforms/gba/lib/libgba/gba_crt0.s +258 -0
- package/src/platforms/gba/lib/libgba/include/BoyScout.h +128 -0
- package/src/platforms/gba/lib/libgba/include/disc.h +36 -0
- package/src/platforms/gba/lib/libgba/include/disc_io.h +64 -0
- package/src/platforms/gba/lib/libgba/include/dldi.h +112 -0
- package/src/platforms/gba/lib/libgba/include/erapi.h +195 -0
- package/src/platforms/gba/lib/libgba/include/fade.h +76 -0
- package/src/platforms/gba/lib/libgba/include/gba.h +47 -0
- package/src/platforms/gba/lib/libgba/include/gba_affine.h +83 -0
- package/src/platforms/gba/lib/libgba/include/gba_base.h +122 -0
- package/src/platforms/gba/lib/libgba/include/gba_compression.h +66 -0
- package/src/platforms/gba/lib/libgba/include/gba_console.h +55 -0
- package/src/platforms/gba/lib/libgba/include/gba_dma.h +100 -0
- package/src/platforms/gba/lib/libgba/include/gba_input.h +127 -0
- package/src/platforms/gba/lib/libgba/include/gba_interrupt.h +146 -0
- package/src/platforms/gba/lib/libgba/include/gba_multiboot.h +72 -0
- package/src/platforms/gba/lib/libgba/include/gba_sio.h +124 -0
- package/src/platforms/gba/lib/libgba/include/gba_sound.h +356 -0
- package/src/platforms/gba/lib/libgba/include/gba_sprites.h +195 -0
- package/src/platforms/gba/lib/libgba/include/gba_systemcalls.h +194 -0
- package/src/platforms/gba/lib/libgba/include/gba_timers.h +63 -0
- package/src/platforms/gba/lib/libgba/include/gba_types.h +60 -0
- package/src/platforms/gba/lib/libgba/include/gba_video.h +307 -0
- package/src/platforms/gba/lib/libgba/include/mappy.h +72 -0
- package/src/platforms/gba/lib/libgba/include/mbv2.h +90 -0
- package/src/platforms/gba/lib/libgba/include/xcomms.h +93 -0
- package/src/platforms/gba/lib/libgba/include/xcomms_cmd.h +53 -0
- package/src/platforms/gba/lib/libgba/libgba.seed.a +0 -0
- package/src/platforms/gba/lib/libgba/libgba.seed.hash +1 -0
- package/src/platforms/gba/lib/libgba/src/AffineSet.c +42 -0
- package/src/platforms/gba/lib/libgba/src/ArcTan.s +41 -0
- package/src/platforms/gba/lib/libgba/src/BoyScout/BoyScout.c +1242 -0
- package/src/platforms/gba/lib/libgba/src/BoyScout/GBASoundRegs.h +200 -0
- package/src/platforms/gba/lib/libgba/src/Compression.c +84 -0
- package/src/platforms/gba/lib/libgba/src/CpuSet.c +41 -0
- package/src/platforms/gba/lib/libgba/src/Div.s +58 -0
- package/src/platforms/gba/lib/libgba/src/DivArm.s +50 -0
- package/src/platforms/gba/lib/libgba/src/InterruptDispatcher.s +113 -0
- package/src/platforms/gba/lib/libgba/src/IntrWait.c +35 -0
- package/src/platforms/gba/lib/libgba/src/MultiBoot.s +33 -0
- package/src/platforms/gba/lib/libgba/src/Reset.s +49 -0
- package/src/platforms/gba/lib/libgba/src/Sound.s +48 -0
- package/src/platforms/gba/lib/libgba/src/Sqrt.s +34 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/disc.c +58 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/dldi.c +189 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/dldi_stub.s +78 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_cf_common.c +260 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_cf_common.h +72 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_m3_common.c +60 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_m3_common.h +48 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_m3cf.c +83 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_m3cf.h +45 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_m3sd.c +508 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_m3sd.h +45 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_mpcf.c +87 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_mpcf.h +42 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_sc_common.c +47 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_sc_common.h +43 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_sccf.c +83 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_sccf.h +45 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd.c +385 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd.h +48 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_scsd_s.s +139 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_sd_common.c +203 -0
- package/src/platforms/gba/lib/libgba/src/disc_io/io_sd_common.h +108 -0
- package/src/platforms/gba/lib/libgba/src/fade.c +185 -0
- package/src/platforms/gba/lib/libgba/src/input.c +127 -0
- package/src/platforms/gba/lib/libgba/src/interrupt.c +116 -0
- package/src/platforms/gba/lib/libgba/src/mappy_print.c +74 -0
- package/src/platforms/gba/lib/libgba/src/mb2print.c +69 -0
- package/src/platforms/gba/lib/libgba/src/mbv2.c +230 -0
- package/src/platforms/gba/lib/libgba/src/mbv2.txt +119 -0
- package/src/platforms/gba/lib/libgba/src/xcomms.c +203 -0
- package/src/platforms/gba/lib/libgba/src/xcomms_print.c +56 -0
- package/src/platforms/gba/lib/libgba/sysinclude/_ansi.h +82 -0
- package/src/platforms/gba/lib/libgba/sysinclude/_newlib_version.h +11 -0
- package/src/platforms/gba/lib/libgba/sysinclude/_syslist.h +41 -0
- package/src/platforms/gba/lib/libgba/sysinclude/alloca.h +21 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ar.h +65 -0
- package/src/platforms/gba/lib/libgba/sysinclude/argz.h +33 -0
- package/src/platforms/gba/lib/libgba/sysinclude/assert.h +50 -0
- package/src/platforms/gba/lib/libgba/sysinclude/complex.h +150 -0
- package/src/platforms/gba/lib/libgba/sysinclude/cpio.h +30 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ctype.h +183 -0
- package/src/platforms/gba/lib/libgba/sysinclude/devctl.h +78 -0
- package/src/platforms/gba/lib/libgba/sysinclude/dirent.h +85 -0
- package/src/platforms/gba/lib/libgba/sysinclude/elf.h +3147 -0
- package/src/platforms/gba/lib/libgba/sysinclude/envlock.h +15 -0
- package/src/platforms/gba/lib/libgba/sysinclude/envz.h +16 -0
- package/src/platforms/gba/lib/libgba/sysinclude/errno.h +11 -0
- package/src/platforms/gba/lib/libgba/sysinclude/fastmath.h +13 -0
- package/src/platforms/gba/lib/libgba/sysinclude/fcntl.h +1 -0
- package/src/platforms/gba/lib/libgba/sysinclude/fenv.h +42 -0
- package/src/platforms/gba/lib/libgba/sysinclude/float.h +631 -0
- package/src/platforms/gba/lib/libgba/sysinclude/fnmatch.h +55 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ftw.h +66 -0
- package/src/platforms/gba/lib/libgba/sysinclude/getopt.h +185 -0
- package/src/platforms/gba/lib/libgba/sysinclude/glob.h +90 -0
- package/src/platforms/gba/lib/libgba/sysinclude/grp.h +86 -0
- package/src/platforms/gba/lib/libgba/sysinclude/iconv.h +63 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ieeefp.h +295 -0
- package/src/platforms/gba/lib/libgba/sysinclude/inttypes.h +345 -0
- package/src/platforms/gba/lib/libgba/sysinclude/iso646.h +45 -0
- package/src/platforms/gba/lib/libgba/sysinclude/langinfo.h +332 -0
- package/src/platforms/gba/lib/libgba/sysinclude/libgen.h +37 -0
- package/src/platforms/gba/lib/libgba/sysinclude/limits.h +168 -0
- package/src/platforms/gba/lib/libgba/sysinclude/locale.h +96 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/_arc4random.h +1 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/_default_types.h +250 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/_endian.h +39 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/_time.h +3 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/_types.h +8 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/ansi.h +1 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/endian.h +69 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/fastmath.h +98 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/ieee.h +127 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/ieeefp.h +533 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/malloc.h +8 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/param.h +8 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/setjmp-dj.h +43 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/setjmp.h +524 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/stdlib.h +8 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/termios.h +1 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/time.h +15 -0
- package/src/platforms/gba/lib/libgba/sysinclude/machine/types.h +13 -0
- package/src/platforms/gba/lib/libgba/sysinclude/malloc.h +173 -0
- package/src/platforms/gba/lib/libgba/sysinclude/math.h +645 -0
- package/src/platforms/gba/lib/libgba/sysinclude/memory.h +4 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ndbm.h +91 -0
- package/src/platforms/gba/lib/libgba/sysinclude/newlib.h +427 -0
- package/src/platforms/gba/lib/libgba/sysinclude/paths.h +9 -0
- package/src/platforms/gba/lib/libgba/sysinclude/pthread.h +456 -0
- package/src/platforms/gba/lib/libgba/sysinclude/pwd.h +83 -0
- package/src/platforms/gba/lib/libgba/sysinclude/reent.h +190 -0
- package/src/platforms/gba/lib/libgba/sysinclude/regdef.h +7 -0
- package/src/platforms/gba/lib/libgba/sysinclude/regex.h +103 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sched.h +112 -0
- package/src/platforms/gba/lib/libgba/sysinclude/search.h +64 -0
- package/src/platforms/gba/lib/libgba/sysinclude/setjmp.h +25 -0
- package/src/platforms/gba/lib/libgba/sysinclude/signal.h +35 -0
- package/src/platforms/gba/lib/libgba/sysinclude/spawn.h +111 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ssp/ssp.h +76 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ssp/stdio.h +101 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ssp/stdlib.h +30 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ssp/string.h +115 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ssp/strings.h +55 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ssp/unistd.h +93 -0
- package/src/platforms/gba/lib/libgba/sysinclude/ssp/wchar.h +97 -0
- package/src/platforms/gba/lib/libgba/sysinclude/stdarg.h +135 -0
- package/src/platforms/gba/lib/libgba/sysinclude/stdatomic.h +409 -0
- package/src/platforms/gba/lib/libgba/sysinclude/stdbool.h +51 -0
- package/src/platforms/gba/lib/libgba/sysinclude/stddef.h +463 -0
- package/src/platforms/gba/lib/libgba/sysinclude/stdint.h +466 -0
- package/src/platforms/gba/lib/libgba/sysinclude/stdio.h +807 -0
- package/src/platforms/gba/lib/libgba/sysinclude/stdio_ext.h +79 -0
- package/src/platforms/gba/lib/libgba/sysinclude/stdlib.h +345 -0
- package/src/platforms/gba/lib/libgba/sysinclude/string.h +183 -0
- package/src/platforms/gba/lib/libgba/sysinclude/strings.h +80 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_default_fcntl.h +241 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_intsup.h +199 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_locale.h +12 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_pthreadtypes.h +233 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_sigset.h +43 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_stdint.h +90 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_timespec.h +52 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_timeval.h +60 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_types.h +228 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/_tz_structs.h +24 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/cdefs.h +754 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/config.h +314 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/custom_file.h +2 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/dir.h +10 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/dirent.h +13 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/endian.h +207 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/errno.h +198 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/fcntl.h +12 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/features.h +551 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/fenv.h +90 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/file.h +2 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/iconvnls.h +77 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/iosupport.h +143 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/lock.h +75 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/param.h +35 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/queue.h +919 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/reent.h +913 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/resource.h +24 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/sched.h +69 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/select.h +94 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/signal.h +388 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/stat.h +179 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/statvfs.h +41 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/stdio.h +27 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/string.h +2 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/syslimits.h +61 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/time.h +448 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/timeb.h +40 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/times.h +32 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/timespec.h +63 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/tree.h +864 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/types.h +228 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/unistd.h +591 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/utime.h +22 -0
- package/src/platforms/gba/lib/libgba/sysinclude/sys/wait.h +44 -0
- package/src/platforms/gba/lib/libgba/sysinclude/tar.h +43 -0
- package/src/platforms/gba/lib/libgba/sysinclude/termios.h +7 -0
- package/src/platforms/gba/lib/libgba/sysinclude/tgmath.h +127 -0
- package/src/platforms/gba/lib/libgba/sysinclude/threads.h +93 -0
- package/src/platforms/gba/lib/libgba/sysinclude/time.h +313 -0
- package/src/platforms/gba/lib/libgba/sysinclude/unctrl.h +42 -0
- package/src/platforms/gba/lib/libgba/sysinclude/unistd.h +6 -0
- package/src/platforms/gba/lib/libgba/sysinclude/utime.h +12 -0
- package/src/platforms/gba/lib/libgba/sysinclude/utmp.h +8 -0
- package/src/platforms/gba/lib/libgba/sysinclude/varargs.h +7 -0
- package/src/platforms/gba/lib/libgba/sysinclude/wchar.h +339 -0
- package/src/platforms/gba/lib/libgba/sysinclude/wctype.h +74 -0
- package/src/platforms/gba/lib/libgba/sysinclude/wordexp.h +53 -0
- package/src/platforms/gba/lib/libtonc/crtbegin.o +0 -0
- package/src/platforms/gba/lib/libtonc/crtend.o +0 -0
- package/src/platforms/gba/lib/libtonc/crti.o +0 -0
- package/src/platforms/gba/lib/libtonc/crtn.o +0 -0
- package/src/platforms/gba/lib/libtonc/gba_cart.ld +319 -0
- package/src/platforms/gba/lib/libtonc/gba_crt0.s +258 -0
- package/src/platforms/gba/lib/libtonc/include/tonc.h +72 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_asminc.h +132 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_bios.h +555 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_core.h +573 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_input.h +184 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_irq.h +121 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_legacy.h +481 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_libgba.h +537 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_math.h +692 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_memdef.h +962 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_memmap.h +583 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_nocash.h +51 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_oam.h +186 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_surface.h +461 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_text.h +270 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_tte.h +748 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_types.h +376 -0
- package/src/platforms/gba/lib/libtonc/include/tonc_video.h +615 -0
- package/src/platforms/gba/lib/libtonc/libtonc.seed.a +0 -0
- package/src/platforms/gba/lib/libtonc/libtonc.seed.hash +1 -0
- package/src/platforms/gba/lib/libtonc/src/asm/clr_blend_fast.s +72 -0
- package/src/platforms/gba/lib/libtonc/src/asm/clr_fade_fast.s +74 -0
- package/src/platforms/gba/lib/libtonc/src/asm/div_lut.s +54 -0
- package/src/platforms/gba/lib/libtonc/src/asm/sin_lut.s +90 -0
- package/src/platforms/gba/lib/libtonc/src/asm/tonc_bios.s +289 -0
- package/src/platforms/gba/lib/libtonc/src/asm/tonc_bios_ex.s +97 -0
- package/src/platforms/gba/lib/libtonc/src/asm/tonc_isr_master.s +92 -0
- package/src/platforms/gba/lib/libtonc/src/asm/tonc_isr_nest.s +98 -0
- package/src/platforms/gba/lib/libtonc/src/asm/tonc_memcpy.s +126 -0
- package/src/platforms/gba/lib/libtonc/src/asm/tonc_memset.s +123 -0
- package/src/platforms/gba/lib/libtonc/src/asm/tonc_nocash.s +73 -0
- package/src/platforms/gba/lib/libtonc/src/font/sys8.png +0 -0
- package/src/platforms/gba/lib/libtonc/src/font/sys8.s +46 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana10.png +0 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana10.s +293 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana9.png +0 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana9.s +167 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana9_b4.png +0 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana9_b4.s +545 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana9b.png +0 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana9b.s +167 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana9i.png +0 -0
- package/src/platforms/gba/lib/libtonc/src/font/verdana9i.s +167 -0
- package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_bitmap.c +289 -0
- package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text.c +81 -0
- package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_bm.c +244 -0
- package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_map.c +122 -0
- package/src/platforms/gba/lib/libtonc/src/pre1.3/tonc_text_oam.c +113 -0
- package/src/platforms/gba/lib/libtonc/src/pre1.3/toncfont.s +43 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_bg.c +61 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_bg_affine.c +112 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_bmp16.c +240 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_bmp8.c +314 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_color.c +368 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_core.c +237 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_input.c +118 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_irq.c +271 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_math.c +54 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_oam.c +76 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_obj_affine.c +146 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_sbmp16.c +369 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_sbmp8.c +405 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_schr4c.c +588 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_schr4r.c +462 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_surface.c +105 -0
- package/src/platforms/gba/lib/libtonc/src/tonc_video.c +33 -0
- package/src/platforms/gba/lib/libtonc/src/tte/ase_drawg.c +83 -0
- package/src/platforms/gba/lib/libtonc/src/tte/bmp16_drawg.c +72 -0
- package/src/platforms/gba/lib/libtonc/src/tte/bmp16_drawg_b1cs.c +92 -0
- package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg.c +71 -0
- package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg_b1cs.c +104 -0
- package/src/platforms/gba/lib/libtonc/src/tte/bmp8_drawg_b1cts_fast.s +115 -0
- package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b1cts.c +76 -0
- package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b1cts_fast.s +128 -0
- package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b4cts.c +67 -0
- package/src/platforms/gba/lib/libtonc/src/tte/chr4c_drawg_b4cts_fast.s +127 -0
- package/src/platforms/gba/lib/libtonc/src/tte/chr4r_drawg_b1cts.c +80 -0
- package/src/platforms/gba/lib/libtonc/src/tte/chr4r_drawg_b1cts_fast.s +145 -0
- package/src/platforms/gba/lib/libtonc/src/tte/obj_drawg.c +61 -0
- package/src/platforms/gba/lib/libtonc/src/tte/se_drawg.c +110 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_init_ase.c +87 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_init_bmp.c +118 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_init_chr4c.c +86 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_init_chr4r.c +87 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_init_obj.c +84 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_init_se.c +96 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_iohook.c +264 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_main.c +756 -0
- package/src/platforms/gba/lib/libtonc/src/tte/tte_types.s +119 -0
- package/src/platforms/gba/lib/maxmod/LICENSE-MAXMOD +23 -0
- package/src/platforms/gba/lib/maxmod/asm_include/mp_defs.inc +117 -0
- package/src/platforms/gba/lib/maxmod/asm_include/mp_format_mas.inc +108 -0
- package/src/platforms/gba/lib/maxmod/asm_include/mp_macros.inc +195 -0
- package/src/platforms/gba/lib/maxmod/asm_include/mp_mas.inc +40 -0
- package/src/platforms/gba/lib/maxmod/asm_include/mp_mas_structs.inc +189 -0
- package/src/platforms/gba/lib/maxmod/asm_include/mp_mixer_ds.inc +46 -0
- package/src/platforms/gba/lib/maxmod/asm_include/mp_mixer_gba.inc +42 -0
- package/src/platforms/gba/lib/maxmod/asm_include/swi_gba.inc +23 -0
- package/src/platforms/gba/lib/maxmod/include/maxmod.h +412 -0
- package/src/platforms/gba/lib/maxmod/include/mm_types.h +333 -0
- package/src/platforms/gba/lib/maxmod/maxmod.seed.a +0 -0
- package/src/platforms/gba/lib/maxmod/maxmod.seed.hash +1 -0
- package/src/platforms/gba/lib/maxmod/music/chiptune.xm +0 -0
- package/src/platforms/gba/lib/maxmod/music/chiptune_soundbank.bin +0 -0
- package/src/platforms/gba/lib/maxmod/music/chiptune_soundbank.h +4 -0
- package/src/platforms/gba/lib/maxmod/music/make_chiptune_xm.js +203 -0
- package/src/platforms/gba/lib/maxmod/source/mm_effect.s +767 -0
- package/src/platforms/gba/lib/maxmod/source/mm_main.s +115 -0
- package/src/platforms/gba/lib/maxmod/source/mm_mas.s +4990 -0
- package/src/platforms/gba/lib/maxmod/source/mm_mas_arm.s +612 -0
- package/src/platforms/gba/lib/maxmod/source_gba/mm_init_default.s +98 -0
- package/src/platforms/gba/lib/maxmod/source_gba/mm_main_gba.s +292 -0
- package/src/platforms/gba/lib/maxmod/source_gba/mm_mixer_gba.s +1367 -0
- package/src/platforms/gba/lib/sysbase/gba_iosupport.c +138 -0
- package/src/platforms/gbc/MENTAL_MODEL.md +165 -0
- package/src/platforms/gbc/TROUBLESHOOTING.md +142 -0
- package/src/platforms/gbc/UPSTREAM_SOURCES.md +60 -0
- package/src/platforms/gbc/lib/c/LICENSE-HUGEDRIVER +25 -0
- package/src/platforms/gbc/lib/c/README.md +120 -0
- package/src/platforms/gbc/lib/c/SDCC_GOTCHAS.md +189 -0
- package/src/platforms/gbc/lib/c/gb_crt0.s +163 -0
- package/src/platforms/gbc/lib/c/gb_hardware.h +113 -0
- package/src/platforms/gbc/lib/c/gb_runtime.c +284 -0
- package/src/platforms/gbc/lib/c/gb_runtime.h +145 -0
- package/src/platforms/gbc/lib/c/hUGEDriver.c +191 -0
- package/src/platforms/gbc/lib/c/hUGEDriver.h +95 -0
- package/src/platforms/gbc/lib/c/hUGEDriver.upstream.asm +1908 -0
- package/src/platforms/gbc/lib/c/lcd_init.c +19 -0
- package/src/platforms/gbc/lib/c/patch-header.js +154 -0
- package/src/platforms/gbc/lib/c/song_data.c +88 -0
- package/src/platforms/gbc/lib/c/unroll.h +52 -0
- package/src/platforms/gbc/lib/c/wait_vblank.c +14 -0
- package/src/platforms/genesis/MENTAL_MODEL.md +223 -0
- package/src/platforms/genesis/TROUBLESHOOTING.md +193 -0
- package/src/platforms/genesis/UPSTREAM_SOURCES.md +52 -0
- package/src/platforms/genesis/image-to-tilemap.js +333 -0
- package/src/platforms/genesis/lib/README.md +157 -0
- package/src/platforms/genesis/lib/c/crtbegin.o +0 -0
- package/src/platforms/genesis/lib/c/crtend.o +0 -0
- package/src/platforms/genesis/lib/c/genesis.ld +44 -0
- package/src/platforms/genesis/lib/c/genesis_sfx.c +51 -0
- package/src/platforms/genesis/lib/c/genesis_sfx.h +49 -0
- package/src/platforms/genesis/lib/c/libc.a +0 -0
- package/src/platforms/genesis/lib/c/libgcc.a +0 -0
- package/src/platforms/genesis/lib/c/libm.a +0 -0
- package/src/platforms/genesis/lib/c/sega.s +71 -0
- package/src/platforms/genesis/lib/header.s +96 -0
- package/src/platforms/genesis/lib/nmi_safe.s +79 -0
- package/src/platforms/genesis/lib/pad_read.s +104 -0
- package/src/platforms/genesis/lib/sgdk/COPYING.RUNTIME +73 -0
- package/src/platforms/genesis/lib/sgdk/LICENSE +12 -0
- package/src/platforms/genesis/lib/sgdk/include/asm.h +52 -0
- package/src/platforms/genesis/lib/sgdk/include/asm_mac.i +9 -0
- package/src/platforms/genesis/lib/sgdk/include/bmp.h +690 -0
- package/src/platforms/genesis/lib/sgdk/include/config.h +208 -0
- package/src/platforms/genesis/lib/sgdk/include/dma.h +542 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/console.h +387 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/everdrive.h +116 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/fat16.h +84 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/flash-save/flash.h +164 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/flash-save/saveman.h +177 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/link_cable.h +316 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/minimusic/minimus.h +29 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/16c550.h +221 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/comm.h +93 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/gamejolt.h +541 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/jsmn.h +471 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/json.h +122 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/lsd.h +172 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/megawifi.h +984 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/mw-msg.h +392 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/ssf_ed_pro.h +38 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/mw/ssf_ed_x7.h +73 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/serial/buffer.h +8 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/serial/serial.h +133 -0
- package/src/platforms/genesis/lib/sgdk/include/ext/stb/stb_sprintf.h +1864 -0
- package/src/platforms/genesis/lib/sgdk/include/genesis.h +92 -0
- package/src/platforms/genesis/lib/sgdk/include/joy.h +482 -0
- package/src/platforms/genesis/lib/sgdk/include/kdebug.h +21 -0
- package/src/platforms/genesis/lib/sgdk/include/map.h +409 -0
- package/src/platforms/genesis/lib/sgdk/include/mapper.h +186 -0
- package/src/platforms/genesis/lib/sgdk/include/maths.h +1071 -0
- package/src/platforms/genesis/lib/sgdk/include/maths3D.h +480 -0
- package/src/platforms/genesis/lib/sgdk/include/memory.h +346 -0
- package/src/platforms/genesis/lib/sgdk/include/memory_base.h +37 -0
- package/src/platforms/genesis/lib/sgdk/include/object.h +171 -0
- package/src/platforms/genesis/lib/sgdk/include/pal.h +500 -0
- package/src/platforms/genesis/lib/sgdk/include/pool.h +171 -0
- package/src/platforms/genesis/lib/sgdk/include/psg.h +153 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_dpcm2.h +79 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_pcm.h +98 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/pcm/snd_pcm4.h +125 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/pcm/tab_vol.h +6 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/smp_null.h +6 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/smp_null_dpcm.h +6 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/sound.h +70 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/xgm.h +399 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/xgm2.h +389 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/z80_def.i80 +41 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/z80_fct.i80 +83 -0
- package/src/platforms/genesis/lib/sgdk/include/snd/z80_mac.i80 +1476 -0
- package/src/platforms/genesis/lib/sgdk/include/sprite_eng.h +1095 -0
- package/src/platforms/genesis/lib/sgdk/include/sprite_eng_legacy.h +1030 -0
- package/src/platforms/genesis/lib/sgdk/include/sram.h +110 -0
- package/src/platforms/genesis/lib/sgdk/include/string.h +349 -0
- package/src/platforms/genesis/lib/sgdk/include/sys.h +511 -0
- package/src/platforms/genesis/lib/sgdk/include/tab_cnv.h +19 -0
- package/src/platforms/genesis/lib/sgdk/include/task.h +77 -0
- package/src/platforms/genesis/lib/sgdk/include/task_cst.h +33 -0
- package/src/platforms/genesis/lib/sgdk/include/timer.h +132 -0
- package/src/platforms/genesis/lib/sgdk/include/tools.h +450 -0
- package/src/platforms/genesis/lib/sgdk/include/types.h +320 -0
- package/src/platforms/genesis/lib/sgdk/include/vdp.h +1150 -0
- package/src/platforms/genesis/lib/sgdk/include/vdp_bg.h +723 -0
- package/src/platforms/genesis/lib/sgdk/include/vdp_pal.h +101 -0
- package/src/platforms/genesis/lib/sgdk/include/vdp_spr.h +448 -0
- package/src/platforms/genesis/lib/sgdk/include/vdp_tile.h +1136 -0
- package/src/platforms/genesis/lib/sgdk/include/vram.h +270 -0
- package/src/platforms/genesis/lib/sgdk/include/ym2612.h +87 -0
- package/src/platforms/genesis/lib/sgdk/include/z80_ctrl.h +420 -0
- package/src/platforms/genesis/lib/sgdk/libmd.seed.a +0 -0
- package/src/platforms/genesis/lib/sgdk/libmd.seed.hash +1 -0
- package/src/platforms/genesis/lib/sgdk/md.ld +120 -0
- package/src/platforms/genesis/lib/sgdk/music/demo.vgm +0 -0
- package/src/platforms/genesis/lib/sgdk/music/demo.xgc +0 -0
- package/src/platforms/genesis/lib/sgdk/music/demo.xgm +0 -0
- package/src/platforms/genesis/lib/sgdk/res/image/font_default.png +0 -0
- package/src/platforms/genesis/lib/sgdk/res/image/sgdk_logo.png +0 -0
- package/src/platforms/genesis/lib/sgdk/res/libres.h +10 -0
- package/src/platforms/genesis/lib/sgdk/res/libres.res +5 -0
- package/src/platforms/genesis/lib/sgdk/res/libres.s +166 -0
- package/src/platforms/genesis/lib/sgdk/res/sound/stop_xgm.bin +0 -0
- package/src/platforms/genesis/lib/sgdk/rom_header.c +33 -0
- package/src/platforms/genesis/lib/sgdk/sega.preprocessed.s +364 -0
- package/src/platforms/genesis/lib/sgdk/sega.s +365 -0
- package/src/platforms/genesis/lib/sgdk/src/bmp.c +1539 -0
- package/src/platforms/genesis/lib/sgdk/src/bmp_a.s +3477 -0
- package/src/platforms/genesis/lib/sgdk/src/boot/rom_header.c +33 -0
- package/src/platforms/genesis/lib/sgdk/src/boot/sega.s +365 -0
- package/src/platforms/genesis/lib/sgdk/src/dma.c +782 -0
- package/src/platforms/genesis/lib/sgdk/src/dma_a.s +23 -0
- package/src/platforms/genesis/lib/sgdk/src/error_a.s +376 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/console.c +490 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/everdrive.c +285 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/fat16.c +610 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/README.md +112 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/flash.c +300 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/flash-save/saveman.c +641 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/link_cable.c +1758 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/CHANGELOG.md +31 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/LICENSE.txt +17 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/README.md +18 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/data.z80 +148 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/define.z80 +173 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/api-c.md +80 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/format.md +132 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/doc/teradrive.md +33 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/fm.z80 +363 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/main.z80 +433 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/minimus.c +129 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/minimus_drv.s80 +17 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/psg.z80 +231 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/track.z80 +398 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/minimusic/util.z80 +98 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/16c550.c +84 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/README.md +849 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/comm.c +141 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/gamejolt.c +758 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/json.c +153 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/lsd.c +364 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/megawifi.c +1501 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/ssf_ed_pro.c +98 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/mw/ssf_ed_x7.c +67 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/serial/buffer.c +69 -0
- package/src/platforms/genesis/lib/sgdk/src/ext/serial/serial.c +158 -0
- package/src/platforms/genesis/lib/sgdk/src/joy.c +1361 -0
- package/src/platforms/genesis/lib/sgdk/src/kdebug.s +109 -0
- package/src/platforms/genesis/lib/sgdk/src/map.c +1915 -0
- package/src/platforms/genesis/lib/sgdk/src/mapper.c +280 -0
- package/src/platforms/genesis/lib/sgdk/src/maths.c +878 -0
- package/src/platforms/genesis/lib/sgdk/src/maths3D.c +480 -0
- package/src/platforms/genesis/lib/sgdk/src/maths3D_a.s +205 -0
- package/src/platforms/genesis/lib/sgdk/src/memory.c +760 -0
- package/src/platforms/genesis/lib/sgdk/src/memory_a.s +306 -0
- package/src/platforms/genesis/lib/sgdk/src/object.c +111 -0
- package/src/platforms/genesis/lib/sgdk/src/pal.c +484 -0
- package/src/platforms/genesis/lib/sgdk/src/pool.c +234 -0
- package/src/platforms/genesis/lib/sgdk/src/psg.c +82 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/drv_null.s80 +27 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/drv_xgm.s80 +3037 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_dpcm2.s80 +984 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_pcm.s80 +592 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/pcm/drv_pcm4.s80 +699 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_dpcm2.c +172 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_pcm.c +152 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/pcm/snd_pcm4.c +213 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/pcm/tab_vol.c +277 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/smp_null.s +22 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/smp_null_dpcm.s +15 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/sound.c +33 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm.c +683 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2.s80 +993 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_fct.i80 +611 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_mac.i80 +133 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_pcm_fct.i80 +114 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_pcm_mac.i80 +1444 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_psg_fct.i80 +491 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_psg_mac.i80 +43 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_ym_fct.i80 +1664 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2/drv_xgm2_ym_mac.i80 +295 -0
- package/src/platforms/genesis/lib/sgdk/src/snd/xgm2.c +1083 -0
- package/src/platforms/genesis/lib/sgdk/src/sprite_eng.c +2256 -0
- package/src/platforms/genesis/lib/sgdk/src/sprite_eng_legacy.c +2309 -0
- package/src/platforms/genesis/lib/sgdk/src/sram.c +30 -0
- package/src/platforms/genesis/lib/sgdk/src/sram_a.s +41 -0
- package/src/platforms/genesis/lib/sgdk/src/string.c +720 -0
- package/src/platforms/genesis/lib/sgdk/src/sys.c +1053 -0
- package/src/platforms/genesis/lib/sgdk/src/sys_a.s +74 -0
- package/src/platforms/genesis/lib/sgdk/src/tab_cnv.c +129 -0
- package/src/platforms/genesis/lib/sgdk/src/tab_log10.c +8201 -0
- package/src/platforms/genesis/lib/sgdk/src/tab_log2.c +8201 -0
- package/src/platforms/genesis/lib/sgdk/src/tab_sin.c +2058 -0
- package/src/platforms/genesis/lib/sgdk/src/tab_sqrt.c +8201 -0
- package/src/platforms/genesis/lib/sgdk/src/task.s +148 -0
- package/src/platforms/genesis/lib/sgdk/src/timer.c +201 -0
- package/src/platforms/genesis/lib/sgdk/src/tools.c +1299 -0
- package/src/platforms/genesis/lib/sgdk/src/tools_a.s +979 -0
- package/src/platforms/genesis/lib/sgdk/src/types.c +18 -0
- package/src/platforms/genesis/lib/sgdk/src/vdp.c +1060 -0
- package/src/platforms/genesis/lib/sgdk/src/vdp_bg.c +511 -0
- package/src/platforms/genesis/lib/sgdk/src/vdp_spr.c +322 -0
- package/src/platforms/genesis/lib/sgdk/src/vdp_tile.c +1011 -0
- package/src/platforms/genesis/lib/sgdk/src/vdp_tile_a.s +68 -0
- package/src/platforms/genesis/lib/sgdk/src/vram.c +273 -0
- package/src/platforms/genesis/lib/sgdk/src/ym2612.c +175 -0
- package/src/platforms/genesis/lib/sgdk/src/z80_ctrl.c +334 -0
- package/src/platforms/genesis/lib/sprite_table.s +129 -0
- package/src/platforms/genesis/lib/vblank_wait.s +73 -0
- package/src/platforms/genesis/lib/vdp_init.s +85 -0
- package/src/platforms/genesis/lib/wram.s +88 -0
- package/src/platforms/genesis/lib/z80_bootstrap.s +102 -0
- package/src/platforms/genesis/vdp.js +495 -0
- package/src/platforms/gg/MENTAL_MODEL.md +155 -0
- package/src/platforms/gg/TROUBLESHOOTING.md +91 -0
- package/src/platforms/gg/UPSTREAM_SOURCES.md +36 -0
- package/src/platforms/gg/lib/c/gg_crt0.s +112 -0
- package/src/platforms/gg/lib/c/gg_hw.h +62 -0
- package/src/platforms/gg/lib/c/gg_music.c +155 -0
- package/src/platforms/gg/lib/c/gg_music.h +89 -0
- package/src/platforms/gg/lib/c/gg_sfx.c +82 -0
- package/src/platforms/gg/lib/c/gg_sfx.h +40 -0
- package/src/platforms/gg/lib/c/joypad_read.c +22 -0
- package/src/platforms/gg/lib/c/load_palette.c +20 -0
- package/src/platforms/gg/lib/c/load_tiles.c +32 -0
- package/src/platforms/gg/lib/c/sprite_table.c +60 -0
- package/src/platforms/gg/lib/c/vblank_wait.c +10 -0
- package/src/platforms/gg/lib/c/vdp_init.c +58 -0
- package/src/platforms/index.js +7 -0
- package/src/platforms/lynx/MENTAL_MODEL.md +231 -0
- package/src/platforms/lynx/TROUBLESHOOTING.md +105 -0
- package/src/platforms/lynx/UPSTREAM_SOURCES.md +66 -0
- package/src/platforms/lynx/lib/c/lynx_music.c +63 -0
- package/src/platforms/lynx/lib/c/lynx_music.h +16 -0
- package/src/platforms/lynx/lib/c/lynx_sfx.c +147 -0
- package/src/platforms/lynx/lib/c/lynx_sfx.h +59 -0
- package/src/platforms/lynx/lib/cc65-src/bllhdr.s +18 -0
- package/src/platforms/lynx/lib/cc65-src/bootldr.s +195 -0
- package/src/platforms/lynx/lib/cc65-src/cgetc.s +69 -0
- package/src/platforms/lynx/lib/cc65-src/clock.s +87 -0
- package/src/platforms/lynx/lib/cc65-src/crt0.s +135 -0
- package/src/platforms/lynx/lib/cc65-src/defdir.s +29 -0
- package/src/platforms/lynx/lib/cc65-src/eeprom.s +255 -0
- package/src/platforms/lynx/lib/cc65-src/eeprom46.s +204 -0
- package/src/platforms/lynx/lib/cc65-src/eeprom66.s +227 -0
- package/src/platforms/lynx/lib/cc65-src/eeprom86.s +236 -0
- package/src/platforms/lynx/lib/cc65-src/exec.s +34 -0
- package/src/platforms/lynx/lib/cc65-src/exehdr.s +27 -0
- package/src/platforms/lynx/lib/cc65-src/extzp.inc +23 -0
- package/src/platforms/lynx/lib/cc65-src/extzp.s +30 -0
- package/src/platforms/lynx/lib/cc65-src/irq.s +45 -0
- package/src/platforms/lynx/lib/cc65-src/joy/lynx-stdjoy.s +93 -0
- package/src/platforms/lynx/lib/cc65-src/joy_stat_stddrv.s +14 -0
- package/src/platforms/lynx/lib/cc65-src/kbhit.s +56 -0
- package/src/platforms/lynx/lib/cc65-src/libref.s +9 -0
- package/src/platforms/lynx/lib/cc65-src/load.s +41 -0
- package/src/platforms/lynx/lib/cc65-src/lseek.s +58 -0
- package/src/platforms/lynx/lib/cc65-src/lynx-cart.s +98 -0
- package/src/platforms/lynx/lib/cc65-src/lynx-snd.s +1270 -0
- package/src/platforms/lynx/lib/cc65-src/mainargs.s +24 -0
- package/src/platforms/lynx/lib/cc65-src/open.s +136 -0
- package/src/platforms/lynx/lib/cc65-src/oserror.s +14 -0
- package/src/platforms/lynx/lib/cc65-src/read.s +44 -0
- package/src/platforms/lynx/lib/cc65-src/ser/lynx-comlynx.s +404 -0
- package/src/platforms/lynx/lib/cc65-src/ser_stat_stddrv.s +14 -0
- package/src/platforms/lynx/lib/cc65-src/sysuname.s +39 -0
- package/src/platforms/lynx/lib/cc65-src/tgi/lynx-160-102-16.s +1075 -0
- package/src/platforms/lynx/lib/cc65-src/tgi_colors.s +9 -0
- package/src/platforms/lynx/lib/cc65-src/tgi_irq.s +11 -0
- package/src/platforms/lynx/lib/cc65-src/tgi_stat_stddrv.s +14 -0
- package/src/platforms/lynx/lib/cc65-src/tgi_stddrv.s +13 -0
- package/src/platforms/lynx/lib/cc65-src/uploader.s +81 -0
- package/src/platforms/nes/MENTAL_MODEL.md +301 -0
- package/src/platforms/nes/TROUBLESHOOTING.md +321 -0
- package/src/platforms/nes/UPSTREAM_SOURCES.md +31 -0
- package/src/platforms/nes/image-to-chr.js +195 -0
- package/src/platforms/nes/image-to-tilemap.js +415 -0
- package/src/platforms/nes/lib/README.md +40 -0
- package/src/platforms/nes/lib/asm/LICENSE-FAMITONE +40 -0
- package/src/platforms/nes/lib/asm/chr_ram_header.s +32 -0
- package/src/platforms/nes/lib/asm/famitone2.s +1258 -0
- package/src/platforms/nes/lib/asm/famitone_bridge.s +50 -0
- package/src/platforms/nes/lib/asm/music_data.s +238 -0
- package/src/platforms/nes/lib/c/chr_ram_runtime_hello_sprite.c +81 -0
- package/src/platforms/nes/lib/c/chr_ram_runtime_hud_row.c +101 -0
- package/src/platforms/nes/lib/c/nes_runtime.c +347 -0
- package/src/platforms/nes/lib/c/nes_runtime.h +153 -0
- package/src/platforms/nes/lib/c/nmi_handler.c +51 -0
- package/src/platforms/nes/lib/c/nmi_trampoline.s +25 -0
- package/src/platforms/nes/lib/cc65-src/Makefile.inc +9 -0
- package/src/platforms/nes/lib/cc65-src/_scrsize.s +24 -0
- package/src/platforms/nes/lib/cc65-src/cclear.s +29 -0
- package/src/platforms/nes/lib/cc65-src/chline.s +31 -0
- package/src/platforms/nes/lib/cc65-src/clock.s +31 -0
- package/src/platforms/nes/lib/cc65-src/clrscr.s +72 -0
- package/src/platforms/nes/lib/cc65-src/color.s +68 -0
- package/src/platforms/nes/lib/cc65-src/cpeekc.s +37 -0
- package/src/platforms/nes/lib/cc65-src/cpeekcolor.s +8 -0
- package/src/platforms/nes/lib/cc65-src/cpeekrevers.s +37 -0
- package/src/platforms/nes/lib/cc65-src/cputc.s +95 -0
- package/src/platforms/nes/lib/cc65-src/crt0.s +180 -0
- package/src/platforms/nes/lib/cc65-src/cvline.s +31 -0
- package/src/platforms/nes/lib/cc65-src/get_tv.s +37 -0
- package/src/platforms/nes/lib/cc65-src/gotox.s +21 -0
- package/src/platforms/nes/lib/cc65-src/gotoxy.s +22 -0
- package/src/platforms/nes/lib/cc65-src/gotoy.s +22 -0
- package/src/platforms/nes/lib/cc65-src/irq.s +19 -0
- package/src/platforms/nes/lib/cc65-src/joy/nes-stdjoy.s +102 -0
- package/src/platforms/nes/lib/cc65-src/joy_stat_stddrv.s +14 -0
- package/src/platforms/nes/lib/cc65-src/libref.s +9 -0
- package/src/platforms/nes/lib/cc65-src/mainargs.s +24 -0
- package/src/platforms/nes/lib/cc65-src/neschar.s +4616 -0
- package/src/platforms/nes/lib/cc65-src/ppu.s +158 -0
- package/src/platforms/nes/lib/cc65-src/ppubuf.s +117 -0
- package/src/platforms/nes/lib/cc65-src/randomize.s +18 -0
- package/src/platforms/nes/lib/cc65-src/revers.s +27 -0
- package/src/platforms/nes/lib/cc65-src/setcursor.s +37 -0
- package/src/platforms/nes/lib/cc65-src/sysuname.s +39 -0
- package/src/platforms/nes/lib/cc65-src/tgi/nes-64-56-2.s +480 -0
- package/src/platforms/nes/lib/cc65-src/tgi_stat_stddrv.s +14 -0
- package/src/platforms/nes/lib/cc65-src/tgi_stddrv.s +13 -0
- package/src/platforms/nes/lib/cc65-src/waitvsync.s +18 -0
- package/src/platforms/nes/lib/cc65-src/wherex.s +19 -0
- package/src/platforms/nes/lib/cc65-src/wherey.s +19 -0
- package/src/platforms/nes/lib/clear_nametable.s +38 -0
- package/src/platforms/nes/lib/clear_oam.s +18 -0
- package/src/platforms/nes/lib/load_palette.s +31 -0
- package/src/platforms/nes/lib/nmi_safe.s +65 -0
- package/src/platforms/nes/lib/oam_dma.s +16 -0
- package/src/platforms/nes/lib/read_pad.s +46 -0
- package/src/platforms/nes/lib/reset.s +46 -0
- package/src/platforms/nes/lib/sprite_table_populate.s +75 -0
- package/src/platforms/nes/lib/wait_vblank.s +12 -0
- package/src/platforms/nes/palette.js +39 -0
- package/src/platforms/nes/ppu.js +372 -0
- package/src/platforms/sms/MENTAL_MODEL.md +267 -0
- package/src/platforms/sms/TROUBLESHOOTING.md +124 -0
- package/src/platforms/sms/UPSTREAM_SOURCES.md +29 -0
- package/src/platforms/sms/image-to-tilemap.js +260 -0
- package/src/platforms/sms/lib/README.md +117 -0
- package/src/platforms/sms/lib/c/joypad_read.c +33 -0
- package/src/platforms/sms/lib/c/load_palette.c +24 -0
- package/src/platforms/sms/lib/c/load_tiles.c +32 -0
- package/src/platforms/sms/lib/c/sms_crt0.s +101 -0
- package/src/platforms/sms/lib/c/sms_hw.h +53 -0
- package/src/platforms/sms/lib/c/sms_music.c +178 -0
- package/src/platforms/sms/lib/c/sms_music.h +50 -0
- package/src/platforms/sms/lib/c/sms_sfx.c +82 -0
- package/src/platforms/sms/lib/c/sms_sfx.h +40 -0
- package/src/platforms/sms/lib/c/sprite_table.c +60 -0
- package/src/platforms/sms/lib/c/vblank_wait.c +10 -0
- package/src/platforms/sms/lib/c/vdp_init.c +58 -0
- package/src/platforms/sms/lib/header.s +33 -0
- package/src/platforms/sms/lib/joypad_read.s +40 -0
- package/src/platforms/sms/lib/load_palette.s +30 -0
- package/src/platforms/sms/lib/load_tiles.s +50 -0
- package/src/platforms/sms/lib/sprite_table.s +44 -0
- package/src/platforms/sms/lib/vblank_wait.s +36 -0
- package/src/platforms/sms/lib/vdp_init.s +47 -0
- package/src/platforms/sms/vdp.js +530 -0
- package/src/platforms/snes/MENTAL_MODEL.md +275 -0
- package/src/platforms/snes/TROUBLESHOOTING.md +208 -0
- package/src/platforms/snes/UPSTREAM_SOURCES.md +50 -0
- package/src/platforms/snes/brr.js +208 -0
- package/src/platforms/snes/image-to-tilemap.js +227 -0
- package/src/platforms/snes/lib/audio/apu_blob.asm +228 -0
- package/src/platforms/snes/lib/audio/apu_blob.bin +0 -0
- package/src/platforms/snes/lib/audio/explosion.brr +0 -0
- package/src/platforms/snes/lib/audio/sample_bank.bin +0 -0
- package/src/platforms/snes/lib/audio/shoot.brr +0 -0
- package/src/platforms/snes/lib/audio/spc_driver.asm +241 -0
- package/src/platforms/snes/lib/audio_pipeline.asm +62 -0
- package/src/platforms/snes/lib/c/crt0.asm +125 -0
- package/src/platforms/snes/lib/c/hdr.asm +50 -0
- package/src/platforms/snes/lib/c/snes_sfx.c +116 -0
- package/src/platforms/snes/lib/c/snes_sfx.h +96 -0
- package/src/platforms/snes/lib/c/snes_sfx_data.asm +25 -0
- package/src/platforms/snes/lib/cgram_upload.asm +43 -0
- package/src/platforms/snes/lib/lorom_header.asm +47 -0
- package/src/platforms/snes/lib/lorom_multibank.asm +66 -0
- package/src/platforms/snes/lib/nmi_safe.asm +77 -0
- package/src/platforms/snes/lib/oam_upload.asm +45 -0
- package/src/platforms/snes/lib/pad_read.asm +64 -0
- package/src/platforms/snes/lib/pvsneslib/LICENSE +21 -0
- package/src/platforms/snes/lib/pvsneslib/include/ctype.h +6 -0
- package/src/platforms/snes/lib/pvsneslib/include/float.h +4 -0
- package/src/platforms/snes/lib/pvsneslib/include/hdr.asm +47 -0
- package/src/platforms/snes/lib/pvsneslib/include/limits.h +13 -0
- package/src/platforms/snes/lib/pvsneslib/include/math.h +10 -0
- package/src/platforms/snes/lib/pvsneslib/include/setjmp.h +4 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/background.h +396 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/console.h +188 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/dma.h +381 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/input.h +289 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/interrupt.h +264 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/libversion.h +10 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/lzss.h +43 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/map.h +113 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/object.h +234 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/pixel.h +53 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/scores.h +66 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/snestypes.h +65 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/sound.h +245 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/sprite.h +456 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes/video.h +465 -0
- package/src/platforms/snes/lib/pvsneslib/include/snes.h +190 -0
- package/src/platforms/snes/lib/pvsneslib/include/stdarg.h +28 -0
- package/src/platforms/snes/lib/pvsneslib/include/stdbool.h +53 -0
- package/src/platforms/snes/lib/pvsneslib/include/stddef.h +27 -0
- package/src/platforms/snes/lib/pvsneslib/include/stdint.h +7 -0
- package/src/platforms/snes/lib/pvsneslib/include/stdio.h +9 -0
- package/src/platforms/snes/lib/pvsneslib/include/stdlib.h +13 -0
- package/src/platforms/snes/lib/pvsneslib/include/string.h +19 -0
- package/src/platforms/snes/lib/pvsneslib/include/strings.h +5 -0
- package/src/platforms/snes/lib/pvsneslib/source/Makefile +87 -0
- package/src/platforms/snes/lib/pvsneslib/source/backgrounds.asm +834 -0
- package/src/platforms/snes/lib/pvsneslib/source/consoles.asm +1028 -0
- package/src/platforms/snes/lib/pvsneslib/source/crt0_snes.asm +329 -0
- package/src/platforms/snes/lib/pvsneslib/source/dmas.asm +1275 -0
- package/src/platforms/snes/lib/pvsneslib/source/hdr.asm +56 -0
- package/src/platforms/snes/lib/pvsneslib/source/input.asm +445 -0
- package/src/platforms/snes/lib/pvsneslib/source/libc.asm +485 -0
- package/src/platforms/snes/lib/pvsneslib/source/libc_c.c +1214 -0
- package/src/platforms/snes/lib/pvsneslib/source/libm.asm +510 -0
- package/src/platforms/snes/lib/pvsneslib/source/libtcc.asm +374 -0
- package/src/platforms/snes/lib/pvsneslib/source/lzsss.asm +256 -0
- package/src/platforms/snes/lib/pvsneslib/source/maps.asm +1078 -0
- package/src/platforms/snes/lib/pvsneslib/source/objects.asm +2881 -0
- package/src/platforms/snes/lib/pvsneslib/source/scores.asm +226 -0
- package/src/platforms/snes/lib/pvsneslib/source/sm_spc.asm +187 -0
- package/src/platforms/snes/lib/pvsneslib/source/snesmodwla.asm +1186 -0
- package/src/platforms/snes/lib/pvsneslib/source/sounds.asm +273 -0
- package/src/platforms/snes/lib/pvsneslib/source/sprites.asm +3946 -0
- package/src/platforms/snes/lib/pvsneslib/source/vblank.asm +917 -0
- package/src/platforms/snes/lib/pvsneslib/source/videos.asm +1137 -0
- package/src/platforms/snes/lib/reset_init.asm +31 -0
- package/src/platforms/snes/lib/sprite_table_populate.asm +122 -0
- package/src/platforms/snes/lib/vram_dma_upload.asm +42 -0
- package/src/platforms/snes/ppu.js +606 -0
- package/src/playtest/playtest.js +612 -0
- package/src/rom-id/identifier.js +421 -0
- package/src/rom-id/patch.js +217 -0
- package/src/toolchains/_worker/pool.js +253 -0
- package/src/toolchains/_worker/run.js +78 -0
- package/src/toolchains/_worker/wasm-worker.js +233 -0
- package/src/toolchains/arm-none-eabi-gcc/gcc.js +208 -0
- package/src/toolchains/asar/asar.js +542 -0
- package/src/toolchains/assemble-snippet.js +256 -0
- package/src/toolchains/cc65/cc65.js +395 -0
- package/src/toolchains/cc65/da65.js +119 -0
- package/src/toolchains/cc65/dbgparse.js +274 -0
- package/src/toolchains/cc65/preset-resolver.js +59 -0
- package/src/toolchains/cc65/presets/nes/chr-ram-runtime.cfg +79 -0
- package/src/toolchains/cc65/presets/nes/chr-ram-runtime.crt0.s +178 -0
- package/src/toolchains/cc65/presets/nes/chr-ram.cfg +76 -0
- package/src/toolchains/cc65/presets/nes/chr-ram.crt0.s +106 -0
- package/src/toolchains/common/ar.js +121 -0
- package/src/toolchains/common/sdk-cache.js +116 -0
- package/src/toolchains/common/symbols.js +139 -0
- package/src/toolchains/dasm/dasm.js +96 -0
- package/src/toolchains/gba-c/gba-c.js +832 -0
- package/src/toolchains/genesis-c/README.md +61 -0
- package/src/toolchains/genesis-c/genesis-c.js +598 -0
- package/src/toolchains/index.js +727 -0
- package/src/toolchains/m68k-elf-gcc/gcc.js +220 -0
- package/src/toolchains/m68kdasm.js +438 -0
- package/src/toolchains/parse-errors.js +258 -0
- package/src/toolchains/registry.js +67 -0
- package/src/toolchains/rgbds/rgbds.js +144 -0
- package/src/toolchains/sdcc/preflight-lint.js +295 -0
- package/src/toolchains/sdcc/sdcc.js +519 -0
- package/src/toolchains/sjasm/sjasm.js +85 -0
- package/src/toolchains/sm83dasm.js +194 -0
- package/src/toolchains/snes-c/snes-c.js +409 -0
- package/src/toolchains/tcc816/tcc816.js +79 -0
- package/src/toolchains/vasm68k/vasm68k.js +138 -0
- package/src/toolchains/wladx/wladx.js +120 -0
- package/src/toolchains/z80dasm.js +303 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2012-2017
|
|
4
|
+
Alekmaul
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
This software is provided 'as-is', without any express or implied
|
|
8
|
+
warranty. In no event will the authors be held liable for any
|
|
9
|
+
damages arising from the use of this software.
|
|
10
|
+
|
|
11
|
+
Permission is granted to anyone to use this software for any
|
|
12
|
+
purpose, including commercial applications, and to alter it and
|
|
13
|
+
redistribute it freely, subject to the following restrictions:
|
|
14
|
+
|
|
15
|
+
1. The origin of this software must not be misrepresented; you
|
|
16
|
+
must not claim that you wrote the original software. If you use
|
|
17
|
+
this software in a product, an acknowledgment in the product
|
|
18
|
+
documentation would be appreciated but is not required.
|
|
19
|
+
|
|
20
|
+
2. Altered source versions must be plainly marked as such, and
|
|
21
|
+
must not be misrepresented as being the original software.
|
|
22
|
+
|
|
23
|
+
3. This notice may not be removed or altered from any source
|
|
24
|
+
distribution.
|
|
25
|
+
|
|
26
|
+
---------------------------------------------------------------------------------*/
|
|
27
|
+
/*! \file dma.h
|
|
28
|
+
\brief Wrapper functions for direct memory access hardware
|
|
29
|
+
|
|
30
|
+
*/
|
|
31
|
+
#ifndef SNES_DMA_INCLUDE
|
|
32
|
+
#define SNES_DMA_INCLUDE
|
|
33
|
+
|
|
34
|
+
#include <snes/snestypes.h>
|
|
35
|
+
|
|
36
|
+
#include <snes/background.h>
|
|
37
|
+
#include <snes/sprite.h>
|
|
38
|
+
#include <snes/video.h>
|
|
39
|
+
|
|
40
|
+
/*! \brief Bit defines for the HDMA channels */
|
|
41
|
+
#define HDMA_CHANNEL0 (1 << 0)
|
|
42
|
+
#define HDMA_CHANNEL1 (1 << 1)
|
|
43
|
+
#define HDMA_CHANNEL2 (1 << 2)
|
|
44
|
+
#define HDMA_CHANNEL3 (1 << 3)
|
|
45
|
+
#define HDMA_CHANNEL4 (1 << 4)
|
|
46
|
+
#define HDMA_CHANNEL5 (1 << 5)
|
|
47
|
+
#define HDMA_CHANNEL6 (1 << 6)
|
|
48
|
+
#define HDMA_CHANNEL7 (1 << 7)
|
|
49
|
+
#define HDMA_CHANNELALL (HDMA_CHANNEL0 | HDMA_CHANNEL1 | HDMA_CHANNEL2 | HDMA_CHANNEL3 | HDMA_CHANNEL4 | HDMA_CHANNEL5 | HDMA_CHANNEL6 | HDMA_CHANNEL7)
|
|
50
|
+
|
|
51
|
+
/*! \brief Bit defines for the window area main screen effect */
|
|
52
|
+
#define MSWIN_BG1 (1 << 0) /*!< \brief Main Screen BG1 disable background */
|
|
53
|
+
#define MSWIN_BG2 (1 << 1) /*!< \brief Main Screen BG2 disable background */
|
|
54
|
+
#define MSWIN_BG3 (1 << 2) /*!< \brief Main Screen BG3 disable background */
|
|
55
|
+
#define MSWIN_BG4 (1 << 3) /*!< \brief Main Screen BG4 disable background */
|
|
56
|
+
|
|
57
|
+
#define MSWIN1_BG1MSKOUT (1 << 0) /*!< \brief Window 1 area BG1 inside (0) outside(1) */
|
|
58
|
+
#define MSWIN1_BG1MSKENABLE (2 << 0) /*!< \brief Window 1 area BG1 enable */
|
|
59
|
+
#define MSWIN2_BG1MSKOUT (1 << 2) /*!< \brief Window 2 area BG1 inside (0) outside(1) */
|
|
60
|
+
#define MSWIN2_BG1MSKENABLE (2 << 2) /*!< \brief Window 2 area BG1 enable */
|
|
61
|
+
#define MSWIN1_BG2MSKOUT (1 << 4) /*!< \brief Window 1 area BG2 inside (0) outside(1) */
|
|
62
|
+
#define MSWIN1_BG2MSKENABLE (2 << 4) /*!< \brief Window 1 area BG2 enable */
|
|
63
|
+
#define MSWIN2_BG2MSKOUT (1 << 4) /*!< \brief Window 2 area BG2 inside (0) outside(1) */
|
|
64
|
+
#define MSWIN2_BG2MSKENABLE (2 << 4) /*!< \brief Window 2 area BG2 enable */
|
|
65
|
+
#define MSWIN1_BG3MSKOUT (1 << 0) /*!< \brief Window 1 area BG3 inside (0) outside(1) */
|
|
66
|
+
#define MSWIN1_BG3MSKENABLE (2 << 0) /*!< \brief Window 1 area BG3 enable */
|
|
67
|
+
#define MSWIN2_BG3MSKOUT (1 << 2) /*!< \brief Window 2 area BG3 inside (0) outside(1) */
|
|
68
|
+
#define MSWIN2_BG3MSKENABLE (2 << 2) /*!< \brief Window 2 area BG3 enable */
|
|
69
|
+
#define MSWIN1_BG4MSKOUT (1 << 4) /*!< \brief Window 1 area BG4 inside (0) outside(1) */
|
|
70
|
+
#define MSWIN1_BG4MSKENABLE (2 << 4) /*!< \brief Window 1 area BG4 enable */
|
|
71
|
+
#define MSWIN2_BG4MSKOUT (1 << 4) /*!< \brief Window 2 area BG4 inside (0) outside(1) */
|
|
72
|
+
#define MSWIN2_BG4MSKENABLE (2 << 4) /*!< \brief Window 2 area BG4 enable */
|
|
73
|
+
|
|
74
|
+
/*! \brief Bit defines for the DMA control registers */
|
|
75
|
+
#define DMA_ENABLE 1
|
|
76
|
+
|
|
77
|
+
typedef struct dmaMemory
|
|
78
|
+
{
|
|
79
|
+
union
|
|
80
|
+
{
|
|
81
|
+
struct
|
|
82
|
+
{
|
|
83
|
+
unsigned short addr;
|
|
84
|
+
unsigned char bank;
|
|
85
|
+
unsigned char __pad;
|
|
86
|
+
} c;
|
|
87
|
+
void *p;
|
|
88
|
+
} mem;
|
|
89
|
+
} dmaMemory;
|
|
90
|
+
|
|
91
|
+
/*! \def REG_MDMAEN
|
|
92
|
+
|
|
93
|
+
\brief Select General Purpose DMA Channel(s) and Start Transfer (W)
|
|
94
|
+
7-0 General Purpose DMA Channel 7-0 Enable (0=Disable, 1=Enable)
|
|
95
|
+
|
|
96
|
+
When writing a non-zero value to this register, general purpose DMA
|
|
97
|
+
will be started immediately (after a few clk cycles). The CPU is paused
|
|
98
|
+
during the transfer. The transfer can be interrupted by H-DMA transfers.
|
|
99
|
+
If more than 1 bit is set in MDMAEN, then the separate transfers will be
|
|
100
|
+
executed in WHICH? priority order. The MDMAEN bits are cleared automatically
|
|
101
|
+
at transfer completion.
|
|
102
|
+
Do not use channels for GP-DMA which are activated as H-DMA in HDMAEN.
|
|
103
|
+
|
|
104
|
+
*/
|
|
105
|
+
#define REG_MDMAEN (*(vuint8 *)0x420B)
|
|
106
|
+
|
|
107
|
+
/*! \def REG_HDMAEN
|
|
108
|
+
|
|
109
|
+
\brief Select H-Blank DMA (H-DMA) Channel(s) (W)
|
|
110
|
+
7-0 H-DMA Channel 7-0 Enable (0=Disable, 1=Enable)
|
|
111
|
+
*/
|
|
112
|
+
#define REG_HDMAEN (*(vuint8 *)0x420C)
|
|
113
|
+
|
|
114
|
+
/*! \def REG_DMAP0
|
|
115
|
+
\def REG_DMAP1 (*(vuint8*)0x4310)
|
|
116
|
+
\def REG_DMAP2 (*(vuint8*)0x4320)
|
|
117
|
+
\def REG_DMAP3 (*(vuint8*)0x4330)
|
|
118
|
+
\def REG_DMAP4 (*(vuint8*)0x4340)
|
|
119
|
+
\def REG_DMAP5 (*(vuint8*)0x4350)
|
|
120
|
+
\def REG_DMAP6 (*(vuint8*)0x4360)
|
|
121
|
+
\def REG_DMAP7 (*(vuint8*)0x4370)
|
|
122
|
+
\brief DMA/HDMA Parameters (R/W)
|
|
123
|
+
7 Transfer Direction (0=A:CPU to B:I/O, 1=B:I/O to A:CPU)
|
|
124
|
+
6 Addressing Mode (0=Direct Table, 1=Indirect Table) (HDMA only)
|
|
125
|
+
5 Not used (R/W) (unused and unchanged by all DMA and HDMA)
|
|
126
|
+
4-3 A-BUS Address Step (0=Increment, 2=Decrement, 1/3=Fixed) (DMA only)
|
|
127
|
+
2-0 Transfer Unit Select (0-4=see below, 5-7=Reserved)
|
|
128
|
+
|
|
129
|
+
DMA Transfer Unit Selection:
|
|
130
|
+
Mode Bytes B-Bus 21xxh Address ;Usage Examples...
|
|
131
|
+
0 = Transfer 1 byte xx ;eg. for WRAM (port 2180h)
|
|
132
|
+
1 = Transfer 2 bytes xx, xx+1 ;eg. for VRAM (port 2118h/19h)
|
|
133
|
+
2 = Transfer 2 bytes xx, xx ;eg. for OAM or CGRAM
|
|
134
|
+
3 = Transfer 4 bytes xx, xx, xx+1, xx+1 ;eg. for BGnxOFS, M7x
|
|
135
|
+
4 = Transfer 4 bytes xx, xx+1, xx+2, xx+3 ;eg. for BGnSC, Window, APU..
|
|
136
|
+
5 = Transfer 4 bytes xx, xx+1, xx, xx+1 ;whatever purpose, VRAM maybe
|
|
137
|
+
6 = Transfer 2 bytes xx, xx ;same as mode 2
|
|
138
|
+
7 = Transfer 4 bytes xx, xx, xx+1, xx+1 ;same as mode 3
|
|
139
|
+
*/
|
|
140
|
+
#define REG_DMAP0 (*(vuint8 *)0x4300)
|
|
141
|
+
#define REG_DMAP1 (*(vuint8 *)0x4310)
|
|
142
|
+
#define REG_DMAP2 (*(vuint8 *)0x4320)
|
|
143
|
+
#define REG_DMAP3 (*(vuint8 *)0x4330)
|
|
144
|
+
#define REG_DMAP4 (*(vuint8 *)0x4340)
|
|
145
|
+
#define REG_DMAP5 (*(vuint8 *)0x4350)
|
|
146
|
+
#define REG_DMAP6 (*(vuint8 *)0x4360)
|
|
147
|
+
#define REG_DMAP7 (*(vuint8 *)0x4370)
|
|
148
|
+
|
|
149
|
+
/*! \def REG_BBAD0
|
|
150
|
+
\def REG_BBAD1
|
|
151
|
+
\def REG_BBAD2
|
|
152
|
+
\def REG_BBAD3
|
|
153
|
+
\def REG_BBAD4
|
|
154
|
+
\def REG_BBAD5
|
|
155
|
+
\def REG_BBAD6
|
|
156
|
+
\def REG_BBAD7
|
|
157
|
+
\brief DMA/HDMA I/O-Bus Address (PPU-Bus aka B-Bus) (R/W)
|
|
158
|
+
For both DMA and HDMA:
|
|
159
|
+
7-0 B-Bus Address (selects an I/O Port which is mapped to 2100h-21FFh)
|
|
160
|
+
*/
|
|
161
|
+
#define REG_BBAD0 (*(vuint8 *)0x4301)
|
|
162
|
+
#define REG_BBAD1 (*(vuint8 *)0x4311)
|
|
163
|
+
#define REG_BBAD2 (*(vuint8 *)0x4321)
|
|
164
|
+
#define REG_BBAD3 (*(vuint8 *)0x4331)
|
|
165
|
+
#define REG_BBAD4 (*(vuint8 *)0x4341)
|
|
166
|
+
#define REG_BBAD5 (*(vuint8 *)0x4351)
|
|
167
|
+
#define REG_BBAD6 (*(vuint8 *)0x4361)
|
|
168
|
+
#define REG_BBAD7 (*(vuint8 *)0x4371)
|
|
169
|
+
|
|
170
|
+
/*! \def REG_A1T0LH
|
|
171
|
+
\def REG_A1T1LH
|
|
172
|
+
\def REG_A1T2LH
|
|
173
|
+
\def REG_A1T3LH
|
|
174
|
+
\def REG_A1T4LH
|
|
175
|
+
\def REG_A1T5LH
|
|
176
|
+
\def REG_A1T6LH
|
|
177
|
+
\def REG_A1T7LH
|
|
178
|
+
|
|
179
|
+
\def REG_A1B0
|
|
180
|
+
\def REG_A1B1
|
|
181
|
+
\def REG_A1B2
|
|
182
|
+
\def REG_A1B3
|
|
183
|
+
\def REG_A1B4
|
|
184
|
+
\def REG_A1B5
|
|
185
|
+
\def REG_A1B6
|
|
186
|
+
\def REG_A1B7
|
|
187
|
+
\brief A1TxL - HDMA Table Start Address (low) / DMA Current Addr (low) (R/W)
|
|
188
|
+
A1TxH - HDMA Table Start Address (hi) / DMA Current Addr (hi) (R/W)
|
|
189
|
+
A1Bx - HDMA Table Start Address (bank) / DMA Current Addr (bank) (R/W)
|
|
190
|
+
|
|
191
|
+
For normal DMA:
|
|
192
|
+
23-16 CPU-Bus Data Address Bank (constant, not incremented/decremented)
|
|
193
|
+
15-0 CPU-Bus Data Address (incremented/decremented/fixed, as selected)
|
|
194
|
+
|
|
195
|
+
For HDMA:
|
|
196
|
+
23-16 CPU-Bus Table Address Bank (constant, bank number for 43x8h/43x9h)
|
|
197
|
+
15-0 CPU-Bus Table Address (constant, reload value for 43x8h/43x9h)
|
|
198
|
+
*/
|
|
199
|
+
#define REG_A1T0LH (*(vuint16 *)0x4302)
|
|
200
|
+
#define REG_A1T1LH (*(vuint16 *)0x4312)
|
|
201
|
+
#define REG_A1T2LH (*(vuint16 *)0x4322)
|
|
202
|
+
#define REG_A1T3LH (*(vuint16 *)0x4332)
|
|
203
|
+
#define REG_A1T4LH (*(vuint16 *)0x4342)
|
|
204
|
+
#define REG_A1T5LH (*(vuint16 *)0x4352)
|
|
205
|
+
#define REG_A1T6LH (*(vuint16 *)0x4362)
|
|
206
|
+
#define REG_A1T7LH (*(vuint16 *)0x4372)
|
|
207
|
+
|
|
208
|
+
#define REG_A1B0 (*(vuint8 *)0x4304)
|
|
209
|
+
#define REG_A1B1 (*(vuint8 *)0x4314)
|
|
210
|
+
#define REG_A1B2 (*(vuint8 *)0x4324)
|
|
211
|
+
#define REG_A1B3 (*(vuint8 *)0x4334)
|
|
212
|
+
#define REG_A1B4 (*(vuint8 *)0x4344)
|
|
213
|
+
#define REG_A1B5 (*(vuint8 *)0x4354)
|
|
214
|
+
#define REG_A1B6 (*(vuint8 *)0x4364)
|
|
215
|
+
#define REG_A1B7 (*(vuint8 *)0x4374)
|
|
216
|
+
|
|
217
|
+
/*! \def REG_DAS0LH
|
|
218
|
+
\def REG_DAS1LH
|
|
219
|
+
\def REG_DAS2LH
|
|
220
|
+
\def REG_DAS3LH
|
|
221
|
+
\def REG_DAS4LH
|
|
222
|
+
\def REG_DAS5LH
|
|
223
|
+
\def REG_DAS6LH
|
|
224
|
+
\def REG_DAS7LH
|
|
225
|
+
\brief Indirect HDMA Address (low) / DMA Byte-Counter (low) (R/W)
|
|
226
|
+
DASxL - Indirect HDMA Address (low) / DMA Byte-Counter (low) (R/W)
|
|
227
|
+
DASxH - Indirect HDMA Address (hi) / DMA Byte-Counter (hi) (R/W)
|
|
228
|
+
43x7h - DASBx - Indirect HDMA Address (bank) (R/W)
|
|
229
|
+
|
|
230
|
+
For normal DMA:
|
|
231
|
+
23-16 Not used
|
|
232
|
+
15-0 Number of bytes to be transferred (1..FFFFh=1..FFFFh, or 0=10000h)
|
|
233
|
+
(This is really a byte-counter; with a 4-byte "Transfer Unit", len=5 would
|
|
234
|
+
transfer one whole Unit, plus the first byte of the second Unit.)
|
|
235
|
+
(The 16bit value is decremented during transfer, and contains 0000h on end.)
|
|
236
|
+
*/
|
|
237
|
+
#define REG_DAS0LH (*(vuint16 *)0x4305)
|
|
238
|
+
#define REG_DAS1LH (*(vuint16 *)0x4315)
|
|
239
|
+
#define REG_DAS2LH (*(vuint16 *)0x4325)
|
|
240
|
+
#define REG_DAS3LH (*(vuint16 *)0x4335)
|
|
241
|
+
#define REG_DAS4LH (*(vuint16 *)0x4345)
|
|
242
|
+
#define REG_DAS5LH (*(vuint16 *)0x4355)
|
|
243
|
+
#define REG_DAS6LH (*(vuint16 *)0x4365)
|
|
244
|
+
#define REG_DAS7LH (*(vuint16 *)0x4375)
|
|
245
|
+
|
|
246
|
+
extern u8 HDMATable16[224 + 1]; /*!< \brief HDMA table accessible to change values */
|
|
247
|
+
|
|
248
|
+
/*! \fn dmaCopyCGram(u8 * source, u16 address, u16 size)
|
|
249
|
+
\brief copy data from source to destination using channel 0 of DMA available channels in half words
|
|
250
|
+
\param source the source to copy from
|
|
251
|
+
\param address cgram address to copy
|
|
252
|
+
\param size the size in bytes of the data to copy.
|
|
253
|
+
*/
|
|
254
|
+
void dmaCopyCGram(u8 *source, u16 address, u16 size);
|
|
255
|
+
|
|
256
|
+
/*! \fn dmaCopyVram(u8 * source, u16 address, u16 size)
|
|
257
|
+
\brief copy data from source to destination using channel 0 of DMA available channels in half words
|
|
258
|
+
\param source the source to copy from
|
|
259
|
+
\param address vram address to copy
|
|
260
|
+
\param size the size in bytes of the data to copy.
|
|
261
|
+
*/
|
|
262
|
+
void dmaCopyVram(u8 *source, u16 address, u16 size);
|
|
263
|
+
|
|
264
|
+
/*! \fn dmaCopySpr32Vram(u8 * source, u16 address)
|
|
265
|
+
\brief copy sprite 32pix size data from source to destination using channel 0 of DMA available channels in half words
|
|
266
|
+
\param source the source to copy from
|
|
267
|
+
\param address vram address to copy
|
|
268
|
+
*/
|
|
269
|
+
void dmaCopySpr32Vram(u8 *source, u16 address);
|
|
270
|
+
|
|
271
|
+
/*! \fn dmaCopySpr16Vram(u8 * source, u16 address)
|
|
272
|
+
\brief copy sprite 16pix size data from source to destination using channel 0 of DMA available channels in half words
|
|
273
|
+
\param source the source to copy from
|
|
274
|
+
\param address vram address to copy
|
|
275
|
+
*/
|
|
276
|
+
void dmaCopySpr16Vram(u8 *source, u16 address);
|
|
277
|
+
|
|
278
|
+
/*! \fn dmaFillVram8(u8 * source, u16 address, u16 size)
|
|
279
|
+
\brief fill the source data to destination using channel 0 of DMA available channels in half words<br>dmaFillVram is deprecated
|
|
280
|
+
\param source the value of source to copy from
|
|
281
|
+
\param address vram address to copy
|
|
282
|
+
\param size the size in bytes of the data to copy.
|
|
283
|
+
*/
|
|
284
|
+
void dmaFillVram8(u8 *source, u16 address, u16 size);
|
|
285
|
+
|
|
286
|
+
/*! \fn dmaFillVram16(u16 * source, u16 address, u16 size)
|
|
287
|
+
\brief fill the source data to destination using channel 0 of DMA available channels in words
|
|
288
|
+
\param source the value of source to copy from
|
|
289
|
+
\param address vram address to copy
|
|
290
|
+
\param size the size in words of the data to copy.
|
|
291
|
+
*/
|
|
292
|
+
void dmaFillVram16(u16 *source, u16 address, u16 size);
|
|
293
|
+
|
|
294
|
+
/*! \fn dmaClearVram(void)
|
|
295
|
+
\brief clear all vram data with #0
|
|
296
|
+
*/
|
|
297
|
+
void dmaClearVram(void);
|
|
298
|
+
|
|
299
|
+
/*! \fn dmaCopyOAram(u8 *source, u16 address, u16 size)
|
|
300
|
+
\brief copies Sprites from source to destination using channel 0 of DMA available channels in half words
|
|
301
|
+
\param source the source to copy from
|
|
302
|
+
\param address vram address to copy
|
|
303
|
+
\param size the size in bytes of the data to copy.
|
|
304
|
+
*/
|
|
305
|
+
void dmaCopyOAram(u8 *source, u16 address, u16 size);
|
|
306
|
+
|
|
307
|
+
/*! \fn dmaCopyVram7(u8 *source, u16 address, u16 size, u8 vrammodeinc, u16 dmacontrol)
|
|
308
|
+
\brief copies data from source to destination using channel 0 of DMA available channels in half words with VMAIN value
|
|
309
|
+
\param source the source to copy from
|
|
310
|
+
\param address vram address to copy
|
|
311
|
+
\param size the size in bytes of the data to copy.
|
|
312
|
+
\param vrammodeinc the value of REG_VMAIN (incr or not incr).
|
|
313
|
+
\param dmacontrol the value of DMA control register (incr or not incr, $18 or $19, and so on).
|
|
314
|
+
*/
|
|
315
|
+
void dmaCopyVram7(u8 *source, u16 address, u16 size, u8 vrammodeinc, u16 dmacontrol);
|
|
316
|
+
|
|
317
|
+
/*! \fn setModeHdmaGradient(u8 maxLevels)
|
|
318
|
+
\brief Do a brightness gradient on screen. Use HDMA Channels 3.
|
|
319
|
+
\param maxLevels value between 1..15 for the maximum level of brightness (15=light, 1=near dark)
|
|
320
|
+
*/
|
|
321
|
+
void setModeHdmaGradient(u8 maxLevels);
|
|
322
|
+
|
|
323
|
+
/*! \fn setModeHdmaShadeUpDown(void)
|
|
324
|
+
\brief Do a brightness gradient from up/down to center of the screen. Use HDMA Channels 3.
|
|
325
|
+
*/
|
|
326
|
+
void setModeHdmaShadeUpDown(void);
|
|
327
|
+
|
|
328
|
+
/*! \fn setModeHdmaShading(unsigned char mode)
|
|
329
|
+
\brief Do a shading effect on screen. Use HDMA Channels 0 to 2.
|
|
330
|
+
\param mode value 0 disactivate 1, other value activate it
|
|
331
|
+
*/
|
|
332
|
+
void setModeHdmaShading(unsigned char mode);
|
|
333
|
+
|
|
334
|
+
/*! \fn setParallaxScrolling(u8 bgrnd)
|
|
335
|
+
\brief Do a parallax scrolling effect on screen. Use HDMA Channels 3.
|
|
336
|
+
\brief use HDMATable16 variable to store scrolling value
|
|
337
|
+
\brief each entry is number of lines (8bits) and scrolling value 16 bits (low & high)
|
|
338
|
+
\brief WARNING : no more than 112 values and last value MUST be $0000
|
|
339
|
+
\param bgrnd background for the parallax scrolling (value 0..2)
|
|
340
|
+
*/
|
|
341
|
+
void setParallaxScrolling(u8 bgrnd);
|
|
342
|
+
|
|
343
|
+
/*! \fn setModeHdmaReset(u8 channels)
|
|
344
|
+
\brief Reset or Set HDMA channels
|
|
345
|
+
\param channels channels from HDMA_CHANNEL0 to HDMA_CHANNEL7. HDMA_CHANNELALL for all channels
|
|
346
|
+
*/
|
|
347
|
+
void setModeHdmaReset(u8 channels);
|
|
348
|
+
|
|
349
|
+
/*! \fn void setModeHdmaWindowReset(u8 channels)
|
|
350
|
+
\brief Reset or Set HDMA channels and remove WINDOW effect
|
|
351
|
+
\param channels channels from HDMA_CHANNEL0 to HDMA_CHANNEL7. HDMA_CHANNELALL for all channels
|
|
352
|
+
*/
|
|
353
|
+
void setModeHdmaWindowReset(u8 channels);
|
|
354
|
+
|
|
355
|
+
/*! \fn setModeHdmaColor(u8* hdmatable)
|
|
356
|
+
\brief Do a color gradient effect on screen (with color 0). Use HDMA Channels 6.
|
|
357
|
+
\param hdmatable table with gradient colors
|
|
358
|
+
*/
|
|
359
|
+
void setModeHdmaColor(u8* hdmatable);
|
|
360
|
+
|
|
361
|
+
/*! \fn setModeHdmaWaves(u8 bgrnd)
|
|
362
|
+
\brief Do a waves effect on screen (init function). Use HDMA Channels 6.
|
|
363
|
+
\param bgrnd background for the wave effect (value 0..1)
|
|
364
|
+
*/
|
|
365
|
+
void setModeHdmaWaves(u8 bgrnd);
|
|
366
|
+
|
|
367
|
+
/*! \fn setModeHdmaWavesMove(void)
|
|
368
|
+
\brief Animate the waves effect. Must be called during each frame.<br> setModeHdmaWaves must have been done to init it.
|
|
369
|
+
*/
|
|
370
|
+
void setModeHdmaWavesMove(void);
|
|
371
|
+
|
|
372
|
+
/*! \fn setModeHdmaWindow(u8 bgrnd, u8* hdmatableL,u8* hdmatableR)
|
|
373
|
+
\brief Do a window effect on screen. Use HDMA Channels 4 & 5.
|
|
374
|
+
\param bgrnd background for the windows effect (value MSWIN_BG1..MSWIN_BG4)
|
|
375
|
+
\param bgrndmask background mask (inside, outside) for the windows effect (value MSWIN1_BG13MSKIN..MSWIN1_BG13MSKIN)
|
|
376
|
+
\param hdmatableL table with windows effect on the left
|
|
377
|
+
\param hdmatableR table with windows effect on the right
|
|
378
|
+
*/
|
|
379
|
+
void setModeHdmaWindow(u8 bgrnd, u8 bgrndmask,u8* hdmatableL,u8* hdmatableR);
|
|
380
|
+
|
|
381
|
+
#endif // SNES_DMA_INCLUDE
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
Input registers
|
|
4
|
+
|
|
5
|
+
Copyright (C) 2012-2013
|
|
6
|
+
Alekmaul
|
|
7
|
+
|
|
8
|
+
This software is provided 'as-is', without any express or implied
|
|
9
|
+
warranty. In no event will the authors be held liable for any
|
|
10
|
+
damages arising from the use of this software.
|
|
11
|
+
|
|
12
|
+
Permission is granted to anyone to use this software for any
|
|
13
|
+
purpose, including commercial applications, and to alter it and
|
|
14
|
+
redistribute it freely, subject to the following restrictions:
|
|
15
|
+
|
|
16
|
+
1. The origin of this software must not be misrepresented; you
|
|
17
|
+
must not claim that you wrote the original software. If you use
|
|
18
|
+
this software in a product, an acknowledgment in the product
|
|
19
|
+
documentation would be appreciated but is not required.
|
|
20
|
+
|
|
21
|
+
2. Altered source versions must be plainly marked as such, and
|
|
22
|
+
must not be misrepresented as being the original software.
|
|
23
|
+
|
|
24
|
+
3. This notice may not be removed or altered from any source
|
|
25
|
+
distribution.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
---------------------------------------------------------------------------------*/
|
|
29
|
+
|
|
30
|
+
/*!
|
|
31
|
+
* \file input.h
|
|
32
|
+
* \brief input support.
|
|
33
|
+
*
|
|
34
|
+
* The inputs are automatically read by the \ref VBlank-ISR on non-lag frames.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
#ifndef SNES_INPUT_INCLUDE
|
|
38
|
+
#define SNES_INPUT_INCLUDE
|
|
39
|
+
|
|
40
|
+
#include <snes/snestypes.h>
|
|
41
|
+
#include <snes/interrupt.h>
|
|
42
|
+
|
|
43
|
+
/*!
|
|
44
|
+
\brief common values for pad input.
|
|
45
|
+
|
|
46
|
+
common values that can be used to test auto pad.
|
|
47
|
+
*/
|
|
48
|
+
//! enum values for the pad buttons.
|
|
49
|
+
typedef enum KEYPAD_BITS
|
|
50
|
+
{
|
|
51
|
+
KEY_A = BIT(7), //!< pad A button.
|
|
52
|
+
KEY_B = BIT(15), //!< pad B button.
|
|
53
|
+
KEY_SELECT = BIT(13), //!< pad SELECT button.
|
|
54
|
+
KEY_START = BIT(12), //!< pad START button.
|
|
55
|
+
KEY_RIGHT = BIT(8), //!< pad RIGHT button.
|
|
56
|
+
KEY_LEFT = BIT(9), //!< pad LEFT button.
|
|
57
|
+
KEY_DOWN = BIT(10), //!< pad DOWN button.
|
|
58
|
+
KEY_UP = BIT(11), //!< pad UP button.
|
|
59
|
+
KEY_R = BIT(4), //!< Right shoulder button.
|
|
60
|
+
KEY_L = BIT(5), //!< Left shoulder button.
|
|
61
|
+
KEY_X = BIT(6), //!< pad X button.
|
|
62
|
+
KEY_Y = BIT(14), //!< pad Y button.
|
|
63
|
+
} KEYPAD_BITS;
|
|
64
|
+
|
|
65
|
+
/*!
|
|
66
|
+
\brief common values for SuperScope input.
|
|
67
|
+
*/
|
|
68
|
+
//! enum values for the SuperScope buttons and flags.
|
|
69
|
+
typedef enum SUPERSCOPE_BITS
|
|
70
|
+
{
|
|
71
|
+
SSC_FIRE = BIT(15), //!< superscope FIRE button.
|
|
72
|
+
SSC_CURSOR = BIT(14), //!< superscope CURSOR button.
|
|
73
|
+
SSC_PAUSE = BIT(12), //!< superscope PAUSE button.
|
|
74
|
+
SSC_TURBO = BIT(13), //!< superscope TURBO flag.
|
|
75
|
+
SSC_OFFSCREEN = BIT(9), //!< superscope OFFSCREEN flag.
|
|
76
|
+
SSC_NOISE = BIT(8), //!< superscope NOISE flag.
|
|
77
|
+
} SUPERSCOPE_BITS;
|
|
78
|
+
|
|
79
|
+
/*!
|
|
80
|
+
* \brief Mouse sensitivity values
|
|
81
|
+
*
|
|
82
|
+
* enum values for the mouse sensitivity.
|
|
83
|
+
*/
|
|
84
|
+
typedef enum MOUSE_SENSITIVITY
|
|
85
|
+
{
|
|
86
|
+
MOUSE_SLOW = 0, //!< slow sensitivity
|
|
87
|
+
MOUSE_MEDIUM = 1, //!< medium sensitivity
|
|
88
|
+
MOUSE_FAST = 2, //!< fast sensitivity
|
|
89
|
+
} MOUSE_SENSITIVITY;
|
|
90
|
+
|
|
91
|
+
extern u16 pad_keys[5]; //!< current pad value
|
|
92
|
+
extern u16 pad_keysold[5]; //!< previous pad value
|
|
93
|
+
extern u16 pad_keysdown[5]; //!< newly pressed down pad keys
|
|
94
|
+
|
|
95
|
+
extern u8 snes_mplay5; /*!< \brief 1 if MultiPlay5 is connected */
|
|
96
|
+
extern u8 snes_mouse; /*!< \brief 1 if Mouse is going to be used */
|
|
97
|
+
extern u8 snes_sscope; /*!< \brief 1 if SuperScope is connected */
|
|
98
|
+
|
|
99
|
+
extern u8 mouseConnect[2]; /*!< \brief 1 if Mouse present */
|
|
100
|
+
extern u8 mouseButton[2]; /*!< \brief Mouse buttons that are pressed on this frame (Click mode). */
|
|
101
|
+
extern u8 mousePressed[2]; /*!< \brief Mouse buttons that are currently pressed, stays until is unpressed (Turbo mode). */
|
|
102
|
+
extern u8 mousePreviousPressed[2];/*!< \brief Mouse buttons held or pressed in the previous frame */
|
|
103
|
+
extern u8 mouse_x[2]; /*!< \brief Mouse horizontal displacement. daaaaaaa, d = direction (1: left, 0: right), a = acceleration. */
|
|
104
|
+
extern u8 mouse_y[2]; /*!< \brief Mouse vertical displacement. daaaaaaa, d = direction (1: up, 0: down), a = acceleration. */
|
|
105
|
+
|
|
106
|
+
/*!
|
|
107
|
+
* \brief Mouse sensitivity
|
|
108
|
+
*
|
|
109
|
+
* * When a mouse is connected to the port: sensitivity bits read from the mouse.
|
|
110
|
+
* * When no mouse is connected: The sensitivity to set the mouse to when the mouse is connected to the console.
|
|
111
|
+
*
|
|
112
|
+
* CAUTION: The Hyperkin clone mouse ignores sensitivity changes and always reports a sensitivity of 0.
|
|
113
|
+
*/
|
|
114
|
+
extern u8 mouseSensitivity[2];
|
|
115
|
+
|
|
116
|
+
/*!
|
|
117
|
+
* \brief Request a change mouse sensitivity.
|
|
118
|
+
*
|
|
119
|
+
* To prevent auto-joypad read corruption the change sensitivity commands are delayed until the
|
|
120
|
+
* next non-lag VBlank ISR (after the mouse data has been read).
|
|
121
|
+
*
|
|
122
|
+
* Values:
|
|
123
|
+
* * `0x00`: No changes to mouse sensitivity.
|
|
124
|
+
* * `0x01`: Cycle the mouse sensitivity once.
|
|
125
|
+
* * `0x02-0x7f`: Cycle the mouse sensitivity twice.
|
|
126
|
+
* * `0x80-0xff`: Set the sensitivity to `value & 3`.
|
|
127
|
+
*
|
|
128
|
+
* CAUTION: The Hyperkin clone mouse ignores sensitivity changes and always reports a sensitivity of 0.
|
|
129
|
+
*/
|
|
130
|
+
extern u8 mouseRequestChangeSensitivity[2];
|
|
131
|
+
|
|
132
|
+
#define mouse_L 0x01 /*!< \brief SNES Mouse Left button mask.*/
|
|
133
|
+
#define mouse_R 0x02 /*!< \brief SNES Mouse Right button mask.*/
|
|
134
|
+
|
|
135
|
+
extern u16 scope_holddelay; /*!< \brief Hold delay. */
|
|
136
|
+
extern u16 scope_repdelay; /*!< \brief Repeat rate. */
|
|
137
|
+
extern u16 scope_shothraw; /*!< \brief Horizontal shot position, not adjusted. */
|
|
138
|
+
extern u16 scope_shotvraw; /*!< \brief Vertical shot position, not adjusted. */
|
|
139
|
+
extern u16 scope_shoth; /*!< \brief Horizontal shot position, adjusted for aim. */
|
|
140
|
+
extern u16 scope_shotv; /*!< \brief Vertical shot position, adjusted for aim. */
|
|
141
|
+
extern u16 scope_centerh; /*!< \brief 0x0000 is the center of the screen, positive values go to bottom right. */
|
|
142
|
+
extern u16 scope_centerv; /*!< \brief 0x0000 is the center of the screen, positive values go to bottom right. */
|
|
143
|
+
extern u16 scope_down; /*!< \brief flags that are currently true.*/
|
|
144
|
+
extern u16 scope_now; /*!< \brief flags that have become true this frame.*/
|
|
145
|
+
extern u16 scope_held; /*!< \brief flagsthat have been true for a certain length of time.*/
|
|
146
|
+
extern u16 scope_last; /*!< \brief flags that were true on the previous frame.*/
|
|
147
|
+
extern u16 scope_sinceshot; /*!< \brief Number of frames elapsed since last shot was fired.*/
|
|
148
|
+
|
|
149
|
+
/*! \def REG_JOYxLH
|
|
150
|
+
|
|
151
|
+
\brief SNES Controllers I/O Ports - Automatic Reading.
|
|
152
|
+
4218h/4219h - JOY1L/JOY1H - Joypad 1 (gameport 1, pin 4) (R)
|
|
153
|
+
421Ah/421Bh - JOY2L/JOY2H - Joypad 2 (gameport 2, pin 4) (R)
|
|
154
|
+
421Ch/421Dh - JOY3L/JOY3H - Joypad 3 (gameport 1, pin 5) (R)
|
|
155
|
+
421Eh/421Fh - JOY4L/JOY4H - Joypad 4 (gameport 2, pin 5) (R)
|
|
156
|
+
|
|
157
|
+
Register Serial Default
|
|
158
|
+
Bit Transfer Purpose
|
|
159
|
+
Number______Order______(Joypads)_____
|
|
160
|
+
15 1st B Button (1=Low=Pressed)
|
|
161
|
+
14 2nd Y Button
|
|
162
|
+
13 3rd Select Button
|
|
163
|
+
12 4th Start Button
|
|
164
|
+
11 5th Up
|
|
165
|
+
10 6th Down
|
|
166
|
+
9 7th Left
|
|
167
|
+
8 8th Right
|
|
168
|
+
7 9th A Button
|
|
169
|
+
6 10th X Button
|
|
170
|
+
5 11th L Button
|
|
171
|
+
4 12th R Button
|
|
172
|
+
3 13th 0 (High)
|
|
173
|
+
2 14th 0 (High)
|
|
174
|
+
1 15th 0 (High)
|
|
175
|
+
0 16th 0 (High)
|
|
176
|
+
|
|
177
|
+
When enabled, the SNES will read 16 bits from each of the 4 controller port
|
|
178
|
+
data lines into registers $4218-f. This begins between H=32.5 and H=95.5 of
|
|
179
|
+
the first V-Blank scanline, and ends 4224 master cycles later. Register $4212
|
|
180
|
+
bit 0 is set during this time. Specifically, it begins at H=74.5 on the first
|
|
181
|
+
frame, and thereafter some multiple of 256 cycles after the start of the
|
|
182
|
+
previous read that falls within the observed range.
|
|
183
|
+
|
|
184
|
+
Reading $4218-f during this time will read back incorrect values. The only
|
|
185
|
+
reliable value is that no buttons pressed will return 0 (however, if buttons
|
|
186
|
+
are pressed 0 could still be returned incorrectly). Presumably reading $4016/7
|
|
187
|
+
or writing $4016 during this time will also screw things up.
|
|
188
|
+
|
|
189
|
+
*/
|
|
190
|
+
#define REG_JOYxLH(a) (((vuint16 *)0x4218)[(a)])
|
|
191
|
+
|
|
192
|
+
/*! \fn padsCurrent(value)
|
|
193
|
+
\brief Return current value of selected pad
|
|
194
|
+
\param value pad index to use (0-1 or 0-4 if multiplayer 5 connected)
|
|
195
|
+
\return unsigned short of the current pad value
|
|
196
|
+
*/
|
|
197
|
+
// unsigned short padsCurrent(u16 value);
|
|
198
|
+
#define padsCurrent(value) (pad_keys[value])
|
|
199
|
+
|
|
200
|
+
/*! \fn padsDown(value)
|
|
201
|
+
\brief Return value of down keys for selected pad
|
|
202
|
+
\param value pad index to use (0-1 or 0-4 if multiplayer 5 connected)
|
|
203
|
+
\return unsigned short of the newly pressed down keys (0 -> 1 transition)
|
|
204
|
+
*/
|
|
205
|
+
// unsigned short padsDown(u16 value);
|
|
206
|
+
#define padsDown(value) (pad_keysdown[value])
|
|
207
|
+
|
|
208
|
+
/*! \fn padsUp(u16 value)
|
|
209
|
+
\brief Return value of up keys for selected pad
|
|
210
|
+
\param value pad index to use (0-1 or 0-4 if multiplayer 5 connected)
|
|
211
|
+
\return unsigned short of the released keys (1 -> 0 transition)
|
|
212
|
+
*/
|
|
213
|
+
unsigned short padsUp(u16 value);
|
|
214
|
+
|
|
215
|
+
/*! \fn padsClear(u16 value)
|
|
216
|
+
\brief Clear internal variables for selected pad
|
|
217
|
+
\param value pad index to use (0-1 or 0-4 if multiplayer 5 connected)
|
|
218
|
+
*/
|
|
219
|
+
void padsClear(u16 value);
|
|
220
|
+
|
|
221
|
+
/*! \fn detectMPlay5(void)
|
|
222
|
+
\brief Check if MultiPlayer5 is connected and populate snes_mplay5 (0 or 1 for connected)
|
|
223
|
+
|
|
224
|
+
\b CAUTION: REG_WRIO ($4201) must not be written to while MultiPlayer5 is active.
|
|
225
|
+
(Bit 7 of REG_WRIO must be set when Auto Joy reads the controllers, shortly after the VBlank Period starts.)
|
|
226
|
+
*/
|
|
227
|
+
void detectMPlay5(void);
|
|
228
|
+
|
|
229
|
+
/*! \fn detectMouse(void)
|
|
230
|
+
\brief Check if Mouse is connected and populate snes_mouse (0 or 1 for connected)
|
|
231
|
+
*/
|
|
232
|
+
void detectMouse(void);
|
|
233
|
+
|
|
234
|
+
/*! \fn detectSuperScope(void)
|
|
235
|
+
\brief Detects if SuperScope is connected on Port 1 (second controller port on console) and populate snes_sscope (0 or 1 for connected)
|
|
236
|
+
*/
|
|
237
|
+
void detectSuperScope(void);
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
/*!
|
|
241
|
+
* \brief Enable mouse reading and set the initial mouse sensitivity
|
|
242
|
+
*
|
|
243
|
+
* Initialises mouse variables and enable mouse reading in the VBlank ISR.
|
|
244
|
+
*
|
|
245
|
+
* \param sensitivity sensitivity to use when the mouse is connected to the console
|
|
246
|
+
* (has no effect on a Hyperkin clone mouse)
|
|
247
|
+
*/
|
|
248
|
+
void initMouse(u8 sensitivity);
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
/*!
|
|
252
|
+
* \brief Queue a cycle mouse sensitivity command for the next VBlank.
|
|
253
|
+
*
|
|
254
|
+
* \param port the port the mouse is connected to (0 or 1).
|
|
255
|
+
*
|
|
256
|
+
* CAUTION:
|
|
257
|
+
* * The changes to @ref mouseSensitivity are delayed one frame.
|
|
258
|
+
* * This function will override any pending @ref mouseRequestChangeSensitivity commands.
|
|
259
|
+
* * This function has no effect on the Hyperkin clone mouse.
|
|
260
|
+
*/
|
|
261
|
+
void mouseCycleSensitivity(u16 port);
|
|
262
|
+
|
|
263
|
+
/*!
|
|
264
|
+
* \brief Queue a cycle mouse sensitivity twice (decrementing the sensitivity) command for the next VBlank.
|
|
265
|
+
*
|
|
266
|
+
* \param port the port the mouse is connected to (0 or 1).
|
|
267
|
+
*
|
|
268
|
+
* CAUTION:
|
|
269
|
+
* * The changes to @ref mouseSensitivity are delayed one frame.
|
|
270
|
+
* * This function will override any pending @ref mouseRequestChangeSensitivity commands.
|
|
271
|
+
* * This function has no effect on the Hyperkin clone mouse.
|
|
272
|
+
*/
|
|
273
|
+
void mouseCycleSensitivityTwice(u16 port);
|
|
274
|
+
|
|
275
|
+
/*!
|
|
276
|
+
* \brief Queue a set mouse sensitivity command (to be executed on the next VBlank).
|
|
277
|
+
*
|
|
278
|
+
* \param port the port the mouse is connected to (0 or 1).
|
|
279
|
+
* \param sensitivity the sensitivity to set the mouse to (0 - 2).
|
|
280
|
+
*
|
|
281
|
+
* CAUTION:
|
|
282
|
+
* * The changes to @ref mouseSensitivity are delayed one frame.
|
|
283
|
+
* * A sensitivity value of 3 is invalid.
|
|
284
|
+
* * This function will override any pending @ref mouseRequestChangeSensitivity commands.
|
|
285
|
+
* * This function has no effect on the Hyperkin clone mouse.
|
|
286
|
+
*/
|
|
287
|
+
void mouseSetSensitivity(u16 port, u8 sensitivity);
|
|
288
|
+
|
|
289
|
+
#endif // SNES_PADS_INCLUDE
|