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,962 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Memory map defines. All of them
|
|
3
|
+
//
|
|
4
|
+
//! \file tonc_memdef.h
|
|
5
|
+
//! \author J Vijn
|
|
6
|
+
//! \date 20060508 - 20080521
|
|
7
|
+
//
|
|
8
|
+
/* === NOTES ===
|
|
9
|
+
* 20080521 : comms items taken from libgba
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#ifndef TONC_MEMDEF
|
|
13
|
+
#define TONC_MEMDEF
|
|
14
|
+
|
|
15
|
+
/*! \defgroup grpMemBits Memory map bit(fields)
|
|
16
|
+
\ingroup grpMemmap
|
|
17
|
+
\brief List of all bit(field) definitions of memory mapped items.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
// --- Prefixes ---
|
|
21
|
+
// REG_DISPCNT : DCNT
|
|
22
|
+
// REG_DISPSTAT : DSTAT
|
|
23
|
+
// REG_BGxCNT : BG
|
|
24
|
+
// REG_WIN_x : WIN
|
|
25
|
+
// REG_MOSAIC : MOS
|
|
26
|
+
// REG_BLDCNT : BLD
|
|
27
|
+
// REG_SND1SWEEP : SSW
|
|
28
|
+
// REG_SNDxCNT, : SSQR
|
|
29
|
+
// REG_SNDxFREQ, : SFREQ
|
|
30
|
+
// REG_SNDDMGCNT : SDMG
|
|
31
|
+
// REG_SNDDSCNT : SDS
|
|
32
|
+
// REG_SNDSTAT : SSTAT
|
|
33
|
+
// REG_DMAxCNT : DMA
|
|
34
|
+
// REG_TMxCNT : TM
|
|
35
|
+
// REG_SIOCNT : SIO(N/M/U)
|
|
36
|
+
// REG_RCNT : R / GPIO
|
|
37
|
+
// REG_KEYINPUT : KEY
|
|
38
|
+
// REG_KEYCNT : KCNT
|
|
39
|
+
// REG_IE, REG_IF : IRQ
|
|
40
|
+
// REG_WSCNT : WS
|
|
41
|
+
// Regular SE : SE
|
|
42
|
+
// OAM attr 0 : ATTR0
|
|
43
|
+
// OAM attr 1 : ATTR1
|
|
44
|
+
// OAM attr 2 : ATTR2
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
// --- REG_DISPCNT -----------------------------------------------------
|
|
48
|
+
|
|
49
|
+
/*! \defgroup grpVideoDCNT Display Control Flags
|
|
50
|
+
\ingroup grpMemBits
|
|
51
|
+
\brief Bits for REG_DISPCNT
|
|
52
|
+
*/
|
|
53
|
+
/*! \{ */
|
|
54
|
+
|
|
55
|
+
#define DCNT_MODE0 0 //!< Mode 0; bg 0-4: reg
|
|
56
|
+
#define DCNT_MODE1 0x0001 //!< Mode 1; bg 0-1: reg; bg 2: affine
|
|
57
|
+
#define DCNT_MODE2 0x0002 //!< Mode 2; bg 2-3: affine
|
|
58
|
+
#define DCNT_MODE3 0x0003 //!< Mode 3; bg2: 240x160\@16 bitmap
|
|
59
|
+
#define DCNT_MODE4 0x0004 //!< Mode 4; bg2: 240x160\@8 bitmap
|
|
60
|
+
#define DCNT_MODE5 0x0005 //!< Mode 5; bg2: 160x128\@16 bitmap
|
|
61
|
+
#define DCNT_GB 0x0008 //!< (R) GBC indicator
|
|
62
|
+
#define DCNT_PAGE 0x0010 //!< Page indicator
|
|
63
|
+
#define DCNT_OAM_HBL 0x0020 //!< Allow OAM updates in HBlank
|
|
64
|
+
#define DCNT_OBJ_2D 0 //!< OBJ-VRAM as matrix
|
|
65
|
+
#define DCNT_OBJ_1D 0x0040 //!< OBJ-VRAM as array
|
|
66
|
+
#define DCNT_BLANK 0x0080 //!< Force screen blank
|
|
67
|
+
#define DCNT_BG0 0x0100 //!< Enable bg 0
|
|
68
|
+
#define DCNT_BG1 0x0200 //!< Enable bg 1
|
|
69
|
+
#define DCNT_BG2 0x0400 //!< Enable bg 2
|
|
70
|
+
#define DCNT_BG3 0x0800 //!< Enable bg 3
|
|
71
|
+
#define DCNT_OBJ 0x1000 //!< Enable objects
|
|
72
|
+
#define DCNT_WIN0 0x2000 //!< Enable window 0
|
|
73
|
+
#define DCNT_WIN1 0x4000 //!< Enable window 1
|
|
74
|
+
#define DCNT_WINOBJ 0x8000 //!< Enable object window
|
|
75
|
+
|
|
76
|
+
#define DCNT_MODE_MASK 0x0007
|
|
77
|
+
#define DCNT_MODE_SHIFT 0
|
|
78
|
+
#define DCNT_MODE(n) ((n)<<DCNT_MODE_SHIFT)
|
|
79
|
+
|
|
80
|
+
#define DCNT_LAYER_MASK 0x1F00
|
|
81
|
+
#define DCNT_LAYER_SHIFT 8
|
|
82
|
+
#define DCNT_LAYER(n) ((n)<<DCNT_LAYER_SHIFT)
|
|
83
|
+
|
|
84
|
+
#define DCNT_WIN_MASK 0xE000
|
|
85
|
+
#define DCNT_WIN_SHIFT 13
|
|
86
|
+
#define DCNT_WIN(n) ((n)<<DCNT_WIN_SHIFT)
|
|
87
|
+
|
|
88
|
+
#define DCNT_BUILD(mode, layer, win, obj1d, objhbl) \
|
|
89
|
+
( \
|
|
90
|
+
(((win)&7)<<13) | (((layer)&31)<<8) | (((obj1d)&1)<<6) \
|
|
91
|
+
| (((objhbl)&1)<<5) | ((mode)&7) \
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
/*! \} /defgroup */
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
// --- REG_DISPSTAT ----------------------------------------------------
|
|
99
|
+
|
|
100
|
+
/*! \defgroup grpVideoDSTAT Display Status Flags
|
|
101
|
+
\ingroup grpMemBits
|
|
102
|
+
\brief Bits for REG_DISPSTAT
|
|
103
|
+
*/
|
|
104
|
+
/*! \{ */
|
|
105
|
+
|
|
106
|
+
#define DSTAT_IN_VBL 0x0001 //!< Now in VBlank
|
|
107
|
+
#define DSTAT_IN_HBL 0x0002 //!< Now in HBlank
|
|
108
|
+
#define DSTAT_IN_VCT 0x0004 //!< Now in set VCount
|
|
109
|
+
#define DSTAT_VBL_IRQ 0x0008 //!< Enable VBlank irq
|
|
110
|
+
#define DSTAT_HBL_IRQ 0x0010 //!< Enable HBlank irq
|
|
111
|
+
#define DSTAT_VCT_IRQ 0x0020 //!< Enable VCount irq
|
|
112
|
+
|
|
113
|
+
#define DSTAT_VCT_MASK 0xFF00
|
|
114
|
+
#define DSTAT_VCT_SHIFT 8
|
|
115
|
+
#define DSTAT_VCT(n) ((n)<<DSTAT_VCT_SHIFT)
|
|
116
|
+
|
|
117
|
+
/*! \} /defgroup */
|
|
118
|
+
|
|
119
|
+
// --- REG_BGxCNT ------------------------------------------------------
|
|
120
|
+
|
|
121
|
+
/*! \defgroup grpVideoBGCNT Background Control Flags
|
|
122
|
+
\ingroup grpMemBits
|
|
123
|
+
\brief Bits for REG_BGxCNT
|
|
124
|
+
*/
|
|
125
|
+
/*! \{ */
|
|
126
|
+
|
|
127
|
+
#define BG_MOSAIC 0x0040 //!< Enable Mosaic
|
|
128
|
+
#define BG_4BPP 0 //!< 4bpp (16 color) bg (no effect on affine bg)
|
|
129
|
+
#define BG_8BPP 0x0080 //!< 8bpp (256 color) bg (no effect on affine bg)
|
|
130
|
+
#define BG_WRAP 0x2000 //!< Wrap around edges of affine bgs
|
|
131
|
+
#define BG_SIZE0 0
|
|
132
|
+
#define BG_SIZE1 0x4000
|
|
133
|
+
#define BG_SIZE2 0x8000
|
|
134
|
+
#define BG_SIZE3 0xC000
|
|
135
|
+
#define BG_REG_32x32 0 //!< reg bg, 32x32 (256x256 px)
|
|
136
|
+
#define BG_REG_64x32 0x4000 //!< reg bg, 64x32 (512x256 px)
|
|
137
|
+
#define BG_REG_32x64 0x8000 //!< reg bg, 32x64 (256x512 px)
|
|
138
|
+
#define BG_REG_64x64 0xC000 //!< reg bg, 64x64 (512x512 px)
|
|
139
|
+
#define BG_AFF_16x16 0 //!< affine bg, 16x16 (128x128 px)
|
|
140
|
+
#define BG_AFF_32x32 0x4000 //!< affine bg, 32x32 (256x256 px)
|
|
141
|
+
#define BG_AFF_64x64 0x8000 //!< affine bg, 64x64 (512x512 px)
|
|
142
|
+
#define BG_AFF_128x128 0xC000 //!< affine bg, 128x128 (1024x1024 px)
|
|
143
|
+
|
|
144
|
+
#define BG_PRIO_MASK 0x0003
|
|
145
|
+
#define BG_PRIO_SHIFT 0
|
|
146
|
+
#define BG_PRIO(n) ((n)<<BG_PRIO_SHIFT)
|
|
147
|
+
|
|
148
|
+
#define BG_CBB_MASK 0x000C
|
|
149
|
+
#define BG_CBB_SHIFT 2
|
|
150
|
+
#define BG_CBB(n) ((n)<<BG_CBB_SHIFT)
|
|
151
|
+
|
|
152
|
+
#define BG_SBB_MASK 0x1F00
|
|
153
|
+
#define BG_SBB_SHIFT 8
|
|
154
|
+
#define BG_SBB(n) ((n)<<BG_SBB_SHIFT)
|
|
155
|
+
|
|
156
|
+
#define BG_SIZE_MASK 0xC000
|
|
157
|
+
#define BG_SIZE_SHIFT 14
|
|
158
|
+
#define BG_SIZE(n) ((n)<<BG_SIZE_SHIFT)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
#define BG_BUILD(cbb, sbb, size, bpp, prio, mos, wrap) \
|
|
162
|
+
( \
|
|
163
|
+
((size)<<14) | (((wrap)&1)<<13) | (((sbb)&31)<<8) \
|
|
164
|
+
| (((bpp)&8)<<4) | (((mos)&1)<<6) | (((cbb)&3)<<2) \
|
|
165
|
+
| ((prio)&3) \
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
/*! \} */
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
/*! \defgroup grpVideoGfx Graphic effects
|
|
172
|
+
\ingroup grpMemBits
|
|
173
|
+
*/
|
|
174
|
+
/*! \{ */
|
|
175
|
+
|
|
176
|
+
// --- REG_WIN_x ------------------------------------------------------
|
|
177
|
+
|
|
178
|
+
//! \name Window macros
|
|
179
|
+
//\{
|
|
180
|
+
|
|
181
|
+
#define WIN_BG0 0x0001 //!< Windowed bg 0
|
|
182
|
+
#define WIN_BG1 0x0002 //!< Windowed bg 1
|
|
183
|
+
#define WIN_BG2 0x0004 //!< Windowed bg 2
|
|
184
|
+
#define WIN_BG3 0x0008 //!< Windowed bg 3
|
|
185
|
+
#define WIN_OBJ 0x0010 //!< Windowed objects
|
|
186
|
+
#define WIN_ALL 0x001F //!< All layers in window.
|
|
187
|
+
#define WIN_BLD 0x0020 //!< Windowed blending
|
|
188
|
+
|
|
189
|
+
#define WIN_LAYER_MASK 0x003F
|
|
190
|
+
#define WIN_LAYER_SHIFT 0
|
|
191
|
+
#define WIN_LAYER(n) ((n)<<WIN_LAYER_SHIFT)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
#define WIN_BUILD(low, high) \
|
|
195
|
+
( ((high)<<8) | (low) )
|
|
196
|
+
|
|
197
|
+
#define WININ_BUILD(win0, win1) WIN_BUILD(win0, win1)
|
|
198
|
+
|
|
199
|
+
#define WINOUT_BUILD(out, obj) WIN_BUILD(out, obj)
|
|
200
|
+
|
|
201
|
+
//\}
|
|
202
|
+
|
|
203
|
+
// --- REG_MOSAIC ------------------------------------------------------
|
|
204
|
+
|
|
205
|
+
//! \name Mosaic macros
|
|
206
|
+
//\{
|
|
207
|
+
|
|
208
|
+
#define MOS_BH_MASK 0x000F
|
|
209
|
+
#define MOS_BH_SHIFT 0
|
|
210
|
+
#define MOS_BH(n) ((n)<<MOS_BH_SHIFT)
|
|
211
|
+
|
|
212
|
+
#define MOS_BV_MASK 0x00F0
|
|
213
|
+
#define MOS_BV_SHIFT 4
|
|
214
|
+
#define MOS_BV(n) ((n)<<MOS_BV_SHIFT)
|
|
215
|
+
|
|
216
|
+
#define MOS_OH_MASK 0x0F00
|
|
217
|
+
#define MOS_OH_SHIFT 8
|
|
218
|
+
#define MOS_OH(n) ((n)<<MOS_OH_SHIFT)
|
|
219
|
+
|
|
220
|
+
#define MOS_OV_MASK 0xF000
|
|
221
|
+
#define MOS_OV_SHIFT 12
|
|
222
|
+
#define MOS_OV(n) ((n)<<MOS_OV_SHIFT)
|
|
223
|
+
|
|
224
|
+
#define MOS_BUILD(bh, bv, oh, ov) \
|
|
225
|
+
( (((ov)&15)<<12) | (((oh)&15)<<8) | (((bv)&15)<<4)| ((bh)&15) )
|
|
226
|
+
|
|
227
|
+
//\}
|
|
228
|
+
|
|
229
|
+
/* \} */
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
// --- REG_BLDCNT ------------------------------------------------------
|
|
233
|
+
|
|
234
|
+
/*! \defgroup grpVideoBLD Blend Flags
|
|
235
|
+
\ingroup grpMemBits
|
|
236
|
+
\brief Macros for REG_BLDCNT, REG_BLDY and REG_BLDALPHA
|
|
237
|
+
*/
|
|
238
|
+
/*! \{ */
|
|
239
|
+
|
|
240
|
+
//!\ name Blend control
|
|
241
|
+
//\{
|
|
242
|
+
|
|
243
|
+
#define BLD_BG0 0x0001 //!< Blend bg 0
|
|
244
|
+
#define BLD_BG1 0x0002 //!< Blend bg 1
|
|
245
|
+
#define BLD_BG2 0x0004 //!< Blend bg 2
|
|
246
|
+
#define BLD_BG3 0x0008 //!< Blend bg 3
|
|
247
|
+
#define BLD_OBJ 0x0010 //!< Blend objects
|
|
248
|
+
#define BLD_ALL 0x001F //!< All layers (except backdrop)
|
|
249
|
+
#define BLD_BACKDROP 0x0020 //!< Blend backdrop
|
|
250
|
+
#define BLD_OFF 0 //!< Blend mode is off
|
|
251
|
+
#define BLD_STD 0x0040 //!< Normal alpha blend (with REG_EV)
|
|
252
|
+
#define BLD_WHITE 0x0080 //!< Fade to white (with REG_Y)
|
|
253
|
+
#define BLD_BLACK 0x00C0 //!< Fade to black (with REG_Y)
|
|
254
|
+
|
|
255
|
+
#define BLD_TOP_MASK 0x003F
|
|
256
|
+
#define BLD_TOP_SHIFT 0
|
|
257
|
+
#define BLD_TOP(n) ((n)<<BLD_TOP_SHIFT)
|
|
258
|
+
|
|
259
|
+
#define BLD_MODE_MASK 0x00C0
|
|
260
|
+
#define BLD_MODE_SHIFT 6
|
|
261
|
+
#define BLD_MODE(n) ((n)<<BLD_MODE_SHIFT)
|
|
262
|
+
|
|
263
|
+
#define BLD_BOT_MASK 0x3F00
|
|
264
|
+
#define BLD_BOT_SHIFT 8
|
|
265
|
+
#define BLD_BOT(n) ((n)<<BLD_BOT_SHIFT)
|
|
266
|
+
|
|
267
|
+
#define BLD_BUILD(top, bot, mode) \
|
|
268
|
+
( (((bot)&63)<<8) | (((mode)&3)<<6) | ((top)&63) )
|
|
269
|
+
|
|
270
|
+
//\}
|
|
271
|
+
|
|
272
|
+
// --- REG_BLDALPHA ---
|
|
273
|
+
|
|
274
|
+
//! \name Blend weights
|
|
275
|
+
|
|
276
|
+
#define BLD_EVA_MASK 0x001F
|
|
277
|
+
#define BLD_EVA_SHIFT 0
|
|
278
|
+
#define BLD_EVA(n) ((n)<<BLD_EVA_SHIFT)
|
|
279
|
+
|
|
280
|
+
#define BLD_EVB_MASK 0x1F00
|
|
281
|
+
#define BLD_EVB_SHIFT 8
|
|
282
|
+
#define BLD_EVB(n) ((n)<<BLD_EVB_SHIFT)
|
|
283
|
+
|
|
284
|
+
#define BLDA_BUILD(eva, evb) \
|
|
285
|
+
( ((eva)&31) | (((evb)&31)<<8) )
|
|
286
|
+
|
|
287
|
+
//\}
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
// --- REG_BLDY ---
|
|
291
|
+
|
|
292
|
+
//! \name Fade levels
|
|
293
|
+
|
|
294
|
+
#define BLDY_MASK 0x001F
|
|
295
|
+
#define BLDY_SHIFT 0
|
|
296
|
+
#define BLDY(n) ((n)<<BLD_EY_SHIFT)
|
|
297
|
+
|
|
298
|
+
#define BLDY_BUILD(ey) \
|
|
299
|
+
( (ey)&31 )
|
|
300
|
+
|
|
301
|
+
//\}
|
|
302
|
+
|
|
303
|
+
/*! \} */
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
// --- REG_SND1SWEEP ---------------------------------------------------
|
|
307
|
+
|
|
308
|
+
/*! \defgroup grpAudioSSW Tone Generator, Sweep Flags
|
|
309
|
+
\ingroup grpMemBits
|
|
310
|
+
\brief Bits for REG_SND1SWEEP (aka REG_SOUND1CNT_L)
|
|
311
|
+
*/
|
|
312
|
+
/*! \{ */
|
|
313
|
+
|
|
314
|
+
#define SSW_INC 0 //!< Increasing sweep rate
|
|
315
|
+
#define SSW_DEC 0x0008 //!< Decreasing sweep rate
|
|
316
|
+
#define SSW_OFF 0x0008 //!< Disable sweep altogether
|
|
317
|
+
|
|
318
|
+
#define SSW_SHIFT_MASK 0x0007
|
|
319
|
+
#define SSW_SHIFT_SHIFT 0
|
|
320
|
+
#define SSW_SHIFT(n) ((n)<<SSW_SHIFT_SHIFT)
|
|
321
|
+
|
|
322
|
+
#define SSW_TIME_MASK 0x0070
|
|
323
|
+
#define SSW_TIME_SHIFT 4
|
|
324
|
+
#define SSW_TIME(n) ((n)<<SSW_TIME_SHIFT)
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
#define SSW_BUILD(shift, dir, time) \
|
|
328
|
+
( (((time)&7)<<4) | ((dir)<<3) | ((shift)&7) )
|
|
329
|
+
|
|
330
|
+
/*! \} /defgroup */
|
|
331
|
+
|
|
332
|
+
// --- REG_SND1CNT, REG_SND2CNT, REG_SND4CNT ---------------------------
|
|
333
|
+
|
|
334
|
+
/*! \defgroup grpAudioSSQR Tone Generator, Square Flags
|
|
335
|
+
\ingroup grpMemBits
|
|
336
|
+
\brief Bits for REG_SND{1,2,4}CNT
|
|
337
|
+
(aka REG_SOUND1CNT_H, REG_SOUND2CNT_L, REG_SOUND4CNT_L, respectively)
|
|
338
|
+
*/
|
|
339
|
+
/*! \{ */
|
|
340
|
+
|
|
341
|
+
#define SSQR_DUTY1_8 0 //!< 12.5% duty cycle (#-------)
|
|
342
|
+
#define SSQR_DUTY1_4 0x0040 //!< 25% duty cycle (##------)
|
|
343
|
+
#define SSQR_DUTY1_2 0x0080 //!< 50% duty cycle (####----)
|
|
344
|
+
#define SSQR_DUTY3_4 0x00C0 //!< 75% duty cycle (######--) Equivalent to 25%
|
|
345
|
+
#define SSQR_INC 0 //!< Increasing volume
|
|
346
|
+
#define SSQR_DEC 0x0800 //!< Decreasing volume
|
|
347
|
+
|
|
348
|
+
#define SSQR_LEN_MASK 0x003F
|
|
349
|
+
#define SSQR_LEN_SHIFT 0
|
|
350
|
+
#define SSQR_LEN(n) ((n)<<SSQR_LEN_SHIFT)
|
|
351
|
+
|
|
352
|
+
#define SSQR_DUTY_MASK 0x00C0
|
|
353
|
+
#define SSQR_DUTY_SHIFT 6
|
|
354
|
+
#define SSQR_DUTY(n) ((n)<<SSQR_DUTY_SHIFT)
|
|
355
|
+
|
|
356
|
+
#define SSQR_TIME_MASK 0x0700
|
|
357
|
+
#define SSQR_TIME_SHIFT 8
|
|
358
|
+
#define SSQR_TIME(n) ((n)<<SSQR_TIME_SHIFT)
|
|
359
|
+
|
|
360
|
+
#define SSQR_IVOL_MASK 0xF000
|
|
361
|
+
#define SSQR_IVOL_SHIFT 12
|
|
362
|
+
#define SSQR_IVOL(n) ((n)<<SSQR_IVOL_SHIFT)
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
#define SSQR_ENV_BUILD(ivol, dir, time) \
|
|
366
|
+
( ((ivol)<<12) | ((dir)<<11) | (((time)&7)<<8) )
|
|
367
|
+
|
|
368
|
+
#define SSQR_BUILD(_ivol, dir, step, duty, len) \
|
|
369
|
+
( SSQR_ENV_BUILD(ivol,dir,step) | (((duty)&3)<<6) | ((len)&63) )
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
/*! \} /defgroup */
|
|
373
|
+
|
|
374
|
+
// --- REG_SND1FREQ, REG_SND2FREQ, REG_SND3FREQ ------------------------
|
|
375
|
+
|
|
376
|
+
/*! \defgroup grpAudioSFREQ Tone Generator, Frequency Flags
|
|
377
|
+
\ingroup grpMemBits
|
|
378
|
+
\brief Bits for REG_SND{1-3}FREQ
|
|
379
|
+
(aka REG_SOUND1CNT_X, REG_SOUND2CNT_H, REG_SOUND3CNT_X)
|
|
380
|
+
*/
|
|
381
|
+
/*! \{ */
|
|
382
|
+
|
|
383
|
+
#define SFREQ_HOLD 0 //!< Continuous play
|
|
384
|
+
#define SFREQ_TIMED 0x4000 //!< Timed play
|
|
385
|
+
#define SFREQ_RESET 0x8000 //!< Reset sound
|
|
386
|
+
|
|
387
|
+
#define SFREQ_RATE_MASK 0x07FF
|
|
388
|
+
#define SFREQ_RATE_SHIFT 0
|
|
389
|
+
#define SFREQ_RATE(n) ((n)<<SFREQ_RATE_SHIFT)
|
|
390
|
+
|
|
391
|
+
#define SFREQ_BUILD(rate, timed, reset) \
|
|
392
|
+
( ((rate)&0x7FF) | ((timed)<<14) | ((reset)<<15) )
|
|
393
|
+
|
|
394
|
+
/*! \} /defgroup */
|
|
395
|
+
|
|
396
|
+
// --- REG_SNDDMGCNT ---------------------------------------------------
|
|
397
|
+
|
|
398
|
+
/*! \defgroup grpAudioSDMG Tone Generator, Control Flags
|
|
399
|
+
\ingroup grpMemBits
|
|
400
|
+
\brief Bits for REG_SNDDMGCNT (aka REG_SOUNDCNT_L)
|
|
401
|
+
*/
|
|
402
|
+
/*! \{ */
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
#define SDMG_LSQR1 0x0100 //!< Enable channel 1 on left
|
|
406
|
+
#define SDMG_LSQR2 0x0200 //!< Enable channel 2 on left
|
|
407
|
+
#define SDMG_LWAVE 0x0400 //!< Enable channel 3 on left
|
|
408
|
+
#define SDMG_LNOISE 0x0800 //!< Enable channel 4 on left
|
|
409
|
+
#define SDMG_RSQR1 0x1000 //!< Enable channel 1 on right
|
|
410
|
+
#define SDMG_RSQR2 0x2000 //!< Enable channel 2 on right
|
|
411
|
+
#define SDMG_RWAVE 0x4000 //!< Enable channel 3 on right
|
|
412
|
+
#define SDMG_RNOISE 0x8000 //!< Enable channel 4 on right
|
|
413
|
+
|
|
414
|
+
#define SDMG_LVOL_MASK 0x0007
|
|
415
|
+
#define SDMG_LVOL_SHIFT 0
|
|
416
|
+
#define SDMG_LVOL(n) ((n)<<SDMG_LVOL_SHIFT)
|
|
417
|
+
|
|
418
|
+
#define SDMG_RVOL_MASK 0x0070
|
|
419
|
+
#define SDMG_RVOL_SHIFT 4
|
|
420
|
+
#define SDMG_RVOL(n) ((n)<<SDMG_RVOL_SHIFT)
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
// Unshifted values
|
|
424
|
+
#define SDMG_SQR1 0x01
|
|
425
|
+
#define SDMG_SQR2 0x02
|
|
426
|
+
#define SDMG_WAVE 0x04
|
|
427
|
+
#define SDMG_NOISE 0x08
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
#define SDMG_BUILD(_lmode, _rmode, _lvol, _rvol) \
|
|
431
|
+
( ((_rmode)<<12) | ((_lmode)<<8) | (((_rvol)&7)<<4) | ((_lvol)&7) )
|
|
432
|
+
|
|
433
|
+
#define SDMG_BUILD_LR(_mode, _vol) SDMG_BUILD(_mode, _mode, _vol, _vol)
|
|
434
|
+
|
|
435
|
+
/*! \} /defgroup */
|
|
436
|
+
|
|
437
|
+
// --- REG_SNDDSCNT ----------------------------------------------------
|
|
438
|
+
|
|
439
|
+
/*! \defgroup grpAudioSDS Direct Sound Flags
|
|
440
|
+
\ingroup grpMemBits
|
|
441
|
+
\brief Bits for REG_SNDDSCNT (aka REG_SOUNDCNT_H)
|
|
442
|
+
*/
|
|
443
|
+
/*! \{ */
|
|
444
|
+
|
|
445
|
+
#define SDS_DMG25 0 //!< Tone generators at 25% volume
|
|
446
|
+
#define SDS_DMG50 0x0001 //!< Tone generators at 50% volume
|
|
447
|
+
#define SDS_DMG100 0x0002 //!< Tone generators at 100% volume
|
|
448
|
+
#define SDS_A50 0 //!< Direct Sound A at 50% volume
|
|
449
|
+
#define SDS_A100 0x0004 //!< Direct Sound A at 100% volume
|
|
450
|
+
#define SDS_B50 0 //!< Direct Sound B at 50% volume
|
|
451
|
+
#define SDS_B100 0x0008 //!< Direct Sound B at 100% volume
|
|
452
|
+
#define SDS_AR 0x0100 //!< Enable Direct Sound A on right
|
|
453
|
+
#define SDS_AL 0x0200 //!< Enable Direct Sound A on left
|
|
454
|
+
#define SDS_ATMR0 0 //!< Direct Sound A to use timer 0
|
|
455
|
+
#define SDS_ATMR1 0x0400 //!< Direct Sound A to use timer 1
|
|
456
|
+
#define SDS_ARESET 0x0800 //!< Reset FIFO of Direct Sound A
|
|
457
|
+
#define SDS_BR 0x1000 //!< Enable Direct Sound B on right
|
|
458
|
+
#define SDS_BL 0x2000 //!< Enable Direct Sound B on left
|
|
459
|
+
#define SDS_BTMR0 0 //!< Direct Sound B to use timer 0
|
|
460
|
+
#define SDS_BTMR1 0x4000 //!< Direct Sound B to use timer 1
|
|
461
|
+
#define SDS_BRESET 0x8000 //!< Reset FIFO of Direct Sound B
|
|
462
|
+
|
|
463
|
+
/*! \} /defgroup */
|
|
464
|
+
|
|
465
|
+
// --- REG_SNDSTAT -----------------------------------------------------
|
|
466
|
+
|
|
467
|
+
/*! \defgroup grpAudioSSTAT Sound Status Flags
|
|
468
|
+
\ingroup grpMemBits
|
|
469
|
+
\brief Bits for REG_SNDSTAT (and REG_SOUNDCNT_X)
|
|
470
|
+
*/
|
|
471
|
+
/*! \{ */
|
|
472
|
+
|
|
473
|
+
#define SSTAT_SQR1 0x0001 //!< (R) Channel 1 status
|
|
474
|
+
#define SSTAT_SQR2 0x0002 //!< (R) Channel 2 status
|
|
475
|
+
#define SSTAT_WAVE 0x0004 //!< (R) Channel 3 status
|
|
476
|
+
#define SSTAT_NOISE 0x0008 //!< (R) Channel 4 status
|
|
477
|
+
#define SSTAT_DISABLE 0 //!< Disable sound
|
|
478
|
+
#define SSTAT_ENABLE 0x0080 //!< Enable sound. NOTE: enable before using any other sound regs
|
|
479
|
+
|
|
480
|
+
/*! \} /defgroup */
|
|
481
|
+
|
|
482
|
+
// --- REG_DMAxCNT -----------------------------------------------------
|
|
483
|
+
|
|
484
|
+
/*! \defgroup grpAudioDMA DMA Control Flags
|
|
485
|
+
\ingroup grpMemBits
|
|
486
|
+
\brief Bits for REG_DMAxCNT
|
|
487
|
+
*/
|
|
488
|
+
/*! \{ */
|
|
489
|
+
|
|
490
|
+
#define DMA_DST_INC 0 //!< Incrementing destination address
|
|
491
|
+
#define DMA_DST_DEC 0x00200000 //!< Decrementing destination
|
|
492
|
+
#define DMA_DST_FIXED 0x00400000 //!< Fixed destination
|
|
493
|
+
#define DMA_DST_RELOAD 0x00600000 //!< Increment destination, reset after full run
|
|
494
|
+
#define DMA_SRC_INC 0 //!< Incrementing source address
|
|
495
|
+
#define DMA_SRC_DEC 0x00800000 //!< Decrementing source address
|
|
496
|
+
#define DMA_SRC_FIXED 0x01000000 //!< Fixed source address
|
|
497
|
+
#define DMA_REPEAT 0x02000000 //!< Repeat transfer at next start condition
|
|
498
|
+
#define DMA_16 0 //!< Transfer by halfword
|
|
499
|
+
#define DMA_32 0x04000000 //!< Transfer by word
|
|
500
|
+
#define DMA_AT_NOW 0 //!< Start transfer now
|
|
501
|
+
#define DMA_GAMEPAK 0x08000000 //!< Gamepak DRQ
|
|
502
|
+
#define DMA_AT_VBLANK 0x10000000 //!< Start transfer at VBlank
|
|
503
|
+
#define DMA_AT_HBLANK 0x20000000 //!< Start transfer at HBlank
|
|
504
|
+
#define DMA_AT_SPECIAL 0x30000000 //!< Start copy at 'special' condition. Channel dependent
|
|
505
|
+
#define DMA_AT_FIFO 0x30000000 //!< Start at FIFO empty (DMA0/DMA1)
|
|
506
|
+
#define DMA_AT_REFRESH 0x30000000 //!< VRAM special; start at VCount=2 (DMA3)
|
|
507
|
+
#define DMA_IRQ 0x40000000 //!< Enable DMA irq
|
|
508
|
+
#define DMA_ENABLE 0x80000000 //!< Enable DMA
|
|
509
|
+
|
|
510
|
+
#define DMA_COUNT_MASK 0x0000FFFF
|
|
511
|
+
#define DMA_COUNT_SHIFT 0
|
|
512
|
+
#define DMA_COUNT(n) ((n)<<DMA_COUNT_SHIFT)
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
// \name Extra
|
|
516
|
+
//\{
|
|
517
|
+
|
|
518
|
+
#define DMA_NOW (DMA_ENABLE | DMA_AT_NOW)
|
|
519
|
+
#define DMA_16NOW (DMA_NOW | DMA_16)
|
|
520
|
+
#define DMA_32NOW (DMA_NOW | DMA_32)
|
|
521
|
+
|
|
522
|
+
// copies
|
|
523
|
+
#define DMA_CPY16 (DMA_NOW | DMA_16)
|
|
524
|
+
#define DMA_CPY32 (DMA_NOW | DMA_32)
|
|
525
|
+
|
|
526
|
+
// fills
|
|
527
|
+
#define DMA_FILL16 (DMA_NOW | DMA_SRC_FIXED | DMA_16)
|
|
528
|
+
#define DMA_FILL32 (DMA_NOW | DMA_SRC_FIXED | DMA_32)
|
|
529
|
+
|
|
530
|
+
#define DMA_HDMA (DMA_ENABLE | DMA_REPEAT | DMA_AT_HBLANK | DMA_DST_RELOAD)
|
|
531
|
+
|
|
532
|
+
//\}
|
|
533
|
+
|
|
534
|
+
/*! \} /defgroup */
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
// --- REG_TMxCNT ------------------------------------------------------
|
|
538
|
+
|
|
539
|
+
/*! \defgroup grpTimerTM Timer Control Flags
|
|
540
|
+
\ingroup grpMemBits
|
|
541
|
+
\brief Bits for REG_TMxCNT
|
|
542
|
+
*/
|
|
543
|
+
/*! \{ */
|
|
544
|
+
|
|
545
|
+
#define TM_FREQ_SYS 0 //!< System clock timer (16.7 Mhz)
|
|
546
|
+
#define TM_FREQ_1 0 //!< 1 cycle/tick (16.7 Mhz)
|
|
547
|
+
#define TM_FREQ_64 0x0001 //!< 64 cycles/tick (262 kHz)
|
|
548
|
+
#define TM_FREQ_256 0x0002 //!< 256 cycles/tick (66 kHz)
|
|
549
|
+
#define TM_FREQ_1024 0x0003 //!< 1024 cycles/tick (16 kHz)
|
|
550
|
+
#define TM_CASCADE 0x0004 //!< Increment when preceding timer overflows
|
|
551
|
+
#define TM_IRQ 0x0040 //!< Enable timer irq
|
|
552
|
+
#define TM_ENABLE 0x0080 //!< Enable timer
|
|
553
|
+
|
|
554
|
+
#define TM_FREQ_MASK 0x0003
|
|
555
|
+
#define TM_FREQ_SHIFT 0
|
|
556
|
+
#define TM_FREQ(n) ((n)<<TM_FREQ_SHIFT)
|
|
557
|
+
|
|
558
|
+
/*! \} /defgroup */
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
// --- REG_SIOCNT ----------------------------------------------------------
|
|
562
|
+
|
|
563
|
+
/*! \defgroup grpSioCnt Serial I/O Control
|
|
564
|
+
\ingroup grpMemBits
|
|
565
|
+
\brief Bits for REG_TMxCNT
|
|
566
|
+
*/
|
|
567
|
+
/*! \{ */
|
|
568
|
+
|
|
569
|
+
//! \name General SIO bits.
|
|
570
|
+
//\{
|
|
571
|
+
#define SIO_MODE_8BIT 0x0000 //!< Normal comm mode, 8-bit.
|
|
572
|
+
#define SIO_MODE_32BIT 0x1000 //!< Normal comm mode, 32-bit.
|
|
573
|
+
#define SIO_MODE_MULTI 0x2000 //!< Multi-play comm mode.
|
|
574
|
+
#define SIO_MODE_UART 0x3000 //!< UART comm mode.
|
|
575
|
+
|
|
576
|
+
#define SIO_SI_HIGH 0x0004
|
|
577
|
+
#define SIO_IRQ 0x4000 //!< Enable serial irq.
|
|
578
|
+
|
|
579
|
+
#define SIO_MODE_MASK 0x3000
|
|
580
|
+
#define SIO_MODE_SHIFT 12
|
|
581
|
+
#define SIO_MODE(n) ((n)<<SIO_MODE_SHIFT)
|
|
582
|
+
//\}
|
|
583
|
+
|
|
584
|
+
//! \name Normal mode bits. UNTESTED.
|
|
585
|
+
//\{
|
|
586
|
+
#define SION_CLK_EXT 0x0000 //!< Slave unit; use external clock (default).
|
|
587
|
+
#define SION_CLK_INT 0x0001 //!< Master unit; use internal clock.
|
|
588
|
+
|
|
589
|
+
#define SION_256KHZ 0x0000 //!< 256 kHz clockspeed (default).
|
|
590
|
+
#define SION_2MHZ 0x0002 //!< 2 MHz clockspeed.
|
|
591
|
+
|
|
592
|
+
#define SION_RECV_HIGH 0x0004 //!< SI high; opponent ready to receive (R).
|
|
593
|
+
#define SION_SEND_HIGH 0x0008 //!< SO high; ready to transfer.
|
|
594
|
+
|
|
595
|
+
#define SION_ENABLE 0x0080 //!< Start transfer/transfer enabled.
|
|
596
|
+
//\}
|
|
597
|
+
|
|
598
|
+
//! \name Multiplayer mode bits. UNTESTED.
|
|
599
|
+
//\{
|
|
600
|
+
#define SIOM_9600 0x0000 //!< Baud rate, 9.6 kbps.
|
|
601
|
+
#define SIOM_38400 0x0001 //!< Baud rate, 38.4 kbps.
|
|
602
|
+
#define SIOM_57600 0x0002 //!< Baud rate, 57.6 kbps.
|
|
603
|
+
#define SIOM_115200 0x0003 //!< Baud rate, 115.2 kbps.
|
|
604
|
+
|
|
605
|
+
#define SIOM_SI 0x0004 //!< SI port (R).
|
|
606
|
+
#define SIOM_SLAVE 0x0004 //!< Not the master (R).
|
|
607
|
+
#define SIOM_SD 0x0008 //!< SD port (R).
|
|
608
|
+
#define SIOM_CONNECTED 0x0008 //!< All GBAs connected (R)
|
|
609
|
+
|
|
610
|
+
#define SIOM_ERROR 0x0040 //!< Error in transfer (R).
|
|
611
|
+
#define SIOM_ENABLE 0x0080 //!< Start transfer/transfer enabled.
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
#define SIOM_BAUD_MASK 0x0003
|
|
615
|
+
#define SIOM_BAUD_SHIFT 0
|
|
616
|
+
#define SIOM_BAUD(n) ((n)<<SIOM_BAUD_SHIFT)
|
|
617
|
+
|
|
618
|
+
#define SIOM_ID_MASK 0x0030 //!< Multi-player ID mask (R)
|
|
619
|
+
#define SIOM_ID_SHIFT 4
|
|
620
|
+
#define SIOM_ID(n) ((n)<<SIOM_ID_SHIFT)
|
|
621
|
+
//\}
|
|
622
|
+
|
|
623
|
+
//! \name UART mode bits. UNTESTED.
|
|
624
|
+
//!\{
|
|
625
|
+
#define SIOU_9600 0x0000 //!< Baud rate, 9.6 kbps.
|
|
626
|
+
#define SIOU_38400 0x0001 //!< Baud rate, 38.4 kbps.
|
|
627
|
+
#define SIOU_57600 0x0002 //!< Baud rate, 57.6 kbps.
|
|
628
|
+
#define SIOU_115200 0x0003 //!< Baud rate, 115.2 kbps.
|
|
629
|
+
|
|
630
|
+
#define SIOU_CTS 0x0004 //!< CTS enable.
|
|
631
|
+
#define SIOU_PARITY_EVEN 0x0000 //!< Use even parity.
|
|
632
|
+
#define SIOU_PARITY_ODD 0x0008 //!< Use odd parity.
|
|
633
|
+
#define SIOU_SEND_FULL 0x0010 //!< Send data is full (R).
|
|
634
|
+
#define SIOU_RECV_EMPTY 0x0020 //!< Receive data is empty (R).
|
|
635
|
+
#define SIOU_ERROR 0x0040 //!< Error in transfer (R).
|
|
636
|
+
#define SIOU_7BIT 0x0000 //!< Data is 7bits long.
|
|
637
|
+
#define SIOU_8BIT 0x0080 //!< Data is 8bits long.
|
|
638
|
+
#define SIOU_SEND 0x0100 //!< Start sending data.
|
|
639
|
+
#define SIOU_RECV 0x0200 //!< Start receiving data.
|
|
640
|
+
|
|
641
|
+
#define SIOU_BAUD_MASK 0x0003
|
|
642
|
+
#define SIOU_BAUD_SHIFT 0
|
|
643
|
+
#define SIOU_BAUD(n) ((n)<<SIOU_BAUD_SHIFT)
|
|
644
|
+
//\}
|
|
645
|
+
|
|
646
|
+
/*! \} */
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
/*! \defgroup grpCommR Comm control.
|
|
650
|
+
\ingroup grpMemBits
|
|
651
|
+
\brief Communication mode select and general purpose I/O (REG_RCNT).
|
|
652
|
+
*/
|
|
653
|
+
/*! \{ */
|
|
654
|
+
|
|
655
|
+
//! \name Communication mode select.
|
|
656
|
+
//\{
|
|
657
|
+
#define R_MODE_NORMAL 0x0000 //!< Normal mode.
|
|
658
|
+
#define R_MODE_MULTI 0x0000 //!< Multiplayer mode.
|
|
659
|
+
#define R_MODE_UART 0x0000 //!< UART mode.
|
|
660
|
+
#define R_MODE_GPIO 0x8000 //!< General purpose mode.
|
|
661
|
+
#define R_MODE_JOYBUS 0xC000 //!< JOY mode.
|
|
662
|
+
|
|
663
|
+
#define R_MODE_MASK 0xC000
|
|
664
|
+
#define R_MODE_SHIFT 14
|
|
665
|
+
#define R_MODE(n) ((n)<<R_MODE_SHIFT)
|
|
666
|
+
//\}
|
|
667
|
+
|
|
668
|
+
//! \name General purpose I/O data
|
|
669
|
+
//\{
|
|
670
|
+
#define GPIO_SC 0x0001 // Data
|
|
671
|
+
#define GPIO_SD 0x0002
|
|
672
|
+
#define GPIO_SI 0x0004
|
|
673
|
+
#define GPIO_SO 0x0008
|
|
674
|
+
#define GPIO_SC_IO 0x0010 // Select I/O
|
|
675
|
+
#define GPIO_SD_IO 0x0020
|
|
676
|
+
#define GPIO_SI_IO 0x0040
|
|
677
|
+
#define GPIO_SO_IO 0x0080
|
|
678
|
+
#define GPIO_SC_INPUT 0x0000 // Input setting
|
|
679
|
+
#define GPIO_SD_INPUT 0x0000
|
|
680
|
+
#define GPIO_SI_INPUT 0x0000
|
|
681
|
+
#define GPIO_SO_INPUT 0x0000
|
|
682
|
+
#define GPIO_SC_OUTPUT 0x0010 // Output setting
|
|
683
|
+
#define GPIO_SD_OUTPUT 0x0020
|
|
684
|
+
#define GPIO_SI_OUTPUT 0x0040
|
|
685
|
+
#define GPIO_SO_OUTPUT 0x0080
|
|
686
|
+
|
|
687
|
+
#define GPIO_IRQ 0x0100 //! Interrupt on SI.
|
|
688
|
+
//\}
|
|
689
|
+
|
|
690
|
+
/*! \} */
|
|
691
|
+
|
|
692
|
+
|
|
693
|
+
// --- REG_KEYINPUT --------------------------------------------------------
|
|
694
|
+
|
|
695
|
+
/*! \defgroup grpInputKEY Key Flags
|
|
696
|
+
\ingroup grpMemBits
|
|
697
|
+
\brief Bits for REG_KEYINPUT and REG_KEYCNT
|
|
698
|
+
*/
|
|
699
|
+
/*! \{ */
|
|
700
|
+
|
|
701
|
+
#define KEY_A 0x0001 //!< Button A
|
|
702
|
+
#define KEY_B 0x0002 //!< Button B
|
|
703
|
+
#define KEY_SELECT 0x0004 //!< Select button
|
|
704
|
+
#define KEY_START 0x0008 //!< Start button
|
|
705
|
+
#define KEY_RIGHT 0x0010 //!< Right D-pad
|
|
706
|
+
#define KEY_LEFT 0x0020 //!< Left D-pad
|
|
707
|
+
#define KEY_UP 0x0040 //!< Up D-pad
|
|
708
|
+
#define KEY_DOWN 0x0080 //!< Down D-pad
|
|
709
|
+
#define KEY_R 0x0100 //!< Shoulder R
|
|
710
|
+
#define KEY_L 0x0200 //!< Shoulder L
|
|
711
|
+
|
|
712
|
+
#define KEY_ACCEPT 0x0009 //!< Accept buttons: A or start
|
|
713
|
+
#define KEY_CANCEL 0x0002 //!< Cancel button: B (well, it usually is)
|
|
714
|
+
#define KEY_RESET 0x030C //!< St+Se+L+R
|
|
715
|
+
|
|
716
|
+
#define KEY_FIRE 0x0003 //!< Fire buttons: A or B
|
|
717
|
+
#define KEY_SPECIAL 0x000C //!< Special buttons: Select or Start
|
|
718
|
+
#define KEY_DIR 0x00F0 //!< Directions: left, right, up down
|
|
719
|
+
#define KEY_SHOULDER 0x0300 //!< L or R
|
|
720
|
+
|
|
721
|
+
#define KEY_ANY 0x03FF //!< Here's the Any key :)
|
|
722
|
+
|
|
723
|
+
#define KEY_MASK 0x03FF
|
|
724
|
+
|
|
725
|
+
/*! \} /defgroup */
|
|
726
|
+
|
|
727
|
+
// --- REG_KEYCNT ------------------------------------------------------
|
|
728
|
+
|
|
729
|
+
/*! \defgroup grpInputKCNT Key Control Flags
|
|
730
|
+
\ingroup grpMemBits
|
|
731
|
+
\brief Bits for REG_KEYCNT
|
|
732
|
+
*/
|
|
733
|
+
|
|
734
|
+
/*! \{ */
|
|
735
|
+
|
|
736
|
+
#define KCNT_IRQ 0x4000 //!< Enable key irq
|
|
737
|
+
#define KCNT_OR 0 //!< Interrupt on any of selected keys
|
|
738
|
+
#define KCNT_AND 0x8000 //!< Interrupt on all of selected keys
|
|
739
|
+
|
|
740
|
+
/*! \} /defgroup */
|
|
741
|
+
|
|
742
|
+
// --- REG_IE, REG_IF, REG_IF_BIOS -------------------------------------
|
|
743
|
+
|
|
744
|
+
/*! \defgroup grpIrqIRQ Interrupt Flags
|
|
745
|
+
\ingroup grpMemBits
|
|
746
|
+
\brief Bits for REG_IE, REG_IF and REG_IFBIOS
|
|
747
|
+
*/
|
|
748
|
+
/*! \{ */
|
|
749
|
+
|
|
750
|
+
#define IRQ_VBLANK 0x0001 //!< Catch VBlank irq
|
|
751
|
+
#define IRQ_HBLANK 0x0002 //!< Catch HBlank irq
|
|
752
|
+
#define IRQ_VCOUNT 0x0004 //!< Catch VCount irq
|
|
753
|
+
#define IRQ_TIMER0 0x0008 //!< Catch timer 0 irq
|
|
754
|
+
#define IRQ_TIMER1 0x0010 //!< Catch timer 1 irq
|
|
755
|
+
#define IRQ_TIMER2 0x0020 //!< Catch timer 2 irq
|
|
756
|
+
#define IRQ_TIMER3 0x0040 //!< Catch timer 3 irq
|
|
757
|
+
#define IRQ_SERIAL 0x0080 //!< Catch serial comm irq
|
|
758
|
+
#define IRQ_DMA0 0x0100 //!< Catch DMA 0 irq
|
|
759
|
+
#define IRQ_DMA1 0x0200 //!< Catch DMA 1 irq
|
|
760
|
+
#define IRQ_DMA2 0x0400 //!< Catch DMA 2 irq
|
|
761
|
+
#define IRQ_DMA3 0x0800 //!< Catch DMA 3 irq
|
|
762
|
+
#define IRQ_KEYPAD 0x1000 //!< Catch key irq
|
|
763
|
+
#define IRQ_GAMEPAK 0x2000 //!< Catch cart irq
|
|
764
|
+
|
|
765
|
+
/*! \} /defgroup */
|
|
766
|
+
|
|
767
|
+
// --- REG_WSCNT -------------------------------------------------------
|
|
768
|
+
|
|
769
|
+
/*! \defgroup grpMiscWS Waitstate Control Flags
|
|
770
|
+
\ingroup grpMemBits
|
|
771
|
+
\brief Bits for REG_WAITCNT
|
|
772
|
+
*/
|
|
773
|
+
/*! \{ */
|
|
774
|
+
|
|
775
|
+
#define WS_SRAM_4 0
|
|
776
|
+
#define WS_SRAM_3 0x0001
|
|
777
|
+
#define WS_SRAM_2 0x0002
|
|
778
|
+
#define WS_SRAM_8 0x0003
|
|
779
|
+
#define WS_ROM0_N4 0
|
|
780
|
+
#define WS_ROM0_N3 0x0004
|
|
781
|
+
#define WS_ROM0_N2 0x0008
|
|
782
|
+
#define WS_ROM0_N8 0x000C
|
|
783
|
+
#define WS_ROM0_S2 0
|
|
784
|
+
#define WS_ROM0_S1 0x0010
|
|
785
|
+
#define WS_ROM1_N4 0
|
|
786
|
+
#define WS_ROM1_N3 0x0020
|
|
787
|
+
#define WS_ROM1_N2 0x0040
|
|
788
|
+
#define WS_ROM1_N8 0x0060
|
|
789
|
+
#define WS_ROM1_S4 0
|
|
790
|
+
#define WS_ROM1_S1 0x0080
|
|
791
|
+
#define WS_ROM2_N4 0
|
|
792
|
+
#define WS_ROM2_N3 0x0100
|
|
793
|
+
#define WS_ROM2_N2 0x0200
|
|
794
|
+
#define WS_ROM2_N8 0x0300
|
|
795
|
+
#define WS_ROM2_S8 0
|
|
796
|
+
#define WS_ROM2_S1 0x0400
|
|
797
|
+
#define WS_PHI_OFF 0
|
|
798
|
+
#define WS_PHI_4 0x0800
|
|
799
|
+
#define WS_PHI_2 0x1000
|
|
800
|
+
#define WS_PHI_1 0x1800
|
|
801
|
+
#define WS_PREFETCH 0x4000
|
|
802
|
+
#define WS_GBA 0
|
|
803
|
+
#define WS_CGB 0x8000
|
|
804
|
+
|
|
805
|
+
#define WS_STANDARD 0x4317
|
|
806
|
+
|
|
807
|
+
/*! \} /defgroup */
|
|
808
|
+
|
|
809
|
+
// --- Reg screen entries ----------------------------------------------
|
|
810
|
+
|
|
811
|
+
/*! \defgroup grpVideoSE Screen-entry Flags
|
|
812
|
+
\ingroup grpMemBits
|
|
813
|
+
*/
|
|
814
|
+
/*! \{ */
|
|
815
|
+
|
|
816
|
+
#define SE_HFLIP 0x0400 //!< Horizontal flip
|
|
817
|
+
#define SE_VFLIP 0x0800 //!< Vertical flip
|
|
818
|
+
|
|
819
|
+
#define SE_ID_MASK 0x03FF
|
|
820
|
+
#define SE_ID_SHIFT 0
|
|
821
|
+
#define SE_ID(n) ((n)<<SE_ID_SHIFT)
|
|
822
|
+
|
|
823
|
+
#define SE_FLIP_MASK 0x0C00
|
|
824
|
+
#define SE_FLIP_SHIFT 10
|
|
825
|
+
#define SE_FLIP(n) ((n)<<SE_FLIP_SHIFT)
|
|
826
|
+
|
|
827
|
+
#define SE_PALBANK_MASK 0xF000
|
|
828
|
+
#define SE_PALBANK_SHIFT 12
|
|
829
|
+
#define SE_PALBANK(n) ((n)<<SE_PALBANK_SHIFT)
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
#define SE_BUILD(id, PALBANK, hflip, vflip) \
|
|
833
|
+
( ((id)&0x03FF) | (((hflip)&1)<<10) | (((vflip)&1)<<11) | ((PALBANK)<<12) )
|
|
834
|
+
|
|
835
|
+
|
|
836
|
+
/*! \} /defgroup */
|
|
837
|
+
|
|
838
|
+
// --- OAM attribute 0 -------------------------------------------------
|
|
839
|
+
|
|
840
|
+
/*! \defgroup grpVideoAttr0 Object Attribute 0 Flags
|
|
841
|
+
\ingroup grpMemBits
|
|
842
|
+
*/
|
|
843
|
+
/*! \{ */
|
|
844
|
+
|
|
845
|
+
#define ATTR0_REG 0 //!< Regular object
|
|
846
|
+
#define ATTR0_AFF 0x0100 //!< Affine object
|
|
847
|
+
#define ATTR0_HIDE 0x0200 //!< Inactive object
|
|
848
|
+
#define ATTR0_AFF_DBL 0x0300 //!< Double-size affine object
|
|
849
|
+
#define ATTR0_AFF_DBL_BIT 0x0200
|
|
850
|
+
#define ATTR0_BLEND 0x0400 //!< Enable blend
|
|
851
|
+
#define ATTR0_WINDOW 0x0800 //!< Use for object window
|
|
852
|
+
#define ATTR0_MOSAIC 0x1000 //!< Enable mosaic
|
|
853
|
+
#define ATTR0_4BPP 0 //!< Use 4bpp (16 color) tiles
|
|
854
|
+
#define ATTR0_8BPP 0x2000 //!< Use 8bpp (256 color) tiles
|
|
855
|
+
#define ATTR0_SQUARE 0 //!< Square shape
|
|
856
|
+
#define ATTR0_WIDE 0x4000 //!< Tall shape (height > width)
|
|
857
|
+
#define ATTR0_TALL 0x8000 //!< Wide shape (height < width)
|
|
858
|
+
|
|
859
|
+
#define ATTR0_Y_MASK 0x00FF
|
|
860
|
+
#define ATTR0_Y_SHIFT 0
|
|
861
|
+
#define ATTR0_Y(n) ((n)<<ATTR0_Y_SHIFT)
|
|
862
|
+
|
|
863
|
+
#define ATTR0_MODE_MASK 0x0300
|
|
864
|
+
#define ATTR0_MODE_SHIFT 8
|
|
865
|
+
#define ATTR0_MODE(n) ((n)<<ATTR0_MODE_SHIFT)
|
|
866
|
+
|
|
867
|
+
#define ATTR0_SHAPE_MASK 0xC000
|
|
868
|
+
#define ATTR0_SHAPE_SHIFT 14
|
|
869
|
+
#define ATTR0_SHAPE(n) ((n)<<ATTR0_SHAPE_SHIFT)
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
#define ATTR0_BUILD(y, shape, bpp, mode, mos, bld, win) \
|
|
873
|
+
( \
|
|
874
|
+
((y)&255) | (((mode)&3)<<8) | (((bld)&1)<<10) | (((win)&1)<<11) \
|
|
875
|
+
| (((mos)&1)<<12) | (((bpp)&8)<<10)| (((shape)&3)<<14) \
|
|
876
|
+
)
|
|
877
|
+
|
|
878
|
+
/*! \} /defgroup */
|
|
879
|
+
|
|
880
|
+
// --- OAM attribute 1 -------------------------------------------------
|
|
881
|
+
|
|
882
|
+
/*! \defgroup grpVideoAttr1 Object Attribute 1 Flags
|
|
883
|
+
\ingroup grpMemBits
|
|
884
|
+
*/
|
|
885
|
+
/*! \{ */
|
|
886
|
+
|
|
887
|
+
#define ATTR1_HFLIP 0x1000 //!< Horizontal flip (reg obj only)
|
|
888
|
+
#define ATTR1_VFLIP 0x2000 //!< Vertical flip (reg obj only)
|
|
889
|
+
// Base sizes
|
|
890
|
+
#define ATTR1_SIZE_8 0
|
|
891
|
+
#define ATTR1_SIZE_16 0x4000
|
|
892
|
+
#define ATTR1_SIZE_32 0x8000
|
|
893
|
+
#define ATTR1_SIZE_64 0xC000
|
|
894
|
+
// Square sizes
|
|
895
|
+
#define ATTR1_SIZE_8x8 0 //!< Size flag for 8x8 px object
|
|
896
|
+
#define ATTR1_SIZE_16x16 0x4000 //!< Size flag for 16x16 px object
|
|
897
|
+
#define ATTR1_SIZE_32x32 0x8000 //!< Size flag for 32x32 px object
|
|
898
|
+
#define ATTR1_SIZE_64x64 0xC000 //!< Size flag for 64x64 px object
|
|
899
|
+
// Tall sizes
|
|
900
|
+
#define ATTR1_SIZE_8x16 0 //!< Size flag for 8x16 px object
|
|
901
|
+
#define ATTR1_SIZE_8x32 0x4000 //!< Size flag for 8x32 px object
|
|
902
|
+
#define ATTR1_SIZE_16x32 0x8000 //!< Size flag for 16x32 px object
|
|
903
|
+
#define ATTR1_SIZE_32x64 0xC000 //!< Size flag for 32x64 px object
|
|
904
|
+
// Wide sizes
|
|
905
|
+
#define ATTR1_SIZE_16x8 0 //!< Size flag for 16x8 px object
|
|
906
|
+
#define ATTR1_SIZE_32x8 0x4000 //!< Size flag for 32x8 px object
|
|
907
|
+
#define ATTR1_SIZE_32x16 0x8000 //!< Size flag for 32x16 px object
|
|
908
|
+
#define ATTR1_SIZE_64x32 0xC000 //!< Size flag for 64x64 px object
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
#define ATTR1_X_MASK 0x01FF
|
|
912
|
+
#define ATTR1_X_SHIFT 0
|
|
913
|
+
#define ATTR1_X(n) ((n)<<ATTR1_X_SHIFT)
|
|
914
|
+
|
|
915
|
+
#define ATTR1_AFF_ID_MASK 0x3E00
|
|
916
|
+
#define ATTR1_AFF_ID_SHIFT 9
|
|
917
|
+
#define ATTR1_AFF_ID(n) ((n)<<ATTR1_AFF_ID_SHIFT)
|
|
918
|
+
|
|
919
|
+
#define ATTR1_FLIP_MASK 0x3000
|
|
920
|
+
#define ATTR1_FLIP_SHIFT 12
|
|
921
|
+
#define ATTR1_FLIP(n) ((n)<<ATTR1_FLIP_SHIFT)
|
|
922
|
+
|
|
923
|
+
#define ATTR1_SIZE_MASK 0xC000
|
|
924
|
+
#define ATTR1_SIZE_SHIFT 14
|
|
925
|
+
#define ATTR1_SIZE(n) ((n)<<ATTR1_SIZE_SHIFT)
|
|
926
|
+
|
|
927
|
+
|
|
928
|
+
#define ATTR1_BUILDR(x, size, hflip, vflip) \
|
|
929
|
+
( ((x)&511) | (((hflip)&1)<<12) | (((vflip)&1)<<13) | (((size)&3)<<14) )
|
|
930
|
+
|
|
931
|
+
#define ATTR1_BUILDA(x, size, affid) \
|
|
932
|
+
( ((x)&511) | (((affid)&31)<<9) | (((size)&3)<<14) )
|
|
933
|
+
|
|
934
|
+
/*! \} /defgroup */
|
|
935
|
+
|
|
936
|
+
// --- OAM attribute 2 -------------------------------------------------
|
|
937
|
+
|
|
938
|
+
/*! \defgroup grpVideoAttr2 Object Attribute 2 Flags
|
|
939
|
+
\ingroup grpMemBits
|
|
940
|
+
*/
|
|
941
|
+
/*! \{ */
|
|
942
|
+
|
|
943
|
+
#define ATTR2_ID_MASK 0x03FF
|
|
944
|
+
#define ATTR2_ID_SHIFT 0
|
|
945
|
+
#define ATTR2_ID(n) ((n)<<ATTR2_ID_SHIFT)
|
|
946
|
+
|
|
947
|
+
#define ATTR2_PRIO_MASK 0x0C00
|
|
948
|
+
#define ATTR2_PRIO_SHIFT 10
|
|
949
|
+
#define ATTR2_PRIO(n) ((n)<<ATTR2_PRIO_SHIFT)
|
|
950
|
+
|
|
951
|
+
#define ATTR2_PALBANK_MASK 0xF000
|
|
952
|
+
#define ATTR2_PALBANK_SHIFT 12
|
|
953
|
+
#define ATTR2_PALBANK(n) ((n)<<ATTR2_PALBANK_SHIFT)
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
#define ATTR2_BUILD(id, pb, prio) \
|
|
957
|
+
( ((id)&0x3FF) | (((pb)&15)<<12) | (((prio)&3)<<10) )
|
|
958
|
+
|
|
959
|
+
/*! \} //defgroup */
|
|
960
|
+
|
|
961
|
+
|
|
962
|
+
#endif // TONC_MEMDEF
|