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,1071 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* \file maths.h
|
|
3
|
+
* \brief Mathematical methods.
|
|
4
|
+
* \author Stephane Dallongeville
|
|
5
|
+
* \date 08/2011
|
|
6
|
+
*
|
|
7
|
+
* This unit provides basic maths methods.<br>
|
|
8
|
+
* You can find a tutorial about how use maths with SGDK <a href="https://github.com/Stephane-D/SGDK/wiki/Tuto-Maths">here</a>.<br>
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#ifndef _MATHS_H_
|
|
12
|
+
#define _MATHS_H_
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
// 1° step is enough for FIX16
|
|
17
|
+
extern const fix16 trigtab_f16[90 + 1];
|
|
18
|
+
// 0.25° step is ok for fix32
|
|
19
|
+
extern const fix32 trigtab_f32[(90 * 4) + 1];
|
|
20
|
+
|
|
21
|
+
extern const fix16 log2tab_f16[0x10000];
|
|
22
|
+
extern const fix16 log10tab_f16[0x10000];
|
|
23
|
+
extern const fix16 sqrttab_f16[0x10000];
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
#ifndef PI
|
|
27
|
+
/**
|
|
28
|
+
* \brief
|
|
29
|
+
* PI number (3,1415..)
|
|
30
|
+
*/
|
|
31
|
+
#define PI 3.14159265358979323846
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
#define FIX16_INT_BITS 10
|
|
36
|
+
#define FIX16_FRAC_BITS (16 - FIX16_INT_BITS)
|
|
37
|
+
#define FIX16_INT_MASK (((1 << FIX16_INT_BITS) - 1) << FIX16_FRAC_BITS)
|
|
38
|
+
#define FIX16_FRAC_MASK ((1 << FIX16_FRAC_BITS) - 1)
|
|
39
|
+
|
|
40
|
+
#define FIX32_INT_BITS 22
|
|
41
|
+
#define FIX32_FRAC_BITS (32 - FIX32_INT_BITS)
|
|
42
|
+
#define FIX32_INT_MASK (((1 << FIX32_INT_BITS) - 1) << FIX32_FRAC_BITS)
|
|
43
|
+
#define FIX32_FRAC_MASK ((1 << FIX32_FRAC_BITS) - 1)
|
|
44
|
+
|
|
45
|
+
#define FASTFIX16_INT_BITS 8
|
|
46
|
+
#define FASTFIX16_FRAC_BITS (16 - FASTFIX16_INT_BITS)
|
|
47
|
+
#define FASTFIX16_INT_MASK (((1 << FASTFIX16_INT_BITS) - 1) << FASTFIX16_FRAC_BITS)
|
|
48
|
+
#define FASTFIX16_FRAC_MASK ((1 << FASTFIX16_FRAC_BITS) - 1)
|
|
49
|
+
|
|
50
|
+
#define FASTFIX32_INT_BITS 16
|
|
51
|
+
#define FASTFIX32_FRAC_BITS (32 - FASTFIX32_INT_BITS)
|
|
52
|
+
#define FASTFIX32_INT_MASK (((1 << FASTFIX32_INT_BITS) - 1) << FASTFIX32_FRAC_BITS)
|
|
53
|
+
#define FASTFIX32_FRAC_MASK ((1 << FASTFIX32_FRAC_BITS) - 1)
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* \brief
|
|
57
|
+
* Convert specified value to fix16
|
|
58
|
+
*
|
|
59
|
+
* Ex:<br>
|
|
60
|
+
* f16 v = FIX16(-27.12);
|
|
61
|
+
*/
|
|
62
|
+
#define FIX16(value) ((fix16) ((value) * (1 << FIX16_FRAC_BITS)))
|
|
63
|
+
/**
|
|
64
|
+
* \brief
|
|
65
|
+
* Convert specified value to fix32.
|
|
66
|
+
*
|
|
67
|
+
* Ex:<br>
|
|
68
|
+
* f32 v = FIX32(34.567);
|
|
69
|
+
*/
|
|
70
|
+
#define FIX32(value) ((fix32) ((value) * (1 << FIX32_FRAC_BITS)))
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* \brief
|
|
74
|
+
* Convert specified value to "fast" fix16
|
|
75
|
+
*
|
|
76
|
+
* Ex:<br>
|
|
77
|
+
* ff16 v = FASTFIX16(-27.12);
|
|
78
|
+
*/
|
|
79
|
+
#define FASTFIX16(value) ((fastfix16) ((value) * (1 << FASTFIX16_FRAC_BITS)))
|
|
80
|
+
/**
|
|
81
|
+
* \brief
|
|
82
|
+
* Convert specified value to "fast" fix32.
|
|
83
|
+
*
|
|
84
|
+
* Ex:<br>
|
|
85
|
+
* ff32 v = FASTFIX32(34.567);
|
|
86
|
+
*/
|
|
87
|
+
#define FASTFIX32(value) ((fastfix32) ((value) * (1 << FASTFIX32_FRAC_BITS)))
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* \brief
|
|
91
|
+
* Convert specified value to fix16 (short version)
|
|
92
|
+
* \see FIX16
|
|
93
|
+
*/
|
|
94
|
+
#define F16(value) FIX16(value)
|
|
95
|
+
/**
|
|
96
|
+
* \brief
|
|
97
|
+
* Convert specified value to fix32 (short version)
|
|
98
|
+
* \see FIX32
|
|
99
|
+
*/
|
|
100
|
+
#define F32(value) FIX32(value)
|
|
101
|
+
/**
|
|
102
|
+
* \brief
|
|
103
|
+
* Convert specified value to "fast" fix16 (short version)
|
|
104
|
+
* \see FASTFIX16
|
|
105
|
+
*/
|
|
106
|
+
#define FF16(value) FASTFIX16(value)
|
|
107
|
+
/**
|
|
108
|
+
* \brief
|
|
109
|
+
* Convert specified value to "fast" fix32 (short version)
|
|
110
|
+
* \see FASTFIX32
|
|
111
|
+
*/
|
|
112
|
+
#define FF32(value) FASTFIX32(value)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
#define F16_PI ((fix16) F16(PI))
|
|
116
|
+
#define F16_RAD_TO_DEG F16(57.29577951308232)
|
|
117
|
+
|
|
118
|
+
#define F32_PI ((fix32) F32(PI))
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
// 2D base structures
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* \brief
|
|
125
|
+
* 2D Vector structure - u16 type.
|
|
126
|
+
*/
|
|
127
|
+
typedef struct
|
|
128
|
+
{
|
|
129
|
+
u16 x;
|
|
130
|
+
u16 y;
|
|
131
|
+
} Vect2D_u16;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* \brief
|
|
135
|
+
* 2D Vector structure - s16 type.
|
|
136
|
+
*/
|
|
137
|
+
typedef struct
|
|
138
|
+
{
|
|
139
|
+
s16 x;
|
|
140
|
+
s16 y;
|
|
141
|
+
} Vect2D_s16;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* \brief
|
|
145
|
+
* 2D Vector structure - u32 type.
|
|
146
|
+
*/
|
|
147
|
+
typedef struct
|
|
148
|
+
{
|
|
149
|
+
u32 x;
|
|
150
|
+
u32 y;
|
|
151
|
+
} Vect2D_u32;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* \brief
|
|
155
|
+
* 2D Vector structure - s32 type.
|
|
156
|
+
*/
|
|
157
|
+
typedef struct
|
|
158
|
+
{
|
|
159
|
+
s32 x;
|
|
160
|
+
s32 y;
|
|
161
|
+
} Vect2D_s32;
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* \brief
|
|
165
|
+
* 2D Vector structure - f16 (fix16) type.
|
|
166
|
+
*/
|
|
167
|
+
typedef struct
|
|
168
|
+
{
|
|
169
|
+
fix16 x;
|
|
170
|
+
fix16 y;
|
|
171
|
+
} Vect2D_f16;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* \brief
|
|
175
|
+
* 2D Vector structure - f32 (fix32) type.
|
|
176
|
+
*/
|
|
177
|
+
typedef struct
|
|
178
|
+
{
|
|
179
|
+
fix32 x;
|
|
180
|
+
fix32 y;
|
|
181
|
+
} Vect2D_f32;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* \brief
|
|
185
|
+
* 2D Vector structure - ff16 (fastfix16) type.
|
|
186
|
+
*/
|
|
187
|
+
typedef struct
|
|
188
|
+
{
|
|
189
|
+
fastfix16 x;
|
|
190
|
+
fastfix16 y;
|
|
191
|
+
} Vect2D_ff16;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* \brief
|
|
195
|
+
* 2D Vector structure - ff32 (fastfix32) type.
|
|
196
|
+
*/
|
|
197
|
+
typedef struct
|
|
198
|
+
{
|
|
199
|
+
fastfix32 x;
|
|
200
|
+
fastfix32 y;
|
|
201
|
+
} Vect2D_ff32;
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* \brief
|
|
205
|
+
* 2x2 Matrice structure - f16 (fix16) type.<br>
|
|
206
|
+
* Internally uses 2 2D vectors.
|
|
207
|
+
*/
|
|
208
|
+
typedef struct
|
|
209
|
+
{
|
|
210
|
+
Vect2D_f16 a;
|
|
211
|
+
Vect2D_f16 b;
|
|
212
|
+
} Mat2D_f16;
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* \brief
|
|
216
|
+
* 2x2 Matrice structure - f32 (fix32) type.<br>
|
|
217
|
+
* Internally uses 2 2D vectors.
|
|
218
|
+
*/
|
|
219
|
+
typedef struct
|
|
220
|
+
{
|
|
221
|
+
Vect2D_f32 a;
|
|
222
|
+
Vect2D_f32 b;
|
|
223
|
+
} Mat2D_f32;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* \brief
|
|
227
|
+
* 2x2 Matrice structure - ff16 (fastfix16) type.<br>
|
|
228
|
+
* Internally uses 2 2D vectors.
|
|
229
|
+
*/
|
|
230
|
+
typedef struct
|
|
231
|
+
{
|
|
232
|
+
Vect2D_ff16 a;
|
|
233
|
+
Vect2D_ff16 b;
|
|
234
|
+
} Mat2D_ff16;
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* \brief
|
|
238
|
+
* 2x2 Matrice structure - ff32 (fastfix32) type.<br>
|
|
239
|
+
* Internally uses 2 2D vectors.
|
|
240
|
+
*/
|
|
241
|
+
typedef struct
|
|
242
|
+
{
|
|
243
|
+
Vect2D_ff32 a;
|
|
244
|
+
Vect2D_ff32 b;
|
|
245
|
+
} Mat2D_ff32;
|
|
246
|
+
|
|
247
|
+
// short alias
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* \brief alias for Vect2D_u16
|
|
251
|
+
*/
|
|
252
|
+
typedef Vect2D_u16 V2u16;
|
|
253
|
+
/**
|
|
254
|
+
* \brief alias for Vect2D_s16
|
|
255
|
+
*/
|
|
256
|
+
typedef Vect2D_s16 V2s16;
|
|
257
|
+
/**
|
|
258
|
+
* \brief alias for Vect2D_u32
|
|
259
|
+
*/
|
|
260
|
+
typedef Vect2D_u32 V2u32;
|
|
261
|
+
/**
|
|
262
|
+
* \brief alias for Vect2D_s32
|
|
263
|
+
*/
|
|
264
|
+
typedef Vect2D_s32 V2s32;
|
|
265
|
+
/**
|
|
266
|
+
* \brief alias for Vect2D_f16
|
|
267
|
+
*/
|
|
268
|
+
typedef Vect2D_f16 V2f16;
|
|
269
|
+
/**
|
|
270
|
+
* \brief alias for Vect2D_f32
|
|
271
|
+
*/
|
|
272
|
+
typedef Vect2D_f32 V2f32;
|
|
273
|
+
/**
|
|
274
|
+
* \brief alias for Vect2D_ff16
|
|
275
|
+
*/
|
|
276
|
+
typedef Vect2D_ff16 V2ff16;
|
|
277
|
+
/**
|
|
278
|
+
* \brief alias for Vect2D_ff32
|
|
279
|
+
*/
|
|
280
|
+
typedef Vect2D_ff32 V2ff32;
|
|
281
|
+
/**
|
|
282
|
+
* \brief alias for Mat2D_f16
|
|
283
|
+
*/
|
|
284
|
+
typedef Mat2D_f16 M2f16;
|
|
285
|
+
/**
|
|
286
|
+
* \brief alias for Mat2D_f32
|
|
287
|
+
*/
|
|
288
|
+
typedef Mat2D_f32 M2f32;
|
|
289
|
+
/**
|
|
290
|
+
* \brief alias for Mat2D_ff16
|
|
291
|
+
*/
|
|
292
|
+
typedef Mat2D_ff16 M2ff16;
|
|
293
|
+
/**
|
|
294
|
+
* \brief alias for Mat2D_ff32
|
|
295
|
+
*/
|
|
296
|
+
typedef Mat2D_ff32 M2ff32;
|
|
297
|
+
|
|
298
|
+
///////////////////////////////////////////////
|
|
299
|
+
// Basic math functions
|
|
300
|
+
///////////////////////////////////////////////
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* \brief
|
|
304
|
+
* Returns the lowest value between X an Y.
|
|
305
|
+
*/
|
|
306
|
+
#define min(X, Y) (((X) < (Y))?(X):(Y))
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* \brief
|
|
310
|
+
* Returns the highest value between X an Y.
|
|
311
|
+
*/
|
|
312
|
+
#define max(X, Y) (((X) > (Y))?(X):(Y))
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* \brief
|
|
316
|
+
* Returns L if X is less than L, H if X is greater than H or X if in between L and H.
|
|
317
|
+
*/
|
|
318
|
+
#define clamp(X, L, H) (min(max((X), (L)), (H)))
|
|
319
|
+
|
|
320
|
+
#if (ENABLE_NEWLIB == 0)
|
|
321
|
+
/**
|
|
322
|
+
* \brief
|
|
323
|
+
* Returns the absolute value of X.
|
|
324
|
+
*/
|
|
325
|
+
#define abs(X) (((X) < 0)?-(X):(X))
|
|
326
|
+
#endif // ENABLE_NEWLIB
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* \brief
|
|
331
|
+
* ROL instruction for byte (8 bit) value
|
|
332
|
+
*
|
|
333
|
+
* \param value
|
|
334
|
+
* value to apply bit rotation
|
|
335
|
+
* \param number
|
|
336
|
+
* number of bit rotation
|
|
337
|
+
*/
|
|
338
|
+
u8 rol8(u8 value, u16 number);
|
|
339
|
+
/**
|
|
340
|
+
* \brief
|
|
341
|
+
* ROL instruction for short (16 bit) value
|
|
342
|
+
*
|
|
343
|
+
* \param value
|
|
344
|
+
* value to apply bit rotation
|
|
345
|
+
* \param number
|
|
346
|
+
* number of bit rotation
|
|
347
|
+
*/
|
|
348
|
+
u16 rol16(u16 value, u16 number);
|
|
349
|
+
/**
|
|
350
|
+
* \brief
|
|
351
|
+
* ROL instruction for long (32 bit) value
|
|
352
|
+
*
|
|
353
|
+
* \param value
|
|
354
|
+
* value to apply bit rotation
|
|
355
|
+
* \param number
|
|
356
|
+
* number of bit rotation
|
|
357
|
+
*/
|
|
358
|
+
u32 rol32(u32 value, u16 number);
|
|
359
|
+
/**
|
|
360
|
+
* \brief
|
|
361
|
+
* ROR instruction for byte (8 bit) value
|
|
362
|
+
*
|
|
363
|
+
* \param value
|
|
364
|
+
* value to apply bit rotation
|
|
365
|
+
* \param number
|
|
366
|
+
* number of bit rotation
|
|
367
|
+
*/
|
|
368
|
+
u8 ror8(u8 value, u16 number);
|
|
369
|
+
/**
|
|
370
|
+
* \brief
|
|
371
|
+
* ROR instruction for short (16 bit) value
|
|
372
|
+
*
|
|
373
|
+
* \param value
|
|
374
|
+
* value to apply bit rotation
|
|
375
|
+
* \param number
|
|
376
|
+
* number of bit rotation
|
|
377
|
+
*/
|
|
378
|
+
u16 ror16(u16 value, u16 number);
|
|
379
|
+
/**
|
|
380
|
+
* \brief
|
|
381
|
+
* ROR instruction for long (32 bit) value
|
|
382
|
+
*
|
|
383
|
+
* \param value
|
|
384
|
+
* value to apply bit rotation
|
|
385
|
+
* \param number
|
|
386
|
+
* number of bit rotation
|
|
387
|
+
*/
|
|
388
|
+
u32 ror32(u32 value, u16 number);
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* \brief
|
|
392
|
+
* 16x16=32 unsigned multiplication. Force GCC to use proper 68000 <i>mulu</i> instruction.
|
|
393
|
+
*
|
|
394
|
+
* \param op1
|
|
395
|
+
* first operand
|
|
396
|
+
* \param op2
|
|
397
|
+
* second operand
|
|
398
|
+
* \return 32 bit (unsigned) result of multiply
|
|
399
|
+
*/
|
|
400
|
+
u32 mulu(u16 op1, u16 op2);
|
|
401
|
+
/**
|
|
402
|
+
* \brief
|
|
403
|
+
* 16x16=32 signed multiplication. Force GCC to use proper 68000 <i>muls</i> instruction.
|
|
404
|
+
*
|
|
405
|
+
* \param op1
|
|
406
|
+
* first operand
|
|
407
|
+
* \param op2
|
|
408
|
+
* second operand
|
|
409
|
+
* \return 32 bit (signed) result of multiply
|
|
410
|
+
*/
|
|
411
|
+
s32 muls(s16 op1, s16 op2);
|
|
412
|
+
/**
|
|
413
|
+
* \brief
|
|
414
|
+
* Direct divu instruction (unsigned 32/16=16:16) access using inline assembly
|
|
415
|
+
* to process op1/op2 operation.
|
|
416
|
+
*
|
|
417
|
+
* \param op1
|
|
418
|
+
* first operand - dividende (32 bit)
|
|
419
|
+
* \param op2
|
|
420
|
+
* second operand - divisor (16 bit)
|
|
421
|
+
* \return 16 bit (unsigned) result of the division
|
|
422
|
+
*/
|
|
423
|
+
u16 divu(u32 op1, u16 op2);
|
|
424
|
+
/**
|
|
425
|
+
* \brief
|
|
426
|
+
* Direct divs instruction (signed 32/16=16:16) access using inline assembly
|
|
427
|
+
* to process op1/op2 operation.
|
|
428
|
+
*
|
|
429
|
+
* \param op1
|
|
430
|
+
* first operand (32 bit)
|
|
431
|
+
* \param op2
|
|
432
|
+
* second operand (16 bit)
|
|
433
|
+
* \return 16 bit (signed) result of the division
|
|
434
|
+
*/
|
|
435
|
+
s16 divs(s32 op1, s16 op2);
|
|
436
|
+
/**
|
|
437
|
+
* \brief
|
|
438
|
+
* Direct divu instruction (unsigned 32/16=16:16) access using inline assembly
|
|
439
|
+
*
|
|
440
|
+
* \param op1
|
|
441
|
+
* first operand (32 bit)
|
|
442
|
+
* \param op2
|
|
443
|
+
* second operand (16 bit)
|
|
444
|
+
* \return 16 bit (unsigned) modulo result of the division
|
|
445
|
+
*/
|
|
446
|
+
u16 modu(u32 op1, u16 op2);
|
|
447
|
+
/**
|
|
448
|
+
* \brief
|
|
449
|
+
* Direct divs instruction (signed 32/16=16:16) access using inline assembly
|
|
450
|
+
*
|
|
451
|
+
* \param op1
|
|
452
|
+
* first operand (32 bit)
|
|
453
|
+
* \param op2
|
|
454
|
+
* second operand (16 bit)
|
|
455
|
+
* \return 16 bit (signed) modulo result of the division
|
|
456
|
+
*/
|
|
457
|
+
s16 mods(s32 op1, s16 op2);
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* \brief
|
|
461
|
+
* Direct divu instruction (unsigned 32/16=16:16) access using inline assembly
|
|
462
|
+
* to process op1/op2 operation and op1%op2 at same time.
|
|
463
|
+
*
|
|
464
|
+
* \param op1
|
|
465
|
+
* first operand - dividende (32 bit)
|
|
466
|
+
* \param op2
|
|
467
|
+
* second operand - divisor (16 bit)
|
|
468
|
+
* \return 16 bit (unsigned) result of the division in low 16 bit (0-15) and
|
|
469
|
+
* 16 bit (unsigned) result of the modulo operation in high 16 bit (16-31)
|
|
470
|
+
*/
|
|
471
|
+
u32 divmodu(u32 op1, u16 op2);
|
|
472
|
+
/**
|
|
473
|
+
* \brief
|
|
474
|
+
* Direct divs instruction (signed 32/16=16:16) access using inline assembly
|
|
475
|
+
* to process op1/op2 operation and op1%op2 at same time.
|
|
476
|
+
*
|
|
477
|
+
* \param op1
|
|
478
|
+
* first operand - dividende (32 bit)
|
|
479
|
+
* \param op2
|
|
480
|
+
* second operand - divisor (16 bit)
|
|
481
|
+
* \return 16 bit (signed) result of the division in low 16 bit (0-15) and
|
|
482
|
+
* 16 bit (signed) result of the modulo operation in high 16 bit (16-31)
|
|
483
|
+
*/
|
|
484
|
+
s32 divmods(s32 op1, s16 op2);
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* \brief
|
|
488
|
+
* Convert u16 to BCD.
|
|
489
|
+
*
|
|
490
|
+
* \param value
|
|
491
|
+
* u16 value to convert.
|
|
492
|
+
*/
|
|
493
|
+
u32 u16ToBCD(u16 value);
|
|
494
|
+
/**
|
|
495
|
+
* \brief
|
|
496
|
+
* Convert u32 to BCD.
|
|
497
|
+
*
|
|
498
|
+
* \param value
|
|
499
|
+
* u32 value to convert.
|
|
500
|
+
*/
|
|
501
|
+
u32 u32ToBCD(u32 value);
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* \brief
|
|
505
|
+
* Return next pow2 value which is greater than specified 32 bits unsigned value.
|
|
506
|
+
* Ex:<br>
|
|
507
|
+
* getNextPow2(700) = 1024<br>
|
|
508
|
+
* getNextPow2(18) = 32<br>
|
|
509
|
+
*/
|
|
510
|
+
u32 getNextPow2(u32 value);
|
|
511
|
+
/**
|
|
512
|
+
* \brief
|
|
513
|
+
* Return integer log2 of specified 32 bits unsigned value.
|
|
514
|
+
* Ex:<br>
|
|
515
|
+
* getLog2Int(1024) = 10<br>
|
|
516
|
+
* getLog2Int(12345) = 13<br>
|
|
517
|
+
*
|
|
518
|
+
* \param value
|
|
519
|
+
* value to return log2 of
|
|
520
|
+
*/
|
|
521
|
+
u16 getLog2(u32 value);
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* \brief
|
|
525
|
+
* Return euclidean distance approximation for specified vector.<br>
|
|
526
|
+
* The returned distance is not 100% perfect but calculation is fast.
|
|
527
|
+
*
|
|
528
|
+
* \param dx
|
|
529
|
+
* delta X.
|
|
530
|
+
* \param dy
|
|
531
|
+
* delta Y.
|
|
532
|
+
*/
|
|
533
|
+
u32 getApproximatedDistance(s32 dx, s32 dy);
|
|
534
|
+
/**
|
|
535
|
+
* \brief
|
|
536
|
+
* Return euclidean distance approximation for specified vector.<br>
|
|
537
|
+
* The returned distance is not 100% perfect but calculation is fast.
|
|
538
|
+
*
|
|
539
|
+
* \param v
|
|
540
|
+
* 2D vector.
|
|
541
|
+
*/
|
|
542
|
+
u32 getApproximatedDistanceV(V2s32* v);
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
#define distance_approx(dx, dy) _Pragma("GCC error \"This method is deprecated, use getApproximatedDistance(..) instead.\"")
|
|
546
|
+
#define getApproximatedLog2(value) _Pragma("GCC error \"This method is deprecated, use FF32_getLog2Fast(..) instead.\"")
|
|
547
|
+
#define getLog2Int(value) _Pragma("GCC error \"This method is deprecated, use getLog2(..) instead.\"")
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
///////////////////////////////////////////////
|
|
551
|
+
// Fix16 Fixed point math functions
|
|
552
|
+
///////////////////////////////////////////////
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* \brief
|
|
556
|
+
* Convert fix16 to integer.
|
|
557
|
+
*/
|
|
558
|
+
s16 F16_toInt(fix16 value);
|
|
559
|
+
/**
|
|
560
|
+
* \brief
|
|
561
|
+
* Convert specified fix16 value to fix32.
|
|
562
|
+
*/
|
|
563
|
+
fix32 F16_toFix32(fix16 value);
|
|
564
|
+
/**
|
|
565
|
+
* \brief
|
|
566
|
+
* Convert specified fix16 value to fastfix16.
|
|
567
|
+
*/
|
|
568
|
+
fastfix16 F16_toFastFix16(fix16 value);
|
|
569
|
+
/**
|
|
570
|
+
* \brief
|
|
571
|
+
* Convert specified fix16 value to fastfix32.
|
|
572
|
+
*/
|
|
573
|
+
fastfix32 F16_toFastFix32(fix16 value);
|
|
574
|
+
/**
|
|
575
|
+
* \brief
|
|
576
|
+
* Return fractional part of the specified value (fix16).
|
|
577
|
+
*/
|
|
578
|
+
fix16 F16_frac(fix16 value);
|
|
579
|
+
/**
|
|
580
|
+
* \brief
|
|
581
|
+
* Return integer part of the specified value (fix16).
|
|
582
|
+
*/
|
|
583
|
+
fix16 F16_int(fix16 value);
|
|
584
|
+
/**
|
|
585
|
+
* \brief
|
|
586
|
+
* Return the absolute value of the specified value (fix16).
|
|
587
|
+
*/
|
|
588
|
+
fix16 F16_abs(fix16 x);
|
|
589
|
+
/**
|
|
590
|
+
* \brief
|
|
591
|
+
* Round the specified value to nearest integer (fix16).
|
|
592
|
+
*/
|
|
593
|
+
fix16 F16_round(fix16 value);
|
|
594
|
+
/**
|
|
595
|
+
* \brief
|
|
596
|
+
* Round and convert the specified fix16 to integer.
|
|
597
|
+
*/
|
|
598
|
+
s16 F16_toRoundedInt(fix16 value);
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* \brief
|
|
602
|
+
* Compute and return the result of the multiplication of val1 and val2 (fix16).
|
|
603
|
+
*/
|
|
604
|
+
fix16 F16_mul(fix16 val1, fix16 val2);
|
|
605
|
+
/**
|
|
606
|
+
* \brief
|
|
607
|
+
* Compute and return the result of the division of val1 by val2 (fix16).
|
|
608
|
+
*/
|
|
609
|
+
fix16 F16_div(fix16 val1, fix16 val2);
|
|
610
|
+
/**
|
|
611
|
+
* \brief
|
|
612
|
+
* Compute and return the result of the average of val1 by val2 (fix16).
|
|
613
|
+
*/
|
|
614
|
+
fix16 F16_avg(fix16 val1, fix16 val2);
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* \brief
|
|
618
|
+
* Compute and return the result of the Log2 of specified value (fix16).
|
|
619
|
+
*/
|
|
620
|
+
fix16 F16_log2(fix16 value);
|
|
621
|
+
/**
|
|
622
|
+
* \brief
|
|
623
|
+
* Compute and return the result of the Log10 of specified value (fix16).
|
|
624
|
+
*/
|
|
625
|
+
fix16 F16_log10(fix16 value);
|
|
626
|
+
/**
|
|
627
|
+
* \brief
|
|
628
|
+
* Compute and return the result of the root square of specified value (fix16).
|
|
629
|
+
*/
|
|
630
|
+
fix16 F16_sqrt(fix16 value);
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* \brief
|
|
634
|
+
* Return a normalized form of the input angle degree:<br>
|
|
635
|
+
* Output value is guaranteed to be in [FIX16(0)..FIX16(360)[ range.
|
|
636
|
+
*/
|
|
637
|
+
fix16 F16_normalizeAngle(fix16 angle);
|
|
638
|
+
/**
|
|
639
|
+
* \brief
|
|
640
|
+
* Compute sinus of specified angle (in degree) and return it (fix16).
|
|
641
|
+
*/
|
|
642
|
+
fix16 F16_sin(fix16 angle);
|
|
643
|
+
/**
|
|
644
|
+
* \brief
|
|
645
|
+
* Compute cosinus of specified angle (in degree) and return it (fix16).
|
|
646
|
+
*/
|
|
647
|
+
fix16 F16_cos(fix16 angle);
|
|
648
|
+
/**
|
|
649
|
+
* \brief
|
|
650
|
+
* Compute the tangent of specified angle (in degree) and return it (fix16).
|
|
651
|
+
*/
|
|
652
|
+
fix16 F16_tan(fix16 angle);
|
|
653
|
+
/**
|
|
654
|
+
* \brief
|
|
655
|
+
* Compute the arctangent of specified value and return it in degree (fix16).
|
|
656
|
+
*/
|
|
657
|
+
fix16 F16_atan(fix16 x);
|
|
658
|
+
/**
|
|
659
|
+
* \brief
|
|
660
|
+
* Compute the arctangent of y/x. i.e: return the angle (in degree) for the (0,0)-(x,y) vector.
|
|
661
|
+
*/
|
|
662
|
+
fix16 F16_atan2(fix16 y, fix16 x);
|
|
663
|
+
|
|
664
|
+
/**
|
|
665
|
+
* \deprecated Use F16_sin(..) instead
|
|
666
|
+
* \brief
|
|
667
|
+
* Compute sinus of specified value and return it as fix16.<br>
|
|
668
|
+
* The input value is an integer defined as [0..1024] range corresponding to radian [0..2PI] range.
|
|
669
|
+
*/
|
|
670
|
+
fix16 sinFix16(u16 value);
|
|
671
|
+
/**
|
|
672
|
+
* \deprecated Use F16_cos(..) instead
|
|
673
|
+
* \brief
|
|
674
|
+
* Compute cosinus of specified value and return it as fix16.<br>
|
|
675
|
+
* The input value is an integer defined as [0..1024] range corresponding to radian [0..2PI] range.
|
|
676
|
+
*/
|
|
677
|
+
fix16 cosFix16(u16 value);
|
|
678
|
+
|
|
679
|
+
/**
|
|
680
|
+
* \brief
|
|
681
|
+
* Convert degree to radian (fix16)
|
|
682
|
+
*/
|
|
683
|
+
fix16 F16_degreeToRadian(fix16 degree);
|
|
684
|
+
/**
|
|
685
|
+
* \brief
|
|
686
|
+
* Convert radian to degree (fix16)
|
|
687
|
+
*/
|
|
688
|
+
fix16 F16_radianToDegree(fix16 radian);
|
|
689
|
+
/**
|
|
690
|
+
* \brief
|
|
691
|
+
* Compute and return the angle in degree between the 2 points defined by (x1,y1) and (x2,y2).
|
|
692
|
+
*/
|
|
693
|
+
fix16 F16_getAngle(fix16 x1, fix16 y1, fix16 x2, fix16 y2);
|
|
694
|
+
/**
|
|
695
|
+
* \brief
|
|
696
|
+
* Compute the new position of the point defined by (x1, y1) by moving it by the given 'distance' in the 'angle' direction
|
|
697
|
+
* and store the result in (x2, y2).
|
|
698
|
+
*
|
|
699
|
+
* \param x2
|
|
700
|
+
* new X position
|
|
701
|
+
* \param y2
|
|
702
|
+
* new Y position
|
|
703
|
+
* \param x1
|
|
704
|
+
* current X position
|
|
705
|
+
* \param y1
|
|
706
|
+
* current Y position
|
|
707
|
+
* \param ang
|
|
708
|
+
* angle in degree
|
|
709
|
+
* \param dist
|
|
710
|
+
* distance to move
|
|
711
|
+
*/
|
|
712
|
+
void F16_computePosition(fix16 *x2, fix16 *y2, fix16 x1, fix16 y1, fix16 ang, fix16 dist);
|
|
713
|
+
/**
|
|
714
|
+
* \brief
|
|
715
|
+
* Compute the new position of the point defined by (x1, y1) by moving it by the given 'distance' in the 'angle' direction
|
|
716
|
+
* and store the result in (x2, y2).
|
|
717
|
+
*
|
|
718
|
+
* \param x2
|
|
719
|
+
* new X position
|
|
720
|
+
* \param y2
|
|
721
|
+
* new Y position
|
|
722
|
+
* \param x1
|
|
723
|
+
* current X position
|
|
724
|
+
* \param y1
|
|
725
|
+
* current Y position
|
|
726
|
+
* \param ang
|
|
727
|
+
* angle in degree
|
|
728
|
+
* \param dist
|
|
729
|
+
* distance to move
|
|
730
|
+
* \param cosMul
|
|
731
|
+
* cosine multiplier factor (default = FIX16(1))
|
|
732
|
+
* \param sinMul
|
|
733
|
+
* sine multiplier factor (default = FIX16(1))
|
|
734
|
+
*/
|
|
735
|
+
void F16_computePositionEx(fix16 *x2, fix16 *y2, fix16 x1, fix16 y1, fix16 ang, fix16 dist, fix16 cosMul, fix16 sinMul);
|
|
736
|
+
|
|
737
|
+
|
|
738
|
+
// Deprecated functions
|
|
739
|
+
#define intToFix16(a) _Pragma("GCC error \"This method is deprecated, use FIX16(..) instead.\"")
|
|
740
|
+
#define fix16ToInt(a) _Pragma("GCC error \"This method is deprecated, use F16_toInt(..) instead.\"")
|
|
741
|
+
#define fix16ToFix32(a) _Pragma("GCC error \"This method is deprecated, use F16_toFix32(..) instead.\"")
|
|
742
|
+
#define fix16Frac(a) _Pragma("GCC error \"This method is deprecated, use F16_frac(..) instead.\"")
|
|
743
|
+
#define fix16Int(a) _Pragma("GCC error \"This method is deprecated, use F16_int(..) instead.\"")
|
|
744
|
+
#define fix16Round(a) _Pragma("GCC error \"This method is deprecated, use F16_round(..) instead.\"")
|
|
745
|
+
#define fix16ToRoundedInt(a) _Pragma("GCC error \"This method is deprecated, use F16_toRoundedInt(..) instead.\"")
|
|
746
|
+
#define fix16Add(a, b) _Pragma("GCC error \"This method is deprecated, simply use '+' operator to add fix16 values together.\"")
|
|
747
|
+
#define fix16Sub(a, b) _Pragma("GCC error \"This method is deprecated, simply use '-' operator to subtract fix16 values.\"")
|
|
748
|
+
#define fix16Neg(a) _Pragma("GCC error \"This method is deprecated, simply use '0 - value' to get the negative fix16 value.\"")
|
|
749
|
+
#define fix16Mul(a, b) _Pragma("GCC error \"This method is deprecated, use F16_mul(..) instead.\"")
|
|
750
|
+
#define fix16Div(a, b) _Pragma("GCC error \"This method is deprecated, use F16_div(..) instead.\"")
|
|
751
|
+
#define fix16Avg(a, b) _Pragma("GCC error \"This method is deprecated, use F16_avg(..) instead.\"")
|
|
752
|
+
#define fix16Log2(a) _Pragma("GCC error \"This method is deprecated, use F16_log2(..) instead.\"")
|
|
753
|
+
#define fix16Log10(a) _Pragma("GCC error \"This method is deprecated, use F16_log10(..) instead.\"")
|
|
754
|
+
#define fix16Sqrt(a) _Pragma("GCC error \"This method is deprecated, use F16_sqrt(..) instead.\"")
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
///////////////////////////////////////////////
|
|
758
|
+
// Fix32 Fixed point math functions
|
|
759
|
+
///////////////////////////////////////////////
|
|
760
|
+
|
|
761
|
+
/**
|
|
762
|
+
* \brief
|
|
763
|
+
* Convert fix32 to integer.
|
|
764
|
+
*/
|
|
765
|
+
s32 F32_toInt(fix32 value);
|
|
766
|
+
/**
|
|
767
|
+
* \brief
|
|
768
|
+
* Convert specified fix32 value to fix16.
|
|
769
|
+
*/
|
|
770
|
+
fix16 F32_toFix16(fix32 value);
|
|
771
|
+
/**
|
|
772
|
+
* \brief
|
|
773
|
+
* Convert specified fix32 value to fastfix16.
|
|
774
|
+
*/
|
|
775
|
+
fastfix16 F32_toFastFix16(fix32 value);
|
|
776
|
+
/**
|
|
777
|
+
* \brief
|
|
778
|
+
* Convert specified fix32 value to fastfix32.
|
|
779
|
+
*/
|
|
780
|
+
fastfix32 F32_toFastFix32(fix32 value);
|
|
781
|
+
/**
|
|
782
|
+
* \brief
|
|
783
|
+
* Return fractional part of the specified value (fix32).
|
|
784
|
+
*/
|
|
785
|
+
fix32 F32_frac(fix32 value);
|
|
786
|
+
/**
|
|
787
|
+
* \brief
|
|
788
|
+
* Return integer part of the specified value (fix32).
|
|
789
|
+
*/
|
|
790
|
+
fix32 F32_int(fix32 value);
|
|
791
|
+
/**
|
|
792
|
+
* \brief
|
|
793
|
+
* Round the specified value to nearest integer (fix32).
|
|
794
|
+
*/
|
|
795
|
+
fix32 F32_round(fix32 value);
|
|
796
|
+
/**
|
|
797
|
+
* \brief
|
|
798
|
+
* Round and convert the specified fix32 value to integer.
|
|
799
|
+
*/
|
|
800
|
+
s32 F32_toRoundedInt(fix32 value);
|
|
801
|
+
|
|
802
|
+
/**
|
|
803
|
+
* \brief
|
|
804
|
+
* Compute and return the result of the multiplication of val1 and val2 (fix32).<br>
|
|
805
|
+
* WARNING: result can easily overflow so its recommended to stick with fix16 type for mul and div operations.
|
|
806
|
+
*/
|
|
807
|
+
fix32 F32_mul(fix32 val1, fix32 val2);
|
|
808
|
+
/**
|
|
809
|
+
* \brief
|
|
810
|
+
* Compute and return the result of the division of val1 by val2 (fix32).<br>
|
|
811
|
+
* WARNING: result can easily overflow so its recommended to stick with fix16 type for mul and div operations.
|
|
812
|
+
*/
|
|
813
|
+
fix32 F32_div(fix32 val1, fix32 val2);
|
|
814
|
+
/**
|
|
815
|
+
* \brief
|
|
816
|
+
* Compute and return the result of the average of val1 by val2 (fix32).
|
|
817
|
+
*/
|
|
818
|
+
fix32 F32_avg(fix32 val1, fix32 val2);
|
|
819
|
+
|
|
820
|
+
/**
|
|
821
|
+
* \brief
|
|
822
|
+
* Compute sinus of specified angle (in degree) and return it as fix32.
|
|
823
|
+
*/
|
|
824
|
+
fix32 F32_sin(fix16 angle);
|
|
825
|
+
/**
|
|
826
|
+
* \brief
|
|
827
|
+
* Compute cosinus of specified angle (in degree) and return it as fix32.
|
|
828
|
+
*/
|
|
829
|
+
fix32 F32_cos(fix16 angle);
|
|
830
|
+
|
|
831
|
+
/**
|
|
832
|
+
* \deprecated Use F32_sin(..) instead
|
|
833
|
+
* \brief
|
|
834
|
+
* Compute sinus of specified value and return it as fix32.<br>
|
|
835
|
+
* The input value is an integer defined as [0..1024] range corresponding to radian [0..2PI] range.
|
|
836
|
+
*/
|
|
837
|
+
fix32 sinFix32(u16 value);
|
|
838
|
+
/**
|
|
839
|
+
* \deprecated Use F32_cos(..) instead
|
|
840
|
+
* \brief
|
|
841
|
+
* Compute cosinus of specified value and return it as fix32.<br>
|
|
842
|
+
* The input value is an integer defined as [0..1024] range corresponding to radian [0..2PI] range.
|
|
843
|
+
*/
|
|
844
|
+
fix32 cosFix32(u16 value);
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
// Deprecated functions
|
|
848
|
+
#define intToFix32(a) _Pragma("GCC error \"This method is deprecated, use FIX32(..) instead.\"")
|
|
849
|
+
#define fix32ToInt(a) _Pragma("GCC error \"This method is deprecated, use F32_toInt(..) instead.\"")
|
|
850
|
+
#define fix32ToFix16(a) _Pragma("GCC error \"This method is deprecated, use F32_toFix16(..) instead.\"")
|
|
851
|
+
#define fix32Frac(a) _Pragma("GCC error \"This method is deprecated, use F32_frac(..) instead.\"")
|
|
852
|
+
#define fix32Int(a) _Pragma("GCC error \"This method is deprecated, use F32_int(..) instead.\"")
|
|
853
|
+
#define fix32Round(a) _Pragma("GCC error \"This method is deprecated, use F32_round(..) instead.\"")
|
|
854
|
+
#define fix32ToRoundedInt(a) _Pragma("GCC error \"This method is deprecated, use F32_toRoundedInt(..) instead.\"")
|
|
855
|
+
#define fix32Add(a, b) _Pragma("GCC error \"This method is deprecated, simply use '+' operator to add fix32 values together.\"")
|
|
856
|
+
#define fix32Sub(a, b) _Pragma("GCC error \"This method is deprecated, simply use '-' operator to subtract fix32 values.\"")
|
|
857
|
+
#define fix32Neg(a) _Pragma("GCC error \"This method is deprecated, simply use '0 - value' to get the negative fix32 value.\"")
|
|
858
|
+
#define fix32Mul(a, b) _Pragma("GCC error \"This method is deprecated, use F32_mul(..) instead.\"")
|
|
859
|
+
#define fix32Div(a, b) _Pragma("GCC error \"This method is deprecated, use F32_div(..) instead.\"")
|
|
860
|
+
#define fix32Avg(a, b) _Pragma("GCC error \"This method is deprecated, use F32_avg(..) instead.\"")
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
///////////////////////////////////////////////
|
|
864
|
+
// Fast Fix16 Fixed point math functions
|
|
865
|
+
///////////////////////////////////////////////
|
|
866
|
+
|
|
867
|
+
/**
|
|
868
|
+
* \brief
|
|
869
|
+
* Convert fastfix16 to integer.
|
|
870
|
+
*/
|
|
871
|
+
s16 FF16_toInt(fastfix16 value);
|
|
872
|
+
/**
|
|
873
|
+
* \brief
|
|
874
|
+
* Convert fastfix16 to fix16.
|
|
875
|
+
*/
|
|
876
|
+
fix16 FF16_toFix16(fastfix16 value);
|
|
877
|
+
/**
|
|
878
|
+
* \brief
|
|
879
|
+
* Convert fastfix16 to fix32.
|
|
880
|
+
*/
|
|
881
|
+
fix32 FF16_toFix32(fastfix16 value);
|
|
882
|
+
/**
|
|
883
|
+
* \brief
|
|
884
|
+
* Convert fastfix16 to fastfix32.
|
|
885
|
+
*/
|
|
886
|
+
fastfix32 FF16_toFastFix32(fastfix16 value);
|
|
887
|
+
/**
|
|
888
|
+
* \brief
|
|
889
|
+
* Return fractional part of the specified value (fastfix16).
|
|
890
|
+
*/
|
|
891
|
+
fastfix16 FF16_frac(fastfix16 value);
|
|
892
|
+
/**
|
|
893
|
+
* \brief
|
|
894
|
+
* Return integer part of the specified value (fastfix16).
|
|
895
|
+
*/
|
|
896
|
+
fastfix16 FF16_int(fastfix16 value);
|
|
897
|
+
/**
|
|
898
|
+
* \brief
|
|
899
|
+
* Round the specified value to nearest integer (fastfix16).
|
|
900
|
+
*/
|
|
901
|
+
fastfix16 FF16_round(fastfix16 value);
|
|
902
|
+
/**
|
|
903
|
+
* \brief
|
|
904
|
+
* Round and convert the specified fastfix16 value to integer (fastfix16).
|
|
905
|
+
*/
|
|
906
|
+
s16 FF16_toRoundedInt(fastfix16 value);
|
|
907
|
+
|
|
908
|
+
/**
|
|
909
|
+
* \brief
|
|
910
|
+
* Compute and return the result of the multiplication of val1 and val2 (fastfix16).
|
|
911
|
+
*/
|
|
912
|
+
fastfix16 FF16_mul(fastfix16 val1, fastfix16 val2);
|
|
913
|
+
/**
|
|
914
|
+
* \brief
|
|
915
|
+
* Compute and return the result of the division of val1 by val2 (fastfix16).
|
|
916
|
+
*/
|
|
917
|
+
fastfix16 FF16_div(fastfix16 val1, fastfix16 val2);
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
// Deprecated functions
|
|
921
|
+
#define intToFastFix16(a) _Pragma("GCC error \"This method is deprecated, use FASTFIX16(..) instead.\"")
|
|
922
|
+
#define fastFix16ToInt(a) _Pragma("GCC error \"This method is deprecated, use FF16_toInt(..) instead.\"")
|
|
923
|
+
#define fastFix16Frac(a) _Pragma("GCC error \"This method is deprecated, use FF16_frac(..) instead.\"")
|
|
924
|
+
#define fastFix16Int(a) _Pragma("GCC error \"This method is deprecated, use FF16_int(..) instead.\"")
|
|
925
|
+
#define fastFix16Round(a) _Pragma("GCC error \"This method is deprecated, use FF16_round(..) instead.\"")
|
|
926
|
+
#define fastFix16ToRoundedInt(a) _Pragma("GCC error \"This method is deprecated, use FF16_toRoundedInt(..) instead.\"")
|
|
927
|
+
#define fastFix16Mul(a, b) _Pragma("GCC error \"This method is deprecated, use FF16_mul(..) instead.\"")
|
|
928
|
+
#define fastFix16Div(a, b) _Pragma("GCC error \"This method is deprecated, use FF16_div(..) instead.\"")
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
///////////////////////////////////////////////
|
|
932
|
+
// Fast Fix32 Fixed point math functions
|
|
933
|
+
///////////////////////////////////////////////
|
|
934
|
+
|
|
935
|
+
/**
|
|
936
|
+
* \brief
|
|
937
|
+
* Convert integer to fastfix32.
|
|
938
|
+
*/
|
|
939
|
+
fastfix32 FF32_fromInt(s16 value);
|
|
940
|
+
/**
|
|
941
|
+
* \brief
|
|
942
|
+
* Convert fastfix32 to integer.
|
|
943
|
+
*/
|
|
944
|
+
s16 FF32_toInt(fastfix32 value);
|
|
945
|
+
/**
|
|
946
|
+
* \brief
|
|
947
|
+
* Convert fastfix32 to fix16.
|
|
948
|
+
*/
|
|
949
|
+
fix16 FF32_toFix16(fastfix32 value);
|
|
950
|
+
/**
|
|
951
|
+
* \brief
|
|
952
|
+
* Convert fastfix32 to fix32.
|
|
953
|
+
*/
|
|
954
|
+
fix32 FF32_toFix32(fastfix32 value);
|
|
955
|
+
/**
|
|
956
|
+
* \brief
|
|
957
|
+
* Convert fastfix32 to fastfix16.
|
|
958
|
+
*/
|
|
959
|
+
fastfix16 FF32_toFastFix16(fastfix32 value);
|
|
960
|
+
/**
|
|
961
|
+
* \brief
|
|
962
|
+
* Return fractional part of the specified value (fastfix32).
|
|
963
|
+
*/
|
|
964
|
+
fastfix32 FF32_frac(fastfix32 value);
|
|
965
|
+
/**
|
|
966
|
+
* \brief
|
|
967
|
+
* Return integer part of the specified value (fastfix32).
|
|
968
|
+
*/
|
|
969
|
+
fastfix32 FF32_int(fastfix32 value);
|
|
970
|
+
/**
|
|
971
|
+
* \brief
|
|
972
|
+
* Round the specified value to nearest integer (fastfix32).
|
|
973
|
+
*/
|
|
974
|
+
fastfix32 FF32_round(fastfix32 value);
|
|
975
|
+
/**
|
|
976
|
+
* \brief
|
|
977
|
+
* Round and convert the specified fastfix32 value to integer.
|
|
978
|
+
*/
|
|
979
|
+
s32 FF32_toRoundedInt(fastfix32 value);
|
|
980
|
+
|
|
981
|
+
/**
|
|
982
|
+
* \brief
|
|
983
|
+
* Compute and return the result of the multiplication of val1 and val2 (fastfix32).<br>
|
|
984
|
+
* WARNING: result can easily overflow so its recommended to stick with fix16 type for mul and div operations.
|
|
985
|
+
*/
|
|
986
|
+
fastfix32 FF32_mul(fastfix32 val1, fastfix32 val2);
|
|
987
|
+
/**
|
|
988
|
+
* \brief
|
|
989
|
+
* Compute and return the result of the division of val1 by val2 (fastfix32).<br>
|
|
990
|
+
* WARNING: result can easily overflow so its recommended to stick with fix16 type for mul and div operations.
|
|
991
|
+
*/
|
|
992
|
+
fastfix32 FF32_div(fastfix32 val1, fastfix32 val2);
|
|
993
|
+
|
|
994
|
+
/**
|
|
995
|
+
* \brief
|
|
996
|
+
* Return a not accurate but fast log2 *approximation* of the specified value (fastfixed32)
|
|
997
|
+
* Ex:<br>
|
|
998
|
+
* getLog2(FASTFIX32(1)) = 0<br>
|
|
999
|
+
* getLog2(12345 << 16) = ~9.5 (real value = ~13.6)<br>
|
|
1000
|
+
*
|
|
1001
|
+
* \param value
|
|
1002
|
+
* fastfixed32 value to return log2 of
|
|
1003
|
+
*/
|
|
1004
|
+
fastfix32 FF32_getLog2Fast(fastfix32 value);
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
// Deprecated functions
|
|
1008
|
+
#define intToFastFix32(a) _Pragma("GCC error \"This method is deprecated, use FASTFIX32(..) instead.\"")
|
|
1009
|
+
#define fastFix32ToInt(a) _Pragma("GCC error \"This method is deprecated, use FF32_toInt(..) instead.\"")
|
|
1010
|
+
#define fastFix32Frac(a) _Pragma("GCC error \"This method is deprecated, use FF32_frac(..) instead.\"")
|
|
1011
|
+
#define fastFix32Int(a) _Pragma("GCC error \"This method is deprecated, use FF32_int(..) instead.\"")
|
|
1012
|
+
#define fastFix32Round(a) _Pragma("GCC error \"This method is deprecated, use FF32_round(..) instead.\"")
|
|
1013
|
+
#define fastFix32ToRoundedInt(a) _Pragma("GCC error \"This method is deprecated, use FF32_toRoundedInt(..) instead.\"")
|
|
1014
|
+
#define fastFix32Mul(a, b) _Pragma("GCC error \"This method is deprecated, use FF32_mul(..) instead.\"")
|
|
1015
|
+
#define fastFix32Div(a, b) _Pragma("GCC error \"This method is deprecated, use FF32_div(..) instead.\"")
|
|
1016
|
+
|
|
1017
|
+
|
|
1018
|
+
///////////////////////////////////////////////
|
|
1019
|
+
// Vector2D base math functions
|
|
1020
|
+
///////////////////////////////////////////////
|
|
1021
|
+
|
|
1022
|
+
/**
|
|
1023
|
+
* \brief
|
|
1024
|
+
* Compute and return the angle in degree (fix16) between the 2 points pt1 and pt2.
|
|
1025
|
+
*/
|
|
1026
|
+
fix16 V2D_F16_getAngle(V2f16* pt1, V2f16* pt2);
|
|
1027
|
+
|
|
1028
|
+
/**
|
|
1029
|
+
* \brief
|
|
1030
|
+
* Compute the new position of the point 'pt' by moving it by the given 'distance' in the 'angle' direction.
|
|
1031
|
+
*
|
|
1032
|
+
* \param pt
|
|
1033
|
+
* point to move
|
|
1034
|
+
* \param ang
|
|
1035
|
+
* angle in degree
|
|
1036
|
+
* \param dist
|
|
1037
|
+
* distance to move
|
|
1038
|
+
*/
|
|
1039
|
+
void V2D_F16_computePosition(V2f16* pt, fix16 ang, fix16 dist);
|
|
1040
|
+
/**
|
|
1041
|
+
* \brief
|
|
1042
|
+
* Compute the new position of the point 'pt' by moving it by the given 'distance' in the 'angle' direction.
|
|
1043
|
+
*
|
|
1044
|
+
* \param pt
|
|
1045
|
+
* point to move
|
|
1046
|
+
* \param ang
|
|
1047
|
+
* angle in degree
|
|
1048
|
+
* \param dist
|
|
1049
|
+
* distance to move
|
|
1050
|
+
* \param cosMul
|
|
1051
|
+
* cosine multiplier factor (default = FIX16(1))
|
|
1052
|
+
* \param sinMul
|
|
1053
|
+
* sine multiplier factor (default = FIX16(1))
|
|
1054
|
+
*/
|
|
1055
|
+
void V2D_F16_computePositionEx(V2f16* pt, fix16 ang, fix16 dist, fix16 cosMul, fix16 sinMUl);
|
|
1056
|
+
|
|
1057
|
+
/**
|
|
1058
|
+
* \brief
|
|
1059
|
+
* Return euclidean distance approximation for specified vector.<br>
|
|
1060
|
+
* The returned distance is not 100% perfect but calculation is fast.
|
|
1061
|
+
*
|
|
1062
|
+
* \param v
|
|
1063
|
+
* 2D vector.
|
|
1064
|
+
*/
|
|
1065
|
+
u32 V2D_S32_getApproximatedDistance(V2s32* v);
|
|
1066
|
+
|
|
1067
|
+
|
|
1068
|
+
// Deprecated functions
|
|
1069
|
+
#define getApproximatedDistanceV(dx, dy) _Pragma("GCC error \"This method is deprecated, use V2D_S32_getApproximatedDistance(..) instead.\"")
|
|
1070
|
+
|
|
1071
|
+
#endif // _MATHS_H_
|