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,1150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* \file vdp.h
|
|
3
|
+
* \brief VDP main
|
|
4
|
+
* \author Stephane Dallongeville
|
|
5
|
+
* \date 08/2011
|
|
6
|
+
* \addtogroup VDP VDP
|
|
7
|
+
* \{
|
|
8
|
+
*
|
|
9
|
+
* This unit provides general VDP (Video Display Processor) methods:<br>
|
|
10
|
+
* - initialisation<br>
|
|
11
|
+
* - get / set register<br>
|
|
12
|
+
* - get / set resolution<br>
|
|
13
|
+
* - enable / disable VDP features<br>
|
|
14
|
+
* <br>
|
|
15
|
+
* <b>WARNING:</b> It's very important that VRAM is organized with tile data being located before tilemaps and tables:<br>
|
|
16
|
+
* 0000-XXXX = tile data<br>
|
|
17
|
+
* XXXX-FFFF = tilemaps & tables (H scroll table, sprite table, B/A plane and window plane).<br>
|
|
18
|
+
* <br>
|
|
19
|
+
* If you don't respect that you may get in troubles as SGDK expect it ;)
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#ifndef _VDP_H_
|
|
23
|
+
#define _VDP_H_
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* \brief
|
|
28
|
+
* VDP Data port address.
|
|
29
|
+
*/
|
|
30
|
+
#define VDP_DATA_PORT 0xC00000
|
|
31
|
+
/**
|
|
32
|
+
* \brief
|
|
33
|
+
* VDP Control port address.
|
|
34
|
+
*/
|
|
35
|
+
#define VDP_CTRL_PORT 0xC00004
|
|
36
|
+
/**
|
|
37
|
+
* \brief
|
|
38
|
+
* VDP HV counter port address.
|
|
39
|
+
*/
|
|
40
|
+
#define VDP_HVCOUNTER_PORT 0xC00008
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* \deprecated
|
|
44
|
+
* Use #VDP_DATA_PORT instead
|
|
45
|
+
*/
|
|
46
|
+
#define GFX_DATA_PORT _Pragma("GCC error \"This definition is deprecated, use VDP_DATA_PORT instead.\"")
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* \deprecated
|
|
50
|
+
* Use #VDP_CTRL_PORT instead
|
|
51
|
+
*/
|
|
52
|
+
#define GFX_CTRL_PORT _Pragma("GCC error \"This definition is deprecated, use VDP_CTRL_PORT instead.\"")
|
|
53
|
+
/**
|
|
54
|
+
* \deprecated
|
|
55
|
+
* Use #VDP_HVCOUNTER_PORT instead
|
|
56
|
+
*/
|
|
57
|
+
#define GFX_HVCOUNTER_PORT _Pragma("GCC error \"This definition is deprecated, use VDP_HVCOUNTER_PORT instead.\"")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* \brief
|
|
62
|
+
* VDP FIFO empty flag.
|
|
63
|
+
*/
|
|
64
|
+
#define VDP_FIFOEMPTY_FLAG (1 << 9)
|
|
65
|
+
/**
|
|
66
|
+
* \brief
|
|
67
|
+
* VDP FIFO full flag.
|
|
68
|
+
*/
|
|
69
|
+
#define VDP_FIFOFULL_FLAG (1 << 8)
|
|
70
|
+
/**
|
|
71
|
+
* \brief
|
|
72
|
+
* VDP Vertical interrupt pending flag.
|
|
73
|
+
*/
|
|
74
|
+
#define VDP_VINTPENDING_FLAG (1 << 7)
|
|
75
|
+
/**
|
|
76
|
+
* \brief
|
|
77
|
+
* VDP sprite overflow flag.
|
|
78
|
+
*/
|
|
79
|
+
#define VDP_SPROVERFLOW_FLAG (1 << 6)
|
|
80
|
+
/**
|
|
81
|
+
* \brief
|
|
82
|
+
* VDP sprite collision flag.
|
|
83
|
+
*/
|
|
84
|
+
#define VDP_SPRCOLLISION_FLAG (1 << 5)
|
|
85
|
+
/**
|
|
86
|
+
* \brief
|
|
87
|
+
* VDP odd frame flag.
|
|
88
|
+
*/
|
|
89
|
+
#define VDP_ODDFRAME_FLAG (1 << 4)
|
|
90
|
+
/**
|
|
91
|
+
* \brief
|
|
92
|
+
* VDP Vertical blanking flag.
|
|
93
|
+
*/
|
|
94
|
+
#define VDP_VBLANK_FLAG (1 << 3)
|
|
95
|
+
/**
|
|
96
|
+
* \brief
|
|
97
|
+
* VDP Horizontal blanking flag.
|
|
98
|
+
*/
|
|
99
|
+
#define VDP_HBLANK_FLAG (1 << 2)
|
|
100
|
+
/**
|
|
101
|
+
* \brief
|
|
102
|
+
* VDP DMA busy flag.
|
|
103
|
+
*/
|
|
104
|
+
#define VDP_DMABUSY_FLAG (1 << 1)
|
|
105
|
+
/**
|
|
106
|
+
* \brief
|
|
107
|
+
* VDP PAL mode flag.
|
|
108
|
+
*/
|
|
109
|
+
#define VDP_PALMODE_FLAG (1 << 0)
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* \deprecated
|
|
113
|
+
* Use VDP_BG_A instead
|
|
114
|
+
*/
|
|
115
|
+
#define VDP_PLAN_A _Pragma("GCC error \"This definition is deprecated, use VDP_BG_A instead.\"")
|
|
116
|
+
/**
|
|
117
|
+
* \deprecated
|
|
118
|
+
* Use VDP_BG_B instead
|
|
119
|
+
*/
|
|
120
|
+
#define VDP_PLAN_B _Pragma("GCC error \"This definition is deprecated, use VDP_BG_B instead.\"")
|
|
121
|
+
/**
|
|
122
|
+
* \deprecated
|
|
123
|
+
* Use VDP_WINDOW instead
|
|
124
|
+
*/
|
|
125
|
+
#define VDP_PLAN_WINDOW _Pragma("GCC error \"This definition is deprecated, use VDP_WINDOW instead.\"")
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* \brief
|
|
129
|
+
* VDP background A tilemap address in VRAM.
|
|
130
|
+
*/
|
|
131
|
+
#define VDP_BG_A bga_addr
|
|
132
|
+
/**
|
|
133
|
+
* \brief
|
|
134
|
+
* VDP background B tilemap address in VRAM.
|
|
135
|
+
*/
|
|
136
|
+
#define VDP_BG_B bgb_addr
|
|
137
|
+
/**
|
|
138
|
+
* \brief
|
|
139
|
+
* VDP window tilemap address in VRAM.
|
|
140
|
+
*/
|
|
141
|
+
#define VDP_WINDOW window_addr
|
|
142
|
+
/**
|
|
143
|
+
* \brief
|
|
144
|
+
* VDP horizontal scroll table address in VRAM.
|
|
145
|
+
*/
|
|
146
|
+
#define VDP_HSCROLL_TABLE hscrl_addr
|
|
147
|
+
/**
|
|
148
|
+
* \brief
|
|
149
|
+
* VDP sprite list table address in VRAM.
|
|
150
|
+
*/
|
|
151
|
+
#define VDP_SPRITE_TABLE slist_addr
|
|
152
|
+
/**
|
|
153
|
+
* \brief
|
|
154
|
+
* Address in VRAM where tilemaps start (= address of first tilemap / table in VRAM).
|
|
155
|
+
*/
|
|
156
|
+
#define VDP_MAPS_START maps_addr
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* \brief
|
|
160
|
+
* Definition to set horizontal scroll to mode plane.
|
|
161
|
+
*/
|
|
162
|
+
#define HSCROLL_PLANE 0
|
|
163
|
+
/**
|
|
164
|
+
* \brief
|
|
165
|
+
* Definition to set horizontal scroll to mode tile.
|
|
166
|
+
*/
|
|
167
|
+
#define HSCROLL_TILE 2
|
|
168
|
+
/**
|
|
169
|
+
* \brief
|
|
170
|
+
* Definition to set horizontal scroll to mode line.
|
|
171
|
+
*/
|
|
172
|
+
#define HSCROLL_LINE 3
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* \brief
|
|
176
|
+
* Definition to set vertical scroll to mode plane.
|
|
177
|
+
*/
|
|
178
|
+
#define VSCROLL_PLANE 0
|
|
179
|
+
/**
|
|
180
|
+
* \brief
|
|
181
|
+
* Definition to set vertical scroll to mode column (2 tiles width).
|
|
182
|
+
*/
|
|
183
|
+
#define VSCROLL_COLUMN 1
|
|
184
|
+
/**
|
|
185
|
+
* \deprecated
|
|
186
|
+
* Use VSCROLL_COLUMN instead
|
|
187
|
+
*/
|
|
188
|
+
#define VSCROLL_2TILE _Pragma("GCC error \"This definition is deprecated, use VSCROLL_COLUMN instead.\"")
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* \brief
|
|
192
|
+
* Interlaced scanning mode disabled.<br>
|
|
193
|
+
* That is the default mode for the VDP.
|
|
194
|
+
*/
|
|
195
|
+
#define INTERLACED_NONE 0
|
|
196
|
+
/**
|
|
197
|
+
* \brief
|
|
198
|
+
* Interlaced Scanning Mode 1 - 8x8 dots per cell (normal vertical resolution)<br>
|
|
199
|
+
* In Interlaced Mode 1, the same pattern will be displayed on the adjacent lines of even and odd numbered fields.
|
|
200
|
+
*/
|
|
201
|
+
#define INTERLACED_MODE1 1
|
|
202
|
+
/**
|
|
203
|
+
* \brief
|
|
204
|
+
* Interlaced Scanning Mode 2 - 8x16 dots per cell (double vertical resolution)<br>
|
|
205
|
+
* In Interlaced Mode 2, different patterns can be displayed on the adjacent lines of even and odd numbered fields.
|
|
206
|
+
*/
|
|
207
|
+
#define INTERLACED_MODE2 2
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* \brief
|
|
211
|
+
* SGDK font length
|
|
212
|
+
*/
|
|
213
|
+
#define FONT_LENGTH 96
|
|
214
|
+
#define FONT_LEN _Pragma("GCC error \"This definition is deprecated, use FONT_LENGTH instead.\"")
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* \brief
|
|
218
|
+
* Size of a single tile in byte.
|
|
219
|
+
*/
|
|
220
|
+
#define TILE_SIZE 32
|
|
221
|
+
#define TILE_INDEX_MASK (0xFFFF / TILE_SIZE)
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* \brief
|
|
225
|
+
* Space in byte for tile in VRAM (tile space ends where tilemaps starts)
|
|
226
|
+
*/
|
|
227
|
+
#define TILE_SPACE VDP_MAPS_START
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* \brief
|
|
231
|
+
* Maximum number of tile in VRAM (related to TILE_SPACE).
|
|
232
|
+
*/
|
|
233
|
+
#define TILE_MAX_NUM (TILE_SPACE / TILE_SIZE)
|
|
234
|
+
/**
|
|
235
|
+
* \brief
|
|
236
|
+
* Maximum tile index in VRAM (related to TILE_MAXNUM).
|
|
237
|
+
*/
|
|
238
|
+
#define TILE_MAX_INDEX (TILE_MAXNUM - 1)
|
|
239
|
+
/**
|
|
240
|
+
* \brief
|
|
241
|
+
* System base tile index in VRAM.
|
|
242
|
+
*/
|
|
243
|
+
#define TILE_SYSTEM_INDEX 0x0000
|
|
244
|
+
/**
|
|
245
|
+
* \brief
|
|
246
|
+
* Number of system tile.
|
|
247
|
+
*/
|
|
248
|
+
#define TILE_SYSTEM_LENGTH 16
|
|
249
|
+
/**
|
|
250
|
+
* \brief
|
|
251
|
+
* User base tile index.
|
|
252
|
+
*/
|
|
253
|
+
#if (LEGACY_FONT_LOCATION != 0)
|
|
254
|
+
#define TILE_USER_INDEX (TILE_SYSTEM_INDEX + TILE_SYSTEM_LENGTH)
|
|
255
|
+
#else
|
|
256
|
+
#define TILE_USER_INDEX (TILE_SYSTEM_INDEX + TILE_SYSTEM_LENGTH + FONT_LENGTH)
|
|
257
|
+
#endif
|
|
258
|
+
/**
|
|
259
|
+
* \brief
|
|
260
|
+
* Font base tile index.
|
|
261
|
+
*/
|
|
262
|
+
#if (LEGACY_FONT_LOCATION != 0)
|
|
263
|
+
#define TILE_FONT_INDEX (TILE_MAX_NUM - FONT_LENGTH)
|
|
264
|
+
#else
|
|
265
|
+
#define TILE_FONT_INDEX (TILE_SYSTEM_INDEX + TILE_SYSTEM_LENGTH)
|
|
266
|
+
#endif
|
|
267
|
+
/**
|
|
268
|
+
* \brief
|
|
269
|
+
* Sprite engine base tile index (should be located at the end of tileset space)
|
|
270
|
+
*/
|
|
271
|
+
#if (LEGACY_FONT_LOCATION != 0)
|
|
272
|
+
#define TILE_SPRITE_INDEX (TILE_FONT_INDEX - spriteVramSize)
|
|
273
|
+
#else
|
|
274
|
+
#define TILE_SPRITE_INDEX (TILE_MAX_NUM - spriteVramSize)
|
|
275
|
+
#endif
|
|
276
|
+
/**
|
|
277
|
+
* \brief
|
|
278
|
+
* Number of available user tile.
|
|
279
|
+
*/
|
|
280
|
+
#define TILE_USER_LENGTH ((userTileMaxIndex - TILE_USER_INDEX) + 1)
|
|
281
|
+
/**
|
|
282
|
+
* \brief
|
|
283
|
+
* Maximum tile index in VRAM reserved for user (for background and user managed sprites)
|
|
284
|
+
*/
|
|
285
|
+
#define TILE_USER_MAX_INDEX userTileMaxIndex
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* \deprecated
|
|
289
|
+
* Use TILE_MAX_NUM instead
|
|
290
|
+
*/
|
|
291
|
+
#define TILE_MAXNUM _Pragma("GCC error \"This definition is deprecated, use TILE_MAX_NUM instead.\"")
|
|
292
|
+
/**
|
|
293
|
+
* \deprecated
|
|
294
|
+
* Use TILE_MAX_INDEX instead
|
|
295
|
+
*/
|
|
296
|
+
#define TILE_MAXINDEX _Pragma("GCC error \"This definition is deprecated, use TILE_MAX_INDEX instead.\"")
|
|
297
|
+
/**
|
|
298
|
+
* \deprecated Use TILE_SYSTEM_LENGTH instead.
|
|
299
|
+
*/
|
|
300
|
+
#define TILE_SYSTEM_LENGHT _Pragma("GCC error \"This definition is deprecated, use TILE_SYSTEM_LENGTH instead.\"")
|
|
301
|
+
/**
|
|
302
|
+
* \deprecated
|
|
303
|
+
* Use TILE_SYSTEM_LENGTH instead
|
|
304
|
+
*/
|
|
305
|
+
#define TILE_SYSTEMLENGTH _Pragma("GCC error \"This definition is deprecated, use TILE_SYSTEM_LENGTH instead.\"")
|
|
306
|
+
/**
|
|
307
|
+
* \deprecated
|
|
308
|
+
* Use TILE_SYSTEM_INDEX instead
|
|
309
|
+
*/
|
|
310
|
+
#define TILE_SYSTEMINDEX _Pragma("GCC error \"This definition is deprecated, use TILE_SYSTEM_INDEX instead.\"")
|
|
311
|
+
/**
|
|
312
|
+
* \deprecated
|
|
313
|
+
* Use TILE_USER_INDEX instead
|
|
314
|
+
*/
|
|
315
|
+
#define TILE_USERINDEX _Pragma("GCC error \"This definition is deprecated, use TILE_USER_INDEX instead.\"")
|
|
316
|
+
/**
|
|
317
|
+
* \deprecated
|
|
318
|
+
* Use TILE_FONT_INDEX instead
|
|
319
|
+
*/
|
|
320
|
+
#define TILE_FONTINDEX _Pragma("GCC error \"This definition is deprecated, use TILE_FONT_INDEX instead.\"")
|
|
321
|
+
/**
|
|
322
|
+
* \deprecated
|
|
323
|
+
* Use TILE_SPRITE_INDEX instead
|
|
324
|
+
*/
|
|
325
|
+
#define TILE_SPRITEINDEX _Pragma("GCC error \"This definition is deprecated, use TILE_SPRITE_INDEX instead.\"")
|
|
326
|
+
/**
|
|
327
|
+
* \deprecated
|
|
328
|
+
* Use TILE_USER_LENGTH instead
|
|
329
|
+
*/
|
|
330
|
+
#define TILE_USERLENGTH _Pragma("GCC error \"This definition is deprecated, use TILE_USER_LENGTH instead.\"")
|
|
331
|
+
/**
|
|
332
|
+
* \deprecated
|
|
333
|
+
* Use TILE_USER_MAX_INDEX instead
|
|
334
|
+
*/
|
|
335
|
+
#define TILE_USERMAXINDEX _Pragma("GCC error \"This definition is deprecated, use TILE_USER_MAX_INDEX instead.\"")
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* \brief
|
|
339
|
+
* System tile address in VRAM.
|
|
340
|
+
*/
|
|
341
|
+
#define TILE_SYSTEM (TILE_SYSTEM_INDEX * TILE_SIZE)
|
|
342
|
+
/**
|
|
343
|
+
* \brief
|
|
344
|
+
* User tile address in VRAM.
|
|
345
|
+
*/
|
|
346
|
+
#define TILE_USER (TILE_USER_INDEX * TILE_SIZE)
|
|
347
|
+
/**
|
|
348
|
+
* \brief
|
|
349
|
+
* Font tile address in VRAM.
|
|
350
|
+
*/
|
|
351
|
+
#define TILE_FONT (TILE_FONT_INDEX * TILE_SIZE)
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* \brief
|
|
355
|
+
* Palette 0
|
|
356
|
+
*/
|
|
357
|
+
#define PAL0 0
|
|
358
|
+
/**
|
|
359
|
+
* \brief
|
|
360
|
+
* Palette 1
|
|
361
|
+
*/
|
|
362
|
+
#define PAL1 1
|
|
363
|
+
/**
|
|
364
|
+
* \brief
|
|
365
|
+
* Palette 2
|
|
366
|
+
*/
|
|
367
|
+
#define PAL2 2
|
|
368
|
+
/**
|
|
369
|
+
* \brief
|
|
370
|
+
* Palette 3
|
|
371
|
+
*/
|
|
372
|
+
#define PAL3 3
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* \brief
|
|
376
|
+
* Set VDP command to read specified VRAM address.
|
|
377
|
+
*/
|
|
378
|
+
#define VDP_READ_VRAM_ADDR(adr) (((0x0000 + ((adr) & 0x3FFF)) << 16) + (((adr) >> 14) | 0x00))
|
|
379
|
+
/**
|
|
380
|
+
* \brief
|
|
381
|
+
* Set VDP command to read specified CRAM address.
|
|
382
|
+
*/
|
|
383
|
+
#define VDP_READ_CRAM_ADDR(adr) (((0x0000 + ((adr) & 0x7F)) << 16) + 0x20)
|
|
384
|
+
/**
|
|
385
|
+
* \brief
|
|
386
|
+
* Set VDP command to read specified VSRAM address.
|
|
387
|
+
*/
|
|
388
|
+
#define VDP_READ_VSRAM_ADDR(adr) (((0x0000 + ((adr) & 0x7F)) << 16) + 0x10)
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* \brief
|
|
392
|
+
* Set VDP command to write at specified VRAM address.
|
|
393
|
+
*/
|
|
394
|
+
#define VDP_WRITE_VRAM_ADDR(adr) (((0x4000 + ((adr) & 0x3FFF)) << 16) + (((adr) >> 14) | 0x00))
|
|
395
|
+
/**
|
|
396
|
+
* \brief
|
|
397
|
+
* Set VDP command to write at specified CRAM address.
|
|
398
|
+
*/
|
|
399
|
+
#define VDP_WRITE_CRAM_ADDR(adr) (((0xC000 + ((adr) & 0x7F)) << 16) + 0x00)
|
|
400
|
+
/**
|
|
401
|
+
* \brief
|
|
402
|
+
* Set VDP command to write at specified VSRAM address.
|
|
403
|
+
*/
|
|
404
|
+
#define VDP_WRITE_VSRAM_ADDR(adr) (((0x4000 + ((adr) & 0x7F)) << 16) + 0x10)
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* \brief
|
|
408
|
+
* Set VDP command to issue a DMA transfert to specified VRAM address.
|
|
409
|
+
*/
|
|
410
|
+
#define VDP_DMA_VRAM_ADDR(adr) (((0x4000 + ((adr) & 0x3FFF)) << 16) + (((adr) >> 14) | 0x80))
|
|
411
|
+
/**
|
|
412
|
+
* \brief
|
|
413
|
+
* Set VDP command to issue a DMA transfert to specified CRAM address.
|
|
414
|
+
*/
|
|
415
|
+
#define VDP_DMA_CRAM_ADDR(adr) (((0xC000 + ((adr) & 0x7F)) << 16) + 0x80)
|
|
416
|
+
/**
|
|
417
|
+
* \brief
|
|
418
|
+
* Set VDP command to issue a DMA transfert to specified VSRAM address.
|
|
419
|
+
*/
|
|
420
|
+
#define VDP_DMA_VSRAM_ADDR(adr) (((0x4000 + ((adr) & 0x7F)) << 16) + 0x90)
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* \brief
|
|
424
|
+
* Set VDP command to issue a DMA VRAM copy to specified VRAM address.
|
|
425
|
+
*/
|
|
426
|
+
#define VDP_DMA_VRAMCOPY_ADDR(adr) (((0x4000 + ((adr) & 0x3FFF)) << 16) + (((adr) >> 14) | 0xC0))
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* \brief
|
|
430
|
+
* Helper to write in vertical scroll table (same as VDP_WRITE_VSRAM_ADDR).
|
|
431
|
+
*/
|
|
432
|
+
#define VDP_VERT_SCROLL(adr) VDP_WRITE_VSRAM_ADDR(adr)
|
|
433
|
+
/**
|
|
434
|
+
* \brief
|
|
435
|
+
* Helper to write in horizontal scroll table (same as VDP_WRITE_VRAM_ADDR(VDP_SCROLL_H + adr)).
|
|
436
|
+
*/
|
|
437
|
+
#define VDP_HORZ_SCROLL(adr) VDP_WRITE_VRAM_ADDR(VDP_SCROLL_H + (adr))
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* \deprecated
|
|
441
|
+
* Use #VDP_READ_VRAM_ADDR instead
|
|
442
|
+
*/
|
|
443
|
+
#define GFX_READ_VRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_READ_VRAM_ADDR instead.\""))
|
|
444
|
+
/**
|
|
445
|
+
* \deprecated
|
|
446
|
+
* Use #VDP_READ_CRAM_ADDR instead
|
|
447
|
+
*/
|
|
448
|
+
#define GFX_READ_CRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_READ_CRAM_ADDR instead.\"")
|
|
449
|
+
/**
|
|
450
|
+
* \deprecated
|
|
451
|
+
* Use #VDP_READ_VSRAM_ADDR instead
|
|
452
|
+
*/
|
|
453
|
+
#define GFX_READ_VSRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_READ_VSRAM_ADDR instead.\"")
|
|
454
|
+
/**
|
|
455
|
+
* \deprecated
|
|
456
|
+
* Use #VDP_WRITE_VRAM_ADDR instead
|
|
457
|
+
*/
|
|
458
|
+
#define GFX_WRITE_VRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_WRITE_VRAM_ADDR instead.\"")
|
|
459
|
+
/**
|
|
460
|
+
* \deprecated
|
|
461
|
+
* Use #VDP_WRITE_CRAM_ADDR instead
|
|
462
|
+
*/
|
|
463
|
+
#define GFX_WRITE_CRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_WRITE_CRAM_ADDR instead.\"")
|
|
464
|
+
/**
|
|
465
|
+
* \deprecated
|
|
466
|
+
* Use #VDP_WRITE_VSRAM_ADDR instead
|
|
467
|
+
*/
|
|
468
|
+
#define GFX_WRITE_VSRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_WRITE_VSRAM_ADDR instead.\"")
|
|
469
|
+
/**
|
|
470
|
+
* \deprecated
|
|
471
|
+
* Use #VDP_DMA_VRAM_ADDR instead
|
|
472
|
+
*/
|
|
473
|
+
#define GFX_DMA_VRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_DMA_VRAM_ADDR instead.\"")
|
|
474
|
+
/**
|
|
475
|
+
* \deprecated
|
|
476
|
+
* Use #VDP_DMA_CRAM_ADDR instead
|
|
477
|
+
*/
|
|
478
|
+
#define GFX_DMA_CRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_DMA_CRAM_ADDR instead.\"")
|
|
479
|
+
/**
|
|
480
|
+
* \deprecated
|
|
481
|
+
* Use #VDP_DMA_VSRAM_ADDR instead
|
|
482
|
+
*/
|
|
483
|
+
#define GFX_DMA_VSRAM_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_DMA_VSRAM_ADDR instead.\"")
|
|
484
|
+
/**
|
|
485
|
+
* \deprecated
|
|
486
|
+
* Use #VDP_DMA_VRAMCOPY_ADDR instead
|
|
487
|
+
*/
|
|
488
|
+
#define GFX_DMA_VRAMCOPY_ADDR(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_DMA_VRAMCOPY_ADDR instead.\"")
|
|
489
|
+
/**
|
|
490
|
+
* \deprecated
|
|
491
|
+
* Use #VDP_VERT_SCROLL instead
|
|
492
|
+
*/
|
|
493
|
+
#define GFX_VERT_SCROLL(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_VERT_SCROLL instead.\"")
|
|
494
|
+
/**
|
|
495
|
+
* \deprecated
|
|
496
|
+
* Use #VDP_HORZ_SCROLL instead
|
|
497
|
+
*/
|
|
498
|
+
#define GFX_HORZ_SCROLL(adr) _Pragma("GCC error \"This definition is deprecated, use VDP_HORZ_SCROLL instead.\"")
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* \brief
|
|
503
|
+
* Tests VDP status against specified flag (see VDP_XXX_FLAG).
|
|
504
|
+
*/
|
|
505
|
+
#define GET_VDP_STATUS(flag) ((*(vu16*)(VDP_CTRL_PORT)) & (flag))
|
|
506
|
+
/**
|
|
507
|
+
* \brief
|
|
508
|
+
* Tests if current system is a PAL system (50 Hz).
|
|
509
|
+
*/
|
|
510
|
+
#define IS_PAL_SYSTEM GET_VDP_STATUS(VDP_PALMODE_FLAG)
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* \brief
|
|
514
|
+
* Returns HV counter.
|
|
515
|
+
*/
|
|
516
|
+
#define GET_HVCOUNTER (*(vu16*)(VDP_HVCOUNTER_PORT))
|
|
517
|
+
/**
|
|
518
|
+
* \brief
|
|
519
|
+
* Returns Horizontal counter.
|
|
520
|
+
*/
|
|
521
|
+
#define GET_HCOUNTER (GET_HVCOUNTER & 0xFF)
|
|
522
|
+
/**
|
|
523
|
+
* \brief
|
|
524
|
+
* Returns Vertical counter.
|
|
525
|
+
*/
|
|
526
|
+
#define GET_VCOUNTER (GET_HVCOUNTER >> 8)
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* \brief
|
|
531
|
+
* Type used to define on which plane to work (used by some methods).
|
|
532
|
+
*/
|
|
533
|
+
typedef enum
|
|
534
|
+
{
|
|
535
|
+
BG_A = 0, BG_B = 1, WINDOW = 2
|
|
536
|
+
} VDPPlane;
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
// used by define
|
|
540
|
+
extern u16 window_addr;
|
|
541
|
+
extern u16 bga_addr;
|
|
542
|
+
extern u16 bgb_addr;
|
|
543
|
+
extern u16 hscrl_addr;
|
|
544
|
+
extern u16 slist_addr;
|
|
545
|
+
extern u16 maps_addr;
|
|
546
|
+
extern u16 userTileMaxIndex;
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* \brief
|
|
550
|
+
* Current screen width (horizontale resolution)
|
|
551
|
+
*/
|
|
552
|
+
extern u16 screenWidth;
|
|
553
|
+
/**
|
|
554
|
+
* \brief
|
|
555
|
+
* Current screen height (verticale resolution)
|
|
556
|
+
*/
|
|
557
|
+
extern u16 screenHeight;
|
|
558
|
+
/**
|
|
559
|
+
* \brief
|
|
560
|
+
* Current background plane width (in tile)
|
|
561
|
+
*
|
|
562
|
+
* Possible values are: 32, 64, 128
|
|
563
|
+
*/
|
|
564
|
+
extern u16 planeWidth;
|
|
565
|
+
/**
|
|
566
|
+
* \brief
|
|
567
|
+
* Current background plane height (in tile)
|
|
568
|
+
*
|
|
569
|
+
* Possible values are: 32, 64, 128
|
|
570
|
+
*/
|
|
571
|
+
extern u16 planeHeight;
|
|
572
|
+
/**
|
|
573
|
+
* \brief
|
|
574
|
+
* Current window width (in tile)
|
|
575
|
+
*
|
|
576
|
+
* Possible values are: 32, 64
|
|
577
|
+
*/
|
|
578
|
+
extern u16 windowWidth;
|
|
579
|
+
/**
|
|
580
|
+
* \brief
|
|
581
|
+
* Current background plane width bit shift
|
|
582
|
+
*
|
|
583
|
+
* Possible values are: 5, 6 or 7 (corresponding to plane width 32, 64 and 128)
|
|
584
|
+
*/
|
|
585
|
+
extern u16 planeWidthSft;
|
|
586
|
+
/**
|
|
587
|
+
* \brief
|
|
588
|
+
* Current background plane height bit shift
|
|
589
|
+
*
|
|
590
|
+
* Possible values are: 5, 6 or 7 (corresponding to plane height 32, 64 and 128)
|
|
591
|
+
*/
|
|
592
|
+
extern u16 planeHeightSft;
|
|
593
|
+
/**
|
|
594
|
+
* \brief
|
|
595
|
+
* Current window width bit shift
|
|
596
|
+
*
|
|
597
|
+
* Possible values are: 5 or 6 (corresponding to window width 32 or 64)
|
|
598
|
+
*/
|
|
599
|
+
extern u16 windowWidthSft;
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* \brief
|
|
604
|
+
* Initialize the whole VDP sub system.
|
|
605
|
+
*
|
|
606
|
+
* Reset VDP registers, reset sprites then call #VDP_resetScreen() to reset BG and palettes.
|
|
607
|
+
*/
|
|
608
|
+
void VDP_init(void);
|
|
609
|
+
|
|
610
|
+
/**
|
|
611
|
+
* \brief
|
|
612
|
+
* Reset background planes and palettes.
|
|
613
|
+
*
|
|
614
|
+
* Reset VRAM (clear BG planes and reload font), reset scrolls and reset palettes (set to default grey / red / green / blue ramps).
|
|
615
|
+
*/
|
|
616
|
+
void VDP_resetScreen(void);
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* \brief
|
|
620
|
+
* Get VDP register value.
|
|
621
|
+
*
|
|
622
|
+
* \param reg
|
|
623
|
+
* Register number we want to retrieve value.
|
|
624
|
+
* \return specified register value.
|
|
625
|
+
*/
|
|
626
|
+
u8 VDP_getReg(u16 reg);
|
|
627
|
+
/**
|
|
628
|
+
* \brief
|
|
629
|
+
* Set VDP register value.
|
|
630
|
+
*
|
|
631
|
+
* \param reg
|
|
632
|
+
* Register number we want to set value.
|
|
633
|
+
* Note that setting bit 7 of register number (reg | 0x80) allows the value to be written to the VDP
|
|
634
|
+
* without being 'cached' in the SGDK register array so VDP_getReg(reg) will return previous value.
|
|
635
|
+
* \param value
|
|
636
|
+
* value to set.
|
|
637
|
+
*/
|
|
638
|
+
void VDP_setReg(u16 reg, u8 value);
|
|
639
|
+
|
|
640
|
+
/**
|
|
641
|
+
* \brief
|
|
642
|
+
* Returns VDP enable state.
|
|
643
|
+
*/
|
|
644
|
+
bool VDP_getEnable(void);
|
|
645
|
+
/**
|
|
646
|
+
* \brief
|
|
647
|
+
* Returns VDP enable state.
|
|
648
|
+
*/
|
|
649
|
+
bool VDP_isEnable(void);
|
|
650
|
+
/**
|
|
651
|
+
* \brief
|
|
652
|
+
* Set VDP enable state.
|
|
653
|
+
*
|
|
654
|
+
* You can temporary disable VDP to speed up VDP memory transfert.
|
|
655
|
+
*/
|
|
656
|
+
void VDP_setEnable(bool value);
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* \brief
|
|
660
|
+
* Returns number of total scanline.
|
|
661
|
+
*
|
|
662
|
+
* 312 for PAL system and 262 for NTSC system.
|
|
663
|
+
*/
|
|
664
|
+
u16 VDP_getScanlineNumber(void);
|
|
665
|
+
/**
|
|
666
|
+
* \brief
|
|
667
|
+
* Returns vertical screen resolution.
|
|
668
|
+
*
|
|
669
|
+
* Always returns 224 on NTSC system as they only support this mode.<br>
|
|
670
|
+
* PAL system supports 240 pixels mode.
|
|
671
|
+
*/
|
|
672
|
+
u16 VDP_getScreenHeight(void);
|
|
673
|
+
/**
|
|
674
|
+
* \brief
|
|
675
|
+
* Set vertical resolution to 224 pixels.
|
|
676
|
+
*
|
|
677
|
+
* This is the only accepted mode for NTSC system.
|
|
678
|
+
*/
|
|
679
|
+
void VDP_setScreenHeight224(void);
|
|
680
|
+
/**
|
|
681
|
+
* \brief
|
|
682
|
+
* Set vertical resolution to 240 pixels.
|
|
683
|
+
*
|
|
684
|
+
* Only work on PAL system.
|
|
685
|
+
*/
|
|
686
|
+
void VDP_setScreenHeight240(void);
|
|
687
|
+
/**
|
|
688
|
+
* \brief
|
|
689
|
+
* Returns horizontal screen resolution.
|
|
690
|
+
*
|
|
691
|
+
* Returns 320 or 256 depending current horizontal resolution mode.
|
|
692
|
+
*/
|
|
693
|
+
u16 VDP_getScreenWidth(void);
|
|
694
|
+
/**
|
|
695
|
+
* \brief
|
|
696
|
+
* Set horizontal resolution to 256 pixels.
|
|
697
|
+
*/
|
|
698
|
+
void VDP_setScreenWidth256(void);
|
|
699
|
+
/**
|
|
700
|
+
* \brief
|
|
701
|
+
* Set horizontal resolution to 320 pixels.
|
|
702
|
+
*/
|
|
703
|
+
void VDP_setScreenWidth320(void);
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* \brief
|
|
707
|
+
* Return background plane width (in tile).
|
|
708
|
+
*/
|
|
709
|
+
u16 VDP_getPlaneWidth(void);
|
|
710
|
+
/**
|
|
711
|
+
* \brief
|
|
712
|
+
* Return background plane height (in tile).
|
|
713
|
+
*/
|
|
714
|
+
u16 VDP_getPlaneHeight(void);
|
|
715
|
+
/**
|
|
716
|
+
* \brief
|
|
717
|
+
* Set background plane size (in tile).<br>
|
|
718
|
+
* WARNING: take attention to properly setup VRAM so tilemaps has enough space.
|
|
719
|
+
*
|
|
720
|
+
* \param w
|
|
721
|
+
* width in tile.<br>
|
|
722
|
+
* Possible values are 32, 64 or 128.
|
|
723
|
+
* \param h
|
|
724
|
+
* height in tile.<br>
|
|
725
|
+
* Possible values are 32, 64 or 128.
|
|
726
|
+
* \param setupVram
|
|
727
|
+
* If set to TRUE then tilemaps and tables will be automatically remapped in VRAM depending
|
|
728
|
+
* the plane size. If you don't know what that means then it's better to keep this value to TRUE :p<br>
|
|
729
|
+
* Be careful to redraw your backgrounds, also the sprite engine may need to re-allocate its VRAM region if location changed.
|
|
730
|
+
*/
|
|
731
|
+
void VDP_setPlaneSize(u16 w, u16 h, bool setupVram);
|
|
732
|
+
/**
|
|
733
|
+
* \deprecated
|
|
734
|
+
* Use #VDP_setPlaneSize(..) instead.
|
|
735
|
+
*/
|
|
736
|
+
#define VDP_setPlanSize(w, h) _Pragma("GCC error \"This definition is deprecated, use VDP_setPlaneSize(..) instead.\"")
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* \brief
|
|
740
|
+
* Returns plane horizontal scrolling mode.
|
|
741
|
+
*
|
|
742
|
+
* Possible values are: HSCROLL_PLANE, HSCROLL_TILE, HSCROLL_LINE
|
|
743
|
+
*
|
|
744
|
+
* \see VDP_setScrollingMode for more informations about scrolling mode.
|
|
745
|
+
*/
|
|
746
|
+
u8 VDP_getHorizontalScrollingMode(void);
|
|
747
|
+
/**
|
|
748
|
+
* \brief
|
|
749
|
+
* Returns plane vertical scrolling mode.
|
|
750
|
+
*
|
|
751
|
+
* Possible values are: VSCROLL_PLANE, VSCROLL_2TILE
|
|
752
|
+
*
|
|
753
|
+
* \see VDP_setScrollingMode for more informations about scrolling mode.
|
|
754
|
+
*/
|
|
755
|
+
u8 VDP_getVerticalScrollingMode(void);
|
|
756
|
+
/**
|
|
757
|
+
* \brief
|
|
758
|
+
* Set plane scrolling mode.
|
|
759
|
+
*
|
|
760
|
+
* \param hscroll
|
|
761
|
+
* Horizontal scrolling mode :<br>
|
|
762
|
+
* <b>HSCROLL_PLANE</b> = Scroll offset is applied to the whole plane.<br>
|
|
763
|
+
* <b>HSCROLL_TILE</b> = Scroll offset is applied on a tile basis granularity (8 pixels bloc).<br>
|
|
764
|
+
* <b>HSCROLL_LINE</b> = Scroll offset is applied on a line basis granularity (1 pixel).<br>
|
|
765
|
+
* \param vscroll
|
|
766
|
+
* Vertical scrolling mode :<br>
|
|
767
|
+
* <b>VSCROLL_PLANE</b> = Scroll offset is applied to the whole plane.<br>
|
|
768
|
+
* <b>VSCROLL_2TILE</b> = Scroll offset is applied on 2 tiles basis granularity (16 pixels bloc).<br>
|
|
769
|
+
*
|
|
770
|
+
* \see VDP_setHorizontalScroll() to set horizontal scroll offset in mode plane.<br>
|
|
771
|
+
* \see VDP_setHorizontalScrollTile() to set horizontal scroll offset(s) in mode tile.<br>
|
|
772
|
+
* \see VDP_setHorizontalScrollLine() to set horizontal scroll offset(s) in mode line.<br>
|
|
773
|
+
* \see VDP_setVerticalScroll() to set vertical scroll offset in mode plane.<br>
|
|
774
|
+
* \see VDP_setVerticalScrollTile() to set vertical scroll offset(s) in mode 2-tile.<br>
|
|
775
|
+
*/
|
|
776
|
+
void VDP_setScrollingMode(u16 hscroll, u16 vscroll);
|
|
777
|
+
|
|
778
|
+
/**
|
|
779
|
+
* \brief
|
|
780
|
+
* Returns the background color index.
|
|
781
|
+
*/
|
|
782
|
+
u8 VDP_getBackgroundColor(void);
|
|
783
|
+
/**
|
|
784
|
+
* \brief
|
|
785
|
+
* Set the background color index.
|
|
786
|
+
*/
|
|
787
|
+
void VDP_setBackgroundColor(u8 value);
|
|
788
|
+
|
|
789
|
+
/**
|
|
790
|
+
* \brief
|
|
791
|
+
* Returns auto increment register value.
|
|
792
|
+
*/
|
|
793
|
+
u8 VDP_getAutoInc(void);
|
|
794
|
+
/**
|
|
795
|
+
* \brief
|
|
796
|
+
* Set auto increment register value.
|
|
797
|
+
*/
|
|
798
|
+
void VDP_setAutoInc(u8 value);
|
|
799
|
+
|
|
800
|
+
/**
|
|
801
|
+
* \brief
|
|
802
|
+
* Returns DMA enabled state
|
|
803
|
+
*/
|
|
804
|
+
u8 VDP_getDMAEnabled(void);
|
|
805
|
+
/**
|
|
806
|
+
* \brief
|
|
807
|
+
* Set DMA enabled state.
|
|
808
|
+
*
|
|
809
|
+
* Note that by default SGDK always enable DMA (there is no reason to disable it)
|
|
810
|
+
*/
|
|
811
|
+
void VDP_setDMAEnabled(bool value);
|
|
812
|
+
/**
|
|
813
|
+
* \brief
|
|
814
|
+
* Returns HV counter latching on INT2 (used for light gun)
|
|
815
|
+
*/
|
|
816
|
+
u8 VDP_getHVLatching(void);
|
|
817
|
+
/**
|
|
818
|
+
* \brief
|
|
819
|
+
* Set HV counter latching on INT2 (used for light gun)
|
|
820
|
+
*
|
|
821
|
+
* You can ask the HV Counter to fix its value on INT2 for accurate light gun positionning.
|
|
822
|
+
*/
|
|
823
|
+
void VDP_setHVLatching(bool value);
|
|
824
|
+
/**
|
|
825
|
+
* \brief
|
|
826
|
+
* Enable or Disable Vertical interrupt (it's *strongly* recommanded to keep it enabled).
|
|
827
|
+
*
|
|
828
|
+
* \see VDP_setHInterrupt()
|
|
829
|
+
*/
|
|
830
|
+
void VDP_setVInterrupt(bool value);
|
|
831
|
+
/**
|
|
832
|
+
* \brief
|
|
833
|
+
* Enable or Disable Horizontal interrupt.
|
|
834
|
+
*
|
|
835
|
+
* \see VDP_setHIntCounter()
|
|
836
|
+
*/
|
|
837
|
+
void VDP_setHInterrupt(bool value);
|
|
838
|
+
/**
|
|
839
|
+
* \brief
|
|
840
|
+
* Enable or Disable External interrupt.
|
|
841
|
+
*
|
|
842
|
+
* \see VDP_setExtIntCounter()
|
|
843
|
+
*/
|
|
844
|
+
void VDP_setExtInterrupt(bool value);
|
|
845
|
+
/**
|
|
846
|
+
* \brief
|
|
847
|
+
* Enable or Disable Hilight / Shadow effect.
|
|
848
|
+
*/
|
|
849
|
+
void VDP_setHilightShadow(bool value);
|
|
850
|
+
|
|
851
|
+
/**
|
|
852
|
+
* \brief
|
|
853
|
+
* Get Horizontal interrupt counter value.
|
|
854
|
+
*/
|
|
855
|
+
u8 VDP_getHIntCounter(void);
|
|
856
|
+
/**
|
|
857
|
+
* \brief
|
|
858
|
+
* Set Horizontal interrupt counter value.
|
|
859
|
+
*
|
|
860
|
+
* When Horizontal interrupt is enabled, setting 5 here means that H int will occurs each (5+1) scanline.<br>
|
|
861
|
+
* Set value 0 to get H int at each scanline.
|
|
862
|
+
*/
|
|
863
|
+
void VDP_setHIntCounter(u8 value);
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* \brief
|
|
867
|
+
* Get VRAM address (location) of BG A tilemap.
|
|
868
|
+
*/
|
|
869
|
+
u16 VDP_getBGAAddress(void);
|
|
870
|
+
/**
|
|
871
|
+
* \brief
|
|
872
|
+
* Get VRAM address (location) of BG B tilemap.
|
|
873
|
+
*/
|
|
874
|
+
u16 VDP_getBGBAddress(void);
|
|
875
|
+
/**
|
|
876
|
+
* \deprecated
|
|
877
|
+
* Use #VDP_getBGAAddress(..) instead.
|
|
878
|
+
*/
|
|
879
|
+
#define VDP_getAPlanAddress() _Pragma("GCC error \"This definition is deprecated, use VDP_getBGAAddress() instead.\"")
|
|
880
|
+
/**
|
|
881
|
+
* \deprecated
|
|
882
|
+
* Use #VDP_getBGBAddress(..) instead.
|
|
883
|
+
*/
|
|
884
|
+
#define VDP_getBPlanAddress() _Pragma("GCC error \"This definition is deprecated, use VDP_getBGBAddress() instead.\"")
|
|
885
|
+
|
|
886
|
+
/**
|
|
887
|
+
* \brief
|
|
888
|
+
* Get VRAM address (location) of Window tilemap.
|
|
889
|
+
*/
|
|
890
|
+
u16 VDP_getWindowAddress(void);
|
|
891
|
+
/**
|
|
892
|
+
* \deprecated
|
|
893
|
+
* Use #VDP_getWindowAddress(..) instead.
|
|
894
|
+
*/
|
|
895
|
+
#define VDP_getWindowPlanAddress() _Pragma("GCC error \"This definition is deprecated, use VDP_getWindowAddress() instead.\"")
|
|
896
|
+
/**
|
|
897
|
+
* \brief
|
|
898
|
+
* Get VRAM address (location) of Sprite list.
|
|
899
|
+
*/
|
|
900
|
+
u16 VDP_getSpriteListAddress(void);
|
|
901
|
+
/**
|
|
902
|
+
* \brief
|
|
903
|
+
* Get VRAM address (location) of H SCroll table.
|
|
904
|
+
*/
|
|
905
|
+
u16 VDP_getHScrollTableAddress(void);
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* \brief
|
|
909
|
+
* Set VRAM address (location) of BG A tilemap.
|
|
910
|
+
* The address should be at multiple of $2000<br>
|
|
911
|
+
* <br>
|
|
912
|
+
* Ex:<br>
|
|
913
|
+
* VDP_setBGAAddress(0xC000)<br>
|
|
914
|
+
* Will set the BG A to at address 0xC000 in VRAM.
|
|
915
|
+
*/
|
|
916
|
+
void VDP_setBGAAddress(u16 value);
|
|
917
|
+
/**
|
|
918
|
+
* \brief
|
|
919
|
+
* Set VRAM address (location) of BG B tilemap.<br>
|
|
920
|
+
* The address should be at multiple of $2000<br>
|
|
921
|
+
* <br>
|
|
922
|
+
* Ex:<br>
|
|
923
|
+
* VDP_setBGBAddress(0xE000)<br>
|
|
924
|
+
* Will set the BG B tilemap at address 0xE000 in VRAM.
|
|
925
|
+
*/
|
|
926
|
+
void VDP_setBGBAddress(u16 value);
|
|
927
|
+
/**
|
|
928
|
+
* \deprecated
|
|
929
|
+
* Use #VDP_setBGAAddress(..) instead.
|
|
930
|
+
*/
|
|
931
|
+
#define VDP_setAPlanAddress(value) \
|
|
932
|
+
_Pragma("GCC error \"This definition is deprecated, use VDP_setBGAAddress(..) instead.\"")
|
|
933
|
+
/**
|
|
934
|
+
* \deprecated
|
|
935
|
+
* Use #VDP_setBGBAddress(..) instead.
|
|
936
|
+
*/
|
|
937
|
+
#define VDP_setBPlanAddress(value) \
|
|
938
|
+
_Pragma("GCC error \"This definition is deprecated, use VDP_setBGBAddress(..) instead.\"")
|
|
939
|
+
/**
|
|
940
|
+
* \brief
|
|
941
|
+
* Set VRAM address (location) of Window tilemap.<br>
|
|
942
|
+
* The address should be at multiple of $1000 in H40 and $800 in H32<br>
|
|
943
|
+
* <br>
|
|
944
|
+
* Ex:<br>
|
|
945
|
+
* VDP_setWindowAddress(0xA000)<br>
|
|
946
|
+
* Will set the Window tilemap at address 0xA000 in VRAM.
|
|
947
|
+
*/
|
|
948
|
+
void VDP_setWindowAddress(u16 value);
|
|
949
|
+
/**
|
|
950
|
+
* \deprecated
|
|
951
|
+
* Use #VDP_setWindowAddress(..) instead.
|
|
952
|
+
*/
|
|
953
|
+
#define VDP_setWindowPlanAddress(value) _Pragma("GCC error \"This definition is deprecated, use VDP_setWindowAddress(..) instead.\"")
|
|
954
|
+
/**
|
|
955
|
+
* \brief
|
|
956
|
+
* Set VRAM address (location) of Sprite list.<br>
|
|
957
|
+
* The address should be at multiple of $400 in H40 and $200 in H32<br>
|
|
958
|
+
* <br>
|
|
959
|
+
* Ex:<br>
|
|
960
|
+
* VDP_setSpriteListAddress(0xD800)<br>
|
|
961
|
+
* Will set the Sprite list to at address 0xD800 in VRAM.
|
|
962
|
+
*/
|
|
963
|
+
void VDP_setSpriteListAddress(u16 value);
|
|
964
|
+
/**
|
|
965
|
+
* \brief
|
|
966
|
+
* Set VRAM address (location) of H Scroll table.<br>
|
|
967
|
+
* The address should be at multiple of $400<br>
|
|
968
|
+
* <br>
|
|
969
|
+
* Ex:<br>
|
|
970
|
+
* VDP_setHScrollTableAddress(0xD400)<br>
|
|
971
|
+
* Will set the HScroll table to at address 0xD400 in VRAM.
|
|
972
|
+
*/
|
|
973
|
+
void VDP_setHScrollTableAddress(u16 value);
|
|
974
|
+
|
|
975
|
+
/**
|
|
976
|
+
* \brief
|
|
977
|
+
* Sets the scan mode of the display.
|
|
978
|
+
*
|
|
979
|
+
* \param mode
|
|
980
|
+
* Accepted values : #INTERLACED_NONE, #INTERLACED_MODE1, #INTERLACED_MODE2
|
|
981
|
+
*
|
|
982
|
+
* This function changes the scanning mode on the next display blanking period.<br>
|
|
983
|
+
* In Interlaced Mode 1, the same pattern will be displayed on the adjacent lines of even and odd numbered fields.<br>
|
|
984
|
+
* In Interlaced Mode 2, different patterns can be displayed on the adjacent lines of even and odd numbered fields.<br>
|
|
985
|
+
* The number of cells on the screen stays the same regardless of which scanning mode is active.
|
|
986
|
+
*/
|
|
987
|
+
void VDP_setScanMode(u16 mode);
|
|
988
|
+
|
|
989
|
+
/**
|
|
990
|
+
* \brief
|
|
991
|
+
* Sets the window Horizontal position.
|
|
992
|
+
*
|
|
993
|
+
* \param right
|
|
994
|
+
* If set to <i>FALSE</i> the window is displayed from column 0 up to column <i>pos</i>
|
|
995
|
+
* If set to <i>TRUE</i> the window is displayed from column <i>pos</i> up to last column
|
|
996
|
+
* \param pos
|
|
997
|
+
* The Horizontal position of the window in 2 tiles unit (16 pixels).
|
|
998
|
+
*/
|
|
999
|
+
void VDP_setWindowHPos(u16 right, u16 pos);
|
|
1000
|
+
/**
|
|
1001
|
+
* \brief
|
|
1002
|
+
* Sets the window Vertical position.
|
|
1003
|
+
*
|
|
1004
|
+
* \param down
|
|
1005
|
+
* If set to <i>FALSE</i> the window is displayed from row 0 up to row <i>pos</i>
|
|
1006
|
+
* If set to <i>TRUE</i> the window is displayed from row <i>pos</i> up to last row
|
|
1007
|
+
* \param pos
|
|
1008
|
+
* The Vertical position of the window in 1 tile unit (8 pixels).
|
|
1009
|
+
*/
|
|
1010
|
+
void VDP_setWindowVPos(u16 down, u16 pos);
|
|
1011
|
+
/**
|
|
1012
|
+
* \brief
|
|
1013
|
+
* Turns off the window.
|
|
1014
|
+
*/
|
|
1015
|
+
void VDP_setWindowOff();
|
|
1016
|
+
/**
|
|
1017
|
+
* \brief
|
|
1018
|
+
* Positions the window from the top edge of the screen by the specified number of rows (tiles).
|
|
1019
|
+
*
|
|
1020
|
+
* \param rows
|
|
1021
|
+
* The number of rows, expressed in tiles.
|
|
1022
|
+
*/
|
|
1023
|
+
void VDP_setWindowOnTop(u16 rows);
|
|
1024
|
+
/**
|
|
1025
|
+
* \brief
|
|
1026
|
+
* Positions the window from the bottom edge of the screen by the specified number of rows (tiles).
|
|
1027
|
+
*
|
|
1028
|
+
* \param rows
|
|
1029
|
+
* The number of rows, expressed in tiles.
|
|
1030
|
+
*/
|
|
1031
|
+
void VDP_setWindowOnBottom(u16 rows);
|
|
1032
|
+
/**
|
|
1033
|
+
* \brief
|
|
1034
|
+
* Positions the window from the left edge of the screen by the specified number of columns, each 2 tiles wide (16 pixels).
|
|
1035
|
+
*
|
|
1036
|
+
* \param cols
|
|
1037
|
+
* The number of columns, expressed in double tiles.
|
|
1038
|
+
*/
|
|
1039
|
+
void VDP_setWindowOnLeft(u16 cols);
|
|
1040
|
+
/**
|
|
1041
|
+
* \brief
|
|
1042
|
+
* Positions the window from the right edge of the screen by the specified number of columns, each 2 tiles wide (16 pixels).
|
|
1043
|
+
*
|
|
1044
|
+
* \param cols
|
|
1045
|
+
* The number of columns, expressed in double tiles.
|
|
1046
|
+
*/
|
|
1047
|
+
void VDP_setWindowOnRight(u16 cols);
|
|
1048
|
+
/**
|
|
1049
|
+
* \brief
|
|
1050
|
+
* Positions the window to full screen.
|
|
1051
|
+
*/
|
|
1052
|
+
void VDP_setWindowFullScreen();
|
|
1053
|
+
|
|
1054
|
+
/**
|
|
1055
|
+
* \brief
|
|
1056
|
+
* Wait for DMA operation to complete - same as #DMA_waitCompletion()
|
|
1057
|
+
*/
|
|
1058
|
+
void VDP_waitDMACompletion(void);
|
|
1059
|
+
/**
|
|
1060
|
+
* \brief
|
|
1061
|
+
* Wait for VDP FIFO to be empty.
|
|
1062
|
+
*/
|
|
1063
|
+
void VDP_waitFIFOEmpty(void);
|
|
1064
|
+
|
|
1065
|
+
/**
|
|
1066
|
+
* \brief
|
|
1067
|
+
* Wait for next Vertical Interruption.
|
|
1068
|
+
* \return
|
|
1069
|
+
* TRUE if a frame miss was detected (more than 1 frame elapsed since last call)
|
|
1070
|
+
*
|
|
1071
|
+
* The method actually wait for the start of Vertical Interruption.
|
|
1072
|
+
* It returns immediately if we are already in V-Int handler.
|
|
1073
|
+
*/
|
|
1074
|
+
bool VDP_waitVInt(void);
|
|
1075
|
+
/**
|
|
1076
|
+
* \brief
|
|
1077
|
+
* Wait for next vertical blank period (same as #VDP_waitVSync())
|
|
1078
|
+
* \return
|
|
1079
|
+
* TRUE if a frame miss was detected (more than 1 frame elapsed since last call)
|
|
1080
|
+
*
|
|
1081
|
+
* \param forceNext
|
|
1082
|
+
* Force waiting for next start of VBlank if we are already in VBlank period when calling the method.
|
|
1083
|
+
*
|
|
1084
|
+
* The method wait until we are in Vertical blanking area/period.
|
|
1085
|
+
*/
|
|
1086
|
+
bool VDP_waitVBlank(bool forceNext);
|
|
1087
|
+
/**
|
|
1088
|
+
* \brief
|
|
1089
|
+
* Wait for Vertical Synchro.
|
|
1090
|
+
* \return
|
|
1091
|
+
* TRUE if a frame miss was detected (more than 1 frame elapsed since last call)
|
|
1092
|
+
*
|
|
1093
|
+
* The method actually wait for the *next* start of Vertical blanking.
|
|
1094
|
+
*/
|
|
1095
|
+
bool VDP_waitVSync(void);
|
|
1096
|
+
/**
|
|
1097
|
+
* \brief
|
|
1098
|
+
* Wait for next vertical active area (end of vertical blank period)
|
|
1099
|
+
*
|
|
1100
|
+
* \param forceNext
|
|
1101
|
+
* Force waiting for next start of V-Active if we are already in V-Active period when calling the method.
|
|
1102
|
+
*
|
|
1103
|
+
* The method wait until we are in Vertical active area/period.
|
|
1104
|
+
*/
|
|
1105
|
+
void VDP_waitVActive(bool forceNext);
|
|
1106
|
+
|
|
1107
|
+
/**
|
|
1108
|
+
* \brief
|
|
1109
|
+
* Return an enhanced V Counter representation.
|
|
1110
|
+
*
|
|
1111
|
+
* Using direct V counter from VDP may give troubles as the VDP V-Counter rollback during V-Blank period.<br>
|
|
1112
|
+
* This function aim to make ease the use of V-Counter by adjusting it to a [0-255] range where 0 is the start of VBlank area and 255 the end of active display area.
|
|
1113
|
+
*/
|
|
1114
|
+
u16 VDP_getAdjustedVCounter(void);
|
|
1115
|
+
|
|
1116
|
+
/**
|
|
1117
|
+
* \brief
|
|
1118
|
+
* Display number of Frame Per Second.
|
|
1119
|
+
*
|
|
1120
|
+
* \param asFloat
|
|
1121
|
+
* Display in float number format.
|
|
1122
|
+
* \param x
|
|
1123
|
+
* X coordinate (in tile).
|
|
1124
|
+
* \param y
|
|
1125
|
+
* y coordinate (in tile).
|
|
1126
|
+
*
|
|
1127
|
+
* This function actually display the number of time it was called in the last second.<br>
|
|
1128
|
+
* i.e: for benchmarking you should call this method only once per frame update.
|
|
1129
|
+
*
|
|
1130
|
+
* \see #SYS_getFPS(..)
|
|
1131
|
+
*/
|
|
1132
|
+
void VDP_showFPS(u16 asFloat, u16 x, u16 y);
|
|
1133
|
+
/**
|
|
1134
|
+
* \brief
|
|
1135
|
+
* Display the estimated CPU load (in %).
|
|
1136
|
+
*
|
|
1137
|
+
* \param x
|
|
1138
|
+
* X coordinate (in tile).
|
|
1139
|
+
* \param y
|
|
1140
|
+
* y coordinate (in tile).
|
|
1141
|
+
*
|
|
1142
|
+
* This function actually display an estimation of the CPU load (in %) for the last frame.
|
|
1143
|
+
*
|
|
1144
|
+
* \see #SYS_getCPULoad()
|
|
1145
|
+
*/
|
|
1146
|
+
void VDP_showCPULoad(u16 x, u16 y);
|
|
1147
|
+
|
|
1148
|
+
#endif // _VDP_H_
|
|
1149
|
+
|
|
1150
|
+
/** \} */
|