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,1136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* \file vdp_tile.h
|
|
3
|
+
* \brief VDP General Tile / Tilemap operations
|
|
4
|
+
* \author Stephane Dallongeville
|
|
5
|
+
* \date 08/2011
|
|
6
|
+
*
|
|
7
|
+
* This unit provides methods to manipulate VDP tiles and tilemap :<br>
|
|
8
|
+
* - upload tiles to VDP memory<br>
|
|
9
|
+
* - upload tiles to VDP memory from bitmap data<br>
|
|
10
|
+
* - clear / fill / set tile map data<br>
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
#ifndef _VDP_TILE_H_
|
|
14
|
+
#define _VDP_TILE_H_
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
#include "vdp.h"
|
|
18
|
+
#include "dma.h"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* \brief
|
|
23
|
+
* Bit shift for the tile priority attribute in tilemap data.
|
|
24
|
+
*/
|
|
25
|
+
#define TILE_ATTR_PRIORITY_SFT 15
|
|
26
|
+
/**
|
|
27
|
+
* \brief
|
|
28
|
+
* Bit shift for the tile palette attribute in tilemap data.
|
|
29
|
+
*/
|
|
30
|
+
#define TILE_ATTR_PALETTE_SFT 13
|
|
31
|
+
/**
|
|
32
|
+
* \brief
|
|
33
|
+
* Bit shift for the tile V flip attribute in tilemap data.
|
|
34
|
+
*/
|
|
35
|
+
#define TILE_ATTR_VFLIP_SFT 12
|
|
36
|
+
/**
|
|
37
|
+
* \brief
|
|
38
|
+
* Bit shift for the tile H flip attribute in tilemap data.
|
|
39
|
+
*/
|
|
40
|
+
#define TILE_ATTR_HFLIP_SFT 11
|
|
41
|
+
/**
|
|
42
|
+
* \brief
|
|
43
|
+
* Mask for the tile priority attribute in tilemap data.
|
|
44
|
+
*/
|
|
45
|
+
#define TILE_ATTR_PRIORITY_MASK (1 << TILE_ATTR_PRIORITY_SFT)
|
|
46
|
+
/**
|
|
47
|
+
* \brief
|
|
48
|
+
* Mask for the tile palette attribute in tilemap data.
|
|
49
|
+
*/
|
|
50
|
+
#define TILE_ATTR_PALETTE_MASK (3 << TILE_ATTR_PALETTE_SFT)
|
|
51
|
+
/**
|
|
52
|
+
* \brief
|
|
53
|
+
* Mask for the tile V flip attribute in tilemap data.
|
|
54
|
+
*/
|
|
55
|
+
#define TILE_ATTR_VFLIP_MASK (1 << TILE_ATTR_VFLIP_SFT)
|
|
56
|
+
/**
|
|
57
|
+
* \brief
|
|
58
|
+
* Mask for the tile H flip attribute in tilemap data.
|
|
59
|
+
*/
|
|
60
|
+
#define TILE_ATTR_HFLIP_MASK (1 << TILE_ATTR_HFLIP_SFT)
|
|
61
|
+
/**
|
|
62
|
+
* \brief
|
|
63
|
+
* Mask for the tile attributes (priority, palette and flip) in tilemap data.
|
|
64
|
+
*/
|
|
65
|
+
#define TILE_ATTR_MASK (TILE_ATTR_PRIORITY_MASK | TILE_ATTR_PALETTE_MASK | TILE_ATTR_VFLIP_MASK | TILE_ATTR_HFLIP_MASK)
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* \brief
|
|
69
|
+
* Encode tile attributes for tilemap data.
|
|
70
|
+
*
|
|
71
|
+
* \param pal
|
|
72
|
+
* Palette index
|
|
73
|
+
* \param prio
|
|
74
|
+
* Tile priority
|
|
75
|
+
* \param flipV
|
|
76
|
+
* Vertical flip
|
|
77
|
+
* \param flipH
|
|
78
|
+
* Horizontal flip
|
|
79
|
+
*/
|
|
80
|
+
#define TILE_ATTR(pal, prio, flipV, flipH) (((flipH) << TILE_ATTR_HFLIP_SFT) + ((flipV) << TILE_ATTR_VFLIP_SFT) + ((pal) << TILE_ATTR_PALETTE_SFT) + ((prio) << TILE_ATTR_PRIORITY_SFT))
|
|
81
|
+
/**
|
|
82
|
+
* \brief
|
|
83
|
+
* Encode tile attributes for tilemap data.
|
|
84
|
+
*
|
|
85
|
+
* \param pal
|
|
86
|
+
* Palette index
|
|
87
|
+
* \param prio
|
|
88
|
+
* Tile priority
|
|
89
|
+
* \param flipV
|
|
90
|
+
* Vertical flip
|
|
91
|
+
* \param flipH
|
|
92
|
+
* Horizontal flip
|
|
93
|
+
* \param index
|
|
94
|
+
* Tile index
|
|
95
|
+
*/
|
|
96
|
+
#define TILE_ATTR_FULL(pal, prio, flipV, flipH, index) (((flipH) << TILE_ATTR_HFLIP_SFT) + ((flipV) << TILE_ATTR_VFLIP_SFT) + ((pal) << TILE_ATTR_PALETTE_SFT) + ((prio) << TILE_ATTR_PRIORITY_SFT) + (index))
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* \brief
|
|
100
|
+
* Tile set structure which contains tiles definition.<br>
|
|
101
|
+
* Use the unpackTileSet() method to unpack if compression is enabled.
|
|
102
|
+
*
|
|
103
|
+
* \param compression
|
|
104
|
+
* compression type, accepted values:<br>
|
|
105
|
+
* <b>COMPRESSION_NONE</b><br>
|
|
106
|
+
* <b>COMPRESSION_APLIB</b><br>
|
|
107
|
+
* <b>COMPRESSION_LZ4W</b><br>
|
|
108
|
+
* \param numTile
|
|
109
|
+
* number of tile in the <i>tiles</i> buffer.
|
|
110
|
+
* \param tiles
|
|
111
|
+
* Tiles data (packed or not depending compression field).
|
|
112
|
+
*/
|
|
113
|
+
typedef struct
|
|
114
|
+
{
|
|
115
|
+
u16 compression;
|
|
116
|
+
u16 numTile;
|
|
117
|
+
u32 *tiles;
|
|
118
|
+
} TileSet;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* \brief
|
|
122
|
+
* TileMap structure which contains tilemap background definition.<br>
|
|
123
|
+
* Use the unpackTileMap() method to unpack if compression is enabled.
|
|
124
|
+
* \param compression
|
|
125
|
+
* compression type, accepted values:<br>
|
|
126
|
+
* <b>COMPRESSION_NONE</b><br>
|
|
127
|
+
* <b>COMPRESSION_APLIB</b><br>
|
|
128
|
+
* <b>COMPRESSION_LZ4W</b><br>
|
|
129
|
+
* \param w
|
|
130
|
+
* tilemap width in tile.
|
|
131
|
+
* \param h
|
|
132
|
+
* tilemap height in tile.
|
|
133
|
+
* \param tilemap
|
|
134
|
+
* Tilemap data.
|
|
135
|
+
*/
|
|
136
|
+
typedef struct
|
|
137
|
+
{
|
|
138
|
+
u16 compression;
|
|
139
|
+
u16 w;
|
|
140
|
+
u16 h;
|
|
141
|
+
u16 *tilemap;
|
|
142
|
+
} TileMap;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* \brief
|
|
146
|
+
* Return the VRAM tilemap address for the specified plane position
|
|
147
|
+
*
|
|
148
|
+
* \param plane
|
|
149
|
+
* Plane we want to get the VRAM tilemap address for a given position.<br>
|
|
150
|
+
* Accepted values are:<br>
|
|
151
|
+
* - BG_A<br>
|
|
152
|
+
* - BG_B<br>
|
|
153
|
+
* - WINDOW<br>
|
|
154
|
+
* \param x
|
|
155
|
+
* X position (in tile).
|
|
156
|
+
* \param y
|
|
157
|
+
* Y position (in tile).
|
|
158
|
+
*/
|
|
159
|
+
u16 VDP_getPlaneAddress(VDPPlane plane, u16 x, u16 y);
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* \brief
|
|
163
|
+
* Load tile data (pattern) in VRAM.
|
|
164
|
+
*
|
|
165
|
+
* \param data
|
|
166
|
+
* Pointer to tile data.
|
|
167
|
+
* \param index
|
|
168
|
+
* Tile index where start tile data load (use TILE_USER_INDEX as base user index).
|
|
169
|
+
* \param num
|
|
170
|
+
* Number of tile to load.
|
|
171
|
+
* \param tm
|
|
172
|
+
* Transfer method.<br>
|
|
173
|
+
* Accepted values are:<br>
|
|
174
|
+
* - CPU<br>
|
|
175
|
+
* - DMA<br>
|
|
176
|
+
* - DMA_QUEUE<br>
|
|
177
|
+
* - DMA_QUEUE_COPY
|
|
178
|
+
*
|
|
179
|
+
* Transfert rate:<br>
|
|
180
|
+
* ~90 bytes per scanline in software (during blanking)<br>
|
|
181
|
+
* ~190 bytes per scanline in hardware (during blanking)
|
|
182
|
+
*/
|
|
183
|
+
void VDP_loadTileData(const u32 *data, u16 index, u16 num, TransferMethod tm);
|
|
184
|
+
/**
|
|
185
|
+
* \brief
|
|
186
|
+
* Load tile data (pattern) in VRAM.
|
|
187
|
+
*
|
|
188
|
+
* \param tileset
|
|
189
|
+
* Pointer to TileSet structure.<br>
|
|
190
|
+
* The TileSet is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
191
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
192
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
193
|
+
* \param index
|
|
194
|
+
* Tile index where start tile data load (use TILE_USER_INDEX as base user index).
|
|
195
|
+
* \param tm
|
|
196
|
+
* Transfer method.<br>
|
|
197
|
+
* Accepted values are:<br>
|
|
198
|
+
* - CPU<br>
|
|
199
|
+
* - DMA<br>
|
|
200
|
+
* - DMA_QUEUE<br>
|
|
201
|
+
* - DMA_QUEUE_COPY
|
|
202
|
+
* \return
|
|
203
|
+
* FALSE if there is not enough memory to unpack the specified TileSet (only if compression was enabled).
|
|
204
|
+
*
|
|
205
|
+
* Transfert rate:<br>
|
|
206
|
+
* ~90 bytes per scanline in software (during blanking)<br>
|
|
207
|
+
* ~190 bytes per scanline in hardware (during blanking)
|
|
208
|
+
*/
|
|
209
|
+
bool VDP_loadTileSet(const TileSet *tileset, u16 index, TransferMethod tm);
|
|
210
|
+
/**
|
|
211
|
+
* \brief
|
|
212
|
+
* Load a subset of tile data (pattern) in VRAM. Useful to only reload a part of a tileSet if it;s been overwritten
|
|
213
|
+
* or in case of streaming maps, to get the required tiles out of the full tile atlas
|
|
214
|
+
*
|
|
215
|
+
* \param tileset
|
|
216
|
+
* Pointer to TileSet structure.<br>
|
|
217
|
+
* The TileSet is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
218
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
219
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
220
|
+
* \param index
|
|
221
|
+
* Tile index where start tile data load (use TILE_USER_INDEX as base user index).
|
|
222
|
+
* \param fromTile
|
|
223
|
+
* Start tile index to be loaded from the set.
|
|
224
|
+
* \param count
|
|
225
|
+
* Number of tiles to Load.
|
|
226
|
+
* \param tm
|
|
227
|
+
* Transfer method.<br>
|
|
228
|
+
* Accepted values are:<br>
|
|
229
|
+
* - CPU<br>
|
|
230
|
+
* - DMA<br>
|
|
231
|
+
* - DMA_QUEUE<br>
|
|
232
|
+
* - DMA_QUEUE_COPY
|
|
233
|
+
* \return
|
|
234
|
+
* FALSE if there is not enough memory to unpack the specified TileSet (only if compression was enabled).
|
|
235
|
+
*
|
|
236
|
+
* Transfert rate:<br>
|
|
237
|
+
* ~90 bytes per scanline in software (during blanking)<br>
|
|
238
|
+
* ~190 bytes per scanline in hardware (during blanking)
|
|
239
|
+
*/
|
|
240
|
+
bool VDP_loadTileSetEx(const TileSet *tileset, u16 index, u16 fromTile, u16 count, TransferMethod tm);
|
|
241
|
+
/**
|
|
242
|
+
* \brief
|
|
243
|
+
* Load font tile data in VRAM.<br>
|
|
244
|
+
* Note that you should prefer the VDP_loadFont(..) method to this one (easier to use).
|
|
245
|
+
*
|
|
246
|
+
* \param font
|
|
247
|
+
* Pointer to font tile data.
|
|
248
|
+
* \param length
|
|
249
|
+
* Number of characters of the font (max = FONT_LENGTH).
|
|
250
|
+
* \param tm
|
|
251
|
+
* Transfer method.<br>
|
|
252
|
+
* Accepted values are:<br>
|
|
253
|
+
* - CPU<br>
|
|
254
|
+
* - DMA<br>
|
|
255
|
+
* - DMA_QUEUE<br>
|
|
256
|
+
* - DMA_QUEUE_COPY
|
|
257
|
+
*
|
|
258
|
+
* This fonction permits to replace system font by user font.<br>
|
|
259
|
+
* The font tile data are loaded to TILE_FONT_INDEX and can contains FONT_LENGTH characters at max.<br>
|
|
260
|
+
* Each character should fit in one tile (8x8 pixels bloc).<br>
|
|
261
|
+
* See also VDP_loadFont(..) and VDP_loadTileData(..)
|
|
262
|
+
*/
|
|
263
|
+
void VDP_loadFontData(const u32 *font, u16 length, TransferMethod tm);
|
|
264
|
+
/**
|
|
265
|
+
* \brief
|
|
266
|
+
* Load font from the specified <i>Font</i> tileset in VRAM.
|
|
267
|
+
*
|
|
268
|
+
* \param font
|
|
269
|
+
* TileSet containing the font (should be 16*6 characters font, see SGDK default font at <i>res\image\font_default.png</i>).<br>
|
|
270
|
+
* The TileSet is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
271
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
272
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
273
|
+
* \param tm
|
|
274
|
+
* Transfer method.<br>
|
|
275
|
+
* Accepted values are:<br>
|
|
276
|
+
* - CPU<br>
|
|
277
|
+
* - DMA<br>
|
|
278
|
+
* - DMA_QUEUE<br>
|
|
279
|
+
* - DMA_QUEUE_COPY
|
|
280
|
+
* \return
|
|
281
|
+
* FALSE if there is not enough memory to unpack the specified font (only if compression was enabled).
|
|
282
|
+
*
|
|
283
|
+
* This fonction permits to replace system font by user font.<br>
|
|
284
|
+
* The font tile data are loaded to TILE_FONT_INDEX and can contains FONT_LENGTH characters at max.<br>
|
|
285
|
+
* Each character should fit in one tile (8x8 pixels bloc).<br>
|
|
286
|
+
* See also VDP_loadFontData(..)
|
|
287
|
+
*/
|
|
288
|
+
bool VDP_loadFont(const TileSet *font, TransferMethod tm);
|
|
289
|
+
/**
|
|
290
|
+
* \brief
|
|
291
|
+
* Load the default <i>Font</i> tileset in VRAM.
|
|
292
|
+
*
|
|
293
|
+
* \param tm
|
|
294
|
+
* Transfer method.<br>
|
|
295
|
+
* Accepted values are:<br>
|
|
296
|
+
* - CPU<br>
|
|
297
|
+
* - DMA<br>
|
|
298
|
+
* - DMA_QUEUE<br>
|
|
299
|
+
* - DMA_QUEUE_COPY
|
|
300
|
+
* \return
|
|
301
|
+
* FALSE if there is not enough memory to unpack the specified font (only if compression was enabled).
|
|
302
|
+
*
|
|
303
|
+
* The font tile data are loaded to TILE_FONT_INDEX and can contains FONT_LENGTH characters at max.<br>
|
|
304
|
+
* Each character should fit in one tile (8x8 pixels bloc).<br>
|
|
305
|
+
* See also VDP_loadFontData(..)
|
|
306
|
+
*/
|
|
307
|
+
bool VDP_loadDefaultFont(TransferMethod tm);
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* \brief
|
|
311
|
+
* Load 4bpp bitmap tile data in VRAM.
|
|
312
|
+
*
|
|
313
|
+
* \param data
|
|
314
|
+
* Pointer to 4bpp bitmap tile data.
|
|
315
|
+
* \param index
|
|
316
|
+
* Tile index where start tile data load (use TILE_USER_INDEX as base user index).
|
|
317
|
+
* \param w
|
|
318
|
+
* Width of bitmap region to load (in tile).
|
|
319
|
+
* \param h
|
|
320
|
+
* Heigh of bitmap region to load (in tile).
|
|
321
|
+
* \param bmp_w
|
|
322
|
+
* Width of bitmap (in tile), it can differ from 'w' parameter.
|
|
323
|
+
*
|
|
324
|
+
* This function does "on the fly" 4bpp bitmap conversion to tile data and transfert them to VRAM.<br>
|
|
325
|
+
* It's very helpful when you use bitmap images but the conversion eats sometime so you should use it only for static screen only.<br>
|
|
326
|
+
* For "in-game" condition you should use VDP_loadTileData() method with converted tile data.<br>
|
|
327
|
+
* See also VDP_loadBMPTileDataEx().
|
|
328
|
+
*/
|
|
329
|
+
void VDP_loadBMPTileData(const u32 *data, u16 index, u16 w, u16 h, u16 bmp_w);
|
|
330
|
+
/**
|
|
331
|
+
* \brief
|
|
332
|
+
* Load 4bpp bitmap tile data in VRAM.
|
|
333
|
+
*
|
|
334
|
+
* \param data
|
|
335
|
+
* Pointer to 4bpp bitmap tile data.
|
|
336
|
+
* \param index
|
|
337
|
+
* Tile index where start tile data load (use TILE_USER_INDEX as base user index).
|
|
338
|
+
* \param x
|
|
339
|
+
* X start position of bitmap region to load (in tile).
|
|
340
|
+
* \param y
|
|
341
|
+
* Y start position of bitmap region to load (in tile).
|
|
342
|
+
* \param w
|
|
343
|
+
* Width of bitmap region to load (in tile).
|
|
344
|
+
* \param h
|
|
345
|
+
* Heigh of bitmap region to load (in tile).
|
|
346
|
+
* \param bmp_w
|
|
347
|
+
* Width of bitmap (in tile), it can differ from 'w' parameter.
|
|
348
|
+
*
|
|
349
|
+
* This function does "on the fly" 4bpp bitmap conversion to tile data and transfert them to VRAM.<br>
|
|
350
|
+
* It's very helpful when you use bitmap images but the conversion eats sometime so you should use it only for static screen only.<br>
|
|
351
|
+
* For "in-game" condition you should use VDP_loadTileData() method with converted tile data.
|
|
352
|
+
* See also VDP_loadBMPTileData()
|
|
353
|
+
*/
|
|
354
|
+
void VDP_loadBMPTileDataEx(const u32 *data, u16 index, u16 x, u16 y, u16 w, u16 h, u16 bmp_w);
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* \brief
|
|
358
|
+
* Fill tile data in VRAM.
|
|
359
|
+
*
|
|
360
|
+
* \param value
|
|
361
|
+
* Value (byte) used to fill VRAM tile data.
|
|
362
|
+
* \param index
|
|
363
|
+
* Tile index where start tile data fill (use TILE_USER_INDEX as base user index).
|
|
364
|
+
* \param num
|
|
365
|
+
* Number of tile to fill.
|
|
366
|
+
* \param wait
|
|
367
|
+
* Wait the operation to complete when set to TRUE otherwise it returns immediately
|
|
368
|
+
* but then you will require to wait for DMA completion (#DMA_waitCompletion()) before accessing the VDP.
|
|
369
|
+
*
|
|
370
|
+
* This function is generally used to clear tile data in VRAM.
|
|
371
|
+
*/
|
|
372
|
+
void VDP_fillTileData(u8 value, u16 index, u16 num, bool wait);
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* \brief
|
|
376
|
+
* Clear tilemap.
|
|
377
|
+
*
|
|
378
|
+
* \param planeAddr
|
|
379
|
+
* Plane address where we want to clear tilemap.<br>
|
|
380
|
+
* Accepted values are:<br>
|
|
381
|
+
* - VDP_BG_A<br>
|
|
382
|
+
* - VDP_BG_B<br>
|
|
383
|
+
* - VDP_WINDOW<br>
|
|
384
|
+
* \param ind
|
|
385
|
+
* Tile index where to start clear.
|
|
386
|
+
* \param num
|
|
387
|
+
* Number of tile to clear.
|
|
388
|
+
* \param wait
|
|
389
|
+
* Wait the operation to complete when set to TRUE otherwise it returns immediately
|
|
390
|
+
* but then you will require to wait for DMA completion (#DMA_waitCompletion()) before accessing the VDP.
|
|
391
|
+
*
|
|
392
|
+
* \see VDP_clearTileMapRect()
|
|
393
|
+
* \see VDP_fillTileMap()
|
|
394
|
+
*/
|
|
395
|
+
void VDP_clearTileMap(u16 planeAddr, u16 ind, u16 num, bool wait);
|
|
396
|
+
/**
|
|
397
|
+
* \brief
|
|
398
|
+
* Fill tilemap.
|
|
399
|
+
*
|
|
400
|
+
* \param planeAddr
|
|
401
|
+
* Plane address where we want to fill tilemap.<br>
|
|
402
|
+
* Accepted values are:<br>
|
|
403
|
+
* - VDP_BG_A<br>
|
|
404
|
+
* - VDP_BG_B<br>
|
|
405
|
+
* - VDP_WINDOW<br>
|
|
406
|
+
* \param tile
|
|
407
|
+
* Tile attributes (see TILE_ATTR_FULL() and TILE_ATTR() macros).
|
|
408
|
+
* \param ind
|
|
409
|
+
* tile index where to start fill.
|
|
410
|
+
* \param num
|
|
411
|
+
* Number of tile to fill.
|
|
412
|
+
*
|
|
413
|
+
* \see VDP_fillTileMapRect()
|
|
414
|
+
*/
|
|
415
|
+
void VDP_fillTileMap(u16 planeAddr, u16 tile, u16 ind, u16 num);
|
|
416
|
+
/**
|
|
417
|
+
* \brief
|
|
418
|
+
* Set tilemap data at specified index.
|
|
419
|
+
*
|
|
420
|
+
* \param planeAddr
|
|
421
|
+
* Plane address where we want to set tilemap data.<br>
|
|
422
|
+
* Accepted values are:<br>
|
|
423
|
+
* - VDP_BG_A<br>
|
|
424
|
+
* - VDP_BG_B<br>
|
|
425
|
+
* - VDP_WINDOW<br>
|
|
426
|
+
* \param data
|
|
427
|
+
* Tile attributes data (see TILE_ATTR_FULL() and TILE_ATTR() macros).
|
|
428
|
+
* \param ind
|
|
429
|
+
* Tile index where to start to set tilemap data.
|
|
430
|
+
* \param num
|
|
431
|
+
* Number of tile to set.
|
|
432
|
+
* \param vramStep
|
|
433
|
+
* VRAM address increment after each write (default value = 2)
|
|
434
|
+
* \param tm
|
|
435
|
+
* Transfer method.<br>
|
|
436
|
+
* Accepted values are:<br>
|
|
437
|
+
* - CPU<br>
|
|
438
|
+
* - DMA<br>
|
|
439
|
+
* - DMA_QUEUE<br>
|
|
440
|
+
* - DMA_QUEUE_COPY
|
|
441
|
+
*
|
|
442
|
+
* Set the specified tilemap with specified tile attributes values.<br>
|
|
443
|
+
* You can use this method when you are using the 'mapbase' parameter on your resource definition to set the base attributes<br>
|
|
444
|
+
* (palette, priority and base tile index) so you don't need to provide them here.<br>
|
|
445
|
+
* This method is faster than using #VDP_setTileMapDataEx(..) which allow to override base tile attributes though the 'basetile' parameter.
|
|
446
|
+
*
|
|
447
|
+
* \see VDP_setTileMapDataEx().
|
|
448
|
+
* \see VDP_setTileMapDataRect().
|
|
449
|
+
*/
|
|
450
|
+
void VDP_setTileMapData(u16 planeAddr, const u16 *data, u16 ind, u16 num, u16 vramStep, TransferMethod tm);
|
|
451
|
+
/**
|
|
452
|
+
* \brief
|
|
453
|
+
* Set tilemap data at specified index (extended version).
|
|
454
|
+
*
|
|
455
|
+
* \param planeAddr
|
|
456
|
+
* Plane where we want to set tilemap data.<br>
|
|
457
|
+
* Accepted values are:<br>
|
|
458
|
+
* - VDP_BG_A<br>
|
|
459
|
+
* - VDP_BG_B<br>
|
|
460
|
+
* - VDP_WINDOW<br>
|
|
461
|
+
* \param data
|
|
462
|
+
* Tile attributes data (see TILE_ATTR_FULL() and TILE_ATTR() macros).
|
|
463
|
+
* \param basetile
|
|
464
|
+
* Base tile index and flag for tile attributes (see TILE_ATTR_FULL() macro).
|
|
465
|
+
* \param ind
|
|
466
|
+
* Tile index where to start to set tilemap data.
|
|
467
|
+
* \param num
|
|
468
|
+
* Number of tile to set.
|
|
469
|
+
* \param vramStep
|
|
470
|
+
* VRAM address increment after each write (default value = 2).
|
|
471
|
+
*
|
|
472
|
+
* Set the specified tilemap with specified tile attributes values.<br>
|
|
473
|
+
* Unlike #VDP_setTileMapData(..) this method let you to override the base tile attributes (priority, palette and base index)<br>
|
|
474
|
+
* at the expense of more computation time. If you want faster tilemap processing (using #VDP_setTileMapData(..)), you can use<br>
|
|
475
|
+
* the 'mapbase' parameter when declaring your IMAGE resource to set base tile attributes but then you have fixed/static tile allocation.
|
|
476
|
+
*
|
|
477
|
+
* \see VDP_setTileMapData()
|
|
478
|
+
* \see VDP_setTileMapDataRectEx()
|
|
479
|
+
*/
|
|
480
|
+
void VDP_setTileMapDataEx(u16 planeAddr, const u16 *data, u16 basetile, u16 ind, u16 num, u16 vramStep);
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* \brief
|
|
484
|
+
* Set tilemap data (single position).
|
|
485
|
+
*
|
|
486
|
+
* \param plane
|
|
487
|
+
* Plane where we want to set tilemap data.<br>
|
|
488
|
+
* Accepted values are:<br>
|
|
489
|
+
* - BG_A<br>
|
|
490
|
+
* - BG_B<br>
|
|
491
|
+
* - WINDOW<br>
|
|
492
|
+
* \param tile
|
|
493
|
+
* tile attributes (see TILE_ATTR_FULL() and TILE_ATTR() macros).
|
|
494
|
+
* \param x
|
|
495
|
+
* X position (in tile).
|
|
496
|
+
* \param y
|
|
497
|
+
* y position (in tile).
|
|
498
|
+
*
|
|
499
|
+
* Set the specified tilemap position (tilemap wrapping supported) with given tile attributes.
|
|
500
|
+
*/
|
|
501
|
+
void VDP_setTileMapXY(VDPPlane plane, u16 tile, u16 x, u16 y);
|
|
502
|
+
/**
|
|
503
|
+
* \brief
|
|
504
|
+
* Clear specified region of tilemap.
|
|
505
|
+
*
|
|
506
|
+
* \param plane
|
|
507
|
+
* Plane where we want to clear tilemap region.<br>
|
|
508
|
+
* Accepted values are:<br>
|
|
509
|
+
* - BG_A<br>
|
|
510
|
+
* - BG_B<br>
|
|
511
|
+
* - WINDOW<br>
|
|
512
|
+
* \param x
|
|
513
|
+
* Region X start position (in tile).
|
|
514
|
+
* \param y
|
|
515
|
+
* Region Y start position (in tile).
|
|
516
|
+
* \param w
|
|
517
|
+
* Region Width (in tile).
|
|
518
|
+
* \param h
|
|
519
|
+
* Region Heigh (in tile).
|
|
520
|
+
*
|
|
521
|
+
* \see VDP_clearTileMap() (faster method)
|
|
522
|
+
*/
|
|
523
|
+
void VDP_clearTileMapRect(VDPPlane plane, u16 x, u16 y, u16 w, u16 h);
|
|
524
|
+
/**
|
|
525
|
+
* \brief
|
|
526
|
+
* Fill speficied region of tilemap.
|
|
527
|
+
*
|
|
528
|
+
* \param plane
|
|
529
|
+
* Plane where we want to fill tilemap region.<br>
|
|
530
|
+
* Accepted values are:<br>
|
|
531
|
+
* - BG_A<br>
|
|
532
|
+
* - BG_B<br>
|
|
533
|
+
* - WINDOW<br>
|
|
534
|
+
* \param tile
|
|
535
|
+
* tile attributes (see TILE_ATTR_FULL() and TILE_ATTR() macros).
|
|
536
|
+
* \param x
|
|
537
|
+
* Region X start position (in tile).
|
|
538
|
+
* \param y
|
|
539
|
+
* Region Y start position (in tile).
|
|
540
|
+
* \param w
|
|
541
|
+
* Region Width (in tile).
|
|
542
|
+
* \param h
|
|
543
|
+
* Region Heigh (in tile).
|
|
544
|
+
*
|
|
545
|
+
* Fill the specified tilemap region with specified tile attributes value.
|
|
546
|
+
*
|
|
547
|
+
* \see VDP_fillTileMap() (faster method)
|
|
548
|
+
* \see VDP_fillTileMapRectInc()
|
|
549
|
+
*/
|
|
550
|
+
void VDP_fillTileMapRect(VDPPlane plane, u16 tile, u16 x, u16 y, u16 w, u16 h);
|
|
551
|
+
/**
|
|
552
|
+
* \brief
|
|
553
|
+
* Fill tilemap with index auto increment at specified region.
|
|
554
|
+
*
|
|
555
|
+
* \param plane
|
|
556
|
+
* Plane where we want to fill tilemap region.<br>
|
|
557
|
+
* Accepted values are:<br>
|
|
558
|
+
* - BG_A<br>
|
|
559
|
+
* - BG_B<br>
|
|
560
|
+
* - WINDOW<br>
|
|
561
|
+
* \param basetile
|
|
562
|
+
* Base tile attributes (see TILE_ATTR_FULL() and TILE_ATTR() macros).
|
|
563
|
+
* \param x
|
|
564
|
+
* Region X start position (in tile).
|
|
565
|
+
* \param y
|
|
566
|
+
* Region Y start position (in tile).
|
|
567
|
+
* \param w
|
|
568
|
+
* Region Width (in tile).
|
|
569
|
+
* \param h
|
|
570
|
+
* Region Heigh (in tile).
|
|
571
|
+
*
|
|
572
|
+
* Set the specified tilemap region with specified tile attributes value.<br>
|
|
573
|
+
* The function auto increments tile index in tile attributes like this:<br>
|
|
574
|
+
* tilemap line 0 : basetile, basetile+1, basetile+2, basetile+3, ...<br>
|
|
575
|
+
* tilemap line 1 : basetile+w, basetile+w+1, basetile+w+2, ...<br>
|
|
576
|
+
* ...<br>
|
|
577
|
+
* So this function is convenient to display generated image or simulate a frame buffer.<br>
|
|
578
|
+
*
|
|
579
|
+
* \see also VDP_fillTileMapRect()
|
|
580
|
+
*/
|
|
581
|
+
void VDP_fillTileMapRectInc(VDPPlane plane, u16 basetile, u16 x, u16 y, u16 w, u16 h);
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* \brief
|
|
585
|
+
* Set tilemap data for specified region.
|
|
586
|
+
*
|
|
587
|
+
* \param plane
|
|
588
|
+
* Plane where we want to set tilemap data.<br>
|
|
589
|
+
* Accepted values are:<br>
|
|
590
|
+
* - BG_A<br>
|
|
591
|
+
* - BG_B<br>
|
|
592
|
+
* - WINDOW<br>
|
|
593
|
+
* \param data
|
|
594
|
+
* Source tilemap data containing tile attributes (see TILE_ATTR_FULL() macro).
|
|
595
|
+
* \param x
|
|
596
|
+
* Region X start position (in tile).
|
|
597
|
+
* \param y
|
|
598
|
+
* Region Y start position (in tile).
|
|
599
|
+
* \param w
|
|
600
|
+
* Region Width (in tile).
|
|
601
|
+
* \param h
|
|
602
|
+
* Region Heigh (in tile).
|
|
603
|
+
* \param wm
|
|
604
|
+
* Source tilemap width (in tile).
|
|
605
|
+
* \param tm
|
|
606
|
+
* Transfer method.<br>
|
|
607
|
+
* Accepted values are:<br>
|
|
608
|
+
* - CPU<br>
|
|
609
|
+
* - DMA<br>
|
|
610
|
+
* - DMA_QUEUE<br>
|
|
611
|
+
* - DMA_QUEUE_COPY
|
|
612
|
+
*
|
|
613
|
+
* Set the specified tilemap region (tilemap wrapping supported) with specified tile attributes values.<br>
|
|
614
|
+
* You can use this method when you are using the 'mapbase' parameter on your resource definition to set the base attributes<br>
|
|
615
|
+
* (palette, priority and base tile index) so you don't need to provide them here.<br>
|
|
616
|
+
* This method is faster than using #VDP_setTileMapDataRectEx(..) which allow to override base tile attributes though the 'basetile' parameter.
|
|
617
|
+
*
|
|
618
|
+
* \see VDP_setTileMapDataRectEx().
|
|
619
|
+
* \see VDP_setTileMapData().
|
|
620
|
+
*/
|
|
621
|
+
void VDP_setTileMapDataRect(VDPPlane plane, const u16 *data, u16 x, u16 y, u16 w, u16 h, u16 wm, TransferMethod tm);
|
|
622
|
+
/**
|
|
623
|
+
* \brief
|
|
624
|
+
* Set tilemap data for specified region (extended version).
|
|
625
|
+
*
|
|
626
|
+
* \param plane
|
|
627
|
+
* Plane where we want to set tilemap data.<br>
|
|
628
|
+
* Accepted values are:<br>
|
|
629
|
+
* - BG_A<br>
|
|
630
|
+
* - BG_B<br>
|
|
631
|
+
* - WINDOW<br>
|
|
632
|
+
* \param data
|
|
633
|
+
* Source tilemap data containing tile attributes (see TILE_ATTR_FULL() macro).
|
|
634
|
+
* \param basetile
|
|
635
|
+
* Base index and flag for tile attributes (see TILE_ATTR_FULL() macro).
|
|
636
|
+
* \param x
|
|
637
|
+
* Region X start position (in tile).
|
|
638
|
+
* \param y
|
|
639
|
+
* Region Y start position (in tile).
|
|
640
|
+
* \param w
|
|
641
|
+
* Region Width (in tile).
|
|
642
|
+
* \param h
|
|
643
|
+
* Region Heigh (in tile).
|
|
644
|
+
* \param wm
|
|
645
|
+
* Source tilemap width (in tile).
|
|
646
|
+
* \param tm
|
|
647
|
+
* Transfer method.<br>
|
|
648
|
+
* Accepted values are:<br>
|
|
649
|
+
* - CPU<br>
|
|
650
|
+
* - DMA<br>
|
|
651
|
+
* - DMA_QUEUE<br>
|
|
652
|
+
* - DMA_QUEUE_COPY<br>
|
|
653
|
+
* But i highly discourage of using DMA here as VDP_setTileMapDataRectEx(..) requires to prepare data in a temporary buffer first<br>
|
|
654
|
+
* to use DMA, resulting in a slower process than using CPU. However DMA_QUEUE is very useful as it wil prepare the data<br>
|
|
655
|
+
* and transfer the data as fast as possible during VBlank.
|
|
656
|
+
*
|
|
657
|
+
* Set the specified tilemap region (tilemap wrapping supported) with specified tile attributes values.<br>
|
|
658
|
+
* Unlike #VDP_setTileMapDataRect(..) this method let you to override the base tile attributes (priority, palette and base index)<br>
|
|
659
|
+
* at the expense of more computation time. If you want faster tilemap processing (using #VDP_setTileMapDataRect(..)), you can use<br>
|
|
660
|
+
* the 'mapbase' parameter when declaring your IMAGE resource to set base tile attributes but then you have fixed/static tile allocation.
|
|
661
|
+
*
|
|
662
|
+
* \see VDP_setTileMapDataRect()
|
|
663
|
+
* \see VDP_setTileMapDataEx()
|
|
664
|
+
*/
|
|
665
|
+
void VDP_setTileMapDataRectEx(VDPPlane plane, const u16 *data, u16 basetile, u16 x, u16 y, u16 w, u16 h, u16 wm, TransferMethod tm);
|
|
666
|
+
|
|
667
|
+
/**
|
|
668
|
+
* \brief
|
|
669
|
+
* Set a row of tilemap data.
|
|
670
|
+
*
|
|
671
|
+
* \param plane
|
|
672
|
+
* Plane where we want to set tilemap data.<br>
|
|
673
|
+
* Accepted values are:<br>
|
|
674
|
+
* - BG_A<br>
|
|
675
|
+
* - BG_B<br>
|
|
676
|
+
* - WINDOW<br>
|
|
677
|
+
* \param data
|
|
678
|
+
* Source tilemap data containing tile attributes (see TILE_ATTR_FULL() macro).
|
|
679
|
+
* \param row
|
|
680
|
+
* Plane row we want to set data
|
|
681
|
+
* \param x
|
|
682
|
+
* Row X start position (in tile)
|
|
683
|
+
* \param w
|
|
684
|
+
* Row width to update (in tile)
|
|
685
|
+
* \param tm
|
|
686
|
+
* Transfer method.<br>
|
|
687
|
+
* Accepted values are:<br>
|
|
688
|
+
* - CPU<br>
|
|
689
|
+
* - DMA<br>
|
|
690
|
+
* - DMA_QUEUE<br>
|
|
691
|
+
* - DMA_QUEUE_COPY
|
|
692
|
+
*
|
|
693
|
+
* Set a row of tilemap data (tilemap wrapping supported) with given tile attributes values.
|
|
694
|
+
* You can use this method when you are using the 'mapbase' parameter on your resource definition to set the base attributes<br>
|
|
695
|
+
* (palette, priority and base tile index) so you don't need to provide them here.<br>
|
|
696
|
+
* This method is faster than using #VDP_setTileMapDataRowEx(..) which allow to override base tile attributes though the 'basetile' parameter.
|
|
697
|
+
*
|
|
698
|
+
* \see VDP_setTileMapDataRowPartEx()
|
|
699
|
+
* \see VDP_setTileMapDataRow()
|
|
700
|
+
*/
|
|
701
|
+
void VDP_setTileMapDataRow(VDPPlane plane, const u16 *data, u16 row, u16 x, u16 w, TransferMethod tm);
|
|
702
|
+
/**
|
|
703
|
+
* \brief
|
|
704
|
+
* Set a row of tilemap data - extended version.
|
|
705
|
+
*
|
|
706
|
+
* \param plane
|
|
707
|
+
* Plane where we want to set tilemap data.<br>
|
|
708
|
+
* Accepted values are:<br>
|
|
709
|
+
* - BG_A<br>
|
|
710
|
+
* - BG_B<br>
|
|
711
|
+
* - WINDOW<br>
|
|
712
|
+
* \param data
|
|
713
|
+
* Source tilemap data containing tile attributes (see TILE_ATTR_FULL() macro).
|
|
714
|
+
* \param basetile
|
|
715
|
+
* Base index and flag for tile attributes (see TILE_ATTR_FULL() macro).
|
|
716
|
+
* \param row
|
|
717
|
+
* Plane row we want to set data
|
|
718
|
+
* \param x
|
|
719
|
+
* Row X start position (in tile)
|
|
720
|
+
* \param w
|
|
721
|
+
* Row width to update (in tile)
|
|
722
|
+
* \param tm
|
|
723
|
+
* Transfer method.<br>
|
|
724
|
+
* Accepted values are:<br>
|
|
725
|
+
* - CPU<br>
|
|
726
|
+
* - DMA<br>
|
|
727
|
+
* - DMA_QUEUE<br>
|
|
728
|
+
* - DMA_QUEUE_COPY<br>
|
|
729
|
+
* But i highly discourage of using DMA here as VDP_setTileMapDataRowEx(..) requires to prepare data in a temporary buffer first<br>
|
|
730
|
+
* to use DMA, resulting in a slower process than using CPU. However DMA_QUEUE is very useful as it wil prepare the data<br>
|
|
731
|
+
* and transfer the data as fast as possible during VBlank.
|
|
732
|
+
*
|
|
733
|
+
* Set a row of tilemap data (tilemap wrapping supported) with given tile attributes values.<br>
|
|
734
|
+
* Unlike #VDP_setTileMapDataRow(..) this method let you to override the base tile attributes (priority, palette and base index)<br>
|
|
735
|
+
* at the expense of more computation time. If you want faster tilemap processing (using #VDP_setTileMapDataRow(..)), you can use<br>
|
|
736
|
+
* the 'mapbase' parameter when declaring your IMAGE resource to set base tile attributes but then you have fixed/static tile allocation.
|
|
737
|
+
*
|
|
738
|
+
* \see VDP_setTileMapDataRowPart()
|
|
739
|
+
* \see VDP_setTileMapDataRow()
|
|
740
|
+
*/
|
|
741
|
+
void VDP_setTileMapDataRowEx(VDPPlane plane, const u16 *data, u16 basetile, u16 row, u16 x, u16 w, TransferMethod tm);
|
|
742
|
+
/**
|
|
743
|
+
* \brief
|
|
744
|
+
* Set a complete column of pre-arranged tilemap data (not supported when plane width is set to 128).
|
|
745
|
+
*
|
|
746
|
+
* \param plane
|
|
747
|
+
* Plane where we want to set tilemap data.<br>
|
|
748
|
+
* Accepted values are:<br>
|
|
749
|
+
* - BG_A<br>
|
|
750
|
+
* - BG_B<br>
|
|
751
|
+
* - WINDOW<br>
|
|
752
|
+
* \param data
|
|
753
|
+
* Prepared tile attributes data (see TILE_ATTR_FULL() macro).<br>
|
|
754
|
+
* Column data are already arranged to be transferred as a single contiguous data block.
|
|
755
|
+
* \param column
|
|
756
|
+
* Plane column we want to set data
|
|
757
|
+
* \param y
|
|
758
|
+
* Column Y start position (in tile)
|
|
759
|
+
* \param h
|
|
760
|
+
* Column height to update (in tile)
|
|
761
|
+
* \param tm
|
|
762
|
+
* Transfer method.<br>
|
|
763
|
+
* Accepted values are:<br>
|
|
764
|
+
* - CPU<br>
|
|
765
|
+
* - DMA<br>
|
|
766
|
+
* - DMA_QUEUE<br>
|
|
767
|
+
* - DMA_QUEUE_COPY
|
|
768
|
+
*
|
|
769
|
+
* Set a complete column of tilemap data with given tile attributes values.<br>
|
|
770
|
+
* This method is faster than #VDP_setTileMapDataColumn(..) or #VDP_setTileMapDataColumnEx(..) as it assumes<br>
|
|
771
|
+
* that data buffer is properly prepared and arranged to be directly copied as it.<br>
|
|
772
|
+
* <b>WARNING:</b> this function doesn't work when plane width is set to 128 (see #VDP_setPlaneSize(..) method).
|
|
773
|
+
*
|
|
774
|
+
* \see VDP_setTileMapDataRowFast()
|
|
775
|
+
* \see VDP_setTileMapDataColumn()
|
|
776
|
+
* \see VDP_setTileMapData()
|
|
777
|
+
*/
|
|
778
|
+
void VDP_setTileMapDataColumnFast(VDPPlane plane, u16* data, u16 column, u16 y, u16 h, TransferMethod tm);
|
|
779
|
+
/**
|
|
780
|
+
* \brief
|
|
781
|
+
* Set a column of tilemap data (not supported when plane width is set to 128).
|
|
782
|
+
*
|
|
783
|
+
* \param plane
|
|
784
|
+
* Plane where we want to set tilemap data.<br>
|
|
785
|
+
* Accepted values are:<br>
|
|
786
|
+
* - BG_A<br>
|
|
787
|
+
* - BG_B<br>
|
|
788
|
+
* - WINDOW<br>
|
|
789
|
+
* \param data
|
|
790
|
+
* Source tilemap data containing tile attributes (see TILE_ATTR_FULL() macro).
|
|
791
|
+
* \param column
|
|
792
|
+
* Plane column we want to set data
|
|
793
|
+
* \param y
|
|
794
|
+
* Column Y start position (in tile)
|
|
795
|
+
* \param h
|
|
796
|
+
* Column height to update (in tile)
|
|
797
|
+
* \param wm
|
|
798
|
+
* Source tilemap width (in tile).
|
|
799
|
+
* \param tm
|
|
800
|
+
* Transfer method.<br>
|
|
801
|
+
* Accepted values are:<br>
|
|
802
|
+
* - CPU<br>
|
|
803
|
+
* - DMA<br>
|
|
804
|
+
* - DMA_QUEUE<br>
|
|
805
|
+
* - DMA_QUEUE_COPY
|
|
806
|
+
*
|
|
807
|
+
* Set a column of tilemap data (tilemap wrapping supported) with given tile attributes values.<br>
|
|
808
|
+
* You can use this method when you are using the 'mapbase' parameter on your resource definition to set the base tile attributes<br>
|
|
809
|
+
* (palette, priority and base tile index) so you don't need to provide them here.<br>
|
|
810
|
+
* This method is faster than using #VDP_setTileMapDataColumnEx(..) which allow to override base tile attributes though the 'basetile' parameter.<br>
|
|
811
|
+
* <b>WARNING:</b> this function doesn't work when plane width is set to 128 (see #VDP_setPlaneSize(..) method)
|
|
812
|
+
*
|
|
813
|
+
* \see VDP_setTileMapDataColumnPartEx()
|
|
814
|
+
* \see VDP_setTileMapDataColumn()
|
|
815
|
+
*/
|
|
816
|
+
void VDP_setTileMapDataColumn(VDPPlane plane, const u16 *data, u16 column, u16 y, u16 h, u16 wm, TransferMethod tm);
|
|
817
|
+
/**
|
|
818
|
+
* \brief
|
|
819
|
+
* Set a column of tilemap data - extended version (not supported when plane width is set to 128).
|
|
820
|
+
*
|
|
821
|
+
* \param plane
|
|
822
|
+
* Plane where we want to set tilemap data.<br>
|
|
823
|
+
* Accepted values are:<br>
|
|
824
|
+
* - BG_A<br>
|
|
825
|
+
* - BG_B<br>
|
|
826
|
+
* - WINDOW<br>
|
|
827
|
+
* \param data
|
|
828
|
+
* Source tilemap data containing tile attributes (see TILE_ATTR_FULL() macro).
|
|
829
|
+
* \param basetile
|
|
830
|
+
* Base index and flag for tile attributes (see TILE_ATTR_FULL() macro).
|
|
831
|
+
* \param column
|
|
832
|
+
* Plane column we want to set data
|
|
833
|
+
* \param y
|
|
834
|
+
* Column Y start position (in tile)
|
|
835
|
+
* \param h
|
|
836
|
+
* Column height to update (in tile)
|
|
837
|
+
* \param wm
|
|
838
|
+
* Source tilemap width (in tile).
|
|
839
|
+
* \param tm
|
|
840
|
+
* Transfer method.<br>
|
|
841
|
+
* Accepted values are:<br>
|
|
842
|
+
* - CPU<br>
|
|
843
|
+
* - DMA<br>
|
|
844
|
+
* - DMA_QUEUE<br>
|
|
845
|
+
* - DMA_QUEUE_COPY<br>
|
|
846
|
+
* But i highly discourage of using DMA here as VDP_setTileMapDataColumnEx(..) requires to prepare data in a temporary buffer first<br>
|
|
847
|
+
* to use DMA, resulting in a slower process than using CPU. However DMA_QUEUE is very useful as it wil prepare the data<br>
|
|
848
|
+
* and transfer the data as fast as possible during VBlank.
|
|
849
|
+
*
|
|
850
|
+
* Set a column of tilemap data (tilemap wrapping supported) with given tile attributes values.<br>
|
|
851
|
+
* Unlike #VDP_setTileMapDataColumn(..) this method let you to override the base tile attributes (priority, palette and base index)<br>
|
|
852
|
+
* at the expense of more computation time. If you want faster tilemap processing (using #VDP_setTileMapDataColumn(..)), you can use<br>
|
|
853
|
+
* the 'mapbase' parameter when declaring your IMAGE resource to set base tile attributes but then you have fixed/static tile allocation.
|
|
854
|
+
* <b>WARNING:</b> this function doesn't work when plane width is set to 128 (see #VDP_setPlaneSize(..) method)
|
|
855
|
+
*
|
|
856
|
+
* \see VDP_setTileMapDataColumnPart()
|
|
857
|
+
* \see VDP_setTileMapDataColumnEx()
|
|
858
|
+
* \see VDP_setTileMapData()
|
|
859
|
+
*/
|
|
860
|
+
void VDP_setTileMapDataColumnEx(VDPPlane plane, const u16 *data, u16 basetile, u16 column, u16 y, u16 h, u16 wm, TransferMethod tm);
|
|
861
|
+
|
|
862
|
+
/**
|
|
863
|
+
* \brief
|
|
864
|
+
* Load tilemap region.
|
|
865
|
+
*
|
|
866
|
+
* \param plane
|
|
867
|
+
* Plane where we want to load tilemap.<br>
|
|
868
|
+
* Accepted values are:<br>
|
|
869
|
+
* - BG_A<br>
|
|
870
|
+
* - BG_B<br>
|
|
871
|
+
* - WINDOW<br>
|
|
872
|
+
* \param tilemap
|
|
873
|
+
* Source tilemap to load.<br>
|
|
874
|
+
* The TileMap is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
875
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
876
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
877
|
+
* \param x
|
|
878
|
+
* Region X start position (in tile).
|
|
879
|
+
* \param y
|
|
880
|
+
* Region Y start position (in tile).
|
|
881
|
+
* \param w
|
|
882
|
+
* Region Width (in tile).
|
|
883
|
+
* \param h
|
|
884
|
+
* Region Heigh (in tile).
|
|
885
|
+
* \param tm
|
|
886
|
+
* Transfer method.<br>
|
|
887
|
+
* Accepted values are:<br>
|
|
888
|
+
* - CPU<br>
|
|
889
|
+
* - DMA<br>
|
|
890
|
+
* - DMA_QUEUE<br>
|
|
891
|
+
* - DMA_QUEUE_COPY
|
|
892
|
+
*
|
|
893
|
+
* Load the specified tilemap region at equivalent plane position (tilemap wrapping supported).<br>
|
|
894
|
+
* You can use this method when you are using the 'mapbase' parameter on your resource definition to set the base attributes<br>
|
|
895
|
+
* (palette, priority and base tile index) so you don't need to provide them here.<br>
|
|
896
|
+
* This method is faster than using #VDP_setTileMapEx(..) which allow to override base tile attributes though the 'basetile' parameter.
|
|
897
|
+
*
|
|
898
|
+
* \see VDP_setTileMapData()
|
|
899
|
+
* \see VDP_setTileMapDataEx()
|
|
900
|
+
*/
|
|
901
|
+
bool VDP_setTileMap(VDPPlane plane, const TileMap *tilemap, u16 x, u16 y, u16 w, u16 h, TransferMethod tm);
|
|
902
|
+
/**
|
|
903
|
+
* \brief
|
|
904
|
+
* Load tilemap region at specified plane position.
|
|
905
|
+
*
|
|
906
|
+
* \param plane
|
|
907
|
+
* Plane where we want to load tilemap.<br>
|
|
908
|
+
* Accepted values are:<br>
|
|
909
|
+
* - BG_A<br>
|
|
910
|
+
* - BG_B<br>
|
|
911
|
+
* - WINDOW<br>
|
|
912
|
+
* \param tilemap
|
|
913
|
+
* Source tilemap to load.<br>
|
|
914
|
+
* The TileMap is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
915
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
916
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
917
|
+
* \param basetile
|
|
918
|
+
* Base index and flag for tile attributes (see TILE_ATTR_FULL() macro).
|
|
919
|
+
* \param xp
|
|
920
|
+
* Plane X destination position (in tile).
|
|
921
|
+
* \param yp
|
|
922
|
+
* Plane Y destination position (in tile).
|
|
923
|
+
* \param x
|
|
924
|
+
* Region X start position (in tile).
|
|
925
|
+
* \param y
|
|
926
|
+
* Region Y start position (in tile).
|
|
927
|
+
* \param w
|
|
928
|
+
* Region Width (in tile).
|
|
929
|
+
* \param h
|
|
930
|
+
* Region Heigh (in tile).
|
|
931
|
+
* \param tm
|
|
932
|
+
* Transfer method.<br>
|
|
933
|
+
* Accepted values are:<br>
|
|
934
|
+
* - CPU<br>
|
|
935
|
+
* - DMA<br>
|
|
936
|
+
* - DMA_QUEUE<br>
|
|
937
|
+
* - DMA_QUEUE_COPY<br>
|
|
938
|
+
* But i highly discourage of using DMA here as VDP_setTileMapEx(..) requires to prepare data in a temporary buffer first<br>
|
|
939
|
+
* to use DMA, resulting in a slower process than using CPU. However DMA_QUEUE is very useful as it wil prepare the data<br>
|
|
940
|
+
* and transfer the data as fast as possible during VBlank.
|
|
941
|
+
*
|
|
942
|
+
* Load the specified tilemap region at specified plane position (tilemap wrapping supported).<br>
|
|
943
|
+
* Unlike #VDP_setTileMap(..) this method let you to override the base tile attributes (priority, palette and base index)<br>
|
|
944
|
+
* at the expense of more computation time. If you want faster tilemap processing (using #VDP_setTileMap(..)), you can use<br>
|
|
945
|
+
* the 'mapbase' parameter when declaring your IMAGE resource to set base tile attributes but then you have fixed/static tile allocation.
|
|
946
|
+
*
|
|
947
|
+
* \see VDP_setTileMapDataRect()
|
|
948
|
+
* \see VDP_setTileMapDataRectEx()
|
|
949
|
+
*/
|
|
950
|
+
bool VDP_setTileMapEx(VDPPlane plane, const TileMap *tilemap, u16 basetile, u16 xp, u16 yp, u16 x, u16 y, u16 w, u16 h, TransferMethod tm);
|
|
951
|
+
/**
|
|
952
|
+
* \brief
|
|
953
|
+
* Load tilemap row.
|
|
954
|
+
*
|
|
955
|
+
* \param plane
|
|
956
|
+
* Plane where we want to load tilemap.<br>
|
|
957
|
+
* Accepted values are:<br>
|
|
958
|
+
* - BG_A<br>
|
|
959
|
+
* - BG_B<br>
|
|
960
|
+
* - WINDOW<br>
|
|
961
|
+
* \param tilemap
|
|
962
|
+
* Source tilemap to set row from.<br>
|
|
963
|
+
* The TileMap is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
964
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
965
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
966
|
+
* \param row
|
|
967
|
+
* Plane row we want to set data
|
|
968
|
+
* \param x
|
|
969
|
+
* Source tilemap X start position (in tile).
|
|
970
|
+
* \param w
|
|
971
|
+
* Row width to update (in tile)
|
|
972
|
+
* \param tm
|
|
973
|
+
* Transfer method.<br>
|
|
974
|
+
* Accepted values are:<br>
|
|
975
|
+
* - CPU<br>
|
|
976
|
+
* - DMA<br>
|
|
977
|
+
* - DMA_QUEUE<br>
|
|
978
|
+
* - DMA_QUEUE_COPY
|
|
979
|
+
*
|
|
980
|
+
* Load a complete row of data from tilemap at equivalent plane position (wrapped around if needed).<br>
|
|
981
|
+
* You can use this method when you are using the 'mapbase' parameter on your resource definition to set the base attributes<br>
|
|
982
|
+
* (palette, priority and base tile index) so you don't need to provide them here.<br>
|
|
983
|
+
* This method is faster than using #VDP_setTileMapRowEx(..) which allow to override base tile attributes though the 'basetile' parameter.
|
|
984
|
+
*
|
|
985
|
+
* \see VDP_setTileMapRowEx()
|
|
986
|
+
* \see VDP_setMapColumn()
|
|
987
|
+
* \see VDP_setTileMapDataRow()
|
|
988
|
+
*/
|
|
989
|
+
bool VDP_setTileMapRow(VDPPlane plane, const TileMap *tilemap, u16 row, u16 x, u16 w, TransferMethod tm);
|
|
990
|
+
/**
|
|
991
|
+
* \brief
|
|
992
|
+
* Load tilemap row (extended version).
|
|
993
|
+
*
|
|
994
|
+
* \param plane
|
|
995
|
+
* Plane where we want to load tilemap.<br>
|
|
996
|
+
* Accepted values are:<br>
|
|
997
|
+
* - BG_A<br>
|
|
998
|
+
* - BG_B<br>
|
|
999
|
+
* - WINDOW<br>
|
|
1000
|
+
* \param tilemap
|
|
1001
|
+
* Source tilemap to set row from.<br>
|
|
1002
|
+
* The TileMap is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
1003
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
1004
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
1005
|
+
* \param basetile
|
|
1006
|
+
* Base index and flag for tile attributes (see TILE_ATTR_FULL() macro).
|
|
1007
|
+
* \param row
|
|
1008
|
+
* Plane row we want to set data
|
|
1009
|
+
* \param x
|
|
1010
|
+
* Source tilemap X start position (in tile)
|
|
1011
|
+
* \param y
|
|
1012
|
+
* Source tilemap Y / row position (in tile), can be different that plane row if desired.
|
|
1013
|
+
* \param w
|
|
1014
|
+
* Row width to update (in tile)
|
|
1015
|
+
* \param tm
|
|
1016
|
+
* Transfer method.<br>
|
|
1017
|
+
* Accepted values are:<br>
|
|
1018
|
+
* - CPU<br>
|
|
1019
|
+
* - DMA<br>
|
|
1020
|
+
* - DMA_QUEUE<br>
|
|
1021
|
+
* - DMA_QUEUE_COPY<br>
|
|
1022
|
+
* But i highly discourage of using DMA here as VDP_setTileMapRowEx(..) requires to prepare data in a temporary buffer first<br>
|
|
1023
|
+
* to use DMA, resulting in a slower process than using CPU. However DMA_QUEUE is very useful as it wil prepare the data<br>
|
|
1024
|
+
* and transfer the data as fast as possible during VBlank.
|
|
1025
|
+
*
|
|
1026
|
+
* Load a complete row of data from tilemap at equivalent plane position (wrapped around if needed).<br>
|
|
1027
|
+
* Unlike #VDP_setTileMapRow(..) this method let you to override the base tile attributes (priority, palette and base index)<br>
|
|
1028
|
+
* at the expense of more computation time. If you want faster tilemap processing (using #VDP_setTileMapRow(..)), you can use<br>
|
|
1029
|
+
* the 'mapbase' parameter when declaring your IMAGE resource to set base tile attributes but then you have fixed/static tile allocation.
|
|
1030
|
+
*
|
|
1031
|
+
* \see VDP_setTileMapRow()
|
|
1032
|
+
* \see VDP_setMapColumnEx()
|
|
1033
|
+
* \see VDP_setTileMapDataRowEx()
|
|
1034
|
+
*/
|
|
1035
|
+
bool VDP_setTileMapRowEx(VDPPlane plane, const TileMap *tilemap, u16 basetile, u16 row, u16 x, u16 y, u16 w, TransferMethod tm);
|
|
1036
|
+
/**
|
|
1037
|
+
* \brief
|
|
1038
|
+
* Load tilemap column (not supported when plane width is set to 128).
|
|
1039
|
+
*
|
|
1040
|
+
* \param plane
|
|
1041
|
+
* Plane where we want to load tilemap.<br>
|
|
1042
|
+
* Accepted values are:<br>
|
|
1043
|
+
* - BG_A<br>
|
|
1044
|
+
* - BG_B<br>
|
|
1045
|
+
* - WINDOW<br>
|
|
1046
|
+
* \param tilemap
|
|
1047
|
+
* Source tilemap to set column from.<br>
|
|
1048
|
+
* The TileMap is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
1049
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
1050
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
1051
|
+
* \param column
|
|
1052
|
+
* Plane column we want to set data
|
|
1053
|
+
* \param y
|
|
1054
|
+
* Source tilemap Y start position (in tile).
|
|
1055
|
+
* \param h
|
|
1056
|
+
* Column height to update (in tile)
|
|
1057
|
+
* \param tm
|
|
1058
|
+
* Transfer method.<br>
|
|
1059
|
+
* Accepted values are:<br>
|
|
1060
|
+
* - CPU<br>
|
|
1061
|
+
* - DMA<br>
|
|
1062
|
+
* - DMA_QUEUE<br>
|
|
1063
|
+
* - DMA_QUEUE_COPY
|
|
1064
|
+
*
|
|
1065
|
+
* Load a complete column of data from tilemap at equivalent plane position (wrapped around if needed).<br>
|
|
1066
|
+
* You can use this method when you are using the 'mapbase' parameter on your resource definition to set the base attributes<br>
|
|
1067
|
+
* (palette, priority and base tile index) so you don't need to provide them here.<br>
|
|
1068
|
+
* This method is faster than using #VDP_setTileMapColumnEx(..) which allow to override base tile attributes though the 'basetile' parameter.<br>
|
|
1069
|
+
* <b>WARNING:</b> this function doesn't work when plane width is set to 128 (see #VDP_setPlaneSize(..) method)
|
|
1070
|
+
*
|
|
1071
|
+
* \see VDP_setTileMapColumnEx()
|
|
1072
|
+
* \see VDP_setMapRow()
|
|
1073
|
+
* \see VDP_setTileMapDataColumn()
|
|
1074
|
+
*/
|
|
1075
|
+
bool VDP_setTileMapColumn(VDPPlane plane, const TileMap *tilemap, u16 column, u16 y, u16 h, TransferMethod tm);
|
|
1076
|
+
/**
|
|
1077
|
+
* \brief
|
|
1078
|
+
* Load tilemap column - extended version (not supported when plane width is set to 128).
|
|
1079
|
+
*
|
|
1080
|
+
* \param plane
|
|
1081
|
+
* Plane where we want to load tilemap.<br>
|
|
1082
|
+
* Accepted values are:<br>
|
|
1083
|
+
* - BG_A<br>
|
|
1084
|
+
* - BG_B<br>
|
|
1085
|
+
* - WINDOW<br>
|
|
1086
|
+
* \param tilemap
|
|
1087
|
+
* Source tilemap to set column from.<br>
|
|
1088
|
+
* The TileMap is unpacked "on-the-fly" if needed (require some memory).<br>
|
|
1089
|
+
* Using DMA_QUEUE for packed resource is unsafe as the resource will be released and eventually
|
|
1090
|
+
* can be overwritten before DMA operation so use DMA_QUEUE_COPY in that case or unpack the resource first.
|
|
1091
|
+
* \param basetile
|
|
1092
|
+
* Base index and flag for tile attributes (see TILE_ATTR_FULL() macro).
|
|
1093
|
+
* \param column
|
|
1094
|
+
* Plane column we want to set data
|
|
1095
|
+
* \param x
|
|
1096
|
+
* Source tilemap X / column position (in tile), can be different than plane column if desired.
|
|
1097
|
+
* \param y
|
|
1098
|
+
* Source tilemap Y start position (in tile).
|
|
1099
|
+
* \param h
|
|
1100
|
+
* Column height to update (in tile)
|
|
1101
|
+
* \param tm
|
|
1102
|
+
* Transfer method.<br>
|
|
1103
|
+
* Accepted values are:<br>
|
|
1104
|
+
* - CPU<br>
|
|
1105
|
+
* - DMA<br>
|
|
1106
|
+
* - DMA_QUEUE<br>
|
|
1107
|
+
* - DMA_QUEUE_COPY<br>
|
|
1108
|
+
* But i highly discourage of using DMA here as VDP_setTileMapColumnEx(..) requires to prepare data in a temporary buffer first<br>
|
|
1109
|
+
* to use DMA, resulting in a slower process than using CPU. However DMA_QUEUE is very useful as it wil prepare the data<br>
|
|
1110
|
+
* and transfer the data as fast as possible during VBlank.
|
|
1111
|
+
*
|
|
1112
|
+
* Load a complete column of data from tilemap at equivalent plane position (wrapped around if needed).<br>
|
|
1113
|
+
* Unlike #VDP_setTileMapColumn(..) this method let you to override the base tile attributes (priority, palette and base index)<br>
|
|
1114
|
+
* at the expense of more computation time. If you want faster tilemap processing (using #VDP_setTileMapColumn(..)), you can use<br>
|
|
1115
|
+
* the 'mapbase' parameter when declaring your IMAGE resource to set base tile attributes but then you have fixed/static tile allocation.<br>
|
|
1116
|
+
* <b>WARNING:</b> this function doesn't work when plane width is set to 128 (see #VDP_setPlaneSize(..) method)
|
|
1117
|
+
*
|
|
1118
|
+
* \see VDP_setTileMapColumn()
|
|
1119
|
+
* \see VDP_setMapRowEx()
|
|
1120
|
+
* \see VDP_setTileMapDataColumnEx()
|
|
1121
|
+
*/
|
|
1122
|
+
bool VDP_setTileMapColumnEx(VDPPlane plane, const TileMap *tilemap, u16 basetile, u16 column, u16 x, u16 y, u16 h, TransferMethod tm);
|
|
1123
|
+
|
|
1124
|
+
/**
|
|
1125
|
+
* \deprecated
|
|
1126
|
+
* Use #VDP_setTileMap() instead.
|
|
1127
|
+
*/
|
|
1128
|
+
bool VDP_setMap(VDPPlane plane, const TileMap *tilemap, u16 basetile, u16 x, u16 y);
|
|
1129
|
+
/**
|
|
1130
|
+
* \deprecated
|
|
1131
|
+
* Use #VDP_setTileMapEx() instead.
|
|
1132
|
+
*/
|
|
1133
|
+
bool VDP_setMapEx(VDPPlane plane, const TileMap *tilemap, u16 basetile, u16 x, u16 y, u16 xm, u16 ym, u16 wm, u16 hm);
|
|
1134
|
+
|
|
1135
|
+
|
|
1136
|
+
#endif // _VDP_TILE_H_
|