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,465 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
Video registers and defines
|
|
4
|
+
|
|
5
|
+
Copyright (C) 2012-2017
|
|
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
|
+
2. Altered source versions must be plainly marked as such, and
|
|
21
|
+
must not be misrepresented as being the original software.
|
|
22
|
+
3. This notice may not be removed or altered from any source
|
|
23
|
+
distribution.
|
|
24
|
+
|
|
25
|
+
---------------------------------------------------------------------------------*/
|
|
26
|
+
|
|
27
|
+
/*! \file video.h
|
|
28
|
+
\brief contains the basic definitions for controlling the video hardware.
|
|
29
|
+
|
|
30
|
+
*/
|
|
31
|
+
#ifndef SNES_VIDEO_INCLUDE
|
|
32
|
+
#define SNES_VIDEO_INCLUDE
|
|
33
|
+
|
|
34
|
+
#include <snes/snestypes.h>
|
|
35
|
+
|
|
36
|
+
/*! \brief Bit defines for the video control registers */
|
|
37
|
+
typedef enum
|
|
38
|
+
{
|
|
39
|
+
DSP_FORCEVBL = BIT(7), /*!< \brief Forced Blanking (0=Normal, 1=Screen Black) */
|
|
40
|
+
|
|
41
|
+
VRAM_INCLOW = (0 << 7), /*!< \brief Increment VRAM Address after accessing High/Low byte (0=Low, 1=High) */
|
|
42
|
+
VRAM_INCHIGH = (1 << 7),
|
|
43
|
+
VRAM_ADRTR_0B = (0 << 2), /*!< \brief Address Translation (0..3 = 0bit/None, 8bit, 9bit, 10bit) */
|
|
44
|
+
VRAM_ADRTR_8B = (1 << 2), /*!< \brief Address Translation (0..3 = 0bit/None, 8bit, 9bit, 10bit) */
|
|
45
|
+
VRAM_ADRTR_9B = (2 << 2), /*!< \brief Address Translation (0..3 = 0bit/None, 8bit, 9bit, 10bit) */
|
|
46
|
+
VRAM_ADRTR_10B = (3 << 2), /*!< \brief Address Translation (0..3 = 0bit/None, 8bit, 9bit, 10bit) */
|
|
47
|
+
VRAM_ADRSTINC_1 = (0 << 0), /*!< \brief Address Increment Step (0..3 = Increment Word-Address by 1,32,128,128) */
|
|
48
|
+
VRAM_ADRSTINC_32 = (1 << 0), /*!< \brief Address Increment Step (0..3 = Increment Word-Address by 1,32,128,128) */
|
|
49
|
+
VRAM_ADRSTINC_128 = (2 << 0) /*!< \brief Address Increment Step (0..3 = Increment Word-Address by 1,32,128,128) */
|
|
50
|
+
} VideoControl;
|
|
51
|
+
|
|
52
|
+
#define FADE_IN 2
|
|
53
|
+
#define FADE_OUT 1
|
|
54
|
+
#define MOSAIC_IN 2
|
|
55
|
+
#define MOSAIC_OUT 1
|
|
56
|
+
#define MOSAIC_BG1 (1 << 0)
|
|
57
|
+
#define MOSAIC_BG2 (1 << 1)
|
|
58
|
+
#define MOSAIC_BG3 (1 << 2)
|
|
59
|
+
#define MOSAIC_BG4 (1 << 3)
|
|
60
|
+
|
|
61
|
+
#define CM_DIRCOLOR (1 << 0) /*!< \brief Color Math Control Register A & B bits */
|
|
62
|
+
#define CM_SUBBGOBJ_ENABLE (1 << 1)
|
|
63
|
+
#define CM_ALWAYS_ENABLE (0 << 4)
|
|
64
|
+
#define CM_MATWIN_ENABLE (1 << 4)
|
|
65
|
+
#define CM_NOMATWIN_ENABLE (2 << 4)
|
|
66
|
+
#define CM_NEVER_ENABLE (3 << 4)
|
|
67
|
+
#define CM_SCBLK_ALWAYS_ENABLE (0 << 6)
|
|
68
|
+
#define CM_SCBLK_MATWIN_ENABLE (1 << 6)
|
|
69
|
+
#define CM_SCBLK_NOMATWIN_ENABLE (2 << 6)
|
|
70
|
+
#define CM_SCBLK_NEVER_ENABLE (3 << 6)
|
|
71
|
+
|
|
72
|
+
#define CM_SUB_MAINSUB (1 << 7)
|
|
73
|
+
#define CM_DIV2_DIVIDE (1 << 6)
|
|
74
|
+
#define CM_MSCR_BACK (1 << 5)
|
|
75
|
+
#define CM_MSCR_PAL47 (1 << 4)
|
|
76
|
+
#define CM_MSCR_BG4 (1 << 3)
|
|
77
|
+
#define CM_MSCR_BG3 (1 << 2)
|
|
78
|
+
#define CM_MSCR_BG2 (1 << 1)
|
|
79
|
+
#define CM_MSCR_BG1 (1 << 0)
|
|
80
|
+
|
|
81
|
+
#define CM_APPLY_BLUE (1 << 7)
|
|
82
|
+
#define CM_APPLY_GREEN (1 << 6)
|
|
83
|
+
#define CM_APPLY_RED (1 << 5)
|
|
84
|
+
|
|
85
|
+
#define M7_HFLIP (1 << 0) /*!< \brief Mode7 screen H-Flip (0=Normal, 1=Flipped) flip 256x256 "screen"*/
|
|
86
|
+
#define M7_VFLIP (1 << 1) /*!< \brief Mode7 screen V-Flip (0=Normal, 1=Flipped) flip 256x256 "screen"*/
|
|
87
|
+
#define M7_WRAP (1 << 6) /*!< \brief Mode7 Wrap within 128x128 tile area */
|
|
88
|
+
#define M7_OUTTRANS (2 << 6) /*!< \brief Outside 128x128 tile area is Transparent */
|
|
89
|
+
#define M7_OUTTILE (3 << 6) /*!< \brief Outside 128x128 tile area is filled by Tile 00h */
|
|
90
|
+
|
|
91
|
+
#define PPU_50HZ (1 << 4) /*!< \brief Frame Rate (PPU2.Pin30) (0=NTSC/60Hz, 1=PAL/50Hz) */
|
|
92
|
+
|
|
93
|
+
/*! \def REG_INIDISP
|
|
94
|
+
\brief Display Control 1 (W)
|
|
95
|
+
7 Forced Blanking (0=Normal, 1=Screen Black)
|
|
96
|
+
6-4 Not used
|
|
97
|
+
3-0 Master Brightness (0=Screen Black, or N=1..15: Brightness*(N+1)/16)
|
|
98
|
+
|
|
99
|
+
In Forced Blank, VRAM, OAM and CGRAM can be freely accessed (otherwise it's
|
|
100
|
+
accessible only during Vblank). Even when in forced blank, the TV Set keeps
|
|
101
|
+
receiving Vsync/Hsync signals (thus producing a stable black picture). And,
|
|
102
|
+
the CPU keeps receiving Hblank/Vblank signals (so any enabled video NMIs, IRQs,
|
|
103
|
+
HDMAs are kept generated).
|
|
104
|
+
|
|
105
|
+
Forced blank doesn't apply immediately... so one must wait whatever
|
|
106
|
+
(maybe a scanline) before VRAM can be freely accessed... or is it only
|
|
107
|
+
vice-versa: disabling forced blank doesn't apply immediately/shows garbage
|
|
108
|
+
pixels?
|
|
109
|
+
*/
|
|
110
|
+
#define REG_INIDISP (*(vuint8 *)0x2100)
|
|
111
|
+
|
|
112
|
+
/*! \def REG_VMAIN
|
|
113
|
+
\brief VRAM Address Increment Mode (W)
|
|
114
|
+
7 Increment VRAM Address after accessing High/Low byte (0=Low, 1=High)
|
|
115
|
+
6-4 Not used
|
|
116
|
+
3-2 Address Translation (0..3 = 0bit/None, 8bit, 9bit, 10bit)
|
|
117
|
+
1-0 Address Increment Step (0..3 = Increment Word-Address by 1,32,128,128)
|
|
118
|
+
|
|
119
|
+
The address translation is intended for bitmap graphics (where one would have filled the BG Map
|
|
120
|
+
by increasing Tile numbers), technically it does thrice left-rotate the lower 8, 9, or 10 bits
|
|
121
|
+
of the Word-address:
|
|
122
|
+
Translation Bitmap Type Port [2116h/17h] VRAM Word-Address
|
|
123
|
+
8bit rotate 4-color; 1 word/plane aaaaaaaaYYYxxxxx --> aaaaaaaaxxxxxYYY
|
|
124
|
+
9bit rotate 16-color; 2 words/plane aaaaaaaYYYxxxxxP --> aaaaaaaxxxxxPYYY
|
|
125
|
+
10bit rotate 256-color; 4 words/plane aaaaaaYYYxxxxxPP --> aaaaaaxxxxxPPYYY
|
|
126
|
+
|
|
127
|
+
Where "aaaaa" would be the normal address MSBs, "YYY" is the Y-index (within a 8x8 tile),
|
|
128
|
+
"xxxxx" selects one of the 32 tiles per line, "PP" is the bit-plane index (for BGs with more
|
|
129
|
+
than one Word per plane). For the intended result (writing rows of 256 pixels) the Translation
|
|
130
|
+
should be combined with Increment Step=1.
|
|
131
|
+
For Mode 7 bitmaps one could eventually combine step 32/128 with 8bit/10bit rotate:
|
|
132
|
+
|
|
133
|
+
8bit-rotate/step32 aaaaaaaaXXXxxYYY --> aaaaaaaaxxYYYXXX
|
|
134
|
+
10bit-rotate/step128 aaaaaaXXXxxxxYYY --> aaaaaaxxxxYYYXXX
|
|
135
|
+
|
|
136
|
+
Though the SNES can't access enough VRAM for fullscreen Mode 7 bitmaps.
|
|
137
|
+
Step 32 (without translation) is useful for updating BG Map columns (eg. after horizontal scrolling).
|
|
138
|
+
*/
|
|
139
|
+
#define REG_VMAIN (*(vuint8 *)0x2115)
|
|
140
|
+
|
|
141
|
+
/*! \def REG_VMADDLH
|
|
142
|
+
\brief VMADDL - VRAM Address (lower 8bit) (W)
|
|
143
|
+
VMADDH - VRAM Address (upper 8bit) (W)
|
|
144
|
+
|
|
145
|
+
VRAM Address for reading/writing. This is a WORD address (2-byte steps),
|
|
146
|
+
the PPU could theoretically address up to 64K-words (128K-bytes), in practice,
|
|
147
|
+
only 32K-words (64K-bytes) are installed in SNES consoles (VRAM address bit15
|
|
148
|
+
is not connected, so addresses 8000h-FFFFh are mirrors of 0-7FFFh).
|
|
149
|
+
After reading/writing VRAM Data, the Word-address can be automatically incremented
|
|
150
|
+
by 1,32,128 (depending on the Increment Mode in Port 2115h) (Note: the Address Translation
|
|
151
|
+
feature is applied only "temporarily" upon memory accesses, it doesn't affect the
|
|
152
|
+
value in Port 2116h-17h).
|
|
153
|
+
Writing to 2116h/2117h does prefetch 16bit data from the new address (for later reading).
|
|
154
|
+
*/
|
|
155
|
+
#define REG_VMADDLH (*(vuint16 *)0x2116)
|
|
156
|
+
|
|
157
|
+
/*
|
|
158
|
+
Writing to 2118h or 2119h does simply modify the LSB or MSB of the currently addressed VRAM
|
|
159
|
+
word (with optional Address Translation applied). Depending on the Increment Mode the address
|
|
160
|
+
does (or doesn't) get automatically incremented after the write.
|
|
161
|
+
*/
|
|
162
|
+
#define REG_VMDATAL (*(vuint8 *)0x2118) /*!< \brief VRAM Data Write (lower 8bit) (W) */
|
|
163
|
+
#define REG_VMDATAH (*(vuint8 *)0x2119) /*!< \brief VRAM Data Write (upper 8bit) (W) */
|
|
164
|
+
#define REG_VMDATALH (*(vuint16 *)0x2118) /*!< \brief VRAM Data Write (lower and upper 8bit) (W) */
|
|
165
|
+
|
|
166
|
+
/*! \def REG_CGADD
|
|
167
|
+
|
|
168
|
+
\brief Palette CGRAM Address (Color Generator Memory) (W)
|
|
169
|
+
Color index (0..255). This is a WORD-address (2-byte steps), allowing to access
|
|
170
|
+
256 words (512 bytes). Writing to this register resets the 1st/2nd access
|
|
171
|
+
flipflop (for 2122h/213Bh) to 1st access.
|
|
172
|
+
*/
|
|
173
|
+
#define REG_CGADD (*(vuint8 *)0x2121)
|
|
174
|
+
|
|
175
|
+
/*! \def CGRAM_PALETTE
|
|
176
|
+
\brief Palette CGRAM Data Write (W)
|
|
177
|
+
1st Access: Lower 8 bits (even address)
|
|
178
|
+
2nd Access: Upper 7 bits (odd address) (upper 1bit = PPU2 open bus)
|
|
179
|
+
|
|
180
|
+
Reads and Writes to EVEN and ODD byte-addresses work as follows:
|
|
181
|
+
Write to EVEN address --> set Cgram_Lsb = Data ;memorize value
|
|
182
|
+
Write to ODD address --> set WORD[addr-1] = Data*256 + Cgram_Lsb
|
|
183
|
+
Read from ANY address --> return BYTE[addr]
|
|
184
|
+
|
|
185
|
+
The address is automatically incremented after every read or write access.
|
|
186
|
+
|
|
187
|
+
256-Color Palette Entries
|
|
188
|
+
15 Not used (should be zero) (read: PPU2 Open Bus)
|
|
189
|
+
14-10 Blue
|
|
190
|
+
9-5 Green
|
|
191
|
+
4-0 Red
|
|
192
|
+
|
|
193
|
+
Palette Indices
|
|
194
|
+
00h Main Backdrop color (used when all BG/OBJ pixels are transparent)
|
|
195
|
+
01h-FFh 256-color BG palette (when not using direct-color mode)
|
|
196
|
+
01h-7Fh 128-color BG palette (BG2 in Mode 7)
|
|
197
|
+
01h-7Fh Eight 16-color BG palettes
|
|
198
|
+
01h-1Fh Eight 4-color BG palettes (except BG2-4 in Mode 0)
|
|
199
|
+
21h-3Fh Eight 4-color BG palettes (BG2 in Mode 0 only)
|
|
200
|
+
41h-5Fh Eight 4-color BG palettes (BG3 in Mode 0 only)
|
|
201
|
+
61h-7Fh Eight 4-color BG palettes (BG4 in Mode 0 only)
|
|
202
|
+
81h-FFh Eight 16-color OBJ palettes (half of them with color-math disabled)
|
|
203
|
+
N/A Sub Backdrop color (not in CGRAM, set via COLDATA, Port 2132h)
|
|
204
|
+
*/
|
|
205
|
+
#define CGRAM_PALETTE ((u8 *)0x2122)
|
|
206
|
+
|
|
207
|
+
/*! \def REG_CGWSEL
|
|
208
|
+
\brief Color Math Control Register A (W)
|
|
209
|
+
7-6 Force Main Screen Black (3=Always, 2=MathWindow, 1=NotMathWin, 0=Never)
|
|
210
|
+
5-4 Color Math Enable (0=Always, 1=MathWindow, 2=NotMathWin, 3=Never)
|
|
211
|
+
3-2 Not used
|
|
212
|
+
1 Sub Screen BG/OBJ Enable (0=No/Backdrop only, 1=Yes/Backdrop+BG+OBJ)
|
|
213
|
+
0 Direct Color (for 256-color BGs) (0=Use Palette, 1=Direct Color)
|
|
214
|
+
*/
|
|
215
|
+
#define REG_CGWSEL (*(vuint8 *)0x2130)
|
|
216
|
+
|
|
217
|
+
/*! \def REG_CGADSUB
|
|
218
|
+
\brief Color Math Control Register B (W)
|
|
219
|
+
7 Color Math Add/Subtract (0=Add; Main+Sub, 1=Subtract; Main-Sub)
|
|
220
|
+
6 Color Math "Div2" Half Result (0=No divide, 1=Divide result by 2)
|
|
221
|
+
5 Color Math when Main Screen = Backdrop (0=Off, 1=On) ;\
|
|
222
|
+
4 Color Math when Main Screen = OBJ/Palette4..7 (0=Off, 1=On) ; OFF: Show
|
|
223
|
+
- Color Math when Main Screen = OBJ/Palette0..3 (Always=Off) ; Raw Main,
|
|
224
|
+
3 Color Math when Main Screen = BG4 (0=Off, 1=On) ; or
|
|
225
|
+
2 Color Math when Main Screen = BG3 (0=Off, 1=On) ; ON: Show
|
|
226
|
+
1 Color Math when Main Screen = BG2 (0=Off, 1=On) ; Main+/-Sub
|
|
227
|
+
0 Color Math when Main Screen = BG1 (0=Off, 1=On) ;/
|
|
228
|
+
*/
|
|
229
|
+
#define REG_CGADSUB (*(vuint8 *)0x2131)
|
|
230
|
+
|
|
231
|
+
/*! \def REG_COLDATA
|
|
232
|
+
\brief Color Math Sub Screen Backdrop Color (W)
|
|
233
|
+
This 8bit port allows to manipulate some (or all) bits
|
|
234
|
+
of a 15bit RGB value. Examples: Black: write E0h (R,G,B=0), Cyan: write 20h (R=0) and DFh (G,B=1Fh).
|
|
235
|
+
7 Apply Blue (0=No change, 1=Apply Intensity as Blue)
|
|
236
|
+
6 Apply Green (0=No change, 1=Apply Intensity as Green)
|
|
237
|
+
5 Apply Red (0=No change, 1=Apply Intensity as Red)
|
|
238
|
+
4-0 Intensity (0..31)
|
|
239
|
+
*/
|
|
240
|
+
#define REG_COLDATA (*(vuint8 *)0x2132)
|
|
241
|
+
|
|
242
|
+
/*! \def REG_M7SEL
|
|
243
|
+
\brief Rotation/Scaling Mode Settings (W)
|
|
244
|
+
7-6 Screen Over (see below)
|
|
245
|
+
5-2 Not used
|
|
246
|
+
1 Screen V-Flip (0=Normal, 1=Flipped) ; flip 256x256 "screen"
|
|
247
|
+
0 Screen H-Flip (0=Normal, 1=Flipped) ;
|
|
248
|
+
|
|
249
|
+
Screen Over (when exceeding the 128x128 tile BG Map size):
|
|
250
|
+
0=Wrap within 128x128 tile area
|
|
251
|
+
1=Wrap within 128x128 tile area (same as 0)
|
|
252
|
+
2=Outside 128x128 tile area is Transparent
|
|
253
|
+
3=Outside 128x128 tile area is filled by Tile 00h
|
|
254
|
+
*/
|
|
255
|
+
#define REG_M7SEL (*(vuint8 *)0x211A)
|
|
256
|
+
|
|
257
|
+
/* 1st Write: Lower 8bit ;\1st/2nd write mechanism uses "M7_old"
|
|
258
|
+
2nd Write: Upper 8bit ;/
|
|
259
|
+
*/
|
|
260
|
+
#define REG_M7A (*(vuint8 *)0x211B) /*!< \brief Rotation/Scaling Parameter A (and Maths 16bit operand) (W) */
|
|
261
|
+
#define REG_M7B (*(vuint8 *)0x211C) /*!< \brief Rotation/Scaling Parameter B (and Maths 16bit operand) (W) */
|
|
262
|
+
#define REG_M7C (*(vuint8 *)0x211D) /*!< \brief Rotation/Scaling Parameter C (W) */
|
|
263
|
+
#define REG_M7D (*(vuint8 *)0x211E) /*!< \brief Rotation/Scaling Parameter D (W) */
|
|
264
|
+
#define REG_M7HOFS (*(vuint8 *)0x210D) /*!< \brief BG1 Horizontal Scroll (X) (W) */
|
|
265
|
+
#define REG_M7VOFS (*(vuint8 *)0x210E) /*!< \brief BG1 Vertical Scroll (Y) (W) */
|
|
266
|
+
#define REG_M7X (*(vuint8 *)0x211F) /*!< \brief Rotation/Scaling Center Coordinate X (W) */
|
|
267
|
+
#define REG_M7Y (*(vuint8 *)0x2120) /*!< \brief Rotation/Scaling Center Coordinate Y (W) */
|
|
268
|
+
|
|
269
|
+
/* After writing to 211Bh or 211Ch, the result can be read immediately from 2134h-2136h (the 21xxh Ports
|
|
270
|
+
are rapidly clocked by the PPU, there's no delay needed when reading via "MOV A,[211Ch]" or via
|
|
271
|
+
"MOV A,[1Ch]" (with D=2100h), both works even when the CPU runs at 3.5MHz).
|
|
272
|
+
*/
|
|
273
|
+
#define REG_MPYL (*(vuint8 *)0x2134) /*!< \brief Signed Multiply Result (lower 8bit) (R) */
|
|
274
|
+
#define REG_MPYM (*(vuint8 *)0x2135) /*!< \brief Signed Multiply Result (middle 8bit) (R) */
|
|
275
|
+
#define REG_MPYH (*(vuint8 *)0x2136) /*!< \brief Signed Multiply Result (upper 8bit) (R) */
|
|
276
|
+
#define REG_MPYMH (*(vuint16 *)0x2135) /*!< \brief Signed Multiply Result (middle +upper 8bit) (R) */
|
|
277
|
+
|
|
278
|
+
/*! \def REG_STAT77
|
|
279
|
+
\brief PPU1 Status and Version Number (R)
|
|
280
|
+
7 OBJ Time overflow (0=Okay, 1=More than 8x34 OBJ pixels per scanline)
|
|
281
|
+
6 OBJ Range overflow (0=Okay, 1=More than 32 OBJs per scanline)
|
|
282
|
+
5 Master/Slave Mode (PPU1.Pin25) (0=Normal=Master)
|
|
283
|
+
4 Not used (PPU1 open bus) (same as last value read from PPU1)
|
|
284
|
+
3-0 PPU1 5C77 Version Number (only version 1 exists as far as I know)
|
|
285
|
+
|
|
286
|
+
The overflow flags are cleared at end of V-Blank, but NOT during forced blank!
|
|
287
|
+
The overflow flags are set (regardless of OBJ enable/disable in 212Ch), at following
|
|
288
|
+
times: Bit6 when V=OBJ.YLOC/H=OAM.INDEX*2, bit7 when V=OBJ.YLOC+1/H=0.
|
|
289
|
+
*/
|
|
290
|
+
#define REG_STAT77 (*(vuint8 *)0x213E)
|
|
291
|
+
|
|
292
|
+
/*! \def REG_STAT78
|
|
293
|
+
\brief PPU2 Status and Version Number (R)
|
|
294
|
+
7 Current Interlace-Frame (0=1st, 1=2nd Frame)
|
|
295
|
+
6 H/V-Counter/Lightgun/Joypad2.Pin6 Latch Flag (0=No, 1=New Data Latched)
|
|
296
|
+
5 Not used (PPU2 open bus) (same as last value read from PPU2)
|
|
297
|
+
4 Frame Rate (PPU2.Pin30) (0=NTSC/60Hz, 1=PAL/50Hz)
|
|
298
|
+
3-0 PPU2 5C78 Version Number (version 1..3 exist as far as I know)
|
|
299
|
+
*/
|
|
300
|
+
#define REG_STAT78 (*(vuint8 *)0x213F)
|
|
301
|
+
|
|
302
|
+
// macro creates a 15 bit color from 3x5 bit components
|
|
303
|
+
/** \brief Macro to convert 5 bits or 8 bits r g b components into a single 15 bit RGB triplet */
|
|
304
|
+
#define RGB8(r, g, b) (((r) >> 3) | (((g) >> 3) << 5) | (((b) >> 3) << 10))
|
|
305
|
+
#define RGB5(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
|
|
306
|
+
|
|
307
|
+
#define SCREEN_HEIGHT 224 /** \brief Screen height in pixels */
|
|
308
|
+
#define SCREEN_WIDTH 256 /** \brief Screen width in pixels */
|
|
309
|
+
|
|
310
|
+
extern u8 videoMode; /*!< \brief Current value of REG_TM */
|
|
311
|
+
extern u8 videoModeSub; /*!< \brief Current value of REG_TS */
|
|
312
|
+
|
|
313
|
+
extern u16 snes_frame_count; /*!< \brief Number of frame per second (need a call to videoGetFrames() once a frame)*/
|
|
314
|
+
|
|
315
|
+
/*! \fn setBrightness(u8 level)
|
|
316
|
+
\brief sets the screens brightness.
|
|
317
|
+
\param level 15 = full brightness, 0= black
|
|
318
|
+
*/
|
|
319
|
+
void setBrightness(u8 level);
|
|
320
|
+
|
|
321
|
+
/*! \fn setMode(u8 mode, u8 size)
|
|
322
|
+
\brief Set the SNES hardware to operate in new display mode.
|
|
323
|
+
\param mode 0..7 for available Snes display mode
|
|
324
|
+
\param size Tile Size (8x8 or 16x16) of each BG in this mode (if available)
|
|
325
|
+
|
|
326
|
+
Mode BG1 BG2 BG3 BG4
|
|
327
|
+
0 4-color 4-color 4-color 4-color ;Normal
|
|
328
|
+
1 16-color 16-color 4-color - ;Normal
|
|
329
|
+
2 16-color 16-color (o.p.t) - ;Offset-per-tile
|
|
330
|
+
3 256-color 16-color - - ;Normal
|
|
331
|
+
4 256-color 4-color (o.p.t) - ;Offset-per-tile
|
|
332
|
+
5 16-color 4-color - - ;512-pix-hires
|
|
333
|
+
6 16-color - (o.p.t) - ;512-pix plus Offs-p-t
|
|
334
|
+
7 256-color EXTBG - - ;Rotation/Scaling
|
|
335
|
+
*/
|
|
336
|
+
void setMode(u8 mode, u8 size);
|
|
337
|
+
|
|
338
|
+
/*! \fn setScreenOn(void)
|
|
339
|
+
\brief Put screen On.
|
|
340
|
+
|
|
341
|
+
Calls WaitForVBlank() before enabling the screen to flush VBlank buffers/queues and minimise glitches.
|
|
342
|
+
*/
|
|
343
|
+
void setScreenOn(void);
|
|
344
|
+
|
|
345
|
+
/*! \fn setScreenOff(void)
|
|
346
|
+
\brief Put screen Off.
|
|
347
|
+
*/
|
|
348
|
+
void setScreenOff(void);
|
|
349
|
+
|
|
350
|
+
/*! \fn setFadeEffect(u8 mode)
|
|
351
|
+
\brief Do a fadein or fadeout effect.
|
|
352
|
+
\param mode (FADE_IN = black to complete light, FADE_OUT = light to black)
|
|
353
|
+
*/
|
|
354
|
+
void setFadeEffect(u8 mode);
|
|
355
|
+
|
|
356
|
+
/*! \fn setFadeEffectEx(u8 mode, u8 framesNumber)
|
|
357
|
+
\brief Do a fadein or fadeout effect.
|
|
358
|
+
\param mode (FADE_IN = black to complete light, FADE_OUT = light to black)
|
|
359
|
+
\param framesNumber the number of frames
|
|
360
|
+
*/
|
|
361
|
+
void setFadeEffectEx(u8 mode, u8 framesNumber);
|
|
362
|
+
|
|
363
|
+
/*! \fn setMosaicEffect(u8 mode, u8 bgNumbers)
|
|
364
|
+
\brief Do a mosaic in or out effect.
|
|
365
|
+
\param bgNumbers (MOSAIC_BG1 to MOSAIC_BG4 depending of which background to use for effect)
|
|
366
|
+
\param mode (MOSAIC_IN = normal to mosaic, MOSAIC_OUT = mosaic to normal)
|
|
367
|
+
*/
|
|
368
|
+
void setMosaicEffect(u8 mode, u8 bgNumbers);
|
|
369
|
+
|
|
370
|
+
/*! \fn setColorEffect(u8 colorMathA, u8 colorMathB)
|
|
371
|
+
\brief Do addition or other color effects.
|
|
372
|
+
\param colorMathA value for color math A register (REG_CGWSEL)
|
|
373
|
+
\param colorMathB value for color math B register (REG_CGADSUB)
|
|
374
|
+
*/
|
|
375
|
+
void setColorEffect(u8 colorMathA, u8 colorMathB);
|
|
376
|
+
|
|
377
|
+
/*! \fn setColorIntensity(u8 colorApply, u8 intensity)
|
|
378
|
+
\brief Change intensity for transparency
|
|
379
|
+
\param colorApply with component is affect (red, green, blue)
|
|
380
|
+
\param intensity value for intensity
|
|
381
|
+
*/
|
|
382
|
+
void setColorIntensity(u8 colorApply, u8 intensity);
|
|
383
|
+
|
|
384
|
+
/*! \fn setPalette(palette, paletteEntry, paletteSize)
|
|
385
|
+
\brief Change a palette in CGRAM.
|
|
386
|
+
\param palette address of palette
|
|
387
|
+
\param paletteEntry palette entry (0..16 for 16 colors mode) of the beginning of each colors
|
|
388
|
+
\param paletteSize size of palette
|
|
389
|
+
*/
|
|
390
|
+
#define setPalette(palette, paletteEntry, paletteSize) dmaCopyCGram(palette, paletteEntry, paletteSize)
|
|
391
|
+
|
|
392
|
+
/*! \fn setPaletteColor(paletteEntry, paletteColor)
|
|
393
|
+
\brief Change a color palette in CGRAM.
|
|
394
|
+
\param paletteEntry palette color number (0..255)
|
|
395
|
+
\param paletteColor RGB5 color
|
|
396
|
+
*/
|
|
397
|
+
#define setPaletteColor(paletteEntry, paletteColor) \
|
|
398
|
+
REG_CGADD = paletteEntry; \
|
|
399
|
+
*CGRAM_PALETTE = (paletteColor)&0xFF; \
|
|
400
|
+
*CGRAM_PALETTE = (paletteColor) >> 8;
|
|
401
|
+
|
|
402
|
+
/*! \fn getPalette(u8 paletteEntry, u8 paletteSize, u16 *paletteColors)
|
|
403
|
+
\brief Get a palette from CGRAM.
|
|
404
|
+
\param paletteEntry 1st entry in palette (0..255 for 16 colors mode)
|
|
405
|
+
\param paletteSize size of palette to get
|
|
406
|
+
\param paletteColors RGB5 color to save all values
|
|
407
|
+
*/
|
|
408
|
+
void getPalette(u8 paletteEntry, u8 paletteSize, u16 *paletteColors);
|
|
409
|
+
|
|
410
|
+
/*! \fn getPaletteColor(u8 paletteEntry, u16 *paletteColor)
|
|
411
|
+
\brief Get a color palette from CGRAM.
|
|
412
|
+
\param paletteEntry palette color number (0..255)
|
|
413
|
+
\param paletteColor RGB5 color to save value
|
|
414
|
+
*/
|
|
415
|
+
void getPaletteColor(u8 paletteEntry, u16 *paletteColor);
|
|
416
|
+
|
|
417
|
+
/*! \fn setMode7(u8 mode)
|
|
418
|
+
\brief Put screen in mode 7 with generic init.
|
|
419
|
+
\param mode Rotation/Scaling Mode Settings (see REG_M7SEL)
|
|
420
|
+
*/
|
|
421
|
+
void setMode7(u8 mode);
|
|
422
|
+
|
|
423
|
+
/*! \fn setMode7Rot(u8 angle)
|
|
424
|
+
\brief Change angle view in mode 7 with matrix transformation.
|
|
425
|
+
\param angle : 0..255 value
|
|
426
|
+
*/
|
|
427
|
+
void setMode7Rot(u8 angle);
|
|
428
|
+
|
|
429
|
+
/*! \fn setMode7MoveForwardBack(u8 z8)
|
|
430
|
+
\brief Change perspective view forward/backward in mode 7 without changing matrix.
|
|
431
|
+
\param z8 : 0..255 value
|
|
432
|
+
*/
|
|
433
|
+
void setMode7MoveForwardBack(u8 z8);
|
|
434
|
+
|
|
435
|
+
/*! \fn setMode7MoveLeftRight(u8 z8)
|
|
436
|
+
\brief Change perspective view left/right in mode 7 without changing matrix.
|
|
437
|
+
\param z8 : 0..255 value
|
|
438
|
+
*/
|
|
439
|
+
void setMode7MoveLeftRight(u8 z8);
|
|
440
|
+
|
|
441
|
+
/*! \fn setMode7Angle(u8 angle)
|
|
442
|
+
\brief Change angle view in mode 7 without changing matrix.
|
|
443
|
+
\param angle : 0..255 value
|
|
444
|
+
*/
|
|
445
|
+
void setMode7Angle(u8 angle);
|
|
446
|
+
|
|
447
|
+
/*! \fn setMode7Scale(u16 xscale, u16 yscale)
|
|
448
|
+
\brief Change scaling effect of screen in mode 7.
|
|
449
|
+
\param xscale : scaling for x
|
|
450
|
+
\param yscale : scaling for y
|
|
451
|
+
*/
|
|
452
|
+
void setMode7Scale(u16 xscale, u16 yscale);
|
|
453
|
+
|
|
454
|
+
/*! \fn getFPScounter(void)
|
|
455
|
+
\brief Return number of frames per second.
|
|
456
|
+
\return unsigned short of the current frame per second counter
|
|
457
|
+
*/
|
|
458
|
+
unsigned short getFPScounter(void);
|
|
459
|
+
|
|
460
|
+
/*! \fn showFPScounter(void)
|
|
461
|
+
\brief Show on current text BG, at location 1,1 the number of frames per second.
|
|
462
|
+
*/
|
|
463
|
+
void showFPScounter(void);
|
|
464
|
+
|
|
465
|
+
#endif // SNES_VIDEO_INCLUDE
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2012-2024
|
|
4
|
+
|
|
5
|
+
This software is provided 'as-is', without any express or implied
|
|
6
|
+
warranty. In no event will the authors be held liable for any
|
|
7
|
+
damages arising from the use of this software.
|
|
8
|
+
|
|
9
|
+
Permission is granted to anyone to use this software for any
|
|
10
|
+
purpose, including commercial applications, and to alter it and
|
|
11
|
+
redistribute it freely, subject to the following restrictions:
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
1. The origin of this software must not be misrepresented; you
|
|
15
|
+
must not claim that you wrote the original software. If you use
|
|
16
|
+
this software in a product, an acknowledgment in the product
|
|
17
|
+
documentation would be appreciated but is not required.
|
|
18
|
+
|
|
19
|
+
2. Altered source versions must be plainly marked as such, and
|
|
20
|
+
must not be misrepresented as being the original software.
|
|
21
|
+
|
|
22
|
+
3. This notice may not be removed or altered from any source
|
|
23
|
+
distribution.
|
|
24
|
+
|
|
25
|
+
---------------------------------------------------------------------------------*/
|
|
26
|
+
/*! \file snes.h
|
|
27
|
+
\brief the master include file for snes applications.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/*!
|
|
31
|
+
\mainpage PVSnesLib Documentation
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
\section intro Introduction
|
|
35
|
+
Welcome to the PVSnesLib reference documentation.
|
|
36
|
+
|
|
37
|
+
\section video_2D_api 2D engine API
|
|
38
|
+
- \ref video.h "General video"
|
|
39
|
+
- \ref background.h "2D Background Layers"
|
|
40
|
+
- \ref lzss.h "LZ decompression routine"
|
|
41
|
+
- \ref pixel.h "Pixel mode management"
|
|
42
|
+
- \ref sprite.h "2D Sprites"
|
|
43
|
+
|
|
44
|
+
\section audio_api Audio API
|
|
45
|
+
- \ref sound.h "Mod tracker and Sound Engine"
|
|
46
|
+
|
|
47
|
+
\section memory_api Memory
|
|
48
|
+
- \ref dma.h "Direct Memory Access"
|
|
49
|
+
|
|
50
|
+
\section system_api System
|
|
51
|
+
- \ref snestypes.h "Custom SNES types"
|
|
52
|
+
- \ref interrupt.h "Interrupts"
|
|
53
|
+
|
|
54
|
+
\section user_io_api User Input/output
|
|
55
|
+
- \ref input.h "Keypad"
|
|
56
|
+
- \ref console.h "Console and Debug Printing"
|
|
57
|
+
|
|
58
|
+
\section engine_api Engine API functions
|
|
59
|
+
- \ref object.h "Objects management"
|
|
60
|
+
- \ref map.h "map management"
|
|
61
|
+
|
|
62
|
+
\section misc_api Miscellaneous functions
|
|
63
|
+
- \ref scores.h "Scoring management"
|
|
64
|
+
|
|
65
|
+
\section external_links Useful links
|
|
66
|
+
- <a href="https://github.com/alekmaul/pvsneslib/wiki">PVSnesLib wiki</a>
|
|
67
|
+
- <a href="https://problemkaputt.de/fullsnes.htm">SNES hardware specifications documentation.</a>
|
|
68
|
+
- <a href="http://code.google.com/p/snes-sdk/">SNES Sdk from Ulrich Hecht.</a>
|
|
69
|
+
|
|
70
|
+
\section special_thanks Special Thanks
|
|
71
|
+
- <a href="http://shiru.untergrund.net/">shiru for some source code and sound tools, which are parts of PVSnesLib.</a>
|
|
72
|
+
- <a href="http://jiggawatt.org/badc0de/index.html">mic_ for some source code examples, parts of PVSnesLib are from them.</a>
|
|
73
|
+
- <a href="http://snes.mukunda.com/">mukunda for snesmod source code. </a>
|
|
74
|
+
- Kung Fu Furby for help on Snesmod conversion to PVSnesLib.
|
|
75
|
+
- <a href="http://code.google.com/p/neo-myth-menu/">Neoflash Menu google code. </a>
|
|
76
|
+
- <a href="http://www.devkitpro.org/">Devkitpro team for pvsneslib structure (lib, makefile, examples, and so on ...). </a>
|
|
77
|
+
- <a href="https://github.com/undisbeliever/castle_platformer">undisbeliever for his great platform code example on github. </a>
|
|
78
|
+
- <a href="https://github.com/DigiDwrf">digidwrf for fastrom / hirom support, mouse and superscope support. </a>
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
// adding the example page.
|
|
82
|
+
/*!
|
|
83
|
+
<!-- EXAMPLES -->
|
|
84
|
+
<!-- hello world -->
|
|
85
|
+
\example hello_world/src/hello_world.c
|
|
86
|
+
|
|
87
|
+
<!-- backgrounds -->
|
|
88
|
+
\example graphics/Backgrounds/Mode0/Mode0.c
|
|
89
|
+
\example graphics/Backgrounds/Mode1/Mode1.c
|
|
90
|
+
\example graphics/Backgrounds/Mode1BG3HighPriority/Mode1BG3HighPriority.c
|
|
91
|
+
\example graphics/Backgrounds/Mode1ContinuosScroll/Mode1ContinuosScroll.c
|
|
92
|
+
\example graphics/Backgrounds/Mode1LZ77/Mode1LZ77.c
|
|
93
|
+
\example graphics/Backgrounds/Mode1MixedScroll/Mode1MixedScroll.c
|
|
94
|
+
\example graphics/Backgrounds/Mode1Png/Mode1.c
|
|
95
|
+
\example graphics/Backgrounds/Mode1Scroll/Mode1Scroll.c
|
|
96
|
+
\example graphics/Backgrounds/Mode3/Mode3.c
|
|
97
|
+
\example graphics/Backgrounds/Mode5/Mode5.c
|
|
98
|
+
\example graphics/Backgrounds/Mode7/Mode7.c
|
|
99
|
+
\example graphics/Backgrounds/Mode7Perspective/Mode7Perspective.c
|
|
100
|
+
|
|
101
|
+
<!-- effects -->
|
|
102
|
+
\example graphics/Effects/Fading/Fading.c
|
|
103
|
+
\example graphics/Effects/GradientColors/GradientColors.c
|
|
104
|
+
\example graphics/Effects/HDMAGradient/HDMAGradient.c
|
|
105
|
+
\example graphics/Effects/MosaicShading/MosaicShading.c
|
|
106
|
+
\example graphics/Effects/ParallaxScrolling/ParallaxScrolling.c
|
|
107
|
+
\example graphics/Effects/Transparency/Transparency.c
|
|
108
|
+
\example graphics/Effects/TransparentWindow/src/main.c
|
|
109
|
+
\example graphics/Effects/Waves/Waves.c
|
|
110
|
+
\example graphics/Effects/Window/Window.c
|
|
111
|
+
|
|
112
|
+
<!-- sprites -->
|
|
113
|
+
\example graphics/Sprites/AnimatedSprite/AnimatedSprite.c
|
|
114
|
+
\example graphics/Sprites/DynamicEngineMetaSprite/DynamicEngineMetaSprite.c
|
|
115
|
+
\example graphics/Sprites/DynamicEngineSprite/DynamicEngineSprite.c
|
|
116
|
+
\example graphics/Sprites/DynamicSprite/DynamicSprite.c
|
|
117
|
+
\example graphics/Sprites/ObjectSize/ObjectSize.c
|
|
118
|
+
\example graphics/Sprites/SimpleSprite/SimpleSprite.c
|
|
119
|
+
|
|
120
|
+
<!-- palettes -->
|
|
121
|
+
\example graphics/Palette/GetColors/GetColors.c
|
|
122
|
+
|
|
123
|
+
<!-- inputs -->
|
|
124
|
+
\example input/controller/controller.c
|
|
125
|
+
\example input/mouse/mouse.c
|
|
126
|
+
\example input/multiplay5/multiplay5.c
|
|
127
|
+
\example input/superscope/superscope.c
|
|
128
|
+
|
|
129
|
+
<!-- timing -->
|
|
130
|
+
\example timer/timer.c
|
|
131
|
+
|
|
132
|
+
<!-- games -->
|
|
133
|
+
\example games/likemario/LikeMario.c
|
|
134
|
+
\example games/breakout/breakout.c
|
|
135
|
+
|
|
136
|
+
<!-- audio -->
|
|
137
|
+
\example audio/effects/effects.c
|
|
138
|
+
\example audio/effectsandmusic/effectsandmusic.c
|
|
139
|
+
\example audio/music/Music.c
|
|
140
|
+
\example audio/tada/Tada.c
|
|
141
|
+
\example audio/musicGreaterThan32k/musicGreaterThan32k.c
|
|
142
|
+
|
|
143
|
+
<!-- maps -->
|
|
144
|
+
\example maps/mapscroll/mapscroll.c
|
|
145
|
+
\example maps/tiled/tiled.c
|
|
146
|
+
|
|
147
|
+
<!-- objects -->
|
|
148
|
+
\example objects/mapandobjects/mapandobjects.c
|
|
149
|
+
\example objects/moveobjects/moveobjects.c
|
|
150
|
+
\example objects/nogravityobject/nogravityobjects.c
|
|
151
|
+
|
|
152
|
+
<!-- debugging -->
|
|
153
|
+
\example debug/debug.c
|
|
154
|
+
\example breakpoints/src/breakpoints.c
|
|
155
|
+
|
|
156
|
+
<!-- random display -->
|
|
157
|
+
\example random/random.c
|
|
158
|
+
|
|
159
|
+
<!-- sram -->
|
|
160
|
+
\example sram/sramoffset/sramoffset.c
|
|
161
|
+
\example sram/sramsimple/sram.c
|
|
162
|
+
|
|
163
|
+
<!-- scoring -->
|
|
164
|
+
\example scoring/scoring.c
|
|
165
|
+
|
|
166
|
+
<!-- region test, console type and rom type -->
|
|
167
|
+
\example testregion/testregion.c
|
|
168
|
+
\example typeconsole/src/pal_ntsc.c
|
|
169
|
+
\example memory_mapping/src/memory_mapping.c
|
|
170
|
+
|
|
171
|
+
*/
|
|
172
|
+
|
|
173
|
+
#ifndef SNES_INCLUDE
|
|
174
|
+
#define SNES_INCLUDE
|
|
175
|
+
|
|
176
|
+
#include "snes/libversion.h"
|
|
177
|
+
|
|
178
|
+
#include "snes/background.h"
|
|
179
|
+
#include "snes/console.h"
|
|
180
|
+
#include "snes/dma.h"
|
|
181
|
+
#include "snes/input.h"
|
|
182
|
+
#include "snes/interrupt.h"
|
|
183
|
+
#include "snes/map.h"
|
|
184
|
+
#include "snes/object.h"
|
|
185
|
+
#include "snes/scores.h"
|
|
186
|
+
#include "snes/sound.h"
|
|
187
|
+
#include "snes/sprite.h"
|
|
188
|
+
#include "snes/video.h"
|
|
189
|
+
|
|
190
|
+
#endif // SNES_INCLUDE
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#ifndef _STDARG_H
|
|
2
|
+
#define _STDARG_H
|
|
3
|
+
|
|
4
|
+
typedef char *va_list;
|
|
5
|
+
typedef va_list __builtin_va_list;
|
|
6
|
+
|
|
7
|
+
#ifdef __65816__
|
|
8
|
+
#define va_start(ap, last) ap = ((char *)&(last)) + sizeof(last)
|
|
9
|
+
#define va_arg(ap, type) (ap += sizeof(type), *(type *)(ap - sizeof(type)))
|
|
10
|
+
#define va_end(ap)
|
|
11
|
+
#define va_copy(aq, ap) ((aq) = (ap))
|
|
12
|
+
#else
|
|
13
|
+
/* only correct for i386 */
|
|
14
|
+
#define va_start(ap, last) ap = ((char *)&(last)) + ((sizeof(last) + 3) & ~3)
|
|
15
|
+
#define va_arg(ap, type) (ap += (sizeof(type) + 3) & ~3, *(type *)(ap - ((sizeof(type) + 3) & ~3)))
|
|
16
|
+
#define va_end(ap)
|
|
17
|
+
|
|
18
|
+
/* fix a buggy dependency on GCC in libio.h */
|
|
19
|
+
typedef va_list __gnuc_va_list;
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
#define __builtin_va_start va_start
|
|
23
|
+
#define __builtin_va_arg va_arg
|
|
24
|
+
#define __builtin_va_end va_end
|
|
25
|
+
|
|
26
|
+
#define _VA_LIST_DEFINED
|
|
27
|
+
|
|
28
|
+
#endif
|