From d8d42b9f81fa3f84467276a4c6122efd6dc72a95 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Tue, 27 Apr 2021 19:37:53 -0400 Subject: [PATCH] The next time I look at this I want to see waterbox builds actually fucking working again. This means copying to dll as they are now, and not silently being overridden by stale files stored in another folder. This is not my problem to fix because I did not fucking break it. --- Assets/EmuHawkMono.sh | 30 - Assets/ExternalTools/.keep | 0 Assets/Gameboy/Palettes/ALLEY WAY.pal | 13 - .../Gameboy/Palettes/ASTEROIDS and MISCMD.pal | 13 - Assets/Gameboy/Palettes/BA.TOSHINDEN.pal | 13 - Assets/Gameboy/Palettes/BALLOON KID.pal | 13 - Assets/Gameboy/Palettes/BASEBALL.pal | 13 - Assets/Gameboy/Palettes/BGB (lcd green).pal | 13 - Assets/Gameboy/Palettes/BOY AND BLOB GB1.pal | 13 - Assets/Gameboy/Palettes/BOY AND BLOB GB2.pal | 13 - Assets/Gameboy/Palettes/BT2RAGNAROKWORLD.pal | 13 - .../Gameboy/Palettes/DEFENDER and JOUST.pal | 13 - Assets/Gameboy/Palettes/DMG FOOTBALL.pal | 13 - Assets/Gameboy/Palettes/DONKEY KONG.pal | 13 - Assets/Gameboy/Palettes/DONKEYKONGLAND 2.pal | 13 - Assets/Gameboy/Palettes/DONKEYKONGLAND 3.pal | 13 - Assets/Gameboy/Palettes/DONKEYKONGLAND.pal | 13 - Assets/Gameboy/Palettes/DONKEYKONGLAND95.pal | 13 - Assets/Gameboy/Palettes/DR.MARIO.pal | 13 - Assets/Gameboy/Palettes/DYNABLASTER.pal | 13 - Assets/Gameboy/Palettes/F1RACE.pal | 13 - .../Gameboy/Palettes/GALAGA and GALAXIAN.pal | 13 - Assets/Gameboy/Palettes/GAME and WATCH.pal | 13 - Assets/Gameboy/Palettes/GAMEBOY GALLERY.pal | 13 - Assets/Gameboy/Palettes/GAMEBOY GALLERY2.pal | 13 - Assets/Gameboy/Palettes/GBC - Blue.pal | 13 - Assets/Gameboy/Palettes/GBC - Brown.pal | 13 - Assets/Gameboy/Palettes/GBC - Dark Blue.pal | 13 - Assets/Gameboy/Palettes/GBC - Dark Brown.pal | 13 - Assets/Gameboy/Palettes/GBC - Dark Green.pal | 13 - Assets/Gameboy/Palettes/GBC - Grayscale.pal | 13 - Assets/Gameboy/Palettes/GBC - Green.pal | 13 - Assets/Gameboy/Palettes/GBC - Inverted.pal | 13 - Assets/Gameboy/Palettes/GBC - Orange.pal | 13 - Assets/Gameboy/Palettes/GBC - Pastel Mix.pal | 13 - Assets/Gameboy/Palettes/GBC - Red.pal | 13 - Assets/Gameboy/Palettes/GBC - Yellow.pal | 13 - Assets/Gameboy/Palettes/GBWARS.pal | 13 - Assets/Gameboy/Palettes/GOLF.pal | 13 - Assets/Gameboy/Palettes/Game and Watch 2.pal | 13 - .../Palettes/Game and Watch GALLERY.pal | 13 - Assets/Gameboy/Palettes/HOSHINOKA-BI.pal | 13 - Assets/Gameboy/Palettes/JAMES BOND 007.pal | 13 - Assets/Gameboy/Palettes/KAERUNOTAMENI.pal | 13 - Assets/Gameboy/Palettes/KEN GRIFFEY JR.pal | 13 - Assets/Gameboy/Palettes/KID ICARUS.pal | 13 - Assets/Gameboy/Palettes/KILLERINSTINCT95.pal | 13 - Assets/Gameboy/Palettes/KINGOFTHEZOO.pal | 13 - Assets/Gameboy/Palettes/KIRAKIRA KIDS.pal | 13 - Assets/Gameboy/Palettes/KIRBY BLOCKBALL.pal | 13 - Assets/Gameboy/Palettes/KIRBY DREAM LAND.pal | 13 - Assets/Gameboy/Palettes/KIRBY'S PINBALL.pal | 13 - Assets/Gameboy/Palettes/KIRBY2.pal | 13 - Assets/Gameboy/Palettes/LOLO2.pal | 13 - Assets/Gameboy/Palettes/MAGNETIC SOCCER.pal | 13 - Assets/Gameboy/Palettes/MANSELL.pal | 13 - Assets/Gameboy/Palettes/MARIO and YOSHI.pal | 13 - Assets/Gameboy/Palettes/MARIO'S PICROSS.pal | 13 - Assets/Gameboy/Palettes/MARIOLAND2.pal | 13 - Assets/Gameboy/Palettes/MEGA MAN 2.pal | 13 - Assets/Gameboy/Palettes/MEGAMAN.pal | 13 - Assets/Gameboy/Palettes/MEGAMAN3.pal | 13 - Assets/Gameboy/Palettes/METROID2.pal | 13 - .../Palettes/MILLIPEDE and CENTIPEDE.pal | 13 - Assets/Gameboy/Palettes/MOGURANYA.pal | 13 - Assets/Gameboy/Palettes/MYSTIC QUEST.pal | 13 - Assets/Gameboy/Palettes/NETTOU KOF 95.pal | 13 - Assets/Gameboy/Palettes/NEW CHESSMASTER.pal | 13 - Assets/Gameboy/Palettes/OTHELLO.pal | 13 - Assets/Gameboy/Palettes/PAC-IN-TIME.pal | 13 - Assets/Gameboy/Palettes/PICROSS 2.pal | 13 - Assets/Gameboy/Palettes/PINOCCHIO.pal | 13 - Assets/Gameboy/Palettes/POKEBOM.pal | 13 - Assets/Gameboy/Palettes/POKEMON BLUE.pal | 13 - Assets/Gameboy/Palettes/POKEMON GREEN.pal | 13 - Assets/Gameboy/Palettes/POKEMON RED.pal | 13 - Assets/Gameboy/Palettes/POKEMON YELLOW.pal | 13 - Assets/Gameboy/Palettes/QIX.pal | 13 - Assets/Gameboy/Palettes/RADARMISSION.pal | 13 - Assets/Gameboy/Palettes/ROCKMAN WORLD.pal | 13 - Assets/Gameboy/Palettes/ROCKMAN WORLD2.pal | 13 - Assets/Gameboy/Palettes/ROCKMANWORLD3.pal | 13 - Assets/Gameboy/Palettes/SEIKEN DENSETSU.pal | 13 - Assets/Gameboy/Palettes/SOCCER.pal | 13 - Assets/Gameboy/Palettes/SOLARSTRIKER.pal | 13 - Assets/Gameboy/Palettes/SPACE INVADERS.pal | 13 - Assets/Gameboy/Palettes/STAR STACKER.pal | 13 - Assets/Gameboy/Palettes/STAR WARS-NOA.pal | 13 - Assets/Gameboy/Palettes/STAR WARS.pal | 13 - Assets/Gameboy/Palettes/STREET FIGHTER 2.pal | 13 - Assets/Gameboy/Palettes/SUPER MARIOLAND.pal | 13 - Assets/Gameboy/Palettes/SUPER RC PRO-AM.pal | 13 - Assets/Gameboy/Palettes/SUPERDONKEYKONG.pal | 13 - Assets/Gameboy/Palettes/SUPERMARIOLAND3.pal | 13 - Assets/Gameboy/Palettes/TENNIS.pal | 13 - Assets/Gameboy/Palettes/TETRIS ATTACK.pal | 13 - Assets/Gameboy/Palettes/TETRIS BLAST.pal | 13 - Assets/Gameboy/Palettes/TETRIS FLASH.pal | 13 - Assets/Gameboy/Palettes/TETRIS PLUS.pal | 13 - Assets/Gameboy/Palettes/TETRIS.pal | 13 - Assets/Gameboy/Palettes/TETRIS2.pal | 13 - Assets/Gameboy/Palettes/THE CHESSMASTER.pal | 13 - Assets/Gameboy/Palettes/TOPRANKINGTENNIS.pal | 13 - Assets/Gameboy/Palettes/TOPRANKTENNIS.pal | 13 - Assets/Gameboy/Palettes/TOY STORY.pal | 13 - Assets/Gameboy/Palettes/TRIP WORLD.pal | 13 - Assets/Gameboy/Palettes/VEGAS STAKES.pal | 13 - Assets/Gameboy/Palettes/WARIO BLAST.pal | 13 - Assets/Gameboy/Palettes/WARIOLAND2.pal | 13 - Assets/Gameboy/Palettes/WAVERACE.pal | 13 - Assets/Gameboy/Palettes/WORLD CUP.pal | 13 - Assets/Gameboy/Palettes/X.pal | 13 - Assets/Gameboy/Palettes/YAKUMAN.pal | 13 - Assets/Gameboy/Palettes/YOSHI'S COOKIE.pal | 13 - Assets/Gameboy/Palettes/YOSSY NO COOKIE.pal | 13 - Assets/Gameboy/Palettes/YOSSY NO PANEPON.pal | 13 - Assets/Gameboy/Palettes/YOSSY NO TAMAGO.pal | 13 - Assets/Gameboy/Palettes/ZELDA.pal | 13 - Assets/Gameboy/Palettes/ZELDA2.pal | 13 - Assets/Gameboy/Palettes/bsnes v087.pal | 13 - Assets/Gameboy/Palettes/default.pal | 13 - Assets/Lua/ButtonCount.lua | 124 - Assets/Lua/GBA/SonicAdvance_CamHack.lua | 32 - Assets/Lua/Genesis/Castlevania Bloodlines.lua | 207 - Assets/Lua/Genesis/Earthworm Jim 2.lua | 337 - Assets/Lua/Genesis/Gargoyles.lua | 522 - Assets/Lua/Genesis/Legend of Toki.lua | 149 - Assets/Lua/Genesis/Splatterhouse 2 (JPN).lua | 81 - Assets/Lua/Genesis/Splatterhouse 2 (USA).lua | 84 - Assets/Lua/Input_Display.lua | 1054 - Assets/Lua/JoypadIntersection.lua | 57 - Assets/Lua/MovieClock.lua | 39 - Assets/Lua/N64/M64_reader.lua | 203 - Assets/Lua/NDS/StylusInputDisplay.lua | 50 - Assets/Lua/NES/Castlevania.lua | 108 - Assets/Lua/NES/Contra force.lua | 128 - Assets/Lua/NES/Crystalis.lua | 101 - Assets/Lua/NES/Faxandu.lua | 114 - Assets/Lua/NES/Holy Diver.lua | 168 - Assets/Lua/NES/Megaman 4.lua | 142 - Assets/Lua/NES/Ninja Gaiden II.lua | 100 - Assets/Lua/NES/Ninja Gaiden III.lua | 105 - Assets/Lua/NES/NinjaGaiden_Hitbox.lua | 106 - Assets/Lua/NES/PunchOutStats.lua | 97 - Assets/Lua/NES/RBIBaseball.lua | 238 - Assets/Lua/NES/SMB2U.lua | 175 - Assets/Lua/NES/Simons Quest.lua | 192 - Assets/Lua/NES/Snake Rattle N' Roll.lua | 37 - Assets/Lua/NES/Super C.lua | 142 - .../Super Mario Brothers 3 (USA) (Rev A).lua | 246 - Assets/Lua/NES/Vice Project Doom.lua | 55 - Assets/Lua/NES/ZapperTarget.lua | 20 - Assets/Lua/PCE/Castlevania_Rondo_of_Blood.lua | 324 - Assets/Lua/PCE/Neutopia.lua | 66 - Assets/Lua/SNES/Congo's Caper.lua | 100 - Assets/Lua/SNES/Contra 3.lua | 148 - Assets/Lua/SNES/Donkey Kong Country 3.lua | 101 - Assets/Lua/SNES/Megaman X.lua | 160 - Assets/Lua/SNES/Megaman X2.lua | 130 - Assets/Lua/SNES/Megaman X3.lua | 135 - Assets/Lua/SNES/Rockman and Forte.lua | 183 - Assets/Lua/SNES/Super Castlevania 4.lua | 260 - Assets/Lua/SNES/Super Castlevania IV.lua | 105 - Assets/Lua/SNES/Super Ghouls N Ghost.lua | 211 - Assets/Lua/SNES/Super Mario World.lua | 3405 -- Assets/Lua/SNES/Super Metroid.lua | 99 - Assets/Lua/SNES/Y's III.lua | 107 - Assets/Lua/UnitTests/Console.lua | 9 - Assets/Lua/UnitTests/GameInfo.lua | 10 - Assets/Lua/UnitTests/Joypad_RoundTrip.lua | 137 - Assets/Lua/UnitTests/Joypad_Set.lua | 44 - .../Joypad_WithControllerNumbers.lua | 44 - .../Lua/UnitTests/TestCommunication_All.lua | 149 - .../UnitTests/TestCommunication_Simple.lua | 91 - Assets/Lua/UnitTests/UnitTests.lua | 5 - Assets/Lua/tasjudy.bat | 38 - Assets/Lua/tasjudy.lua | 138 - Assets/Lua/tasjudy.py | 18 - Assets/NES/Palettes/ASQ_realityA.pal | Bin 192 -> 0 bytes Assets/NES/Palettes/ASQ_realityB.pal | Bin 192 -> 0 bytes Assets/NES/Palettes/BMF_final2.pal | Bin 192 -> 0 bytes Assets/NES/Palettes/BMF_final3.pal | Bin 192 -> 0 bytes .../NES/Palettes/FCEU-13-default_nitsuja.pal | Bin 192 -> 0 bytes Assets/NES/Palettes/FCEU-15-nitsuja_new.pal | Bin 192 -> 0 bytes Assets/NES/Palettes/FCEUX (2.2.0).pal | Bin 192 -> 0 bytes Assets/NES/Palettes/QuickNes.pal | Bin 1536 -> 0 bytes Assets/NES/Palettes/SONY_CXA2025AS_US.pal | Bin 192 -> 0 bytes Assets/Shaders/BizHawk/BizScanlines.cgp | 4 - Assets/Shaders/BizHawk/BizScanlines.glsl | 31 - Assets/Shaders/BizHawk/BizScanlines.hlsl | 23 - Assets/Shaders/BizHawk/bicubic-fast.cgp | 4 - Assets/Shaders/BizHawk/bicubic-fast.hlsl | 152 - Assets/Shaders/BizHawk/bicubic-normal.cgp | 4 - Assets/Shaders/BizHawk/bicubic-normal.hlsl | 151 - Assets/Shaders/BizHawk/hq2x.cgp | 4 - Assets/Shaders/BizHawk/hq2x.glsl | 84 - Assets/Shaders/BizHawk/hq2x.hlsl | 93 - Assets/Shaders/retroizer/retroizer.cgp | 4 - Assets/Shaders/retroizer/retroizer.glsl | 218 - Assets/Shaders/retroizer/retroizer.hlsl | 211 - Assets/Shaders/shaders-readme.txt | 16 - Assets/Tools/.gitempty | 0 Assets/defctrl.json | 1382 - Assets/dll/7z.dll | Bin 1677824 -> 0 bytes Assets/dll/LibretroBridge.dll | Bin 136704 -> 0 bytes Assets/dll/LuaInterface.dll | Bin 60928 -> 0 bytes Assets/dll/MSXHawk.dll | Bin 241152 -> 0 bytes Assets/dll/OpenAL32.dll | Bin 122904 -> 0 bytes Assets/dll/OpenTK.dll.config | 25 - Assets/dll/SDL.dll | Bin 306688 -> 0 bytes Assets/dll/SDL2.dll | Bin 1275183 -> 0 bytes Assets/dll/bizlynx.dll | Bin 437999 -> 0 bytes Assets/dll/bizswan.dll | Bin 481793 -> 0 bytes Assets/dll/blip_buf.dll | Bin 118824 -> 0 bytes Assets/dll/dobie.wbx.gz | Bin 821309 -> 0 bytes Assets/dll/faust.wbx.gz | Bin 635566 -> 0 bytes Assets/dll/freetype26.dll | Bin 632320 -> 0 bytes Assets/dll/gpgx.wbx.gz | Bin 437922 -> 0 bytes Assets/dll/hyper.wbx.gz | Bin 363256 -> 0 bytes Assets/dll/libbizlynx.dll.so | Bin 152680 -> 0 bytes Assets/dll/libbizswan.dll.so | Bin 182448 -> 0 bytes Assets/dll/libblip_buf.so | Bin 16840 -> 0 bytes Assets/dll/libdarm.dll | Bin 58880 -> 0 bytes Assets/dll/libdarm.so | Bin 99424 -> 0 bytes Assets/dll/libgambatte.dll | Bin 193024 -> 0 bytes Assets/dll/libgambatte.dll.so | Bin 346224 -> 0 bytes Assets/dll/libgambatte.exp | Bin 5960 -> 0 bytes Assets/dll/libgambatte.iobj | Bin 2259255 -> 0 bytes Assets/dll/libgambatte.ipdb | Bin 703504 -> 0 bytes Assets/dll/libgambatte.lib | Bin 10466 -> 0 bytes Assets/dll/libgcc_s_seh-1.dll | Bin 83230 -> 0 bytes Assets/dll/libmelonDS.dll | Bin 942700 -> 0 bytes Assets/dll/libmgba.dll.so | Bin 1174688 -> 0 bytes Assets/dll/libpng16.dll | Bin 192512 -> 0 bytes Assets/dll/libquicknes.dll | Bin 376715 -> 0 bytes Assets/dll/libquicknes.dll.so.0.7.0 | Bin 282824 -> 0 bytes Assets/dll/libsnes.wbx.gz | Bin 444957 -> 0 bytes Assets/dll/libspeexdsp.dll | Bin 96256 -> 0 bytes Assets/dll/libstdc++-6.dll | Bin 1428650 -> 0 bytes Assets/dll/libwaterboxhost.so | Bin 1524440 -> 0 bytes Assets/dll/libwinpthread-1.dll | Bin 56978 -> 0 bytes Assets/dll/lua51.dll | Bin 5177856 -> 0 bytes Assets/dll/mgba.dll | Bin 1576923 -> 0 bytes Assets/dll/mupen64plus-audio-bkm.dll | Bin 9728 -> 0 bytes Assets/dll/mupen64plus-input-bkm.dll | Bin 10240 -> 0 bytes Assets/dll/mupen64plus-rsp-hle.dll | Bin 79360 -> 0 bytes Assets/dll/mupen64plus-video-GLideN64.dll | Bin 2106880 -> 0 bytes Assets/dll/mupen64plus-video-glide64.dll | Bin 620032 -> 0 bytes Assets/dll/mupen64plus-video-glide64mk2.dll | Bin 944640 -> 0 bytes Assets/dll/mupen64plus-video-rice.dll | Bin 571392 -> 0 bytes Assets/dll/mupen64plus.dll | Bin 462848 -> 0 bytes Assets/dll/ngp.wbx.gz | Bin 353375 -> 0 bytes Assets/dll/nlua/KopiLua.dll | Bin 208896 -> 0 bytes Assets/dll/nlua/NLua.dll | Bin 91648 -> 0 bytes Assets/dll/octoshock.dll | Bin 1156096 -> 0 bytes Assets/dll/pcfx.wbx.gz | Bin 413780 -> 0 bytes Assets/dll/picodrive.wbx.gz | Bin 296600 -> 0 bytes Assets/dll/sameboy.wbx.gz | Bin 76773 -> 0 bytes Assets/dll/snes9x.wbx.gz | Bin 1146438 -> 0 bytes Assets/dll/ss.wbx.gz | Bin 1875053 -> 0 bytes Assets/dll/turbo.wbx.gz | Bin 420699 -> 0 bytes Assets/dll/uzem.wbx.gz | Bin 71259 -> 0 bytes Assets/dll/vb.wbx.gz | Bin 112608 -> 0 bytes Assets/dll/waterboxhost.dll | Bin 1577605 -> 0 bytes Assets/dll/wrap_oal.dll | Bin 466456 -> 0 bytes Assets/dll/zlib.dll | Bin 84992 -> 0 bytes Assets/dll/zlib1.dll | Bin 84992 -> 0 bytes Assets/gamedb/NesCarts.xml | Bin 3955984 -> 0 bytes Assets/gamedb/game.db | Bin 720896 -> 0 bytes Assets/gamedb/gamedb.txt | 51 - Assets/gamedb/gamedb_Odyssey2.txt | 287 - Assets/gamedb/gamedb_a2600.txt | 2707 -- Assets/gamedb/gamedb_a7800.txt | 183 - Assets/gamedb/gamedb_amstradcpc.txt | 33 - Assets/gamedb/gamedb_amstradcpc_disks.txt | 5824 --- Assets/gamedb/gamedb_appleII.txt | 5912 --- Assets/gamedb/gamedb_channelf.txt | 58 - Assets/gamedb/gamedb_coleco.txt | 300 - Assets/gamedb/gamedb_e_cards.txt | 4328 -- Assets/gamedb/gamedb_gb.txt | 1548 - Assets/gamedb/gamedb_gba.txt | 2920 -- Assets/gamedb/gamedb_gbc.txt | 1345 - Assets/gamedb/gamedb_goodnes.txt | 22097 ---------- Assets/gamedb/gamedb_intv.txt | 31 - Assets/gamedb/gamedb_lynx.txt | 364 - Assets/gamedb/gamedb_msx.txt | 28 - Assets/gamedb/gamedb_msx1-L.txt | 941 - Assets/gamedb/gamedb_msx2-L.txt | 198 - Assets/gamedb/gamedb_msx_msx1_cas.txt | 1845 - Assets/gamedb/gamedb_msx_msx1_dsk.txt | 2420 -- Assets/gamedb/gamedb_msx_msx1_rom.txt | 1484 - Assets/gamedb/gamedb_msx_msx2_cas.txt | 169 - Assets/gamedb/gamedb_msx_msx2_dsk.txt | 2962 -- Assets/gamedb/gamedb_msx_msx2_rom.txt | 494 - Assets/gamedb/gamedb_n64.txt | 925 - Assets/gamedb/gamedb_nes.txt | 374 - Assets/gamedb/gamedb_neshomebrew.txt | 0 Assets/gamedb/gamedb_ngp.txt | 28 - Assets/gamedb/gamedb_ngp_nointro.txt | 178 - Assets/gamedb/gamedb_ngp_tosec.txt | 566 - Assets/gamedb/gamedb_pce_cd.txt | 128 - Assets/gamedb/gamedb_pce_hucards.txt | 1603 - Assets/gamedb/gamedb_psx.txt | 7008 ---- Assets/gamedb/gamedb_sega_gg.txt | 492 - Assets/gamedb/gamedb_sega_md.txt | 8254 ---- Assets/gamedb/gamedb_sega_sg1000.txt | 177 - Assets/gamedb/gamedb_sega_sms.txt | 585 - Assets/gamedb/gamedb_snes.txt | 3588 -- Assets/gamedb/gamedb_vectrex.txt | 26 - Assets/gamedb/gamedb_vectrex_nointro.txt | 68 - Assets/gamedb/gamedb_vectrex_tosec.txt | 505 - Assets/gamedb/gamedb_vs.txt | 87 - Assets/gamedb/gamedb_ws.txt | 113 - Assets/gamedb/gamedb_wsc.txt | 96 - Assets/gamedb/gamedb_zxspectrum.txt | 36 - Assets/gamedb/gamedb_zxspectrum_disks.txt | 1328 - Assets/gamedb/gamedb_zxspectrum_tapes.txt | 33753 ---------------- 317 files changed, 133860 deletions(-) delete mode 100755 Assets/EmuHawkMono.sh delete mode 100644 Assets/ExternalTools/.keep delete mode 100644 Assets/Gameboy/Palettes/ALLEY WAY.pal delete mode 100644 Assets/Gameboy/Palettes/ASTEROIDS and MISCMD.pal delete mode 100644 Assets/Gameboy/Palettes/BA.TOSHINDEN.pal delete mode 100644 Assets/Gameboy/Palettes/BALLOON KID.pal delete mode 100644 Assets/Gameboy/Palettes/BASEBALL.pal delete mode 100644 Assets/Gameboy/Palettes/BGB (lcd green).pal delete mode 100644 Assets/Gameboy/Palettes/BOY AND BLOB GB1.pal delete mode 100644 Assets/Gameboy/Palettes/BOY AND BLOB GB2.pal delete mode 100644 Assets/Gameboy/Palettes/BT2RAGNAROKWORLD.pal delete mode 100644 Assets/Gameboy/Palettes/DEFENDER and JOUST.pal delete mode 100644 Assets/Gameboy/Palettes/DMG FOOTBALL.pal delete mode 100644 Assets/Gameboy/Palettes/DONKEY KONG.pal delete mode 100644 Assets/Gameboy/Palettes/DONKEYKONGLAND 2.pal delete mode 100644 Assets/Gameboy/Palettes/DONKEYKONGLAND 3.pal delete mode 100644 Assets/Gameboy/Palettes/DONKEYKONGLAND.pal delete mode 100644 Assets/Gameboy/Palettes/DONKEYKONGLAND95.pal delete mode 100644 Assets/Gameboy/Palettes/DR.MARIO.pal delete mode 100644 Assets/Gameboy/Palettes/DYNABLASTER.pal delete mode 100644 Assets/Gameboy/Palettes/F1RACE.pal delete mode 100644 Assets/Gameboy/Palettes/GALAGA and GALAXIAN.pal delete mode 100644 Assets/Gameboy/Palettes/GAME and WATCH.pal delete mode 100644 Assets/Gameboy/Palettes/GAMEBOY GALLERY.pal delete mode 100644 Assets/Gameboy/Palettes/GAMEBOY GALLERY2.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Blue.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Brown.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Dark Blue.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Dark Brown.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Dark Green.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Grayscale.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Green.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Inverted.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Orange.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Pastel Mix.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Red.pal delete mode 100644 Assets/Gameboy/Palettes/GBC - Yellow.pal delete mode 100644 Assets/Gameboy/Palettes/GBWARS.pal delete mode 100644 Assets/Gameboy/Palettes/GOLF.pal delete mode 100644 Assets/Gameboy/Palettes/Game and Watch 2.pal delete mode 100644 Assets/Gameboy/Palettes/Game and Watch GALLERY.pal delete mode 100644 Assets/Gameboy/Palettes/HOSHINOKA-BI.pal delete mode 100644 Assets/Gameboy/Palettes/JAMES BOND 007.pal delete mode 100644 Assets/Gameboy/Palettes/KAERUNOTAMENI.pal delete mode 100644 Assets/Gameboy/Palettes/KEN GRIFFEY JR.pal delete mode 100644 Assets/Gameboy/Palettes/KID ICARUS.pal delete mode 100644 Assets/Gameboy/Palettes/KILLERINSTINCT95.pal delete mode 100644 Assets/Gameboy/Palettes/KINGOFTHEZOO.pal delete mode 100644 Assets/Gameboy/Palettes/KIRAKIRA KIDS.pal delete mode 100644 Assets/Gameboy/Palettes/KIRBY BLOCKBALL.pal delete mode 100644 Assets/Gameboy/Palettes/KIRBY DREAM LAND.pal delete mode 100644 Assets/Gameboy/Palettes/KIRBY'S PINBALL.pal delete mode 100644 Assets/Gameboy/Palettes/KIRBY2.pal delete mode 100644 Assets/Gameboy/Palettes/LOLO2.pal delete mode 100644 Assets/Gameboy/Palettes/MAGNETIC SOCCER.pal delete mode 100644 Assets/Gameboy/Palettes/MANSELL.pal delete mode 100644 Assets/Gameboy/Palettes/MARIO and YOSHI.pal delete mode 100644 Assets/Gameboy/Palettes/MARIO'S PICROSS.pal delete mode 100644 Assets/Gameboy/Palettes/MARIOLAND2.pal delete mode 100644 Assets/Gameboy/Palettes/MEGA MAN 2.pal delete mode 100644 Assets/Gameboy/Palettes/MEGAMAN.pal delete mode 100644 Assets/Gameboy/Palettes/MEGAMAN3.pal delete mode 100644 Assets/Gameboy/Palettes/METROID2.pal delete mode 100644 Assets/Gameboy/Palettes/MILLIPEDE and CENTIPEDE.pal delete mode 100644 Assets/Gameboy/Palettes/MOGURANYA.pal delete mode 100644 Assets/Gameboy/Palettes/MYSTIC QUEST.pal delete mode 100644 Assets/Gameboy/Palettes/NETTOU KOF 95.pal delete mode 100644 Assets/Gameboy/Palettes/NEW CHESSMASTER.pal delete mode 100644 Assets/Gameboy/Palettes/OTHELLO.pal delete mode 100644 Assets/Gameboy/Palettes/PAC-IN-TIME.pal delete mode 100644 Assets/Gameboy/Palettes/PICROSS 2.pal delete mode 100644 Assets/Gameboy/Palettes/PINOCCHIO.pal delete mode 100644 Assets/Gameboy/Palettes/POKEBOM.pal delete mode 100644 Assets/Gameboy/Palettes/POKEMON BLUE.pal delete mode 100644 Assets/Gameboy/Palettes/POKEMON GREEN.pal delete mode 100644 Assets/Gameboy/Palettes/POKEMON RED.pal delete mode 100644 Assets/Gameboy/Palettes/POKEMON YELLOW.pal delete mode 100644 Assets/Gameboy/Palettes/QIX.pal delete mode 100644 Assets/Gameboy/Palettes/RADARMISSION.pal delete mode 100644 Assets/Gameboy/Palettes/ROCKMAN WORLD.pal delete mode 100644 Assets/Gameboy/Palettes/ROCKMAN WORLD2.pal delete mode 100644 Assets/Gameboy/Palettes/ROCKMANWORLD3.pal delete mode 100644 Assets/Gameboy/Palettes/SEIKEN DENSETSU.pal delete mode 100644 Assets/Gameboy/Palettes/SOCCER.pal delete mode 100644 Assets/Gameboy/Palettes/SOLARSTRIKER.pal delete mode 100644 Assets/Gameboy/Palettes/SPACE INVADERS.pal delete mode 100644 Assets/Gameboy/Palettes/STAR STACKER.pal delete mode 100644 Assets/Gameboy/Palettes/STAR WARS-NOA.pal delete mode 100644 Assets/Gameboy/Palettes/STAR WARS.pal delete mode 100644 Assets/Gameboy/Palettes/STREET FIGHTER 2.pal delete mode 100644 Assets/Gameboy/Palettes/SUPER MARIOLAND.pal delete mode 100644 Assets/Gameboy/Palettes/SUPER RC PRO-AM.pal delete mode 100644 Assets/Gameboy/Palettes/SUPERDONKEYKONG.pal delete mode 100644 Assets/Gameboy/Palettes/SUPERMARIOLAND3.pal delete mode 100644 Assets/Gameboy/Palettes/TENNIS.pal delete mode 100644 Assets/Gameboy/Palettes/TETRIS ATTACK.pal delete mode 100644 Assets/Gameboy/Palettes/TETRIS BLAST.pal delete mode 100644 Assets/Gameboy/Palettes/TETRIS FLASH.pal delete mode 100644 Assets/Gameboy/Palettes/TETRIS PLUS.pal delete mode 100644 Assets/Gameboy/Palettes/TETRIS.pal delete mode 100644 Assets/Gameboy/Palettes/TETRIS2.pal delete mode 100644 Assets/Gameboy/Palettes/THE CHESSMASTER.pal delete mode 100644 Assets/Gameboy/Palettes/TOPRANKINGTENNIS.pal delete mode 100644 Assets/Gameboy/Palettes/TOPRANKTENNIS.pal delete mode 100644 Assets/Gameboy/Palettes/TOY STORY.pal delete mode 100644 Assets/Gameboy/Palettes/TRIP WORLD.pal delete mode 100644 Assets/Gameboy/Palettes/VEGAS STAKES.pal delete mode 100644 Assets/Gameboy/Palettes/WARIO BLAST.pal delete mode 100644 Assets/Gameboy/Palettes/WARIOLAND2.pal delete mode 100644 Assets/Gameboy/Palettes/WAVERACE.pal delete mode 100644 Assets/Gameboy/Palettes/WORLD CUP.pal delete mode 100644 Assets/Gameboy/Palettes/X.pal delete mode 100644 Assets/Gameboy/Palettes/YAKUMAN.pal delete mode 100644 Assets/Gameboy/Palettes/YOSHI'S COOKIE.pal delete mode 100644 Assets/Gameboy/Palettes/YOSSY NO COOKIE.pal delete mode 100644 Assets/Gameboy/Palettes/YOSSY NO PANEPON.pal delete mode 100644 Assets/Gameboy/Palettes/YOSSY NO TAMAGO.pal delete mode 100644 Assets/Gameboy/Palettes/ZELDA.pal delete mode 100644 Assets/Gameboy/Palettes/ZELDA2.pal delete mode 100644 Assets/Gameboy/Palettes/bsnes v087.pal delete mode 100644 Assets/Gameboy/Palettes/default.pal delete mode 100644 Assets/Lua/ButtonCount.lua delete mode 100644 Assets/Lua/GBA/SonicAdvance_CamHack.lua delete mode 100644 Assets/Lua/Genesis/Castlevania Bloodlines.lua delete mode 100644 Assets/Lua/Genesis/Earthworm Jim 2.lua delete mode 100644 Assets/Lua/Genesis/Gargoyles.lua delete mode 100644 Assets/Lua/Genesis/Legend of Toki.lua delete mode 100644 Assets/Lua/Genesis/Splatterhouse 2 (JPN).lua delete mode 100644 Assets/Lua/Genesis/Splatterhouse 2 (USA).lua delete mode 100644 Assets/Lua/Input_Display.lua delete mode 100644 Assets/Lua/JoypadIntersection.lua delete mode 100644 Assets/Lua/MovieClock.lua delete mode 100644 Assets/Lua/N64/M64_reader.lua delete mode 100644 Assets/Lua/NDS/StylusInputDisplay.lua delete mode 100644 Assets/Lua/NES/Castlevania.lua delete mode 100644 Assets/Lua/NES/Contra force.lua delete mode 100644 Assets/Lua/NES/Crystalis.lua delete mode 100644 Assets/Lua/NES/Faxandu.lua delete mode 100644 Assets/Lua/NES/Holy Diver.lua delete mode 100644 Assets/Lua/NES/Megaman 4.lua delete mode 100644 Assets/Lua/NES/Ninja Gaiden II.lua delete mode 100644 Assets/Lua/NES/Ninja Gaiden III.lua delete mode 100644 Assets/Lua/NES/NinjaGaiden_Hitbox.lua delete mode 100644 Assets/Lua/NES/PunchOutStats.lua delete mode 100644 Assets/Lua/NES/RBIBaseball.lua delete mode 100644 Assets/Lua/NES/SMB2U.lua delete mode 100644 Assets/Lua/NES/Simons Quest.lua delete mode 100644 Assets/Lua/NES/Snake Rattle N' Roll.lua delete mode 100644 Assets/Lua/NES/Super C.lua delete mode 100644 Assets/Lua/NES/Super Mario Brothers 3 (USA) (Rev A).lua delete mode 100644 Assets/Lua/NES/Vice Project Doom.lua delete mode 100644 Assets/Lua/NES/ZapperTarget.lua delete mode 100644 Assets/Lua/PCE/Castlevania_Rondo_of_Blood.lua delete mode 100644 Assets/Lua/PCE/Neutopia.lua delete mode 100644 Assets/Lua/SNES/Congo's Caper.lua delete mode 100644 Assets/Lua/SNES/Contra 3.lua delete mode 100644 Assets/Lua/SNES/Donkey Kong Country 3.lua delete mode 100644 Assets/Lua/SNES/Megaman X.lua delete mode 100644 Assets/Lua/SNES/Megaman X2.lua delete mode 100644 Assets/Lua/SNES/Megaman X3.lua delete mode 100644 Assets/Lua/SNES/Rockman and Forte.lua delete mode 100644 Assets/Lua/SNES/Super Castlevania 4.lua delete mode 100644 Assets/Lua/SNES/Super Castlevania IV.lua delete mode 100644 Assets/Lua/SNES/Super Ghouls N Ghost.lua delete mode 100644 Assets/Lua/SNES/Super Mario World.lua delete mode 100644 Assets/Lua/SNES/Super Metroid.lua delete mode 100644 Assets/Lua/SNES/Y's III.lua delete mode 100644 Assets/Lua/UnitTests/Console.lua delete mode 100644 Assets/Lua/UnitTests/GameInfo.lua delete mode 100644 Assets/Lua/UnitTests/Joypad_RoundTrip.lua delete mode 100644 Assets/Lua/UnitTests/Joypad_Set.lua delete mode 100644 Assets/Lua/UnitTests/Joypad_WithControllerNumbers.lua delete mode 100644 Assets/Lua/UnitTests/TestCommunication_All.lua delete mode 100644 Assets/Lua/UnitTests/TestCommunication_Simple.lua delete mode 100644 Assets/Lua/UnitTests/UnitTests.lua delete mode 100644 Assets/Lua/tasjudy.bat delete mode 100644 Assets/Lua/tasjudy.lua delete mode 100644 Assets/Lua/tasjudy.py delete mode 100644 Assets/NES/Palettes/ASQ_realityA.pal delete mode 100644 Assets/NES/Palettes/ASQ_realityB.pal delete mode 100644 Assets/NES/Palettes/BMF_final2.pal delete mode 100644 Assets/NES/Palettes/BMF_final3.pal delete mode 100644 Assets/NES/Palettes/FCEU-13-default_nitsuja.pal delete mode 100644 Assets/NES/Palettes/FCEU-15-nitsuja_new.pal delete mode 100644 Assets/NES/Palettes/FCEUX (2.2.0).pal delete mode 100644 Assets/NES/Palettes/QuickNes.pal delete mode 100644 Assets/NES/Palettes/SONY_CXA2025AS_US.pal delete mode 100644 Assets/Shaders/BizHawk/BizScanlines.cgp delete mode 100644 Assets/Shaders/BizHawk/BizScanlines.glsl delete mode 100644 Assets/Shaders/BizHawk/BizScanlines.hlsl delete mode 100644 Assets/Shaders/BizHawk/bicubic-fast.cgp delete mode 100644 Assets/Shaders/BizHawk/bicubic-fast.hlsl delete mode 100644 Assets/Shaders/BizHawk/bicubic-normal.cgp delete mode 100644 Assets/Shaders/BizHawk/bicubic-normal.hlsl delete mode 100644 Assets/Shaders/BizHawk/hq2x.cgp delete mode 100644 Assets/Shaders/BizHawk/hq2x.glsl delete mode 100644 Assets/Shaders/BizHawk/hq2x.hlsl delete mode 100644 Assets/Shaders/retroizer/retroizer.cgp delete mode 100644 Assets/Shaders/retroizer/retroizer.glsl delete mode 100644 Assets/Shaders/retroizer/retroizer.hlsl delete mode 100644 Assets/Shaders/shaders-readme.txt delete mode 100644 Assets/Tools/.gitempty delete mode 100644 Assets/defctrl.json delete mode 100644 Assets/dll/7z.dll delete mode 100644 Assets/dll/LibretroBridge.dll delete mode 100644 Assets/dll/LuaInterface.dll delete mode 100644 Assets/dll/MSXHawk.dll delete mode 100644 Assets/dll/OpenAL32.dll delete mode 100755 Assets/dll/OpenTK.dll.config delete mode 100644 Assets/dll/SDL.dll delete mode 100644 Assets/dll/SDL2.dll delete mode 100644 Assets/dll/bizlynx.dll delete mode 100644 Assets/dll/bizswan.dll delete mode 100644 Assets/dll/blip_buf.dll delete mode 100644 Assets/dll/dobie.wbx.gz delete mode 100644 Assets/dll/faust.wbx.gz delete mode 100644 Assets/dll/freetype26.dll delete mode 100644 Assets/dll/gpgx.wbx.gz delete mode 100644 Assets/dll/hyper.wbx.gz delete mode 100644 Assets/dll/libbizlynx.dll.so delete mode 100644 Assets/dll/libbizswan.dll.so delete mode 100755 Assets/dll/libblip_buf.so delete mode 100644 Assets/dll/libdarm.dll delete mode 100755 Assets/dll/libdarm.so delete mode 100644 Assets/dll/libgambatte.dll delete mode 100644 Assets/dll/libgambatte.dll.so delete mode 100644 Assets/dll/libgambatte.exp delete mode 100644 Assets/dll/libgambatte.iobj delete mode 100644 Assets/dll/libgambatte.ipdb delete mode 100644 Assets/dll/libgambatte.lib delete mode 100644 Assets/dll/libgcc_s_seh-1.dll delete mode 100644 Assets/dll/libmelonDS.dll delete mode 100644 Assets/dll/libmgba.dll.so delete mode 100644 Assets/dll/libpng16.dll delete mode 100644 Assets/dll/libquicknes.dll delete mode 100644 Assets/dll/libquicknes.dll.so.0.7.0 delete mode 100644 Assets/dll/libsnes.wbx.gz delete mode 100644 Assets/dll/libspeexdsp.dll delete mode 100644 Assets/dll/libstdc++-6.dll delete mode 100644 Assets/dll/libwaterboxhost.so delete mode 100644 Assets/dll/libwinpthread-1.dll delete mode 100644 Assets/dll/lua51.dll delete mode 100644 Assets/dll/mgba.dll delete mode 100644 Assets/dll/mupen64plus-audio-bkm.dll delete mode 100644 Assets/dll/mupen64plus-input-bkm.dll delete mode 100644 Assets/dll/mupen64plus-rsp-hle.dll delete mode 100644 Assets/dll/mupen64plus-video-GLideN64.dll delete mode 100644 Assets/dll/mupen64plus-video-glide64.dll delete mode 100644 Assets/dll/mupen64plus-video-glide64mk2.dll delete mode 100644 Assets/dll/mupen64plus-video-rice.dll delete mode 100644 Assets/dll/mupen64plus.dll delete mode 100644 Assets/dll/ngp.wbx.gz delete mode 100644 Assets/dll/nlua/KopiLua.dll delete mode 100644 Assets/dll/nlua/NLua.dll delete mode 100644 Assets/dll/octoshock.dll delete mode 100644 Assets/dll/pcfx.wbx.gz delete mode 100644 Assets/dll/picodrive.wbx.gz delete mode 100644 Assets/dll/sameboy.wbx.gz delete mode 100644 Assets/dll/snes9x.wbx.gz delete mode 100644 Assets/dll/ss.wbx.gz delete mode 100644 Assets/dll/turbo.wbx.gz delete mode 100644 Assets/dll/uzem.wbx.gz delete mode 100644 Assets/dll/vb.wbx.gz delete mode 100644 Assets/dll/waterboxhost.dll delete mode 100644 Assets/dll/wrap_oal.dll delete mode 100644 Assets/dll/zlib.dll delete mode 100644 Assets/dll/zlib1.dll delete mode 100644 Assets/gamedb/NesCarts.xml delete mode 100644 Assets/gamedb/game.db delete mode 100644 Assets/gamedb/gamedb.txt delete mode 100644 Assets/gamedb/gamedb_Odyssey2.txt delete mode 100644 Assets/gamedb/gamedb_a2600.txt delete mode 100644 Assets/gamedb/gamedb_a7800.txt delete mode 100644 Assets/gamedb/gamedb_amstradcpc.txt delete mode 100644 Assets/gamedb/gamedb_amstradcpc_disks.txt delete mode 100644 Assets/gamedb/gamedb_appleII.txt delete mode 100644 Assets/gamedb/gamedb_channelf.txt delete mode 100644 Assets/gamedb/gamedb_coleco.txt delete mode 100644 Assets/gamedb/gamedb_e_cards.txt delete mode 100644 Assets/gamedb/gamedb_gb.txt delete mode 100644 Assets/gamedb/gamedb_gba.txt delete mode 100644 Assets/gamedb/gamedb_gbc.txt delete mode 100644 Assets/gamedb/gamedb_goodnes.txt delete mode 100644 Assets/gamedb/gamedb_intv.txt delete mode 100644 Assets/gamedb/gamedb_lynx.txt delete mode 100644 Assets/gamedb/gamedb_msx.txt delete mode 100644 Assets/gamedb/gamedb_msx1-L.txt delete mode 100644 Assets/gamedb/gamedb_msx2-L.txt delete mode 100644 Assets/gamedb/gamedb_msx_msx1_cas.txt delete mode 100644 Assets/gamedb/gamedb_msx_msx1_dsk.txt delete mode 100644 Assets/gamedb/gamedb_msx_msx1_rom.txt delete mode 100644 Assets/gamedb/gamedb_msx_msx2_cas.txt delete mode 100644 Assets/gamedb/gamedb_msx_msx2_dsk.txt delete mode 100644 Assets/gamedb/gamedb_msx_msx2_rom.txt delete mode 100644 Assets/gamedb/gamedb_n64.txt delete mode 100644 Assets/gamedb/gamedb_nes.txt delete mode 100644 Assets/gamedb/gamedb_neshomebrew.txt delete mode 100644 Assets/gamedb/gamedb_ngp.txt delete mode 100644 Assets/gamedb/gamedb_ngp_nointro.txt delete mode 100644 Assets/gamedb/gamedb_ngp_tosec.txt delete mode 100644 Assets/gamedb/gamedb_pce_cd.txt delete mode 100644 Assets/gamedb/gamedb_pce_hucards.txt delete mode 100644 Assets/gamedb/gamedb_psx.txt delete mode 100644 Assets/gamedb/gamedb_sega_gg.txt delete mode 100644 Assets/gamedb/gamedb_sega_md.txt delete mode 100644 Assets/gamedb/gamedb_sega_sg1000.txt delete mode 100644 Assets/gamedb/gamedb_sega_sms.txt delete mode 100644 Assets/gamedb/gamedb_snes.txt delete mode 100644 Assets/gamedb/gamedb_vectrex.txt delete mode 100644 Assets/gamedb/gamedb_vectrex_nointro.txt delete mode 100644 Assets/gamedb/gamedb_vectrex_tosec.txt delete mode 100644 Assets/gamedb/gamedb_vs.txt delete mode 100644 Assets/gamedb/gamedb_ws.txt delete mode 100644 Assets/gamedb/gamedb_wsc.txt delete mode 100644 Assets/gamedb/gamedb_zxspectrum.txt delete mode 100644 Assets/gamedb/gamedb_zxspectrum_disks.txt delete mode 100644 Assets/gamedb/gamedb_zxspectrum_tapes.txt diff --git a/Assets/EmuHawkMono.sh b/Assets/EmuHawkMono.sh deleted file mode 100755 index 78d4121c2e..0000000000 --- a/Assets/EmuHawkMono.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -cd "$(dirname "$(realpath "$0")")" -if [ "$(ps -C "mono" -o "cmd" --no-headers | grep "EmuHawk.exe")" ]; then - echo "EmuHawk is already running, exiting..." - exit 0 -fi -libpath="" -winepath="" -if [ "$(command -v lsb_release)" ]; then - case "$(lsb_release -i | cut -c17- | tr -d "\n")" in - "Arch"|"ManjaroLinux") libpath="/usr/lib";; - "Debian"|"LinuxMint"|"Ubuntu"|"Pop") libpath="/usr/lib/x86_64-linux-gnu"; export MONO_WINFORMS_XIM_STYLE=disabled;; # see https://bugzilla.xamarin.com/show_bug.cgi?id=28047#c9 - esac -else - printf "Distro does not provide LSB release info API! (You've met with a terrible fate, haven't you?)\n" -fi -if [ -z "$libpath" ]; then - printf "%s\n" "Unknown distro, assuming system-wide libraries are in /usr/lib..." - libpath="/usr/lib" -fi -if [ -z "$winepath" ]; then winepath="$libpath/wine"; fi -export LD_LIBRARY_PATH="$PWD/dll:$PWD:$winepath:$libpath" -export BIZHAWK_INT_SYSLIB_PATH="$libpath" -if [ "$1" = "--mono-no-redirect" ]; then - shift - printf "(received --mono-no-redirect, stdout was not captured)\n" >EmuHawkMono_laststdout.txt - mono ./EmuHawk.exe "$@" -else - mono ./EmuHawk.exe "$@" >EmuHawkMono_laststdout.txt -fi diff --git a/Assets/ExternalTools/.keep b/Assets/ExternalTools/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Assets/Gameboy/Palettes/ALLEY WAY.pal b/Assets/Gameboy/Palettes/ALLEY WAY.pal deleted file mode 100644 index 74956436bd..0000000000 --- a/Assets/Gameboy/Palettes/ALLEY WAY.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=10853631 -Background1=16776960 -Background2=25344 -Background3=0 -Sprite%2010=10853631 -Sprite%2011=16776960 -Sprite%2012=25344 -Sprite%2013=0 -Sprite%2020=10853631 -Sprite%2021=16776960 -Sprite%2022=25344 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/ASTEROIDS and MISCMD.pal b/Assets/Gameboy/Palettes/ASTEROIDS and MISCMD.pal deleted file mode 100644 index 9762dc4ace..0000000000 --- a/Assets/Gameboy/Palettes/ASTEROIDS and MISCMD.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/BA.TOSHINDEN.pal b/Assets/Gameboy/Palettes/BA.TOSHINDEN.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/BA.TOSHINDEN.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/BALLOON KID.pal b/Assets/Gameboy/Palettes/BALLOON KID.pal deleted file mode 100644 index 3a8f7cde59..0000000000 --- a/Assets/Gameboy/Palettes/BALLOON KID.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16751616 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16751616 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16751616 -Sprite%2022=16711680 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/BASEBALL.pal b/Assets/Gameboy/Palettes/BASEBALL.pal deleted file mode 100644 index 1ff86d7aa9..0000000000 --- a/Assets/Gameboy/Palettes/BASEBALL.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=5430784 -Background1=16745472 -Background2=16776960 -Background3=16777215 -Sprite%2010=16777215 -Sprite%2011=16777215 -Sprite%2012=6530559 -Sprite%2013=255 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/BGB (lcd green).pal b/Assets/Gameboy/Palettes/BGB (lcd green).pal deleted file mode 100644 index 7376b0cb76..0000000000 --- a/Assets/Gameboy/Palettes/BGB (lcd green).pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=14743760 -Background1=8962160 -Background2=3434582 -Background3=530464 -Sprite%2010=14743760 -Sprite%2011=8962160 -Sprite%2012=3434582 -Sprite%2013=530464 -Sprite%2020=14743760 -Sprite%2021=8962160 -Sprite%2022=3434582 -Sprite%2023=530464 diff --git a/Assets/Gameboy/Palettes/BOY AND BLOB GB1.pal b/Assets/Gameboy/Palettes/BOY AND BLOB GB1.pal deleted file mode 100644 index 0924c5c89e..0000000000 --- a/Assets/Gameboy/Palettes/BOY AND BLOB GB1.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=8126257 -Sprite%2012=33792 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/BOY AND BLOB GB2.pal b/Assets/Gameboy/Palettes/BOY AND BLOB GB2.pal deleted file mode 100644 index 0924c5c89e..0000000000 --- a/Assets/Gameboy/Palettes/BOY AND BLOB GB2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=8126257 -Sprite%2012=33792 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/BT2RAGNAROKWORLD.pal b/Assets/Gameboy/Palettes/BT2RAGNAROKWORLD.pal deleted file mode 100644 index 16ccb39fd4..0000000000 --- a/Assets/Gameboy/Palettes/BT2RAGNAROKWORLD.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=8126257 -Sprite%2012=33792 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/DEFENDER and JOUST.pal b/Assets/Gameboy/Palettes/DEFENDER and JOUST.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/DEFENDER and JOUST.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/DMG FOOTBALL.pal b/Assets/Gameboy/Palettes/DMG FOOTBALL.pal deleted file mode 100644 index 9762dc4ace..0000000000 --- a/Assets/Gameboy/Palettes/DMG FOOTBALL.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/DONKEY KONG.pal b/Assets/Gameboy/Palettes/DONKEY KONG.pal deleted file mode 100644 index 543e715cd2..0000000000 --- a/Assets/Gameboy/Palettes/DONKEY KONG.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16751616 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/DONKEYKONGLAND 2.pal b/Assets/Gameboy/Palettes/DONKEYKONGLAND 2.pal deleted file mode 100644 index 4095fae12c..0000000000 --- a/Assets/Gameboy/Palettes/DONKEYKONGLAND 2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16762178 -Sprite%2011=16766464 -Sprite%2012=9714176 -Sprite%2013=4849664 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/DONKEYKONGLAND 3.pal b/Assets/Gameboy/Palettes/DONKEYKONGLAND 3.pal deleted file mode 100644 index 4095fae12c..0000000000 --- a/Assets/Gameboy/Palettes/DONKEYKONGLAND 3.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16762178 -Sprite%2011=16766464 -Sprite%2012=9714176 -Sprite%2013=4849664 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/DONKEYKONGLAND.pal b/Assets/Gameboy/Palettes/DONKEYKONGLAND.pal deleted file mode 100644 index 4095fae12c..0000000000 --- a/Assets/Gameboy/Palettes/DONKEYKONGLAND.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16762178 -Sprite%2011=16766464 -Sprite%2012=9714176 -Sprite%2013=4849664 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/DONKEYKONGLAND95.pal b/Assets/Gameboy/Palettes/DONKEYKONGLAND95.pal deleted file mode 100644 index 2e08e339d1..0000000000 --- a/Assets/Gameboy/Palettes/DONKEYKONGLAND95.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777116 -Background1=9745919 -Background2=6526067 -Background3=14906 -Sprite%2010=16762178 -Sprite%2011=16766464 -Sprite%2012=9714176 -Sprite%2013=4849664 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/DR.MARIO.pal b/Assets/Gameboy/Palettes/DR.MARIO.pal deleted file mode 100644 index fe0b7257dc..0000000000 --- a/Assets/Gameboy/Palettes/DR.MARIO.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=6530559 -Background2=255 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/DYNABLASTER.pal b/Assets/Gameboy/Palettes/DYNABLASTER.pal deleted file mode 100644 index 520487aa06..0000000000 --- a/Assets/Gameboy/Palettes/DYNABLASTER.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/F1RACE.pal b/Assets/Gameboy/Palettes/F1RACE.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/F1RACE.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GALAGA and GALAXIAN.pal b/Assets/Gameboy/Palettes/GALAGA and GALAXIAN.pal deleted file mode 100644 index cd57550463..0000000000 --- a/Assets/Gameboy/Palettes/GALAGA and GALAXIAN.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=0 -Background1=33924 -Background2=16768512 -Background3=16777215 -Sprite%2010=0 -Sprite%2011=33924 -Sprite%2012=16768512 -Sprite%2013=16777215 -Sprite%2020=0 -Sprite%2021=33924 -Sprite%2022=16768512 -Sprite%2023=16777215 diff --git a/Assets/Gameboy/Palettes/GAME and WATCH.pal b/Assets/Gameboy/Palettes/GAME and WATCH.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/GAME and WATCH.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GAMEBOY GALLERY.pal b/Assets/Gameboy/Palettes/GAMEBOY GALLERY.pal deleted file mode 100644 index 5ba06c1369..0000000000 --- a/Assets/Gameboy/Palettes/GAMEBOY GALLERY.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126208 -Background2=11891456 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GAMEBOY GALLERY2.pal b/Assets/Gameboy/Palettes/GAMEBOY GALLERY2.pal deleted file mode 100644 index 5ba06c1369..0000000000 --- a/Assets/Gameboy/Palettes/GAMEBOY GALLERY2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126208 -Background2=11891456 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Blue.pal b/Assets/Gameboy/Palettes/GBC - Blue.pal deleted file mode 100644 index 3172e1d5dc..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Blue.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=6530559 -Background2=255 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Brown.pal b/Assets/Gameboy/Palettes/GBC - Brown.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Brown.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Dark Blue.pal b/Assets/Gameboy/Palettes/GBC - Dark Blue.pal deleted file mode 100644 index 174ccbbbd2..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Dark Blue.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Dark Brown.pal b/Assets/Gameboy/Palettes/GBC - Dark Brown.pal deleted file mode 100644 index 4a3216e6ec..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Dark Brown.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16770757 -Background1=13540484 -Background2=8678185 -Background3=5910792 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Dark Green.pal b/Assets/Gameboy/Palettes/GBC - Dark Green.pal deleted file mode 100644 index 1be3ff09b7..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Dark Green.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=25541 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Grayscale.pal b/Assets/Gameboy/Palettes/GBC - Grayscale.pal deleted file mode 100644 index e1de2bd08e..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Grayscale.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=10855845 -Background2=5395026 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=10855845 -Sprite%2012=5395026 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=10855845 -Sprite%2022=5395026 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Green.pal b/Assets/Gameboy/Palettes/GBC - Green.pal deleted file mode 100644 index a2e19f86eb..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Green.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=5439232 -Background2=16728576 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=5439232 -Sprite%2012=16728576 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5439232 -Sprite%2022=16728576 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Inverted.pal b/Assets/Gameboy/Palettes/GBC - Inverted.pal deleted file mode 100644 index cd57550463..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Inverted.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=0 -Background1=33924 -Background2=16768512 -Background3=16777215 -Sprite%2010=0 -Sprite%2011=33924 -Sprite%2012=16768512 -Sprite%2013=16777215 -Sprite%2020=0 -Sprite%2021=33924 -Sprite%2022=16768512 -Sprite%2023=16777215 diff --git a/Assets/Gameboy/Palettes/GBC - Orange.pal b/Assets/Gameboy/Palettes/GBC - Orange.pal deleted file mode 100644 index 4c525090de..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Orange.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16776960 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16776960 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16776960 -Sprite%2022=16711680 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Pastel Mix.pal b/Assets/Gameboy/Palettes/GBC - Pastel Mix.pal deleted file mode 100644 index 23bca423ea..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Pastel Mix.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777125 -Background1=16749716 -Background2=9737471 -Background3=0 -Sprite%2010=16777125 -Sprite%2011=16749716 -Sprite%2012=9737471 -Sprite%2013=0 -Sprite%2020=16777125 -Sprite%2021=16749716 -Sprite%2022=9737471 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Red.pal b/Assets/Gameboy/Palettes/GBC - Red.pal deleted file mode 100644 index f290bed50c..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Red.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16745604 -Background2=9714234 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=8126257 -Sprite%2012=33792 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBC - Yellow.pal b/Assets/Gameboy/Palettes/GBC - Yellow.pal deleted file mode 100644 index 4431187f35..0000000000 --- a/Assets/Gameboy/Palettes/GBC - Yellow.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16776960 -Background2=8079872 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/GBWARS.pal b/Assets/Gameboy/Palettes/GBWARS.pal deleted file mode 100644 index e009760ac9..0000000000 --- a/Assets/Gameboy/Palettes/GBWARS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=11382148 -Background2=4354939 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16741120 -Sprite%2012=9716224 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/GOLF.pal b/Assets/Gameboy/Palettes/GOLF.pal deleted file mode 100644 index 9762dc4ace..0000000000 --- a/Assets/Gameboy/Palettes/GOLF.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/Game and Watch 2.pal b/Assets/Gameboy/Palettes/Game and Watch 2.pal deleted file mode 100644 index 5ba06c1369..0000000000 --- a/Assets/Gameboy/Palettes/Game and Watch 2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126208 -Background2=11891456 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/Game and Watch GALLERY.pal b/Assets/Gameboy/Palettes/Game and Watch GALLERY.pal deleted file mode 100644 index 5ba06c1369..0000000000 --- a/Assets/Gameboy/Palettes/Game and Watch GALLERY.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126208 -Background2=11891456 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/HOSHINOKA-BI.pal b/Assets/Gameboy/Palettes/HOSHINOKA-BI.pal deleted file mode 100644 index adaa1c6aab..0000000000 --- a/Assets/Gameboy/Palettes/HOSHINOKA-BI.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=10853631 -Background1=16776960 -Background2=25344 -Background3=0 -Sprite%2010=16737106 -Sprite%2011=14024704 -Sprite%2012=6488064 -Sprite%2013=0 -Sprite%2020=255 -Sprite%2021=16777215 -Sprite%2022=16777083 -Sprite%2023=34047 diff --git a/Assets/Gameboy/Palettes/JAMES BOND 007.pal b/Assets/Gameboy/Palettes/JAMES BOND 007.pal deleted file mode 100644 index 05b177d4a5..0000000000 --- a/Assets/Gameboy/Palettes/JAMES BOND 007.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=25541 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=25541 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/KAERUNOTAMENI.pal b/Assets/Gameboy/Palettes/KAERUNOTAMENI.pal deleted file mode 100644 index 4814912905..0000000000 --- a/Assets/Gameboy/Palettes/KAERUNOTAMENI.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=9211102 -Sprite%2022=5395084 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/KEN GRIFFEY JR.pal b/Assets/Gameboy/Palettes/KEN GRIFFEY JR.pal deleted file mode 100644 index 1be3ff09b7..0000000000 --- a/Assets/Gameboy/Palettes/KEN GRIFFEY JR.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=25541 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/KID ICARUS.pal b/Assets/Gameboy/Palettes/KID ICARUS.pal deleted file mode 100644 index 3dc386dd18..0000000000 --- a/Assets/Gameboy/Palettes/KID ICARUS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/KILLERINSTINCT95.pal b/Assets/Gameboy/Palettes/KILLERINSTINCT95.pal deleted file mode 100644 index 174ccbbbd2..0000000000 --- a/Assets/Gameboy/Palettes/KILLERINSTINCT95.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/KINGOFTHEZOO.pal b/Assets/Gameboy/Palettes/KINGOFTHEZOO.pal deleted file mode 100644 index 520487aa06..0000000000 --- a/Assets/Gameboy/Palettes/KINGOFTHEZOO.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/KIRAKIRA KIDS.pal b/Assets/Gameboy/Palettes/KIRAKIRA KIDS.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/KIRAKIRA KIDS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/KIRBY BLOCKBALL.pal b/Assets/Gameboy/Palettes/KIRBY BLOCKBALL.pal deleted file mode 100644 index adaa1c6aab..0000000000 --- a/Assets/Gameboy/Palettes/KIRBY BLOCKBALL.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=10853631 -Background1=16776960 -Background2=25344 -Background3=0 -Sprite%2010=16737106 -Sprite%2011=14024704 -Sprite%2012=6488064 -Sprite%2013=0 -Sprite%2020=255 -Sprite%2021=16777215 -Sprite%2022=16777083 -Sprite%2023=34047 diff --git a/Assets/Gameboy/Palettes/KIRBY DREAM LAND.pal b/Assets/Gameboy/Palettes/KIRBY DREAM LAND.pal deleted file mode 100644 index adaa1c6aab..0000000000 --- a/Assets/Gameboy/Palettes/KIRBY DREAM LAND.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=10853631 -Background1=16776960 -Background2=25344 -Background3=0 -Sprite%2010=16737106 -Sprite%2011=14024704 -Sprite%2012=6488064 -Sprite%2013=0 -Sprite%2020=255 -Sprite%2021=16777215 -Sprite%2022=16777083 -Sprite%2023=34047 diff --git a/Assets/Gameboy/Palettes/KIRBY'S PINBALL.pal b/Assets/Gameboy/Palettes/KIRBY'S PINBALL.pal deleted file mode 100644 index d29681e256..0000000000 --- a/Assets/Gameboy/Palettes/KIRBY'S PINBALL.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=10853631 -Background1=16776960 -Background2=25344 -Background3=0 -Sprite%2010=16737106 -Sprite%2011=14024704 -Sprite%2012=6488064 -Sprite%2013=0 -Sprite%2020=16737106 -Sprite%2021=14024704 -Sprite%2022=6488064 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/KIRBY2.pal b/Assets/Gameboy/Palettes/KIRBY2.pal deleted file mode 100644 index adaa1c6aab..0000000000 --- a/Assets/Gameboy/Palettes/KIRBY2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=10853631 -Background1=16776960 -Background2=25344 -Background3=0 -Sprite%2010=16737106 -Sprite%2011=14024704 -Sprite%2012=6488064 -Sprite%2013=0 -Sprite%2020=255 -Sprite%2021=16777215 -Sprite%2022=16777083 -Sprite%2023=34047 diff --git a/Assets/Gameboy/Palettes/LOLO2.pal b/Assets/Gameboy/Palettes/LOLO2.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/LOLO2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MAGNETIC SOCCER.pal b/Assets/Gameboy/Palettes/MAGNETIC SOCCER.pal deleted file mode 100644 index ac5578f7ff..0000000000 --- a/Assets/Gameboy/Palettes/MAGNETIC SOCCER.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MANSELL.pal b/Assets/Gameboy/Palettes/MANSELL.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/MANSELL.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MARIO and YOSHI.pal b/Assets/Gameboy/Palettes/MARIO and YOSHI.pal deleted file mode 100644 index 31e864874c..0000000000 --- a/Assets/Gameboy/Palettes/MARIO and YOSHI.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=5439232 -Background2=16728576 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MARIO'S PICROSS.pal b/Assets/Gameboy/Palettes/MARIO'S PICROSS.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/MARIO'S PICROSS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MARIOLAND2.pal b/Assets/Gameboy/Palettes/MARIOLAND2.pal deleted file mode 100644 index 52a4f2bb7e..0000000000 --- a/Assets/Gameboy/Palettes/MARIOLAND2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777166 -Background1=6549487 -Background2=10257457 -Background3=5921370 -Sprite%2010=16777215 -Sprite%2011=16741120 -Sprite%2012=9716224 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MEGA MAN 2.pal b/Assets/Gameboy/Palettes/MEGA MAN 2.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/MEGA MAN 2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MEGAMAN.pal b/Assets/Gameboy/Palettes/MEGAMAN.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/MEGAMAN.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MEGAMAN3.pal b/Assets/Gameboy/Palettes/MEGAMAN3.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/MEGAMAN3.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/METROID2.pal b/Assets/Gameboy/Palettes/METROID2.pal deleted file mode 100644 index c9925592e5..0000000000 --- a/Assets/Gameboy/Palettes/METROID2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=6530559 -Background2=255 -Background3=0 -Sprite%2010=16776960 -Sprite%2011=16711680 -Sprite%2012=6488064 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MILLIPEDE and CENTIPEDE.pal b/Assets/Gameboy/Palettes/MILLIPEDE and CENTIPEDE.pal deleted file mode 100644 index 1be3ff09b7..0000000000 --- a/Assets/Gameboy/Palettes/MILLIPEDE and CENTIPEDE.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=25541 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MOGURANYA.pal b/Assets/Gameboy/Palettes/MOGURANYA.pal deleted file mode 100644 index ed44565675..0000000000 --- a/Assets/Gameboy/Palettes/MOGURANYA.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=11382148 -Background2=4354939 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16741120 -Sprite%2012=9716224 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16741120 -Sprite%2022=9716224 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/MYSTIC QUEST.pal b/Assets/Gameboy/Palettes/MYSTIC QUEST.pal deleted file mode 100644 index ac5578f7ff..0000000000 --- a/Assets/Gameboy/Palettes/MYSTIC QUEST.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/NETTOU KOF 95.pal b/Assets/Gameboy/Palettes/NETTOU KOF 95.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/NETTOU KOF 95.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/NEW CHESSMASTER.pal b/Assets/Gameboy/Palettes/NEW CHESSMASTER.pal deleted file mode 100644 index 520487aa06..0000000000 --- a/Assets/Gameboy/Palettes/NEW CHESSMASTER.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/OTHELLO.pal b/Assets/Gameboy/Palettes/OTHELLO.pal deleted file mode 100644 index ac5578f7ff..0000000000 --- a/Assets/Gameboy/Palettes/OTHELLO.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/PAC-IN-TIME.pal b/Assets/Gameboy/Palettes/PAC-IN-TIME.pal deleted file mode 100644 index 7a5a2d6f52..0000000000 --- a/Assets/Gameboy/Palettes/PAC-IN-TIME.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=25541 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/PICROSS 2.pal b/Assets/Gameboy/Palettes/PICROSS 2.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/PICROSS 2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/PINOCCHIO.pal b/Assets/Gameboy/Palettes/PINOCCHIO.pal deleted file mode 100644 index 10d501aa45..0000000000 --- a/Assets/Gameboy/Palettes/PINOCCHIO.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=9211102 -Sprite%2012=5395084 -Sprite%2013=0 -Sprite%2020=16762178 -Sprite%2021=16766464 -Sprite%2022=9714176 -Sprite%2023=4849664 diff --git a/Assets/Gameboy/Palettes/POKEBOM.pal b/Assets/Gameboy/Palettes/POKEBOM.pal deleted file mode 100644 index 3139b28f1c..0000000000 --- a/Assets/Gameboy/Palettes/POKEBOM.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=9211102 -Background2=5395084 -Background3=0 -Sprite%2010=16762178 -Sprite%2011=16766464 -Sprite%2012=9714176 -Sprite%2013=4849664 -Sprite%2020=16762178 -Sprite%2021=16766464 -Sprite%2022=9714176 -Sprite%2023=4849664 diff --git a/Assets/Gameboy/Palettes/POKEMON BLUE.pal b/Assets/Gameboy/Palettes/POKEMON BLUE.pal deleted file mode 100644 index ce97454aff..0000000000 --- a/Assets/Gameboy/Palettes/POKEMON BLUE.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=6530559 -Background2=255 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/POKEMON GREEN.pal b/Assets/Gameboy/Palettes/POKEMON GREEN.pal deleted file mode 100644 index 05b177d4a5..0000000000 --- a/Assets/Gameboy/Palettes/POKEMON GREEN.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=25541 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=25541 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/POKEMON RED.pal b/Assets/Gameboy/Palettes/POKEMON RED.pal deleted file mode 100644 index 47f0de35e4..0000000000 --- a/Assets/Gameboy/Palettes/POKEMON RED.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16745604 -Background2=9714234 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=8126257 -Sprite%2012=33792 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/POKEMON YELLOW.pal b/Assets/Gameboy/Palettes/POKEMON YELLOW.pal deleted file mode 100644 index 4c525090de..0000000000 --- a/Assets/Gameboy/Palettes/POKEMON YELLOW.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16776960 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16776960 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16776960 -Sprite%2022=16711680 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/QIX.pal b/Assets/Gameboy/Palettes/QIX.pal deleted file mode 100644 index 200a4a403d..0000000000 --- a/Assets/Gameboy/Palettes/QIX.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16776960 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16776960 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/RADARMISSION.pal b/Assets/Gameboy/Palettes/RADARMISSION.pal deleted file mode 100644 index e7afc169f0..0000000000 --- a/Assets/Gameboy/Palettes/RADARMISSION.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=11382148 -Background2=4354939 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16741120 -Sprite%2012=9716224 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=11382148 -Sprite%2022=4354939 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/ROCKMAN WORLD.pal b/Assets/Gameboy/Palettes/ROCKMAN WORLD.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/ROCKMAN WORLD.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/ROCKMAN WORLD2.pal b/Assets/Gameboy/Palettes/ROCKMAN WORLD2.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/ROCKMAN WORLD2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/ROCKMANWORLD3.pal b/Assets/Gameboy/Palettes/ROCKMANWORLD3.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/ROCKMANWORLD3.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/SEIKEN DENSETSU.pal b/Assets/Gameboy/Palettes/SEIKEN DENSETSU.pal deleted file mode 100644 index ac5578f7ff..0000000000 --- a/Assets/Gameboy/Palettes/SEIKEN DENSETSU.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/SOCCER.pal b/Assets/Gameboy/Palettes/SOCCER.pal deleted file mode 100644 index 43c4a58492..0000000000 --- a/Assets/Gameboy/Palettes/SOCCER.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=7077632 -Background1=16777215 -Background2=16732746 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16777215 -Sprite%2012=6530559 -Sprite%2013=255 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/SOLARSTRIKER.pal b/Assets/Gameboy/Palettes/SOLARSTRIKER.pal deleted file mode 100644 index cd57550463..0000000000 --- a/Assets/Gameboy/Palettes/SOLARSTRIKER.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=0 -Background1=33924 -Background2=16768512 -Background3=16777215 -Sprite%2010=0 -Sprite%2011=33924 -Sprite%2012=16768512 -Sprite%2013=16777215 -Sprite%2020=0 -Sprite%2021=33924 -Sprite%2022=16768512 -Sprite%2023=16777215 diff --git a/Assets/Gameboy/Palettes/SPACE INVADERS.pal b/Assets/Gameboy/Palettes/SPACE INVADERS.pal deleted file mode 100644 index cd57550463..0000000000 --- a/Assets/Gameboy/Palettes/SPACE INVADERS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=0 -Background1=33924 -Background2=16768512 -Background3=16777215 -Sprite%2010=0 -Sprite%2011=33924 -Sprite%2012=16768512 -Sprite%2013=16777215 -Sprite%2020=0 -Sprite%2021=33924 -Sprite%2022=16768512 -Sprite%2023=16777215 diff --git a/Assets/Gameboy/Palettes/STAR STACKER.pal b/Assets/Gameboy/Palettes/STAR STACKER.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/STAR STACKER.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/STAR WARS-NOA.pal b/Assets/Gameboy/Palettes/STAR WARS-NOA.pal deleted file mode 100644 index 0924c5c89e..0000000000 --- a/Assets/Gameboy/Palettes/STAR WARS-NOA.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=8126257 -Sprite%2012=33792 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/STAR WARS.pal b/Assets/Gameboy/Palettes/STAR WARS.pal deleted file mode 100644 index 0924c5c89e..0000000000 --- a/Assets/Gameboy/Palettes/STAR WARS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=8126257 -Sprite%2012=33792 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/STREET FIGHTER 2.pal b/Assets/Gameboy/Palettes/STREET FIGHTER 2.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/STREET FIGHTER 2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/SUPER MARIOLAND.pal b/Assets/Gameboy/Palettes/SUPER MARIOLAND.pal deleted file mode 100644 index b19f7a9111..0000000000 --- a/Assets/Gameboy/Palettes/SUPER MARIOLAND.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=11908607 -Background1=16777108 -Background2=11360834 -Background3=0 -Sprite%2010=0 -Sprite%2011=16777215 -Sprite%2012=16745604 -Sprite%2013=9714234 -Sprite%2020=0 -Sprite%2021=16777215 -Sprite%2022=16745604 -Sprite%2023=9714234 diff --git a/Assets/Gameboy/Palettes/SUPER RC PRO-AM.pal b/Assets/Gameboy/Palettes/SUPER RC PRO-AM.pal deleted file mode 100644 index 24c0d88687..0000000000 --- a/Assets/Gameboy/Palettes/SUPER RC PRO-AM.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=8126257 -Sprite%2022=33792 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/SUPERDONKEYKONG.pal b/Assets/Gameboy/Palettes/SUPERDONKEYKONG.pal deleted file mode 100644 index 2e08e339d1..0000000000 --- a/Assets/Gameboy/Palettes/SUPERDONKEYKONG.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777116 -Background1=9745919 -Background2=6526067 -Background3=14906 -Sprite%2010=16762178 -Sprite%2011=16766464 -Sprite%2012=9714176 -Sprite%2013=4849664 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/SUPERMARIOLAND3.pal b/Assets/Gameboy/Palettes/SUPERMARIOLAND3.pal deleted file mode 100644 index e009760ac9..0000000000 --- a/Assets/Gameboy/Palettes/SUPERMARIOLAND3.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=11382148 -Background2=4354939 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16741120 -Sprite%2012=9716224 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/TENNIS.pal b/Assets/Gameboy/Palettes/TENNIS.pal deleted file mode 100644 index 43c4a58492..0000000000 --- a/Assets/Gameboy/Palettes/TENNIS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=7077632 -Background1=16777215 -Background2=16732746 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16777215 -Sprite%2012=6530559 -Sprite%2013=255 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/TETRIS ATTACK.pal b/Assets/Gameboy/Palettes/TETRIS ATTACK.pal deleted file mode 100644 index ca9fade23e..0000000000 --- a/Assets/Gameboy/Palettes/TETRIS ATTACK.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=5439232 -Background2=16728576 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=5439232 -Sprite%2012=16728576 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/TETRIS BLAST.pal b/Assets/Gameboy/Palettes/TETRIS BLAST.pal deleted file mode 100644 index 3a8f7cde59..0000000000 --- a/Assets/Gameboy/Palettes/TETRIS BLAST.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16751616 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16751616 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16751616 -Sprite%2022=16711680 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/TETRIS FLASH.pal b/Assets/Gameboy/Palettes/TETRIS FLASH.pal deleted file mode 100644 index 200a4a403d..0000000000 --- a/Assets/Gameboy/Palettes/TETRIS FLASH.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16776960 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16776960 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/TETRIS PLUS.pal b/Assets/Gameboy/Palettes/TETRIS PLUS.pal deleted file mode 100644 index 1be3ff09b7..0000000000 --- a/Assets/Gameboy/Palettes/TETRIS PLUS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=25541 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/TETRIS.pal b/Assets/Gameboy/Palettes/TETRIS.pal deleted file mode 100644 index 4c525090de..0000000000 --- a/Assets/Gameboy/Palettes/TETRIS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16776960 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16776960 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16776960 -Sprite%2022=16711680 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/TETRIS2.pal b/Assets/Gameboy/Palettes/TETRIS2.pal deleted file mode 100644 index 200a4a403d..0000000000 --- a/Assets/Gameboy/Palettes/TETRIS2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16776960 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16776960 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/THE CHESSMASTER.pal b/Assets/Gameboy/Palettes/THE CHESSMASTER.pal deleted file mode 100644 index 520487aa06..0000000000 --- a/Assets/Gameboy/Palettes/THE CHESSMASTER.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=6530559 -Sprite%2012=255 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/TOPRANKINGTENNIS.pal b/Assets/Gameboy/Palettes/TOPRANKINGTENNIS.pal deleted file mode 100644 index 43c4a58492..0000000000 --- a/Assets/Gameboy/Palettes/TOPRANKINGTENNIS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=7077632 -Background1=16777215 -Background2=16732746 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16777215 -Sprite%2012=6530559 -Sprite%2013=255 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/TOPRANKTENNIS.pal b/Assets/Gameboy/Palettes/TOPRANKTENNIS.pal deleted file mode 100644 index 43c4a58492..0000000000 --- a/Assets/Gameboy/Palettes/TOPRANKTENNIS.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=7077632 -Background1=16777215 -Background2=16732746 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16777215 -Sprite%2012=6530559 -Sprite%2013=255 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/TOY STORY.pal b/Assets/Gameboy/Palettes/TOY STORY.pal deleted file mode 100644 index 9762dc4ace..0000000000 --- a/Assets/Gameboy/Palettes/TOY STORY.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/TRIP WORLD.pal b/Assets/Gameboy/Palettes/TRIP WORLD.pal deleted file mode 100644 index e009760ac9..0000000000 --- a/Assets/Gameboy/Palettes/TRIP WORLD.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=11382148 -Background2=4354939 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16741120 -Sprite%2012=9716224 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/VEGAS STAKES.pal b/Assets/Gameboy/Palettes/VEGAS STAKES.pal deleted file mode 100644 index ac5578f7ff..0000000000 --- a/Assets/Gameboy/Palettes/VEGAS STAKES.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/WARIO BLAST.pal b/Assets/Gameboy/Palettes/WARIO BLAST.pal deleted file mode 100644 index 1be3ff09b7..0000000000 --- a/Assets/Gameboy/Palettes/WARIO BLAST.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=25541 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/WARIOLAND2.pal b/Assets/Gameboy/Palettes/WARIOLAND2.pal deleted file mode 100644 index f6b00e606c..0000000000 --- a/Assets/Gameboy/Palettes/WARIOLAND2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=11382148 -Background2=4354939 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/WAVERACE.pal b/Assets/Gameboy/Palettes/WAVERACE.pal deleted file mode 100644 index 33f9905aaa..0000000000 --- a/Assets/Gameboy/Palettes/WAVERACE.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=6530559 -Background2=255 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16777083 -Sprite%2022=34047 -Sprite%2023=16711680 diff --git a/Assets/Gameboy/Palettes/WORLD CUP.pal b/Assets/Gameboy/Palettes/WORLD CUP.pal deleted file mode 100644 index 9762dc4ace..0000000000 --- a/Assets/Gameboy/Palettes/WORLD CUP.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=8126257 -Background2=33792 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/X.pal b/Assets/Gameboy/Palettes/X.pal deleted file mode 100644 index e1de2bd08e..0000000000 --- a/Assets/Gameboy/Palettes/X.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=10855845 -Background2=5395026 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=10855845 -Sprite%2012=5395026 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=10855845 -Sprite%2022=5395026 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/YAKUMAN.pal b/Assets/Gameboy/Palettes/YAKUMAN.pal deleted file mode 100644 index 6e31a8609d..0000000000 --- a/Assets/Gameboy/Palettes/YAKUMAN.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16756067 -Background2=8663296 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16756067 -Sprite%2012=8663296 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16756067 -Sprite%2022=8663296 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/YOSHI'S COOKIE.pal b/Assets/Gameboy/Palettes/YOSHI'S COOKIE.pal deleted file mode 100644 index ce8dbdd3bf..0000000000 --- a/Assets/Gameboy/Palettes/YOSHI'S COOKIE.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16751616 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16751616 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/YOSSY NO COOKIE.pal b/Assets/Gameboy/Palettes/YOSSY NO COOKIE.pal deleted file mode 100644 index ce8dbdd3bf..0000000000 --- a/Assets/Gameboy/Palettes/YOSSY NO COOKIE.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16751616 -Background2=16711680 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16751616 -Sprite%2012=16711680 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/YOSSY NO PANEPON.pal b/Assets/Gameboy/Palettes/YOSSY NO PANEPON.pal deleted file mode 100644 index ca9fade23e..0000000000 --- a/Assets/Gameboy/Palettes/YOSSY NO PANEPON.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=5439232 -Background2=16728576 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=5439232 -Sprite%2012=16728576 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=5946879 -Sprite%2022=16711680 -Sprite%2023=255 diff --git a/Assets/Gameboy/Palettes/YOSSY NO TAMAGO.pal b/Assets/Gameboy/Palettes/YOSSY NO TAMAGO.pal deleted file mode 100644 index 31e864874c..0000000000 --- a/Assets/Gameboy/Palettes/YOSSY NO TAMAGO.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=5439232 -Background2=16728576 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=16745604 -Sprite%2012=9714234 -Sprite%2013=0 -Sprite%2020=16777215 -Sprite%2021=16745604 -Sprite%2022=9714234 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/ZELDA.pal b/Assets/Gameboy/Palettes/ZELDA.pal deleted file mode 100644 index 042a79a624..0000000000 --- a/Assets/Gameboy/Palettes/ZELDA.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16745604 -Background2=9714234 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=65280 -Sprite%2012=3245056 -Sprite%2013=18944 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=0 diff --git a/Assets/Gameboy/Palettes/ZELDA2.pal b/Assets/Gameboy/Palettes/ZELDA2.pal deleted file mode 100644 index 258dfef1e5..0000000000 --- a/Assets/Gameboy/Palettes/ZELDA2.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=16777215 -Background1=16745604 -Background2=9714234 -Background3=0 -Sprite%2010=16777215 -Sprite%2011=65280 -Sprite%2012=3245056 -Sprite%2013=18944 -Sprite%2020=16777215 -Sprite%2021=6530559 -Sprite%2022=255 -Sprite%2023=65536 diff --git a/Assets/Gameboy/Palettes/bsnes v087.pal b/Assets/Gameboy/Palettes/bsnes v087.pal deleted file mode 100644 index 5d2bc8c770..0000000000 --- a/Assets/Gameboy/Palettes/bsnes v087.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=10140421 -Background1=9087749 -Background2=1922333 -Background3=337157 -Sprite%2010=10140421 -Sprite%2011=9087749 -Sprite%2012=1922333 -Sprite%2013=337157 -Sprite%2020=10140421 -Sprite%2021=9087749 -Sprite%2022=1922333 -Sprite%2023=337157 diff --git a/Assets/Gameboy/Palettes/default.pal b/Assets/Gameboy/Palettes/default.pal deleted file mode 100644 index 12c127944c..0000000000 --- a/Assets/Gameboy/Palettes/default.pal +++ /dev/null @@ -1,13 +0,0 @@ -[General] -Background0=10798341 -Background1=8956165 -Background2=1922333 -Background3=337157 -Sprite%2010=10798341 -Sprite%2011=8956165 -Sprite%2012=1922333 -Sprite%2013=337157 -Sprite%2020=10798341 -Sprite%2021=8956165 -Sprite%2022=1922333 -Sprite%2023=337157 diff --git a/Assets/Lua/ButtonCount.lua b/Assets/Lua/ButtonCount.lua deleted file mode 100644 index 7a3b3ef50e..0000000000 --- a/Assets/Lua/ButtonCount.lua +++ /dev/null @@ -1,124 +0,0 @@ ---Written by Brandon Evans - ---You can change the position of the text here. -local x = 0 -local y = 36 - ---You can blacklist buttons from being recorded here. -local blacklist = {'Lag', 'Pause', 'Reset'} - -local data = {} -local registered = false -local state = {} -local states = {} - -function deepcopy(object) - local lookup_table = {} - local function _copy(object) - if type(object) ~= 'table' then - return object - elseif lookup_table[object] then - return lookup_table[object] - end - local new_table = {} - lookup_table[object] = new_table - for index, value in pairs(object) do - new_table[_copy(index)] = _copy(value) - end - return setmetatable(new_table, getmetatable(object)) - end - return _copy(object) -end - -function counts(obj) - gui.text(x, y, 'Pressed: ' .. obj.pressed) - gui.text(x, y + 14, 'Inputted: ' .. obj.inputted) -end - -function frames() - if not movie.isloaded() then - console.log('No data loaded from frames') - return - end - reset() - --Get data from every frame but this one. This frame's data will be decided - --in real-time. - for frame = 0, emu.framecount() - 1 do - record(movie.getinput(frame)) - end - console.log('Data loaded from frames') - counts(data) -end - -function load(name) - registered = true - state = {} - if not states[name] then - frames() - save(name) - return - end - data = deepcopy(states[name]) - console.log('Data loaded from ' .. name) - --Show the data from before the state's frame. - local previous = states[name].previous - counts(previous) -end - -function record(buttons) - for button, value in pairs(buttons) do - local blacklisted = false - for index, name in pairs(blacklist) do - if name == button then - blacklisted = true - end - end - if value and not blacklisted then - data.inputted = data.inputted + 1 - if not data.buttons[button] then - data.pressed = data.pressed + 1 - end - end - data.buttons[button] = value - end -end - -function reset() - data.buttons = {} - data.pressed = 0 - data.inputted = 0 -end - -function save(name) - registered = true - if next(state) == nil then - data.previous = deepcopy(data) - --Include the state's frame in the data. - record(joypad.get()) - state = deepcopy(data) - end - states[name] = deepcopy(state) - console.log('Data saved to ' .. name) -end - -reset() -frames() - -if event.onloadstate then - event.onloadstate(load) - event.onsavestate(save) -end - -while true do - --If this is the first frame, reset the data. - if emu.framecount() == 0 then - reset() - end - if not registered then - record(joypad.get()) - end - registered = false - state = {} - counts(data) - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/GBA/SonicAdvance_CamHack.lua b/Assets/Lua/GBA/SonicAdvance_CamHack.lua deleted file mode 100644 index c861f29c72..0000000000 --- a/Assets/Lua/GBA/SonicAdvance_CamHack.lua +++ /dev/null @@ -1,32 +0,0 @@ --- feos, 2019 - -local offX, offY, camX, camY -local addr_offX = 0x5B96 -local addr_offY = 0x5B98 -local addr_camX = 0x59D0 -local addr_camY = 0x59D2 - -while true do - client.invisibleemulation(true) - local memorystate = memorysavestate.savecorestate() - - offX = mainmemory.read_u16_le(addr_offX) - offY = mainmemory.read_u16_le(addr_offY) - camX = mainmemory.read_u16_le(addr_camX) - camY = mainmemory.read_u16_le(addr_camY) - - Xval = camX + offX - 128 - Yval = camY + offY - 80 - - mainmemory.write_u16_le(addr_camX, Xval) - mainmemory.write_u16_le(addr_camY, Yval) - - client.seekframe(emu.framecount()+1) - client.invisibleemulation(false) - client.seekframe(emu.framecount()+1) - client.invisibleemulation(true) - memorysavestate.loadcorestate(memorystate) - memorysavestate.removestate(memorystate) --- client.invisibleemulation(false) - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/Genesis/Castlevania Bloodlines.lua b/Assets/Lua/Genesis/Castlevania Bloodlines.lua deleted file mode 100644 index 430c6dff30..0000000000 --- a/Assets/Lua/Genesis/Castlevania Bloodlines.lua +++ /dev/null @@ -1,207 +0,0 @@ -------------------------------- -----Castlevania Blood Lines---- -------------------------------- - ---Author Pasky13 - ---------------- -----Toggles---- ---------------- -local draw_ehp = true -- Set to false to turn off HP display for enemies -local draw_php = true -- Set to false to turn off HP display for 1P -local draw_pproj = true --Set to false to turn off player projectiles - -local draw_ph = true -- Set to false to turn off player hitboxes -local draw_eh = true -- Set to false to turn off enemie hitboxes - -local infhp = true --Set to false to turn off infinite HP for the player - - -local playerbase = 0xB300 -local face = 0x2C -local php = 0x9C11 -local weapon = 0xB480 -local spear = 0x9CA7 -local enemybase = 0xB380 - -local xcord = 0x18 -local ycord = 0x1C - - - - -local function playerhitbox() - - ------------------------- - ----Vulnerability box---- - ------------------------- - local facing = mainmemory.read_u8(playerbase+face) - local x = mainmemory.read_u16_be(playerbase+0x18) - local y = mainmemory.read_u16_be(playerbase+0x1C) - local xoff = mainmemory.read_s16_be(playerbase+0x34) - local yoff = mainmemory.read_s16_be(playerbase+0x36) - local xrad = mainmemory.read_u16_be(playerbase+0x38) - local yrad = mainmemory.read_u16_be(playerbase+0x3A) - - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xF00000FF,0x300000FF) - - - --------------------- - ----weapon hitbox---- - --------------------- - facing = mainmemory.read_u8(playerbase+face) - - x = mainmemory.read_u16_be(weapon+0x18) - y = mainmemory.read_u16_be(weapon+0x1C) - xoff = mainmemory.read_s16_be(weapon+0x34) - yoff = mainmemory.read_s16_be(weapon+0x36) - xrad = mainmemory.read_u16_be(weapon+0x38) - yrad = mainmemory.read_u16_be(weapon+0x3A) - - if mainmemory.read_u8(weapon+0x01) == 1 and mainmemory.read_u8(weapon+0x28) > 0 then - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFFFFFF,0x40FFFFFF) - end - -end - -local function player_projectiles() - - local start = 0xC900 - local base - local x - local y - local xoff - local yoff - local xrad - local yrad - local facing - local ehp - local oend = 32 - local active = false - - for i = 0,oend,1 do - active = false - base = start + (i * 0x80) - - x = mainmemory.read_u16_be(base + xcord) - y = mainmemory.read_u16_be(base + ycord) - - if mainmemory.read_u8(base+1) == 1 then - active = true - end - - if y < 224 and y > 0 and x < 320 and x > 0 and active == true and (mainmemory.read_u8(base+0x45)) > 0 and mainmemory.read_u8(base+0x4F) > 0 and mainmemory.read_u8(base+0x28) == 1 then - - facing = mainmemory.read_u8(base+face) - x = mainmemory.read_u16_be(base+0x18) - y = mainmemory.read_u16_be(base+0x1C) - xoff = mainmemory.read_s16_be(base+0x34) - yoff = mainmemory.read_s16_be(base+0x36) - xrad = mainmemory.read_u16_be(base+0x38) - yrad = mainmemory.read_u16_be(base+0x3A) - - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFFFFFF,0x40FFFFFF) - - gui.text((x-8) * xmult,(y+10) * ymult,"DMG: " .. mainmemory.read_u8(base+0x45)) - end - - end -end - -local function playerinfo() - local x = mainmemory.read_u16_be(playerbase+xcord) - local y = mainmemory.read_u16_be(playerbase+ycord) - local hp = mainmemory.read_u8(php) - - if draw_php == true then - gui.text((x-12) * xmult,y * ymult,"HP: " .. hp) - end - - if draw_ph == true then - playerhitbox() - end - - if draw_pproj == true then - player_projectiles() - end - -end - -local function enemyinfo() - - local base - local x - local y - local xoff - local yoff - local xrad - local yrad - local facing - local ehp - local oend = 44 - local active = false - - for i = 0,oend,1 do - - active = false - base = enemybase + (i * 0x80) - - x = mainmemory.read_u16_be(base + xcord) - y = mainmemory.read_u16_be(base + ycord) - - if mainmemory.read_u8(base+1) == 1 then - active = true - end - - local ehp = mainmemory.read_u8(base+0x55) - - if base ~= weapon then - - if y < 224 and y > 0 and x < 320 and x > 0 and active == true then - - if draw_ehp == true and ehp > 0 then - gui.text((x-10) * xmult,y * ymult,"HP: " .. ehp) - end - - -------------------- - ----Enemy Hitbox---- - -------------------- - - if draw_eh == true then - facing = mainmemory.read_u8(base+face) - x = mainmemory.read_u16_be(base+0x18) - y = mainmemory.read_u16_be(base+0x1C) - xoff = mainmemory.read_s16_be(base+0x34) - yoff = mainmemory.read_s16_be(base+0x36) - xrad = mainmemory.read_u16_be(base+0x38) - yrad = mainmemory.read_u16_be(base+0x3A) - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFF0000,0x40FF0000) - end - - end - end - - end - -end - - - -local function infinitehp() - memory.writebyte(php,80) -end - -local function scaler() - xmult = client.screenwidth() / 320 - ymult = client.screenheight() / 224 -end - -while true do - scaler() - playerinfo() - enemyinfo() - if infhp == true then - infinitehp() - end - emu.frameadvance() -end diff --git a/Assets/Lua/Genesis/Earthworm Jim 2.lua b/Assets/Lua/Genesis/Earthworm Jim 2.lua deleted file mode 100644 index 7d5d626a82..0000000000 --- a/Assets/Lua/Genesis/Earthworm Jim 2.lua +++ /dev/null @@ -1,337 +0,0 @@ --- feos, 2015 - ---== Globals ==-- -local lastcfg = 0 -local dcfg = 0 -local rngcount = 0 -local rngobject = 0 -local rngroutine = 0 -local rngcolor = "white" -local MsgTime = 16 -local MsgStep = 256/MsgTime -local MsgTable = {} - ---== Slow stuff ==-- -local drawwalls = 1 -local drawfloor = 1 -local drawbg = 1 -local drawrng = 1 - ---== Shortcuts ==-- -local rb = memory.read_u8 -local rbs = memory.read_s8 -local rw = memory.read_u16_be -local rws = memory.read_s16_be -local rl = memory.read_u32_be -local box = gui.drawBox -local text = gui.pixelText -local line = gui.drawLine -local AND = bit.band -local SHIFTL = bit.lshift -local SHIFTR = bit.rshift - -event.onframestart(function() - rngcount = 0 - rngobject = 0 - rngcolor = "white" -end) - -event.onmemorywrite(function() - rngcount = rngcount+1 - rngcolor = "red" - rngobject = emu.getregister("M68K A1") - rngroutine = emu.getregister("M68K A0") - for i = 1, 30 do - if MsgTable[i] == nil then - MsgTable[i] = { - timer_ = MsgTime + emu.framecount(), - object_ = rngobject-0xff0000, - routine_ = rngroutine - } - break - end - end -end, 0xffa1d4) - -local function PostRngRoll(object,x,y) - if drawrng==0 then return end - for i = 1, #MsgTable do - if (MsgTable[i]) then - if object==MsgTable[i].object_ then - local color = 0x00ff0000+SHIFTL((MsgTable[i].timer_-emu.framecount())*MsgStep,24) - line(130,7*i+8,x,y,color) - text(120,7*i+8,string.format("%X",MsgTable[i].routine_),color) - end - if (MsgTable[i].timer_0 and id<130 and hbbase<0x300000) then - -- hitbox -- - local x1 = rb(hbbase+2,"MD CART") - local x2 = rb(hbbase+4,"MD CART") - local y1 = rb(hbbase+3,"MD CART") - local y2 = rb(hbbase+5,"MD CART") - if x1>0 and x2>0 and y1>0 and y2>0 then - if facing==-1 then - x1 = 256-x1 - x2 = 256-x2 - end - if d==-1 then - y1 = 256-y1 - y2 = 256-y2 - end - x1 = x+x1-of - x2 = x+x2-of - y1 = y+y1-of - y2 = y+y2-of - if id>=120 and id<=124 then color = 0xffff0000 end - box(x1,y1,x2,y2,color,0) - if hp>0 and id~=120 then text(x,y-2,hp,color) end - --text(x,y,string.format("%X",id),"yellow") - end - -- whip - if base==0xa20e then - local wx = rb(hbbase+6,"MD CART") - local wy = rb(hbbase+7,"MD CART") - local ww = rb(0xff0c) - local wh = rb(0xff0d) - if facing==-1 then wx = 256-wx end - if d ~= 0 then wy = 256-wy end - wx = wx+x-of - wy = wy+y-of - box(wx-ww,wy-wh,wx+ww,wy+wh,0xffff0000,0) - if invcount>0 then text(x,y,invcount) end - end - end - end - end -end - -local function GetFloor(x, y) - if drawfloor==0 then return {0,0} end - x = x*16+AND(camx,0xfff0) - y = y*16+AND(camy,0xfff0) - local d6 = SHIFTR(AND(y,0xfff0),3) - local a0 = rw(d6+0xb4e8) - local d0 = SHIFTR(x+0x10,4) - local d2 = AND(x,0xf) - local a1 = 0xb806+rw(0xfb9e) - local a2 = 0x273e1e - local d3 = SHIFTR(rw(a0+d0*2),1) - local temp = a1+d3 - if temp>0xffff then return {0,0} end - local d5 = SHIFTL(rb(temp),4)+d2 - local newd5 = SHIFTL(rb(a1+d3),4)+d2+15 - local newd0 = AND(rb(a2+newd5,"MD CART"),0x1f) - return {AND(rb(a2+d5,"MD CART"),0x1f), newd0} -end - -local function GetWall(x, y) - if drawwalls==0 then return 0 end - x = x*16+AND(camx,0xfff0) - y = y*16+AND(camy,0xfff0) - if y<0 then return 0 end - local d6 = SHIFTR(AND(y+6,0xfff0),3) - local a0 = rw(d6+0xb4e6) - local temp = a0+SHIFTR(x,4)*2 - if temp>0xffff then return 0 end - local d0 = rw(temp) - temp = 0xb808+SHIFTR(d0,1) - if temp>0xffff then return 0 end - return rb(temp) -end - -local function DrawBG() - if drawbg==0 then return end - for j=1,15 do - for i=1,21 do - local a0 = GetWall(i,j) - if a0>0 then - x1 = i*16-AND(camx,0xf)-16 - y1 = j*16-AND(camy,0xf)-16 - x2 = i*16-AND(camx,0xf)-1 - y2 = j*16-AND(camy,0xf)-1 - if a0==255 then -- normal - box(x1,y1,x2,y2,0xff00ffff,0x4400ffff) - elseif a0==228 then -- snot - box(x1,y1,x2,y2,0xff00ff00,0x4400ff00) - elseif a0==117 then -- right - box(x1,y1,x2,y2,0x4400ffff,0x4400ffff) - line(x2,y1,x2,y2,0xff00ffff) - elseif a0==116 then -- left - box(x1,y1,x2,y2,0x4400ffff,0x4400ffff) - line(x1,y1,x1,y2,0xff00ffff) - elseif a0==113 or a0==114 then -- grab corner - box(x1,y1,x2,y2,0x66ffff00,0x66ffff00) - elseif a0==60 or a0==61 - or a0>=74 and a0<=77 - or a0==58 or a0==59 then -- stomack - box(x1,y1,x2,y2,0xffff0000,0x44ff0000) - elseif a0==73 then -- stomack - box(x1,y1,x2,y2,0x44ff0000,0x44ff0000) - elseif a0==54 or a0==40 then -- kitchen - box(x1,y1,x2,y2,0xffff0000,0x44ff0000) - elseif a0==41 then -- kitchen - box(x1,y1,x2,y2,0x44ff0000,0x44ff0000) - else -- other occasional crap - box(x1,y1,x2,y2,0x66ffffff,0x66ffffff) - --text(x1,y1,a0) - end - end - - local d0 = GetFloor(i,j)[1] - if d0>0 then - local newd0 = GetFloor(i,j)[2] - if newd0>0 then - x1 = i*16-AND(camx,0xf) - y1 = j*16-AND(camy,0xf)+d0 - x2 = i*16-AND(camx,0xf)+15 - y2 = j*16-AND(camy,0xf)+newd0 - else - for k=-2,2 do - newd0 = GetFloor(i+1,j+k)[1] - if newd0>0 then - local add = 1 - if k==-2 then - k = 0 - add = -1 - elseif k==-1 then - add = 2 - elseif k==2 then - add = 1 - end - x1 = i*16-AND(camx,0xf) - y1 = j*16-AND(camy,0xf)+d0 - x2 = i*16-AND(camx,0xf)+16 - y2 = j*16-AND(camy,0xf)-newd0+k*16+add - --text(x1,y2,k,"red") - end - end - end - line(x1,y1,x2,y2,0xff00ff00) - end - end - end -end - -local function Seek() - bytes = 0 - waves = 0 - steps = 0 - local ret = "" - for bytes=0,10000 do - local cfg = rl(0xfc2a)+bytes - local action = rb(cfg, "MD CART") - local newaction = rb(cfg+1, "MD CART") - if action==0x7a then - waves=waves+1 - steps=steps+1 - end - if action==0x63 or action==0x64 or (action==0 and newaction==0) then - steps=steps+1 - end - if action>=0x30 and action<=0x32 then - if newaction==0x70 then - steps=steps+1 - elseif newaction==0x62 then - ret = string.format("BOMB in %d waves %d steps",waves,steps,bytes) - break - end - elseif action==3 then - ret = string.format("Forth in %d waves %d steps",waves,steps,bytes) - break - elseif action==0xe and newaction==8 then - ret = string.format("Back in %d waves %d steps",waves,steps,bytes) - break - end - end - text(120,7,ret) -end - -local function Bounce() - if rb(0xa515)==0x60 - then offset = 8 - else offset = 0 - end - local counter = rb(0xfc87) - local a0 = 0xfc88 - local d0 = SHIFTL(rb(a0+counter),5)+offset - local vel = rw(0x25d482+d0, "MD CART") - if vel == 0x200 then bounce = 3 - elseif vel == 0x3e0 then bounce = 1 - else bounce = 2 - end - text(60,0,string.format("bounce: %X",bounce)) -end - -local function Configs() - local rng = rl(0xa1d4) - text(120,0,string.format("rng: %08X:%d",rng,rngcount),rngcolor) - local cfg0 = rl(0xfc2a) - if cfg0==0 then return end - local cfg1 = rl(0xfc9a) - text(220,0,string.format("cfg old: %X\ncfg step: %d",cfg1,dcfg)) - if lastcfg~=cfg0 then dcfg = cfg0-lastcfg end - lastcfg = cfg0 - local h = 7 - for i=0,20 do - local config = rl(0xfc2a)+i - local action = rb(config,"MD CART") - local newaction = memory.readbyte(config+1,"MD CART") - if action==0x62 - or (action==0xe and newaction==8) - or action==8 - or action==3 then color = "red" - elseif action>=0x63 and action<=0x64 then color = "orange" - elseif action>=0x30 and action<=0x32 then color = 0xff00ff00 - elseif action>=0x65 and action<=0x70 then color = 0xff00cc00 - elseif action==0x7a then color = "white" - else color = 0xffaaaaaa - end - text(270,i*h+42,string.format("%X:%02X",config,action),color) - if i>0 - and action==0x7a - or action==0x2b - or action==0x2d - then break - end - end - Bounce() - Seek() -end - -while true do - camx = rw(0xa172) - camy = rw(0xa174) - scrx = rw(0xa176)-0x1000 - scry = rw(0xa178)-0x1000 - absx = rw(0xa17e)-0x1000 - absy = rw(0xa180)-0x1000 - invcount = rb(0xfbd6) - if rb(0xa313)==4 and rb(0xa317)~=2 then - DrawBG() - Objects(0xa2ea, 0x23) - Objects(0xa20e, 0) - Configs() - end - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/Genesis/Gargoyles.lua b/Assets/Lua/Genesis/Gargoyles.lua deleted file mode 100644 index dcb4ca070f..0000000000 --- a/Assets/Lua/Genesis/Gargoyles.lua +++ /dev/null @@ -1,522 +0,0 @@ --- Gargoyles, Genesis (BizHawk) --- feos, 2015-2017 - ---== Shortcuts ==-- -local rb = memory.read_u8 -local rw = memory.read_u16_be -local rws = memory.read_s16_be -local r24 = memory.read_u24_be -local rl = memory.read_u32_be -local box = gui.drawBox -local text = gui.text -local ptext = gui.pixelText -local line = gui.drawLine -local AND = bit.band -local SHIFT = bit.rshift - ---== RAM addresses ==-- -local levnum = 0xff00ba -local LevelFlr = 0xff00c0 -local LevelCon = 0xff00c4 -local mapline_tab = 0xff0244 -local GlobalBase = 0xff1c76 -local GolBase = 0xff2c76 -local MapA_Buff = 0xff4af0 - ---== Camera Hack ==-- -local camhack = false -local div = 1 -- scale -local size = 16/div -- block size - ---== Block cache ==-- -local col = 0 -- block color -local opout = 0x33000000 -- outer opacity -local opin = 0x66000000 -- inner opacity -local op = 0xff000000 -local cache = {} - ---== Other stuff ==-- -local MsgCutoff = 20 -local MsgTime = 1 -local MsgStep = 14 -local MsgOffs = 2 -local MsgTable = {} -local XposLast = 0 -local YposLast = 0 -local room = 0 -local workinglast = 0 -local wSize = client.getwindowsize() -local lagcount = emu.lagcount() -gui.defaultTextBackground(0xff000000) - ---== Object types ==-- -local types = { - "Goliath","Orb","Health1PLR","Health2PLR","Health1NME","Health2NME","Numeral", - "BigExplode","SmallExplode","GlassDebris","MetalDebris","WoodDebris", - "WallDebris","SignPiece","SteamVent","BreakWall","SkyLight","BreakLight", - "ThrowCrate","BreakEdgeLeft","BreakEdgeRight","Spark","Spark2","Sparks", - "Sparks2","Fireball","HomingProj1","HorzProj1","VertProj1","DirProj1", - "DirProj2","DropMine","Scratch","Icon","RaptorBot","SniperBot","SpiderBot", - "WaspBot","Xanatos","PlasmaBot","RabidHH","MorningStar","Archer","Arrow", - "Valkyrie","Axe","WeaponExp","Couldron","SpittingCouldron","FireballHead", - "FireballTrail","BigFireballHead","BigFireballTrail","Oil","OilGenerator", - "Claw","Stump","StumpBubble","StumpFire","ClawStump","StumpFireGen","Vent", - "VentSparks","Chain","FlameLick","Floor","MutVikBody","MutVikHead", - "MutVikHammer","EyeOfOdin","EyeOfOdinTrail","L1BreakWall","Catapult", - "L1BreakFloor","Gate","GateCrusher","Weight","WeightCrusher","WallFire", - "Balista","BalistaLog","PasteWall","FlameBoulder","CastlePiece", - "MutantSpiderBot","MutSpiLegs","MutSpiHead","MutSpiHeadFlame","MutSpiProj", - "MutSpiElecV","MutSpiElecH","PlasmaBall","PlasmaBallTail","PlasmaDeadHead", - "VertFlame","WallFlame","FloorFlame","OPPlatform","OPLink","OPOrb", - "Furnace","RobotGenerator","RockGenerator","BigRock","MediumRock", - "SmallRock","BigCouldronGen","BigCouldron","Trough","TroughGen","Energizer", - "Demona","TrajectoryProj","WallPaste","EdgePaste","Tentacle","Infuser", - "BigGuns","BigGunsProj","HighSignPole","HighSign","LowLight","L5Skylight", - "L5Wall","ElecGenerator","Electricity","WaspGenerator","TunnelEdge", - "ForegroundPost","Sorcerer","LightningTop","LightningBot","MDemonaWallFire", - "MDemonaFloorFire","EyeRooftopUp","EyeRooftopDn","EyeRaptor" -} - -local function RoomTime() - local start11 = 894--767 - local start12 = 2294 - local start13 = 5468 -- 4254 -- 4101 - local startl4 = 5506 - local startl5 = 7117 - local startl6 = 8412 - local startl7 = 17117 - local timer = emu.framecount() - if timer < start11 then room = timer - elseif timer < start12 then room = timer - start11 - elseif timer < start13 then room = timer - start12 - elseif timer < startl4 then room = timer - start13 - elseif timer < startl5 then room = timer - startl4 - elseif timer < startl6 then room = timer - startl5 - elseif timer < startl7 then room = timer - startl6 - end - text(2, 2, string.format("cx:%5d\ncy:%5d\nroom:%d", camx, camy, room), "white", "bottomright") -end - -local function HUD() - --if working > 0 then return end - local rndcol = "white" - if rndlast ~= rnd1 then rndcol = "red" end - text(0, 2, string.format("RNG:%08X %04X", rnd1, rnd2), rndcol, "bottomleft") - text(2, 0, string.format( - "x: %4d\ny: %4d\ndx: %3d\ndy: %3d\nhp: %3d\nrun:%3d\ninv:%3d", - Xpos, Ypos, Xspd, Yspd, health, run, inv), - "white", "topright") -end - -local function CamhackHUD() - if working == 0 then - -- screen edge - box((backx-camx- 1)/div, - (backy-camy- 1)/div, - (backx-camx+320)/div, - (backy-camy+224)/div, - 0xff0000ff, 0) - -- map edge - box( 0-camx/div+size, - 0-camy/div+size, - mapw/div-camx/div, - maph/div-camy/div, - 0xff0000ff, 0) - end - if camhack or div > 1 then - text(0, 0, string.format("div:%d", div), "white", "topleft") - end -end - -local function PosToIndex(x, y) - return math.floor(x/16)+math.floor(y/16)*xblocks -end - -local function IndexToPos(i) - return { x=(i%xblocks)*16, y=math.floor(i/xblocks)*16 } -end - -local function InBounds(x, minimum, maximum) - if x >= minimum and x <= maximum - then return true - else return false - end -end - -local function GetBlock(x, y) - if working > 0 then return nil end - local final = { contour={}, block=0 } - if x > 0 and x < mapw - and y > 0 and y < maph then - local pixels = 0 - local x1 = x/div-camx/div - local x2 = x1+size-1 - local y1 = y/div-camy/div - local y2 = y1+size-1 - local d4 = rw(mapline_tab+SHIFT(y, 4)*2) - local a1 = r24(LevelFlr+1) - local d1 = SHIFT(rw(MapA_Buff+d4+SHIFT(x, 4)*2), 1) - final.block = rb(a1+d1+2) - d1 = rw(a1+d1) - a1 = r24(LevelCon+1)+d1 - if rb(a1) > 0 or rb(a1+8) > 0 then - for pixel=0, 15 do - final.contour[pixel] = rb(a1+pixel) - end - else - final.contour = nil - end - else - return nil - end - return final -end - -local DrawBlock = { - [0x80] = function(x1, y1, x2, y2) -- WALL - col = 0x00ffffff -- white - line(x1, y1, x1, y2, col+op) -- left - line(x2, y1, x2, y2, col+op) -- right - end, - [0x81] = function(x1, y1, x2, y2) -- CEILING - col = 0x00ffffff -- white - line(x1, y2, x2, y2, col+op) -- bottom - end, - [0x82] = function(x1, y1, x2, y2) -- CLIMB_U - col = 0x0000ffff -- cyan - line(x1, y2, x2, y2, col+op) -- bottom - end, - [0x83] = function(x1, y1, x2, y2) -- CLIMB_R - col = 0x0000ffff -- cyan - line(x1, y1, x1, y2, col+op) -- left - end, - [0x84] = function(x1, y1, x2, y2) -- CLIMB_L - col = 0x0000ffff -- cyan - line(x2, y1, x2, y2, col+op) -- right - end, - [0x85] = function(x1, y1, x2, y2) -- CLIMB_LR - col = 0x0000ffff -- cyan - line(x1, y1, x1, y2, col+op) -- left - line(x2, y1, x2, y2, col+op) -- right - end, - [0x86] = function(x1, y1, x2, y2) -- CLIMB_R_STAND_R - col = 0x00ffffff -- white - line(x1, y1, x2, y1, col+op) -- top - col = 0x0000ffff -- cyan - line(x1, y1, x1, y2, col+op) -- left - end, - [0x87] = function(x1, y1, x2, y2) -- CLIMB_L_STAND_L - col = 0x00ffffff -- white - line(x1, y1, x2, y1, col+op) -- top - col = 0x0000ffff -- cyan - line(x2, y1, x2, y2, col+op) -- right - end, - [0x88] = function(x1, y1, x2, y2) -- CLIMB_LR_STAND_LR - col = 0x00ffffff -- white - line(x1, y1, x2, y1, col+op) -- top - col = 0x00ff00ff -- cyan - line(x1, y1, x1, y2, col+op) -- left - col = 0x0000ffff -- cyan - line(x2, y1, x2, y2, col+op) -- right - end, - [0x70] = function(x1, y1, x2, y2) -- GRAB_SWING - col = 0x0000ff00 -- green - box(x1, y1, x2, y2, col, col+opout) - end, - [0x7f] = function(x1, y1, x2, y2) -- EXIT - col = 0x00ffff00 -- yellow - end, - [0xd0] = function(x1, y1, x2, y2) -- SPIKES - col = 0x00ff0000 -- red - box(x1, y1, x2, y2, col, col+opout) - end, - [0xd1] = function(x1, y1, x2, y2) -- SPIKES - col = 0x00ff0000 -- red - box(x1, y1, x2, y2, col, col+opout) - end -} - -local function DrawBlockDefault(x1, y1, x2, y2) -- LEVEL_SPECIFIC - col = 0x00ff8800 -- orange - box(x1, y1, x2, y2, col+opin, col+opout) -end - -local function DrawBG(unit, x, y) - local val= 0 - local x1 = x/div-camx/div-(camx%16)/div - local x2 = x1+size-1 - local y1 = y/div-camy/div-(camy%16)/div - local y2 = y1+size-1 - if unit.contour ~= nil then - box(x1, y1, x2, y2, 0x5500ff00, 0x5500ff00) - for pixel=0, 15 do - val = unit.contour[pixel] - --[ [-- - if val > 0 then - gui.drawPixel( - x1+pixel/div, - y1+val/div-1/div, - 0xffffff00) - end - --]]-- - end - end - if unit.block > 0 then - local Fn = DrawBlock[unit.block] or DrawBlockDefault - Fn(x1, y1, x2, y2) - box(x1, y1, x2, y2, col+opin, col+opout) - end -end - -local function Background() - if working > 0 then - cache = {} - return - end - if camhack then - camx = Xpos-320/2*div - camy = Ypos-224/2*div - box(0, 0, 320, 240, 0, 0x66000000) - end - local border = 0 - local offset = 32 - local basex = camx+border - local basey = camy+border - local basei = PosToIndex(basex-offset, basey-offset) - local boundx = 320*div-border - local boundy = 224*div-border - local xblockstockeck = ((camx+boundx+offset)-(basex-offset))/size/div - local yblockstockeck = ((camy+boundy+offset)-(basey-offset))/size/div - for yblock = 0, yblockstockeck do - for xblock = 0, xblockstockeck do - local i = yblock*xblocks+xblock+basei - local x = basex+xblock*size*div - local y = basey+yblock*size*div - if InBounds(x, basex-offset, camx+boundx+offset) then - local unit = cache[i] - if unit == nil or workinglast > 0 then - if InBounds(x, basex, camx+boundx) - and InBounds(y, basey, camy+boundy) - then cache[i] = GetBlock(x, y) - end - else - if not InBounds(x, basex, camx+boundx) - and not InBounds(y, basey, camy+boundy) - then cache[i] = nil - end - end - if unit ~= nil then - DrawBG(unit, x, y) - end - elseif cache[i] ~= nil - then cache[i] = nil - end - end - end - CamhackHUD() -end - -local function Clamp(v, vmin, vmax) - if v < vmin then v = vmin end - if v > vmax then v = vmax end - return v -end - -local function Objects() - if working > 0 then return end - for i=0, 63 do - local base = GlobalBase+i*128 - local flag2 = AND(rb(base+0x49), 0x10) -- active - if flag2 == 0x10 then - local xpos = rw (base+0x00) - local ypos = rw (base+0x02) - local state = rw (base+0x0c) - local dmg = rb (base+0x10) - local id = rw (base+0x40) - local hp = rw (base+0x50) - local cRAM = r24(base+0x75) -- pointer to 4 collision boxes per object - local xscr = (xpos-camx)/div - local yscr = (ypos-camy)/div - local num = id/6 - local name = types[num] - local col = 0 -- collision color - for boxx=0, 4 do - local x0 = rw (cRAM+boxx*8) - local x1 = (rws(cRAM+boxx*8+0)-camx)/div - local y1 = (rws(cRAM+boxx*8+2)-camy)/div - local x2 = (rws(cRAM+boxx*8+4)-camx)/div - local y2 = (rws(cRAM+boxx*8+6)-camy)/div - if boxx == 0 then - col = 0xff00ff00 -- body - -- archer hp doesn't matter - if id == 282 or id == 258 then hp = 1 end - if hp > 0 and id > 0 and x0 ~= 0x8888 then - local xx = Clamp(xscr, 0, 318-string.len(name)*4) - local yy = Clamp(yscr, 0, 214) - ptext(xx, yy+2, string.format("%d", hp), col) - end - elseif boxx == 1 then - col = 0xffffff00 -- floor - elseif boxx == 2 then - if dmg > 0 - then col = 0xffff0000 -- projectile - else col = 0xff8800ff -- item - end - if dmg > 0 then - text(x1*wSize+2, y2*wSize+1, - string.format("%d", dmg), col, 0x88000000) - end - else - col = 0xffffffff -- other - end - if x1 ~= 0x8888 - and x1 <= 320 and x2 >= 0 - and y1 <= 224 and y2 >= 0 then - box(x1, y1, x2, y2, col, 0) - end - end - end - end -end - -local function PostRndRoll() - for i = 1,#MsgTable do - if MsgTable[i] and MsgTable[i].index == i then - local base = MsgTable[i].base - local xpos = rw(base+0x00) - local ypos = rw(base+0x02) - local id = rw(base+0x40) - local x = (xpos-camx)/div - local y = (ypos-camy)/div - local num = id/6 - local ymsg = 0 - local yoffs = math.floor((i-1)/MsgCutoff)*14 - local name = types[num] - local color = 0xffffff00 - - if base == GolBase then - name = "Goliath" - elseif not name then - name = string.format("%X", base) - color = 0xff00ffff - end - if y < 224/2 then - yoffs = -yoffs - ymsg = 210 - end - - x = Clamp(x, 2, 320-string.len(name)*4) - y = Clamp(y, 20, 214) - - line ((i-1)%MsgCutoff*MsgStep+3 +MsgOffs, ymsg+yoffs+4, x, y, color-0x88000000) - ptext((i-1)%MsgCutoff*MsgStep*wSize+MsgOffs, ymsg+yoffs, i, color) - - MsgTable[i].timer = MsgTable[i].timer-1 - if MsgTable[i].timer <= 0 then - MsgTable[i] = nil - end - end - end -end - -local function PlayerBoxes() - if working > 0 then return end - local xx = (Xpos-camx)/div - local yy = (Ypos-camy)/div - local col = 0xff00ffff - local swcol = col -- usual detection - if Yspd > 0 then -- gimme swings to grab! - swcol = 0xff00ff00 - elseif Yspd == 0 then -- can tell that too - swcol = 0xffffffff - end - if facing == 2 - then box(xx-0xf /div-2, yy-0x2c/div-1, xx-0xf/div+0, yy-0x2c/div+1, swcol, 0) -- lefttop - else box(xx+0xf /div , yy-0x2c/div-1, xx+0xf/div+2, yy-0x2c/div+1, swcol, 0) -- rightttop - end - box(xx -1, yy-0x2c/div-1, xx +1, yy-0x2c/div+1, col, 0) -- top - box(xx-0xf /div-2, yy-0x1f/div-1, xx-0xf /div+0, yy-0x1f/div+1, col, 0) -- left - box(xx+0x10/div-1, yy-0x1f/div-1, xx+0x10/div+1, yy-0x1f/div+1, col, 0) -- right --- box(xx -1, yy-0x1f/div-1, xx +1, yy-0x1f/div+1, col, 0) -- center - box(xx -1, yy-0x0f/div-1, xx +1, yy-0x0f/div+1, col, 0) -- bottom - box(xx -1, yy -1, xx +1, yy +1,0xffffff00, 0) -- feet --- box(xx -1, yy+0x10/div-1, xx +1, yy+0x10/div+1, col, 0) -- ground -end - -local function Input() - local i, u, d, l, r, a, b, c, s - if movie.isloaded() - then i = movie.getinput(emu.framecount()-1) - else i = joypad.getimmediate() - end - if i["P1 Up" ] then u = "U" else u = " " end - if i["P1 Down" ] then d = "D" else d = " " end - if i["P1 Left" ] then l = "L" else l = " " end - if i["P1 Right"] then r = "R" else r = " " end - if i["P1 A" ] then a = "A" else a = " " end - if i["P1 B" ] then b = "B" else b = " " end - if i["P1 C" ] then c = "C" else c = " " end - if i["P1 Start"] then s = "S" else s = " " end - text(1, 10, u..d..l..r..a..b..c..s, "yellow") -end - -event.onframeend(function() - emu.setislagged(rb(0xfff6d4) == 0) - if rb(0xfff6d4) == 0 then - lagcount = lagcount+1 - framecol = "red" - else - framecol = "white" - end - emu.setlagcount(lagcount) - wSize = client.getwindowsize() - rndlast = rnd1 - workinglast = working - XposLast = Xpos - YposLast = Ypos -end) - -event.onmemoryexecute(function() - local a0 = AND(emu.getregister("M68K A0"), 0xffffff) - if a0 ~= 0xff4044 then - for i = 1, 200 do - if MsgTable[i] == nil then - MsgTable[i] = { index = i, timer = MsgTime, base = a0 } - break - end - end - end -end, 0x257A, "RNGseed") - -local function main() - rnd1 = rl (0xff001c) - rnd2 = rw (0xff0020) - working = rb (0xff0073) - xblocks = rw (0xff00d4) - mapw = rw (0xff00d4)*8 - maph = rw (0xff00d6)*8 - Xpos = rws(0xff0106) - Ypos = rws(0xff0108) - camx = rws(0xff010c)+16 - camy = rws(0xff010e)+16 - run = rb (0xff1699) - inv = rw (0xff16d2) - health = rws(0xff2cc6) - backx = camx - backy = camy - Xspd = Xpos-XposLast - Yspd = Ypos-YposLast - facing = AND(rb(GolBase+0x48), 2) -- object flag 1 - if working > 0 then MsgTable = {} end - Background() - PlayerBoxes() - Objects() - PostRndRoll() - HUD() - RoomTime() -end - -while true do - main() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/Genesis/Legend of Toki.lua b/Assets/Lua/Genesis/Legend of Toki.lua deleted file mode 100644 index e8a3ae6c50..0000000000 --- a/Assets/Lua/Genesis/Legend of Toki.lua +++ /dev/null @@ -1,149 +0,0 @@ ---Author Pasky13 - --- Player -local pbase = 0x1CD4 -local px = pbase + 0x19 -local py = pbase + 0x1D - -local camx = 0x1BC5 -local camy = 0x1BC9 - ---Player projectiles - -local projbase = 0x1D34 - ---Enemies -local ebase = 0x21B4 - ---Bosses -local bbase = 0x35F4 - ---Text scaler -local xs -local ys - - -local function endian(address) - local result = mainmemory.read_u8(address) + (mainmemory.read_u8(address-1) * 256) - return result -end - -local function Toki() - local cx = endian(camx) - local cy = endian(camy) - local x = endian(px) - cx - local y = endian(py) - cy - local xoff = mainmemory.read_s8(pbase + 0x11) - local yoff = mainmemory.read_s8(pbase + 0x15) - local xrad = mainmemory.read_u8(pbase +0x13) - local yrad = mainmemory.read_u8(pbase +0x17) - local flip = mainmemory.read_u8(pbase +1) - if flip == 1 then - xoff = xoff * -1 - end - gui.drawBox(x+xoff-xrad,y+yoff-yrad,x+xoff+xrad,y+yoff+yrad,0xFF0000FF,0x300000FF) -end - -local function enemies() - local cx = endian(camx) - local cy = endian(camy) - local x - local y - local xoff - local xrad - local yoff - local yrad - local oend = 44 - local base = ebase - local flip - local hp - for i = 0,oend,1 do - if i > 0 then - base = ebase + (i * 0x60) - end - flip = mainmemory.read_u8(base +1) - if mainmemory.read_u8(base) > 0 then - hp = mainmemory.read_u8(base + 0xD) - x = endian(base + 0x19) - cx - xrad = mainmemory.read_u8(base + 0x13) - xoff = mainmemory.read_s8(base + 0x11) - yrad = mainmemory.read_u8(base + 0x17) - yoff = mainmemory.read_s8(base + 0x15) - - if flip == 1 then - xoff = xoff * -1 - end - y = endian(base + 0x1D) - cy - if hp > 0 then - gui.text((x-10) * xs,(y-10) * ys, "HP: " .. hp) - end - gui.drawBox(x+xoff-xrad,y+yoff-yrad,x+xoff+xrad,y+yoff+yrad,0xFFFF0000,0x35FF0000) - end - end -end - -local function boss() - local cx = endian(camx) - local cy = endian(camy) - local x = endian(bbase + 0x19) - cx - local y = endian(bbase + 0x1D) - cy - local xrad = mainmemory.read_u8(bbase + 0x11) - local yrad = mainmemory.read_u8(bbase + 0x15) - local hp = mainmemory.read_u8(bbase+ 0x0D) - - if hp > 0 then - gui.text((x-10) * xs,(y-10) * ys,"HP: " .. mainmemory.read_u8(bbase + 0x0D)) - end - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFF0000,0x35FF0000) -end - -local function projectiles() - local cx = endian(camx) - local cy = endian(camy) - local x - local y - local xoff - local xrad - local yoff - local yrad - local oend = 11 - local base = projbase - local flip - - for i = 0,oend,1 do - if i > 0 then - base = projbase + (i * 0x60) - end - flip = mainmemory.read_u8(base +1) - - if mainmemory.read_u8(base) > 0 then - x = endian(base + 0x19) - cx - y = endian(base + 0x1D) - cy - xoff = mainmemory.read_s8(base + 0x11) - yoff = mainmemory.read_s8(base + 0x15) - xrad = mainmemory.read_u8(base + 0x13) - yrad = mainmemory.read_u8(base + 0x17) - - if flip == 1 then - xoff = xoff * -1 - end - gui.drawBox(x+xoff-xrad,y+yoff-yrad,x+xoff+xrad,y+yoff+yrad,0xFFFFFFFF,0x40FFFFFF) - end - end - -end - -local function scaler() - xs = client.screenwidth() / 320 - ys = client.screenheight() / 224 -end - - -while true do - scaler() - Toki() - enemies() - projectiles() - boss() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/Genesis/Splatterhouse 2 (JPN).lua b/Assets/Lua/Genesis/Splatterhouse 2 (JPN).lua deleted file mode 100644 index 8c6ba4dfe0..0000000000 --- a/Assets/Lua/Genesis/Splatterhouse 2 (JPN).lua +++ /dev/null @@ -1,81 +0,0 @@ ---Splatterhouse 2 (JPN) Collision box viewer v1.0 ---Author Pasky ---For use with Bizhawk - - -local cx = 0 -local player = false -local attack = false -local weapon = false -local function camera() - cx = mainmemory.read_u16_be(0x9E) -end - -local function drawAxis(x1,y1,x2,y2) - local x = ((x2 - x1) / 2) + x1 - local y = ((y2 - y1) / 2) + y1 - local xrad = (x2 - x1) / 2 - local yrad = (y2 - y1) / 2 - gui.drawLine(x-xrad,y,x+xrad,y) - gui.drawLine(x,y-yrad,x,y+yrad) -end - -local function touch_collision() - - local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF) - local e = {0,0,0,0} - local p = {0,0,0,0} - - for i = 0,3,1 do - e[i] = mainmemory.read_s16_be(A6 - 0x0A - (i * 2)) - p[i] = mainmemory.read_s16_be(A6 - 0x02 - (i * 2)) - end - gui.drawBox(e[0]-cx,e[2],e[1]-cx,e[3],0xFFFF0000,0x40FF0000) - if player == false then - gui.drawBox(p[0]-cx,p[2],p[1]-cx,p[3],0xFF0000FF,0x400000FF) - if mainmemory.read_u16_be(0xEA) > 0 then - drawAxis(p[0]-cx,p[2],p[1]-cx,p[3]) - end - player = true - end -end - -local function attack_collision() - local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF) - local a = {0,0,0,0} - for i = 0,3,1 do - a[i] = mainmemory.read_s16_be(A6 - 0x1A - (i * 2)) - end - if attack == false then - gui.drawBox(a[0]-cx,a[2],a[1]-cx,a[3],0xFFFFFFFF,0x40FFFFFF) - attack = true - end -end - -local function weapon_collision() - local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF) - local w = {0,0,0,0} - for i = 0,3,1 do - w[i] = mainmemory.read_s16_be(A6 - 0x12 - (i * 2)) - end - if weapon == false then - gui.drawBox(w[0]-cx,w[2],w[1]-cx,w[3],0xFFFFFFFF,0x40FFFFFF) - weapon = true - end -end - -local function reset() - player = false - attack = false - weapon = false -end - -event.onmemoryexecute(touch_collision,0x14508) -event.onmemoryexecute(attack_collision,0x143E0) -event.onmemoryexecute(weapon_collision,0x1420A) - -while true do - camera() - emu.frameadvance() - reset() -end \ No newline at end of file diff --git a/Assets/Lua/Genesis/Splatterhouse 2 (USA).lua b/Assets/Lua/Genesis/Splatterhouse 2 (USA).lua deleted file mode 100644 index 6ffc31c626..0000000000 --- a/Assets/Lua/Genesis/Splatterhouse 2 (USA).lua +++ /dev/null @@ -1,84 +0,0 @@ ---Splatterhouse 2 (USA) Collision box viewer ---Author Pasky ---For use with Bizhawk - - -local cx = 0 -local player = false -local attack = false -local weapon = false - -local function camera() - cx = mainmemory.read_u16_be(0x9E) -end - -local function drawAxis(x1,y1,x2,y2) - local x = ((x2 - x1) / 2) + x1 - local y = ((y2 - y1) / 2) + y1 - local xrad = (x2 - x1) / 2 - local yrad = (y2 - y1) / 2 - gui.drawLine(x-xrad,y,x+xrad,y) - gui.drawLine(x,y-yrad,x,y+yrad) -end - -local function touch_collision() - - local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF) - local e = {0,0,0,0} - local p = {0,0,0,0} - - for i = 0,3,1 do - e[i] = mainmemory.read_s16_be(A6 - 0x0A - (i * 2)) - p[i] = mainmemory.read_s16_be(A6 - 0x02 - (i * 2)) - end - gui.drawBox(e[0]-cx,e[2],e[1]-cx,e[3],0xFFFF0000,0x40FF0000) - if player == false then - gui.drawBox(p[0]-cx,p[2],p[1]-cx,p[3],0xFF0000FF,0x400000FF) - if mainmemory.read_u16_be(0xEA) > 0 then - drawAxis(p[0]-cx,p[2],p[1]-cx,p[3]) - end - player = true - end -end - -local function attack_collision() - local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF) - local a = {0,0,0,0} - for i = 0,3,1 do - a[i] = mainmemory.read_s16_be(A6 - 0x1A - (i * 2)) - end - if attack == false then - gui.drawBox(a[0]-cx,a[2],a[1]-cx,a[3],0xFFFFFFFF,0x40FFFFFF) - attack = true - end - -end - -local function weapon_collision() - local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF) - local w = {0,0,0,0} - for i = 0,3,1 do - w[i] = mainmemory.read_s16_be(A6 - 0x12 - (i * 2)) - end - if weapon == false then - gui.drawBox(w[0]-cx,w[2],w[1]-cx,w[3],0xFFFFFFFF,0x40FFFFFF) - weapon = true - end -end - -local function reset() - player = false - attack = false - weapon = false -end - - -event.onmemoryexecute(touch_collision,0x1494E) -event.onmemoryexecute(attack_collision,0x14826) -event.onmemoryexecute(weapon_collision,0x14650) - -while true do - camera() - emu.frameadvance() - reset() -end \ No newline at end of file diff --git a/Assets/Lua/Input_Display.lua b/Assets/Lua/Input_Display.lua deleted file mode 100644 index 561db7114f..0000000000 --- a/Assets/Lua/Input_Display.lua +++ /dev/null @@ -1,1054 +0,0 @@ ---[[ -Input visualizing based in FCEUX! -Supports many consoles, only standard controllers are supported. -Position, colors, stack and controller enabling are configurable! -Planned for future: Controllers with analog stick(s) (e.g N64) - -Features: -- Only standard controllers (so no N64 and PS1 analogs :c) -- A bit configurable (default colors are also based in FCEUX). -- Distinguish between GB and DualGB (same for GG and NGP). -- And also shows link cable state. -- Detect which controllers are plugged. -- WonderSwan rotation also rotates display. -- Left-Right and Top-Down modes! (or Stack Horizontal / Vertical) -- Lets you choose which controllers to display. -- Also, if you enable an unplugged controller, it will NOT display. -- Can also display movie loaded input (BizHawk 2.3.3+). - -Thanks to adelikat for giving support for reading player specific inputs and - -also gave very good feedback. -Thanks to EZGames69 for so many corrections, ideas and testing. - -Made by Cyorter (2020) -]] - -emu.frameadvance() -console.clear() - --------------------------------------------------------------------------------- - --- Configurations -- - --- Position (0 and 0 is top-left) --- Pro tip: You can also drag it while playing (drag slow!). - -xpos = 8 -ypos = 8 - --- Colors (AARRGGBB/RGB32) - -cyp = 0xC0FDDBCF -- Button Yup Pressed (FCEUX = 0xC0FDDBCF) -cnp = 0xC0000000 -- Button Not Pressed (FCEUX = 0xC0000000) -cbg = 0xC0000E60 -- Background (FCEUX = 0xC0000E60) - --- Stack Horizontally / Vertically --- Top-Down mode (if disabled it is Left-Right) - -topdown = false - --- Display controls --- 01 02 03 04 05 06 07 08 09 10 11 12 -enable = {true,true,true,true,true,true,true,true,true,true,true,true} - --------------------------------------------------------------------------------- - --- Console Interface -- --- DO NOT CHANGE THIS, IS USED FOR DETECTION! - -do - pluged = {joypad.get(1)['Up'] ~= nil, - joypad.get( 2)['Up'] ~= nil, - joypad.get( 3)['Up'] ~= nil, - joypad.get( 4)['Up'] ~= nil, - joypad.get( 5)['Up'] ~= nil, - joypad.get( 6)['Up'] ~= nil, - joypad.get( 7)['Up'] ~= nil, - joypad.get( 8)['Up'] ~= nil, - joypad.get( 9)['Up'] ~= nil, - joypad.get(10)['Up'] ~= nil, - joypad.get(11)['Up'] ~= nil, - joypad.get(12)['Up'] ~= nil} - - sys = emu.getsystemid() - if sys == 'Game Gear' then sys = 'GG' end -- DualGG is weird - - -- Here I abuse a technique that is equivalent to a ternary operator. - -- (sys == 'PCE' and 5) or (sys == 'NES' and 4) or 2 - -- In Lua is equivalent to C ternary operator: - -- sys == "PCE" ? 5 : sys == "NES" ? 4 : 2; - -- Is used to know how many players does a console have. - - players = ((sys == 'NES' or sys == 'N64') and 4) or ((sys == 'PCE' or sys == 'PCECD' or sys == 'SGX' or sys == 'SNES') and 5) or ((sys == 'PSX' or sys == 'GEN') and 8) or (sys == 'SAT' and 12) or 2 - - -- Detect hand-held, this time is not as abused as above. - portable = sys == 'GB' or sys == 'GBC' or sys == 'Lynx' or sys == 'GBA' or sys == 'NGP' or sys == 'GG' or sys == 'VB' or sys == 'WSWAN' - - -- Add "Dual" in system's name if there are 2 players, no matter if linked or not. - if portable and pluged[2] then print('Dual ' .. sys) - else print(sys) end - - if (not portable) then - -- Prints which controllers are connected. - for h = 1,players,1 do print(string.format('Player %u: ',h) .. (pluged[h] and 'Connected!' or 'Unconnected!')) end - end - - if sys == 'NES' and pluged[3] and not pluged[4] then print('\nWARNING! Invalid FourScore use.') end - if sys == 'SAT' then print('\nWARNING! joypad.get() has problems with Players 10,11,12!') end - -- Reason: joypad.get() is buggy when using more than 10 controllers -end - -print('\nReminder: Enable Capure OSD when Dumping!\n') - --------------------------------------------------------------------------------- - -size = {{['A26']=10, ['C64']=24, ['NES']=40, ['PCE']=40, ['PCECD']=40, ['SGX']=40, ['GB']=16, ['GBC']=16, ['VB']=38, ['WSWAN']=28, ['SNES']=46, ['GEN']=46, ['GBA']=34, ['Coleco']=16, ['SAT']=46, ['A78']=20, ['SG']=20, ['SMS']=36, ['Lynx']=32, ['GG']=30, ['NGP']=29, ['PCFX']=50, ['PSX']=56},{['A26']=16, ['C64']=16, ['NES']=16, ['PCE']=16, ['PCECD']=16, ['SGX']=16, ['GB']=24, ['GBC']=24, ['VB']=28, ['WSWAN']=28, ['SNES']=20, ['GEN']=20, ['GBA']=16, ['Coleco']=38, ['SAT']=20, ['A78']=20, ['SG']=20, ['SMS']=16, ['Lynx']=15, ['GG']=22, ['NGP']=14, ['PCFX']=22, ['PSX']=34}} - -event.onframestart(function() - x = input.getmouse()['X'] - y = input.getmouse()['Y'] - b = input.getmouse()['Left'] or input.getmouse()['Right'] - if (x > xpos and x < (xpos + size[1][sys]) and y > ypos and y < (ypos + size[2][sys]) and b) then - xpos = x - size[1][sys] / 2 - ypos = y - size[2][sys] / 2 - end -end -) - --------------------------------------------------------------------------------- - -while sys == 'A26' do - for h = 1,2,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 20 - else - x = xpos + (h - 1) * 14 - y = ypos - end - - gui.drawRectangle(x+0,y+ 0,11,15,cbg,cbg) - gui.drawRectangle(x+7,y+ 2,1, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+7,y+10,1, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+5,y+ 6,1, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+9,y+ 6,1, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+1,y+ 2,1, 3,c['Button'] and cyp or cnp,c['Button'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'C64' do - for h = 1,2,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 20 - else - x = xpos + (h - 1) * 28 - y = ypos - end - - gui.drawRectangle(x+ 0,y+0,23,15,cbg,cbg) - - gui.drawRectangle(x+14,y+ 2,3,3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+14,y+10,3,3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+10,y+ 6,3,3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+18,y+ 6,3,3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - - gui.drawEllipse(x+2,y+2,3, 3,c['Button'] and cyp or cnp,c['Button'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'NES' do - for h = 1,4,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 20 - else - x = xpos + (h - 1) * 44 - y = ypos - end - - gui.drawRectangle(x+ 0,y+0,39,15,cbg,cbg) - - gui.drawRectangle(x+ 6,y+ 2, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+10, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 2,y+ 6, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+10,y+ 6, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+16,y+10, 3, 1,c['Select'] and cyp or cnp,c['Select'] and cyp or cnp) - gui.drawRectangle(x+22,y+10, 3, 1,c['Start'] and cyp or cnp,c['Start'] and cyp or cnp) - - gui.drawEllipse(x+28,y+8, 3, 3,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawEllipse(x+34,y+8, 3, 3,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'PCE' or sys == 'PCECD' or sys == 'SGX' do - for h = 1,5,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 20 - else - x = xpos + (h - 1) * 44 - y = ypos - end - - gui.drawRectangle(x+ 0,y+0,39,15,cbg,cbg) - - gui.drawRectangle(x+ 6,y+ 2, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+10, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 2,y+ 6, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+10,y+ 6, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+16,y+10, 3, 1,c['Select'] and cyp or cnp,c['Select'] and cyp or cnp) - gui.drawRectangle(x+22,y+10, 3, 1,c['Run'] and cyp or cnp,c['Run'] and cyp or cnp) - - gui.drawEllipse(x+28,y+8, 3, 3,c['B2'] and cyp or cnp,c['B2'] and cyp or cnp) - gui.drawEllipse(x+34,y+8, 3, 3,c['B1'] and cyp or cnp,c['B1'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -gambatte = joypad.get()['Up'] ~= nil -link = joypad.get()['P2 Up'] ~= nil -prev = false -while sys == 'GB' or sys == 'GBC' do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1) - else c = joypad.get() end - - if not prev and c['Toggle Cable'] then - link = not link - end - prev = c['Toggle Cable'] - - x = xpos - y = ypos - - if gambatte then - gui.drawRectangle(x+ 0,y+1,15,21,cbg,cbg) - gui.drawLine(x+1,y+ 0,x+14,y+ 0,cbg) - gui.drawLine(x+1,y+23,x+14,y+23,cbg) - gui.drawLine(x+3,y+24,x+12,y+24,cbg) - - gui.drawRectangle(x+2,y+2,11,8,cnp,cnp) - - gui.drawRectangle(x+3,y+13, 1, 1,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+3,y+17, 1, 1,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+1,y+15, 1, 1,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+5,y+15, 1, 1,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - - gui.drawRectangle(x+10,y+16, 1, 1,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawRectangle(x+13,y+15, 1, 1,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - - gui.drawLine(x+ 6,y+21,x+ 7,y+21,c['Select'] and cyp or cnp) - gui.drawLine(x+ 9,y+21,x+10,y+21,c['Start'] and cyp or cnp) - else - if enable[1] and pluged[1] then - gui.drawRectangle(x+ 0,y+4,15,21,cbg,cbg) - gui.drawLine(x+1,y+ 3,x+14,y+ 3,cbg) - gui.drawLine(x+1,y+26,x+14,y+26,cbg) - gui.drawLine(x+3,y+27,x+12,y+27,cbg) - - gui.drawRectangle(x+2,y+5,11,8,cnp,cnp) - - gui.drawRectangle(x+3,y+16, 1, 1,c['P1 Up'] and cyp or cnp,c['P1 Up'] and cyp or cnp) - gui.drawRectangle(x+3,y+20, 1, 1,c['P1 Down'] and cyp or cnp,c['P1 Down'] and cyp or cnp) - gui.drawRectangle(x+1,y+18, 1, 1,c['P1 Left'] and cyp or cnp,c['P1 Left'] and cyp or cnp) - gui.drawRectangle(x+5,y+18, 1, 1,c['P1 Right'] and cyp or cnp,c['P1 Right'] and cyp or cnp) - - gui.drawRectangle(x+10,y+19, 1, 1,c['P1 B'] and cyp or cnp,c['P1 B'] and cyp or cnp) - gui.drawRectangle(x+13,y+18, 1, 1,c['P1 A'] and cyp or cnp,c['P1 A'] and cyp or cnp) - - gui.drawLine(x+ 6,y+24,x+ 7,y+24,c['P1 Select'] and cyp or cnp) - gui.drawLine(x+ 9,y+24,x+10,y+24,c['P1 Start'] and cyp or cnp) - end - - if enable[2] and pluged[2] then - gui.drawRectangle(x+20,y+4,15,21,cbg,cbg) - gui.drawLine(x+21,y+ 3,x+34,y+ 3,cbg) - gui.drawLine(x+21,y+26,x+34,y+26,cbg) - gui.drawLine(x+23,y+27,x+32,y+27,cbg) - - gui.drawRectangle(x+22,y+5,11,8,cnp,cnp) - - gui.drawRectangle(x+23,y+16, 1, 1,c['P2 Up'] and cyp or cnp,c['P2 Up'] and cyp or cnp) - gui.drawRectangle(x+23,y+20, 1, 1,c['P2 Down'] and cyp or cnp,c['P2 Down'] and cyp or cnp) - gui.drawRectangle(x+21,y+18, 1, 1,c['P2 Left'] and cyp or cnp,c['P2 Left'] and cyp or cnp) - gui.drawRectangle(x+25,y+18, 1, 1,c['P2 Right'] and cyp or cnp,c['P2 Right'] and cyp or cnp) - - gui.drawRectangle(x+30,y+19, 1, 1,c['P2 B'] and cyp or cnp,c['P2 B'] and cyp or cnp) - gui.drawRectangle(x+33,y+18, 1, 1,c['P2 A'] and cyp or cnp,c['P2 A'] and cyp or cnp) - - gui.drawLine(x+26,y+24,x+27,y+24,c['P2 Select'] and cyp or cnp) - gui.drawLine(x+29,y+24,x+30,y+24,c['P2 Start'] and cyp or cnp) - end - end - - if link then - gui.drawRectangle(x+16,y+8,1,1,cbg,cbg) - gui.drawRectangle(x+36,y+8,1,1,cbg,cbg) - gui.drawLine(x+17,y+1,x+17,y+7,cbg) - gui.drawLine(x+38,y+1,x+38,y+8,cbg) - gui.drawLine(x+18,y+2,x+18,y+8,cbg) - gui.drawLine(x+37,y+2,x+37,y+7,cbg) - gui.drawRectangle(x+18,y+0,19,1,cbg,cbg) - end - - emu.frameadvance() -end - -while sys == 'VB' do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1) - else c = joypad.get() end - - x = xpos - y = ypos - - gui.drawLine(x+ 4,y+ 0,x+ 9,y+ 0,cbg) - gui.drawLine(x+30,y+ 0,x+35,y+ 0,cbg) - gui.drawLine(x+ 3,y+ 1,x+11,y+ 1,cbg) - gui.drawLine(x+28,y+ 1,x+36,y+ 1,cbg) - gui.drawLine(x+ 2,y+ 2,x+13,y+ 2,cbg) - gui.drawLine(x+26,y+ 2,x+37,y+ 2,cbg) - gui.drawLine(x+ 1,y+ 3,x+15,y+ 3,cbg) - gui.drawLine(x+24,y+ 3,x+38,y+ 3,cbg) - gui.drawLine(x+ 0,y+ 4,x+17,y+ 4,cbg) - gui.drawLine(x+22,y+ 4,x+39,y+ 4,cbg) - gui.drawRectangle(x+ 0,y+ 5,39,3,cbg,cbg) - gui.drawRectangle(x+ 1,y+ 9,37,1,cbg,cbg) - gui.drawLine(x+ 2,y+11,x+11,y+11,cbg) - gui.drawRectangle(x+ 3,y+12, 7,1,cbg,cbg) - gui.drawRectangle(x+ 2,y+14, 7,2,cbg,cbg) - gui.drawRectangle(x+ 1,y+17, 7,2,cbg,cbg) - gui.drawLine(x+ 0,y+20,x+ 8,y+20,cbg) - gui.drawRectangle(x+ 0,y+21, 7,3,cbg,cbg) - gui.drawLine(x+ 0,y+25,x+ 6,y+25,cbg) - gui.drawLine(x+ 1,y+26,x+ 6,y+26,cbg) - gui.drawLine(x+ 2,y+27,x+ 5,y+27,cbg) - gui.drawLine(x+28,y+11,x+37,y+11,cbg) - gui.drawRectangle(x+29,y+12, 7,1,cbg,cbg) - gui.drawRectangle(x+30,y+14, 7,2,cbg,cbg) - gui.drawRectangle(x+31,y+17, 7,2,cbg,cbg) - gui.drawLine(x+31,y+20,x+39,y+20,cbg) - gui.drawRectangle(x+32,y+21, 7,3,cbg,cbg) - gui.drawLine(x+33,y+25,x+39,y+25,cbg) - gui.drawLine(x+33,y+26,x+38,y+26,cbg) - gui.drawLine(x+34,y+27,x+37,y+27,cbg) - gui.drawLine(x+13,y+11,x+26,y+11,cbg) - gui.drawRectangle(x+14,y+12,11,7,cbg,cbg) - - gui.drawRectangle(x+ 6,y+3,1,1,c['L_Up'] and cyp or cnp,c['L_Up'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+7,1,1,c['L_Down'] and cyp or cnp,c['L_Down'] and cyp or cnp) - gui.drawRectangle(x+ 4,y+5,1,1,c['L_Left'] and cyp or cnp,c['L_Left'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+5,1,1,c['L_Right'] and cyp or cnp,c['L_Right'] and cyp or cnp) - gui.drawRectangle(x+32,y+3,1,1,c['R_Up'] and cyp or cnp,c['R_Up'] and cyp or cnp) - gui.drawRectangle(x+32,y+7,1,1,c['R_Down'] and cyp or cnp,c['R_Down'] and cyp or cnp) - gui.drawRectangle(x+30,y+5,1,1,c['R_Left'] and cyp or cnp,c['R_Left'] and cyp or cnp) - gui.drawRectangle(x+34,y+5,1,1,c['R_Right'] and cyp or cnp,c['R_Right'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+5,1,1,c['L'] and cyp or cnp,c['L'] and cyp or cnp) - gui.drawRectangle(x+32,y+5,1,1,c['R'] and cyp or cnp,c['R'] and cyp or cnp) - - gui.drawRectangle(x+12,y+6,1,1,c['Select'] and cyp or cnp,c['Select'] and cyp or cnp) - gui.drawRectangle(x+15,y+8,1,1,c['Start'] and cyp or cnp,c['Start'] and cyp or cnp) - gui.drawRectangle(x+23,y+8,1,1,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawRectangle(x+26,y+6,1,1,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - - emu.frameadvance() -end - -wswanr = client.screenwidth() < client.screenheight() -prev = false -while sys == 'WSWAN' do - if movie.mode() == 'PLAY' then - c = movie.getinput(emu.framecount() - 1, wswanr and 2 or 1) - c['Rotate'] = movie.getinput(emu.framecount() - 1)['Rotate'] - else c = joypad.get(wswanr and 2 or 1); c['Rotate'] = joypad.get()['Rotate'] end - - if not prev and c['Rotate'] then - wswanr = not wswanr -- Rotate! - end - prev = c['Rotate'] - - x = xpos - y = ypos - - if wswanr then - gui.drawRectangle(x+ 0,y+ 2,17,27,cbg,cbg) - gui.drawLine(x+2,y+0,x+16,y+0,cbg) - gui.drawLine(x+1,y+1,x+17,y+1,cbg) - gui.drawLine(x+1,y+30,x+16,y+30,cbg) - gui.drawLine(x+2,y+31,x+14,y+31,cbg) - gui.drawLine(x+18,y+2,x+18,y+27,cbg) - - gui.drawRectangle(x+3,y+7,11,16,cnp,cnp) - - gui.drawRectangle(x+ 4,y+25, 1, 1,c['Y2'] and cyp or cnp,c['Y2'] and cyp or cnp) - gui.drawRectangle(x+ 4,y+29, 1, 1,c['Y4'] and cyp or cnp,c['Y4'] and cyp or cnp) - gui.drawRectangle(x+ 2,y+27, 1, 1,c['Y1'] and cyp or cnp,c['Y1'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+27, 1, 1,c['Y3'] and cyp or cnp,c['Y3'] and cyp or cnp) - gui.drawRectangle(x+12,y+25, 1, 1,c['X2'] and cyp or cnp,c['X2'] and cyp or cnp) - gui.drawRectangle(x+12,y+29, 1, 1,c['X4'] and cyp or cnp,c['X4'] and cyp or cnp) - gui.drawRectangle(x+10,y+27, 1, 1,c['X1'] and cyp or cnp,c['X1'] and cyp or cnp) - gui.drawRectangle(x+14,y+27, 1, 1,c['X3'] and cyp or cnp,c['X3'] and cyp or cnp) - gui.drawLine(x+17,y+17,x+17,y+18,c['Start'] and cyp or cnp) - gui.drawLine(x+17,y+20,x+17,y+21,c['Rotate'] and cyp or cnp) - - gui.drawRectangle(x+15,y+ 4, 1, 1,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawRectangle(x+13,y+ 2, 1, 1,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - else - gui.drawRectangle(x+ 2,y+ 0,27,17,cbg,cbg) - gui.drawLine(x+0,y+2,x+0,y+14,cbg) - gui.drawLine(x+1,y+1,x+1,y+16,cbg) - gui.drawLine(x+30,y+1,x+30,y+17,cbg) - gui.drawLine(x+31,y+2,x+31,y+16,cbg) - gui.drawLine(x+4,y+18,x+29,y+18,cbg) - - gui.drawRectangle(x+8,y+3,16,11,cnp,cnp) - - gui.drawRectangle(x+ 3,y+ 2, 1, 1,c['Y1'] and cyp or cnp,c['Y1'] and cyp or cnp) - gui.drawRectangle(x+ 3,y+ 6, 1, 1,c['Y3'] and cyp or cnp,c['Y3'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+ 4, 1, 1,c['Y4'] and cyp or cnp,c['Y4'] and cyp or cnp) - gui.drawRectangle(x+ 5,y+ 4, 1, 1,c['Y2'] and cyp or cnp,c['Y2'] and cyp or cnp) - gui.drawRectangle(x+ 3,y+10, 1, 1,c['X1'] and cyp or cnp,c['X1'] and cyp or cnp) - gui.drawRectangle(x+ 3,y+14, 1, 1,c['X3'] and cyp or cnp,c['X3'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+12, 1, 1,c['X4'] and cyp or cnp,c['X4'] and cyp or cnp) - gui.drawRectangle(x+ 5,y+12, 1, 1,c['X2'] and cyp or cnp,c['X2'] and cyp or cnp) - gui.drawLine(x+13,y+17,x+14,y+17,c['Start'] and cyp or cnp) - gui.drawLine(x+10,y+17,x+11,y+17,c['Rotate'] and cyp or cnp) - - gui.drawRectangle(x+26,y+15, 1, 1,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawRectangle(x+28,y+13, 1, 1,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - end - - emu.frameadvance() -end - -while sys == 'SNES' do - for h = 1,5,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 24 - else - x = xpos + (h - 1) * 50 - y = ypos - end - - gui.drawRectangle(x+ 4,y+ 0,37,15,cbg,cbg) - gui.drawRectangle(x+ 0,y+ 4, 3,11,cbg,cbg) - gui.drawRectangle(x+42,y+ 4, 3,11,cbg,cbg) - gui.drawRectangle(x+ 4,y+16,11, 3,cbg,cbg) - gui.drawRectangle(x+30,y+16,11, 3,cbg,cbg) - gui.drawRectangle(x+ 2,y+ 2, 1, 1,cbg,cbg) - gui.drawRectangle(x+ 2,y+16, 1, 1,cbg,cbg) - gui.drawRectangle(x+16,y+16, 1, 1,cbg,cbg) - gui.drawRectangle(x+28,y+16, 1, 1,cbg,cbg) - gui.drawRectangle(x+42,y+16, 1, 1,cbg,cbg) - gui.drawRectangle(x+42,y+ 2, 1, 1,cbg,cbg) - - gui.drawRectangle(x+ 8,y+ 4, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+12, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 4,y+ 8, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+12,y+ 8, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+ 0, 3, 1,c['L'] and cyp or cnp,c['L'] and cyp or cnp) - gui.drawRectangle(x+34,y+ 0, 3, 1,c['R'] and cyp or cnp,c['R'] and cyp or cnp) - - gui.drawEllipse(x+30,y+ 8, 3, 3,c['Y'] and cyp or cnp,c['Y'] and cyp or cnp) - gui.drawEllipse(x+34,y+12, 3, 3,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawEllipse(x+38,y+ 8, 3, 3,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - gui.drawEllipse(x+34,y+ 4, 3, 3,c['X'] and cyp or cnp,c['X'] and cyp or cnp) - - gui.drawLine(x+18,y+13,x+21,y+10,c['Select'] and cyp or cnp) - gui.drawLine(x+19,y+13,x+22,y+10,c['Select'] and cyp or cnp) - gui.drawLine(x+23,y+13,x+26,y+10,c['Start'] and cyp or cnp) - gui.drawLine(x+24,y+13,x+27,y+10,c['Start'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'GEN' do - for h = 1,8,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 24 - else - x = xpos + (h - 1) % 4 * 50 - y = ypos + math.floor((h - 1) / 4) * 24 - end - - gui.drawLine(x+ 8,y+ 0,x+37,y+ 0,cbg) - gui.drawLine(x+ 4,y+ 1,x+41,y+ 1,cbg) - gui.drawRectangle(x+ 4,y+ 2,37,11,cbg,cbg) - - gui.drawRectangle(x+ 0,y+ 4,3,8,cbg,cbg) - gui.drawRectangle(x+42,y+ 4,3,8,cbg,cbg) - gui.drawRectangle(x+ 1,y+14,10,1,cbg,cbg) - gui.drawRectangle(x+ 3,y+16,7,1,cbg,cbg) - gui.drawRectangle(x+ 5,y+18,4,1,cbg,cbg) - gui.drawRectangle(x+34,y+14,10,1,cbg,cbg) - gui.drawRectangle(x+35,y+16,7,1,cbg,cbg) - gui.drawRectangle(x+36,y+18,4,1,cbg,cbg) - gui.drawRectangle(x+ 2,y+ 2,1,1,cbg,cbg) - gui.drawRectangle(x+42,y+ 2,1,1,cbg,cbg) - - gui.drawLine(x+ 1,y+13,x+ 3,y+13,cbg) - gui.drawLine(x+42,y+13,x+44,y+13,cbg) - - gui.drawRectangle(x+ 8,y+ 2, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+10, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 4,y+ 6, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+12,y+ 6, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+25,y+ 6, 1, 1,c['X'] and cyp or cnp,c['X'] and cyp or cnp) - gui.drawRectangle(x+31,y+ 4, 1, 1,c['Y'] and cyp or cnp,c['Y'] and cyp or cnp) - gui.drawRectangle(x+37,y+ 2, 1, 1,c['Z'] and cyp or cnp,c['Z'] and cyp or cnp) - gui.drawRectangle(x+19,y+ 5, 3, 1,c['Start'] and cyp or cnp,c['Start'] and cyp or cnp) - -- gui.drawRectangle(x+19,y+ 9, 3, 1,c['Mode'] and cyp or cnp,c['Mode'] and cyp or cnp) - - gui.drawEllipse(x+26,y+ 9, 3, 3,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - gui.drawEllipse(x+32,y+ 7, 3, 3,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawEllipse(x+38,y+ 5, 3, 3,c['C'] and cyp or cnp,c['C'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'GBA' do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1) - else c = joypad.get() end - - x = xpos - y = ypos - - gui.drawRectangle(x+0,y+5,35,8,cbg,cbg) - gui.drawLine(x+1,y+4,x+34,y+4,cbg) - gui.drawLine(x+2,y+3,x+33,y+3,cbg) - gui.drawLine(x+3,y+2,x+32,y+2,cbg) - gui.drawLine(x+7,y+1,x+28,y+1,cbg) - gui.drawLine(x+9,y+0,x+26,y+0,cbg) - gui.drawLine(x+1,y+14,x+34,y+14,cbg) - gui.drawLine(x+5,y+15,x+30,y+15,cbg) - gui.drawLine(x+9,y+16,x+26,y+16,cbg) - - gui.drawRectangle(x+9,y+3,17,10,cnp,cnp) - - gui.drawRectangle(x+ 3,y+5,1,1,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 3,y+9,1,1,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+7,1,1,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+ 5,y+7,1,1,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - - gui.drawRectangle(x+29,y+ 8, 1, 1,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawRectangle(x+32,y+ 6, 1, 1,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+10, 1, 1,c['Start'] and cyp or cnp,c['Start'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+13, 1, 1,c['Select'] and cyp or cnp,c['Select'] and cyp or cnp) - - gui.drawLine(x+1,y+1,x+6,y+1,c['L'] and cyp or cnp) - gui.drawLine(x+0,y+2,x+2,y+2,c['L'] and cyp or cnp) - gui.drawLine(x+0,y+3,x+1,y+3,c['L'] and cyp or cnp) - gui.drawPixel(x+0,y+4,c['L'] and cyp or cnp) - gui.drawLine(x+29,y+1,x+34,y+1,c['R'] and cyp or cnp) - gui.drawLine(x+33,y+2,x+35,y+2,c['R'] and cyp or cnp) - gui.drawLine(x+34,y+3,x+35,y+3,c['R'] and cyp or cnp) - gui.drawPixel(x+35,y+4,c['R'] and cyp or cnp) - - emu.frameadvance() -end - -while sys == 'Coleco' do - for h = 1,2,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 42 - else - x = xpos + (h - 1) * 22 - y = ypos - end - - gui.drawRectangle(x+ 0,y+ 0,15,37,cbg,cbg) - - gui.drawRectangle(x+ 6,y+ 0, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+ 8, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 2,y+ 4, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+10,y+ 4, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+ 0,y+12, 1, 3,c['L'] and cyp or cnp,c['L'] and cyp or cnp) - gui.drawRectangle(x+14,y+12, 1, 3,c['R'] and cyp or cnp,c['R'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+18, 3, 3,c['Key 1'] and cyp or cnp,c['Key 1'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+18, 3, 3,c['Key 2'] and cyp or cnp,c['Key 2'] and cyp or cnp) - gui.drawRectangle(x+11,y+18, 3, 3,c['Key 3'] and cyp or cnp,c['Key 3'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+23, 3, 3,c['Key 4'] and cyp or cnp,c['Key 4'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+23, 3, 3,c['Key 5'] and cyp or cnp,c['Key 5'] and cyp or cnp) - gui.drawRectangle(x+11,y+23, 3, 3,c['Key 6'] and cyp or cnp,c['Key 6'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+28, 3, 3,c['Key 7'] and cyp or cnp,c['Key 7'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+28, 3, 3,c['Key 8'] and cyp or cnp,c['Key 8'] and cyp or cnp) - gui.drawRectangle(x+11,y+28, 3, 3,c['Key 9'] and cyp or cnp,c['Key 9'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+33, 3, 3,c['Star'] and cyp or cnp,c['Star'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+33, 3, 3,c['Key 0'] and cyp or cnp,c['Key 0'] and cyp or cnp) - gui.drawRectangle(x+11,y+33, 3, 3,c['Pound'] and cyp or cnp,c['Pound'] and cyp or cnp) - end - end - - emu.frameadvance() -end - --- Note: joypad.get() is buggy when giving numbers higher than 0-9! -while sys == 'SAT' do - for h = 1,12,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 24 - else - x = xpos + (h - 1) * 50 - y = ypos - end - - gui.drawRectangle(x+ 2,y+ 4,41,12,cbg,cbg) - gui.drawRectangle(x+ 3,y+ 2,39, 1,cbg,cbg) - gui.drawLine(x+ 1,y+ 6,x+ 1,y+16,cbg) - gui.drawLine(x+ 0,y+10,x+ 0,y+16,cbg) - gui.drawLine(x+44,y+ 6,x+44,y+16,cbg) - gui.drawLine(x+45,y+10,x+45,y+16,cbg) - gui.drawLine(x+ 1,y+17,x+19,y+17,cbg) - gui.drawLine(x+26,y+17,x+44,y+17,cbg) - gui.drawLine(x+ 2,y+18,x+15,y+18,cbg) - gui.drawLine(x+30,y+18,x+43,y+18,cbg) - gui.drawLine(x+ 4,y+19,x+ 9,y+19,cbg) - gui.drawLine(x+36,y+19,x+41,y+19,cbg) - gui.drawLine(x+ 4,y+ 1,x+19,y+ 1,cbg) - gui.drawLine(x+ 6,y+ 0,x+15,y+ 0,cbg) - gui.drawLine(x+26,y+ 1,x+41,y+ 1,cbg) - gui.drawLine(x+30,y+ 0,x+39,y+ 0,cbg) - - gui.drawRectangle(x+ 8,y+ 4, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+12, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 4,y+ 8, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+12,y+ 8, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+24,y+ 8, 1, 1,c['X'] and cyp or cnp,c['X'] and cyp or cnp) - gui.drawRectangle(x+31,y+ 6, 1, 1,c['Y'] and cyp or cnp,c['Y'] and cyp or cnp) - gui.drawRectangle(x+37,y+ 4, 1, 1,c['Z'] and cyp or cnp,c['Z'] and cyp or cnp) - gui.drawRectangle(x+19,y+12, 3, 1,c['Start'] and cyp or cnp,c['Start'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+ 0, 3, 1,c['L'] and cyp or cnp,c['L'] and cyp or cnp) - gui.drawRectangle(x+34,y+ 0, 3, 1,c['R'] and cyp or cnp,c['R'] and cyp or cnp) - - gui.drawEllipse(x+26,y+11, 3, 3,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - gui.drawEllipse(x+32,y+ 9, 3, 3,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawEllipse(x+38,y+ 7, 3, 3,c['C'] and cyp or cnp,c['C'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'A78' do - for h = 1,2,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if c['Button'] ~= nil then c['Trigger'] = c['Button'] end - - if topdown then - x = xpos - y = ypos + (h - 1) * 24 - else - x = xpos + (h - 1) * 24 - y = ypos - end - - gui.drawRectangle(x+ 0,y+ 0,19,19,cbg,cbg) - - gui.drawRectangle(x+ 8,y+ 6, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+14, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 4,y+10, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+12,y+10, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+ 0,y+ 0, 3, 5,c['Trigger'] and cyp or cnp,c['Trigger'] and cyp or cnp) - gui.drawRectangle(x+16,y+ 0, 3, 5,c['Trigger 2'] and cyp or cnp,c['Trigger 2'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'SG' do - for h = 1,2,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 24 - else - x = xpos + (h - 1) * 24 - y = ypos - end - - gui.drawRectangle(x+ 0,y+ 0,19,19,cbg,cbg) - - gui.drawRectangle(x+ 8,y+ 6, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+14, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 4,y+10, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+12,y+10, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+ 0,y+ 0, 3, 5,c['B1'] and cyp or cnp,c['B1'] and cyp or cnp) - gui.drawRectangle(x+16,y+ 0, 3, 5,c['B2'] and cyp or cnp,c['B2'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'SMS' do - for h = 1,2,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 20 - else - x = xpos + (h - 1) * 40 - y = ypos - end - - gui.drawRectangle(x+ 0,y+ 0,35,15,cbg,cbg) - - gui.drawRectangle(x+ 6,y+ 2, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+10, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 2,y+ 6, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+10,y+ 6, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - - gui.drawEllipse(x+24,y+7, 3, 3,c['B1'] and cyp or cnp,c['B1'] and cyp or cnp) - gui.drawEllipse(x+30,y+7, 3, 3,c['B2'] and cyp or cnp,c['B2'] and cyp or cnp) - end - end - - emu.frameadvance() -end - -while sys == 'Lynx' do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1) - else c = joypad.get() end - - x = xpos - y = ypos - - gui.drawRectangle(x+ 0,y+ 3,31, 8,cbg,cbg) - gui.drawRectangle(x+ 1,y+ 0, 5, 2,cbg,cbg) - gui.drawRectangle(x+ 1,y+12, 5, 2,cbg,cbg) - gui.drawRectangle(x+25,y+ 0, 5, 2,cbg,cbg) - gui.drawRectangle(x+25,y+12, 5, 2,cbg,cbg) - gui.drawRectangle(x+ 7,y+ 1,17, 1,cbg,cbg) - gui.drawRectangle(x+ 7,y+12,17, 1,cbg,cbg) - - gui.drawRectangle(x+11,y+4,9,6,cnp,cnp) - - gui.drawRectangle(x+ 3,y+5, 1, 1,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 3,y+9, 1, 1,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+7, 1, 1,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+ 5,y+7, 1, 1,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawLine(x+22,y+5,x+23,y+5,c['Option 1'] and cyp or cnp) - gui.drawLine(x+22,y+7,x+23,y+7,c['Pause'] and cyp or cnp) - gui.drawLine(x+22,y+9,x+23,y+9,c['Option 2'] and cyp or cnp) - - gui.drawRectangle(x+25,y+ 2, 1, 1,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawRectangle(x+28,y+ 1, 1, 1,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - gui.drawRectangle(x+25,y+11, 1, 1,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - gui.drawRectangle(x+28,y+12, 1, 1,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - - emu.frameadvance() -end - -link = joypad.get()['P2 Up'] ~= nil -prev = false -while sys == 'GG' do - if movie.mode() == 'PLAY' then tc = movie.getinput(emu.framecount() - 1, h)['Toggle Cable'] - else tc = joypad.get()['Toggle Cable'] end - - if not prev and tc then - link = not link - end - prev = tc - - for h = 1,2,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - x = xpos + (h - 1) * 34 - y = ypos - - gui.drawRectangle(x+ 0,y+6,29,11,cbg,cbg) - gui.drawLine(x+ 2,y+4,x+27,y+4,cbg) - gui.drawLine(x+ 1,y+5,x+28,y+5,cbg) - gui.drawLine(x+ 1,y+18,x+28,y+18,cbg) - gui.drawLine(x+ 2,y+19,x+27,y+19,cbg) - - gui.drawRectangle(x+ 9,y+6,11,8,cnp,cnp) - - gui.drawRectangle(x+ 3,y+ 9, 1, 1,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 3,y+13, 1, 1,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+11, 1, 1,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+ 5,y+11, 1, 1,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - - gui.drawLine(x+23,y+ 8,x+24,y+ 7,c['Start'] and cyp or cnp) - gui.drawPixel(x+24,y+ 8,c['Start'] and cyp or cnp) - - gui.drawRectangle(x+24,y+13, 1, 1,c['B1'] and cyp or cnp,c['B1'] and cyp or cnp) - gui.drawRectangle(x+26,y+11, 1, 1,c['B2'] and cyp or cnp,c['B2'] and cyp or cnp) - end - end - - if link then - gui.drawRectangle(xpos+ 7,ypos+2,1,1,cbg,cbg) - gui.drawRectangle(xpos+41,ypos+2,1,1,cbg,cbg) - gui.drawLine(xpos+7,ypos+1,xpos+42,ypos+1,cbg) - gui.drawLine(xpos+8,ypos+0,xpos+41,ypos+0,cbg) - end - - emu.frameadvance() -end - -link = joypad.get()['P2 Up'] ~= nil -- Dual NeoPop for when? -prev = false -while sys == 'NGP' do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1) - else c = joypad.get() end - - if not prev and c['Toggle Cable'] then - link = not link - end - prev = c['Toggle Cable'] - - x = xpos - y = ypos - - if not pluged[2] then - gui.drawRectangle(x+ 0,y+1,28,11,cbg,cbg) - gui.drawLine(x+1,y+0,x+27,y+0,cbg) - gui.drawLine(x+1,y+13,x+27,y+13,cbg) - gui.drawLine(x+8,y+14,x+21,y+14,cbg) - - gui.drawRectangle(x+9,y+2,11,9,cnp,cnp) - - gui.drawRectangle(x+ 3,y+4, 1, 1,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 3,y+8, 1, 1,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+6, 1, 1,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+ 5,y+6, 1, 1,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+26,y+1, 1, 1,c['Option'] and cyp or cnp,c['Option'] and cyp or cnp) - - gui.drawRectangle(x+23,y+7, 1, 1,c['A'] and cyp or cnp,c['A'] and cyp or cnp) - gui.drawRectangle(x+26,y+5, 1, 1,c['B'] and cyp or cnp,c['B'] and cyp or cnp) - else - if enable[1] then - gui.drawRectangle(x+ 0,y+5,28,11,cbg,cbg) - gui.drawLine(x+1,y+4,x+27,y+4,cbg) - gui.drawLine(x+1,y+17,x+27,y+17,cbg) - gui.drawLine(x+8,y+18,x+21,y+18,cbg) - - gui.drawRectangle(x+9,y+6,11,9,cnp,cnp) - - gui.drawRectangle(x+ 3,y+ 8, 1, 1,c['P1 Up'] and cyp or cnp,c['P1 Up'] and cyp or cnp) - gui.drawRectangle(x+ 3,y+12, 1, 1,c['P1 Down'] and cyp or cnp,c['P1 Down'] and cyp or cnp) - gui.drawRectangle(x+ 1,y+10, 1, 1,c['P1 Left'] and cyp or cnp,c['P1 Left'] and cyp or cnp) - gui.drawRectangle(x+ 5,y+10, 1, 1,c['P1 Right'] and cyp or cnp,c['P1 Right'] and cyp or cnp) - gui.drawRectangle(x+26,y+ 5, 1, 1,c['P1 Option'] and cyp or cnp,c['P1 Option'] and cyp or cnp) - - gui.drawRectangle(x+23,y+11, 1, 1,c['P1 A'] and cyp or cnp,c['P1 A'] and cyp or cnp) - gui.drawRectangle(x+26,y+ 9, 1, 1,c['P1 B'] and cyp or cnp,c['P1 B'] and cyp or cnp) - end - - if enable[2] then - gui.drawRectangle(x+33,y+5,28,11,cbg,cbg) - gui.drawLine(x+34,y+4,x+60,y+4,cbg) - gui.drawLine(x+34,y+17,x+60,y+17,cbg) - gui.drawLine(x+41,y+18,x+54,y+18,cbg) - - gui.drawRectangle(x+42,y+6,11,9,cnp,cnp) - - gui.drawRectangle(x+36,y+ 8, 1, 1,c['P2 Up'] and cyp or cnp,c['P2 Up'] and cyp or cnp) - gui.drawRectangle(x+36,y+12, 1, 1,c['P2 Down'] and cyp or cnp,c['P2 Down'] and cyp or cnp) - gui.drawRectangle(x+34,y+10, 1, 1,c['P2 Left'] and cyp or cnp,c['P2 Left'] and cyp or cnp) - gui.drawRectangle(x+38,y+10, 1, 1,c['P2 Right'] and cyp or cnp,c['P2 Right'] and cyp or cnp) - gui.drawRectangle(x+59,y+ 5, 1, 1,c['P2 Option'] and cyp or cnp,c['P2 Option'] and cyp or cnp) - - gui.drawRectangle(x+56,y+11, 1, 1,c['P2 A'] and cyp or cnp,c['P2 A'] and cyp or cnp) - gui.drawRectangle(x+59,y+ 9, 1, 1,c['P2 B'] and cyp or cnp,c['P2 B'] and cyp or cnp) - end - end - - if link then - gui.drawRectangle(x+21,y+2,1,1,cbg,cbg) - gui.drawRectangle(x+54,y+2,1,1,cbg,cbg) - gui.drawLine(x+21,y+1,x+55,y+1,cbg) - gui.drawLine(x+22,y+0,x+54,y+0,cbg) - end - - emu.frameadvance() -end - -Mode = {{false,false},{false,false}} -Prev = {{false,false},{false,false}} -while sys == 'PCFX' do - for h = 1,2,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if not Prev[h][1] and c['Mode 1'] then Mode[h][1] = not Mode[h][1] end - if not Prev[h][2] and c['Mode 2'] then Mode[h][2] = not Mode[h][2] end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 26 - else - x = xpos + (h - 1) * 54 - y = ypos - end - - gui.drawRectangle(x+ 0,y+ 6,49,11,cbg,cbg) - gui.drawRectangle(x+ 2,y+ 4,45, 1,cbg,cbg) - gui.drawRectangle(x+ 4,y+ 2,41, 1,cbg,cbg) - gui.drawRectangle(x+ 2,y+18,15, 1,cbg,cbg) - gui.drawRectangle(x+ 4,y+20,11, 1,cbg,cbg) - gui.drawRectangle(x+32,y+18,15, 1,cbg,cbg) - gui.drawRectangle(x+34,y+20,11, 1,cbg,cbg) - gui.drawLine(x+11,y+1,x+38,y+1,cbg) - gui.drawLine(x+18,y+0,x+31,y+0,cbg) - - gui.drawRectangle(x+ 8,y+ 6, 3, 3,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+ 8,y+14, 3, 3,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 4,y+10, 3, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+12,y+10, 3, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawRectangle(x+18,y+14, 3, 1,c['Select'] and cyp or cnp,c['Select'] and cyp or cnp) - gui.drawRectangle(x+24,y+14, 3, 1,c['Run'] and cyp or cnp,c['Run'] and cyp or cnp) - gui.drawRectangle(x+21,y+ 7, 1, 1,Mode[h][1] and cnp or cyp,Mode[h][1] and cnp or cyp) - gui.drawRectangle(x+23,y+ 7, 1, 1,Mode[h][1] and cyp or cnp,Mode[h][1] and cyp or cnp) - gui.drawRectangle(x+21,y+11, 1, 1,Mode[h][2] and cnp or cyp,Mode[h][2] and cnp or cyp) - gui.drawRectangle(x+23,y+11, 1, 1,Mode[h][2] and cyp or cnp,Mode[h][2] and cyp or cnp) - - gui.drawEllipse(x+30,y+13, 3, 3,c['III'] and cyp or cnp,c['III'] and cyp or cnp) - gui.drawEllipse(x+36,y+12, 3, 3,c['II'] and cyp or cnp,c['II'] and cyp or cnp) - gui.drawEllipse(x+42,y+11, 3, 3,c['I'] and cyp or cnp,c['I'] and cyp or cnp) - gui.drawEllipse(x+29,y+ 8, 3, 3,c['IV'] and cyp or cnp,c['IV'] and cyp or cnp) - gui.drawEllipse(x+35,y+ 7, 3, 3,c['V'] and cyp or cnp,c['V'] and cyp or cnp) - gui.drawEllipse(x+41,y+ 6, 3, 3,c['VI'] and cyp or cnp,c['VI'] and cyp or cnp) - end - - Prev[h] = {c['Mode 1'],c['Mode 2']} - - end - - emu.frameadvance() -end - -while sys == 'PSX' do - for h = 1,8,1 do - if movie.mode() == 'PLAY' then c = movie.getinput(emu.framecount() - 1, h) - else c = joypad.get(h) end - - if enable[h] and pluged[h] then - if topdown then - x = xpos - y = ypos + (h - 1) * 38 - else - x = xpos + (h - 1) * 60 - y = ypos - end - - gui.drawRectangle(x+ 2,y+7,51,11,cbg,cbg) - gui.drawRectangle(x+ 6,y+0,11, 3,cbg,cbg) - gui.drawRectangle(x+38,y+0,11, 3,cbg,cbg) - gui.drawLine(x+ 5,y+ 4,x+19,y+ 4,cbg) - gui.drawLine(x+36,y+ 4,x+50,y+ 4,cbg) - gui.drawLine(x+ 4,y+ 5,x+51,y+ 5,cbg) - gui.drawLine(x+ 3,y+ 6,x+52,y+ 6,cbg) - gui.drawLine(x+ 1,y+19,x+54,y+19,cbg) - - gui.drawLine(x+ 1,y+20,x+19,y+20,cbg) - gui.drawLine(x+ 1,y+21,x+17,y+21,cbg) - gui.drawLine(x+ 1,y+22,x+15,y+22,cbg) - gui.drawRectangle(x+ 0,y+23,14, 2,cbg,cbg) - gui.drawRectangle(x+ 0,y+26,13, 1,cbg,cbg) - gui.drawRectangle(x+ 0,y+28,12, 1,cbg,cbg) - gui.drawLine(x+ 1,y+30,x+11,y+30,cbg) - gui.drawLine(x+ 2,y+31,x+10,y+31,cbg) - gui.drawLine(x+ 3,y+32,x+ 9,y+32,cbg) - gui.drawLine(x+ 5,y+33,x+ 8,y+33,cbg) - - gui.drawLine(x+36,y+20,x+54,y+20,cbg) - gui.drawLine(x+38,y+21,x+54,y+21,cbg) - gui.drawLine(x+40,y+22,x+54,y+22,cbg) - gui.drawRectangle(x+41,y+23,14, 2,cbg,cbg) - gui.drawRectangle(x+42,y+26,13, 1,cbg,cbg) - gui.drawRectangle(x+43,y+28,12, 1,cbg,cbg) - gui.drawLine(x+44,y+30,x+54,y+30,cbg) - gui.drawLine(x+45,y+31,x+53,y+31,cbg) - gui.drawLine(x+46,y+32,x+52,y+32,cbg) - gui.drawLine(x+47,y+33,x+50,y+33,cbg) - - gui.drawRectangle(x+10,y+ 7, 3, 2,c['Up'] and cyp or cnp,c['Up'] and cyp or cnp) - gui.drawRectangle(x+10,y+16, 3, 2,c['Down'] and cyp or cnp,c['Down'] and cyp or cnp) - gui.drawRectangle(x+ 6,y+11, 2, 3,c['Left'] and cyp or cnp,c['Left'] and cyp or cnp) - gui.drawRectangle(x+15,y+11, 2, 3,c['Right'] and cyp or cnp,c['Right'] and cyp or cnp) - gui.drawLine(x+11,y+10,x+12,y+10,c['Up'] and cyp or cnp) - gui.drawLine(x+11,y+15,x+12,y+15,c['Down'] and cyp or cnp) - gui.drawLine(x+ 9,y+12,x+ 9,y+13,c['Left'] and cyp or cnp) - gui.drawLine(x+14,y+12,x+14,y+13,c['Right'] and cyp or cnp) - - gui.drawEllipse(x+42,y+ 7, 3, 3,c['Triangle'] and cyp or cnp,c['Triangle'] and cyp or cnp) - gui.drawEllipse(x+38,y+11, 3, 3,c['Square'] and cyp or cnp,c['Square'] and cyp or cnp) - gui.drawEllipse(x+46,y+11, 3, 3,c['Circle'] and cyp or cnp,c['Circle'] and cyp or cnp) - gui.drawEllipse(x+42,y+15, 3, 3,c['Cross'] and cyp or cnp,c['Cross'] and cyp or cnp) - - gui.drawRectangle(x+23,y+15,3,1,c['Select'] and cyp or cnp) - gui.drawRectangle(x+29,y+15,3,1,c['Start'] and cyp or cnp) - gui.drawRectangle(x+10,y+ 0,3,1,c['L2'] and cyp or cnp) - gui.drawRectangle(x+10,y+ 3,3,1,c['L1'] and cyp or cnp) - gui.drawRectangle(x+42,y+ 0,3,1,c['R2'] and cyp or cnp) - gui.drawRectangle(x+42,y+ 3,3,1,c['R1'] and cyp or cnp) - end - end - - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/JoypadIntersection.lua b/Assets/Lua/JoypadIntersection.lua deleted file mode 100644 index 31933298a8..0000000000 --- a/Assets/Lua/JoypadIntersection.lua +++ /dev/null @@ -1,57 +0,0 @@ ---------------------------------------------------------- --- Small script for only allowing input on P1 controller --- if both P1 and P2 holds down a specific input --- --- Note that this script only works on systems which --- has two or more joypads (such as NES) and not on --- systems with just one joypad (such as Gameboy) --- --- Author: Gikkman ---------------------------------------------------------- - --- Pre-made array for resetting the P1 joypad -local reset = joypad.get(1) -for k,v in pairs(reset) do - reset[k] = '' -end - -event.onframestart( function() - local p1 = joypad.get(1) - local p2 = joypad.get(2) - local consolidated = intersection(p1, p2) - - gui.drawText(0,10, 'P1: ' .. dump(p1)) - gui.drawText(0,25, 'P2: ' .. dump(p2)) - - joypad.set(consolidated, 1) -end ) - -event.onframeend( function() - joypad.set(reset, 1) -end ) - --- Get intersection of P1 and P2 joypads -function intersection(p1, p2) - local ret = {} - for k,v in pairs(p1) do - ret[k] = p1[k] and p2[k] - end - return ret -end - --- Print all pressed buttons -function dump(o) - local s = '' - for k,v in pairs(o) do - if v then s = s .. tostring(k) .. ' ' end - end - return s -end - - --------------------------------------- --- Main loop -- --------------------------------------- -while true do - emu.frameadvance() -end diff --git a/Assets/Lua/MovieClock.lua b/Assets/Lua/MovieClock.lua deleted file mode 100644 index 411af29920..0000000000 --- a/Assets/Lua/MovieClock.lua +++ /dev/null @@ -1,39 +0,0 @@ -while true do - if (movie.isloaded()) then - if movie.getheader()["Core"] == "Gambatte" then - clockrate = 2 ^ 21; - cycles = emu.totalexecutedcycles(); - tseconds = (cycles / clockrate); - elseif movie.getheader()["Core"] == "SubGBHawk" then - clockrate = 2 ^ 22; - cycles = emu.totalexecutedcycles(); - tseconds = (cycles / clockrate); - else - fps = movie.getfps(); - frames = emu.framecount(); - tseconds = (frames / fps); - end - secondsraw = tseconds % 60; - shift = 10 ^ 2; - seconds = math.floor((secondsraw * shift) + 0.5) / shift; - secondsstr = string.format("%.2f", seconds); - if (seconds < 10) then - secondsstr = "0" .. secondsstr; - end - - minutes = (math.floor(tseconds / 60)) % 60; - minutesstr = minutes; - if (minutes < 10) then - minutesstr = "0" .. minutesstr; - end - - hours = (math.floor(tseconds / 60 / 60)) % 24; - - time = minutesstr .. ":" .. secondsstr; - if (hours > 0) then - time = "0" .. hours .. ":" .. time; - end - gui.text(0, 0, time, nil, 1); - end - emu.frameadvance(); -end diff --git a/Assets/Lua/N64/M64_reader.lua b/Assets/Lua/N64/M64_reader.lua deleted file mode 100644 index e3873617ac..0000000000 --- a/Assets/Lua/N64/M64_reader.lua +++ /dev/null @@ -1,203 +0,0 @@ --- M64 reader script --- Translates M64 file movies into button presses for Bizhawk, accounting for lag frames. --- This script will automatically pause at the end of the movie - --- This script will not clear the saveram. If a movie requires empty saveram it must be cleared before using this script. - --- If you are trying to convert a M64 into BKM format, you can try pausing the emulator and starting recording a movie, then loading this script and letting it run. Beginning a new movie will clear the saveram for you. - - -local m64_filename = forms.openfile(nil,nil,"Mupen Movie Files (*.M64)|*.M64|All Files (*.*)|*.*") - -console.clear() -if m64_filename == "" then - console.log("No movie selected. Exiting.") - return -end - -console.log("Opening movie for playback: " .. m64_filename) - --- Open the file and read past the header data -local input_file = assert(io.open(m64_filename, "rb")) -local header = input_file:read(0x400) - --- Check the file and display some info -if string.sub(header,1,3) ~= "M64" or string.byte(header,4) ~= 0x1A then - console.log("File signature is not M64\\x1A. This might not be an .m64 movie, but I'll try to play it anyway") -end - -function remove_nulls(s) - if string.len(s) == 0 then - return s - end - - local i = 1 - while string.byte(s,i) ~= 0 and i <= string.len(s) do - i = i + 1 - end - - return string.sub(s,1,i-1) -end - -local movie_rom_name = string.sub(header,0x0C5,0x0E4) -movie_rom_name = remove_nulls(movie_rom_name) -console.log("Rom name: " .. movie_rom_name) - -local rerecords = string.byte(header,0x11) + string.byte(header,0x12) * 0x100 + string.byte(header,0x13) * 0x10000 + string.byte(header,0x14) * 0x1000000 -console.log("# of rerecords: " .. rerecords) - -local rerecords = string.byte(header,0x0D) + string.byte(header,0x0E) * 0x100 + string.byte(header,0x0F) * 0x10000 + string.byte(header,0x10) * 0x1000000 -console.log("# of frames: " .. rerecords) - -local author_info = string.sub(header,0x223,0x300) -author_info = remove_nulls(author_info) -console.log("Author: " .. author_info) - -local description = string.sub(header,0x301,0x400) -description = remove_nulls(description) -console.log("Description: " .. description) - -local video_plugin = string.sub(header,0x123,0x162) -video_plugin = remove_nulls(video_plugin) -console.log("Video Plugin: " .. video_plugin) - -local audio_plugin = string.sub(header,0x163,0x1A2) -audio_plugin = remove_nulls(audio_plugin) -console.log("Audio Plugin: " .. audio_plugin) - -local input_plugin = string.sub(header,0x1A3,0x1E2) -input_plugin = remove_nulls(input_plugin) -console.log("Input Plugin: " .. input_plugin) - -local rsp_plugin = string.sub(header,0x1E3,0x222) -rsp_plugin = remove_nulls(rsp_plugin) -console.log("RSP Plugin: " .. rsp_plugin) - --- Flag to note that we've reached the end of the movie -local finished = false - --- Since m64 movies do not record on lag frames, we need to know if the input was actually used for the current frame -local input_was_used = false -function input_used() - if not finished then - input_was_used = true - end -end -event.oninputpoll(input_used) - -local buttons = { } -local X -local Y --- Reads in the next frame of data from the movie, or sets the finished flag if no frames are left -function read_next_frame() - local data = input_file:read(4) - if not data or string.len(data) ~= 4 then - finished = true - return - end - local byte = string.byte(string.sub(data,1,1)) - if bit.band(byte,0x01) ~= 0 then - buttons["DPad R"] = true - else - buttons["DPad R"] = false - end - if bit.band(byte,0x02) ~= 0 then - buttons["DPad L"] = true - else - buttons["DPad L"] = false - end - if bit.band(byte,0x04) ~= 0 then - buttons["DPad D"] = true - else - buttons["DPad D"] = false - end - if bit.band(byte,0x08) ~= 0 then - buttons["DPad U"] = true - else - buttons["DPad U"] = false - end - if bit.band(byte,0x10) ~= 0 then - buttons["Start"] = true - else - buttons["Start"] = false - end - if bit.band(byte,0x20) ~= 0 then - buttons["Z"] = true - else - buttons["Z"] = false - end - if bit.band(byte,0x40) ~= 0 then - buttons["B"] = true - else - buttons["B"] = false - end - if bit.band(byte,0x80) ~= 0 then - buttons["A"] = true - else - buttons["A"] = false - end - - byte = string.byte(string.sub(data,2,2)) - if bit.band(byte,0x01) ~= 0 then - buttons["C Right"] = true - else - buttons["C Right"] = false - end - if bit.band(byte,0x02) ~= 0 then - buttons["C Left"] = true - else - buttons["C Left"] = false - end - if bit.band(byte,0x04) ~= 0 then - buttons["C Down"] = true - else - buttons["C Down"] = false - end - if bit.band(byte,0x08) ~= 0 then - buttons["C Up"] = true - else - buttons["C Up"] = false - end - if bit.band(byte,0x10) ~= 0 then - buttons["R"] = true - else - buttons["R"] = false - end - if bit.band(byte,0x20) ~= 0 then - buttons["L"] = true - else - buttons["L"] = false - end - - X = string.byte(string.sub(data,3,3)) - if X > 127 then - X = X - 256 - end - - Y = string.byte(string.sub(data,4,4)) - if Y > 127 then - Y = Y - 256 - end -end - -while true do - -- Only read the next frame of data if the last one was used - if input_was_used and not finished then - read_next_frame() - input_was_used = false - end - - if not finished then - joypad.set(buttons, 1) - local analogs = { ["X Axis"] = X, ["Y Axis"] = Y } - joypad.setanalog(analogs, 1) - end - - if finished then - console.log("Movie finished") - client.pause() - return - end - - emu.frameadvance() -end diff --git a/Assets/Lua/NDS/StylusInputDisplay.lua b/Assets/Lua/NDS/StylusInputDisplay.lua deleted file mode 100644 index 8e5f6cb58e..0000000000 --- a/Assets/Lua/NDS/StylusInputDisplay.lua +++ /dev/null @@ -1,50 +0,0 @@ --- Gives a cross hair UI for the stylus for DS games - -local upColor = 'white' -local downColor = 'green' -local dotColor = 'red' - -function Draw(x, y, maxX, maxY, isDown) - color = upColor - if isDown then - color = downColor - end - - gui.drawLine(0, y, maxX, y, color) - gui.drawLine(x, 0, x, maxY, color) - - if isDown then - gui.drawPixel(x, y, dotColor) - end -end - -while true do - if emu.getsystemid() ~= "NDS" then - console.log('This script is for Nintendo DS only') - break - end - - local btns = joypad.get() - - if movie.mode() == "PLAY" and emu.framecount() > 0 then - btns = movie.getinput(emu.framecount() - 1) - end - - local x = btns['TouchX'] - local y = btns['TouchY'] - local isDown = btns['Touch'] - - -- A bit of a hack to ensure it is not drawing while mouse moving - -- on the top screen - if y == 0 then - x = 0 - end - - pts = client.transformPoint(x, y) - local tx = pts["x"]; - local ty = pts["y"]; -gui.DrawNew("native") - Draw(tx, ty, 10000, 10000, isDown) - - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Castlevania.lua b/Assets/Lua/NES/Castlevania.lua deleted file mode 100644 index 81dfd195bc..0000000000 --- a/Assets/Lua/NES/Castlevania.lua +++ /dev/null @@ -1,108 +0,0 @@ ---Author Pasky13 -local px = 0x38C -local py = 0x354 -local pl = 0x45 - -local ex = 0x38C -local ey = 0x354 - -memory.usememorydomain("PRG ROM") - -local function whip() - local box = {0,0,0} -- xoff/yoff/xrad/yrad - local wtype = mainmemory.read_u8(0x70) - local pos = bit.band(mainmemory.read_u8(0x434),0x7F) -- Simons acting positon (jumping/crouching, etc...) - box[1] = memory.read_s8(0x1E45D + wtype) - wtype = wtype * 2 - box[2] = memory.read_s8(0x1E460 + pos) - box[3] = memory.read_u8(0x1E464 + wtype) - box[4] = memory.read_u8(0x1E465 + wtype) - - if mainmemory.read_u8(0x450) == 1 then -- Simon is facing left - box[1] = box[1] * -1 - box[3] = box[3] * -1 - end - return box -end - -local function player() - local x = mainmemory.read_u8(px) - local y = mainmemory.read_u8(py) - local box - gui.drawBox(x+4,y+mainmemory.read_u8(0x5F),x-4,y-mainmemory.read_u8(0x5F),0xFF0000FF,0x400000FF) - - if mainmemory.read_u8(0x568) == 0x11 then -- Whip is active - box = whip() - gui.drawBox(x+box[1]+box[3],y+box[2]+box[4],x+box[1]-box[3],y+box[2]-box[4],0xFFFFFFFF,0x40FFFFFF) - end - -end - -local function buildbox(i) - local box = {0,0} -- xrad/yrad - local offset = mainmemory.read_u8(0x434 + i) - local dracform - if offset == 0x1D then - dracform = mainmemory.read_u8(0x7A) - if dracform == 1 then - offset = 0x30 * 2 - else - offset = offset * 2 - end - else - offset = offset * 2 - end - - box = { memory.read_u8(0x1E46A + offset),memory.read_u8(0x1E46B + offset) } - - return box -end - -local function getcolor(x) - local color = {0,0} -- Fill/Outline - if x >= 0x28 and x < 0x30 then - color = {0x40FFA500,0xFFFFA500} - elseif x >= 0x30 and x <= 0x35 then - return color - elseif x == 0x17 then -- Simon subweapon - color = {0x4000FFFF,0xFF00FFFF} - elseif x == 0x1D then -- dracula invuln box - color = {0x40FF0000,0xFFFFFFFF} - else - color = {0x40FF0000,0xFFFF0000} - end - return color -end - -local function objects() - local x - local y - local active - local box - local etype - local c - local oob - - for i = 3,20,1 do - oob = mainmemory.read_u8(0x300 + i) - if oob == 0 or oob == 0x80 then - box = buildbox(i) - etype = mainmemory.read_u8(0x434 + i) - c = getcolor(etype) - x = mainmemory.read_u8(ex + i) - y = mainmemory.read_u8(ey + i) - gui.drawBox(x+box[1],y+box[2],x-box[1],y-box[2],c[2],c[1]) - if etype == 0x1D then -- if dracula's invuln box - gui.drawLine(x+box[1],y,x-box[1],y,0xFFFFFFFF) - gui.drawLine(x,y+box[2],x,y-box[2],0xFFFFFFFF) - end - end - end -end - - -while true do - player() - objects() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Contra force.lua b/Assets/Lua/NES/Contra force.lua deleted file mode 100644 index d419e31bdd..0000000000 --- a/Assets/Lua/NES/Contra force.lua +++ /dev/null @@ -1,128 +0,0 @@ -----------TOGGLES---------- - -DISPLAY_ENEMY_HP = true ---------END TOGGLES-------- - -xbase = 0x64E -ybase = 0x668 -abase = 0x682 -hpbase = 0x796 -offscreen = 0x600 -xm = 0 -ym = 0 ---P1X --- animation 0x61A - -local proj_fill = 0xFF00FF00 -local proj_outl = 0x3000FF00 - -local enemy_fill = 0xFFFF0000 -local enemy_outl = 0x30FF0000 - -local player_fill = 0xFF0000FF -local player_outl = 0x300000FF - -local pproj_fill = 0xFFFFFFFF -local pproj_oult = 0x30FFFFFF - -memory.usememorydomain("System Bus") - -local function hex(val) - val = string.format("%X",val) - return val -end - -local function player() - local active = mainmemory.read_u8(abase) - if active > 0 then - local offset = bit.band(mainmemory.read_u8(0x720),0x3F) * 2 - local xrad = memory.read_u8(0xF94A + offset) - local yrad = memory.read_u8(0xF94B + offset) - local hp = mainmemory.read_u8(hpbase) - local x = mainmemory.read_u8(xbase) - local y = mainmemory.read_u8(ybase) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad, player_fill, player_outl) - end -end - -local function player_proj() - for i = 10,11,1 do - local active = mainmemory.read_u8(abase + i) - local oscr = bit.band(mainmemory.read_u8(offscreen + i),0xF0) - - if oscr == 0x20 then - oscr = -255 - elseif oscr == 0x10 then - oscr = 255 - end - - if active > 0 then - local offset = bit.band(mainmemory.read_u8(0x720 + i),0x3F) * 2 - local xrad = memory.read_u8(0xF94A + offset) - local yrad = memory.read_u8(0xF94B + offset) - local x = mainmemory.read_u8(xbase + i) + oscr - local y = mainmemory.read_u8(ybase + i) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad, pproj_fill, pproj_outl) - end - end - -end - -local function enemy() - for i = 2,8,1 do - local active = mainmemory.read_u8(abase + i) - local oscr = bit.band(mainmemory.read_u8(offscreen + i),0xF0) - if oscr == 0x20 then - oscr = -255 - elseif oscr == 0x10 then - oscr = 255 - end - if active > 0 then - local offset = bit.band(mainmemory.read_u8(0x720 + i),0x3F) * 2 - local xrad = memory.read_u8(0xF94A + offset) - local yrad = memory.read_u8(0xF94B + offset) - local hp = mainmemory.read_u8(hpbase + i) - local x = mainmemory.read_u8(xbase + i) + oscr - local y = mainmemory.read_u8(ybase + i) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad, enemy_fill, enemy_outl) - if DISPLAY_ENEMY_HP == true then - gui.text(x * xm,y * ym,hp) - end - end - end -end - -local function e_proj() - local pbase = 0x720 - for i = 18,22,1 do - local active = mainmemory.read_u8(abase + i) - local oscr = bit.band(mainmemory.read_u8(offscreen + i),0xF0) - if oscr == 0x20 then - oscr = -255 - elseif oscr == 0x10 then - oscr = 255 - end - if active > 0 then - local offset = bit.band(mainmemory.read_u8(0x720 + i),0x3F) * 2 - local xrad = memory.read_u8(0xF94A + offset) - local yrad = memory.read_u8(0xF94B + offset) - local x = mainmemory.read_u8(xbase + i) + oscr - local y = mainmemory.read_u8(ybase + i) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad, proj_fill, proj_outl) - end - end -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - player() - enemy() - e_proj() - player_proj() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Crystalis.lua b/Assets/Lua/NES/Crystalis.lua deleted file mode 100644 index b8684455a1..0000000000 --- a/Assets/Lua/NES/Crystalis.lua +++ /dev/null @@ -1,101 +0,0 @@ -local camx -local camy -local HPDISPLAY = true - -memory.usememorydomain("PRG ROM") - -local function camera() - camx = mainmemory.read_u8(0x02) - if mainmemory.read_u8(0x03) > 0x7F then - camx = mainmemory.read_s8(0x02) - else - camx = camx + mainmemory.read_u8(0x03) * 256 - end - camy = mainmemory.read_u8(0x04) - if mainmemory.read_u8(0x05) > 0x7F then - camy = mainmemory.read_s8(0x04) + 17 - else - camy = camy + mainmemory.read_u8(0x05) * 239 - end -end - -local function player() - local x = mainmemory.read_u8(0x70) + mainmemory.read_u8(0x90) * 256 - camx - local y = mainmemory.read_u8(0xB0) + mainmemory.read_u8(0xD0) * 239 - camy - local x2 = mainmemory.read_u8(0x5C0) - local y2 = mainmemory.read_u8(0x5E0) - local invuln = mainmemory.read_u8(0x71A) - - if bit.band(mainmemory.read_u8(0x3A1),0xF0) ~= 0 and invuln == 0 then -- If box exists - local off1 = bit.band(mainmemory.read_u8(0x3A1),0xF) * 4 - local off2 = bit.bor(bit.band(mainmemory.read_u8(0x421),0x40),off1) - - local xoff = memory.read_s8(0x35691 + off2) - local xrad = memory.read_u8(0x35692 + off2) - local yoff = memory.read_s8(0x35693 + off2) - local yrad = memory.read_u8(0x35694 + off2) - - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFF0000FF,0x300000FF) - end - - - --Player's attacks - for i = 2,4,1 do - - if mainmemory.read_u8(0x4A0 + i) ~= 0 and i ~= 3 then - x = mainmemory.read_u8(0x70 + i) + mainmemory.read_u8(0x90 + i) * 256 - camx - y = mainmemory.read_u8(0xB0 + i) + mainmemory.read_u8(0xD0 + i) * 239 - camy - x2 = mainmemory.read_u8(0x5C0 + i) - y2 = mainmemory.read_u8(0x5E0 + i) - - off1 = bit.band(mainmemory.read_u8(0x3A0 + i),0xF) * 4 - off2 = bit.bor(bit.band(mainmemory.read_u8(0x422),0x40),off1) - - xoff = memory.read_s8(0x35691 + off2) - xrad = memory.read_u8(0x35692 + off2) - yoff = memory.read_s8(0x35693 + off2) - yrad = memory.read_u8(0x35694 + off2) - - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad) - end - end -end - -local function enemies() - for i = 5,0x1F,1 do - - if mainmemory.read_u8(0x4A0 + i) ~= 0 then - local x = mainmemory.read_u8(0x70 + i) + mainmemory.read_u8(0x90 + i) * 256 - camx - local y = mainmemory.read_u8(0xB0 + i) + mainmemory.read_u8(0xD0 + i) * 239 - camy - local x2 = mainmemory.read_u8(0x5C0 + i) - local y2 = mainmemory.read_u8(0x5E0 + i) - local hp = mainmemory.read_u8(0x3C0 + i) - - if x < 256 and x > 0 and y < 239 and y > 0 then - if bit.band(mainmemory.read_u8(0x3A0 + i),0xF0) ~= 0 then -- If box exists - local off1 = bit.band(mainmemory.read_u8(0x3A0 + i),0xF) * 4 - local off2 = bit.bor(bit.band(mainmemory.read_u8(0x420 + i),0x40),off1) - - - local xoff = memory.read_s8(0x35691 + off2) - local xrad = memory.read_u8(0x35692 + off2) - local yoff = memory.read_s8(0x35693 + off2) - local yrad = memory.read_u8(0x35694 + off2) - - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFF0000,0x30FF0000) - - if HPDISPLAY == true then - gui.text(x,y,"HP: " .. hp) - end - end - end - end - end -end - -while true do - camera() - player() - enemies() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Faxandu.lua b/Assets/Lua/NES/Faxandu.lua deleted file mode 100644 index a7ba08056a..0000000000 --- a/Assets/Lua/NES/Faxandu.lua +++ /dev/null @@ -1,114 +0,0 @@ ------------------------------- ---Faxandu collision box viewer ---Author: Pasky ------------------------------- - -local HP = true -- toggle to false to turn off hitpoint display on enemies - -function findbit(p) - return 2 ^ (p - 1) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -local function hex(val) - val = string.format("%X",val) - return val -end - -memory.usememorydomain("System Bus") - -local function player() - local x = memory.read_u8(0x9E) - local y = memory.read_u8(0xA1) + 0x1F - local hp = memory.read_u8(0x431) - -- vuln box - gui.drawBox(x,y,x+0xB,y+0x1B,0xFF0000FF,0x300000FF) - - --attack box - local xrad = memory.read_u8(0xD2) - local yrad = memory.read_u8(0xD3) - local atk = memory.read_u8(0xA4) - local x2 = memory.read_u8(0xCE) - local y2 = memory.read_u8(0xD0) + 0x1F - - if hasbit(atk,findbit(8)) then - gui.drawBox(x2,y2,x2+xrad,y2+yrad) - end - - --Magic - local mag = memory.read_u8(0x02B3) - if mag ~= 0xFF then - local addr = 0x8B73 + mag - local magx = memory.read_u8(0x2B6) - local magy = memory.read_u8(0x2B8) + 0x1F - xrad = memory.read_u8(addr) - yrad = memory.read_u8(addr + 5) - gui.drawBox(magx,magy,magx+xrad,magy+yrad) - end -end - -local function enemies() - local base = 0xBA - for i = 0,7,1 do - local etype = memory.read_u8(0x2CC + i) - if etype ~= 0xFF then - local x = memory.read_u8(base + i) - local y = memory.read_u8(base + 8 + i) + 0x1F - local hp = memory.read_u8(0x344 + i) - local atk = memory.read_u8(0x2E4 + i) - local atk2 = false - local facing = memory.read_u8(0x2DC + i) - local addr - - if etype == 0x1F or etype == 0x21 then -- Check if dwarf or ??? - if atk == 0x02 then - addr = 0x8A71 - atk2 = true - else - addr = 0xB200 + (etype * 4) + 0x73 - end - elseif etype == 0x20 then - if atk == 0x04 then - addr = 0x8A75 - atk2 = true - else - addr = 0xB200 + (etype * 4) + 0x73 - end - else - addr = 0xB200 + (etype * 4) + 0x73 - end - - local xoff = memory.read_s8(addr) - local yoff = memory.read_s8(addr + 1) - local xrad = memory.read_s8(addr + 2) - local yrad = memory.read_s8(addr + 3) - - if not hasbit(facing,findbit(1)) and atk2 == true then - xoff = xoff * -1 - xrad = xrad * -1 - end - - --Attack box - gui.drawBox(x,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFF0000,0x70FF0000) - if HP == true then - gui.text(x,y-10,"HP: " .. hp) - end - --Vuln box - if memory.read_u8(etype + 0xB544) == 0 then - addr = 0xB407 + (etype * 2) - xrad = memory.read_u8(addr) - yrad = memory.read_u8(addr + 1) - gui.drawBox(x,y,x+xrad,y+yrad,0xFFFFFF00,0x30FFFF00) - end - end - end -end - -while true do - player() - enemies() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Holy Diver.lua b/Assets/Lua/NES/Holy Diver.lua deleted file mode 100644 index fec653c273..0000000000 --- a/Assets/Lua/NES/Holy Diver.lua +++ /dev/null @@ -1,168 +0,0 @@ --- Author Pasky13 - -local camx = 0x38F -local camy = 0x3CF - -local plife = 0x440 -local px = 0x370 -local py = 0x3A0 - -local ex = 0x370 -local ey = 0x3A0 - ---Configurable player box -local pxrad = 6 -- Only use multiples of 2 and no higher than 6 - -local function hex(val) - val = string.format("%X",val) - return val -end - -local function draw_axis(x,y,color) - gui.line(x,y-4,x,y+4,color) - gui.line(x-4,y,x+4,y,color) -end - -local function lookup(etype,i) -- this is really messy GIANT if else statement incoming - local box = {0,0,0,0} -- xoff,yoff,xrad,yrad - if etype == 0xF then - box = {0x06,0x18,0x0C,0x18} - elseif etype == 0x4A then - box = {0x1C,0x0C,0x38,0x18} - elseif etype == 0x1B then - box = {0x08,0x08,0x10,0x10} - elseif etype == 0x13 then - box = {0x08,0x10,0x10,0x20} - elseif etype == 0x3F then - box = {0x0C,0x38,0x18,0x38} - elseif etype == 0x40 then - box = {0x07,0x07,0x0E,0x0E} - elseif etype == 0x12 then - box = {0x04,0x04,0x08,0x08} - elseif etype == 0x36 then - box = {0x10,0x10,0x20,0x20} - elseif etype == 0x30 then - box = {0x0C,0x10,0x18,0x18} - elseif etype == 0x2C then - box = {0x04,0x08,0x08,0x08} - elseif etype == 0x2B then - box = {0x08,0x08,0x10,0x18} - elseif etype == 0x24 then - box = {0x08,0x08,0x10,0x10} - elseif etype == 0x25 then - box = {0x04,0x08,0x08,0x08} - elseif etype == 0x46 then - box = {0x18,0x20,0x28,0x20} - elseif etype == 0x1E then - box = {0x08,0x08,0x10,0x08} - elseif etype == 0x50 then - box = {0x10,0x00,0x40,0x60} - elseif etype == 0x51 then - box = {0x08,0x0A,0x10,0x0A} - elseif etype == 0x32 then - box = {0x08,0x10,0x10,0x10} - elseif etype == 0x33 then - box = {0x04,0x04,0x08,0x08} - elseif etype == 0x42 then - box = {0x04,0x04,0x08,0x08} - elseif etype == 0x26 then - box = {0x09,0x0D,0x15,0x15} - elseif etype == 0x27 then - box = {0x10,0x18,0x20,0x20} - elseif etype == 0x28 then - box = {0x04,0x04,0x08,0x08} - elseif etype == 0x53 then - box = {0x0C,0x20,0x18,0x28} - elseif etype == 0x54 then - box = {0x03,0x18,0x08,0x18} - elseif etype == 0x48 then - box = {0x0C,0x18,0x18,0x18} - elseif etype == 0x49 then - box = {0x08,0x08,0x08,0x08} - elseif etype == 0x4A then - box = {0x1C,0x0C,0x38,0x18} - elseif etype == 0x4B then - box = {0x05,0x04,0x08,0x08} - elseif etype == 0x3D then - box = {0x06,0x06,0x0C,0x0C} - elseif etype == 0x3E then - box = {0x06,0x06,0x0C,0x0C} - elseif etype == 0x38 then - box = {0x10,0x34,0x20,0x20} - elseif etype == 0x57 then - box = {0x00,0x00,0x48,0x60} - elseif etype == 0x4D then - box = {0x10,0x00,0x20,0x38} - elseif etype == 0x59 then - box = {0x0C,0x10,0x18,0x18} - elseif etype == 0x58 then - box = {0x08,0x08,0x10,0x10} - elseif etype == 0x5E then - box = {0x08,0x10,0x10,0x10} - elseif etype == 0x37 then - box = {0x10,0x28,0x24,0x50} - elseif etype == 0x5D then - box = {0x04,0x04,0x08,0x08} - elseif etype == 0x5C then - box = {0x08,0x08,0x10,0x10} - elseif etype == 0x5B then - box = {0x0C,0x00,0x18,0x10} - elseif etype == 0x4C then -- Mutating projectile - o = mainmemory.read_u8(0x470 + i) - dt = {0x08,0x0C,0x10,0x10,0x18,0x20} - box = {0x04,0x08,dt[1+o],dt[4+o]} - end - - return box -end - -local function player() - local pos = mainmemory.read_u8(0x300) - local cx = mainmemory.read_u8(camx) + (mainmemory.read_u8(camx + 0x10) * 256) - local cy = mainmemory.read_u8(camy) + (mainmemory.read_u8(camy + 0x10) * 256) - local x = mainmemory.read_u8(px) + (mainmemory.read_u8(px + 0x10) * 256) - cx - local y = mainmemory.read_u8(py) + (mainmemory.read_u8(py + 0x10) * 256) - cy - local pyrad = 0x1C - - if pos == 0x03 or pos == 0x06 then - pyrad = 0x13 - end - - gui.drawBox(x - (pxrad / 2), y, x + (pxrad / 2), y - pyrad,0xFF0000FF,0x350000FF) -end - -local function enemy() - local cx = mainmemory.read_u8(camx) + (mainmemory.read_u8(camx + 0x10) * 256) - local cy = mainmemory.read_u8(camy) + (mainmemory.read_u8(camy + 0x10) * 256) - local etype - local box = {0,0,0,0} - - for i = 6, 14, 1 do - etype = mainmemory.read_u8(0x300 + i) - local fill = 0x40FF0000 - local outl = 0xFFFF0000 - - if etype ~= 0xFF then - local x = mainmemory.read_u8(ex + i) + (mainmemory.read_u8(ex + i + 0x10) * 256) - cx - local y = mainmemory.read_u8(ey + i) + (mainmemory.read_u8(ey + i + 0x10) * 256) - cy - - box = lookup(etype,i) - - gui.drawBox(x - box[1],y-box[2],x-box[1]+box[3] - pxrad,y-box[2]+box[4],outl,fill) - - if etype == 0x3F then-- 1st boss - --Draw his vuln box - local fill = 0x40FFFF00 - local outl = 0xFFFFFF00 - box = {0x0C,0x38,0x18,0x18} - gui.drawBox(x - box[1],y-box[2],x-box[1]+box[3] - pxrad,y-box[2]+box[4],outl, fill) - end - end - end -end - -while true do - player() - enemy() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Megaman 4.lua b/Assets/Lua/NES/Megaman 4.lua deleted file mode 100644 index 6d93d3b255..0000000000 --- a/Assets/Lua/NES/Megaman 4.lua +++ /dev/null @@ -1,142 +0,0 @@ ---Author Pasky13 - -local xbase = 0x330 -local x_page = 0x348 -local ybase = 0x378 -local y_page = 0x390 - -local camx = 0xFC -local camx_page = 0xF9 -local cx - --- Compensation for megaman's projectiles -local pcompx = 0 -local pcompy = 0 - --- Compensation for megaman's hitbox -local compx = 2 -local compy = 2 - -local xm -local ym - -memory.usememorydomain("PRG ROM") - -local function camera() - cx = mainmemory.read_u8(camx) + (mainmemory.read_u8(camx_page) * 256) -end - -local function hex(val) - val = string.format("%X",val) - return val -end - -local function megaman() - local x = mainmemory.read_u8(xbase) + (mainmemory.read_u8(x_page) * 256) - cx - local y = mainmemory.read_u8(ybase) - local hp = bit.band(mainmemory.read_u8(0xB0),0x7F) - compx = 6 - compy = 10 - gui.drawBox(x+compx,y+compy,x-compx,y-compy,0xFF0000FF,0x400000FF) - gui.text(23 * xm,15 * ym,hp) - gui.drawLine(x,y+2,x,y-2) - gui.drawLine(x+2,y,x-2,y) -end - -local function megaman_projectiles() - local x - local y - local xrad - local yrad - local offset - local active - - for i = 1,3,1 do - active = mainmemory.read_u8(0x300 + i) - - if active > 0 then - offset = mainmemory.read_u8(0x408 + i) * 2 - x = mainmemory.read_u8(xbase + i) + (mainmemory.read_s8(x_page + i) * 256) - cx - y = mainmemory.read_u8(ybase + i) - xrad = memory.read_u8(0x7FACF + offset) - yrad = memory.read_u8(0x7FACE + offset) - - - -- Compensate the boxes if xrad/yrad is 0 or 1 - if xrad <= 1 then - pcompx = 2 - xrad - else - pcompx = 0 - end - - if yrad <= 1 then - pcompy = 2 - yrad - else - pcompy = 0 - end - - gui.drawBox(x+xrad + pcompx,y+yrad + pcompy,x-xrad - pcompx,y-yrad - pcompy,0xFFFFFFFF,0x40FFFFFF) - end - end -end - -local function objects() - local x - local y - local xrad - local yrad - local hp - local offset - local active - local otype - - for i = 4,0x17,1 do - active = mainmemory.read_u8(0x300 + i) - otype = mainmemory.read_s8(0x408 + i) - - if active > 0 then - x = mainmemory.read_u8(xbase + i) + (mainmemory.read_s8(x_page + i) * 256) - cx - y = mainmemory.read_u8(ybase + i) + (mainmemory.read_s8(y_page + i ) * 256) - - if otype < 0 then -- if it's an enemy/projectile - offset = bit.band(mainmemory.read_u8(0x408 + i),0x3F) - xrad = memory.read_u8(0x7F9F4 + offset) - - if mainmemory.read_u8(0x558) == 0x10 then -- megaman is sliding - yrad = memory.read_u8(0x7F9B4 + offset) - 0x10 - else - yrad = memory.read_u8(0x7F9B4 + offset) - end - - hp = mainmemory.read_u8(0x450 + i) - - -- Calculate compensation for megaman - xrad = xrad - compx - yrad = yrad - compx - - gui.text(x * xm,y * ym,"HP:" .. hp) - --gui.text(x,y,hp) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFF0000,0x90FF0000) - - -- Projectile vuln box - yrad = memory.read_u8(0x7FADC + offset) - pcompx - xrad = memory.read_u8(0x7FB1C + offset) - pcompy - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFF00FF00,0x5000FF00) - end - end - end -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - camera() - megaman() - megaman_projectiles() - objects() - emu.frameadvance() -end diff --git a/Assets/Lua/NES/Ninja Gaiden II.lua b/Assets/Lua/NES/Ninja Gaiden II.lua deleted file mode 100644 index 2c7ae0669a..0000000000 --- a/Assets/Lua/NES/Ninja Gaiden II.lua +++ /dev/null @@ -1,100 +0,0 @@ --- Ninja Gaiden II (USA) Collision Box Viewer --- Author Pasky --- For use with Bizhawk - -local drawn = false -- Used to draw ryu's vulnaribility box only once per frame -memory.usememorydomain("System Bus") - -function axis(x,y,color,xsize,ysize) - if xsize == nil then - xsize = 2 - end - if ysize == nil then - ysize = 2 - end - gui.drawLine(x+xsize,y,x-xsize,y,color) - gui.drawLine(x,y+ysize,x,y-ysize,color) - gui.drawLine(x,y,x,y,0xFF000000) -end - --- Player attacks - -local function pattack() - if memory.read_u8(0xCA55) == 0xB9 and memory.read_u8(0xCA56) == 0xF0 and memory.read_u8(0xCA57) == 0x04 then -- Bank check - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - -- Sword - local x = memory.read_u8(0x550 + yreg) - local y = memory.read_u8(0x580 + yreg) - 0x03 - local xrad = 0x20 - if bit.band(memory.read_u8(0x4F0 + yreg),0x40) == 0x40 then -- check ryu facing direction - xrad = -0x20 - end - -- NOTE: The sword has no yradius, using drawBox() with a duplicate y coordinate does not draw a box, drawLine() is used in its place - gui.drawLine(x,y,x+xrad,y,0xFFFFFFFF) -- Draw sword hitbox (line) - - -- Enemy vuln boxes (green) - x = memory.read_u8(0x550 + xreg) - y = memory.read_u8(0x580 + xreg) - xrad = memory.read_u8(0x610 + xreg) - local yrad = memory.read_u8(0x628 + xreg) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFF00FF00,0x4000FF00) - end -end - --- Touch collision -local function collision() - if memory.read_u8(0xCC33) == 0xB9 and memory.read_u8(0xCC34) == 0x50 and memory.read_u8(0xCC35) == 0x05 then -- Bank check - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - local x = memory.read_u8(0x550 + yreg) - local y = memory.read_u8(0x580 + yreg) - local xrad = memory.read_u8(0x610 + yreg) - local yrad = memory.read_u8(0x628 + yreg) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFF0000,0x40FF0000) - - -- Player - if drawn == false then - local x = memory.read_u8(0x550) - local y = memory.read_u8(0x580) - local hp = memory.read_u8(0x80) - local xrad = 0x06 - local yrad = 0x10 - if bit.band(memory.read_u8(0x520),0x02) == 0x02 then -- Check if ryu is crouching - yrad = 0x0C - end - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFF0000FF,0x400000FF) - drawn = true - end - end -end - --- Subweapons -local function subweapon() - if memory.read_u8(0xCB2F) == 0xBD and memory.read_u8(0xCB30) == 0x50 and memory.read_u8(0xCB31) == 0x05 then -- Bank check - -- sub weapon - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - local x = memory.read_u8(0x550 + yreg) - local y = memory.read_u8(0x580 + yreg) - local xrad = memory.read_u8(0xC0) - local yrad = memory.read_u8(0xC0) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFFFFFF,0x40FFFFFF) - - -- Enemy vuln (green) - x = memory.read_u8(0x550 + xreg) - y = memory.read_u8(0x580 + xreg) - xrad = memory.read_u8(0x610 + xreg) - yrad = memory.read_u8(0x628 + xreg) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFF00FF00,0x4000FF00) - end -end - -event.onmemoryexecute(collision,0xCC33) -event.onmemoryexecute(pattack,0xCA55) -event.onmemoryexecute(subweapon,0xCB2F) - -while true do - emu.frameadvance() - drawn = false -end \ No newline at end of file diff --git a/Assets/Lua/NES/Ninja Gaiden III.lua b/Assets/Lua/NES/Ninja Gaiden III.lua deleted file mode 100644 index 28f78d3189..0000000000 --- a/Assets/Lua/NES/Ninja Gaiden III.lua +++ /dev/null @@ -1,105 +0,0 @@ --- Ninja Gaiden 3 (USA) Collision box viewer --- Author: Pasky --- For use with Bizhawk - -local drawn = false -- Used so the player box isn't constantly drawn everytime the collision function is hit -memory.usememorydomain("System Bus") - -function axis(x,y,color,xsize,ysize) - if xsize == nil then - xsize = 2 - end - if ysize == nil then - ysize = 2 - end - gui.drawLine(x+xsize,y,x-xsize,y,color) - gui.drawLine(x,y+ysize,x,y-ysize,color) - gui.drawLine(x,y,x,y,"#000000FF") -end - -local function collision() -- Collision between enemies - if memory.read_u8(0xA2CA) == 0xBD and memory.read_u8(0xA2CB) == 0x16 and memory.read_u8(0xA2CC) == 0x05 then -- Bank check - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - -- Enemy - local x = memory.read_u8(0x516 + xreg) - local y = memory.read_u8(0x58E + xreg) - -- Enemy boxes - local xrad = memory.read_u8(0x052E + xreg) - local yrad = memory.read_u8(0x05A6 + xreg) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFF0000,0x40FF0000) - local invuln = bit.bor(memory.read_u8(0x4E6 + xreg),memory.read_u8(0x4CE + xreg)) - if bit.band(invuln,0x02) == 0x02 then - axis(x,y,0xFFFFFFFF,xrad,yrad) - end - -- Player - if drawn == false then - x = memory.read_u8(0x516) - y = memory.read_u8(0x58E) - xrad = 0x06 - yrad = memory.read_u8(0x8C) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFF0000FF,0x400000FF) - axis(x,y) - drawn = true - end - end -end - -local function pattack() -- Player attacks - if memory.read_u8(0xA050) == 0xBD and memory.read_u8(0xA051) == 0x16 and memory.read_u8(0xA052) == 0x05 then -- Bank check - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - local x = memory.read_u8(0x516) - if bit.band(memory.read_u8(0x4CE),0x40) == 0x40 then - x = x - memory.read_u8(0xAA) - else - x = x + memory.read_u8(0xAA) - end - local y = memory.read_u8(0x58E) - 0x08 - local xrad = memory.read_u8(0xAA) - local yrad = memory.read_u8(0xAB) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFFFFFF,0x40FFFFFF) - - -- Enemy vulnerability boxes (green) - x = memory.read_u8(0x516 + xreg) - y = memory.read_u8(0x58E + xreg) - xrad = memory.read_u8(0x052E + xreg) - yrad = memory.read_u8(0x05A6 + xreg) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFF00FF00,0x4000FF00) - local invuln = bit.bor(memory.read_u8(0x4E6 + xreg),memory.read_u8(0x4CE + xreg)) - if bit.band(invuln,0x02) == 0x02 then - axis(x,y,0xFFFFFFFF,xrad,yrad) - end - end -end - -local function subweapon() -- Player sub weapons - if memory.read_u8(0xA050) == 0xBD and memory.read_u8(0xA051) == 0x16 and memory.read_u8(0xA052) == 0x05 then -- Bank check - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - local x = memory.read_u8(0x51E + yreg) - local y = memory.read_u8(0x596 + yreg) - local wrad = memory.read_u8(0x9E) - gui.drawBox(x-wrad,y-wrad,x+wrad,y+wrad) - - -- Enemy projectile vulnerability boxes (green) - x = memory.read_u8(0x516 + xreg) - y = memory.read_u8(0x58E + xreg) - xrad = memory.read_u8(0x052E + xreg) - yrad = memory.read_u8(0x05A6 + xreg) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFF00FF00,0x4000FF00) - local invuln = bit.bor(memory.read_u8(0x4E6 + xreg),memory.read_u8(0x4CE + xreg)) - if bit.band(invuln,0x02) == 0x02 then - axis(x,y,0xFFFFFFFF,xrad,yrad) - end - end -end - -event.onmemoryexecute(collision,0xA2CA) -event.onmemoryexecute(pattack,0xA050) -event.onmemoryexecute(subweapon,0xA1DB) - -while true do - emu.frameadvance() - drawn = false -end \ No newline at end of file diff --git a/Assets/Lua/NES/NinjaGaiden_Hitbox.lua b/Assets/Lua/NES/NinjaGaiden_Hitbox.lua deleted file mode 100644 index 63cb6dfc68..0000000000 --- a/Assets/Lua/NES/NinjaGaiden_Hitbox.lua +++ /dev/null @@ -1,106 +0,0 @@ ---Author Pasky13 - ---Player -local px = 0x0086 -local py = 0x008A - -local projxbase = 0x4BB -- Object X speed base is 0x4C1 -local projybase = 0x4BE -- Object Y speed base ix 0x4C4 - ---Enemies -local ex = 0x0460 -local ey = 0x0480 -local efacing = 0x440 -local etype = 0x0438 - ---Objects -local ox = 0x4D9 -local oy = 0x4E1 - -memory.usememorydomain("PRG ROM") - -local function Ryu() - local x = mainmemory.read_u8(px) - local y = mainmemory.read_u8(py) - local yrad = mainmemory.read_u8(0x90) - local act = mainmemory.read_u8(0x83) - local subwep = mainmemory.read_u8(0xC9) - local flip = 0 - local swdactive = mainmemory.read_u8(0x83) - - if bit.band(mainmemory.read_u8(0x84),0x40) == 0x40 then - flip = 1 - end - --Spin slash check - if subwep == 0x85 then - if mainmemory.read_u8(0x83) >= 0x0C and mainmemory.read_u8(0x83) <= 0x0F then - gui.drawBox(x+9,y-8,x-9,y-yrad,0xFFFFFF00,0x60FFFF00) - end - end - --Check if Ryu is attacking with sword 7 = stand/jump, A = crouching - if swdactive == 7 or swdactive == 0x0A then - if flip == 0 then - gui.drawBox(x,y-yrad,x+0x20,y-yrad+0x10,0xFFFFFFFF,0x60FFFFFF) - else - gui.drawBox(x,y-yrad,x-0x20,y-yrad+0x10,0xFFFFFFFF,0x60FFFFFF) - end - end - -- Check spinning flame subweapon - if subwep == 0x84 then - if mainmemory.read_u8(0x4C8) > 0 then - gui.drawBox(x+9,y-8,x-9,y-yrad,0xFFFFFF00,0x60FFFF00) - end - end - gui.drawLine(x,y,x,y-yrad,0xFF0000FF) -end - -local function weapons() - for i = 0,2,1 do - active = bit.band(mainmemory.read_u8(0xC8),memory.read_u8(0x1E66F + i)) - if active > 0 then - local wtype = bit.band(mainmemory.read_u8(0xC9),0x7F) - local x = mainmemory.read_u8(projxbase + i) - local y = mainmemory.read_u8(projybase + i) - local xrad = memory.read_u8(0x1E605 + wtype) - gui.drawBox(x+xrad,y,x-xrad,y-xrad,0xFFFF00FF,0x60FF00FF) - end - end -end - -local function enemies() - for i = 0,8,1 do - local active = bit.band(mainmemory.read_u8(0x73),memory.read_u8(0x1E66F + i)) - if active > 0 then - local offset = mainmemory.read_u8(etype + i) - local x = mainmemory.read_u8(ex + i) - local y = mainmemory.read_u8(ey + i) - local xrad = memory.readbyte(0x3300 + offset) - local yrad = memory.readbyte(0x3400 + offset) - gui.drawBox(x+xrad,y,x-xrad,y-yrad,0xFFFF0000,0x60FF0000) - gui.drawLine(x,y,x,y-yrad,0xFFFFFF00) - end - end -end - -local function objects() - for i = 0,3,1 do - local active = bit.band(mainmemory.read_u8(0xC0),memory.read_u8(0x1E66F + i)) - if active > 0 then - active = bit.band(mainmemory.read_u8(0x4D1 + i),8) - if active == 0 then - x = mainmemory.read_u8(ox + i) - y = mainmemory.read_u8(oy + i) - gui.drawLine(x,y,x,y-0x10,0xFF00FFF0) - gui.drawBox(x-0x0C,y,x+0x0C,y-0x10,0xFF00FFF0,0x6000FFF0) - end - end - end -end - -while true do - Ryu() - weapons() - enemies() - objects() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/PunchOutStats.lua b/Assets/Lua/NES/PunchOutStats.lua deleted file mode 100644 index 992c0741de..0000000000 --- a/Assets/Lua/NES/PunchOutStats.lua +++ /dev/null @@ -1,97 +0,0 @@ ---Mike Tyson's Punch Out!! ---Shows Oppoenent & Mac's Health and damage amounts. ---adelikat - - -local EHP = 0x0398 -- Enemy HP address -local EHPx= 178 -local EHPy= 14 -local EnemyHP = 0 -local lastEHP = 0 - -local MHP = 0x0391 -- Mac HP address -local MHPx = 122 -local MHPy = 14 -local MacHP = 0 -local lastMHP = 0 - -local OppKnockedDown = 0x0005 -- Oppoenent is on the canvas flag -local OppDown -- Stores contents of 0x0005 -local OppDx = 130 -local OppDy = 70 -local OppWillGetUpWith = 0x039E -- Health that the oppoenent will get up with -local OppWillGet -- Stores contents of 0x039E - -local OppHitFlag = 0x03E0 -local OppHit -local OppHitTimer = 0 -local OppHitToDisplay = 0 - -local OppGetUpCountAddr = 0x00C4 -local OppGetUpCount = 0 -local OppGetUpX = 0 -local OppGetUpY = 24 - -OHitValuex = 100 -OHitValuey = 100 - ---***************************************************************************** -function IsOppDown() ---***************************************************************************** - OppDown = mainmemory.read_u8(OppKnockedDown) - if OppDown > 0 then - return true - end - return false -end - ---***************************************************************************** -function OppIsHit() ---***************************************************************************** - OppHit = mainmemory.read_u8(OppHitFlag) - if OppHit > 0 then - return true - end - return false -end - - - ---***************************************************************************** -while true do ---***************************************************************************** - EnemyHP = mainmemory.read_u8(EHP) - gui.text(0,0,"Opponent: " .. EnemyHP, nil, nil, "topright") - - MacHP = mainmemory.read_u8(MHP) - gui.text(0,12,"Mac: " .. MacHP, nil, nil, "topright") - - if IsOppDown() then - OppWillGet = mainmemory.read_u8(OppWillGetUpWith) - OppGetUpCount = (mainmemory.read_u8(OppGetUpCountAddr) - 153) - if OppGetUpCount == -153 then - OppGetUpCount = "never!" - end - gui.text(0, 12, "Next health: " .. OppWillGet, nil, nil, "bottomright") - gui.text(OppGetUpX, OppGetUpY, "Will get up on: " .. OppGetUpCount, nil, nil, "bottomright") - end - - if OppIsHit() then - OppHitToDisplay = lastEHP - EnemyHP - OppHitTimer = 60 - - end - - if OppHitTimer > 0 then - gui.text(0, 0, "Damage: " .. OppHitToDisplay, nil, nil, "bottomright") - end - - - if OppHitTimer > 0 then - OppHitTimer = OppHitTimer - 1 - end - - emu.frameadvance() - lastEHP = EnemyHP - lastMHP = MacHP -end diff --git a/Assets/Lua/NES/RBIBaseball.lua b/Assets/Lua/NES/RBIBaseball.lua deleted file mode 100644 index 3682a7ffa6..0000000000 --- a/Assets/Lua/NES/RBIBaseball.lua +++ /dev/null @@ -1,238 +0,0 @@ ---RBI Baseball script ---Written by adelikat ---Shows stats and information on screen and can even change a batter or pitcher's hand - -local PitchingScreenAddr = 0x001A; -local PitchingScreen; - -local p1PitchHealthAddr = 0x060D; -local p1PitchHealth; - -local p2PitchHealthAddr = 0x061D; -local p2PitchHealth; - -local p1OutsAddr = 0x0665; -local p1Outs; - -local pitchtypeAddr = 0x0112; -local pitchtype; - -local P1currHitterPowerAddr = 0x062B --2 byte -local P1currSpeedAddr = 0x062D -local P1currContactAddr = 0x062A - -local P2currHitterPowerAddr = 0x063B --2 byte -local P2currSpeedAddr = 0x063D -local P2currContactAddr = 0x063A - -local topinningAddr = 0x0115 - ---Extra Ram map notes ---0627 = P1 Batter Lefy or Righty (even or odd) ---0628 = P1 Bat average 150 + this address ---0629 = P1 # of Home Runs ---0638 = P2 Bat average 2 150 + this address ---0639 = P2 # of Home Runs ---0637 = P2 Batter Lefy or Righty (even or odd) - ---060x = P1 pitcher, 061x = P2 pitcher - ---0607 = ---Right digit = P1 Pitcher Lefty or Right (even or odd) ---Left digit = P1 Pitcher drop rating - ---0609 = P1 Sinker ball speed ---060A = P1 Regular ball Speed ---060B = P1 Fastball Speed ---060C = P1 Pitcher Curve rating left digit is curve left, right is curve right - ---0114 = Current Inning ---0115 = 10 if bottom of inning, 0 if on top, controls which player can control the batter - ---0728 & 0279 - In charge of inning music - ---TODO ---A hotkeys for boosting/lowering current pitcher (p1 or 2) health ---fix pitcher L/R switching to not kill the left digit (drop rating) in the process ---Do integer division on curve rating ---Outs display is wrong ---Music on/off toggle - -console.writeline("RBI Baseball script"); -console.writeline("Written by adelikat"); -console.writeline("Description: Shows stats and information on screen and can even change a batter or pitcher's hand"); -console.writeline("\nHotkeys: "); -console.writeline("Toggle Hand of player 2: \nH/J"); -console.writeline("Toggle Hand of player 1: \nK/L"); - -function P1BoostHitter() - mainmemory.write_u16_le(0x062B, mainmemory.read_u16_le(0x062B) + 128); -end - -function P1DropHitter() - mainmemory.write_u16_le(0x062B, mainmemory.read_u16_le(0x062B) - 128); -end - -function P2BoostHitter() - mainmemory.write_u16_le(0x063B, mainmemory.read_u16_le(0x063B) + 128); -end - -function P2DropHitter() - mainmemory.write_u16_le(0x063B, mainmemory.read_u16_le(0x063B) - 128); -end - -function SwitchP1LHand() - if (inningtb == 0x10) then - mainmemory.write_u8(0x0607, 0) - end - if (inningtb == 0) then - mainmemory.write_u8(0x0627, 0) - end -end - -function SwitchP1RHand() - if (inningtb == 0x10) then - mainmemory.write_u8(0x0607, 1) - end - if (inningtb == 0) then - mainmemory.write_u8(0x0627, 1) - end -end - -function SwitchP2LHand() - if (inningtb == 0x0) then - mainmemory.write_u8(0x0617, 0) - end - if (inningtb == 0x10) then - mainmemory.write_u8(0x0637, 0) - end -end - -function SwitchP2RHand() - if (inningtb == 0x0) then - mainmemory.write_u8(0x0617, 1) - end - if (inningtb == 0x10) then - mainmemory.write_u8(0x0637, 1) - end -end - -h_window = forms.newform(345, 205, "RBI Lua"); - -label_p1switch = forms.label(h_window, "Player 1", 10, 5); - -label_p1switch = forms.label(h_window, "Switch Player Hand", 10, 35); -h_toggleP1L = forms.button(h_window, "Left", SwitchP1LHand, 10, 60, 50, 23); -h_toggleP1R = forms.button(h_window, "Right", SwitchP1RHand, 70, 60, 50, 23); -label_p1switch = forms.label(h_window, "Batter Power", 10, 100); -h_toggleP1R = forms.button(h_window, "More!", P1BoostHitter, 10, 125, 50, 23); -h_toggleP1R = forms.button(h_window, "Less", P1DropHitter, 70, 125, 50, 23); - -label_p2switch = forms.label(h_window, "Player 2", 160, 5); -label_p2switch = forms.label(h_window, "Switch Player Hand", 160, 35); -h_toggleP2L = forms.button(h_window, "Left", SwitchP2LHand, 160, 60, 50, 23); -h_toggleP2R = forms.button(h_window, "Right", SwitchP2RHand, 160, 60, 50, 23); -label_p2switch = forms.label(h_window, "Batter Power", 160, 100); -h_toggleP2R = forms.button(h_window, "More!", P2BoostHitter, 160, 125, 50, 23); -h_toggleP2R = forms.button(h_window, "Less", P2DropHitter, 220, 125, 50, 23); - - - - -while true do - -mainmemory.write_u8(0x0726, 0) --Turn of inning music -mainmemory.write_u8(0x0727, 0) -mainmemory.write_u8(0x0728, 0) -mainmemory.write_u8(0x0729, 0) - -inningtb = mainmemory.read_u8(topinningAddr); -i = input.get(); - ---Switch P1 batter hands -if (i.K == true) then - SwitchP1LHand() -end - -if (i.L == true) then - SwitchP1RHand(); -end - ---Switch P2 batter hands -if (i.H == true) then - SwitchP2LHand(); -end - -if (i.J == true) then - SwitchP2RHand(); -end - -PitchingScreen = mainmemory.read_u8(PitchingScreenAddr); - -------------------------------------------------------- -if (PitchingScreen == 0x003E) then - - -pitchtype = mainmemory.read_u8(pitchtypeAddr); - ---What the pitcher will pitch -if (pitchtype == 0) then - gui.text(0,0,"Sinker!!", nil, nil, "bottomright"); -end -if (pitchtype == 2) then - gui.text(0,0, "Fast Ball", nil, nil, "bottomright") -end -if (pitchtype == 1) then - gui.text(0,0,"Regular Pitch", nil, nil, "bottomright") -end - ---Top of Inning -if (inningtb == 0) then - gui.text(0,0, "Health " .. mainmemory.read_u8(0x061D), nil, nil, "topright") - gui.text(0,12,"Drop " .. mainmemory.read_u8(0x0617) % 16, nil, nil, "topright") - gui.text(0,24,"CurveL " .. mainmemory.read_u8(0x061C) / 16, nil, nil, "topright") - gui.text(0,36,"CurveR " .. mainmemory.read_u8(0x061C) % 16, nil, nil, "topright") - gui.text(0,48,"Fast SP " .. mainmemory.read_u8(0x061B), nil, nil, "topright") - gui.text(0,60,"Reg SP " .. mainmemory.read_u8(0x061A), nil, nil, "topright") - gui.text(0,72,"Sink SP " .. mainmemory.read_u8(0x0619), nil, nil, "topright") - - P1currPower = mainmemory.read_u8(P1currHitterPowerAddr) + (mainmemory.read_u8(P1currHitterPowerAddr+1) * 256); - gui.text(0,108, "Power: " .. P1currPower, nil, nil, "topright"); - P1currSpeed = mainmemory.read_u8(P1currSpeedAddr); - gui.text(0,120, "Speed: " .. P1currSpeed, nil, nil, "topright"); - P1currCt = mainmemory.read_u8(P1currContactAddr); - gui.text(0,132, "Contact: " .. P1currCt, nil, nil, "topright"); -end - ---Bottom of Inning -if (inningtb == 0x10) then - gui.text(0,0,"Health " .. mainmemory.read_u8(0x060D), nil, nil, "topright") - gui.text(0,12,"Drop " .. mainmemory.read_u8(0x0607) % 16, nil, nil, "topright") - gui.text(0,24,"CurveL " .. mainmemory.read_u8(0x060C) / 16, nil, nil, "topright") - gui.text(0,36,"CurveR " .. mainmemory.read_u8(0x060C) % 16, nil, nil, "topright") - gui.text(0,48,"Fast SP " .. mainmemory.read_u8(0x060B), nil, nil, "topright") - gui.text(0,60,"Reg SP " .. mainmemory.read_u8(0x060A), nil, nil, "topright") - gui.text(0,72,"Sink SP " .. mainmemory.read_u8(0x0609), nil, nil, "topright") - - P2currPower = mainmemory.read_u8(P2currHitterPowerAddr) + (mainmemory.read_u8(P2currHitterPowerAddr+1) * 256); - gui.text(0,108, "Power: " .. P2currPower, nil, nil, "topright"); - P2currSpeed = mainmemory.read_u8(P2currSpeedAddr); - gui.text(0,120, "Speed: " .. P2currSpeed, nil, nil, "topright"); - P2currCt = mainmemory.read_u8(P2currContactAddr); - gui.text(0,132, "Contact: " .. P2currCt, nil, nil, "topright"); -end - -end -------------------------------------------------------- - -if (PitchingScreen == 0x0036) then - -p1Outs = mainmemory.read_u8(p1OutsAddr); -gui.text(0,0, "Outs " .. p1Outs, nil, nil, "topright"); - -end -------------------------------------------------------- - -emu.frameadvance() - -end \ No newline at end of file diff --git a/Assets/Lua/NES/SMB2U.lua b/Assets/Lua/NES/SMB2U.lua deleted file mode 100644 index 1ff4b72906..0000000000 --- a/Assets/Lua/NES/SMB2U.lua +++ /dev/null @@ -1,175 +0,0 @@ --- Super Mario Bros. 2 USA - Grids & Contents (Unfinished) --- Super Mario Bros. 2 (U) (PRG0) [!].nes --- Written by QFox --- 31 July 2008 - --- shows (proper!) grid and contents. disable grid by setting variable to false --- shows any non-air grid's tile-id --- Slow! Will be heavy on lighter systems - - - -local angrybirdo = false; -- makes birdo freak, but can skew other creatures with timing :) -local drawgrid = false; -- draws a green grid - -local function box(x1,y1,x2,y2,color) - -- gui.text(50,50,x1..","..y1.." "..x2..","..y2); - gui.drawNew() - if (x1 > 0 and x1 < 0xFF and x2 > 0 and x2 < 0xFF and y1 > 0 and y1 < 239 and y2 > 0 and y2 < 239) then - gui.drawRectangle(x1,y1,x2,y2,color); - end; - gui.drawFinish() -end; -local function text(x,y,str) - if (x > 0 and x < 0xFF and y > 0 and y < 240) then - --gui.text(x,y,str); - end; -end; -local function toHexStr(n) - local meh = "%X"; - return meh:format(n); -end; - -while (true) do - if (angrybirdo and mainmemory.read_u8(0x0010) > 0x81) then memory.writebyte(0x0010, 0x6D); end; -- birdo fires eggs constantly :p - - -- px = horzizontal page of current level - -- x = page x (relative to current page) - -- rx = real x (relative to whole level) - -- sx = screen x (relative to viewport) - local playerpx = mainmemory.read_u8(0x0014); - local playerpy = mainmemory.read_u8(0x001E); - local playerx = mainmemory.read_u8(0x0028); - local playery = mainmemory.read_u8(0x0032); - local playerrx = (playerpx*0xFF)+playerx; - local playerry = (playerpy*0xFF)+playery; - local playerstate = mainmemory.read_u8(0x0050); - local screenoffsetx = mainmemory.read_u8(0x04C0); - local screenoffsety = mainmemory.read_u8(0x00CB); - - local playersx = (playerx - screenoffsetx); - if (playersx < 0) then playersx = playersx + 0xFF; end; - - local playersy = (playery - screenoffsety); - if (playersy < 0) then playersy = playersy + 0xFF; end; - - if (playerstate ~= 0x07) then - box(playersx, playersy, playersx+16, playersy+16, "green"); - end; - - if (mainmemory.read_u8(0x00D8) == 0) then -- not scrolling vertically - -- show environment - -- i have playerrx, which is my real position in this level - -- i have the level, which is located at 0x6000 (the SRAM) - -- each tile (denoted by one byte) is 16x16 pixels - -- each screen is 15 tiles high and about 16 tiles wide - -- to get the right column, we add our playerrx/16 to 0x6000 - -- to be exact: - -- 0x6000 + (math.floor(playerrx/16) * 0xF0) + math.mod(playerx,0x0F) - - local levelstart = 0x6000; -- start of level layout in RAM - - -- ok, here we have two choices. either this is a horizontal level or - -- it is a vertical level. We have no real way of checking this, but - -- luckily levels are either horizontal or vertical :) - -- so there are three possibilities - -- 1: you're in 0:0, no worries - -- 2: you're in x:0, you're in a horizontal level - -- 3: you're in 0:y, you're in a vertical level - - - local addleftcrap = math.mod(screenoffsetx,16)*-1; -- works as padding to keep the grid aligned - local leftsplitrx = (mainmemory.read_u8(0x04BE)*0x100) + (screenoffsetx + addleftcrap); -- column start left. add addleftcrap to iterative stuff to build up - local addtopcrap = math.mod(screenoffsety,15); -- works as padding to keep the grid aligned - local columns = math.floor(leftsplitrx/16); -- column x of the level is on the left side of the screen - - if (drawgrid) then -- print grid? - for i=0,15 do - -- text(addleftcrap+(i*16)-1, 37, toHexStr(columns+i)); -- print colnumber in each column - for j=0,17 do - box(addleftcrap+(i*16), addtopcrap+(j*16), addleftcrap+(i*16)+16, addtopcrap+(j*16)+16, "green"); -- draw green box for each cell - end; - end; - end; - - -- 42=mushroom if you go sub - -- 45=small - -- 44=big - -- 49=subspace - -- 6c=pow - -- 4e=cherry - - local topsplitry = (screenoffsety); - - -- starting page (might flow into next page). if the number of columns - -- is > 16, its a horizontal level, else its a vertical level. in either - -- case, the other will not up this value. - local levelpage = - levelstart + - ((math.floor(columns/16))*0xF0) + - (mainmemory.read_u8(0x00CA)*0x100) + - topsplitry; - local levelcol = math.mod(columns,16); -- this is our starting column - - --text(10,150,toHexStr(topsplitry).." "..toHexStr(levelcol).." "..toHexStr(levelpage+levelcol).." "..toHexStr(leftsplitrx)); - - for j=0,15 do -- 16 columns - if (levelcol + j > 15) then -- go to next page - levelpage = levelpage + 0xF0; - levelcol = -j; - end; - for i=0,14 do -- 15 rows - local tile = mainmemory.read_u8(levelpage+(levelcol+j)+(i*0x10)); - if (tile ~= 0x40) then - text(-2+addleftcrap+(j*16),5+(i*16),toHexStr(tile)); - end; - end; - end; - end; -- not scrolling if - - -- print some generic stats - text(2,10,"x:"..toHexStr(screenoffsetx)); - text(2,25,"y: "..toHexStr(screenoffsety)); - text(230,10,mainmemory.read_u8(0x04C1)); - text(100,10,"Page: "..playerpx..","..playerpy); - text(playersx,playersy,playerrx.."\n"..playery); - - -- draw enemy info - local startpx = 0x0015; - local startpy = 0x001F; - local startx = 0x0029; - local starty = 0x0033; - local drawn = 0x0051; - local type = 0x0090; - for i=0,9 do - local estate = mainmemory.read_u8(drawn+i); - if (estate ~= 0) then - local ex = mainmemory.read_u8(startx+i); - local epx = mainmemory.read_u8(startpx+i); - local ey = mainmemory.read_u8(starty+i); - local epy = mainmemory.read_u8(startpy+i); - local erx = (epx*0xFF)+ex; - local ery = (epy*0xFF)+ey; - local esx = (ex - screenoffsetx); - if (esx < 0) then esx = esx + 0xFF; end; - local esy = (ey - screenoffsety); - if (esy < 0) then esy = esy + 0xFF; end; - - --text(10, 20+(16*i), i..": "..esx.." "..erx); -- show enemy position list - - -- show enemy information - if ((erx > playerrx-127) and erx < (playerrx+120)) then - --text(esx,esy,erx); -- show level x pos above enemy - local wtf = "%X"; - text(esx,esy,wtf:format(mainmemory.read_u8(type+i))); -- show enemy code - if (estate == 1 and i < 5) then - box(esx, esy, esx+16, esy+16, "red"); - else - box(esx, esy, esx+16, esy+16, "blue"); - end; - end; - end; - end; -- enemy info - - emu.frameadvance(); -end; \ No newline at end of file diff --git a/Assets/Lua/NES/Simons Quest.lua b/Assets/Lua/NES/Simons Quest.lua deleted file mode 100644 index 710939a5e6..0000000000 --- a/Assets/Lua/NES/Simons Quest.lua +++ /dev/null @@ -1,192 +0,0 @@ ---Author Pasky13 - --- Toggles -local show_hud = true -local show_elife = true -- Enemy life - --- Player -local px = 0x348 -local py = 0x324 -local pl = 0x80 -local ph = 0x48 -local pe = 0x46 -local pt = 0x85 - --- Enemy -local el = 0x4C2 -local ex = 0x348 -local ey = 0x324 -local oob = 0x3C6 -local point = 0x3FC - -local xm -local ym - -local function hex(val) - val = string.format("%X",val) - return val -end - -function findbit(p) - return 2 ^ (p - 1) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -memory.usememorydomain("PRG ROM") - -local function formatstring(adr) - local str - if string.len(string.format("%X",mainmemory.read_u8(adr+1))) == 1 then - str = "0" .. string.format("%X", mainmemory.read_u8(adr+1)) - else - str = string.format("%X", mainmemory.read_u8(adr+1)) - end - if adr == pt then - str = str .. ":" - end - if string.len(string.format("%X",mainmemory.read_u8(adr))) == 1 then - str = str .. "0" .. string.format("%X",mainmemory.read_u8(adr)) - else - str = str .. string.format("%X", mainmemory.read_u8(adr)) - end - return str -end - -local function buildbox(i) - local offset1 = mainmemory.read_u8(0x3B4 + i) * 2 - local pointer1 = memory.read_u8(0x4AC0 + offset1) + (memory.read_u8(0x4AC1 + offset1) * 0x100) - local offset2 = mainmemory.read_u8(0x3FC + i) - - if offset2 > 0 then - offset2 = offset2 - 1 - end - - local offset3 = memory.read_u8(pointer1 + offset2 - 0x4000) - local offset3 = ((offset3 * 2) + offset3) % 0x100 - local box = { memory.read_s8(0x4B7E + offset3), memory.read_u8(0x4B7F + offset3),memory.read_u8(0x4B80 + offset3) } -- yoff/yrad/xrad - - return box -end - -local function player() - local x = mainmemory.read_u8(px) - local y = mainmemory.read_u8(py) - - gui.drawBox(x - 6,y + 3 - 0x0A,x + 6,y + 3 + 0x0A,0xFF0000FF,0x400000FF) - - -- Whip - if mainmemory.read_u8(0x445) == 3 then - local wxoff = 0x16 - local wyoff = -4 - local wxrad - local wyrad = 4 - local woff = mainmemory.read_u8(0x434) - if mainmemory.read_u8(0x420) == 0 then - wxoff = wxoff * -1 - end - wxrad = memory.read_u8(0x4BDD + woff) - gui.drawBox(x+wxoff-wxrad,y+wyoff-wyrad,x+wxoff+wxrad,y+wyoff+wyrad,0xFFFFFFFF,0x40FFFFFF) - end - -end - -local function objects() - local x - local y - local l - local box - local active - local fill - local outl - local isoob - local etype - for i = 2,19,1 do - active = mainmemory.read_u8(0x3D8 + i) - isoob = mainmemory.read_u8(oob + i) - etype = mainmemory.read_u8(0x3B4 + i) - - if etype > 0 and etype ~= 0x43 and etype ~= 0x1E and etype ~= 0x2A then - box = buildbox(i) - x = mainmemory.read_u8(ex + i) - y = mainmemory.read_u8(ey + i) - l = mainmemory.read_u8(el + i) - if hasbit(active,findbit(1)) and not hasbit(active,findbit(8)) then -- Enemy - - if bit.rshift(bit.band(isoob,0xF0),4) ~= 8 and bit.rshift(bit.band(isoob,0xF0),4) ~= 4 then -- If not offscreen - if show_elife == true then - gui.text((x-8) * xm,(y-28) * ym,"HP: " .. l) - end - end - fill = 0x40FF0000 - outl = 0xFFFF0000 - elseif hasbit(active,findbit(8)) and hasbit(active,findbit(1)) then -- Hidden enemy, no active box - outl = 0x40FF0000 - fill = 0x00FF0000 - - if bit.rshift(bit.band(isoob,0xF0),4) ~= 8 and bit.rshift(bit.band(isoob,0xF0),4) ~= 4 then -- If not offscreen - if show_elife == true then - gui.text((x-8) * xm,(y-28) * ym,"HP: " .. l) - end - end - elseif hasbit(active,findbit(8)) and hasbit(active,findbit(2)) then -- Simon's projectiles - outl = 0xFF00FFFF - fill = 0x4000FFFF - elseif not hasbit(active,findbit(8)) and hasbit(active,(2)) then -- Enemy projectile - outl = 0xFFFFFF00 - fill = 0x40FFFF00 - elseif hasbit(active,findbit(8)) and not hasbit(active,findbit(2)) then -- Inactive box - outl = 0 - fill = 0 - elseif hasbit(active,findbit(7)) then -- NPC - outl = 0xFFFF00FF - fill = 0x40FF00FF - elseif hasbit(active,findbit(3)) then -- Item pickups - outl = 0xFFFFA500 - fill = 0x40FFA500 - end - if bit.rshift(bit.band(isoob,0xF0),4) ~= 8 and bit.rshift(bit.band(isoob,0xF0),4) ~= 4 then -- If not offscreen - gui.drawBox(x - box[3],y+box[1]+box[2],x+box[3],y+box[1]-box[2],outl,fill) - end - - end - - end - -end - -local function HUD() - local l = mainmemory.read_u8(pl) - local h = 0 - local e = 0 - local t = 0 - - -- Hearts - h = formatstring(ph) - -- Experience - e = formatstring(pe) - -- Time - t = formatstring(pt) - - gui.text(14 * xm, 9 * ym, l) - gui.text((256 - 40) * xm, 9 * ym,"H: " .. h) - gui.text((256 - 40) * xm, 17 * ym,"E: " .. e) - gui.text((256 - 85) * xm, 9 * ym, "T: " .. t) -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - if show_hud == true then - HUD() - end - player() - objects() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Snake Rattle N' Roll.lua b/Assets/Lua/NES/Snake Rattle N' Roll.lua deleted file mode 100644 index 3fcf34fb9e..0000000000 --- a/Assets/Lua/NES/Snake Rattle N' Roll.lua +++ /dev/null @@ -1,37 +0,0 @@ --- Snake Rattle N' Roll 'Simple HUD Script' --- Retrieved from http://tasvideos.org/GameResources/NES/SnakeRattleNRoll.html - -dim1speed = 0 -dim2speed = 0 -xspeed = 0 -xsubspeed = 0 -yspeed = 0 -ysubspeed = 0 -xm = 0 -ym = 0 - -function stuff() - xspeed = mainmemory.read_u8(0x417) - xsubspeed = mainmemory.read_u8(0x419) - if (xspeed == 255) then xspeed = -1 end - - yspeed = mainmemory.read_u8(0x41b) - ysubspeed = mainmemory.read_u8(0x41d) - if (yspeed == 255) then yspeed = -1 end - - gui.text(1 * xm,19 * ym,"L:"..mainmemory.read_u8(0x67) % 16) -- left axis - gui.text(1 * xm,29 * ym,"R:"..mainmemory.read_u8(0x69) % 16) -- right axis - gui.text(1 * xm,39 * ym,"H:"..mainmemory.read_u8(0x6b) % 16) -- height axis - gui.text(30 * xm,19 * ym, "LVel:"..(xspeed * 256) + xsubspeed + (yspeed * 256) + ysubspeed) - gui.text(30 * xm,29 * ym,"RVel:"..(xspeed * 256) + xsubspeed - (yspeed * 256) - ysubspeed) -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end -while true do - scaler() - stuff() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Super C.lua b/Assets/Lua/NES/Super C.lua deleted file mode 100644 index 0760e45031..0000000000 --- a/Assets/Lua/NES/Super C.lua +++ /dev/null @@ -1,142 +0,0 @@ --- Author Pasky13 - ---Player -local px = 0x54C -local py = 0x532 - ---Player projectiles -local projxbase = 0x588 -local projybase = 0x578 - ---Enemies -local ex = 0x53C -local ey = 0x522 - -local xm -local ym - -local function draw_axis(x,y,color) - gui.drawLine(x,y-4,x,y+4,color) - gui.drawLine(x-4,y,x+4,y,color) -end - -local function sign(val) - if val > 0x7F then - val = 256 + (val * -1) - end - return val -end - -memory.usememorydomain("PRG ROM") - -local function player() - -- Player 1 - if mainmemory.read_u8(0xC6) ~= 0 then - local x = mainmemory.read_u8(px) - local y = mainmemory.read_u8(py) - draw_axis(x,y,0xFF0000FF) - end - -- Player 2 - if mainmemory.read_u8(0xC7) ~= 0 then - x = mainmemory.read_u8(px+1) - y = mainmemory.read_u8(py+1) - draw_axis(x,y,0xFF0000FF) - end -end - -local function bullets() - -- P1 - if mainmemory.read_u8(0xC6) ~= 0 then - for i = 0,9,1 do - local x = mainmemory.read_u8(projxbase + i) - local y = mainmemory.read_u8(projybase + i) - - if mainmemory.read_u8(0x638 + i) > 0 then - gui.drawBox(x-2,y-2,x+2,y+2,0xFFFFFFFF,0x40FFFFFF) - end - end - end - - -- P2 - if mainmemory.read_u8(0xC7) ~= 0 then - for i = 0,9,1 do - local x = mainmemory.read_u8(0x592 + i) - local y = mainmemory.read_u8(0x582 + i) - - if mainmemory.read_u8(0x642 + i) > 0 then - gui.drawBox(x-2,y-2,x+2,y+2,0xFFFFFFFF,0x40FFFFFF) - end - end - end -end - - -local function enemies() - local active - local etype - local fill - local outl - for i = 0,0x0D,1 do - active = mainmemory.read_u8(0x508+i) -- sprite frame - etype = mainmemory.read_u8(0x73A + i) - if etype == 4 or etype == 0x0C then - fill = 0xFF00FF00 - outl = 0x3500FF00 - else - fill = 0xFFFF0000 - outl = 0x35FF0000 - end - - local x = mainmemory.read_u8(ex + i) - local y = mainmemory.read_u8(ey + i) - - -- Player 1 collision detection - if mainmemory.read_u8(0xC6) ~= 0 then - if active > 0 then - local offset = ((mainmemory.read_u8(0xC6) + etype + 1) % 0x100) - local xoff = sign(memory.read_u8(0x6000 + offset + 1)) + 1 - local xrad = memory.read_u8(0x6000 + offset + 3) - local yoff = sign(memory.read_u8(0x6000 + offset)) + 1 - local yrad = memory.read_u8(0x6000 + offset + 2) - gui.drawBox(x-xoff,y-yoff,x-xoff+xrad,y-yoff+yrad,fill,outl) - - end - end - - -- Player 2 collision detection - if mainmemory.read_u8(0xC7) ~= 0 then - if active > 0 then - local offset = ((mainmemory.read_u8(0xC7) + etype + 1) % 0x100) - local xoff = sign(memory.read_u8(0x6000 + offset + 1)) + 1 - local xrad = memory.read_u8(0x6000 + offset + 3) - local yoff = sign(memory.read_u8(0x6000 + offset)) + 1 - local yrad = memory.read_u8(0x6000 + offset + 2) - gui.drawBox(x-xoff,y-yoff,x-xoff+xrad,y-yoff+yrad,fill,outl) - end - end - - -- Projectile collision - if active > 0 and etype ~= 4 and etype ~= 0x0C then - local poffset = etype + 0xA0 - local pxoff = sign(memory.read_u8(0x6000 + poffset + 1)) + 1 - local pxrad = memory.read_u8(0x6000 + poffset + 3) - 2 - local pyoff = sign(memory.read_u8(0x6000 + poffset)) + 1 - local pyrad = memory.read_u8(0x6000 + poffset + 2) - 2 - gui.drawBox(x-pxoff,y-pyoff,x-pxoff+pxrad,y-pyoff+pyrad,0xFFFFFF00,0x40FFFF00) - end - - end -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - player() - bullets() - enemies() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Super Mario Brothers 3 (USA) (Rev A).lua b/Assets/Lua/NES/Super Mario Brothers 3 (USA) (Rev A).lua deleted file mode 100644 index 28c23149e5..0000000000 --- a/Assets/Lua/NES/Super Mario Brothers 3 (USA) (Rev A).lua +++ /dev/null @@ -1,246 +0,0 @@ --- Super Mario Bros. 3 (USA) Rev A collision box viewer V1.0 --- For use with Bizhawk --- Author: Pasky (June 22, 2015) --- TODO: --- Find coin and hidden block collisions - -memory.usememorydomain("System Bus") - -local camx -local camy - -local TOGGLE_MARIO = "ON" -local TOGGLE_OBJECTS = "ON" --Enemies etc... -local TOGGLE_PROJECTILES = "ON" -local TOGGLE_OTHERATTACKS = "ON" -- Tanooki tail etc... -local TOGGLE_UI = "ON" -local K1,K2,K3,K4,K5,K6 - - -function axis(x,y,color,size) - if size == nil then - size = 2 - end - gui.drawLine(x+size,y,x-size,y,color) - gui.drawLine(x,y+size,x,y-size,color) - gui.drawPixel(x,y,0xFF000000) -end - - -local function camera() - camx = memory.read_u8(0xFD) + (memory.read_u8(0x12) * 0xFF) - camy = memory.read_u8(0xFC) + (memory.read_u8(0x12) * 0xFF) -end - ---Player -local function player() - if TOGGLE_MARIO == "ON" then - if memory.read_u8(0xD87F) == 0x20 and memory.read_u8(0xD880) == 0x7B and memory.read_u8(0xD881) == 0xD9 then -- Bank check (BANK #0) - local x = memory.read_u8(0xAB) - local y = memory.read_u8(0xB4) - local x1 = memory.read_u8(0x02) - local y1 = memory.read_u8(0x06) - local x2 = x1 + memory.read_u8(0x03) - local y2 = y1 + memory.read_u8(0x07) - gui.drawBox(x1,y1,x2,y2,0xFF0000FF,0x400000FF) - end - end -end - ---Enemies hit boxes -local function objects() - if TOGGLE_OBJECTS == "ON" then - if memory.read_u8(0xD855) == 0xA5 and memory.read_u8(0xD856) == 0xED and memory.read_u8(0xD857) == 0xF0 and memory.read_u8(0xD858) == 0x09 then -- Bank check (BANK #0) - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - local x = memory.read_u8(0xAC + xreg) - local y = memory.read_u8(0xB5 + xreg) - local x1 = memory.read_u8(0x00) - local y1 = memory.read_u8(0x04) - local x2 = x1 + memory.read_u8(0x01) - local y2 = y1 + memory.read_u8(0x05) - gui.drawBox(x1,y1,x2,y2,0xFFFF0000,0x40FF0000) - end - end -end - ---Projectiles -local function eprojectiles() - if TOGGLE_PROJECTILES == "ON" then - if memory.read_u8(0xB7E4) == 0xBD and memory.read_u8(0xB7E5) == 0xBF and memory.read_u8(0xB7E6) == 0x05 then -- Bank check (BANK #3) - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - local x = bit.band(memory.read_u8(0x05C9 + xreg) - camx,0xFF) + 6 - local y = bit.band(memory.read_u8(0x05BF + xreg) - camy,0xFF) + 8 - axis(x,y,0xFFFFFFFF,4) - - local mx = memory.read_u8(0xAB) - local my = memory.read_u8(0xB4) - x1 = mx - y1 = my + memory.read_u8(0xB6DE + yreg) - x2 = x1 + 0x10 - y2 = y1 + memory.read_u8(0xB6E0 + yreg) - gui.drawBox(x1,y1,x2,y2,0xFFFFFF00,0x40FFFF00) - end - end -end - ---Player Projectiles -local function projectiles() - if TOGGLE_PROJECTILES == "ON" then - if memory.read_u8(0xA69A) == 0xDD and memory.read_u8(0xA69B) == 0x6D and memory.read_u8(0xA69C) == 0xA6 then -- Bank check (BANK #3) - local xreg = emu.getregister("X") - local yreg = emu.getregister("Y") - local x = memory.read_u8(0xAC + yreg) - local y = memory.read_u8(0xB5 + yreg) - axis(memory.read_u8(0x0D),memory.read_u8(0x0C),0xFFFFFFFF,4) - local x1 = x - local y1 = y - local x2 = x1 + memory.read_u8(0xA67D + xreg) - local y2 = y1 + memory.read_u8(0xA66D + xreg) - gui.drawBox(x1,y1,x2,y2,0xFFFFFF00,0x40FFFF00) - end - end -end - ---Player Other Attacks -local function other() - if TOGGLE_OTHERATTACKS == "ON" then - if memory.read_u8(0xDB4E) == 0x20 and memory.read_u8(0xDB4F) == 0x54 and memory.read_u8(0xDB50) == 0xDD then -- Bank check (BANK #0) - --Tail - local x = memory.read_u8(0xAB) - local y = memory.read_u8(0xB4) - local x1 = memory.read_u8(0x02) - local y1 = memory.read_u8(0x06) - local x2 = x1 + memory.read_u8(0x03) - local y2 = y1 + memory.read_u8(0x07) - gui.drawBox(x1,y1,x2,y2) - - --Enemy vuln (tail) - local xreg = emu.getregister("X") - local yreg = bit.band(memory.read_u8(0xC2F4 + memory.read_u8(0x0671 + xreg)),0xF) * 4 - x = memory.read_u8(0xAC + xreg) - y = memory.read_u8(0xB5 + xreg) - x1 = x + memory.read_u8(0xC2B4 + yreg) - y1 = y + memory.read_u8(0xC2B6 + yreg) - x2 = x1 + memory.read_u8(0xC2B5 + yreg) - y2 = y1 + memory.read_u8(0xC2B7 + yreg) - gui.drawBox(x1,y1,x2,y2,0xFFFFFF00,0x40FFFF00) - end - end -end - -local function toggle(option) - if option == "ON" then - option = "OFF" - else - option = "ON" - end - return option -end - -local function PowerCycle() - local powerup = memory.read_u8(0xED) - if powerup == 0x06 then - powerup = 0 - else - powerup = powerup + 1 - end - if powerup == 0x02 then - memory.write_u8(0x7D2,0x27) - memory.write_u8(0x7D4,0x16) - else - memory.write_u8(0x7D2,0x16) - memory.write_u8(0x7D4,0x0F) - end - memory.write_u8(0xED,powerup) -end - -local function check_inputs() - local inputs = input.get() - -- Mario boxes - if inputs["NumberPad1"] == true then - K1 = true - end - if inputs["NumberPad1"] == nil and K1 == true then -- Key released - TOGGLE_MARIO = toggle(TOGGLE_MARIO) - K1 = false - end - -- Enemy boxes - if inputs["NumberPad2"] == true then - K2 = true - end - if inputs["NumberPad2"] == nil and K2 == true then - TOGGLE_OBJECTS = toggle(TOGGLE_OBJECTS) - K2 = false - end - -- Projectile boxes - if inputs["NumberPad3"] == true then - K3 = true - end - if inputs["NumberPad3"] == nil and K3 == true then - TOGGLE_PROJECTILES = toggle(TOGGLE_PROJECTILES) - K3 = false - end - -- Other attacks - if inputs["NumberPad4"] == true then - K4 = true - end - if inputs["NumberPad4"] == nil and K4 == true then - TOGGLE_OTHERATTACKS = toggle(TOGGLE_OTHERATTACKS) - K4 = false - end - - -- UI - if inputs["Home"] == true then - K5 = true - end - if inputs["Home"] == nil and K5 == true then - TOGGLE_UI = toggle(TOGGLE_UI) - K5 = false - end - - --Powerup cycling - if inputs["Insert"] == true then - K6 = true - end - if inputs["Insert"] == nil and K6 == true then - PowerCycle() - K6 = false - end -end - -local function draw_UI() - check_inputs() - if TOGGLE_UI == "ON" then - gui.drawBox(154,30,255,92,0xFF000000,0xA0000000) - gui.drawText(156,28,"MARIO",0xFFFFFFFF,10,"Segoe UI") - gui.drawText(190,28,"(NUM1)",0xFFFF0000,10,"Segoe UI") - gui.drawText(226,28,"["..TOGGLE_MARIO.."]",0xFFFFFF00,10,"Segoe UI") - gui.drawText(156,38,"ENEMY",0xFFFFFFFF,10,"Segoe UI") - gui.drawText(226,38,"["..TOGGLE_OBJECTS.."]",0xFFFFFF00,10,"Segoe UI") - gui.drawText(190,38,"(NUM2)",0xFFFF0000,10,"Segoe UI") - gui.drawText(156,48,"PROJ.",0xFFFFFFFF,10,"Segoe UI") - gui.drawText(226,48,"["..TOGGLE_PROJECTILES.."]",0xFFFFFF00,10,"Segoe UI") - gui.drawText(190,48,"(NUM3)",0xFFFF0000,10,"Segoe UI") - gui.drawText(156,58,"OTHER",0xFFFFFFFF,10,"Segoe UI") - gui.drawText(226,58,"["..TOGGLE_OTHERATTACKS.."]",0xFFFFFF00,10,"Segoe UI") - gui.drawText(190,58,"(NUM4)",0xFFFF0000,10,"Segoe UI") - gui.drawText(156,68,"POWERUP",0xFFFFFFFF,10,"Segoe UI") - gui.drawText(214,68,"(INSERT)",0xFFFF0000,10,"Segoe UI") - gui.drawText(156,78,"TOGGLE UI",0xFFFFFFFF,10,"Segoe UI") - gui.drawText(214,78,"(HOME)",0xFFFF0000,10,"Segoe UI") - end -end - -event.onmemoryexecute(player,0xD87F) -event.onmemoryexecute(objects,0xD855) -event.onmemoryexecute(projectiles,0xA69A) -event.onmemoryexecute(eprojectiles,0xB7E4) -event.onmemoryexecute(other,0xDB4E) - -while true do - draw_UI() - camera() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/Vice Project Doom.lua b/Assets/Lua/NES/Vice Project Doom.lua deleted file mode 100644 index fa09c9e103..0000000000 --- a/Assets/Lua/NES/Vice Project Doom.lua +++ /dev/null @@ -1,55 +0,0 @@ ---Vice Project Doom Collision Box Viewer ---Author Pasky13 - -local camx - -local function hex(val) - val = string.format("%X",val) - return val -end - -memory.usememorydomain("PRG ROM") - -local function camera() - camx = mainmemory.read_u8(0xB) + (mainmemory.read_u8(0xC) * 256) -end - -local function player() - local x = mainmemory.read_u8(0x1F0) + (mainmemory.read_u8(0x200) * 256) - camx - local y = mainmemory.read_u8(0x210) - local offset = mainmemory.read_u8(0x2A0) * 4 - local yoff = memory.read_s8(0x1C4C0 + offset + 1) - local yrad = memory.read_u8(0x1C4C0 + offset + 3) - local xoff = memory.read_s8(0x1C4C0 + offset) - local xrad = memory.read_u8(0x1C4C0 + offset + 2) - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad, 0xFF0000FF,0x350000FF) -end - -local function enemies() - local active = 0x161 - local base = 0x1F1 - for i = 0,15,1 do - if mainmemory.read_u8(active + i) ~= 0 then - local offset = mainmemory.read_u8(0x2A1 + i) * 4 - local x = mainmemory.read_u8(0x1F1 + i) + (mainmemory.read_u8(0x201 + i) * 256) -camx - local y = mainmemory.read_u8(0x211 + i) - local yoff = memory.read_s8(0x1C4C0 + offset + 1) - local yrad = memory.read_u8(0x1C4C0 + offset + 3) - local xoff = memory.read_s8(0x1C4C0 + offset) - local xrad = memory.read_u8(0x1C4C0 + offset + 2) - if i == 1 or i == 2 then -- Player's weapon - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad, 0xFFFFFFFF,0x35FFFFFF) - else - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad, 0xFFFF0000,0x35FF0000) - end - end - end - -end - -while true do - camera() - player() - enemies() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/NES/ZapperTarget.lua b/Assets/Lua/NES/ZapperTarget.lua deleted file mode 100644 index 1c74748464..0000000000 --- a/Assets/Lua/NES/ZapperTarget.lua +++ /dev/null @@ -1,20 +0,0 @@ --- Draws a target on screen representing the x,y coordinates of the Zapper plugged into the 2nd port - -while true do - buttons = joypad.get(); - x = buttons["P2 Zapper X"]; - y = buttons["P2 Zapper Y"]; - fired = buttons["P2 Fire"]; - - color = "white"; - if fired then - color = "red"; - end - - gui.drawLine(x - 4, y + 4, x + 4, y - 4, color); - gui.drawLine(x + 4, y + 4, x - 4, y - 4, color); - gui.drawEllipse(x - 5, y - 5, 10, 10, color); - gui.drawPixel(x, y, "red"); - gui.drawEllipse(x - 1, y - 1, 2, 2, "red"); - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/PCE/Castlevania_Rondo_of_Blood.lua b/Assets/Lua/PCE/Castlevania_Rondo_of_Blood.lua deleted file mode 100644 index 81b13e91df..0000000000 --- a/Assets/Lua/PCE/Castlevania_Rondo_of_Blood.lua +++ /dev/null @@ -1,324 +0,0 @@ ---Castlevania: Rondo of Blood - -fill = 0x64FFC8C8 -line = 0xFFFFC8C8 - -function drawObjInfo() - - for i = 0,88 do - - objX = mainmemory.read_u8(0xBC8+i) - objY = mainmemory.read_u8(0xCD0+i) - objVisibleX = mainmemory.read_u8(0xB70+i)*255 - objVisibleY = mainmemory.read_u8(0xC78+i)*255 - objDamage = mainmemory.read_u8(0x1300+i) --how much damage it will do if it collides with you - objHealth = mainmemory.read_u8(0x12A8+i-2) --something is wrong, -2 makes it right in some cases but makes others wrong - objStatus = mainmemory.read_u8(0x1250+i) --collision status - adjustedX = objX - objVisibleX - adjustedY = objY - objVisibleY - --clipping - if(adjustedX > 0 and adjustedY > 0) then - gui.text( - adjustedX * xmult, - adjustedY * ymult, - objX - .. " " .. objY --- .. " " .. "#" .. i --- .. " D" .. objDamage --- .. " HP" .. objHealth --- .. " S" .. objStatus - ) - end - end -end - -function drawHitBoxes() - - for i = 0,88 do - - objX = mainmemory.read_u8(0xBC8+i) - objY = mainmemory.read_u8(0xCD0+i) - objVisibleX = mainmemory.read_u8(0xB70+i)*255 - objVisibleY = mainmemory.read_u8(0xC78+i)*255 - adjustedX = objX - objVisibleX - adjustedY = objY - objVisibleY - objOffsetX = mainmemory.read_u8(0x1930+i) - objDirection = mainmemory.read_u8(0xAC0+i) - objUnknownY = mainmemory.read_u8(0x19E0+i) - hitSizeX = mainmemory.read_u8(0x1988+i) - hitSizeY = mainmemory.read_u8(0x1A38+i) - - if(objDirection == 1) then --9484 - objOffsetX = bit.bxor(0xFF,objOffsetX) --9488 - objOffsetX = objOffsetX+1 --948A - end - - off00 = 0 --942B - if (bit.band(0x80, objOffsetX) == 128) then --942F - of00=bit.band(0xFF,(off00-1)) --9431 - end - - hitBoxCornerX = bit.band(0xFF,(objX + objOffsetX)) --9434 - hitBoxCornerY = bit.band(0xFF,(objY + objUnknownY)) --944F - - objStatus = mainmemory.read_u8(0x1250+i)-- generally: 0 inert, 1 benign, 2 damageable/possibly damaging - - if(objStatus == 0) then - fill = 0x600000FF - line = 0xC0000000 - elseif(objStatus == 1) then - fill = 0x3C00FF00 - line = 0x8000FF00 - elseif(objStatus == 2) then - fill = 0x50FF0000 - line = 0x80FF0000 - end - - --clipping - if(adjustedX > 0 and adjustedY > 0) then - gui.drawBox( - hitBoxCornerX-hitSizeX, - hitBoxCornerY+hitSizeY, - hitBoxCornerX+hitSizeX, - hitBoxCornerY-hitSizeY, - line, - fill - ) - end - end -end - -function dispProperties(num) - - fill = 0x80FFC8C8 - - ObjDamageInfo = { - 0x13b0,--5 means is being damaged - 0x1a90,--invulnerability countdown - 0xf90,--if 0, animate. seems to be used as a counter to temporarily freeze objs when damaged - 0xb18,--flashing if equal to 0x10, white if equal to 0x86 - 0x1ae8, - 0x1f18, - 0x11f8, - 0x12a8--health - } - - for i = 1,8 do - gui.text((10+(i*20)) * xmult ,100 * ymult, mainmemory.read_u8(ObjDamageInfo[i]+num)) - end - - hitBoxInfo = { - 0x1988, - 0x1A38, - 0x1930, - 0xAC0 - } - - for i = 1,4 do - gui.text((10+(i*20)) * xmult,120 * ymult, mainmemory.read_u8(hitBoxInfo[i]+num)) - end - - ObjPositionInfo = { - 0xB70, --offscreen or not - 0xBC8, --x position - 0xC20, - 0xC78, - 0xCD0, --y position - 0xD28, - } - - for i = 1,6 do - gui.text((10+(i*20)) * xmult,140 * ymult, mainmemory.read_u8(ObjPositionInfo[i]+num)) - end - - collisionInfo = { - 0x710, --compensated x - 0x720, --compensated y - 0x730 --compensated "visible" - } - - for i = 1,3 do - gui.text((10+(i*20)) * xmult,160 * ymult, mainmemory.read_u8(collisionInfo[i]+num)) - end -end - -while true do - --Multiplier for text rendering - xmult = client.screenwidth() / 256 - ymult = client.screenheight() / 225 - line = 0xFFFFC8C8 - --display info about a given object - --dispProperties(0) - - drawHitBoxes() - drawObjInfo() - emu.frameadvance() - --invincibility cheat --- memory.writebyte(0x13B0, 0) - -end - ---[[ Notes - ---Object Damage - -A1ED LDY $33B0,X ;"can damage" -A1F0 LDA $A26D,Y -A1F3 STA $3A90,X ;invulnerability countdown -A1F6 LDA $A27D,X -A1F9 STA $2F90,X ;whether to animate the obj or not -A1FC LDA $2B18,X ;flashing or not -A1FF STA $3AE8,X -A202 LDA #$86 ;make the palette white -A204 STA $2B18,X -A207 LDA $3F18,X -A20A ORA #$03 -A20C STA $31F8,X -A20F LDA $32A8,X -A212 SEC -A213 SBC $00 ;subtract the amount of damage to do -A215 STA $32A8,X ;x is the object slot to modify - ---Where the player's health is decremented - -A1F2 LDA $33B0 ;check if the player is vulnerable -A1F5 BEQ $A234 -A1F7 LDA $33B0 -A1FA bit.band #$07 -A1FC CMP #$05 -A1FE BNE $A20B -A200 LDA $36D3 -A203 BNE $A20B -A205 STZ $33B0 -A20B LDA $98 ;player health -A20D SEC -A20E SBC $32A8 ;subtract amount of damage received -A211 STA $98 - ---Where the damage received (32A8) is set - -9546 STA $33B0,X -9549 LDA $33B0 -954C BNE $955A -954E LDA $3358,X -9551 STA $33B0 -9554 LDA $3300,X ;the amount of damage an object will deal to you -9557 STA $32A8 - ---Where the hitbox offset is calculated - -9413 LDX #$00 -9415 LDA $3250,X ;load the hitbox type -9418 BEQ $9460 ;we quit if type 0 -941A LDA $3930,X ;x offset -941D STA $01 ;store it in 01 -941F LDA $2AC0,X ;direction facing, left is 1, right is 0 -9422 BEQ $942B ;we are facing... -9424 LDA $01 ;left, load offset -9426 EOR #$FF -9428 INC -9429 STA $01 ;store the altered offset -942B STZ $00 -942D LDA $01 ;get the either altered or unaltered offset -942F BPL $9433 -9431 DEC $00 -9433 CLC -9434 ADC $2BC8,X ;add x position to either altered or unaltered offset -9437 STA $2710,X ;store that as the hitbox corner -943A LDA $2B70,X ;is the object visible -943D ADC $00 ;correct it depending on the altered x offset -943F STA $2730,X -9442 STZ $00 -9444 LDA $39E0,X -9447 BPL $944B -9449 DEC $00 -944B LDA $2CD0,X ;y position -944E CLC -944F ADC $39E0,X -9452 STA $2720,X ;store hitbox y corner -9455 LDA $2C78,X ;indicator that the object is y visible -9458 ADC $00 -945A ORA $2730,X -945D STA $2730,X -9460 INX -9461 CPX #$10 ;we can only do 16 objects -9463 BCC $9415 ;start again if we have objects left -9465 RTS -9466 STZ $33B0,X ;zero the "can damage" byte -9469 LDA $3250,X ;objStatus / collision status -946C BNE $9471 ;if the status is 0 we continue -946E JMP $9507 ;otherwise we quit - ---X and Y represent our two objects - -9471 LDA $3988,X ;x hitbox size -9474 ORA $3A38,X ;y hitbox size -9477 BNE $947C -9479 JMP $9507 -947C LDA $3930,X ;x offset -947F STA $01 -9481 LDA $2AC0,X ;objDirection -9484 BEQ $948D ;branch if we are facing right -9486 LDA $01 ;left -9488 EOR #$FF -948A INC -948B STA $01 -948D STZ $00 ;right, zero our temp byte -948F LDA $01 ;load the possibly manipulated offset -9491 BPL $9495 -9493 DEC $00 -9495 CLC -9496 ADC $2BC8,X ;add object x position to the possibly manipulated offset -9499 STA $26FF -949C LDA $2B70,X ;objVisibleX -949F ADC $00 -94A1 BNE $9507 ;quit if the result is non-zero -94A3 STZ $00 -94A5 LDA $39E0,X ;y related -94A8 BPL $94AC -94AA DEC $00 -94AC CLC -94AD ADC $2CD0,X ;obj y position -94B0 STA $2700 -94B3 LDA $2C78,X ;objVisibleY -94B6 ADC $00 -94B8 BNE $9507 -94BA LDA $3250,X ;objStatus / collision status -94BD BPL $94C2 -94BF CLY -94C0 BRA $94C4 -94C2 LDY #$0F ;16 objects max - -94C4 LDA $3250,Y ;objStatus / collision status -94C7 BEQ $9504 ;if objStatus is zero, go to the next object -94C9 LDA $2730,Y ;compensated "visible" -94CC BNE $9504 -94CE LDA $3988,X ;x hitbox size of 1st object -94D1 CLC -94D2 ADC $3988,Y ;x hitbox size of 2nd object -94D5 STA $2701 -94D8 LDA $3A38,X ;y hitbox size of 1st object -94DB CLC -94DC ADC $3A38,Y ;y hitbox size of 2nd object -94DF STA $2702 -94E2 LDA $26FF -94E5 SEC -94E6 SBC $2710,Y ;subtract compensated x position for the current object -94E9 BCS $94EE -94EB EOR #$FF -94ED INC -94EE CMP $2701 -94F1 BCS $9504 -94F3 LDA $2700 -94F6 SEC -94F7 SBC $2720,Y ;subtract compensated y position for the current object -94FA BCS $94FF -94FC EOR #$FF -94FE INC -94FF CMP $2702 -9502 BCC $9508 -9504 DEY -9505 BPL $94C4 -9507 RTS - -]] \ No newline at end of file diff --git a/Assets/Lua/PCE/Neutopia.lua b/Assets/Lua/PCE/Neutopia.lua deleted file mode 100644 index 5cc52fd7c6..0000000000 --- a/Assets/Lua/PCE/Neutopia.lua +++ /dev/null @@ -1,66 +0,0 @@ --- Neutopia (USA) Collision Box Viewer v1.0 --- Author: Pasky (6/22/2015) --- For use with Bizhawk - -memory.usememorydomain("System Bus") - -local function player() - local hp = mainmemory.read_u8(0x14c5) - local x = mainmemory.read_u8(0x1063) - local h = mainmemory.read_u8(0x112F) - local y = mainmemory.read_u8(0x10C9) - 0xA - h - local xrad = 0x6 - local yrad = 0xC - gui.drawText(1,1,"HP: " .. hp,0xFFFFFFFF,10,"Arial") - gui.drawBox(x+xrad,y+yrad,x-xrad,y-yrad,0xFF0000FF,0x400000FF) - -end - -local function enemy() - local XREG = emu.getregister("X") - local YREG = emu.getregister("Y") - local hp = mainmemory.read_u8(0x14C5 + XREG) + 1 - local x = mainmemory.read_u8(0x1063 + XREG) - local h = mainmemory.read_u8(0x112F + XREG) - local y = mainmemory.read_u8(0x10C9 + XREG) - h - local xoff = memory.read_s8(mainmemory.read_u16_le(0x0018) + YREG) - local xrad = memory.read_u8(mainmemory.read_u16_le(0x0018) + YREG - 1) - local yoff = memory.read_s8(mainmemory.read_u16_le(0x0018) + YREG + 2) - local yrad = memory.read_u8(mainmemory.read_u16_le(0x0018) + YREG + 1) - gui.drawText(x+xoff-xrad,y+yrad+yoff+4,"HP: " .. hp,0xFFFFFFFF,8,"Arial") - gui.drawBox(x+xrad,y+yoff+yrad,x-xrad,y+yoff-yrad,0xFFFF0000,0x40FF0000) -end - -local function attack() - local XREG = emu.getregister("X") - local YREG = emu.getregister("Y") - local x = mainmemory.read_u8(0x1063) - local h = mainmemory.read_u8(0x112F) - local y = mainmemory.read_u8(0x10C9) - h - local xoff = memory.read_s8(0xD453 + YREG) - local yoff = memory.read_s8(0xD45B + YREG) - local xrad = mainmemory.read_u8(0x15BE) - local yrad = mainmemory.read_u8(0x15BF) - gui.drawBox(x+xoff+xrad,y+yoff+yrad,x+xoff-xrad,y+yoff-yrad,0xFFFFFFFF,0x40FFFFFF) -end - -local function subweapon() - local XREG = emu.getregister("X") - local YREG = emu.getregister("Y") - local x = mainmemory.read_u8(0x1063 + XREG) - local h = mainmemory.read_u8(0x112F + XREG) - local y = mainmemory.read_u8(0x10C9 + XREG) - h - local xoff = memory.read_s8(mainmemory.read_u16_le(0x0018) + YREG - 1) - local yoff = memory.read_s8(mainmemory.read_u16_le(0x0018) + YREG + 1) - local yrad = memory.read_u8(mainmemory.read_u16_le(0x0018) + YREG) - local xrad = memory.read_u8(mainmemory.read_u16_le(0x0018) + YREG - 2) - gui.drawBox(x+xoff+xrad,y+yoff+yrad,x+xoff-xrad,y+yoff-yrad,0xFFFFFFFF,0x40FFFFFF) -end - -event.onmemoryexecute(attack,0x00D430) -event.onmemoryexecute(enemy,0x00D48F) -event.onmemoryexecute(subweapon,0x00D88E) -while true do - player() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Congo's Caper.lua b/Assets/Lua/SNES/Congo's Caper.lua deleted file mode 100644 index 61dd2ad3a2..0000000000 --- a/Assets/Lua/SNES/Congo's Caper.lua +++ /dev/null @@ -1,100 +0,0 @@ --- Congo Caper's Collision Box Viewer --- Author: Pasky13 - -camx = 0 -camy = 0 - -memory.usememorydomain("CARTROM") - -function findbit(p) - return 2 ^ (p - 1) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -local function RetrieveBox(obase, switch) - if switch == 1 then - pointer = mainmemory.read_u8(obase + 0x19) - elseif switch == 2 then - pointer = mainmemory.read_u8(obase + 0x18) - elseif switch == 3 then - pointer = mainmemory.read_u8(obase + 0x1A) - end - - local pointer = bit.lshift(pointer,3) - local base = 0x66962 - local box = {0, 0, 0, 0 } - box[1] = memory.read_s16_le(base + pointer) -- x1 - box[2] = memory.read_s16_le(base + pointer + 4) -- y1 - box[3] = memory.read_s16_le(base + pointer + 2) -- x2 - box[4] = memory.read_s16_le(base + pointer + 6) -- y2 - return box -end - -local function camera() - camx = mainmemory.read_u16_le(0x7E0427) - camy = mainmemory.read_u16_le(0x7E0429) -end - -local function player() - local x = mainmemory.read_u16_le(0x23) - camx - local y = mainmemory.read_u16_le(0x26) - camy - local face = mainmemory.read_u8(0x2D) - local box - local box = RetrieveBox(0x20,1) - if hasbit(face,findbit(7)) then - gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFF0000FF,0x350000FF) -- Hurt box - box = RetrieveBox(0x20,2) - gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFFFFFFFF,0x35FFFFFF) -- Hit box - else - gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFF0000FF,0x350000FF) -- Hurt box - box = RetrieveBox(0x20,2) - gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFFFFFFFF,0x35FFFFFF) -- Hit box - end -end - -local function enemies() - local ebase = 0x1100 - for i = 0,64,1 do - base = ebase + (i * 0x40) - if mainmemory.read_u8(base) > 0 then - local x = mainmemory.read_u16_le(base + 3) - camx - local y = mainmemory.read_u16_le(base + 6) - camy - - - local face = mainmemory.read_u8(base + 0xD) - local box = RetrieveBox(base,2) - - if hasbit(face,findbit(7)) then - gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFFFF0000,0x35FF0000) -- Hit box - box = RetrieveBox(base,1) - gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFF0000FF,0x350000FF) -- Hurt box - box = RetrieveBox(base,3) - gui.drawBox(x - box[1],y + box[2],x - box[3],y + box[4],0xFF00FF00,0x3500FF00) -- Can be jumped on box - else - gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFFFF0000,0x35FF0000) -- Hit box - box = RetrieveBox(base,1) - gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFF0000FF,0x350000FF) -- Hurt box - box = RetrieveBox(base,3) - gui.drawBox(x + box[1],y + box[2],x + box[3],y + box[4],0xFF00FF00,0x3500FF00) -- Can be jumped on box - end - end - end -end - - - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - camera() - player() - enemies() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Contra 3.lua b/Assets/Lua/SNES/Contra 3.lua deleted file mode 100644 index 53c7f537ca..0000000000 --- a/Assets/Lua/SNES/Contra 3.lua +++ /dev/null @@ -1,148 +0,0 @@ ----------------------------------------------- ------Contra III hitbox viewer script SNES----- ----------------------------------------------- ---Player Colors: ---Gold = Invuln ---Blue = Vulnerable - ---Enemy colors: ---Red = Can be touched and hit with projectiles ---Green = Can be hit with projectiles but has no collision ---Yellow = Can touch you, cannot be hit with player projectiles ---White Axis in middle of box = Box is invulnerable - -local xm -local ym - -function findbit(p) - return 2 ^ (p - 1) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -local function check_offscreen(pos,val) - - if val ~= 0 then - if val == 1 then - pos = 255 + pos - elseif val == 255 then - pos = 0 -(255 - pos) - end - end - - return pos - -end - -local function draw_invuln(x,y,xrad,yrad) - gui.drawLine(x + (xrad / 2), y, x + (xrad / 2), y + yrad,0xFFFFFFFF) - gui.drawLine(x, y + (yrad / 2), x + xrad, y + (yrad / 2),0xFFFFFFFF) -end - -local function Player() - local pbase = 0x200 - - for i = 0,1,1 do - pbase = pbase + (i * 0x40) - local x = mainmemory.read_u8(pbase + 6) - local y = mainmemory.read_u8(pbase + 0x10) - local x2 = mainmemory.read_u8(pbase + 0x28) - local y2 = mainmemory.read_u8(pbase + 0x2A) - local x_offscreen = mainmemory.read_u8(pbase + 0x7) - local y_offscreen = mainmemory.read_u8(pbase + 0x11) - local x2_offscreen = mainmemory.read_u8(pbase + 0x29) - local y2_offscreen = mainmemory.read_u8(pbase + 0x2B) - local active = mainmemory.read_u8(pbase + 0x16) - - -- Checks if the box went off screen and adjusts - x = check_offscreen(x,x_offscreen) - x2 = check_offscreen(x2,x2_offscreen) - y = check_offscreen(y,y_offscreen) - y2 = check_offscreen(y2,y2_offscreen) - - if active > 0 then - if hasbit(active,findbit(2)) == true or mainmemory.read_u16_le(0x1F88 + (i * 0x40)) > 0 then - gui.drawBox(x,y,x2,y2,0xFFFDD017,0x35FDD017) - else - gui.drawBox(x,y,x2,y2,0xFF0000FF,0x350000FF) - end - end - end - - - -end - -local function Enemies() - local start = 0x280 - local base = 0 - local oend = 32 - local x - local x_offscreen - local y - local y_offscreen - local xrad - local yrad - local active - local touch - local projectile - local invuln - local hp - - for i = 0,oend,1 do - base = start + (i * 0x40) - - active = mainmemory.read_u8(base + 0x16) - hp = mainmemory.read_s16_le(base + 6) - if active > 0 then - - touch = hasbit(active,findbit(4)) - projectile = hasbit(active,findbit(5)) - invuln = hasbit(active,findbit(6)) - x = mainmemory.read_u8(base + 0xa) - x_offscreen = mainmemory.read_u8(base + 0xb) - y = mainmemory.read_u8(base + 0xe) - y_offscreen = mainmemory.read_u8(base + 0xf) - xrad = mainmemory.read_s16_le(base+0x28) - yrad = mainmemory.read_s16_le(base+0x2A) - - -- Checks if the box went off screen and adjusts - - x = check_offscreen(x,x_offscreen) - y = check_offscreen(y,y_offscreen) - - if projectile and touch then - gui.drawBox(x,y,x+ xrad,y+yrad,0xFFFF0000,0x35FF0000) - elseif projectile then - gui.drawBox(x,y,x + xrad,y+yrad,0xFF00FF00,0x3500FF00) - elseif touch then - gui.drawBox(x,y,x + xrad,y + yrad,0xFFFFFF00,0x35FFFF00) - end - if hp > 0 and invuln == false then - gui.text((x-5) * xm,(y-5) * ym,"HP: " .. hp) - end - if invuln then - draw_invuln(x,y,xrad,yrad) - end - - end - end - -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - local stage = mainmemory.read_u8(0x7E0086) - if stage ~= 2 and stage ~= 5 then - Player() - Enemies() - end - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Donkey Kong Country 3.lua b/Assets/Lua/SNES/Donkey Kong Country 3.lua deleted file mode 100644 index 3a142e785b..0000000000 --- a/Assets/Lua/SNES/Donkey Kong Country 3.lua +++ /dev/null @@ -1,101 +0,0 @@ ---Author pasky13 - -local cx -local cy -local data = 0x3C0000 - -local function camera() - cx = mainmemory.read_u16_le(0x493) - cy = mainmemory.read_u16_le(0x497) -end - -function findbit(p) - return 2 ^ (p - 1) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -local function hex(val) - val = string.format("%X",val) - return val -end - -memory.usememorydomain("CARTROM") - -local function player() - local pbase = 0x878 - for i = 0,1,1 do - pbase = pbase + (i * 0x6E) - if mainmemory.read_u8(pbase + 0x24) > 0 then - local point = memory.read_u16_le(mainmemory.read_u16_le(pbase + 0x24) + 0x3C8003) - local properties = mainmemory.read_u16_le(pbase + 0x1E) - local x = mainmemory.read_u16_le(pbase + 0x12) - cx - local y = mainmemory.read_u16_le(pbase + 0x16) - cy - local xoff = memory.read_s8(point + data) - local yoff = memory.read_s8(point + 2 + data) - local xrad = memory.read_u8(point + 4 + data) - local yrad = memory.read_u8(point + 6 + data) - - if hasbit(properties,findbit(15)) then -- If facing right - xoff = xoff * -1 - xrad = xrad * -1 - elseif hasbit(properties,findbit(16)) then -- Upside down? - yoff = yoff * -1 - yrad = yrad * -1 - end - - - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFF0000FF,0x400000FF) - end - end -end - -local function enemy() - local start = 0x954 - local base - local x - local y - local xoff - local yoff - local xrad - local yrad - local properties - local point - local active - for i = 0,15,1 do - base = start + (i * 0x6E) - active = mainmemory.read_u8(base + 0x30) - properties = mainmemory.read_u16_le(base + 0x1E) - - if mainmemory.read_u8(base + 0x24) > 0 then - point = memory.read_u16_le(mainmemory.read_u16_le(base + 0x24) + 0x3C8003) - properties = mainmemory.read_u16_le(base + 0x1E) - x = mainmemory.read_u16_le(base + 0x12) - cx - y = mainmemory.read_u16_le(base + 0x16) - cy - xoff = memory.read_s8(point + data) - yoff = memory.read_s8(point + 2 + data) - xrad = memory.read_u8(point + 4 + data) - yrad = memory.read_u8(point + 6 + data) - - - if hasbit(properties,findbit(15)) then -- If facing right - xoff = xoff * -1 - xrad = xrad * -1 - elseif hasbit(properties,findbit(16)) then -- Upside down? - yoff = yoff * -1 - yrad = yrad * -1 - end - - gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,0xFFFF0000,0x40FF0000) - end - end -end - -while true do - camera() - player() - enemy() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Megaman X.lua b/Assets/Lua/SNES/Megaman X.lua deleted file mode 100644 index a30336ee41..0000000000 --- a/Assets/Lua/SNES/Megaman X.lua +++ /dev/null @@ -1,160 +0,0 @@ ---Author Pasky13 - ---------------- -----GLOBALS---- ---------------- -local pbase = 0xBA8 -local px = 0xBAD -local py = 0xBB0 -local cx = 0x00B4 -local cy = 0x00B6 - ---------------- -----TOGGLES---- ---------------- -local draw_megaman = true -local draw_enemies = true -local draw_hpvalues = true -local draw_projectiles = true ---local draw_instantbox = false -- Bizhawk doesnt support breakpoints - -local xm -local ym - --- Breakpoints not yet implemented in bizhawk --- local function draw_instabox(base) - - -- local camx = mainmemory.read_u16_le(cx) - -- local camy = mainmemory.read_u16_le(cy) - -- local facing = mainmemory.read_u8(base + 0x11) - -- local x = mainmemory.read_u16_le(base + 5) - camx - -- local y = mainmemory.read_u16_le(base + 8) - camy - -- local boxpointer = mainmemory.read_u16_le(base +0x20) + 0x860000 - -- local xoff = mainmemory.read_s8(boxpointer + 0) - -- local yoff = mainmemory.read_s8(boxpointer + 1) - -- local xrad = mainmemory.read_u8(boxpointer + 2) - -- local yrad = mainmemory.read_u8(boxpointer + 3) - - -- if facing > 0x45 then - -- xoff = xoff * -1 - -- end - - -- gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,0xFFFF0000,0x05FF0000) --- end - -memory.usememorydomain("CARTROM") - -local function megaman() - - local camx = mainmemory.read_u16_le(cx) - local camy = mainmemory.read_u16_le(cy) - local x = mainmemory.read_u16_le(px) - camx - local y = mainmemory.read_u16_le(py) - camy - local facing = mainmemory.read_u8(pbase + 0x11) - local boxpointer = mainmemory.read_u16_le(pbase + 0x20) + 0x28000 - local xoff = memory.read_s8(boxpointer + 0) - local yoff = memory.read_s8(boxpointer + 1) - local xrad = memory.read_u8(boxpointer + 2) - local yrad = memory.read_u8(boxpointer + 3) - - if facing > 0x45 then - xoff = xoff * -1 - end - - gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,0xFF0000FF,0x400000FF) -end - -local function enemies() - - local x - local xoff - local xrad - local y - local yoff - local yrad - local camx = mainmemory.read_u16_le(cx) - local camy = mainmemory.read_u16_le(cy) - local base - local boxpointer - local facing - local fill - local outl - local start = 0xE68 - local oend = 32 - - for i = 0, oend,1 do - - base = start + (i * 0x40) - - if i == 0 then - base = start - end - - if mainmemory.read_u8(base) ~= 0 then - - if i > 14 and i < 21 then - if draw_projectiles == true then - fill = 0x40FFFFFF - outl = 0xFFFFFFFF - else - fill = 0x00000000 - outl = 0x00000000 - end - else - fill = 0x40FF0000 - outl = 0xFFFF0000 - end - - if i > 21 then - fill = 0x40FFFF00 - outl = 0xFFFFFF00 - end - - facing = mainmemory.read_u8(base + 0x11) - x = mainmemory.read_u16_le(base + 5) - camx - y = mainmemory.read_u16_le(base + 8) - camy - boxpointer = mainmemory.read_u16_le(base +0x20) + 0x28000 - xoff = memory.read_s8(boxpointer + 0) - yoff = memory.read_s8(boxpointer + 1) - xrad = memory.read_u8(boxpointer + 2) - yrad = memory.read_u8(boxpointer + 3) - - - if facing > 0x45 then - xoff = xoff * -1 - end - - --Breakpoints not yet implemented in Bizhawk - -- if draw_instantbox == true then - -- memory.registerwrite(0x7E0000 + base + 0x20,2,function () - -- draw_instabox(memory.getregister("D")) - -- end) - -- end - - --gui.text(x,y,string.format("%X",base)) -- Debug - gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,outl, fill) - - if draw_hpvalues == true and mainmemory.read_u8(base+0x27) > 0 then - if i < 15 or i > 20 then - gui.text((x-5) * xm,(y-5) * ym,"HP: " .. mainmemory.read_u8(base+0x27)) - end - end - end - end -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - if draw_megaman == true then - megaman() - end - if draw_enemies == true then - enemies() - end - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Megaman X2.lua b/Assets/Lua/SNES/Megaman X2.lua deleted file mode 100644 index a43d1e0243..0000000000 --- a/Assets/Lua/SNES/Megaman X2.lua +++ /dev/null @@ -1,130 +0,0 @@ ---Author Pasky13 - ---------------- -----GLOBALS---- ---------------- -local pbase = 0x9D8 -local px = pbase +0x5 -local py = pbase +0x8 -local cx = 0x1E5D -local cy = 0x1E60 -local xm -local ym - ---------------- -----TOGGLES---- ---------------- -local draw_megaman = true -local draw_enemies = true -local draw_hpvalues = true -local draw_projectiles = true - -memory.usememorydomain("CARTROM") - -local function megaman() - - local camx = mainmemory.read_u16_le(cx) - local camy = mainmemory.read_u16_le(cy) - local x = mainmemory.read_u16_le(px) - camx - local y = mainmemory.read_u16_le(py) - camy - local facing = mainmemory.read_u8(pbase + 0x11) - local boxpointer = mainmemory.read_u16_le(pbase + 0x20) + 0x28000 - local xoff = memory.read_s8(boxpointer + 0) - local yoff = memory.read_s8(boxpointer + 1) - local xrad = memory.read_u8(boxpointer + 2) - local yrad = memory.read_u8(boxpointer + 3) - - if facing > 0x45 then - xoff = xoff * -1 - end - - gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,0xFF0000FF,0x400000FF) -end - -local function enemies() - - local x - local xoff - local xrad - local y - local yoff - local yrad - local camx = mainmemory.read_u16_le(cx) - local camy = mainmemory.read_u16_le(cy) - local base - local boxpointer - local facing - local fill - local outl - local start = 0xD18 - local oend = 31 - - for i = 0, oend,1 do - - base = start + (i * 0x40) - - if i == 0 then - base = start - end - - if mainmemory.read_u8(base) ~= 0 and mainmemory.read_u8(base + 0x27) ~= 128 then - - if i > 14 and i < 25 then - if draw_projectiles == true then - fill = 0x40FFFFFF - outl = 0xFFFFFFFF - else - fill = 0x00000000 - outl = 0x00000000 - end - else - fill = 0x40FF0000 - outl = 0xFFFF0000 - end - - if i > 24 then - fill = 0x40FFFF00 - outl = 0xFFFFFF00 - end - - facing = mainmemory.read_u8(base + 0x11) - x = mainmemory.read_u16_le(base + 5) - camx - y = mainmemory.read_u16_le(base + 8) - camy - boxpointer = mainmemory.read_u16_le(base +0x20) + 0x28000 - xoff = memory.read_s8(boxpointer + 0) - yoff = memory.read_s8(boxpointer + 1) - xrad = memory.read_u8(boxpointer + 2) - yrad = memory.read_u8(boxpointer + 3) - - if facing > 0x45 then - xoff = xoff * -1 - end - - - --gui.text(x,y,string.format("%X",base)) -- Debug - gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,outl, fill) - - if draw_hpvalues == true and mainmemory.read_u8(base+0x27) > 0 and mainmemory.read_u8(base+0x27) ~= 128 then - if i < 15 or i > 20 then - gui.text((x-5) * xm,(y-5) * ym,"HP: " .. mainmemory.read_u8(base+0x27)) - end - end - end - end -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - if draw_megaman == true then - megaman() - end - if draw_enemies == true then - enemies() - end - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Megaman X3.lua b/Assets/Lua/SNES/Megaman X3.lua deleted file mode 100644 index 453524f102..0000000000 --- a/Assets/Lua/SNES/Megaman X3.lua +++ /dev/null @@ -1,135 +0,0 @@ ---Author Pasky13 - --- Some bogus boxes may appear --- because background objects are --- sometimes used where enemy structures --- are present in memory. - ---------------- -----GLOBALS---- ---------------- -local pbase = 0x9D8 -local px = pbase +0x5 -local py = pbase +0x8 -local cx = 0x1E5D -local cy = 0x1E60 -local xm -local ym - ---------------- -----TOGGLES---- ---------------- -local draw_megaman = true -local draw_enemies = true -local draw_hpvalues = true -local draw_projectiles = true - -memory.usememorydomain("CARTROM") - -local function megaman() - - local camx = mainmemory.read_u16_le(cx) - local camy = mainmemory.read_u16_le(cy) - local x = mainmemory.read_u16_le(px) - camx - local y = mainmemory.read_u16_le(py) - camy - local facing = mainmemory.read_u8(pbase + 0x11) - local boxpointer = mainmemory.read_u16_le(pbase + 0x20) + 0x28000 - local xoff = memory.read_s8(boxpointer + 0) - local yoff = memory.read_s8(boxpointer + 1) - local xrad = memory.read_u8(boxpointer + 2) - local yrad = memory.read_u8(boxpointer + 3) - - if facing > 0x45 then - xoff = xoff * -1 - end - - gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,0xFF0000FF,0x400000FF) -end - -local function enemies() - - local x - local xoff - local xrad - local y - local yoff - local yrad - local camx = mainmemory.read_u16_le(cx) - local camy = mainmemory.read_u16_le(cy) - local base - local boxpointer - local facing - local fill - local outl - local start = 0xD18 - local oend = 31 - - for i = 0, oend,1 do - - base = start + (i * 0x40) - - if i == 0 then - base = start - end - - if mainmemory.read_u8(base) ~= 0 and mainmemory.read_u8(base + 0x27) ~= 128 then - - if i > 14 and i < 25 then - if draw_projectiles == true then - fill = 0x40FFFFFF - outl = 0xFFFFFFFF - else - fill = 0x00000000 - outl = 0x00000000 - end - else - fill = 0x40FF0000 - outl = 0xFFFF0000 - end - - if i > 23 then - fill = 0x40FFFF00 - outl = 0xFFFFFF00 - end - - facing = mainmemory.read_u8(base + 0x11) - x = mainmemory.read_u16_le(base + 5) - camx - y = mainmemory.read_u16_le(base + 8) - camy - boxpointer = mainmemory.read_u16_le(base +0x20) + 0x28000 - xoff = memory.read_s8(boxpointer + 0) - yoff = memory.read_s8(boxpointer + 1) - xrad = memory.read_u8(boxpointer + 2) - yrad = memory.read_u8(boxpointer + 3) - - if facing > 0x45 then - xoff = xoff * -1 - end - - - --gui.text(x,y,string.format("%X",base)) -- Debug - gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,outl, fill) - - if draw_hpvalues == true and mainmemory.read_u8(base+0x27) > 0 and mainmemory.read_u8(base+0x27) ~= 128 then - if i < 15 or i > 20 then - gui.text((x-5) * xm,(y-5) * ym,"HP: " .. mainmemory.read_u8(base+0x27)) - end - end - end - end -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - if draw_megaman == true then - megaman() - end - if draw_enemies == true then - enemies() - end - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Rockman and Forte.lua b/Assets/Lua/SNES/Rockman and Forte.lua deleted file mode 100644 index 4989f9a609..0000000000 --- a/Assets/Lua/SNES/Rockman and Forte.lua +++ /dev/null @@ -1,183 +0,0 @@ --- Author Pasky13 - -local pbase = 0xC00 -local ppbase = 0xCC0 - -local ebase = 0x19C0 -local epbase = 0xEC0 - -local xm -local ym - -memory.usememorydomain("CARTROM") - -function findbit(p) - return 2 ^ (p - 1) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -local function hex(val) - val = string.format("%X",val) - return val -end - -local function camera() - cx = mainmemory.read_u16_le(0xD9) - cy = mainmemory.read_u16_le(0xDB) -end - - -local function drawbox(p,x,y,base,player,fill,outl) - local box = {0,0,0,0} --xoff/yoff/xrad/yrad - - box[1] = memory.read_s8(p) - box[2] = memory.read_s8(p + 1) - box[3] = memory.read_u8(p + 2) - box[4] = memory.read_u8(p + 3) - - if player == false then - if hasbit(mainmemory.read_u8(base+0x14),findbit(7)) then -- megaman facing right - box[1] = box[1] * - 1 - end - else - if hasbit(mainmemory.read_u8(base+0x4A),findbit(3)) then -- enemy facing left - box[1] = box[1] * - 1 - end - end - - gui.drawBox(x+box[1]+box[3],y+box[2]+box[4],x+box[1]-box[3],y+box[2]-box[4],outl, fill) - return box -end - -local function proj_vuln(base,x,y,xoff,yoff,xrad,yrad) - local offset = memory.read_u8(0x87D0 +(mainmemory.read_u8(base + 0x31) * 2)) - local property = memory.read_s8(0x87D0 + offset) - if property <= 0 then - gui.drawLine(x + xoff + xrad,y + yoff,x + xoff - xrad, y + yoff,0xFFFFFFFF) - gui.drawLine(x + xoff,y + yoff + yrad, x + xoff,y + yoff - yrad,0xFFFFFFFF) - end - --gui.text(x-40,y-20,hex(offset) .. " " .. hex(base)) -end - -local function player() - local x = mainmemory.read_u16_le(pbase + 5) - cx - local y = mainmemory.read_u16_le(pbase + 8) - cy - local pointer = mainmemory.read_u16_le(pbase + 0x24) - local hp = mainmemory.read_s8(pbase + 0x2F) - drawbox(pointer,x,y,pbase,true,0x400000FF,0xFF0000FF) - gui.text((x-4) * xm,y * ym,"HP:" .. hp) -end - - - -local function player_projectiles() - local x - local y - local base - local pointer - local active - local anim - - for i = 0,7,1 do - base = ppbase + (i * 0x40) - active = mainmemory.read_u8(base) - anim = mainmemory.read_u8(base + 1) - if active ~= 0 and anim > 1 then - x = mainmemory.read_u16_le(base + 5) - cx - y = mainmemory.read_u16_le(base + 8) - cy - pointer = mainmemory.read_u16_le(base + 0x24) - drawbox(pointer,x,y,base,false,0x40FFFFFF,0xFFFFFFFF) - end - end - -end - -local function enemy_projectiles() - local x - local y - local base - local pointer - local active - local anim - for i = 0,7,1 do - base = epbase + (i * 0x40) - active = mainmemory.read_u8(base) - anim = mainmemory.read_u8(base + 1) - if active ~= 0 and anim > 1 then - x = mainmemory.read_u16_le(base + 5) - cx - y = mainmemory.read_u16_le(base + 8) - cy - pointer = mainmemory.read_u16_le(base + 0x24) - drawbox(pointer,x,y,base,false,0x4000FF00,0xFF00FF00) - end - end - -end - -local function objects() - local x - local y - local hp - local base - local pointer - local active - local anim - local box - for i = 0,15,1 do - base = ebase + (i * 0x40) - active = mainmemory.read_u8(base) - anim = mainmemory.read_u8(base + 1) - if active ~= 0 and anim > 1 then - x = mainmemory.read_u16_le(base + 5) - cx - y = mainmemory.read_u16_le(base + 8) - cy - pointer = mainmemory.read_u16_le(base + 0x24) - hp = mainmemory.read_s8(base + 0x2F) - if hp > 0 then - gui.text((x-8) * xm,(y-8) * ym,"HP: " .. hp) - end - box = drawbox(pointer,x,y,base,false,0x40FF0000,0xFFFF0000) - proj_vuln(base,x,y,box[1],box[2],box[3],box[4]) - end - end -end - --- local function unknown() -- Hitstun animations? - -- local x - -- local y - -- local base = 0x15C0 - - -- for i = 0,8,1 do - -- base = 0x15C0 + (i * 0x20) - -- if mainmemory.read_u16_le(base) ~= 0 then - -- x = mainmemory.read_u16_le(base + 5) - cx - -- y = mainmemory.read_u16_le(base + 8) - cy - -- gui.text(x,y,"UK:" .. i) - -- end - -- end - - -- for i = 0,15,1 do - -- base = 0x16C0 + (i * 0x30) - -- if mainmemory.read_u16_le(base) ~= 0 then - -- x = mainmemory.read_u16_le(base + 5) - cx - -- y = mainmemory.read_u16_le(base + 8) - cy - -- gui.text(x,y,"UK2:" .. i) - -- end - -- end --- end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - camera() - enemy_projectiles() - player_projectiles() - objects() - player() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Super Castlevania 4.lua b/Assets/Lua/SNES/Super Castlevania 4.lua deleted file mode 100644 index 13adeafa83..0000000000 --- a/Assets/Lua/SNES/Super Castlevania 4.lua +++ /dev/null @@ -1,260 +0,0 @@ ----------------------------- -----Super Castlevania IV---- ----------------------------- - ---Author Pasky13 - ---------------- -----TOGGLES---- ---------------- - ---Box type toggles -local candle = true -local enemy = true -local player = true - - ---Center axis toggles -local player_axis = false -local whip_axis = false -local projectile_axis = true -local enemy_axis = true -local candle_axis = false - ---Hitpoint display -local playerhp = true -local enemyhp = true - ---Cheats -local cheats = false - ------------------- ----END TOGGLES---- ------------------- - - ---------------- -----GLOBALS---- ---------------- - -local pbase = 0x540 -local ebase = 0x580 -local wbase = 0x200 -local pjbase = 0x440 - -local ux = 0xA -local uy = 0xE - -local uxrad = 0x28 -local uyrad = 0x2A - -local eactive = 0x10 - -local camx = 0x1280 -local camy = 0x1298 - -local elife = 0x06 - -local plife = 0x13F4 -local hearts = 0x13F2 -local facing = 0x0578 -local timer = 0x13F0 - -local xs = client.screenwidth() / 256 -local ys = client.screenheight() / 224 -------------------- -----END GLOBALS---- -------------------- - -local function centeraxis(x,y) - gui.drawLine(x,y+2,x,y-2,0xFFFFFFFF) - gui.drawLine(x+2,y,x-2,y,0xFFFFFFFF) -end - -local function player_hitbox() - local x = mainmemory.read_u16_le(pbase+ux) - mainmemory.read_u16_le(camx) - local y = mainmemory.read_u16_le(pbase+uy) - mainmemory.read_u16_le(camy) - local cr = mainmemory.read_u8(0x576) - - if cr ~= 0x0F then - gui.drawBox(x+7,y+27,x-7,y-19,0xFF0000FF,0x400000FF) - if playerhp == true then - gui.text((x-10) * xs,(y-26) * ys,"HP:" .. mainmemory.read_u8(plife)) - end - else - gui.drawBox(x+7,y+cr,x-7,y-cr,0xFF0000FF,0x400000FF) - if playerhp == true then - gui.text((x-10) * xs,(y-cr-7) * ys,"HP:" .. mainmemory.read_u8(plife)) - end - end - - - - if player_axis == true then - centeraxis(x,y) - end - -end - -local function player_projectiles() - local base = 0 - local x - local y - local xrad - local yrad - local oend = 3 - - for i = 0,oend,1 do - - base = pjbase + (i * 0x40) - - if i == 0 then - base = pjbase - end - - if mainmemory.read_u16_le(base) ~= 0 then - x = mainmemory.read_u16_le(base+ux) - mainmemory.read_u16_le(camx) - y = mainmemory.read_u16_le(base+uy) - mainmemory.read_u16_le(camy) - xrad = mainmemory.read_u16_le(base+uxrad) - yrad = mainmemory.read_u16_le(base+uyrad) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFFFFFF,0x40FFFFFF) - - if projectile_axis == true then - centeraxis(x,y) - end - - end - - end -end - -local function player_whip() - - local base = 0 - local x - local y - local xrad - local yrad - local oend = 8 - - for i = 0,oend,1 do - - base = wbase + (i * 0x40) - - if i == 0 then - base = wbase - end - - if mainmemory.read_u16_le(base) ~= 0 then - x = mainmemory.read_u16_le(base+ux) - mainmemory.read_u16_le(camx) - y = mainmemory.read_u16_le(base+uy) - mainmemory.read_u16_le(camy) - xrad = mainmemory.read_u16_le(base+uxrad) - yrad = mainmemory.read_u16_le(base+uyrad) - - if xrad == 0 and yrad == 0 then - if base == 0x0400 then - gui.drawBox(x-0x10,y-0x04,x+0x10,y+0x04,0xFFFFFFFF,0x40FFFFFF) - else - gui.drawBox(x-0x04,y-0x04,x+0x04,y+0x04,0xFFFFFFFF,0x40FFFFFF) - end - else - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFFFFFF,0x40FFFFFF) - end - - if whip_axis == true then - centeraxis(x,y) - end - end - - end -end - -local function object_hitbox() - local base = 0 - local x - local y - local xrad - local yrad - local oend = 36 - local drawn - local life - for i = 0,oend,1 do - - base = ebase + (i * 0x40) - drawn = false - - if i == 0 then - base = ebase - elseif - base == 0x540 then - drawn = true - end - - if mainmemory.read_u16_le(base+0x10) == 0x0E then - if candle == true then - x = mainmemory.read_u16_le(base+ux) - mainmemory.read_u16_le(camx) - y = mainmemory.read_u16_le(base+uy) - mainmemory.read_u16_le(camy) - xrad = mainmemory.read_u16_le(base+uxrad) - yrad = mainmemory.read_u16_le(base+uyrad) - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFFD000,0x40FFD000) - drawn = true - - if candle_axis == true then - centeraxis(x,y) - end - end - - end - - if mainmemory.read_u16_le(base+0x10) ~= 0 and drawn == false then - - x = mainmemory.read_u16_le(base+ux) - mainmemory.read_u16_le(camx) - y = mainmemory.read_u16_le(base+uy) - mainmemory.read_u16_le(camy) - xrad = mainmemory.read_u16_le(base+uxrad) - yrad = mainmemory.read_u16_le(base+uyrad) - life = mainmemory.read_u16_le(base+elife) - - gui.drawBox(x-xrad,y-yrad,x+xrad,y+yrad,0xFFFF0000,0x40FF0000) - drawn = true - - if enemyhp == true then - if life > 0 and life ~= 255 then - gui.text((x-10) * xs,(y-yrad-7) * ys,"HP:" .. life) - end - end - if enemy_axis == true then - centeraxis(x,y) - end - end - - - end -end - -local function cheat() - memory.writebyte(plife,16) - memory.writeword(timer,1024) - memory.writebyte(hearts,32) -end - -local function scaler() - xs = client.screenwidth() / 256 - ys = client.screenheight() / 224 -end - -while true do - scaler() - if player == true then - player_hitbox() - player_whip() - player_projectiles() - end - - if enemy == true then - object_hitbox() - end - if cheats == true then - cheat() - end - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Super Castlevania IV.lua b/Assets/Lua/SNES/Super Castlevania IV.lua deleted file mode 100644 index 8f8b074298..0000000000 --- a/Assets/Lua/SNES/Super Castlevania IV.lua +++ /dev/null @@ -1,105 +0,0 @@ --- Super Castlevania IV (USA/JP) Collision box viewer --- For use with Bizhawk --- Author Pasky - - -local player = false - -function findbit(p) - return 2 ^ (p - 1) -end - -local function ax(x,y) - gui.drawLine(x,y+4,x,y-4,0xFFFF0000) - gui.drawLine(x+4,y,x-4,y,0xFFFF0000) - gui.drawPixel(x,y,0xFFFFFFFF) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -local function hex(val) - val = string.format("%X",val) - if string.len(val) == 1 then - val = "0" .. val - end - return val -end - -local function camera() - camx = mainmemory.read_u16_le(0x1280) - camy = mainmemory.read_u16_le(0x1298) -end - -local function objects() - local xreg = emu.getregister("X") - local areg = emu.getregister("A") - local c = {0xFFFF0000,0x40FF0000} - local o = { mainmemory.read_u16_le(0x8) - camx,mainmemory.read_u16_le(0x10), mainmemory.read_u16_le(0xA) - camy, mainmemory.read_u16_le(0x12) } - if mainmemory.read_u16_le(xreg + 0x10) == 0xE then - c[1] = 0xFF0000FF - c[2] = 0x400000FF - gui.drawBox(o[1]-o[2],o[3]-o[4],o[1]+o[2],o[3]+o[4],c[1],c[2]) -- Draw non-player objects - else - if hasbit(areg,findbit(1)) then - gui.drawBox(o[1]-o[2],o[3]-o[4],o[1]+o[2],o[3]+o[4],c[1],c[2]) -- Draw objects that simon can collide with - if o[2] == 0 and o[4] == 0 then -- enemy projectile, mark the center with an axis since there is no box - ax(o[1],o[3]) - end - end - end - - - - - if player == false then - c[1] = 0xFF0000FF - c[2] = 0x400000FF - o = { mainmemory.read_u16_le(0x54A) - camx, 0x08, mainmemory.read_u16_le(0x54E), 0x13 } - gui.drawBox(o[1]-o[2],o[3]-o[4],o[1]+o[2],o[3]+o[4],c[1],c[2]) -- Draw player hurtbox - player = true -- Used so it isn't drawn every collision check - end -end - -local function weapons() - local x,y,xr,yr,base - for i = 0,7,1 do - base = 0x200 + (i * 0x40) - if mainmemory.read_u16_le(base) ~= 0 then - x = mainmemory.read_u16_le(base + 0xA) - camx - y = mainmemory.read_u16_le(base + 0xE) - camy - xr = mainmemory.read_u16_le(base + 0x28) - yr = mainmemory.read_u16_le(base + 0x2A) - if xr == 0 and yr == 0 then -- check if it's the whip - if base == 0x400 then - gui.drawBox(x-0x10,y-0x04,x+0x10,y+0x04,0xFFFFFFFF,0x40FFFFFF) - else - gui.drawBox(x-0x04,y-0x04,x+0x04,y+0x04,0xFFFFFFFF,0x40FFFFFF) - end - else - gui.drawBox(x-xr,y-yr,x+xr,y-yr) - end - end - end -end - -local function pproj() - local yreg = emu.getregister("Y") - local o = { mainmemory.read_u16_le(yreg + 0xA) - camx, mainmemory.read_u16_le(yreg + 0x28), mainmemory.read_u16_le(yreg + 0xE) - camy, mainmemory.read_u16_le(yreg + 0x2A) } - gui.drawBox(o[1]-o[2],o[3]-o[4],o[1]+o[2],o[3]+o[4],0xFFFFFFFF,0x40FFFFFF) -end - -local function reset() - player = false -end - -event.onmemoryexecute(objects,0x00DC7A) -event.onmemoryexecute(pproj,0xDD74) - -while true do - camera() - weapons() - emu.frameadvance() - reset() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Super Ghouls N Ghost.lua b/Assets/Lua/SNES/Super Ghouls N Ghost.lua deleted file mode 100644 index f58d48a849..0000000000 --- a/Assets/Lua/SNES/Super Ghouls N Ghost.lua +++ /dev/null @@ -1,211 +0,0 @@ ----------------------------------------------------- ---Super Ghouls n' Ghosts Hitbox Display Lua Script-- ----------------------------------------------------- - ---Author Pasky13 - - ----Blue = Arthur's Hitbox ----Red = If this box touches arthur's he is damaged ----Green = Projectile vulnerability for enemies ----White = Arthurs magic and weapons - -local left_edge = 0x15DD -local top_edge = 0x15E1 -local xm -local ym - -memory.usememorydomain("CARTROM") - -function findbit(p) - return 2 ^ (p - 1) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -local function draw_axis(x,y) - gui.drawLine(x,y-2,x,y+2,0x80FFFFFF) - gui.drawLine(x-2,y,x+2,y,0x80FFFFFF) -end - -local function draw_arthur() - local arthur = 0x43C - local pointoff = bit.lshift(bit.lshift(bit.band(mainmemory.read_u8(arthur + 0x09),0x01),1),1) - local yrad = memory.read_u8(0x3963 + pointoff) - local xrad = memory.read_u8(0x3963 + pointoff + 1) - local yoff = memory.read_s8(0x3965 + pointoff) - local xoff = memory.read_s8(0x3965 + pointoff + 1) - local x = mainmemory.read_u16_le(arthur + 0x1F) - local y = mainmemory.read_u16_le(arthur + 0x22) - - x = x - mainmemory.read_u16_le(left_edge) - y = y - mainmemory.read_u16_le(top_edge) - gui.drawBox((x+xoff) - (xrad), (y+yoff) - (yrad), (x+xoff) + (xrad), (y+yoff) + (yrad),0xF00000FF,0x300000FF) - --Comment/Uncomment out next line to Show/hide arthur's hitbox center axis - --draw_axis(x,y) -end - -local function draw_projvuln(x,y,xrad,yrad,base) - gui.drawBox(x - (xrad), y - (yrad), x + (xrad), y + (yrad),0xF02AFF00,0x402AFF00) -end - - - -local function draw_enemies() - - local ostart = 0x090F - local oend = 30 - local base = 0 - local pointoff = 0 - local xrad = 0 - local yrad = 0 - local x = 0 - local y = 0 - - for i = 0,oend,1 do - - if i ~= 0 then - base = ostart + (0x41 * i) - else - base = ostart - end - - - if hasbit(mainmemory.read_u8(base + 0x09),findbit(7)) == true then - - if mainmemory.read_u8(base+1) ~= 0 and mainmemory.read_u8(base) ~= 0 then - - pointoff = bit.lshift(bit.band(mainmemory.read_u8(base + 0x06),0x00FF),1) - xrad = memory.read_u8(0x56E1 + pointoff) - yrad = memory.read_u8(0x56E2 + pointoff) - x = mainmemory.read_u16_le(base + 0x1F) - y = mainmemory.read_u16_le(base + 0x22) - - life = mainmemory.read_u8(base + 0x0E) - - x = x - mainmemory.read_u16_le(left_edge) - y = y - mainmemory.read_u16_le(top_edge) - - --Red boxes - gui.drawBox(x - (xrad), y - (yrad), x + (xrad), y + (yrad),0xFFFF0000,0x70FF0000) - xrad = memory.read_u8(0x585D + pointoff) - yrad = memory.read_u8(0x585E + pointoff) - - --Comment/Uncomment out next line to hide/show drawing the projectile vulnerability boxes - - draw_projvuln(x,y,xrad,yrad,base) - - if life > 0 then - --Comment out next line to hide HP display over objects - gui.text(x * xm, (y-10) * ym, life) - end - - --Comment out next line to hide box center axis - draw_axis(x,y) - - end - end - - end -end - -local function draw_weapons() - - local ostart = 0x047D - local oend = 9 - local base = 0 - local weapon = 0x14D3 - local dmg = 0 - local pointoff = 0 - local wep_xrad = 0 - local wep_yrad = 0 - local mag_xrad = 0 - local mag_yrad = 0 - local x = 0 - local y = 0 - - pointoff = bit.lshift(mainmemory.read_u8(weapon),1) - wep_xrad = memory.read_u8(0x398b + pointoff) - wep_yrad = memory.read_u8(0x398c + pointoff) - mag_xrad = memory.read_u8(0x39ab + pointoff) - mag_yrad = memory.read_u8(0x39ac + pointoff) - - for i = 0,oend,1 do - - - if i ~= 0 then - base = ostart + (0x41 * i) - else - base = ostart - end - - if mainmemory.read_u8(base+1) ~= 0 and mainmemory.read_u8(base) ~= 0 then - x = mainmemory.read_u16_le(base + 0x1F) - y = mainmemory.read_u16_le(base + 0x22) - - dmg = mainmemory.read_u8(base + 0x0E) - - x = x - mainmemory.read_u16_le(left_edge) - y = y - mainmemory.read_u16_le(top_edge) - gui.drawBox(x - (wep_xrad), y - (wep_yrad), x + (wep_xrad), y + (wep_yrad),0xFFFFFFFF,0x40FFFFFF) - - if dmg > 0 then - --Comment out next line to hide weapon DMG display over objects - gui.text(x * xm, (y-10) * ym, dmg) - end - --Comment out next line to hide box center axis - --draw_axis(x,y) - - end - end - - -- If we have the gold armor and not the magic bracelet, check for magic hitboxes - if mainmemory.read_u8(0x14BA) == 0x04 and mainmemory.read_u8(weapon) ~= 0x0E then - - ostart = 0x0707 - - for i = 0,oend-2,1 do - - if i ~= 0 then - base = ostart + (0x41 * i) - else - base = ostart - end - - if mainmemory.read_u8(base+1) ~= 0 and mainmemory.read_u8(base) ~= 0 then - x = mainmemory.read_u16_le(base + 0x1F) - y = mainmemory.read_u16_le(base + 0x22) - - dmg = mainmemory.read_u8(base + 0x0E) - - x = x - mainmemory.read_u16_le(left_edge) - y = y - mainmemory.read_u16_le(top_edge) - gui.drawBox(x - (mag_xrad), y - (mag_yrad), x + (mag_xrad), y + (mag_yrad),0xFFFFFFFF,0x40FFFFFF) - - if dmg > 0 then - --Comment out next line to hide magic DMG display over objects - gui.text(x * xm, (y-10) * ym, dmg) - end - --Comment out next line to hide box center axis - --draw_axis(x,y) - end - - end - end - -end - -local function scaler() - xm = client.screenwidth() / 256 - ym = client.screenheight() / 224 -end - -while true do - scaler() - draw_arthur() - draw_enemies() - draw_weapons() - emu.frameadvance() -end diff --git a/Assets/Lua/SNES/Super Mario World.lua b/Assets/Lua/SNES/Super Mario World.lua deleted file mode 100644 index 77c7b82276..0000000000 --- a/Assets/Lua/SNES/Super Mario World.lua +++ /dev/null @@ -1,3405 +0,0 @@ ---------------------------------------------------------------------------- --- Super Mario World (U) Utility Script for BizHawk --- http://tasvideos.org/Bizhawk.html --- --- Author: Rodrigo A. do Amaral (Amaraticando) --- Git repository: https://github.com/rodamaral/smw-tas ---------------------------------------------------------------------------- - ---############################################################################# --- CONFIG: - -local INI_CONFIG_FILENAME = "config.ini" -- relative to the folder of the script -local OLD_EMU_VERSION - -local DEFAULT_OPTIONS = { - -- Display - display_movie_info = false, -- BizHawk: has good built-in movie info with custom positioning - display_misc_info = true, - display_player_info = true, - display_player_hitbox = true, -- can be changed by right-clicking on player - display_interaction_points = true, -- can be changed by right-clicking on player - display_sprite_info = true, - display_sprite_hitbox = true, -- you still have to select the sprite with the mouse - display_extended_sprite_info = false, - display_cluster_sprite_info = true, - display_minor_extended_sprite_info = true, - display_bounce_sprite_info = true, - display_level_info = false, - display_yoshi_info = true, - display_counters = true, - display_static_camera_region = false, -- shows the region in which the camera won't scroll horizontally - draw_tiles_with_click = false, - - -- Some extra/debug info - display_debug_info = false, -- shows useful info while investigating the game, but not very useful while TASing - display_debug_player_extra = true, - display_debug_sprite_extra = true, - display_debug_sprite_tweakers = true, - display_debug_extended_sprite = true, - display_debug_cluster_sprite = true, - display_debug_minor_extended_sprite = true, - display_debug_bounce_sprite = true, - display_debug_controller_data = true, - display_miscellaneous_sprite_table = false, - miscellaneous_sprite_table_number = {[1] = true, [2] = true, [3] = true, [4] = true, [5] = true, [6] = true, [7] = true, [8] = true, [9] = true, - [10] = true, [11] = true, [12] = true, [13] = true, [14] = true, [15] = true, [16] = true, [17] = true, [18] = true, [19] = true - }, - - -- Script settings - max_tiles_drawn = 20, -- the max number of tiles to be drawn/registered by the script - - -- Lateral gaps (initial values) / bizhawk specific - left_gap = 100, - right_gap = 100, - top_gap = 20, - bottom_gap = 8, -} - --- Colour settings -local DEFAULT_COLOUR = { - -- Text - default_text_opacity = 1.0, - default_bg_opacity = 0.4, - text = "#ffffffff", - background = "#000000ff", - outline = "#000040ff", - warning = "#ff0000ff", - warning_bg = "#0000ffff", - warning2 = "#ff00ffff", - weak = "#a9a9a9ff", - very_weak = "#ffffff60", - joystick_input = "#ffff00ff", - joystick_input_bg = "#ffffff30", - button_text = "#300030ff", - mainmenu_outline = "#ffffffc0", - mainmenu_bg = "#000000c0", - - -- Counters - counter_pipe = "#00ff00ff", - counter_multicoin = "#ffff00ff", - counter_gray_pow = "#a5a5a5ff", - counter_blue_pow = "#4242deff", - counter_dircoin = "#8c5a19ff", - counter_pballoon = "#f8d870ff", - counter_star = "#ffd773ff", - counter_fireflower = "#ff8c00ff", - - -- hitbox and related text - mario = "#ff0000ff", - mario_bg = "#00000000", - mario_mounted_bg = "#00000000", - interaction = "#ffffffff", - interaction_bg = "#00000020", - interaction_nohitbox = "#000000a0", - interaction_nohitbox_bg = "#00000070", - - sprites = {"#00ff00ff", "#0000ffff", "#ffff00ff", "#ff00ffff", "#b00040ff"}, - sprites_interaction_pts = "#ffffffff", - sprites_bg = "#0000b050", - sprites_clipping_bg = "#000000a0", - extended_sprites = "#ff8000ff", - extended_sprites_bg = "#00ff0050", - special_extended_sprite_bg = "#00ff0060", - goal_tape_bg = "#ffff0050", - fireball = "#b0d0ffff", - baseball = "#0040a0ff", - cluster_sprites = "#ff80a0ff", - sumo_brother_flame = "#0040a0ff", - minor_extended_sprites = "#ff90b0ff", - awkward_hitbox = "#204060ff", - awkward_hitbox_bg = "#ff800060", - - yoshi = "#00ffffff", - yoshi_bg = "#00ffff40", - yoshi_mounted_bg = "#00000000", - tongue_line = "#ffa000ff", - tongue_bg = "#00000060", - - cape = "#ffd700ff", - cape_bg = "#ffd70060", - - block = "#00008bff", - blank_tile = "#ffffff70", - block_bg = "#22cc88a0", - layer2_line = "#ff2060ff", - layer2_bg = "#ff206040", - static_camera_region = "#40002040", -} - --- Font settings -local BIZHAWK_FONT_HEIGHT = 14 -local BIZHAWK_FONT_WIDTH = 10 - --- Symbols -local LEFT_ARROW = "<-" -local RIGHT_ARROW = "->" - --- Others -local Y_CAMERA_OFF = 1 -- small adjustment to display the tiles according to their actual graphics - --- Input key names -local INPUT_KEYNAMES = { -- BizHawk - - A=false, Add=false, Alt=false, Apps=false, Attn=false, B=false, Back=false, BrowserBack=false, BrowserFavorites=false, - BrowserForward=false, BrowserHome=false, BrowserRefresh=false, BrowserSearch=false, BrowserStop=false, C=false, - Cancel=false, Capital=false, CapsLock=false, Clear=false, Control=false, ControlKey=false, Crsel=false, D=false, D0=false, - D1=false, D2=false, D3=false, D4=false, D5=false, D6=false, D7=false, D8=false, D9=false, Decimal=false, Delete=false, - Divide=false, Down=false, E=false, End=false, Enter=false, EraseEof=false, Escape=false, Execute=false, Exsel=false, - F=false, F1=false, F10=false, F11=false, F12=false, F13=false, F14=false, F15=false, F16=false, F17=false, F18=false, - F19=false, F2=false, F20=false, F21=false, F22=false, F23=false, F24=false, F3=false, F4=false, F5=false, F6=false, - F7=false, F8=false, F9=false, FinalMode=false, G=false, H=false, HanguelMode=false, HangulMode=false, HanjaMode=false, - Help=false, Home=false, I=false, IMEAccept=false, IMEAceept=false, IMEConvert=false, IMEModeChange=false, - IMENonconvert=false, Insert=false, J=false, JunjaMode=false, K=false, KanaMode=false, KanjiMode=false, KeyCode=false, - L=false, LaunchApplication1=false, LaunchApplication2=false, LaunchMail=false, LButton=false, LControlKey=false, - Left=false, LineFeed=false, LMenu=false, LShiftKey=false, LWin=false, M=false, MButton=false, MediaNextTrack=false, - MediaPlayPause=false, MediaPreviousTrack=false, MediaStop=false, Menu=false, Modifiers=false, Multiply=false, N=false, - Next=false, NoName=false, None=false, NumLock=false, NumPad0=false, NumPad1=false, NumPad2=false, NumPad3=false, - NumPad4=false, NumPad5=false, NumPad6=false, NumPad7=false, NumPad8=false, NumPad9=false, O=false, Oem1=false, - Oem102=false, Oem2=false, Oem3=false, Oem4=false, Oem5=false, Oem6=false, Oem7=false, Oem8=false, OemBackslash=false, - OemClear=false, OemCloseBrackets=false, Oemcomma=false, OemMinus=false, OemOpenBrackets=false, OemPeriod=false, - OemPipe=false, Oemplus=false, OemQuestion=false, OemQuotes=false, OemSemicolon=false, Oemtilde=false, P=false, Pa1=false, - Packet=false, PageDown=false, PageUp=false, Pause=false, Play=false, Print=false, PrintScreen=false, Prior=false, - ProcessKey=false, Q=false, R=false, RButton=false, RControlKey=false, Return=false, Right=false, RMenu=false, RShiftKey=false, - RWin=false, S=false, Scroll=false, Select=false, SelectMedia=false, Separator=false, Shift=false, ShiftKey=false, - Sleep=false, Snapshot=false, Space=false, Subtract=false, T=false, Tab=false, U=false, Up=false, V=false, VolumeDown=false, - VolumeMute=false, VolumeUp=false, W=false, X=false, XButton1=false, XButton2=false, Y=false, Z=false, Zoom=false -} - --- END OF CONFIG < < < < < < < ---############################################################################# --- INITIAL STATEMENTS: - - --- Load environment -local gui, input, joypad, emu, movie, memory, mainmemory, bit = gui, input, joypad, emu, movie, memory, mainmemory, bit -local unpack = unpack or table.unpack -local string, math, table, next, ipairs, pairs, io, os, type = string, math, table, next, ipairs, pairs, io, os, type - --- Script tries to verify whether the emulator is indeed BizHawk -if tastudio == nil then - gui.text(0, 0, "This script works with BizHawk emulator.") - error("This script works with BizHawk emulator.") -elseif gui.drawAxis == nil then - gui.text(0, 0, "This script works with BizHawk 1.11.0 or superior.") - gui.text(0, 16, "Your version seems to be older.") - gui.text(0, 32, "Visit http://tasvideos.org/Bizhawk.html to download the latest version.") - error("This script works with BizHawk 1.11.0 or superior.") -else - OLD_EMU_VERSION = client.SetGameExtraPadding == nil -end - -print("\nStarting smw-bizhawk script.") - --- TEST: INI library for handling an ini configuration file -function file_exists(name) - local f = io.open(name, "r") - if f ~= nil then io.close(f) return true else return false end -end - -function copytable(orig) - local orig_type = type(orig) - local copy - if orig_type == 'table' then - copy = {} - for orig_key, orig_value in next, orig, nil do - copy[copytable(orig_key)] = copytable(orig_value) -- possible stack overflow - end - setmetatable(copy, copytable(getmetatable(orig))) - else -- number, string, boolean, etc - copy = orig - end - return copy -end - -function mergetable(source, t2) - for key, value in pairs(t2) do - if type(value) == "table" then - if type(source[key] or false) == "table" then - mergetable(source[key] or {}, t2[key] or {}) -- possible stack overflow - else - source[key] = value - end - else - source[key] = value - end - end - return source -end - --- Creates a set from a list -local function make_set(list) - local set = {} - for _, l in ipairs(list) do set[l] = true end - return set -end - -local INI = {} - -function INI.arg_to_string(value) - local str - if type(value) == "string" then - str = "\"" .. value .. "\"" - elseif type(value) == "number" or type(value) == "boolean" or value == nil then - str = tostring(value) - elseif type(value) == "table" then - local tmp = {"{"} -- only arrays - for a, b in ipairs(value) do - table.insert(tmp, ("%s%s"):format(INI.arg_to_string(b), a ~= #value and ", " or "")) -- possible stack overflow - end - table.insert(tmp, "}") - str = table.concat(tmp) - else - str = "#BAD_VALUE" - end - - return str -end - --- creates the string for ini -function INI.data_to_string(data) - local sections = {} - - for section, prop in pairs(data) do - local properties = {} - - for key, value in pairs(prop) do - table.insert(properties, ("%s = %s\n"):format(key, INI.arg_to_string(value))) -- properties - end - - table.sort(properties) - table.insert(sections, ("[%s]\n"):format(section) .. table.concat(properties) .. "\n") - end - - table.sort(sections) - return table.concat(sections) -end - -function INI.string_to_data(value) - local data - - if tonumber(value) then - data = tonumber(value) - elseif value == "true" then - data = true - elseif value == "false" then - data = false - elseif value == "nil" then - data = nil - else - local quote1, text, quote2 = value:match("(['\"{])(.+)(['\"}])") -- value is surrounded by "", '' or {}? - if quote1 and quote2 and text then - if (quote1 == '"' or quote1 == "'") and quote1 == quote2 then - data = text - elseif quote1 == "{" and quote2 == "}" then - local tmp = {} -- test - for words in text:gmatch("[^,%s]+") do - tmp[#tmp + 1] = INI.string_to_data(words) -- possible stack overflow - end - - data = tmp - else - data = value - end - else - data = value - end - end - - return data -end - -function INI.load(filename) - local file = io.open(filename, "r") - if not file then return false end - - local data, section = {}, nil - - for line in file:lines() do - local new_section = line:match("^%[([^%[%]]+)%]$") - - if new_section then - section = INI.string_to_data(new_section) and INI.string_to_data(new_section) or new_section - if data[section] then print("Duplicated section") end - data[section] = data[section] or {} - else - - local prop, value = line:match("^([%w_%-%.]+)%s*=%s*(.+)%s*$") -- prop = value - - if prop and value then - value = INI.string_to_data(value) - prop = INI.string_to_data(prop) and INI.string_to_data(prop) or prop - - if data[section] == nil then print(prop, value) ; error("Property outside section") end - data[section][prop] = value - else - local ignore = line:match("^;") or line == "" - if not ignore then - print("BAD LINE:", line, prop, value) - end - end - - end - - end - - file:close() - return data -end - -function INI.retrieve(filename, data) - if type(data) ~= "table" then error"data must be a table" end - local data, previous_data = copytable(data), nil - - -- Verifies if file already exists - if file_exists(filename) then - ini_data = INI.load(filename) - else return data - end - - -- Adds previous values to the new ini - local union_data = mergetable(data, ini_data) - return union_data -end - -function INI.overwrite(filename, data) - local file, err = assert(io.open(filename, "w"), "Error loading file :" .. filename) - if not file then print(err) ; return end - - file:write(INI.data_to_string(data)) - file:close() -end - -function INI.save(filename, data) - if type(data) ~= "table" then error"data must be a table" end - - local tmp, previous_data - if file_exists(filename) then - previous_data = INI.load(filename) - tmp = mergetable(previous_data, data) - else - tmp = data - end - - INI.overwrite(filename, tmp) -end - -local function color_number(str) - local r, g, b, a = str:match("^#(%x+%x+)(%x+%x+)(%x+%x+)(%x+%x+)$") - if not a then print(str) return gui.color(str) end -- lsnes specific - - r, g, b, a = tonumber(r, 16), tonumber(g, 16), tonumber(b, 16), tonumber(a, 16) - return 0x1000000*a + 0x10000*r + 0x100*g + b -- BizHawk specific -end - -local OPTIONS = file_exists(INI_CONFIG_FILENAME) and - INI.retrieve(INI_CONFIG_FILENAME, {["BIZHAWK OPTIONS"] = DEFAULT_OPTIONS})["BIZHAWK OPTIONS"] or DEFAULT_OPTIONS -local COLOUR = file_exists(INI_CONFIG_FILENAME) and - INI.retrieve(INI_CONFIG_FILENAME, {["BIZHAWK COLOURS"] = DEFAULT_COLOUR})["BIZHAWK COLOURS"] or DEFAULT_COLOUR -INI.save(INI_CONFIG_FILENAME, {["BIZHAWK COLOURS"] = COLOUR}) -INI.save(INI_CONFIG_FILENAME, {["BIZHAWK OPTIONS"] = OPTIONS}) - -function interpret_color(data) - for k, v in pairs(data) do - if type(v) == "string" then - data[k] = type(v) == "string" and color_number(v) or v - elseif type(v) == "table" then - interpret_color(data[k]) -- possible stack overflow - end - end -end -interpret_color(COLOUR) - -function INI.save_options() - INI.save(INI_CONFIG_FILENAME, {["BIZHAWK OPTIONS"] = OPTIONS}) -end - ---######################## -- end of test - --- Text/Background_max_opacity is only changed by the player using the hotkeys --- Text/Bg_opacity must be used locally inside the functions -local Text_max_opacity = COLOUR.default_text_opacity -local Background_max_opacity = COLOUR.default_bg_opacity -local Text_opacity = 1 -local Bg_opacity = 1 - -local fmt = string.format -local floor = math.floor - --- unsigned to signed (based in bits) -local function signed(num, bits) - local maxval = 2^(bits - 1) - if num < maxval then return num else return num - 2*maxval end -end - --- Compatibility of the memory read/write functions -local u8 = mainmemory.read_u8 -local s8 = mainmemory.read_s8 -local w8 = mainmemory.write_u8 -local u16 = mainmemory.read_u16_le -local s16 = mainmemory.read_s16_le -local w16 = mainmemory.write_u16_le -local u24 = mainmemory.read_u24_le -local s24 = mainmemory.read_s24_le -local w24 = mainmemory.write_u32_le - - ---############################################################################# --- GAME AND SNES SPECIFIC MACROS: - - -local NTSC_FRAMERATE = 60.0988138974405 -local PAL_FRAMERATE = 50.0069789081886 - -local SMW = { - -- Game Modes - game_mode_overworld = 0x0e, - game_mode_level = 0x14, - - -- Sprites - sprite_max = 12, - extended_sprite_max = 10, - cluster_sprite_max = 20, - minor_extended_sprite_max = 12, - bounce_sprite_max = 4, - null_sprite_id = 0xff, - - -- Blocks - blank_tile_map16 = 0x25, -} - -WRAM = { - -- I/O - ctrl_1_1 = 0x0015, - ctrl_1_2 = 0x0017, - firstctrl_1_1 = 0x0016, - firstctrl_1_2 = 0x0018, - - -- General - game_mode = 0x0100, - real_frame = 0x0013, - effective_frame = 0x0014, - lag_indicator = 0x01fe, - timer_frame_counter = 0x0f30, - RNG = 0x148d, - current_level = 0x00fe, -- plus 1 - sprite_memory_header = 0x1692, - lock_animation_flag = 0x009d, -- Most codes will still run if this is set, but almost nothing will move or animate. - level_mode_settings = 0x1925, - star_road_speed = 0x1df7, - star_road_timer = 0x1df8, - - -- Cheats - frozen = 0x13fb, - level_paused = 0x13d4, - level_index = 0x13bf, - room_index = 0x00ce, - level_flag_table = 0x1ea2, - level_exit_type = 0x0dd5, - midway_point = 0x13ce, - - -- Camera - camera_x = 0x1462, - camera_y = 0x1464, - screens_number = 0x005d, - hscreen_number = 0x005e, - vscreen_number = 0x005f, - vertical_scroll_flag_header = 0x1412, -- #$00 = Disable; #$01 = Enable; #$02 = Enable if flying/climbing/etc. - vertical_scroll_enabled = 0x13f1, - camera_scroll_timer = 0x1401, - - -- Sprites - sprite_status = 0x14c8, - sprite_number = 0x009e, - sprite_x_high = 0x14e0, - sprite_x_low = 0x00e4, - sprite_y_high = 0x14d4, - sprite_y_low = 0x00d8, - sprite_x_sub = 0x14f8, - sprite_y_sub = 0x14ec, - sprite_x_speed = 0x00b6, - sprite_y_speed = 0x00aa, - sprite_x_offscreen = 0x15a0, - sprite_y_offscreen = 0x186c, - sprite_miscellaneous1 = 0x00c2, - sprite_miscellaneous2 = 0x1504, - sprite_miscellaneous3 = 0x1510, - sprite_miscellaneous4 = 0x151c, - sprite_miscellaneous5 = 0x1528, - sprite_miscellaneous6 = 0x1534, - sprite_miscellaneous7 = 0x1540, - sprite_miscellaneous8 = 0x154c, - sprite_miscellaneous9 = 0x1558, - sprite_miscellaneous10 = 0x1564, - sprite_miscellaneous11 = 0x1570, - sprite_miscellaneous12 = 0x157c, - sprite_miscellaneous13 = 0x1594, - sprite_miscellaneous14 = 0x15ac, - sprite_miscellaneous15 = 0x1602, - sprite_miscellaneous16 = 0x160e, - sprite_miscellaneous17 = 0x1626, - sprite_miscellaneous18 = 0x163e, - sprite_miscellaneous19 = 0x187b, - sprite_underwater = 0x164a, - sprite_disable_cape = 0x1fe2, - sprite_1_tweaker = 0x1656, - sprite_2_tweaker = 0x1662, - sprite_3_tweaker = 0x166e, - sprite_4_tweaker = 0x167a, - sprite_5_tweaker = 0x1686, - sprite_6_tweaker = 0x190f, - sprite_tongue_wait = 0x14a3, - sprite_yoshi_squatting = 0x18af, - sprite_buoyancy = 0x190e, - - -- Extended sprites - extspr_number = 0x170b, - extspr_x_high = 0x1733, - extspr_x_low = 0x171f, - extspr_y_high = 0x1729, - extspr_y_low = 0x1715, - extspr_x_speed = 0x1747, - extspr_y_speed = 0x173d, - extspr_suby = 0x1751, - extspr_subx = 0x175b, - extspr_table = 0x1765, - extspr_table2 = 0x176f, - - -- Cluster sprites - cluspr_flag = 0x18b8, - cluspr_number = 0x1892, - cluspr_x_high = 0x1e3e, - cluspr_x_low = 0x1e16, - cluspr_y_high = 0x1e2a, - cluspr_y_low = 0x1e02, - cluspr_timer = 0x0f9a, - cluspr_table_1 = 0x0f4a, - cluspr_table_2 = 0x0f72, - cluspr_table_3 = 0x0f86, - reappearing_boo_counter = 0x190a, - - -- Minor extended sprites - minorspr_number = 0x17f0, - minorspr_x_high = 0x18ea, - minorspr_x_low = 0x1808, - minorspr_y_high = 0x1814, - minorspr_y_low = 0x17fc, - minorspr_xspeed = 0x182c, - minorspr_yspeed = 0x1820, - minorspr_x_sub = 0x1844, - minorspr_y_sub = 0x1838, - minorspr_timer = 0x1850, - - -- Bounce sprites - bouncespr_number = 0x1699, - bouncespr_x_high = 0x16ad, - bouncespr_x_low = 0x16a5, - bouncespr_y_high = 0x16a9, - bouncespr_y_low = 0x16a1, - bouncespr_timer = 0x16c5, - bouncespr_last_id = 0x18cd, - turn_block_timer = 0x18ce, - - -- Player - x = 0x0094, - y = 0x0096, - previous_x = 0x00d1, - previous_y = 0x00d3, - x_sub = 0x13da, - y_sub = 0x13dc, - x_speed = 0x007b, - x_subspeed = 0x007a, - y_speed = 0x007d, - direction = 0x0076, - is_ducking = 0x0073, - p_meter = 0x13e4, - take_off = 0x149f, - powerup = 0x0019, - cape_spin = 0x14a6, - cape_fall = 0x14a5, - cape_interaction = 0x13e8, - flight_animation = 0x1407, - diving_status = 0x1409, - player_animation_trigger = 0x0071, - climbing_status = 0x0074, - spinjump_flag = 0x140d, - player_blocked_status = 0x0077, - player_item = 0x0dc2, --hex - cape_x = 0x13e9, - cape_y = 0x13eb, - on_ground = 0x13ef, - on_ground_delay = 0x008d, - on_air = 0x0072, - can_jump_from_water = 0x13fa, - carrying_item = 0x148f, - mario_score = 0x0f34, - player_coin = 0x0dbf, - player_looking_up = 0x13de, - - -- Yoshi - yoshi_riding_flag = 0x187a, -- #$00 = No, #$01 = Yes, #$02 = Yes, and turning around. - yoshi_tile_pos = 0x0d8c, - - -- Timer - --keep_mode_active = 0x0db1, - pipe_entrance_timer = 0x0088, - score_incrementing = 0x13d6, - end_level_timer = 0x1493, - multicoin_block_timer = 0x186b, - gray_pow_timer = 0x14ae, - blue_pow_timer = 0x14ad, - dircoin_timer = 0x190c, - pballoon_timer = 0x1891, - star_timer = 0x1490, - animation_timer = 0x1496,-- - invisibility_timer = 0x1497, - fireflower_timer = 0x149b, - yoshi_timer = 0x18e8, - swallow_timer = 0x18ac, - lakitu_timer = 0x18e0, - spinjump_fireball_timer = 0x13e2, - - -- Layers - layer2_x_nextframe = 0x1466, - layer2_y_nextframe = 0x1468, -} -local WRAM = WRAM - -local X_INTERACTION_POINTS = {center = 0x8, left_side = 0x2 + 1, left_foot = 0x5, right_side = 0xe - 1, right_foot = 0xb} - -local Y_INTERACTION_POINTS = { - {head = 0x10, center = 0x18, shoulder = 0x16, side = 0x1a, foot = 0x20, sprite = 0x15}, - {head = 0x08, center = 0x12, shoulder = 0x0f, side = 0x1a, foot = 0x20, sprite = 0x07}, - {head = 0x13, center = 0x1d, shoulder = 0x19, side = 0x28, foot = 0x30, sprite = 0x19}, - {head = 0x10, center = 0x1a, shoulder = 0x16, side = 0x28, foot = 0x30, sprite = 0x11} -} - -local HITBOX_SPRITE = { -- sprites' hitbox against player and other sprites - [0x00] = { xoff = 2, yoff = 3, width = 12, height = 10, oscillation = true }, - [0x01] = { xoff = 2, yoff = 3, width = 12, height = 21, oscillation = true }, - [0x02] = { xoff = 16, yoff = -2, width = 16, height = 18, oscillation = true }, - [0x03] = { xoff = 20, yoff = 8, width = 8, height = 8, oscillation = true }, - [0x04] = { xoff = 0, yoff = -2, width = 48, height = 14, oscillation = true }, - [0x05] = { xoff = 0, yoff = -2, width = 80, height = 14, oscillation = true }, - [0x06] = { xoff = 1, yoff = 2, width = 14, height = 24, oscillation = true }, - [0x07] = { xoff = 8, yoff = 8, width = 40, height = 48, oscillation = true }, - [0x08] = { xoff = -8, yoff = -2, width = 32, height = 16, oscillation = true }, - [0x09] = { xoff = -2, yoff = 8, width = 20, height = 30, oscillation = true }, - [0x0a] = { xoff = 3, yoff = 7, width = 1, height = 2, oscillation = true }, - [0x0b] = { xoff = 6, yoff = 6, width = 3, height = 3, oscillation = true }, - [0x0c] = { xoff = 1, yoff = -2, width = 13, height = 22, oscillation = true }, - [0x0d] = { xoff = 0, yoff = -4, width = 15, height = 16, oscillation = true }, - [0x0e] = { xoff = 6, yoff = 6, width = 20, height = 20, oscillation = true }, - [0x0f] = { xoff = 2, yoff = -2, width = 36, height = 18, oscillation = true }, - [0x10] = { xoff = 0, yoff = -2, width = 15, height = 32, oscillation = true }, - [0x11] = { xoff = -24, yoff = -24, width = 64, height = 64, oscillation = true }, - [0x12] = { xoff = -4, yoff = 16, width = 8, height = 52, oscillation = true }, - [0x13] = { xoff = -4, yoff = 16, width = 8, height = 116, oscillation = true }, - [0x14] = { xoff = 4, yoff = 2, width = 24, height = 12, oscillation = true }, - [0x15] = { xoff = 0, yoff = -2, width = 15, height = 14, oscillation = true }, - [0x16] = { xoff = -4, yoff = -12, width = 24, height = 24, oscillation = true }, - [0x17] = { xoff = 2, yoff = 8, width = 12, height = 69, oscillation = true }, - [0x18] = { xoff = 2, yoff = 19, width = 12, height = 58, oscillation = true }, - [0x19] = { xoff = 2, yoff = 35, width = 12, height = 42, oscillation = true }, - [0x1a] = { xoff = 2, yoff = 51, width = 12, height = 26, oscillation = true }, - [0x1b] = { xoff = 2, yoff = 67, width = 12, height = 10, oscillation = true }, - [0x1c] = { xoff = 0, yoff = 10, width = 10, height = 48, oscillation = true }, - [0x1d] = { xoff = 2, yoff = -3, width = 28, height = 27, oscillation = true }, - [0x1e] = { xoff = 6, yoff = -8, width = 3, height = 32, oscillation = true }, -- default: { xoff = -32, yoff = -8, width = 48, height = 32, oscillation = true }, - [0x1f] = { xoff = -16, yoff = -4, width = 48, height = 18, oscillation = true }, - [0x20] = { xoff = -4, yoff = -24, width = 8, height = 24, oscillation = true }, - [0x21] = { xoff = -4, yoff = 16, width = 8, height = 24, oscillation = true }, - [0x22] = { xoff = 0, yoff = 0, width = 16, height = 16, oscillation = true }, - [0x23] = { xoff = -8, yoff = -24, width = 32, height = 32, oscillation = true }, - [0x24] = { xoff = -12, yoff = 32, width = 56, height = 56, oscillation = true }, - [0x25] = { xoff = -14, yoff = 4, width = 60, height = 20, oscillation = true }, - [0x26] = { xoff = 0, yoff = 88, width = 32, height = 8, oscillation = true }, - [0x27] = { xoff = -4, yoff = -4, width = 24, height = 24, oscillation = true }, - [0x28] = { xoff = -14, yoff = -24, width = 28, height = 40, oscillation = true }, - [0x29] = { xoff = -16, yoff = -4, width = 32, height = 27, oscillation = true }, - [0x2a] = { xoff = 2, yoff = -8, width = 12, height = 19, oscillation = true }, - [0x2b] = { xoff = 0, yoff = 2, width = 16, height = 76, oscillation = true }, - [0x2c] = { xoff = -8, yoff = -8, width = 16, height = 16, oscillation = true }, - [0x2d] = { xoff = 4, yoff = 4, width = 8, height = 4, oscillation = true }, - [0x2e] = { xoff = 2, yoff = -2, width = 28, height = 34, oscillation = true }, - [0x2f] = { xoff = 2, yoff = -2, width = 28, height = 32, oscillation = true }, - [0x30] = { xoff = 8, yoff = -14, width = 16, height = 28, oscillation = true }, - [0x31] = { xoff = 0, yoff = -2, width = 48, height = 18, oscillation = true }, - [0x32] = { xoff = 0, yoff = -2, width = 48, height = 18, oscillation = true }, - [0x33] = { xoff = 0, yoff = -2, width = 64, height = 18, oscillation = true }, - [0x34] = { xoff = -4, yoff = -4, width = 8, height = 8, oscillation = true }, - [0x35] = { xoff = 3, yoff = 0, width = 18, height = 32, oscillation = true }, - [0x36] = { xoff = 8, yoff = 8, width = 52, height = 46, oscillation = true }, - [0x37] = { xoff = 0, yoff = -8, width = 15, height = 20, oscillation = true }, - [0x38] = { xoff = 8, yoff = 16, width = 32, height = 40, oscillation = true }, - [0x39] = { xoff = 4, yoff = 3, width = 8, height = 10, oscillation = true }, - [0x3a] = { xoff = -8, yoff = 16, width = 32, height = 16, oscillation = true }, - [0x3b] = { xoff = 0, yoff = 0, width = 16, height = 13, oscillation = true }, - [0x3c] = { xoff = 12, yoff = 10, width = 3, height = 6, oscillation = true }, - [0x3d] = { xoff = 12, yoff = 21, width = 3, height = 20, oscillation = true }, - [0x3e] = { xoff = 16, yoff = 18, width = 254, height = 16, oscillation = true }, - [0x3f] = { xoff = 8, yoff = 8, width = 8, height = 24, oscillation = true } -} - -local OBJ_CLIPPING_SPRITE = { -- sprites' interaction points against objects - [0x0] = {xright = 14, xleft = 2, xdown = 8, xup = 8, yright = 8, yleft = 8, ydown = 16, yup = 2}, - [0x1] = {xright = 14, xleft = 2, xdown = 7, xup = 7, yright = 18, yleft = 18, ydown = 32, yup = 2}, - [0x2] = {xright = 7, xleft = 7, xdown = 7, xup = 7, yright = 7, yleft = 7, ydown = 7, yup = 7}, - [0x3] = {xright = 14, xleft = 2, xdown = 8, xup = 8, yright = 16, yleft = 16, ydown = 32, yup = 11}, - [0x4] = {xright = 16, xleft = 0, xdown = 8, xup = 8, yright = 18, yleft = 18, ydown = 32, yup = 2}, - [0x5] = {xright = 13, xleft = 2, xdown = 8, xup = 8, yright = 24, yleft = 24, ydown = 32, yup = 16}, - [0x6] = {xright = 7, xleft = 0, xdown = 4, xup = 4, yright = 4, yleft = 4, ydown = 8, yup = 0}, - [0x7] = {xright = 31, xleft = 1, xdown = 16, xup = 16, yright = 16, yleft = 16, ydown = 31, yup = 1}, - [0x8] = {xright = 15, xleft = 0, xdown = 8, xup = 8, yright = 8, yleft = 8, ydown = 15, yup = 0}, - [0x9] = {xright = 16, xleft = 0, xdown = 8, xup = 8, yright = 8, yleft = 8, ydown = 16, yup = 0}, - [0xa] = {xright = 13, xleft = 2, xdown = 8, xup = 8, yright = 72, yleft = 72, ydown = 80, yup = 66}, - [0xb] = {xright = 14, xleft = 2, xdown = 8, xup = 8, yright = 4, yleft = 4, ydown = 8, yup = 0}, - [0xc] = {xright = 13, xleft = 2, xdown = 8, xup = 8, yright = 0, yleft = 0, ydown = 0, yup = 0}, - [0xd] = {xright = 16, xleft = 0, xdown = 8, xup = 8, yright = 8, yleft = 8, ydown = 16, yup = 0}, - [0xe] = {xright = 31, xleft = 0, xdown = 16, xup = 16, yright = 8, yleft = 8, ydown = 16, yup = 0}, - [0xf] = {xright = 8, xleft = 8, xdown = 8, xup = 16, yright = 4, yleft = 1, ydown = 2, yup = 4} -} - -local HITBOX_EXTENDED_SPRITE = { -- extended sprites' hitbox - -- To fill the slots... - --[0] ={ xoff = 3, yoff = 3, width = 64, height = 64}, -- Free slot - [0x01] ={ xoff = 3, yoff = 3, width = 0, height = 0}, -- Puff of smoke with various objects - [0x0e] ={ xoff = 3, yoff = 3, width = 0, height = 0}, -- Wiggler's flower - [0x0f] ={ xoff = 3, yoff = 3, width = 0, height = 0}, -- Trail of smoke -- TODO: add experimental hitbox - [0x10] ={ xoff = 3, yoff = 3, width = 0, height = 0}, -- Spinjump stars - [0x12] ={ xoff = 3, yoff = 3, width = 0, height = 0}, -- Water bubble - -- extracted from ROM: - [0x02] = { xoff = 3, yoff = 3, width = 1, height = 1, color_line = COLOUR.fireball }, -- Reznor fireball - [0x03] = { xoff = 3, yoff = 3, width = 1, height = 1, color_line = COLOUR.fireball}, -- Flame left by hopping flame - [0x04] = { xoff = 4, yoff = 4, width = 8, height = 8}, -- Hammer - [0x05] = { xoff = 3, yoff = 3, width = 1, height = 1, color_line = COLOUR.fireball }, -- Player fireball - [0x06] = { xoff = 4, yoff = 4, width = 8, height = 8}, -- Bone from Dry Bones - [0x07] = { xoff = 0, yoff = 0, width = 0, height = 0}, -- Lava splash - [0x08] = { xoff = 0, yoff = 0, width = 0, height = 0}, -- Torpedo Ted shooter's arm - [0x09] = { xoff = 0, yoff = 0, width = 15, height = 15}, -- Unknown flickering object - [0x0a] = { xoff = 4, yoff = 2, width = 8, height = 12}, -- Coin from coin cloud game - [0x0b] = { xoff = 3, yoff = 3, width = 1, height = 1, color_line = COLOUR.fireball }, -- Piranha Plant fireball - [0x0c] = { xoff = 3, yoff = 3, width = 1, height = 1, color_line = COLOUR.fireball }, -- Lava Lotus's fiery objects - [0x0d] = { xoff = 3, yoff = 3, width = 1, height = 1, color_line = COLOUR.baseball }, -- Baseball - -- got experimentally: - [0x11] = { xoff = -0x1, yoff = -0x4, width = 11, height = 19}, -- Yoshi fireballs -} - -local HITBOX_CLUSTER_SPRITE = { -- got experimentally - --[0] -- Free slot - [0x01] = { xoff = 2, yoff = 0, width = 17, height = 21, oscillation = 2, phase = 1, color = COLOUR.awkward_hitbox, bg = COLOUR.awkward_hitbox_bg}, -- 1-Up from bonus game (glitched hitbox area) - [0x02] = { xoff = 4, yoff = 7, width = 7, height = 7, oscillation = 4}, -- Unused - [0x03] = { xoff = 4, yoff = 7, width = 7, height = 7, oscillation = 4}, -- Boo from Boo Ceiling - [0x04] = { xoff = 4, yoff = 7, width = 7, height = 7, oscillation = 4}, -- Boo from Boo Ring - [0x05] = { xoff = 4, yoff = 7, width = 7, height = 7, oscillation = 4}, -- Castle candle flame (meaningless hitbox) - [0x06] = { xoff = 2, yoff = 2, width = 12, height = 20, oscillation = 4, color = COLOUR.sumo_brother_flame}, -- Sumo Brother lightning flames - [0x07] = { xoff = 4, yoff = 7, width = 7, height = 7, oscillation = 4}, -- Reappearing Boo - [0x08] = { xoff = 4, yoff = 7, width = 7, height = 7, oscillation = 4}, -- Swooper bat from Swooper Death Bat Ceiling (untested) -} - -; -- 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 -local SPRITE_MEMORY_MAX = {[0] = 10, 6, 7, 6, 7, 5, 8, 5, 7, 9, 9, 4, 8, 6, 8, 9, 10, 6, 6} -- the max of sprites in a room - --- Creates a set from a list -local function make_set(list) - local set = {} - for _, l in ipairs(list) do set[l] = true end - return set -end - --- from sprite number, returns oscillation flag --- A sprite must be here iff it processes interaction with player every frame AND this bit is not working in the sprite_4_tweaker WRAM(0x167a) -local OSCILLATION_SPRITES = make_set{0x0e, 0x21, 0x29, 0x35, 0x54, 0x74, 0x75, 0x76, 0x77, 0x78, 0x81, 0x83, 0x87} - --- Sprites that have a custom hitbox drawing -local ABNORMAL_HITBOX_SPRITES = make_set{0x62, 0x63, 0x6b, 0x6c} - --- Sprites whose clipping interaction points usually matter -local GOOD_SPRITES_CLIPPING = make_set{ -0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xf, 0x10, 0x11, 0x13, 0x14, 0x18, -0x1b, 0x1d, 0x1f, 0x20, 0x26, 0x27, 0x29, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, -0x32, 0x34, 0x35, 0x3d, 0x3e, 0x3f, 0x40, 0x46, 0x47, 0x48, 0x4d, 0x4e, -0x51, 0x53, 0x6e, 0x6f, 0x70, 0x80, 0x81, 0x86, -0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa1, 0xa2, 0xa5, 0xa6, 0xa7, 0xab, 0xb2, -0xb4, 0xbb, 0xbc, 0xbd, 0xbf, 0xc3, 0xda, 0xdb, 0xdc, 0xdd, 0xdf -} - --- Extended sprites that don't interact with the player -local UNINTERESTING_EXTENDED_SPRITES = make_set{1, 7, 8, 0x0e, 0x10, 0x12} - - ---############################################################################# --- SCRIPT UTILITIES: - - --- Variables used in various functions -local Cheat = {} -- family of cheat functions and variables -local Previous = {} -local User_input = INPUT_KEYNAMES -- BizHawk -local Joypad = {} -local Layer1_tiles = {} -local Layer2_tiles = {} -local Is_lagged = nil -local Mario_boost_indicator = nil -local Show_player_point_position = false -local Sprites_info = {} -- keeps track of useful sprite info that might be used outside the main sprite function -local Sprite_hitbox = {} -- keeps track of what sprite slots must display the hitbox -local Options_form = {} -- BizHawk -local Bizhawk_loop_counter = 1 -- BizHawk specific, a hack for saving the ini regularly - --- Initialization of some tables -for i = 0, SMW.sprite_max -1 do - Sprites_info[i] = {} -end -for key = 0, SMW.sprite_max - 1 do - Sprite_hitbox[key] = {} - for number = 0, 0xff do - Sprite_hitbox[key][number] = {["sprite"] = true, ["block"] = GOOD_SPRITES_CLIPPING[number]} - end -end - - -local function copytable(orig) - local orig_type = type(orig) - local copy - if orig_type == 'table' then - copy = {} - for orig_key, orig_value in pairs(orig) do - copy[orig_key] = orig_value - end - else -- number, string, boolean, etc - copy = orig - end - return copy -end - - --- Sum of the digits of a integer -local function sum_digits(number) - local sum = 0 - while number > 0 do - sum = sum + number%10 - number = floor(number*0.1) - end - - return sum -end - - --- Transform the binary representation of base into a string --- For instance, if each bit of a number represents a char of base, then this function verifies what chars are on -local function decode_bits(data, base) - local i = 1 - local size = base:len() - local direct_concatenation = size <= 45 -- Performance: I found out that the .. operator is faster for 45 operations or less - local result - - if direct_concatenation then - result = "" - for ch in base:gmatch(".") do - if bit.test(data, size - i) then - result = result .. ch - else - result = result .. " " - end - i = i + 1 - end - else - result = {} - for ch in base:gmatch(".") do - if bit.test(data, size-i) then - result[i] = ch - else - result[i] = " " - end - i = i + 1 - end - result = table.concat(result) - end - - return result -end - - -bit.test = bit.check -- BizHawk - - --- Register a function to be executed on key press or release --- execution happens in the main loop -local Keys = {} -Keys.press = {} -Keys.release = {} -Keys.down, Keys.up, Keys.pressed, Keys.released = {}, {}, {}, {} -function Keys.registerkeypress(key, fn) - Keys.press[key] = fn -end -function Keys.registerkeyrelease(key, fn) - Keys.release[key] = fn -end - - --- A cross sign with pos and size -gui.crosshair = gui.drawAxis - - -local Movie_active, Readonly, Framecount, Lagcount, Rerecords, Game_region -local Lastframe_emulated, Starting_subframe_last_frame, Size_last_frame, Final_subframe_last_frame -local Nextframe, Starting_subframe_next_frame, Starting_subframe_next_frame, Final_subframe_next_frame -local function bizhawk_status() - Movie_active = movie.isloaded() -- BizHawk - Readonly = movie.getreadonly() -- BizHawk - Framecount = movie.length() -- BizHawk - Lagcount = emu.lagcount() -- BizHawk - Rerecords = movie.getrerecordcount() -- BizHawk - Is_lagged = emu.islagged() -- BizHawk - Game_region = emu.getdisplaytype() -- BizHawk - - -- Last frame info - Lastframe_emulated = emu.framecount() - - -- Next frame info (only relevant in readonly mode) - Nextframe = Lastframe_emulated + 1 -end - - --- Get screen values of the game and emulator areas -local Left_gap, Right_gap, Top_gap, Bottom_gap -local Border_left, Border_right, Border_top, Border_bottom -local Buffer_width, Buffer_height, Buffer_middle_x, Buffer_middle_y -local Screen_width, Screen_height, AR_x, AR_y -local function bizhawk_screen_info() - -- zero gaps in old versions - if OLD_EMU_VERSION then - Left_gap = 0 - Top_gap = 0 - Right_gap = 0 - Bottom_gap = 0 - else - Left_gap = OPTIONS.left_gap - Top_gap = OPTIONS.top_gap - Right_gap = OPTIONS.right_gap - Bottom_gap = OPTIONS.bottom_gap - end - - Screen_width = client.screenwidth() -- Screen area - Screen_height = client.screenheight() - Buffer_width = client.bufferwidth() -- Game area - Buffer_height = client.bufferheight() - Border_left = client.borderwidth() -- Borders' dimensions - Border_top = client.borderheight() - - -- BizHawk bug: buffer dimensions go crazy when emu is minimized - if Buffer_width == 0 then - Buffer_width, Screen_width = 256, 256 - Buffer_height, Screen_height = 224, 224 - Border_left, Border_top = 0, 0 - end - - -- Derived dimensions - Buffer_middle_x = floor(Buffer_width/2) - Buffer_middle_y = floor(Buffer_height/2) - Border_right = Screen_width - Buffer_width - Border_left - Border_bottom = Screen_height - Buffer_height - Border_top - AR_x = Buffer_width/256 - AR_y = Buffer_height/224 -end - - -local function mouse_onregion(x1, y1, x2, y2) - -- Reads external mouse coordinates - local mouse_x = User_input.xmouse*AR_x - local mouse_y = User_input.ymouse*AR_y - - -- From top-left to bottom-right - if x2 < x1 then - x1, x2 = x2, x1 - end - if y2 < y1 then - y1, y2 = y2, y1 - end - - if mouse_x >= x1 and mouse_x <= x2 and mouse_y >= y1 and mouse_y <= y2 then - return true - else - return false - end -end - - --- draw a pixel given (x,y) with SNES' pixel sizes -local draw_pixel = function(x, y, color) gui.drawPixel(x + Left_gap, y + Top_gap, color) end - - --- draws a line given (x,y) and (x',y') with given scale and SNES' pixel thickness (whose scale is 2) -local function draw_line(x1, y1, x2, y2, scale, color) - -- Draw from top-left to bottom-right - if x2 < x1 then - x1, x2 = x2, x1 - end - if y2 < y1 then - y1, y2 = y2, y1 - end - - x1, y1, x2, y2 = scale*x1, scale*y1, scale*x2, scale*y2 - gui.drawLine(x1 + Left_gap, y1 + Top_gap, x2 + Left_gap, y2 + Top_gap, color) -end - - --- draws a box given (x,y) and (x',y') with SNES' pixel sizes -local draw_box = function(x1, y1, x2, y2, line, bg) gui.drawBox(x1 + Left_gap, y1 + Top_gap, x2 + Left_gap, y2 + Top_gap, line, bg) end - - --- draws a rectangle given (x,y) and dimensions, with SNES' pixel sizes -local draw_rectangle = function(x, y, w, h, line, bg) gui.drawRectangle(x + Left_gap, y + Top_gap, w, h, line, bg) end - - --- Changes transparency of a color: result is opaque original * transparency level (0.0 to 1.0). -local function change_transparency(color, transparency) - -- Sane transparency - if transparency >= 1 then return color end -- no transparency - if transparency <= 0 then return 0 end -- total transparency - - -- Sane colour - if color == 0 then return 0 end - if type(color) ~= "number" then - print(color) - error"Wrong color" - end - - local a = floor(color/0x1000000) - local rgb = color - a*0x1000000 - local new_a = floor(a*transparency) - return new_a*0x1000000 + rgb -end - - --- returns the (x, y) position to start the text and its length: --- number, number, number text_position(x, y, text, font_width, font_height[[[[, always_on_client], always_on_game], ref_x], ref_y]) --- x, y: the coordinates that the refereed point of the text must have --- text: a string, don't make it bigger than the buffer area width and don't include escape characters --- font_width, font_height: the sizes of the font --- always_on_client, always_on_game: boolean --- ref_x and ref_y: refer to the relative point of the text that must occupy the origin (x,y), from 0% to 100% --- for instance, if you want to display the middle of the text in (x, y), then use 0.5, 0.5 -local function text_position(x, y, text, font_width, font_height, always_on_client, always_on_game, ref_x, ref_y) - -- Reads external variables - local border_left = Border_left - local border_right = Border_right - local border_top = Border_top - local border_bottom = Border_bottom - local buffer_width = Buffer_width - local buffer_height = Buffer_height - - -- text processing - local text_length = text and string.len(text)*font_width or font_width -- considering another objects, like bitmaps - - -- actual position, relative to game area origin - x = (not ref_x and x) or (ref_x == 0 and x) or x - floor(text_length*ref_x) - y = (not ref_y and y) or (ref_y == 0 and y) or y - floor(font_height*ref_y) - - -- adjustment needed if text is supposed to be on screen area - local x_end = x + text_length - local y_end = y + font_height - - if always_on_game then - if x < 0 then x = 0 end - if y < 0 then y = 0 end - - if x_end > buffer_width then x = buffer_width - text_length end - if y_end > buffer_height then y = buffer_height - font_height end - - elseif always_on_client then - if x < -border_left then x = -border_left end - if y < -border_top then y = -border_top end - - if x_end > buffer_width + border_right then x = buffer_width + border_right - text_length end - if y_end > buffer_height + border_bottom then y = buffer_height + border_bottom - font_height end - end - - return x, y, text_length -end - - --- Complex function for drawing, that uses text_position -local function draw_text(x, y, text, ...) - -- Reads external variables - local font_name = Font or false - local font_width = BIZHAWK_FONT_WIDTH - local font_height = BIZHAWK_FONT_HEIGHT - local bg_default_color = font_name and COLOUR.outline or COLOUR.background - local text_color, bg_color, always_on_client, always_on_game, ref_x, ref_y - local arg1, arg2, arg3, arg4, arg5, arg6 = ... - - if not arg1 or arg1 == true then - - text_color = COLOUR.text - bg_color = bg_default_color - always_on_client, always_on_game, ref_x, ref_y = arg1, arg2, arg3, arg4 - - elseif not arg2 or arg2 == true then - - text_color = arg1 - bg_color = bg_default_color - always_on_client, always_on_game, ref_x, ref_y = arg2, arg3, arg4, arg5 - - else - - text_color, bg_color = arg1, arg2 - always_on_client, always_on_game, ref_x, ref_y = arg3, arg4, arg5, arg6 - - end - - local x_pos, y_pos, length = text_position(x, y, text, font_width, font_height, - always_on_client, always_on_game, ref_x, ref_y) - ; - - text_color = change_transparency(text_color, Text_max_opacity * Text_opacity) - bg_color = change_transparency(bg_color, Text_max_opacity * Text_opacity) - gui.text(x_pos + Border_left, y_pos + Border_top, text, OLD_EMU_VERSION and bg_color or text_color, OLD_EMU_VERSION and text_color or bg_color) - - return x_pos + length, y_pos + font_height, length -end - - -local function alert_text(x, y, text, text_color, bg_color, always_on_game, ref_x, ref_y) - -- Reads external variables - local font_width = BIZHAWK_FONT_WIDTH - local font_height = BIZHAWK_FONT_HEIGHT - - local x_pos, y_pos, text_length = text_position(x, y, text, font_width, font_height, false, always_on_game, ref_x, ref_y) - - if not bg_color then bg_color = BACKGROUND_COLOR end - text_color = change_transparency(text_color, Text_max_opacity * Text_opacity) - bg_color = change_transparency(bg_color, Background_max_opacity * Bg_opacity) - - draw_box(x_pos/AR_x, y_pos/AR_y, (x_pos + text_length)/AR_x + 2, (y_pos + font_height)/AR_y + 1, 0, bg_color) - gui.text(x_pos + Border_left, y_pos + Border_top, text, OLD_EMU_VERSION and 0 or text_color, OLD_EMU_VERSION and text_color or 0) -end - - -local function draw_over_text(x, y, value, base, color_base, color_value, color_bg, always_on_client, always_on_game, ref_x, ref_y) - value = decode_bits(value, base) - local x_end, y_end, length = draw_text(x, y, base, color_base, color_bg, always_on_client, always_on_game, ref_x, ref_y) - - change_transparency(color_value or COLOUR.text, Text_max_opacity * Text_opacity) - gui.text(x_end + Border_left - length, y_end + Border_top - BIZHAWK_FONT_HEIGHT, value, - OLD_EMU_VERSION and 0 or color_value, OLD_EMU_VERSION and color_value or 0) -- BizHawk - ; - - return x_end, y_end, length -end - - --- Returns frames-time conversion -local function frame_time(frame) - local total_seconds = frame/(Game_region == "NTSC" and NTSC_FRAMERATE or PAL_FRAMERATE) - local hours = floor(total_seconds/3600) - local tmp = total_seconds - 3600*hours - local minutes = floor(tmp/60) - tmp = tmp - 60*minutes - local seconds = floor(tmp) - - local miliseconds = 1000* (total_seconds%1) - if hours == 0 then hours = "" else hours = string.format("%d:", hours) end - local str = string.format("%s%.2d:%.2d.%03.0f", hours, minutes, seconds, miliseconds) - return str -end - - --- Background opacity functions -local function increase_opacity() - if Text_max_opacity <= 0.9 then Text_max_opacity = Text_max_opacity + 0.1 - else - if Background_max_opacity <= 0.9 then Background_max_opacity = Background_max_opacity + 0.1 end - end -end - - -local function decrease_opacity() - if Background_max_opacity >= 0.1 then Background_max_opacity = Background_max_opacity - 0.1 - else - if Text_max_opacity >= 0.1 then Text_max_opacity = Text_max_opacity - 0.1 end - end -end - - - ---############################################################################# --- SMW FUNCTIONS: - - --- Returns the id of Yoshi; if more than one, the lowest sprite slot -local function get_yoshi_id() - for i = 0, SMW.sprite_max - 1 do - local id = u8(WRAM.sprite_number + i) - local status = u8(WRAM.sprite_status + i) - if id == 0x35 and status ~= 0 then return i end - end - - return nil -end - - -local Real_frame, Previous_real_frame, Effective_frame, Game_mode -local Level_index, Room_index, Level_flag, Current_level -local Is_paused, Lock_animation_flag, Player_powerup, Player_animation_trigger -local Camera_x, Camera_y -local function scan_smw() - Previous_real_frame = Real_frame or u8(WRAM.real_frame) - Real_frame = u8(WRAM.real_frame) - Effective_frame = u8(WRAM.effective_frame) - Game_mode = u8(WRAM.game_mode) - Level_index = u8(WRAM.level_index) - Level_flag = u8(WRAM.level_flag_table + Level_index) - Is_paused = u8(WRAM.level_paused) == 1 - Lock_animation_flag = u8(WRAM.lock_animation_flag) - Room_index = u24(WRAM.room_index) - - -- In level frequently used info - Player_animation_trigger = u8(WRAM.player_animation_trigger) - Player_powerup = u8(WRAM.powerup) - Camera_x = s16(WRAM.camera_x) - Camera_y = s16(WRAM.camera_y) - Yoshi_riding_flag = u8(WRAM.yoshi_riding_flag) ~= 0 - Yoshi_id = get_yoshi_id() -end - - --- Converts the in-game (x, y) to SNES-screen coordinates -local function screen_coordinates(x, y, camera_x, camera_y) - -- Sane values - camera_x = camera_x or Camera_x or u8(WRAM.camera_x) - camera_y = camera_y or Camera_y or u8(WRAM.camera_y) - - local x_screen = (x - camera_x) - local y_screen = (y - camera_y) - Y_CAMERA_OFF - - return x_screen, y_screen -end - - --- Converts BizHawk/emu-screen coordinates to in-game (x, y) -local function game_coordinates(x_emu, y_emu, camera_x, camera_y) - -- Sane values - camera_x = camera_x or Camera_x or u8(WRAM.camera_x) - camera_y = camera_y or Camera_y or u8(WRAM.camera_y) - - local x_game = x_emu + camera_x - local y_game = y_emu + Y_CAMERA_OFF + camera_y - - return x_game, y_game -end - - --- Returns the extreme values that Mario needs to have in order to NOT touch a rectangular object -local function display_boundaries(x_game, y_game, width, height, camera_x, camera_y) - -- Font - Text_opacity = 0.6 - Bg_opacity = 0.4 - - -- Coordinates around the rectangle - local left = width*floor(x_game/width) - local top = height*floor(y_game/height) - left, top = screen_coordinates(left, top, camera_x, camera_y) - local right = left + width - 1 - local bottom = top + height - 1 - - -- Reads WRAM values of the player - local is_ducking = u8(WRAM.is_ducking) - local powerup = Player_powerup - local is_small = is_ducking ~= 0 or powerup == 0 - - -- Left - local left_text = string.format("%4d.0", width*floor(x_game/width) - 13) - draw_text(AR_x*left, AR_y*(top+bottom)/2, left_text, false, false, 1.0, 0.5) - - -- Right - local right_text = string.format("%d.f", width*floor(x_game/width) + 12) - draw_text(AR_x*right, AR_y*(top+bottom)/2, right_text, false, false, 0.0, 0.5) - - -- Top - local value = (Yoshi_riding_flag and y_game - 16) or y_game - local top_text = fmt("%d.0", width*floor(value/width) - 32) - draw_text(AR_x*(left+right)/2, AR_y*top, top_text, false, false, 0.5, 1.0) - - -- Bottom - value = height*floor(y_game/height) - if not is_small and not Yoshi_riding_flag then - value = value + 0x07 - elseif is_small and Yoshi_riding_flag then - value = value - 4 - else - value = value - 1 -- the 2 remaining cases are equal - end - - local bottom_text = fmt("%d.f", value) - draw_text(AR_x*(left+right)/2, AR_y*bottom, bottom_text, false, false, 0.5, 0.0) - - return left, top -end - - -local function read_screens() - local screens_number = u8(WRAM.screens_number) - local vscreen_number = u8(WRAM.vscreen_number) - local hscreen_number = u8(WRAM.hscreen_number) - 1 - local vscreen_current = s8(WRAM.y + 1) - local hscreen_current = s8(WRAM.x + 1) - local level_mode_settings = u8(WRAM.level_mode_settings) - --local b1, b2, b3, b4, b5, b6, b7, b8 = bit.multidiv(level_mode_settings, 128, 64, 32, 16, 8, 4, 2) - --draw_text(Buffer_middle_x, Buffer_middle_y, {"%x: %x%x%x%x%x%x%x%x", level_mode_settings, b1, b2, b3, b4, b5, b6, b7, b8}, COLOUR.text, COLOUR.background) - - local level_type - if (level_mode_settings ~= 0) and (level_mode_settings == 0x3 or level_mode_settings == 0x4 or level_mode_settings == 0x7 - or level_mode_settings == 0x8 or level_mode_settings == 0xa or level_mode_settings == 0xd) then - level_type = "Vertical" - ; - else - level_type = "Horizontal" - end - - return level_type, screens_number, hscreen_current, hscreen_number, vscreen_current, vscreen_number -end - - -local function get_map16_value(x_game, y_game) - local num_x = floor(x_game/16) - local num_y = floor(y_game/16) - if num_x < 0 or num_y < 0 then return end -- 1st breakpoint - - local level_type, screens, _, hscreen_number, _, vscreen_number = read_screens() - local max_x, max_y - if level_type == "Horizontal" then - max_x = 16*(hscreen_number + 1) - max_y = 27 - else - max_x = 32 - max_y = 16*(vscreen_number + 1) - end - - if num_x > max_x or num_y > max_y then return end -- 2nd breakpoint - - local num_id, kind, address - if level_type == "Horizontal" then - num_id = 16*27*floor(num_x/16) + 16*num_y + num_x%16 - else - local nx = floor(num_x/16) - local ny = floor(num_y/16) - local n = 2*ny + nx - num_id = 16*16*n + 16*(num_y%16) + num_x%16 - end - if (num_id >= 0 and num_id <= 0x37ff) then - address = fmt(" $%4.x", 0xc800 + num_id) - kind = 256*u8(0x1c800 + num_id) + u8(0xc800 + num_id) - end - - if kind then return num_x, num_y, kind, address end -end - - -local function draw_layer1_tiles(camera_x, camera_y) - local x_origin, y_origin = screen_coordinates(0, 0, camera_x, camera_y) - local x_mouse, y_mouse = game_coordinates(User_input.xmouse, User_input.ymouse, camera_x, camera_y) - x_mouse = 16*floor(x_mouse/16) - y_mouse = 16*floor(y_mouse/16) - local push_direction = Real_frame%2 == 0 and 0 or 7 -- block pushes sprites to left or right? - - for number, positions in ipairs(Layer1_tiles) do - -- Calculate the Lsnes coordinates - local left = positions[1] + x_origin - local top = positions[2] + y_origin - local right = left + 15 - local bottom = top + 15 - local x_game, y_game = game_coordinates(left, top, camera_x, camera_y) - - -- Returns if block is way too outside the screen - if left > - Border_left - 32 and top > - Border_top - 32 and - right < Screen_width + Border_right + 32 and bottom < Screen_height + Border_bottom + 32 then - - -- Drawings - Text_opacity = 1.0 - local num_x, num_y, kind, address = get_map16_value(x_game, y_game) - if kind then - if kind >= 0x111 and kind <= 0x16d or kind == 0x2b then - -- default solid blocks, don't know how to include custom blocks - draw_rectangle(left + push_direction, top, 8, 15, 0, COLOUR.block_bg) - end - draw_rectangle(left, top, 15, 15, kind == SMW.blank_tile_map16 and COLOUR.blank_tile or COLOUR.block, 0) - - if Layer1_tiles[number][3] then - display_boundaries(x_game, y_game, 16, 16, camera_x, camera_y) -- the text around it - end - - -- Draw Map16 id - Text_opacity = 1.0 - if kind and x_mouse == positions[1] and y_mouse == positions[2] then - draw_text(AR_x*(left + 4), AR_y*top - BIZHAWK_FONT_HEIGHT, fmt("Map16 (%d, %d), %x%s", num_x, num_y, kind, address), - false, false, 0.5, 1.0) - end - end - - end - - end - -end - - -local function draw_layer2_tiles() - local layer2x = s16(WRAM.layer2_x_nextframe) - local layer2y = s16(WRAM.layer2_y_nextframe) - - for number, positions in ipairs(Layer2_tiles) do - draw_rectangle(-layer2x + positions[1], -layer2y + positions[2], 15, 15, COLOUR.layer2_line, COLOUR.layer2_bg) - end -end - - --- if the user clicks in a tile, it will be be drawn --- if click is onto drawn region, it'll be erased --- there's a max of possible tiles --- layer_table[n] is an array {x, y, [draw info?]} -local function select_tile(x, y, layer_table) - if not OPTIONS.draw_tiles_with_click then return end - if Game_mode ~= SMW.game_mode_level then return end - - for number, positions in ipairs(layer_table) do -- if mouse points a drawn tile, erase it - if x == positions[1] and y == positions[2] then - -- Layer 1 - if layer_table == Layer1_tiles then - if layer_table[number][3] == false then - layer_table[number][3] = true - else - table.remove(layer_table, number) - end - -- Layer 2 - elseif layer_table == Layer2_tiles then - table.remove(layer_table, number) - end - - return - end - end - - -- otherwise, draw a new tile - if #layer_table == OPTIONS.max_tiles_drawn then - table.remove(layer_table, 1) - layer_table[OPTIONS.max_tiles_drawn] = {x, y, false} - else - table.insert(layer_table, {x, y, false}) - end - -end - - --- uses the mouse to select an object -local function select_object(mouse_x, mouse_y, camera_x, camera_y) - -- Font - Text_opacity = 1.0 - Bg_opacity = 0.5 - - local x_game, y_game = game_coordinates(mouse_x, mouse_y, camera_x, camera_y) - local obj_id - - -- Checks if the mouse is over Mario - local x_player = s16(WRAM.x) - local y_player = s16(WRAM.y) - if x_player + 0xe >= x_game and x_player + 0x2 <= x_game and y_player + 0x30 >= y_game and y_player + 0x8 <= y_game then - obj_id = "Mario" - end - - if not obj_id and OPTIONS.display_sprite_info then - for id = 0, SMW.sprite_max - 1 do - local sprite_status = u8(WRAM.sprite_status + id) - if sprite_status ~= 0 and Sprites_info[id].x then -- TODO: see why the script gets here without exporting Sprites_info - -- Import some values - local x_sprite, y_sprite = Sprites_info[id].x, Sprites_info[id].y - local x_screen, y_screen = Sprites_info[id].x_screen, Sprites_info[id].y_screen - local boxid = Sprites_info[id].boxid - local xoff, yoff = Sprites_info[id].xoff, Sprites_info[id].yoff - local width, height = Sprites_info[id].width, Sprites_info[id].height - - if x_sprite + xoff + width >= x_game and x_sprite + xoff <= x_game and - y_sprite + yoff + height >= y_game and y_sprite + yoff <= y_game then - obj_id = id - break - end - end - end - end - - if not obj_id then return end - - draw_text(AR_x*User_input.xmouse, AR_y*(User_input.ymouse - 8), obj_id, true, false, 0.5, 1.0) - return obj_id, x_game, y_game -end - - --- This function sees if the mouse if over some object, to change its hitbox mode --- The order is: 1) player, 2) sprite. -local function right_click() - local id = select_object(User_input.xmouse, User_input.ymouse, Camera_x, Camera_y) - - if tostring(id) == "Mario" then - - if OPTIONS.display_player_hitbox and OPTIONS.display_interaction_points then - OPTIONS.display_interaction_points = false - OPTIONS.display_player_hitbox = false - elseif OPTIONS.display_player_hitbox then - OPTIONS.display_interaction_points = true - OPTIONS.display_player_hitbox = false - elseif OPTIONS.display_interaction_points then - OPTIONS.display_player_hitbox = true - else - OPTIONS.display_player_hitbox = true - end - - end - if id then return end - - local spr_id = tonumber(id) - if spr_id and spr_id >= 0 and spr_id <= SMW.sprite_max - 1 then - - local number = Sprites_info[spr_id].number - if Sprite_hitbox[spr_id][number].sprite and Sprite_hitbox[spr_id][number].block then - Sprite_hitbox[spr_id][number].sprite = false - Sprite_hitbox[spr_id][number].block = false - elseif Sprite_hitbox[spr_id][number].sprite then - Sprite_hitbox[spr_id][number].block = true - Sprite_hitbox[spr_id][number].sprite = false - elseif Sprite_hitbox[spr_id][number].block then - Sprite_hitbox[spr_id][number].sprite = true - else - Sprite_hitbox[spr_id][number].sprite = true - end - - end - if id then return end - - -- Select layer 2 tiles - local layer2x = s16(WRAM.layer2_x_nextframe) - local layer2y = s16(WRAM.layer2_y_nextframe) - local x_mouse, y_mouse = User_input.xmouse + layer2x, User_input.ymouse + layer2y - select_tile(16*floor(x_mouse/16), 16*floor(y_mouse/16) - Y_CAMERA_OFF, Layer2_tiles) -end - - -local function show_movie_info() - if not OPTIONS.display_movie_info then - return - end - - -- Font - Text_opacity = 1.0 - Bg_opacity = 1.0 - local y_text = - Border_top - local x_text = 0 - local width = BIZHAWK_FONT_WIDTH - - local rec_color = (Readonly or not Movie_active) and COLOUR.text or COLOUR.warning - local recording_bg = (Readonly or not Movie_active) and COLOUR.background or COLOUR.warning_bg - - -- Read-only or read-write? - local movie_type = (not Movie_active and "No movie ") or (Readonly and "Movie " or "REC ") - alert_text(x_text, y_text, movie_type, rec_color, recording_bg) - - if Movie_active then - -- Frame count - x_text = x_text + width*string.len(movie_type) - local movie_info - if Readonly then - movie_info = string.format("%d/%d", Lastframe_emulated, Framecount) - else - movie_info = string.format("%d", Lastframe_emulated) - end - draw_text(x_text, y_text, movie_info) -- Shows the latest frame emulated, not the frame being run now - - -- Rerecord count - x_text = x_text + width*string.len(movie_info) - local rr_info = string.format(" %d ", Rerecords) - draw_text(x_text, y_text, rr_info, COLOUR.weak) - - -- Lag count - x_text = x_text + width*string.len(rr_info) - draw_text(x_text, y_text, Lagcount, COLOUR.warning) - end - - local str = frame_time(Lastframe_emulated) -- Shows the latest frame emulated, not the frame being run now - alert_text(Buffer_width, Buffer_height, str, COLOUR.text, recording_bg, false, 1.0, 1.0) - -end - - -local function show_misc_info() - if not OPTIONS.display_misc_info then - return - end - - -- Font - Text_opacity = 1.0 - Bg_opacity = 1.0 - - -- Display - local RNG = u16(WRAM.RNG) - local main_info = string.format("Frame(%02x, %02x) RNG(%04x) Mode(%02x)", - Real_frame, Effective_frame, RNG, Game_mode) - ; - - draw_text(Buffer_width + Border_right, -Border_top, main_info, true, false) - - if Game_mode == SMW.game_mode_level then - -- Time frame counter of the clock - Text_opacity = 1.0 - local timer_frame_counter = u8(WRAM.timer_frame_counter) - draw_text(AR_x*161, AR_y*15, fmt("%.2d", timer_frame_counter)) - - -- Score: sum of digits, useful for avoiding lag - Text_opacity = 0.5 - local score = u24(WRAM.mario_score) - draw_text(AR_x*240, AR_y*24, fmt("=%d", sum_digits(score)), COLOUR.weak) - end -end - - --- Shows the controller input as the RAM and SNES registers store it -local function show_controller_data() - if not (OPTIONS.display_debug_info and OPTIONS.display_debug_controller_data) then return end - - -- Font - Text_opacity = 0.9 - local height = BIZHAWK_FONT_HEIGHT - local x_pos, y_pos, x, y, _ = 0, 0, 0, BIZHAWK_FONT_HEIGHT - - x = draw_over_text(x_pos, y_pos, 256*u8(WRAM.ctrl_1_1) + u8(WRAM.ctrl_1_2), "BYsS^v<>AXLR0123", COLOUR.weak) - _, y = draw_text(x, y_pos, " (RAM data)", COLOUR.weak, false, true) - - x = x_pos - draw_over_text(x, y, 256*u8(WRAM.firstctrl_1_1) + u8(WRAM.firstctrl_1_2), "BYsS^v<>AXLR0123", 0, 0xff0000ff, 0) -end - - -local function level_info() - if not OPTIONS.display_level_info then - return - end - -- Font - local x_pos = Buffer_width + Border_right - local y_pos = - Border_top + BIZHAWK_FONT_HEIGHT - local color = COLOUR.text - Text_opacity = 1.0 - Bg_opacity = 1.0 - - local sprite_buoyancy = floor(u8(WRAM.sprite_buoyancy)/64) - if sprite_buoyancy == 0 then sprite_buoyancy = "" else - sprite_buoyancy = fmt(" %.2x", sprite_buoyancy) - color = COLOUR.warning - end - - -- converts the level number to the Lunar Magic number; should not be used outside here - local lm_level_number = Level_index - if Level_index > 0x24 then lm_level_number = Level_index + 0xdc end - - -- Number of screens within the level - local level_type, screens_number, hscreen_current, hscreen_number, vscreen_current, vscreen_number = read_screens() - - draw_text(x_pos, y_pos, fmt("%.1sLevel(%.2x)%s", level_type, lm_level_number, sprite_buoyancy), - color, true, false) - ; - - draw_text(x_pos, y_pos + BIZHAWK_FONT_HEIGHT, fmt("Screens(%d):", screens_number), true) - - draw_text(x_pos, y_pos + 2*BIZHAWK_FONT_HEIGHT, fmt("(%d/%d, %d/%d)", hscreen_current, hscreen_number, - vscreen_current, vscreen_number), true) - ; -end - - -function draw_blocked_status(x_text, y_text, player_blocked_status, x_speed, y_speed) - local block_width = 9 -- BizHawk - local block_height = 9 -- BizHawk - local block_str = "Block:" - local str_len = string.len(block_str) - local xoffset = (x_text + str_len*BIZHAWK_FONT_WIDTH)/AR_x - local yoffset = y_text/AR_y - local color_line = COLOUR.warning - - gui.drawRectangle(xoffset + Left_gap, yoffset + Top_gap, block_width - 1, block_height - 1, 0x40000000, 0x40ff0000) - - local blocked_status = {} - local was_boosted = false - - if bit.test(player_blocked_status, 0) then -- Right - draw_line(xoffset + block_width - 1, yoffset, xoffset + block_width - 1, yoffset + block_height - 1, 1, color_line) - if x_speed < 0 then was_boosted = true end - end - - if bit.test(player_blocked_status, 1) then -- Left - draw_line(xoffset, yoffset, xoffset, yoffset + block_height - 1, 1, color_line) - if x_speed > 0 then was_boosted = true end - end - - if bit.test(player_blocked_status, 2) then -- Down - draw_line(xoffset, yoffset + block_height - 1, xoffset + block_width - 1, yoffset + block_height - 1, 1, color_line) - end - - if bit.test(player_blocked_status, 3) then -- Up - draw_line(xoffset, yoffset, xoffset + block_width - 1, yoffset, 1, color_line) - if y_speed > 6 then was_boosted = true end - end - - if bit.test(player_blocked_status, 4) then -- Middle - gui.crosshair(xoffset + floor(block_width/2) + Left_gap, yoffset + floor(block_height/2) + Top_gap, -- BizHawk - math.min(block_width/3, block_height/3), color_line) - end - - draw_text(x_text, y_text, block_str, COLOUR.text, was_boosted and COLOUR.warning_bg or nil) - -end - - --- displays player's hitbox -local function player_hitbox(x, y, is_ducking, powerup, transparency_level) - local x_screen, y_screen = screen_coordinates(x, y, Camera_x, Camera_y) - local is_small = is_ducking ~= 0 or powerup == 0 - - -- Colors BizHawk - local is_transparent = transparency_level == 1 - local interaction_bg = is_transparent and COLOUR.interaction_bg or 0 - local mario_bg = is_transparent and COLOUR.mario_bg or 0 - local mario_mounted_bg = is_transparent and COLOUR.mario_mounted_bg or 0 - local mario = is_transparent and COLOUR.mario or change_transparency(COLOUR.mario, transparency_level) - local interaction_nohitbox = is_transparent and COLOUR.interaction_nohitbox or change_transparency(COLOUR.interaction_nohitbox, transparency_level) - local interaction_nohitbox_bg = is_transparent and COLOUR.interaction_nohitbox_bg or 0 - local interaction = is_transparent and COLOUR.interaction or change_transparency(COLOUR.interaction, transparency_level) - - local x_points = X_INTERACTION_POINTS - local y_points - if is_small and not Yoshi_riding_flag then - y_points = Y_INTERACTION_POINTS[1] - elseif not is_small and not Yoshi_riding_flag then - y_points = Y_INTERACTION_POINTS[2] - elseif is_small and Yoshi_riding_flag then - y_points = Y_INTERACTION_POINTS[3] - else - y_points = Y_INTERACTION_POINTS[4] - end - - draw_box(x_screen + x_points.left_side, y_screen + y_points.head, x_screen + x_points.right_side, y_screen + y_points.foot, - interaction_bg, interaction_bg) -- background for block interaction - ; - - if OPTIONS.display_player_hitbox then - - -- Collision with sprites - local mario_bg = (not Yoshi_riding_flag and mario_bg) or mario_mounted_bg - - draw_box(x_screen + x_points.left_side - 1, y_screen + y_points.sprite, - x_screen + x_points.right_side + 1, y_screen + y_points.foot + 1, mario, mario_bg) - ; - - end - - -- interaction points (collision with blocks) - if OPTIONS.display_interaction_points then - - if not SHOW_PLAYER_HITBOX then - draw_box(x_screen + x_points.left_side , y_screen + y_points.head, - x_screen + x_points.right_side, y_screen + y_points.foot, interaction_nohitbox, interaction_nohitbox_bg) - end - - draw_line(x_screen + x_points.left_side, y_screen + y_points.side, x_screen + x_points.left_foot, y_screen + y_points.side, 1, interaction) -- left side - draw_line(x_screen + x_points.right_side, y_screen + y_points.side, x_screen + x_points.right_foot, y_screen + y_points.side, 1, interaction) -- right side - draw_line(x_screen + x_points.left_foot, y_screen + y_points.foot - 2, x_screen + x_points.left_foot, y_screen + y_points.foot, 1, interaction) -- left foot bottom - draw_line(x_screen + x_points.right_foot, y_screen + y_points.foot - 2, x_screen + x_points.right_foot, y_screen + y_points.foot, 1, interaction) -- right foot bottom - draw_line(x_screen + x_points.left_side, y_screen + y_points.shoulder, x_screen + x_points.left_side + 2, y_screen + y_points.shoulder, 1, interaction) -- head left point - draw_line(x_screen + x_points.right_side - 2, y_screen + y_points.shoulder, x_screen + x_points.right_side, y_screen + y_points.shoulder, 1, interaction) -- head right point - draw_line(x_screen + x_points.center, y_screen + y_points.head, x_screen + x_points.center, y_screen + y_points.head + 2, 1, interaction) -- head point - draw_line(x_screen + x_points.center - 1, y_screen + y_points.center, x_screen + x_points.center + 1, y_screen + y_points.center, 1, interaction) -- center point - draw_line(x_screen + x_points.center, y_screen + y_points.center - 1, x_screen + x_points.center, y_screen + y_points.center + 1, 1, interaction) -- center point - end - - -- That's the pixel that appears when Mario dies in the pit - Show_player_point_position = Show_player_point_position or y_screen >= 200 or - (OPTIONS.display_debug_info and OPTIONS.display_debug_player_extra) - if Show_player_point_position then - draw_rectangle(x_screen - 1, y_screen - 1, 2, 2, interaction_bg, interaction) - Show_player_point_position = false - end - - return x_points, y_points -end - - --- displays the hitbox of the cape while spinning -local function cape_hitbox(spin_direction) - local cape_interaction = u8(WRAM.cape_interaction) - if cape_interaction == 0 then return end - - local cape_x = u16(WRAM.cape_x) - local cape_y = u16(WRAM.cape_y) - - local cape_x_screen, cape_y_screen = screen_coordinates(cape_x, cape_y, Camera_x, Camera_y) - local cape_left = -2 - local cape_right = 0x12 - local cape_up = 0x01 - local cape_down = 0x11 - local cape_middle = 0x08 - local block_interaction_cape = (spin_direction < 0 and cape_left + 4) or cape_right - 4 - local active_frame_sprites = Real_frame%2 == 1 -- active iff the cape can hit a sprite - local active_frame_blocks = Real_frame%2 == (spin_direction < 0 and 0 or 1) -- active iff the cape can hit a block - - if active_frame_sprites then bg_color = COLOUR.cape_bg else bg_color = 0 end - draw_box(cape_x_screen + cape_left, cape_y_screen + cape_up, cape_x_screen + cape_right, cape_y_screen + cape_down, COLOUR.cape, bg_color) - - if active_frame_blocks then - draw_pixel(cape_x_screen + block_interaction_cape, cape_y_screen + cape_middle, COLOUR.warning) - else - draw_pixel(cape_x_screen + block_interaction_cape, cape_y_screen + cape_middle, COLOUR.text) - end -end - - -local function player() - if not OPTIONS.display_player_info then - return - end - - -- Font - Text_opacity = 1.0 - - -- Reads WRAM - local x = s16(WRAM.x) - local y = s16(WRAM.y) - local previous_x = s16(WRAM.previous_x) - local previous_y = s16(WRAM.previous_y) - local x_sub = u8(WRAM.x_sub) - local y_sub = u8(WRAM.y_sub) - local x_speed = s8(WRAM.x_speed) - local x_subspeed = u8(WRAM.x_subspeed) - local y_speed = s8(WRAM.y_speed) - local p_meter = u8(WRAM.p_meter) - local take_off = u8(WRAM.take_off) - local powerup = Player_powerup - local direction = u8(WRAM.direction) - local cape_spin = u8(WRAM.cape_spin) - local cape_fall = u8(WRAM.cape_fall) - local flight_animation = u8(WRAM.flight_animation) - local diving_status = s8(WRAM.diving_status) - local player_blocked_status = u8(WRAM.player_blocked_status) - local player_item = u8(WRAM.player_item) - local is_ducking = u8(WRAM.is_ducking) - local on_ground = u8(WRAM.on_ground) - local spinjump_flag = u8(WRAM.spinjump_flag) - local can_jump_from_water = u8(WRAM.can_jump_from_water) - local carrying_item = u8(WRAM.carrying_item) - local scroll_timer = u8(WRAM.camera_scroll_timer) - local vertical_scroll_flag_header = u8(WRAM.vertical_scroll_flag_header) - local vertical_scroll_enabled = u8(WRAM.vertical_scroll_enabled) - - -- Transformations - if direction == 0 then direction = LEFT_ARROW else direction = RIGHT_ARROW end - local x_sub_simple, y_sub_simple-- = x_sub, y_sub - if x_sub%0x10 == 0 then x_sub_simple = fmt("%x", x_sub/0x10) else x_sub_simple = fmt("%.2x", x_sub) end - if y_sub%0x10 == 0 then y_sub_simple = fmt("%x", y_sub/0x10) else y_sub_simple = fmt("%.2x", y_sub) end - - local x_speed_int, x_speed_frac = math.modf(x_speed + x_subspeed/0x100) - x_speed_frac = math.abs(x_speed_frac*100) - - local spin_direction = (Effective_frame)%8 - if spin_direction < 4 then - spin_direction = spin_direction + 1 - else - spin_direction = 3 - spin_direction - end - - local is_caped = powerup == 0x2 - local is_spinning = cape_spin ~= 0 or spinjump_flag ~= 0 - - -- Display info - local i = 0 - local delta_x = BIZHAWK_FONT_WIDTH - local delta_y = BIZHAWK_FONT_HEIGHT - local table_x = - Border_left - local table_y = AR_y*32 - - draw_text(table_x, table_y + i*delta_y, fmt("Meter (%03d, %02d) %s", p_meter, take_off, direction)) - draw_text(table_x + 18*delta_x, table_y + i*delta_y, fmt(" %+d", spin_direction), - (is_spinning and COLOUR.text) or COLOUR.weak) - i = i + 1 - - draw_text(table_x, table_y + i*delta_y, fmt("Pos (%+d.%s, %+d.%s)", x, x_sub_simple, y, y_sub_simple)) - i = i + 1 - - draw_text(table_x, table_y + i*delta_y, fmt("Speed (%+d(%d.%02.0f), %+d)", x_speed, x_speed_int, x_speed_frac, y_speed)) - i = i + 1 - - if is_caped then - draw_text(table_x, table_y + i*delta_y, fmt("Cape (%.2d, %.2d)/(%d, %d)", cape_spin, cape_fall, flight_animation, diving_status), COLOUR.cape) - i = i + 1 - end - - local x_txt = draw_text(table_x, table_y + i*delta_y, fmt("Camera (%d, %d)", Camera_x, Camera_y)) - if scroll_timer ~= 0 then x_txt = draw_text(x_txt, table_y + i*delta_y, 16 - scroll_timer, COLOUR.warning) end - if vertical_scroll_flag_header ~=0 and vertical_scroll_enabled ~= 0 then - draw_text(x_txt, table_y + i*delta_y, vertical_scroll_enabled, COLOUR.warning2) - end - i = i + 1 - - if OPTIONS.display_static_camera_region then - Show_player_point_position = true - local left_cam, right_cam = u16(0x142c), u16(0x142e) -- unlisted WRAM - draw_box(left_cam, 0, right_cam, 224, COLOUR.static_camera_region, COLOUR.static_camera_region) - end - - draw_blocked_status(table_x, table_y + i*delta_y, player_blocked_status, x_speed, y_speed) - - -- Mario boost indicator (experimental) - -- This looks for differences between the expected x position and the actual x position, after a frame advance - -- Fails during a loadstate and has false positives if the game is paused or lagged - Previous.player_x = 256*x + x_sub -- the total amount of 256-based subpixels - Previous.x_speed = 16*x_speed -- the speed in 256-based subpixels - - if Mario_boost_indicator and not Cheat.under_free_move then - local x_screen, y_screen = screen_coordinates(x, y, Camera_x, Camera_y) - draw_text(AR_x*(x_screen + 4), AR_y*(y_screen + 60), Mario_boost_indicator, COLOUR.warning, 0x20000000) -- unlisted color - end - - -- shows hitbox and interaction points for player - if not (OPTIONS.display_player_hitbox or OPTIONS.display_interaction_points) then return end - - cape_hitbox(spin_direction) - player_hitbox(x, y, is_ducking, powerup, 1.0) - - -- Shows where Mario is expected to be in the next frame, if he's not boosted or stopped (DEBUG) - if OPTIONS.display_debug_info and OPTIONS.display_debug_player_extra then - player_hitbox( floor((256*x + x_sub + 16*x_speed)/256), - floor((256*y + y_sub + 16*y_speed)/256), is_ducking, powerup, 0.3) -- BizHawk - end - -end - - -local function extended_sprites() - if not OPTIONS.display_extended_sprite_info then - return - end - - -- Font - Text_opacity = 1.0 - local height = BIZHAWK_FONT_HEIGHT - - local y_pos = AR_y*144 - local counter = 0 - for id = 0, SMW.extended_sprite_max - 1 do - local extspr_number = u8(WRAM.extspr_number + id) - - if extspr_number ~= 0 then - -- Reads WRAM addresses - local x = 256*u8(WRAM.extspr_x_high + id) + u8(WRAM.extspr_x_low + id) - local y = 256*u8(WRAM.extspr_y_high + id) + u8(WRAM.extspr_y_low + id) - local sub_x = bit.rshift(u8(WRAM.extspr_subx + id), 4) - local sub_y = bit.rshift(u8(WRAM.extspr_suby + id), 4) - local x_speed = s8(WRAM.extspr_x_speed + id) - local y_speed = s8(WRAM.extspr_y_speed + id) - local extspr_table = u8(WRAM.extspr_table + id) - local extspr_table2 = u8(WRAM.extspr_table2 + id) - - -- Reduction of useless info - local special_info = "" - if OPTIONS.display_debug_info and OPTIONS.display_debug_extended_sprite and (extspr_table ~= 0 or extspr_table2 ~= 0) then - special_info = fmt("(%x, %x) ", extspr_table, extspr_table2) - end - - -- x speed for Fireballs - if extspr_number == 5 then x_speed = 16*x_speed end - - if OPTIONS.display_extended_sprite_info then - draw_text(Buffer_width + Border_right, y_pos + counter*height, fmt("#%.2d %.2x %s(%d.%x(%+.2d), %d.%x(%+.2d))", - id, extspr_number, special_info, x, sub_x, x_speed, y, sub_y, y_speed), - COLOUR.extended_sprites, true, false) - end - - if (OPTIONS.display_debug_info and OPTIONS.display_debug_extended_sprite) or not UNINTERESTING_EXTENDED_SPRITES[extspr_number] - or (extspr_number == 1 and extspr_table2 == 0xf) - then - local x_screen, y_screen = screen_coordinates(x, y, Camera_x, Camera_y) - - local t = HITBOX_EXTENDED_SPRITE[extspr_number] or - {xoff = 0, yoff = 0, width = 16, height = 16, color_line = COLOUR.awkward_hitbox, color_bg = COLOUR.awkward_hitbox_bg} - local xoff = t.xoff - local yoff = t.yoff + Y_CAMERA_OFF - local xrad = t.width - local yrad = t.height - - local color_line = t.color_line or COLOUR.extended_sprites - local color_bg = t.color_bg or COLOUR.extended_sprites_bg - if extspr_number == 0x5 or extspr_number == 0x11 then - color_bg = (Real_frame - id)%4 == 0 and COLOUR.special_extended_sprite_bg or 0 - end - draw_rectangle(x_screen+xoff, y_screen+yoff, xrad, yrad, color_line, color_bg) -- regular hitbox - - -- Experimental: attempt to show Mario's fireball vs sprites - -- this is likely wrong in some situation, but I can't solve this yet - if extspr_number == 5 or extspr_number == 1 then - local xoff_spr = x_speed >= 0 and -5 or 1 - local yoff_spr = - floor(y_speed/16) - 4 + (y_speed >= -40 and 1 or 0) - local yrad_spr = y_speed >= -40 and 19 or 20 - draw_rectangle(x_screen + xoff_spr, y_screen + yoff_spr, 12, yrad_spr, color_line, color_bg) - end - end - - counter = counter + 1 - end - end - - Text_opacity = 0.5 - local x_pos, y_pos, length = draw_text(Buffer_width + Border_right, y_pos, fmt("Ext. spr:%2d ", counter), COLOUR.weak, true, false, 0.0, 1.0) - - if u8(WRAM.spinjump_flag) ~= 0 and u8(WRAM.powerup) == 3 then - local fireball_timer = u8(WRAM.spinjump_fireball_timer) - draw_text(x_pos - length - BIZHAWK_FONT_WIDTH, y_pos, fmt("%d %s", - fireball_timer%16, bit.test(fireball_timer, 4) and RIGHT_ARROW or LEFT_ARROW), COLOUR.extended_sprites, true, false, 1.0, 1.0) - end - -end - - -local function cluster_sprites() - if not OPTIONS.display_cluster_sprite_info or u8(WRAM.cluspr_flag) == 0 then return end - - -- Font - Text_opacity = 1.0 - local height = BIZHAWK_FONT_HEIGHT - local x_pos, y_pos = AR_x*90, AR_y*77 -- BizHawk - local counter = 0 - - if OPTIONS.display_debug_info and OPTIONS.display_debug_cluster_sprite then - draw_text(x_pos, y_pos, "Cluster Spr.", COLOUR.weak) - counter = counter + 1 - end - - local reappearing_boo_counter - - for id = 0, SMW.cluster_sprite_max - 1 do - local clusterspr_number = u8(WRAM.cluspr_number + id) - - if clusterspr_number ~= 0 then - if not HITBOX_CLUSTER_SPRITE[clusterspr_number] then - print("Warning: wrong cluster sprite number:", clusterspr_number) -- should not happen without cheats - return - end - - -- Reads WRAM addresses - local x = signed(256*u8(WRAM.cluspr_x_high + id) + u8(WRAM.cluspr_x_low + id), 16) - local y = signed(256*u8(WRAM.cluspr_y_high + id) + u8(WRAM.cluspr_y_low + id), 16) - local clusterspr_timer, special_info, table_1, table_2, table_3 - - -- Reads cluster's table - local x_screen, y_screen = screen_coordinates(x, y, Camera_x, Camera_y) - local t = HITBOX_CLUSTER_SPRITE[clusterspr_number] or - {xoff = 0, yoff = 0, width = 16, height = 16, color_line = COLOUR.awkward_hitbox, color_bg = COLOUR.awkward_hitbox_bg, oscillation = 1} - local xoff = t.xoff - local yoff = t.yoff + Y_CAMERA_OFF - local xrad = t.width - local yrad = t.height - local phase = t.phase or 0 - local oscillation = (Real_frame - id)%t.oscillation == phase - local color = t.color or COLOUR.cluster_sprites - local color_bg = t.bg or COLOUR.sprites_bg - local invencibility_hitbox = nil - - if OPTIONS.display_debug_info and OPTIONS.display_debug_cluster_sprite then - table_1 = u8(WRAM.cluspr_table_1 + id) - table_2 = u8(WRAM.cluspr_table_2 + id) - table_3 = u8(WRAM.cluspr_table_3 + id) - draw_text(x_pos, y_pos + counter*height, ("#%d(%d): (%d, %d) %d, %d, %d") - :format(id, clusterspr_number, x, y, table_1, table_2, table_3), color) - counter = counter + 1 - end - - -- Case analysis - if clusterspr_number == 3 or clusterspr_number == 8 then - clusterspr_timer = u8(WRAM.cluspr_timer + id) - if clusterspr_timer ~= 0 then special_info = " " .. clusterspr_timer end - elseif clusterspr_number == 6 then - table_1 = table_1 or u8(WRAM.cluspr_table_1 + id) - if table_1 >= 111 or (table_1 < 31 and table_1 >= 16) then - yoff = yoff + 17 - elseif table_1 >= 103 or table_1 < 16 then - invencibility_hitbox = true - elseif table_1 >= 95 or (table_1 < 47 and table_1 >= 31) then - yoff = yoff + 16 - end - elseif clusterspr_number == 7 then - reappearing_boo_counter = reappearing_boo_counter or u8(WRAM.reappearing_boo_counter) - invencibility_hitbox = (reappearing_boo_counter > 0xde) or (reappearing_boo_counter < 0x3f) - special_info = " " .. reappearing_boo_counter - end - - -- Hitbox and sprite id - color = invencibility_hitbox and COLOUR.weak or color - color_bg = (invencibility_hitbox and 0) or (oscillation and color_bg) or 0 - draw_rectangle(x_screen + xoff, y_screen + yoff, xrad, yrad, color, color_bg) - draw_text(AR_x*(x_screen + xoff) + xrad, AR_y*(y_screen + yoff), special_info and id .. special_info or id, - color, false, false, 0.5, 1.0) - end - end -end - - -local function minor_extended_sprites() - if not OPTIONS.display_minor_extended_sprite_info then return end - - -- Font - Text_opacity = 1.0 - local height = BIZHAWK_FONT_HEIGHT - local x_pos, y_pos = 0, Buffer_height - height*SMW.minor_extended_sprite_max - local counter = 0 - - for id = 0, SMW.minor_extended_sprite_max - 1 do - local minorspr_number = u8(WRAM.minorspr_number + id) - - if minorspr_number ~= 0 then - -- Reads WRAM addresses - local x = signed(256*u8(WRAM.minorspr_x_high + id) + u8(WRAM.minorspr_x_low + id), 16) - local y = signed(256*u8(WRAM.minorspr_y_high + id) + u8(WRAM.minorspr_y_low + id), 16) - local xspeed, yspeed = s8(WRAM.minorspr_xspeed + id), s8(WRAM.minorspr_yspeed + id) - local x_sub, y_sub = u8(WRAM.minorspr_x_sub + id), u8(WRAM.minorspr_y_sub + id) - local timer = u8(WRAM.minorspr_timer + id) - - -- Only sprites 1 and 10 use the higher byte - local x_screen, y_screen = screen_coordinates(x, y, Camera_x, Camera_y) - if minorspr_number ~= 1 and minorspr_number ~= 10 then -- Boo stream and Piece of brick block - x_screen = x_screen%0x100 - y_screen = y_screen%0x100 - end - - -- Draw next to the sprite - local text = "#" .. id .. (timer ~= 0 and (" " .. timer) or "") - draw_text(AR_x*(x_screen + 8), AR_y*(y_screen + 4), text, COLOUR.minor_extended_sprites, false, false, 0.5, 1.0) - if minorspr_number == 10 then -- Boo stream - draw_rectangle(x_screen + 4, y_screen + 4 + Y_CAMERA_OFF, 8, 8, COLOUR.minor_extended_sprites, COLOUR.sprites_bg) - end - - -- Draw in the table - if OPTIONS.display_debug_info and OPTIONS.display_debug_minor_extended_sprite then - draw_text(x_pos, y_pos + counter*height, ("#%d(%d): %d.%x(%d), %d.%x(%d)") - :format(id, minorspr_number, x, floor(x_sub/16), xspeed, y, floor(y_sub/16), yspeed), COLOUR.minor_extended_sprites) - end - counter = counter + 1 - end - end - - if OPTIONS.display_debug_info and OPTIONS.display_debug_minor_extended_sprite then - draw_text(x_pos, y_pos - height, "Minor Ext Spr:" .. counter, COLOUR.weak) - end -end - - -local function bounce_sprite_info() - if not OPTIONS.display_bounce_sprite_info then return end - - -- Debug info - local x_txt, y_txt = AR_x*90, AR_y*37 - if OPTIONS.display_debug_info and OPTIONS.display_debug_bounce_sprite then - Text_opacity = 0.5 - draw_text(x_txt, y_txt, "Bounce Spr.", COLOUR.weak) - end - - -- Font - Text_opacity = 1.0 - local height = BIZHAWK_FONT_HEIGHT - - local stop_id = (u8(WRAM.bouncespr_last_id) - 1)%SMW.bounce_sprite_max - for id = 0, SMW.bounce_sprite_max - 1 do - local bounce_sprite_number = u8(WRAM.bouncespr_number + id) - if bounce_sprite_number ~= 0 then - local x = 256*u8(WRAM.bouncespr_x_high + id) + u8(WRAM.bouncespr_x_low + id) - local y = 256*u8(WRAM.bouncespr_y_high + id) + u8(WRAM.bouncespr_y_low + id) - local bounce_timer = u8(WRAM.bouncespr_timer + id) - - if OPTIONS.display_debug_info and OPTIONS.display_debug_bounce_sprite then - draw_text(x_txt, y_txt + height*(id + 1), fmt("#%d:%d (%d, %d)", id, bounce_sprite_number, x, y)) - end - - local x_screen, y_screen = screen_coordinates(x, y, Camera_x, Camera_y) - x_screen, y_screen = AR_x*(x_screen + 8), AR_y*y_screen - local color = id == stop_id and COLOUR.warning or COLOUR.text - draw_text(x_screen , y_screen, fmt("#%d:%d", id, bounce_timer), color, false, false, 0.5) -- timer - - -- Turn blocks - if bounce_sprite_number == 7 then - turn_block_timer = u8(WRAM.turn_block_timer + id) - draw_text(x_screen, y_screen + height, turn_block_timer, color, false, false, 0.5) - end - end - end -end - - -local function sprite_info(id, counter, table_position) - Text_opacity = 1.0 - - local sprite_status = u8(WRAM.sprite_status + id) - if sprite_status == 0 then return 0 end -- returns if the slot is empty - - local x = 256*u8(WRAM.sprite_x_high + id) + u8(WRAM.sprite_x_low + id) - local y = 256*u8(WRAM.sprite_y_high + id) + u8(WRAM.sprite_y_low + id) - local x_sub = u8(WRAM.sprite_x_sub + id) - local y_sub = u8(WRAM.sprite_y_sub + id) - local number = u8(WRAM.sprite_number + id) - local stun = u8(WRAM.sprite_miscellaneous7 + id) - local x_speed = s8(WRAM.sprite_x_speed + id) - local y_speed = s8(WRAM.sprite_y_speed + id) - local contact_mario = u8(WRAM.sprite_miscellaneous8 + id) - local underwater = u8(WRAM.sprite_underwater + id) - local x_offscreen = s8(WRAM.sprite_x_offscreen + id) - local y_offscreen = s8(WRAM.sprite_y_offscreen + id) - - local special = "" - if (OPTIONS.display_debug_info and OPTIONS.display_debug_sprite_extra) or - ((sprite_status ~= 0x8 and sprite_status ~= 0x9 and sprite_status ~= 0xa and sprite_status ~= 0xb) or stun ~= 0) then - special = string.format("(%d %d) ", sprite_status, stun) - end - - -- Let x and y be 16-bit signed - x = signed(x, 16) - y = signed(y, 16) - - ---********************************************** - -- Calculates the sprites dimensions and screen positions - - local x_screen, y_screen = screen_coordinates(x, y, Camera_x, Camera_y) - - -- Sprite clipping vs mario and sprites - local boxid = bit.band(u8(WRAM.sprite_2_tweaker + id), 0x3f) -- This is the type of box of the sprite - local xoff = HITBOX_SPRITE[boxid].xoff - local yoff = HITBOX_SPRITE[boxid].yoff + Y_CAMERA_OFF - local sprite_width = HITBOX_SPRITE[boxid].width - local sprite_height = HITBOX_SPRITE[boxid].height - - -- Sprite clipping vs objects - local clip_obj = bit.band(u8(WRAM.sprite_1_tweaker + id), 0xf) -- type of hitbox for blocks - local xpt_right = OBJ_CLIPPING_SPRITE[clip_obj].xright - local ypt_right = OBJ_CLIPPING_SPRITE[clip_obj].yright - local xpt_left = OBJ_CLIPPING_SPRITE[clip_obj].xleft - local ypt_left = OBJ_CLIPPING_SPRITE[clip_obj].yleft - local xpt_down = OBJ_CLIPPING_SPRITE[clip_obj].xdown - local ypt_down = OBJ_CLIPPING_SPRITE[clip_obj].ydown - local xpt_up = OBJ_CLIPPING_SPRITE[clip_obj].xup - local ypt_up = OBJ_CLIPPING_SPRITE[clip_obj].yup - - -- Process interaction with player every frame? - -- Format: dpmksPiS. This 'm' bit seems odd, since it has false negatives - local oscillation_flag = bit.test(u8(WRAM.sprite_4_tweaker + id), 5) or OSCILLATION_SPRITES[number] - - -- calculates the correct color to use, according to id - local info_color - local color_background - if number == 0x35 then - info_color = COLOUR.yoshi - color_background = COLOUR.yoshi_bg - else - info_color = COLOUR.sprites[id%(#COLOUR.sprites) + 1] - color_background = COLOUR.sprites_bg - end - - - if (not oscillation_flag) and (Real_frame - id)%2 == 1 then color_background = 0 end -- due to sprite oscillation every other frame - -- notice that some sprites interact with Mario every frame - ; - - - ---********************************************** - -- Displays sprites hitboxes - if OPTIONS.display_sprite_hitbox then - -- That's the pixel that appears when the sprite vanishes in the pit - if y_screen >= 224 or (OPTIONS.display_debug_info and OPTIONS.display_debug_sprite_extra) then - draw_pixel(x_screen, y_screen, info_color) - end - - if Sprite_hitbox[id][number].block then - draw_box(x_screen + xpt_left, y_screen + ypt_down, x_screen + xpt_right, y_screen + ypt_up, - COLOUR.sprites_clipping_bg, Sprite_hitbox[id][number].sprite and 0 or COLOUR.sprites_clipping_bg) - end - - if Sprite_hitbox[id][number].sprite and not ABNORMAL_HITBOX_SPRITES[number] then -- show sprite/sprite clipping - draw_rectangle(x_screen + xoff, y_screen + yoff, sprite_width, sprite_height, info_color, color_background) - end - - if Sprite_hitbox[id][number].block then -- show sprite/object clipping - local size, color = 1, COLOUR.sprites_interaction_pts - draw_line(x_screen + xpt_right, y_screen + ypt_right, x_screen + xpt_right - size, y_screen + ypt_right, 1, color) -- right - draw_line(x_screen + xpt_left, y_screen + ypt_left, x_screen + xpt_left + size, y_screen + ypt_left, 1, color) -- left - draw_line(x_screen + xpt_down, y_screen + ypt_down, x_screen + xpt_down, y_screen + ypt_down - size, 1, color) -- down - draw_line(x_screen + xpt_up, y_screen + ypt_up, x_screen + xpt_up, y_screen + ypt_up + size, 1, color) -- up - end - end - - - ---********************************************** - -- Special sprites analysis: - - --[[ - PROBLEMATIC ONES - 29 Koopa Kid - 54 Revolving door for climbing net, wrong hitbox area, not urgent - 5a Turn block bridge, horizontal, hitbox only applies to central block and wrongly - 86 Wiggler, the second part of the sprite, that hurts Mario even if he's on Yoshi, doesn't appear - 89 Layer 3 Smash, hitbox of generator outside - 9e Ball 'n' Chain, hitbox only applies to central block, rotating ball - a3 Rotating gray platform, wrong hitbox, rotating plataforms - ]] - - if number == 0x5f then -- Swinging brown platform (fix it) - - -- Powerup Incrementation helper - local yoshi_right = 256*floor(x/256) - 58 - local yoshi_left = yoshi_right + 32 - local x_text, y_text, height = AR_x*(x_screen + xoff), AR_y*(y_screen + yoff), BIZHAWK_FONT_HEIGHT - - if mouse_onregion(x_text, y_text, x_text + AR_x*sprite_width, y_text + AR_y*sprite_height) then - local x_text, y_text = 0, height - draw_text(x_text, y_text, "Powerup Incrementation help", info_color, COLOUR.background) - draw_text(x_text, y_text + height, "Yoshi must have: id = #4;", info_color, COLOUR.background) - draw_text(x_text, y_text + 2*height, ("Yoshi x pos: (%s %d) or (%s %d)") - :format(LEFT_ARROW, yoshi_left, RIGHT_ARROW, yoshi_right), info_color, COLOUR.background) - end - --The status change happens when yoshi's id number is #4 and when (yoshi's x position) + Z mod 256 = 214, - --where Z is 16 if yoshi is facing right, and -16 if facing left. More precisely, when (yoshi's x position + Z) mod 256 = 214, - --the address 0x7E0015 + (yoshi's id number) will be added by 1. - -- therefore: X_yoshi = 256*floor(x/256) + 32*yoshi_direction - 58 - end - - if number == 0x35 then -- Yoshi - if not Yoshi_riding_flag and OPTIONS.display_sprite_hitbox and Sprite_hitbox[id][number].sprite then - draw_rectangle(x_screen + 4, y_screen + 20, 8, 8, COLOUR.yoshi) - end - end - - if number == 0x62 or number == 0x63 then -- Brown line-guided platform & Brown/checkered line-guided platform - xoff = xoff - 24 - yoff = yoff - 8 - -- for some reason, the actual base is 1 pixel below when Mario is small - if OPTIONS.display_sprite_hitbox then - draw_rectangle(x_screen + xoff, y_screen + yoff, sprite_width, sprite_height, info_color, color_background) - end - end - - if number == 0x6b then -- Wall springboard (left wall) - xoff = xoff - 8 - sprite_height = sprite_height + 1 -- for some reason, small Mario gets a bigger hitbox - - if OPTIONS.display_sprite_hitbox then - draw_rectangle(x_screen + xoff, y_screen + yoff, sprite_width, sprite_height, info_color, color_background) - draw_line(x_screen + xoff, y_screen + yoff + 3, x_screen + xoff + sprite_width, y_screen + yoff + 3, 1, info_color) - end - end - - if number == 0x6c then -- Wall springboard (right wall) - xoff = xoff - 31 - sprite_height = sprite_height + 1 - - if OPTIONS.display_sprite_hitbox then - draw_rectangle(x_screen + xoff, y_screen + yoff, sprite_width, sprite_height, info_color, color_background) - draw_line(x_screen + xoff, y_screen + yoff + 3, x_screen + xoff + sprite_width, y_screen + yoff + 3, 1, info_color) - end - end - - if number == 0x7b then -- Goal Tape - - Text_opacity = 0.8 - - -- This draws the effective area of a goal tape - local x_effective = 256*u8(WRAM.sprite_miscellaneous4 + id) + u8(0xc2 + id) -- unlisted WRAM - local y_low = 256*u8(0x1534 + id) + u8(WRAM.sprite_miscellaneous5 + id) -- unlisted WRAM - local _, y_high = screen_coordinates(0, 0, Camera_x, Camera_y) - local x_s, y_s = screen_coordinates(x_effective, y_low, Camera_x, Camera_y) - - if OPTIONS.display_sprite_hitbox then - draw_box(x_s, y_high, x_s + 15, y_s, info_color, COLOUR.goal_tape_bg) - end - draw_text(AR_x*x_s, AR_y*y_screen, fmt("Touch=%4d.0->%4d.f", x_effective, x_effective + 15), info_color, false, false) - - Text_opacity = 1.0 - Bg_opacity = 1.0 - - elseif number == 0xa9 then -- Reznor - - local reznor - local color - for index = 0, SMW.sprite_max - 1 do - reznor = u8(WRAM.sprite_miscellaneous4 + index) - if index >= 4 and index <= 7 then - color = COLOUR.warning - else - color = color_weak - end - draw_text(3*BIZHAWK_FONT_WIDTH*index, Buffer_height, fmt("%.2x", reznor), color, true, false, 0.0, 1.0) - end - - elseif number == 0xa0 then -- Bowser - - local height = BIZHAWK_FONT_HEIGHT - local y_text = Screen_height - 10*height - local address = 0x14b0 -- unlisted WRAM - for index = 0, 9 do - local value = u8(address + index) - draw_text(Buffer_width + Border_right, y_text + index*height, fmt("%2x = %3d", value, value), info_color, true) - end - - end - - - ---********************************************** - -- Prints those informations next to the sprite - Text_opacity = 1.0 - Bg_opacity = 1.0 - - if x_offscreen ~= 0 or y_offscreen ~= 0 then - Text_opacity = 0.6 - end - - local contact_str = contact_mario == 0 and "" or " " .. contact_mario - - local sprite_middle = x_screen + xoff + floor(sprite_width/2) - local sprite_top = y_screen + math.min(yoff, ypt_up) - draw_text(AR_x*sprite_middle, AR_y*sprite_top, fmt("#%.2d%s", id, contact_str), info_color, true, false, 0.5, 1.0) - if Player_powerup == 2 then - local contact_cape = u8(WRAM.sprite_disable_cape + id) - if contact_cape ~= 0 then - draw_text(AR_x*sprite_middle, AR_y*sprite_top - 2*BIZHAWK_FONT_HEIGHT, contact_cape, COLOUR.cape, true) - end - end - - - ---********************************************** - -- Sprite tweakers info - if OPTIONS.display_debug_info and OPTIONS.display_debug_sprite_tweakers then - Text_opacity = 0.8 -- BizHawk - local height = BIZHAWK_FONT_HEIGHT - local x_txt, y_txt = AR_x*sprite_middle - 4*BIZHAWK_FONT_WIDTH, AR_y*(y_screen + yoff) - 7*height - - local tweaker_1 = u8(WRAM.sprite_1_tweaker + id) - draw_over_text(x_txt, y_txt, tweaker_1, "sSjJcccc", COLOUR.weak, info_color) - y_txt = y_txt + height - - local tweaker_2 = u8(WRAM.sprite_2_tweaker + id) - draw_over_text(x_txt, y_txt, tweaker_2, "dscccccc", COLOUR.weak, info_color) - y_txt = y_txt + height - - local tweaker_3 = u8(WRAM.sprite_3_tweaker + id) - draw_over_text(x_txt, y_txt, tweaker_3, "lwcfpppg", COLOUR.weak, info_color) - y_txt = y_txt + height - - local tweaker_4 = u8(WRAM.sprite_4_tweaker + id) - draw_over_text(x_txt, y_txt, tweaker_4, "dpmksPiS", COLOUR.weak, info_color) - y_txt = y_txt + height - - local tweaker_5 = u8(WRAM.sprite_5_tweaker + id) - draw_over_text(x_txt, y_txt, tweaker_5, "dnctswye", COLOUR.weak, info_color) - y_txt = y_txt + height - - local tweaker_6 = u8(WRAM.sprite_6_tweaker + id) - draw_over_text(x_txt, y_txt, tweaker_6, "wcdj5sDp", COLOUR.weak, info_color) - Text_opacity = 1.0 - end - - - ---********************************************** - -- The sprite table: - local x_speed_water = "" - if underwater ~= 0 then -- if sprite is underwater - local correction = floor(3*floor(x_speed/2)/2) - x_speed_water = string.format("%+.2d=%+.2d", correction - x_speed, correction) - end - local sprite_str = fmt("#%02d %02x %s%d.%1x(%+.2d%s) %d.%1x(%+.2d)", - id, number, special, x, floor(x_sub/16), x_speed, x_speed_water, y, floor(y_sub/16), y_speed) - - Text_opacity = 1.0 - Bg_opacity = 1.0 - if x_offscreen ~= 0 or y_offscreen ~= 0 then - Text_opacity = 0.6 - end - draw_text(Buffer_width + Border_right, table_position + counter*BIZHAWK_FONT_HEIGHT, sprite_str, info_color, true) - - -- Miscellaneous sprite table - if OPTIONS.display_miscellaneous_sprite_table then - local x_mis, y_mis = - Border_left, AR_y*144 + counter*BIZHAWK_FONT_HEIGHT - - local t = OPTIONS.miscellaneous_sprite_table_number - local misc, text = nil, fmt("#%.2d", id) - for num = 1, 19 do - misc = t[num] and u8(WRAM["sprite_miscellaneous" .. num] + id) or false - text = misc and fmt("%s %3d", text, misc) or text - end - - draw_text(x_mis, y_mis, text, info_color) - end - - -- Exporting some values - Sprites_info[id].number = number - Sprites_info[id].x, Sprites_info[id].y = x, y - Sprites_info[id].x_screen, Sprites_info[id].y_screen = x_screen, y_screen - Sprites_info[id].boxid = boxid - Sprites_info[id].xoff, Sprites_info[id].yoff = xoff, yoff - Sprites_info[id].width, Sprites_info[id].height = sprite_width, sprite_height - - return 1 -end - - -local function sprites() - if not OPTIONS.display_sprite_info then return end - - local counter = 0 - local table_position = AR_y*48 - for id = 0, SMW.sprite_max - 1 do - counter = counter + sprite_info(id, counter, table_position) - end - - -- Font - Text_opacity = 0.6 - - local swap_slot = u8(0x1861) -- unlisted WRAM - local smh = u8(WRAM.sprite_memory_header) - draw_text(Buffer_width + Border_right, table_position - 2*BIZHAWK_FONT_HEIGHT, fmt("spr:%.2d", counter), COLOUR.weak, true) - draw_text(Buffer_width + Border_right, table_position - BIZHAWK_FONT_HEIGHT, fmt("1st div: %d. Swap: %d", - SPRITE_MEMORY_MAX[smh] or 0, swap_slot), COLOUR.weak, true) - -- - -- Miscellaneous sprite table: index - if OPTIONS.display_miscellaneous_sprite_table then - local t = OPTIONS.miscellaneous_sprite_table_number - local text = "Tab" - for num = 1, 19 do - text = t[num] and fmt("%s %3d", text, num) or text - end - - draw_text(- Border_left, AR_y*144 - BIZHAWK_FONT_HEIGHT, text, info_color) - end -end - - -local function yoshi() - if not OPTIONS.display_yoshi_info then - return - end - - -- Font - Text_opacity = 1.0 - Bg_opacity = 1.0 - local x_text = - Border_left - local y_text = AR_y*88 - - local yoshi_id = Yoshi_id - if yoshi_id ~= nil then - local eat_id = u8(WRAM.sprite_miscellaneous16+ yoshi_id) - local eat_type = u8(WRAM.sprite_number + eat_id) - local tongue_len = u8(WRAM.sprite_miscellaneous4 + yoshi_id) - local tongue_timer = u8(WRAM.sprite_miscellaneous9 + yoshi_id) - local tongue_wait = u8(WRAM.sprite_tongue_wait) - local tongue_height = u8(WRAM.yoshi_tile_pos) - local tongue_out = u8(WRAM.sprite_miscellaneous13 + yoshi_id) - - local eat_type_str = eat_id == SMW.null_sprite_id and "-" or string.format("%02x", eat_type) - local eat_id_str = eat_id == SMW.null_sprite_id and "-" or string.format("#%02d", eat_id) - - -- Yoshi's direction and turn around - local turn_around = u8(WRAM.sprite_miscellaneous14 + yoshi_id) - local yoshi_direction = u8(WRAM.sprite_miscellaneous12 + yoshi_id) - local direction_symbol - if yoshi_direction == 0 then direction_symbol = RIGHT_ARROW else direction_symbol = LEFT_ARROW end - - draw_text(x_text, y_text, fmt("Yoshi %s %d", direction_symbol, turn_around), COLOUR.yoshi) - local h = BIZHAWK_FONT_HEIGHT - - if eat_id == SMW.null_sprite_id and tongue_len == 0 and tongue_timer == 0 and tongue_wait == 0 then - Text_opacity = 0.2 - end - draw_text(x_text, y_text + h, fmt("(%0s, %0s) %02d, %d, %d", - eat_id_str, eat_type_str, tongue_len, tongue_wait, tongue_timer), COLOUR.yoshi) - ; - - -- more WRAM values - local yoshi_x = 256*u8(WRAM.sprite_x_high + yoshi_id) + u8(WRAM.sprite_x_low + yoshi_id) - local yoshi_y = 256*u8(WRAM.sprite_y_high + yoshi_id) + u8(WRAM.sprite_y_low + yoshi_id) - local x_screen, y_screen = screen_coordinates(yoshi_x, yoshi_y, Camera_x, Camera_y) - - -- invisibility timer - local mount_invisibility = u8(WRAM.sprite_miscellaneous18 + yoshi_id) - if mount_invisibility ~= 0 then - Text_opacity = 0.5 - draw_text(AR_x*(x_screen + 4), AR_y*(y_screen - 12), mount_invisibility, COLOUR.yoshi) - end - - -- Tongue hitbox and timer - if tongue_wait ~= 0 or tongue_out ~=0 or tongue_height == 0x89 then -- if tongue is out or appearing - -- the position of the hitbox pixel - local tongue_direction = yoshi_direction == 0 and 1 or -1 - local tongue_high = tongue_height ~= 0x89 - local x_tongue = x_screen + 24 - 40*yoshi_direction + tongue_len*tongue_direction - x_tongue = not tongue_high and x_tongue or x_tongue - 5*tongue_direction - local y_tongue = y_screen + 10 + 11*(tongue_high and 0 or 1) - - -- the drawing - local tongue_line - if tongue_wait <= 9 then -- hitbox point vs berry tile - draw_rectangle(x_tongue - 1, y_tongue - 1, 2, 2, COLOUR.tongue_bg, COLOUR.text) - tongue_line = COLOUR.tongue_line - else tongue_line = COLOUR.tongue_bg - end - - -- tongue out: time predictor - local tinfo, tcolor - if tongue_wait > 9 then tinfo = tongue_wait - 9; tcolor = COLOUR.tongue_line -- not ready yet - - elseif tongue_out == 1 then tinfo = 17 + tongue_wait; tcolor = COLOUR.text -- tongue going out - - elseif tongue_out == 2 then -- at the max or tongue going back - tinfo = math.max(tongue_wait, tongue_timer) + floor((tongue_len + 7)/4) - (tongue_len ~= 0 and 1 or 0) - tcolor = eat_id == SMW.null_sprite_id and COLOUR.text or COLOUR.warning - - elseif tongue_out == 0 then tinfo = 0; tcolor = COLOUR.text -- tongue in - - else tinfo = tongue_timer + 1; tcolor = COLOUR.tongue_line -- item was just spat out - end - - Text_opacity = 0.5 - draw_text(AR_x*(x_tongue + 4), AR_y*(y_tongue + 5), tinfo, tcolor, false, false, 0.5) - Text_opacity = 1.0 - draw_rectangle(x_tongue, y_tongue + 1, 8, 4, tongue_line, COLOUR.tongue_bg) - end - - end -end - - -local function show_counters() - if not OPTIONS.display_counters then - return - end - - -- Font - Text_opacity = 1.0 - Bg_opacity = 1.0 - local height = BIZHAWK_FONT_HEIGHT - local text_counter = 0 - - local pipe_entrance_timer = u8(WRAM.pipe_entrance_timer) - local multicoin_block_timer = u8(WRAM.multicoin_block_timer) - local gray_pow_timer = u8(WRAM.gray_pow_timer) - local blue_pow_timer = u8(WRAM.blue_pow_timer) - local dircoin_timer = u8(WRAM.dircoin_timer) - local pballoon_timer = u8(WRAM.pballoon_timer) - local star_timer = u8(WRAM.star_timer) - local invisibility_timer = u8(WRAM.invisibility_timer) - local animation_timer = u8(WRAM.animation_timer) - local fireflower_timer = u8(WRAM.fireflower_timer) - local yoshi_timer = u8(WRAM.yoshi_timer) - local swallow_timer = u8(WRAM.swallow_timer) - local lakitu_timer = u8(WRAM.lakitu_timer) - local score_incrementing = u8(WRAM.score_incrementing) - local end_level_timer = u8(WRAM.end_level_timer) - - local display_counter = function(label, value, default, mult, frame, color) - if value == default then return end - text_counter = text_counter + 1 - local color = color or COLOUR.text - - draw_text(- Border_left, AR_y*102 + (text_counter * height), fmt("%s: %d", label, (value * mult) - frame), color) - end - - if Player_animation_trigger == 5 or Player_animation_trigger == 6 then - display_counter("Pipe", pipe_entrance_timer, -1, 1, 0, COLOUR.counter_pipe) - end - display_counter("Multi Coin", multicoin_block_timer, 0, 1, 0, COLOUR.counter_multicoin) - display_counter("Pow", gray_pow_timer, 0, 4, Effective_frame % 4, COLOUR.counter_gray_pow) - display_counter("Pow", blue_pow_timer, 0, 4, Effective_frame % 4, COLOUR.counter_blue_pow) - display_counter("Dir Coin", dircoin_timer, 0, 4, Real_frame % 4, COLOUR.counter_dircoin) - display_counter("P-Balloon", pballoon_timer, 0, 4, Real_frame % 4, COLOUR.counter_pballoon) - display_counter("Star", star_timer, 0, 4, (Effective_frame - 3) % 4, COLOUR.counter_star) - display_counter("Invisibility", invisibility_timer, 0, 1, 0) - display_counter("Fireflower", fireflower_timer, 0, 1, 0, COLOUR.counter_fireflower) - display_counter("Yoshi", yoshi_timer, 0, 1, 0, COLOUR.yoshi) - display_counter("Swallow", swallow_timer, 0, 4, (Effective_frame - 1) % 4, COLOUR.yoshi) - display_counter("Lakitu", lakitu_timer, 0, 4, Effective_frame % 4) - display_counter("End Level", end_level_timer, 0, 2, (Real_frame - 1) % 2) - display_counter("Score Incrementing", score_incrementing, 0x50, 1, 0) - - if Lock_animation_flag ~= 0 then display_counter("Animation", animation_timer, 0, 1, 0) end -- shows when player is getting hurt or dying - -end - - --- Main function to run inside a level -local function level_mode() - if Game_mode == SMW.game_mode_level then - - -- Draws/Erases the tiles if user clicked - draw_layer1_tiles(Camera_x, Camera_y) - - draw_layer2_tiles() - - sprites() - - extended_sprites() - - cluster_sprites() - - minor_extended_sprites() - - bounce_sprite_info() - - level_info() - - player() - - yoshi() - - show_counters() - - -- Draws/Erases the hitbox for objects - if User_input.mouse_inwindow then - select_object(User_input.xmouse, User_input.ymouse, Camera_x, Camera_y) - end - - end -end - - -local function overworld_mode() - if Game_mode ~= SMW.game_mode_overworld then return end - - -- Font - Text_opacity = 1.0 - Bg_opacity = 1.0 - - local height = BIZHAWK_FONT_HEIGHT - local y_text = BIZHAWK_FONT_HEIGHT - - -- Real frame modulo 8 - local real_frame_8 = Real_frame%8 - draw_text(Buffer_width + Border_right, y_text, fmt("Real Frame = %3d = %d(mod 8)", Real_frame, real_frame_8), true) - - -- Star Road info - local star_speed = u8(WRAM.star_road_speed) - local star_timer = u8(WRAM.star_road_timer) - y_text = y_text + height - draw_text(Buffer_width + Border_right, y_text, fmt("Star Road(%x %x)", star_speed, star_timer), COLOUR.cape, true) -end - - -local function left_click() - -- Call options menu if the form is closed - if Options_form.is_form_closed and mouse_onregion(120*AR_x, 0, 120*AR_x + 4*BIZHAWK_FONT_WIDTH, BIZHAWK_FONT_HEIGHT) then -- bizhawk - Options_form.create_window() - return - end - - -- Drag and drop sprites - if Cheat.allow_cheats then - local id = select_object(User_input.xmouse, User_input.ymouse, Camera_x, Camera_y) - if type(id) == "number" and id >= 0 and id < SMW.sprite_max then - Cheat.dragging_sprite_id = id - Cheat.is_dragging_sprite = true - return - end - end - - -- Layer 1 tiles - local x_mouse, y_mouse = game_coordinates(User_input.xmouse, User_input.ymouse, Camera_x, Camera_y) - x_mouse = 16*floor(x_mouse/16) - y_mouse = 16*floor(y_mouse/16) - if User_input.mouse_inwindow then - select_tile(x_mouse, y_mouse, Layer1_tiles) - end -end - - --- This function runs at the end of paint callback --- Specific for info that changes if the emulator is paused and idle callback is called -local function mouse_actions() - -- Font - Text_opacity = 1.0 - - if Cheat.allow_cheats then -- show cheat status anyway - alert_text(-Border_left, Buffer_height + Border_bottom, "Cheats: allowed", COLOUR.warning, COLOUR.warning_bg, - true, false, 0.0, 1.0) - end - - -- Drag and drop sprites with the mouse - if Cheat.is_dragging_sprite then - Cheat.drag_sprite(Cheat.dragging_sprite_id) - Cheat.is_cheating = true - end - -end - - -local function read_raw_input() - -- User input data - Previous.User_input = copytable(User_input) - local tmp = input.get() - for entry, value in pairs(User_input) do - User_input[entry] = tmp[entry] or false - end - -- Mouse input - tmp = input.getmouse() - User_input.xmouse = tmp.X - User_input.ymouse = tmp.Y - User_input.leftclick = tmp.Left - User_input.rightclick = tmp.Right - -- BizHawk, custom field - User_input.mouse_inwindow = mouse_onregion(-Border_left, -Border_top, Buffer_width + Border_right, Buffer_height + Border_bottom) - - -- Detect if a key was just pressed or released - for entry, value in pairs(User_input) do - if (value ~= false) and (Previous.User_input[entry] == false) then Keys.pressed[entry] = true - else Keys.pressed[entry] = false - end - if (value == false) and (Previous.User_input[entry] ~= false) then Keys.released[entry] = true - else Keys.released[entry] = false - end - end - - -- Key presses/releases execution: - for entry, value in pairs(Keys.press) do - if Keys.pressed[entry] then - value() - end - end - for entry, value in pairs(Keys.release) do - if Keys.released[entry] then - value() - end - end - -end - - - ---############################################################################# --- CHEATS - --- This signals that some cheat is activated, or was some short time ago -Cheat.allow_cheats = false -Cheat.is_cheating = false -function Cheat.is_cheat_active() - if Cheat.is_cheating then - Text_opacity = 1.0 - Bg_opacity = 1.0 - alert_text(Buffer_middle_x - 3*BIZHAWK_FONT_WIDTH, BIZHAWK_FONT_HEIGHT, " CHEAT ", COLOUR.warning, COLOUR.warning_bg) - Previous.is_cheating = true - else - if Previous.is_cheating then - gui.addmessage("Script applied cheat") -- BizHawk - Previous.is_cheating = false - end - end -end - - --- Called from Cheat.beat_level() -function Cheat.activate_next_level(secret_exit) - if u8(WRAM.level_exit_type) == 0x80 and u8(WRAM.midway_point) == 1 then - if secret_exit then - w8(WRAM.level_exit_type, 0x2) - else - w8(WRAM.level_exit_type, 1) - end - end - - Cheat.is_cheating = true -end - - --- allows start + select + X to activate the normal exit --- start + select + A to activate the secret exit --- start + select + B to exit the level without activating any exits -function Cheat.beat_level() - if Is_paused and Joypad["Select"] and (Joypad["X"] or Joypad["A"] or Joypad["B"]) then - w8(WRAM.level_flag_table + Level_index, bit.bor(Level_flag, 0x80)) - - local secret_exit = Joypad["A"] - if not Joypad["B"] then - w8(WRAM.midway_point, 1) - else - w8(WRAM.midway_point, 0) - end - - Cheat.activate_next_level(secret_exit) - end -end - - --- This function makes Mario's position free --- Press L+R+up to activate and L+R+down to turn it off. --- While active, press directionals to fly free and Y or X to boost him up -Cheat.under_free_move = false -function Cheat.free_movement() - if (Joypad["L"] and Joypad["R"] and Joypad["Up"]) then Cheat.under_free_move = true end - if (Joypad["L"] and Joypad["R"] and Joypad["Down"]) then Cheat.under_free_move = false end - if not Cheat.under_free_move then - if Previous.under_free_move then w8(WRAM.frozen, 0) end - return - end - - local x_pos, y_pos = u16(WRAM.x), u16(WRAM.y) - local movement_mode = u8(WRAM.player_animation_trigger) - local pixels = (Joypad["Y"] and 7) or (Joypad["X"] and 4) or 1 -- how many pixels per frame - - if Joypad["Left"] then x_pos = x_pos - pixels end - if Joypad["Right"] then x_pos = x_pos + pixels end - if Joypad["Up"] then y_pos = y_pos - pixels end - if Joypad["Down"] then y_pos = y_pos + pixels end - - -- freeze player to avoid deaths - if movement_mode == 0 then - w8(WRAM.frozen, 1) - w8(WRAM.x_speed, 0) - w8(WRAM.y_speed, 0) - - -- animate sprites by incrementing the effective frame - w8(WRAM.effective_frame, (u8(WRAM.effective_frame) + 1) % 256) - else - w8(WRAM.frozen, 0) - end - - -- manipulate some values - w16(WRAM.x, x_pos) - w16(WRAM.y, y_pos) - w8(WRAM.invisibility_timer, 127) - w8(WRAM.vertical_scroll_flag_header, 1) -- free vertical scrolling - w8(WRAM.vertical_scroll_enabled, 1) - - Cheat.is_cheating = true - Previous.under_free_move = true -end - - --- Drag and drop sprites with the mouse, if the cheats are activated and mouse is over the sprite --- Right clicking and holding: drags the sprite --- Releasing: drops it over the latest spot -function Cheat.drag_sprite(id) - if Game_mode ~= SMW.game_mode_level then Cheat.is_dragging_sprite = false ; return end - - local xoff, yoff = Sprites_info[id].xoff, Sprites_info[id].yoff - local xgame, ygame = game_coordinates(User_input.xmouse - xoff, User_input.ymouse - yoff, Camera_x, Camera_y) - - local sprite_xhigh = floor(xgame/256) - local sprite_xlow = xgame - 256*sprite_xhigh - local sprite_yhigh = floor(ygame/256) - local sprite_ylow = ygame - 256*sprite_yhigh - - w8(WRAM.sprite_x_high + id, sprite_xhigh) - w8(WRAM.sprite_x_low + id, sprite_xlow) - w8(WRAM.sprite_y_high + id, sprite_yhigh) - w8(WRAM.sprite_y_low + id, sprite_ylow) -end - - -function Cheat.score() - if not Cheat.allow_cheats then - print("Cheats not allowed.") - return - end - - local num = forms.gettext(Options_form.score_number) - local is_hex = num:sub(1,2):lower() == "0x" - num = tonumber(num) - - if not num or num%1 ~= 0 or num < 0 - or num > 9999990 or (not is_hex and num%10 ~= 0) then - print("Enter a valid score: hexadecimal representation or decimal ending in 0.") - return - end - - num = is_hex and num or num/10 - w24(WRAM.mario_score, num) - - print(fmt("Cheat: score set to %d0.", num)) - Cheat.is_cheating = true -end - - --- BizHawk: modifies address
value from to --- [size] is the optional size in bytes of the address --- TODO: [is_signed] is untrue if the value is unsigned, true otherwise -function Cheat.change_address(address, value_form, size, criterion, error_message, success_message) - if not Cheat.allow_cheats then - print("Cheats not allowed.") - return - end - - size = size or 1 - local max_value = 256^size - 1 - local value = Options_form[value_form] and forms.gettext(Options_form[value_form]) or value_form - local default_criterion = function(value) - value = tonumber(value) - if not value or value%1 ~= 0 or value < 0 or value > max_value then - return false - else - return value - end - end - - local new = default_criterion(value) - if criterion and new then - new = criterion(new) and new or false - end - if not new then - print(error_message or "Enter a valid value.") - return - end - - local memoryf = (size == 1 and w8) or (size == 2 and w16) or (size == 3 and w24) or error"size is too big" - memoryf(address, new) - print(fmt("Cheat: %s set to %d.", success_message, new) or fmt("Cheat: set WRAM 0x%X to %d.", address, new)) - Cheat.is_cheating = true -end - - ---############################################################################# --- MAIN -- - - --- Key presses: -Keys.registerkeypress("rightclick", right_click) -Keys.registerkeypress("leftclick", left_click) - --- Key releases: -Keys.registerkeyrelease("mouse_inwindow", function() Cheat.is_dragging_sprite = false end) -Keys.registerkeyrelease("leftclick", function() Cheat.is_dragging_sprite = false end) - --- Lateral gaps: -if not OLD_EMU_VERSION then - client.SetGameExtraPadding(OPTIONS.left_gap, OPTIONS.top_gap, OPTIONS.right_gap, OPTIONS.bottom_gap) - client.SetClientExtraPadding(0, 0, 0, 0) -end - -function Options_form.create_window() - Options_form.form = forms.newform(220, 554, "SMW Options") - local xform, yform, delta_y = 2, 0, 20 - - -- Top label - Options_form.label_cheats = forms.label(Options_form.form, "You can close this form at any time", xform, yform, 200, 20) - - yform = yform + delta_y - Options_form.allow_cheats = forms.checkbox(Options_form.form, "Allow cheats", xform, yform) - forms.setproperty(Options_form.allow_cheats, "Checked", Cheat.allow_cheats) - - xform = xform + 105 - forms.button(Options_form.form, "Powerup", function() Cheat.change_address(WRAM.powerup, "powerup_number", 1, - nil, "Enter a valid integer (0-255).", "powerup") - end, xform, yform, 58, 24) - - yform = yform + 2 - xform = xform + 59 - Options_form.powerup_number = forms.textbox(Options_form.form, "", 24, 16, "UNSIGNED", xform, yform, false, false) - - xform = 2 - yform = yform + 28 - forms.button(Options_form.form, "Score", Cheat.score, xform, yform, 43, 24) - - yform = yform + 2 - xform = xform + 45 - Options_form.score_number = forms.textbox(Options_form.form, fmt("0x%X", u24(WRAM.mario_score)), 48, 16, nil, xform, yform, false, false) - - xform = xform + 59 - forms.button(Options_form.form, "Coin", function() Cheat.change_address(WRAM.player_coin, "coin_number", 1, - function(num) return num < 100 end, "Enter an integer between 0 and 99.", "coin") - end, xform, yform, 43, 24) - - yform = yform + 2 - xform = xform + 45 - Options_form.coin_number = forms.textbox(Options_form.form, "", 24, 16, "UNSIGNED", xform, yform, false, false) - - xform = 2 - yform = yform + 28 - forms.button(Options_form.form, "Box", function() Cheat.change_address(0x0dc2, "item_box_number", 1, -- unlisted WRAM - nil, "Enter a valid integer (0-255).", "Item box") - end, xform, yform, 43, 24) - - yform = yform + 2 - xform = xform + 45 - Options_form.item_box_number = forms.textbox(Options_form.form, "", 24, 16, "UNSIGNED", xform, yform, false, false) - - -- SHOW/HIDE - xform = 2 - yform = yform + 28 - Options_form.label1 = forms.label(Options_form.form, "Show/hide options:", xform, yform) - - yform = yform + delta_y - local y_begin_showhide = yform -- 1st column - Options_form.debug_info = forms.checkbox(Options_form.form, "Debug info", xform, yform) - forms.setproperty(Options_form.debug_info, "Checked", OPTIONS.display_debug_info) - - yform = yform + delta_y - Options_form.movie_info = forms.checkbox(Options_form.form, "Movie info", xform, yform) - forms.setproperty(Options_form.movie_info, "Checked", OPTIONS.display_movie_info) - - yform = yform + delta_y - Options_form.misc_info = forms.checkbox(Options_form.form, "Miscellaneous", xform, yform) - forms.setproperty(Options_form.misc_info, "Checked", OPTIONS.display_misc_info) - - yform = yform + delta_y - Options_form.player_info = forms.checkbox(Options_form.form, "Player info", xform, yform) - forms.setproperty(Options_form.player_info, "Checked", OPTIONS.display_player_info) - - yform = yform + delta_y - Options_form.sprite_info = forms.checkbox(Options_form.form, "Sprite info", xform, yform) - forms.setproperty(Options_form.sprite_info, "Checked", OPTIONS.display_sprite_info) - - yform = yform + delta_y - Options_form.sprite_hitbox = forms.checkbox(Options_form.form, "Sprite hitbox", xform, yform) - forms.setproperty(Options_form.sprite_hitbox, "Checked", OPTIONS.display_sprite_hitbox) - - yform = yform + delta_y - Options_form.sprite_tables = forms.checkbox(Options_form.form, "Sprite tables", xform, yform) - forms.setproperty(Options_form.sprite_tables, "Checked", OPTIONS.display_miscellaneous_sprite_table) - - yform = yform + delta_y - Options_form.extended_sprite_info = forms.checkbox(Options_form.form, "Extended sprites", xform, yform) - forms.setproperty(Options_form.extended_sprite_info, "Checked", OPTIONS.display_extended_sprite_info) - - xform = xform + 105 -- 2nd column - yform = y_begin_showhide - Options_form.cluster_sprite_info = forms.checkbox(Options_form.form, "Cluster sprites", xform, yform) - forms.setproperty(Options_form.cluster_sprite_info, "Checked", OPTIONS.display_cluster_sprite_info) - - yform = yform + delta_y - Options_form.minor_extended_sprite_info = forms.checkbox(Options_form.form, "Minor ext. spr.", xform, yform) - forms.setproperty(Options_form.minor_extended_sprite_info, "Checked", OPTIONS.display_minor_extended_sprite_info) - - yform = yform + delta_y - Options_form.bounce_sprite_info = forms.checkbox(Options_form.form, "Bounce sprites", xform, yform) - forms.setproperty(Options_form.bounce_sprite_info, "Checked", OPTIONS.display_bounce_sprite_info) - - yform = yform + delta_y - Options_form.level_info = forms.checkbox(Options_form.form, "Level info", xform, yform) - forms.setproperty(Options_form.level_info, "Checked", OPTIONS.display_level_info) - - yform = yform + delta_y - Options_form.yoshi_info = forms.checkbox(Options_form.form, "Yoshi info", xform, yform) - forms.setproperty(Options_form.yoshi_info, "Checked", OPTIONS.display_yoshi_info) - - yform = yform + delta_y - Options_form.counters_info = forms.checkbox(Options_form.form, "Counters info", xform, yform) - forms.setproperty(Options_form.counters_info, "Checked", OPTIONS.display_counters) - - yform = yform + delta_y - Options_form.static_camera_region = forms.checkbox(Options_form.form, "Static camera", xform, yform) - forms.setproperty(Options_form.static_camera_region, "Checked", OPTIONS.display_static_camera_region) - yform = yform + delta_y -- if odd number of show/hide checkboxes - - xform, yform = 2, yform + 30 - forms.label(Options_form.form, "Player hitbox:", xform, yform + 2, 70, 25) - xform = xform + 70 - Options_form.player_hitbox = forms.dropdown(Options_form.form, {"Hitbox", "Interaction points", "Both", "None"}, xform, yform) - xform, yform = 2, yform + 30 - - -- DEBUG/EXTRA - forms.label(Options_form.form, "Debug info:", xform, yform, 62, 22) - yform = yform + delta_y - - local y_begin_debug = yform -- 1st column - Options_form.debug_player_extra = forms.checkbox(Options_form.form, "Player extra", xform, yform) - forms.setproperty(Options_form.debug_player_extra, "Checked", OPTIONS.display_debug_player_extra) - yform = yform + delta_y - - Options_form.debug_sprite_extra = forms.checkbox(Options_form.form, "Sprite extra", xform, yform) - forms.setproperty(Options_form.debug_sprite_extra, "Checked", OPTIONS.display_debug_sprite_extra) - yform = yform + delta_y - - Options_form.debug_sprite_tweakers = forms.checkbox(Options_form.form, "Sprite tweakers", xform, yform) - forms.setproperty(Options_form.debug_sprite_tweakers, "Checked", OPTIONS.display_debug_sprite_tweakers) - yform = yform + delta_y - - Options_form.debug_extended_sprite = forms.checkbox(Options_form.form, "Extended sprites", xform, yform) - forms.setproperty(Options_form.debug_extended_sprite, "Checked", OPTIONS.display_debug_extended_sprite) - yform = yform + delta_y - - xform, yform = xform + 105, y_begin_debug - Options_form.debug_cluster_sprite = forms.checkbox(Options_form.form, "Cluster sprites", xform, yform) - forms.setproperty(Options_form.debug_cluster_sprite, "Checked", OPTIONS.display_debug_cluster_sprite) - yform = yform + delta_y - - Options_form.debug_minor_extended_sprite = forms.checkbox(Options_form.form, "Minor ext. spr.", xform, yform) - forms.setproperty(Options_form.debug_minor_extended_sprite, "Checked", OPTIONS.display_debug_minor_extended_sprite) - yform = yform + delta_y - - Options_form.debug_bounce_sprite = forms.checkbox(Options_form.form, "Bounce sprites", xform, yform) - forms.setproperty(Options_form.debug_bounce_sprite, "Checked", OPTIONS.display_debug_bounce_sprite) - yform = yform + delta_y - - Options_form.debug_controller_data = forms.checkbox(Options_form.form, "Controller data", xform, yform) - forms.setproperty(Options_form.debug_controller_data, "Checked", OPTIONS.display_debug_controller_data) - --yform = yform + delta_y - - -- HELP: - xform, yform = 4, yform + 30 - forms.label(Options_form.form, "Miscellaneous:", xform, yform, 78, 22) - xform, yform = xform + 78, yform - 2 - - Options_form.draw_tiles_with_click = forms.checkbox(Options_form.form, "Draw/erase tiles", xform, yform) - forms.setproperty(Options_form.draw_tiles_with_click, "Checked", OPTIONS.draw_tiles_with_click) - xform, yform = 4, yform + 30 - - -- OPACITY - Options_form.text_opacity = forms.label(Options_form.form, ("Text opacity: (%.0f%%, %.0f%%)"): - format(100*Text_max_opacity, 100*Background_max_opacity), xform, yform, 135, 22) - ; - xform, yform = xform + 135, yform - 4 - forms.button(Options_form.form, "-", function() decrease_opacity() - forms.settext(Options_form.text_opacity, ("Text opacity: (%.0f%%, %.0f%%)"):format(100*Text_max_opacity, 100*Background_max_opacity)) - end, xform, yform, 14, 24) - xform = xform + 14 - forms.button(Options_form.form, "+", function() increase_opacity() - forms.settext(Options_form.text_opacity, ("Text opacity: (%.0f%%, %.0f%%)"):format(100*Text_max_opacity, 100*Background_max_opacity)) - end, xform, yform, 14, 24) - xform, yform = 4, yform + 25 - - -- HELP - Options_form.erase_tiles = forms.button(Options_form.form, "Erase tiles", function() Layer1_tiles = {}; Layer2_tiles = {} end, xform, yform) - xform = xform + 105 - Options_form.write_help_handle = forms.button(Options_form.form, "Help", Options_form.write_help, xform, yform) -end - - -function Options_form.evaluate_form() - -- Option form's buttons - Cheat.allow_cheats = forms.ischecked(Options_form.allow_cheats) or false - OPTIONS.display_debug_info = forms.ischecked(Options_form.debug_info) or false - -- Show/hide - OPTIONS.display_movie_info = forms.ischecked(Options_form.movie_info) or false - OPTIONS.display_misc_info = forms.ischecked(Options_form.misc_info) or false - OPTIONS.display_player_info = forms.ischecked(Options_form.player_info) or false - OPTIONS.display_sprite_info = forms.ischecked(Options_form.sprite_info) or false - OPTIONS.display_sprite_hitbox = forms.ischecked(Options_form.sprite_hitbox) or false - OPTIONS.display_miscellaneous_sprite_table = forms.ischecked(Options_form.sprite_tables) or false - OPTIONS.display_extended_sprite_info = forms.ischecked(Options_form.extended_sprite_info) or false - OPTIONS.display_cluster_sprite_info = forms.ischecked(Options_form.cluster_sprite_info) or false - OPTIONS.display_minor_extended_sprite_info = forms.ischecked(Options_form.minor_extended_sprite_info) or false - OPTIONS.display_bounce_sprite_info = forms.ischecked(Options_form.bounce_sprite_info) or false - OPTIONS.display_level_info = forms.ischecked(Options_form.level_info) or false - OPTIONS.display_yoshi_info = forms.ischecked(Options_form.yoshi_info) or false - OPTIONS.display_counters = forms.ischecked(Options_form.counters_info) or false - OPTIONS.display_static_camera_region = forms.ischecked(Options_form.static_camera_region) or false - -- Debug/Extra - OPTIONS.display_debug_player_extra = forms.ischecked(Options_form.debug_player_extra) or false - OPTIONS.display_debug_sprite_extra = forms.ischecked(Options_form.debug_sprite_extra) or false - OPTIONS.display_debug_sprite_tweakers = forms.ischecked(Options_form.debug_sprite_tweakers) or false - OPTIONS.display_debug_extended_sprite = forms.ischecked(Options_form.debug_extended_sprite) or false - OPTIONS.display_debug_cluster_sprite = forms.ischecked(Options_form.debug_cluster_sprite) or false - OPTIONS.display_debug_minor_extended_sprite = forms.ischecked(Options_form.debug_minor_extended_sprite) or false - OPTIONS.display_debug_bounce_sprite = forms.ischecked(Options_form.debug_bounce_sprite) or false - OPTIONS.display_debug_controller_data = forms.ischecked(Options_form.debug_controller_data) or false - -- Other buttons - OPTIONS.draw_tiles_with_click = forms.ischecked(Options_form.draw_tiles_with_click) or false - local button_text = forms.gettext(Options_form.player_hitbox) - OPTIONS.display_player_hitbox = button_text == "Both" or button_text == "Hitbox" - OPTIONS.display_interaction_points = button_text == "Both" or button_text == "Interaction points" - - -- Save the configurations - if Bizhawk_loop_counter == 0 then INI.save_options() end -end - - -function Options_form.write_help() - print(" - - - TIPS - - - ") - print("MOUSE:") - print("Use the left click to draw blocks and to see the Map16 properties.") - print("Use the right click to toogle the hitbox mode of Mario and sprites.") - print("\n") - - print("CHEATS(better turn off while recording a movie):") - print("L+R+up: stop gravity for Mario fly / L+R+down to cancel") - print("Use the mouse to drag and drop sprites") - print("While paused: B+select to get out of the level") - print(" X+select to beat the level (main exit)") - print(" A+select to get the secret exit (don't use it if there isn't one)") - - print("\n") - print("OTHERS:") - print("If performance suffers, disable some options that are not needed at the moment.") - print(" - - - end of tips - - - ") -end -Options_form.create_window() -Options_form.is_form_closed = false - - -event.unregisterbyname("smw-tas-bizhawk-onexit") -event.onexit(function() - local destroyed = forms.destroy(Options_form.form) - if not OLD_EMU_VERSION then - client.SetGameExtraPadding(0, 0, 0, 0) - client.SetClientExtraPadding(0, 0, 0, 0) - end - - print("Finishing smw-bizhawk script.") - client.paint() -end, "smw-tas-bizhawk-onexit") - - -while true do - if emu.getsystemid() ~= "SNES" then - gui.text(0, 0, "WRONG CORE: " .. emu.getsystemid(), "black", "red", "bottomright") - - else - - Options_form.is_form_closed = forms.gettext(Options_form.player_hitbox) == "" - if not Options_form.is_form_closed then Options_form.evaluate_form() end - - bizhawk_status() - bizhawk_screen_info() - read_raw_input() - - -- Drawings are allowed now - scan_smw() - level_mode() - overworld_mode() - show_movie_info() - if Is_lagged then -- BizHawk: outside show_movie_info - alert_text(Buffer_middle_x - 3*BIZHAWK_FONT_WIDTH, 2*BIZHAWK_FONT_HEIGHT, " LAG ", COLOUR.warning, COLOUR.warning_bg) - end - show_misc_info() - show_controller_data() - - Cheat.is_cheat_active() - - mouse_actions() - - -- Checks if options form exits and create a button in case it doesn't - if Options_form.is_form_closed then - if User_input.mouse_inwindow then - draw_rectangle(120 - 1, 0, 4*BIZHAWK_FONT_WIDTH/AR_x + 1, BIZHAWK_FONT_HEIGHT/AR_y + 1, 0xff000000, 0xff808080) -- bizhawk - gui.text(120*AR_x + Border_left, 0 + Border_top, "Menu") -- unlisted color - end - end - - -- INPUT MANIPULATION - Joypad = joypad.get(1) - if Cheat.allow_cheats then - Cheat.is_cheating = false - - Cheat.beat_level() - Cheat.free_movement() - else - -- Cancel any continuous cheat - Cheat.under_free_move = false - - Cheat.is_cheating = false - end - end - - -- Frame advance: hack for performance - Bizhawk_loop_counter = (Bizhawk_loop_counter + 1)%300 -- save options each 5 seconds - if client.ispaused() then - emu.yield() - gui.clearGraphics() - gui.cleartext() - else - emu.frameadvance() - end - -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Super Metroid.lua b/Assets/Lua/SNES/Super Metroid.lua deleted file mode 100644 index 8922298736..0000000000 --- a/Assets/Lua/SNES/Super Metroid.lua +++ /dev/null @@ -1,99 +0,0 @@ ---Author Pasky13 - ---Player -local px = 0x000AF6 -local py = 0x000AFA -local plife = 0x0009C2 ---Camera -local camx = 0x000911 -local camy = 0x000915 ---Text scaler -local xs -local ys -local function Samus() - local x = mainmemory.read_u16_le(px) - mainmemory.read_u16_le(camx) - local y = mainmemory.read_u16_le(py) - mainmemory.read_u16_le(camy) - local xrad = mainmemory.read_u8(0x0AFE) - local yrad = mainmemory.read_u8(0x0B00) - - gui.drawBox(x + (xrad * -1), y + (yrad * -1), x+xrad,y+yrad,0xFF0000FF,0x350000FF) - -end - -local function EnemyBoxes() - local x = 0 - local y = 0 - local xrad = 0 - local yrad = 0 - local oend = 20 - local base = 0xF7A - - for i = 0, oend, 1 do - if i > 0 then - base = 0xF7A + (i * 0x40) - else - base = 0xF7A - end - - x = mainmemory.read_u16_le(base) - mainmemory.read_u16_le(camx) - y = mainmemory.read_u16_le(base+ 4) - mainmemory.read_u16_le(camy) - xrad = mainmemory.read_u8(0x0F82 + (i * 0x40)) - yrad = mainmemory.read_u8(0x0F84 + (i * 0x40)) - hp = mainmemory.read_u16_le(base + 0x12) - - gui.drawBox(x + (xrad * -1),y + (yrad * -1),x+xrad,y+yrad,0xFFFF0000,0x35FF0000) - gui.text((x-5) * xs,(y-5) * ys,"HP: " .. hp) - end -end - -local function powerbomb() - local x = mainmemory.read_u16_le(0xCE2) - mainmemory.read_u16_le(camx) - local y = mainmemory.read_u16_le(0xCE4) - mainmemory.read_u16_le(camy) - local xrad - local yrad - - xrad = bit.band(memory.readbyte(0xCEB),0xFF) - yrad = ((xrad / 2) + xrad) / 2 - gui.drawBox(x + (xrad * -1), y + (yrad * -1),x+xrad,y+yrad,0xFF00FFFF,0x35F00FFF) -end - -local function Projectiles() - local x - local y - local xrad - local yrad - local oend = 8 - local projxbase = 0xB64 - local projybase = 0xB78 - local projxrbase = 0xBB4 - local projyrbase = 0xBC8 - - for i = 0, oend, 1 do - - - x = mainmemory.read_u16_le(projxbase + (i*2)) - mainmemory.read_u16_le(camx) - y = mainmemory.read_u16_le(projybase + (i*2)) - mainmemory.read_u16_le(camy) - - xrad = mainmemory.read_u8(projxrbase + (i * 2)) - yrad = mainmemory.read_u8(projyrbase + (i * 2)) - - gui.drawBox(x + (xrad * -1), y + (yrad * -1), x+xrad,y+yrad,0xFFFFFFFF,0x35FFFFFF) - end - - if bit.band(mainmemory.read_u16_le(0xCEB),0xFF) > 0 then - powerbomb() - end -end - -local function scaler() - xs = client.screenwidth() / 256 - ys = client.screenwidth() / 224 -end - -while true do - scaler() - Samus() - EnemyBoxes() - Projectiles() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/SNES/Y's III.lua b/Assets/Lua/SNES/Y's III.lua deleted file mode 100644 index d0cf2fa479..0000000000 --- a/Assets/Lua/SNES/Y's III.lua +++ /dev/null @@ -1,107 +0,0 @@ --- Y's III (SNES) Collision box viewer --- Bizhawk --- Author: Pasky - -local camx -local camy - -function findbit(p) - return 2 ^ (p - 1) -end - -function hasbit(x, p) - return x % (p + p) >= p -end - -local function hex(val) - val = string.format("%X",val) - if string.len(val) == 1 then - val = "0" .. val - end - return val -end - -local function camera() - camx = mainmemory.read_u16_le(0x12D8) - camy = mainmemory.read_u16_le(0x12E0) -end - -memory.usememorydomain("CARTROM") - -local function player() - local x = mainmemory.read_u8(0x1274) - local y = mainmemory.read_u8(0x1276) - local x1 = x - local y1 = y - local x2 = 0 - local y2 = 0 - if mainmemory.read_u8(0x1273) == 3 then - x1 = x1 - 4 - x2= x1 + 0x18 - y1= y1 + 0x12 - y2= y1 + 0x10 - else - x2 = x1 + 0x10 - y1 = y1 + 0x08 - y2 = y1 + 0x18 - end - - gui.drawBox(x1,y1,x2,y2,0xFF0000FF,0x300000FF) - -- cheat - -- memory.writebyte(0x1294,0x90) -- infinite hp - -- memory.writeword(0x1299,0x400) -- experience - - -- Attacking - if mainmemory.read_u8(0x1283) ~= 0 then - local offset1 = bit.band(mainmemory.read_u8(0x1287),0x3) - offset1 = offset1 + mainmemory.read_u8(0x1278) + mainmemory.read_u8(0x127A) - 0x10 - offset1 = bit.lshift(offset1,1) - local offset2 = bit.band(mainmemory.read_u8(0x127C),0x40) - offset2 = bit.rshift(offset2,6) - offset2 = bit.bor(offset2,offset1) - offset2 = bit.lshift(offset2,2) - local ax1 = bit.band(x + memory.read_u8(0xBA4BE + offset2),0xFF) - local ay1 = bit.band(y + memory.read_u8(0xBA4BF + offset2),0xFF) - local ax2 = bit.band(x + memory.read_u8(0xBA4BC + offset2),0xFF) - local ay2 = bit.band(y + memory.read_u8(0xBA4BD + offset2),0xFF) - gui.drawBox(ax1,ay1,ax2,ay2) - end -end - -local function enemies() - local start = 0x17FB - 0x22 - for i =0,15,1 do - local base = start + (i * 0x22) - local x = mainmemory.read_u16_le(base) - camx - local y = mainmemory.read_u16_le(base + 2) - camy - local facing = mainmemory.read_u8(base + 0xf) - local offset = mainmemory.read_u8(base + 0xD) * 2 - local pointer = memory.read_u16_le(0xB9A25 + offset) - local hp = mainmemory.read_u8(base + 0x8) - local active = mainmemory.read_u8(base + 0x1D) - - if active ~= 0 then - if bit.band(facing,0x40) ~= 0 then - -- left - pointer = pointer + 4 - else - -- right - end - local x1 = x + memory.read_u8(0xB9A26 + pointer) - local y1 = y + memory.read_u8(0xB9A27 + pointer) - local x2 = x + memory.read_u8(0xB9A28 + pointer) - local y2 = y + memory.read_u8(0xB9A29 + pointer) - - gui.text(x,y,"HP: " .. hp ) - gui.drawBox(x1,y1,x2,y2,0xFFFF0000,0x30FF0000) - end - end -end - - -while true do - camera() - player() - enemies() - emu.frameadvance() -end \ No newline at end of file diff --git a/Assets/Lua/UnitTests/Console.lua b/Assets/Lua/UnitTests/Console.lua deleted file mode 100644 index 3a5c7b01ca..0000000000 --- a/Assets/Lua/UnitTests/Console.lua +++ /dev/null @@ -1,9 +0,0 @@ -console.clear() -console.writeline("--cleared previous output") -console.log("--Logging", "multiple", "values", "in one", "call") -console.write("--console.write does not include a new line") -console.writeline("--but console.writeline does") -console.writeline("--next line", "--next line") -print("--Print Single value") -console.writeline("--Log a lua table:") -console.log(joypad.get()) diff --git a/Assets/Lua/UnitTests/GameInfo.lua b/Assets/Lua/UnitTests/GameInfo.lua deleted file mode 100644 index d6ea5ba63a..0000000000 --- a/Assets/Lua/UnitTests/GameInfo.lua +++ /dev/null @@ -1,10 +0,0 @@ -console.writeline("Game Info library test") -console.writeline("Rom Name: " .. gameinfo.getromname()); -console.writeline("Rom Hash: " .. gameinfo.getromhash()); -console.writeline("Display Type: " .. emu.getdisplaytype()); -console.writeline("In Database?: " .. tostring(gameinfo.indatabase())); -console.writeline("Rom Status: " .. gameinfo.getstatus()); -console.writeline("Is Status Bad?: " .. tostring(gameinfo.isstatusbad())); -console.writeline("Board Type: " .. gameinfo.getboardtype()); -console.writeline("Game Options: ") -console.writeline(gameinfo.getoptions()); \ No newline at end of file diff --git a/Assets/Lua/UnitTests/Joypad_RoundTrip.lua b/Assets/Lua/UnitTests/Joypad_RoundTrip.lua deleted file mode 100644 index dcded4b8f1..0000000000 --- a/Assets/Lua/UnitTests/Joypad_RoundTrip.lua +++ /dev/null @@ -1,137 +0,0 @@ -console.clear() -console.writeline("Unit test for joypad.get and joypad.set") -console.writeline("Core Required: NES (or any multi-player core with U,D,L,R,select,start,A,B as buttons)") -console.writeline("") - -local test_event -local test_function -local test_frame = 0 - -function test_1() - -- clear previous input - if test_frame < 4 then - return - end - - local test_case = "test_1: set/get round trip" - local test_result = false - - -- set expected input - joypad.set({ ["P1 A"] = true, ["P1 B"] = true, ["P1 Select"] = true }) - - -- get actual input - local t = joypad.get() - - -- assert_equal - if t["P1 A"] and t["P1 B"] and t["P1 Select"] then - test_result = true - end - - -- finish - console.writeline(string.format("%s (%s): %s", test_case, test_event, test_result and "OK" or "FAILED")) - -- if not test_result then - -- console.writeline("Returned Value:") - -- console.writeline(t) - -- end - - return next_test() -end - -local test_2_first = true -local test_2_start_pressed = false -function test_2() - if test_frame < 4 then - return - end - - local test_case = "test_2: get/set round trip" - if test_2_first then - test_2_first = false - - console.writeline(test_case) - console.writeline("Does joypad work normally?") - console.writeline("Press 'P1 Start' if it works good.") - end - - if test_frame == 4 then - console.writeline(string.format("%s: running...", test_event)) - end - - -- round trip (no changes) - local t = joypad.get() - joypad.set(t) - - if t["P1 Start"] then - test_2_start_pressed = true - else - if test_2_start_pressed then - test_2_start_pressed = false - next_test() - end - end -end - -local test_3_first = true -function test_3() - local test_case = "test_3: test if joypad.get() == movie.getinput(now)?" - - if test_3_first then - test_3_first = false - console.writeline(test_case) - end - - console.writeline(string.format("%s: test code is not available yet: SKIPPED", test_event)) - next_test() -end - -local tests = { test_1, test_2, test_3 } -local events = { "event.onframestart", "event.onframeend", "emu.frameadvance" } - -local test_event_index = 1 -local test_function_index = 1 -test_event = events[1] -test_function = tests[1] - -function test_reset() - test_frame = 0 -end -test_reset() - -function next_test() - test_event_index = test_event_index + 1 - if test_event_index > #events then - console.writeline("") - test_event_index = 1 - test_function_index = test_function_index + 1 - if test_function_index > #tests then - console.writeline("Test Finished.") - console.writeline("") - error("Done.") - end - end - test_event = events[test_event_index] - test_function = tests[test_function_index] - test_reset() -end - -event.onframestart(function() - if test_event == "event.onframestart" then - test_function() - test_frame = test_frame + 1 - end -end) - -event.onframeend(function() - if test_event == "event.onframeend" then - test_function() - test_frame = test_frame + 1 - end -end) - -while true do - if test_event == "emu.frameadvance" then - test_function() - test_frame = test_frame + 1 - end - emu.frameadvance() -end diff --git a/Assets/Lua/UnitTests/Joypad_Set.lua b/Assets/Lua/UnitTests/Joypad_Set.lua deleted file mode 100644 index 70c1638cf1..0000000000 --- a/Assets/Lua/UnitTests/Joypad_Set.lua +++ /dev/null @@ -1,44 +0,0 @@ -console.writeline("Unit test for joypad.set") -console.writeline("Core Required: NES (or any multi-player core with U,D,L,R,select,start,A,B as buttons)") -console.writeline("Correct behavior:") -console.writeline("No Directional button shoudl be imparied in any way, should operate as if nothing was ever pressed") -console.writeline("A should be off and user can not push buttons to change that") -console.writeline("B should be on and the user can not push buttons to change that") -console.writeline("Select should be on, but pressing it turns it off") -console.writeline("Start should be unaffected") -console.writeline("After frame 600, the console will say 'cleared', and now all buttons should be off and unaffected, as if the script was never run"); - -buttons = { }; - -buttons["Up"] = false; -buttons["Down"] = true; -buttons["Left"] = "invert"; -buttons["Right"] = nil; -joypad.set(buttons, 1); - -pushThings = true; - -while true do - if (pushThings) then - buttons = { }; - buttons["A"] = false; - buttons["B"] = true; - buttons["Select"] = "invert"; - buttons["Start"] = nil; - joypad.set(buttons, 1); - end - - if (emu.framecount() == 600) then - pushThings = false; - turnoff = { }; - turnoff["A"] = nil; - turnoff["B"] = nil; - turnoff["Select"] = nil; - turnoff["Start"] = nil; - - joypad.set(turnoff, 1); - console.writeline("cleared") - end - - emu.frameadvance(); -end \ No newline at end of file diff --git a/Assets/Lua/UnitTests/Joypad_WithControllerNumbers.lua b/Assets/Lua/UnitTests/Joypad_WithControllerNumbers.lua deleted file mode 100644 index eac15be1c1..0000000000 --- a/Assets/Lua/UnitTests/Joypad_WithControllerNumbers.lua +++ /dev/null @@ -1,44 +0,0 @@ -console.writeline("Unit test for joypad.set using the controller parameter") -console.writeline("Core Required: NES (or any multi-player core with U,D,L,R,select,start,A,B as buttons)") -console.writeline("Correct behavior:") -console.writeline("No Directional button shoudl be imparied in any way, should operate as if nothing was ever pressed") -console.writeline("A should be off and user can not push buttons to change that") -console.writeline("B should be on and the user can not push buttons to change that") -console.writeline("Select should be on, but pressing it turns it off") -console.writeline("Start should be unaffected") -console.writeline("After frame 600, the console will say 'cleared', and now all buttons should be off and unaffected, as if the script was never run"); - -buttons = { }; - -buttons["Up"] = false; -buttons["Down"] = true; -buttons["Left"] = "invert"; -buttons["Right"] = nil; -joypad.set(buttons, 1); - -pushThings = true; - -while true do - if (pushThings) then - buttons = { }; - buttons["A"] = false; - buttons["B"] = true; - buttons["Select"] = "invert"; - buttons["Start"] = nil; - joypad.set(buttons, 1); - end - - if (emu.framecount() == 600) then - pushThings = false; - turnoff = { }; - turnoff["A"] = nil; - turnoff["B"] = nil; - turnoff["Select"] = nil; - turnoff["Start"] = nil; - - joypad.set(turnoff, 1); - console.writeline("cleared") - end - - emu.frameadvance(); -end \ No newline at end of file diff --git a/Assets/Lua/UnitTests/TestCommunication_All.lua b/Assets/Lua/UnitTests/TestCommunication_All.lua deleted file mode 100644 index 4e1a7e95b3..0000000000 --- a/Assets/Lua/UnitTests/TestCommunication_All.lua +++ /dev/null @@ -1,149 +0,0 @@ -function round(num, numDecimalPlaces) - local mult = 10^(numDecimalPlaces or 0) - return math.floor(num * mult + 0.5) / mult -end - -function get_baseline() - i = 100 - client.reboot_core() - t = os.clock() - - while i > 0 do - emu.frameadvance() - i = i - 1 - end - baseline = os.clock() - t - print('Baseline: ' .. round(baseline, 3) .. " secs") - return baseline -end - -function test_mmf() - i = 100 - client.reboot_core() - t = os.clock() - while i > 0 do - emu.frameadvance() - comm.mmfScreenshot() - i = i - 1 - end - print('Memory mapped files: ' .. round((os.clock() - t - baseline), 3) .. " secs") -end - -function test_http() - print("Testing HTTP server") - client.reboot_core() - i = 100 - t = os.clock() - - while i > 0 do - emu.frameadvance() - comm.httpTestGet() - i = i - 1 - end - print('HTTP get: ' .. round((os.clock() - t - baseline), 3) .. " secs") - - client.reboot_core() - i = 100 - t = os.clock() - - while i > 0 do - emu.frameadvance() - comm.httpPostScreenshot() - i = i - 1 - end - print('HTTP post: ' .. round((os.clock() - t - baseline), 3) .. " secs") - -end - -function test_socket() - - i = 100 - client.reboot_core() - t = os.clock() - while i > 0 do - emu.frameadvance() - comm.socketServerScreenShot() - i = i - 1 - end - print('Socket server: ' .. round((os.clock() - t - baseline), 3) .. " secs") -end - -function test_socketresponse() - best_time = -100 - timeouts = {1, 2, 3, 4, 5, 10, 20, 25, 50, 100, 250, 500, 1000} - comm.socketServerSetTimeout(1000) - resp = comm.socketServerScreenShotResponse() - for t, timeout in ipairs(timeouts) do - comm.socketServerSetTimeout(timeout) - client.reboot_core() - print("Trying to find minimal timeout for Socket server") - i = 100 - t = os.clock() - while i > 0 do - emu.frameadvance() - resp = comm.socketServerScreenShotResponse() - if resp ~= 'ack' then - i = -100 - print(resp) - print("Failed to a get a proper response") - end - i = i - 1 - end - if i > -100 then - print("Best timeout: " .. timeout .. " msecs") - print("Best time: " .. round((os.clock() - t - baseline), 3) .. " secs") - break - end - end - -end - -function test_http_response() - err = false - print("Testing HTTP server response") - client.reboot_core() - i = 100 - - while i > 0 do - emu.frameadvance() - resp = comm.httpTestGet() - if resp ~= "

hi!

" then - print("Failed to get correct HTTP get response") - print(resp) - i = 0 - err = true - end - i = i - 1 - end - if not err then - print("HTTP GET looks fine: No errors occurred") - end - - client.reboot_core() - i = 100 - err = false - while i > 0 do - emu.frameadvance() - resp = comm.httpPostScreenshot() - if resp ~= "OK" then - print("Failed to get correct HTTP post response") - print(resp) - i = 0 - err = true - end - i = i - 1 - end - if not err then - print("HTTP POST looks fine: No errors occurred") - end -end - -baseline = get_baseline() -test_socket() -test_mmf() -test_http() -print("#####################") -test_http_response() -test_socketresponse() -print() - diff --git a/Assets/Lua/UnitTests/TestCommunication_Simple.lua b/Assets/Lua/UnitTests/TestCommunication_Simple.lua deleted file mode 100644 index b7b5fac647..0000000000 --- a/Assets/Lua/UnitTests/TestCommunication_Simple.lua +++ /dev/null @@ -1,91 +0,0 @@ -print("##########################################################") -getUrl = comm.httpGetGetUrl() -print("GET URL: " .. getUrl) - -postUrl = comm.httpGetPostUrl() -print("POST URL: " .. postUrl) - -print("\nChecking GET URL change") -error = false -comm.httpSetGetUrl('a') -if (getUrl ~= comm.httpGetGetUrl()) then - comm.httpSetGetUrl(getUrl) - error = (getUrl ~= comm.httpGetGetUrl()) -else - error = true -end - -if error == false then - print("Get URL was successfully changed") -else - print("Error while changing Get URL") -end - - -print("\nChecking POST URL change") -error = false -comm.httpSetPostUrl('a') -if (postUrl ~= comm.httpGetPostUrl()) then - comm.httpSetPostUrl(postUrl) - error = (postUrl ~= comm.httpGetPostUrl()) -else - error = true -end - -if error == false then - print("Post URL was successfully changed") -else - print("Error while changing Post URL") -end - -print("\nChecking GET request") -getResponse = comm.httpGet("http://tasvideos.org/BizHawk.html") -if string.find(getResponse, "Bizhawk") then - print("GET seems to work") -else - print("Either the Bizhawk site is down or the GET does not work") -end - -print("\nChecking memory mapped filed") - -size = comm.mmfScreenshot() -if size > 0 then - print("Memory mapped file was successfully written") -else - print("Failed to write memory mapped file") -end - -mmf_filename = comm.mmfGetFilename() -print("MMF filename: " .. mmf_filename) -comm.mmfSetFilename("deleteme.tmp") -error = false -if (mmf_filename ~= comm.mmfGetFilename()) then - comm.mmfSetFilename(mmf_filename) - error = (mmf_filename ~= comm.mmfGetFilename()) -else - error = true -end -if error == false then - print("MMF filename successfully changed") -else - print("MMF filename change failed") -end - -print("Writing to MMF") - -message = "ABC" -resp_n = tonumber(comm.mmfWrite(mmf_filename, message)) -if (resp_n ~= string.len(message)) then - print("Failed to write to MMF") -else - resp = comm.mmfRead(mmf_filename, string.len(message)) - if (resp ~= message) then - print("Failed to read from MMF") - else - print("MMF read and read OK") - end -end - - -print("\nTests finished") -print("Please run TestCommunication_All.lua with the supplied Python server for a more comprehensive test") diff --git a/Assets/Lua/UnitTests/UnitTests.lua b/Assets/Lua/UnitTests/UnitTests.lua deleted file mode 100644 index d46ee3d095..0000000000 --- a/Assets/Lua/UnitTests/UnitTests.lua +++ /dev/null @@ -1,5 +0,0 @@ -0 .\Lua\UnitTests\Joypad_RoundTrip.lua -0 .\Lua\UnitTests\Joypad_Set.lua -0 .\Lua\UnitTests\Joypad_WithControllerNumbers.lua -0 .\Lua\UnitTests\GameInfo.lua -0 .\Lua\UnitTests\Console.lua diff --git a/Assets/Lua/tasjudy.bat b/Assets/Lua/tasjudy.bat deleted file mode 100644 index 13b09c7357..0000000000 --- a/Assets/Lua/tasjudy.bat +++ /dev/null @@ -1,38 +0,0 @@ -@echo off -ECHO Hello. I am TASJudy. Prepare to be Judged. -setlocal EnableDelayedExpansion -del results\failed.txt >nul 2>&1 - -for /r %%i in (movies\*) do ( - set currentmovie=%%i - - echo Processing %%i... - start "" /B "F:\competition\bizhawk\EmuHawk.exe" rom\mystery.nes --movie=%%i - - echo Waiting for run to finish... - TIMEOUT /T 1 >nul - call :CheckForExe -) - -echo Done -pause -exit /b - -:CheckForExe -tasklist /FI "IMAGENAME eq EmuHawk.exe" 2>NUL | find /I /N "EmuHawk.exe">NUL - -if %ERRORLEVEL% == 1 goto ResultsAreIn - -TIMEOUT /T 1 >nul -call :CheckForExe -exit /b - - -:ResultsAreIn -echo Results are in for !currentmovie! -call :kill -exit /b - -:kill -taskkill /f /im EmuHawk.exe >nul 2>&1 -exit /b diff --git a/Assets/Lua/tasjudy.lua b/Assets/Lua/tasjudy.lua deleted file mode 100644 index 8591a4711a..0000000000 --- a/Assets/Lua/tasjudy.lua +++ /dev/null @@ -1,138 +0,0 @@ --- --- TASJudy - Judges so you don't have to. --- Author: Raiscan --- Timestamp: 201508041957 --- Version: 0.1 --- To change this template use File | Settings | File Templates. --- - -local resultsFilePath = "F:\\competition\\results\\results.txt" -local gracePeriod = 10000 -local gracePeriodCounter = 0 -local separator = "," -local exitOnResults = true - -local FAILURE_DOES_NOT_FINISH = "DNF" -local FAILURE_DISQUALIFIED = "DQ" - --- Main Function -- -function judge() - if movie.startsfromsavestate() then - console.log("Movie starts from savestate, so disqualifying") - - writeFailureToResults(FAILURE_DISQUALIFIED) - - endScript() - return - end - - while not hasCompletedGame() do - - if movieHasFinished() then - if gracePeriodLimiter() then - console.log("Movie does not finish the game :(") - writeFailureToResults(FAILURE_DOES_NOT_FINISH) - - endScript() - return - end - end - - --The show must go on - emu.frameadvance() - end - - --We must have finished! - console.log("Movie finished game.") - writeSuccessToResults(emu.framecount(), getInGameTime()) - - endScript() -end - - --------- HELPER FUNCTIONS BELOW --------- - --- Edit this with game completion criteria as necessary -- -function hasCompletedGame() - return mainmemory.read_s8(0x002C) == 1 -end - - --- Edit this with functionality for in game time -- -function getInGameTime() - local millis = bizstring.hex(mainmemory.read_u8(0x0050)):reverse() - local seconds = bizstring.hex(mainmemory.read_u8(0x004F)):reverse() - local minutes = bizstring.hex(mainmemory.read_u8(0x004E)):reverse() - - return minutes .. ":" .. seconds .. "." .. millis -end - - --- Ends the script. If exitOnResults set, exits emulator. -function endScript() - client.pause() - if exitOnResults then - client.closerom() - client.exitCode(emu.framecount()) - end -end - --- Parses the hash of the movie file calculated by RGamma's uploader. -function parseHash() - local moviePath = movie.filename() - local movieFile = moviePath:match("([^\\]+)$") - local hash = movieFile:match("^([^.]+)") - - return hash -end - - --- Alias for writing results; blanks out times with reason. -function writeFailureToResults(reason) - - writeResults(parseHash(), movie.getheader()["Author"], reason, reason, reason) -end - --- Alias for writing results; takes in endFrame and in game time -- -function writeSuccessToResults(endFrame, inGameTime) - - writeResults(parseHash(), movie.getheader()["Author"], endFrame, movie.length(), inGameTime) -end - -function movieHasFinished() - return movie.mode() == "FINISHED" or not movie.isloaded() -end - --- Opens results file and writes a single line of all information gathered -- -function writeResults(hash, author, endFrame, length, inGameTime) - local resultsFile, err = io.open(resultsFilePath, "a") - - if err then - console.log("Could not write results " .. err) - else - local hash = parseHash() - local resultsLine = hash .. - separator .. - author .. - separator .. - endFrame .. - separator .. - length .. - separator .. - inGameTime - - - resultsFile:write(resultsLine .. "\n") - resultsFile:close() - end -end - -function gracePeriodLimiter() - if gracePeriodCounter < gracePeriod then - gracePeriodCounter = gracePeriodCounter + 1 - end - - return gracePeriodCounter >= gracePeriod -end - -judge() diff --git a/Assets/Lua/tasjudy.py b/Assets/Lua/tasjudy.py deleted file mode 100644 index 50e334c44e..0000000000 --- a/Assets/Lua/tasjudy.py +++ /dev/null @@ -1,18 +0,0 @@ -import os -import datetime -from multiprocessing import Pool - -bizhawkPath = "" -romPath = "" -moviePath = "" - -def emu(arg): - ret = os.system(bizhawkPath + " " + romPath + " --movie=" + moviePath) - print("Ending %d with %d at %s" % (arg,ret,datetime.datetime.now().time())) - -if __name__ == '__main__': - print("Starting at %s" % datetime.datetime.now().time()) - p = Pool(processes=4) - p.map(emu,range(1)) - print("Ending parent at %s" % datetime.datetime.now().time()) - diff --git a/Assets/NES/Palettes/ASQ_realityA.pal b/Assets/NES/Palettes/ASQ_realityA.pal deleted file mode 100644 index 8c93587000a097dcb9dd0e175d877a5f4fc673e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmYdDNMKN`W?-0O$j}|hke|CeExzyk*B)~yo= zJ14F4KSANmN{0QX#6nIW+-fjCr|ID=i z*AxE#Pn!BaCHTt}gF|Z=CL9q7x}>3SY?8#TOFlk65G_FUi_iRDvgQB5ZT}x^|NsBM i(f@l^|GzN*&w~k%Ud=f5X~BY5j}|=owQburhXXiCWBE#3}PAQH zM20As4Psa@3a7XW|MWY@abS#rrNC4{bs-dBr%=v76o48aswlMqr2g}LKQAw$$i5Np zu|K6d=S91R#MvO(Hgy4}yDa$8}lO)IiWhncy%ODU7f i&+99rBjb?Vl3~na#Osa^@A+EmxAtGp&4WP@B>oHWKUhlu diff --git a/Assets/NES/Palettes/BMF_final2.pal b/Assets/NES/Palettes/BMF_final2.pal deleted file mode 100644 index 01fd7161385a8bd76c93a26503ccf1a9ae345b56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmWFv3SwYr;9%&|VW{(B@C#sIb75dm<6z)YU|`T=U@!u5xEN$S7+_$@k|hil=S;-j z#IfAzVc0N>!DoU5LxCBCPY45F4g*6814E7uLtG0?Im7?||9$5Cuc`RIEam^LsQ({A z4t&T8yVfSKYY9Wy0S31-QhF!SOb+d{va*6`0jl42>;H*U|8E`o|6$+%KYQN&I&|RE cnMKcTO*-?eZ^yeu>t5|!_u|op4I3cp0kwonUjP6A diff --git a/Assets/NES/Palettes/BMF_final3.pal b/Assets/NES/Palettes/BMF_final3.pal deleted file mode 100644 index d1560114d793161f7a42272b592372c0df3b1a18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmd1E$Y2nfDaElWkZD#OLuMa?OdT_0pag@wIRm2~149%8Lx2o}Lm~qV?A*DNC+2#9 z>4#3q2fKMTpW{h9pv^bcmoYJ)LB5-TaRv{=WN(JX*)Zh{|Ns9_-tvF;#Q&Ge|G&@r z|1;yj&)S@~vvv3G6|1==eoE~fA#GDx4ZuT*zo_~hBtrr fZvA0IB!5(s diff --git a/Assets/NES/Palettes/FCEU-13-default_nitsuja.pal b/Assets/NES/Palettes/FCEU-13-default_nitsuja.pal deleted file mode 100644 index 9367073b717ccb7bb47548e9851b82114074f5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmYdDNMK;75MgN0VaW4h@XKM4h+<|6lwdGXVPG&}U@!ub3Jf|G3=9lRU~uHf5r&9+ z2J(OEMINkR*l>U?=72WeG6#YDL-K87Z}v;O6i?QGdZ*`BqW3l4F3QBzwOrl6Q};)I`sd;zW;yr jy!(G)%l}&w-n^M~=i9s;{}-)$wQt`0_xtwk;{XEyDxy&{ diff --git a/Assets/NES/Palettes/FCEU-15-nitsuja_new.pal b/Assets/NES/Palettes/FCEU-15-nitsuja_new.pal deleted file mode 100644 index 4765e546ee52b95039b806aa4e1dd0489f874e1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmYdDNMK+n5MgN0VaW4h@XKM4h+<|6lwdGXVPG&}U@!ub3Jf|G3=9lRU~uHf5r&9+ z2J(OEMINkR*l>U?=72WeG6#YDL-K87Z}v;O6i?QGdZ*`BqW3l4F3QBzwOrl6Q};)I`sd;zW;yr jy!(G)%l}&w-n^M~=i9s;{}-)$wQt`0_xtwk;{XEyB+5}M diff --git a/Assets/NES/Palettes/FCEUX (2.2.0).pal b/Assets/NES/Palettes/FCEUX (2.2.0).pal deleted file mode 100644 index 7bf9128fb5fad8d07059f217f9c4f61a886da9a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmXwx5f_6{0EI6O2Eia43)Gs_$%@0k|dcXqpy0JmTgU% Wk&gP#PO-1vtdt!~bEP%LO#UB@`&Kys diff --git a/Assets/NES/Palettes/QuickNes.pal b/Assets/NES/Palettes/QuickNes.pal deleted file mode 100644 index 33d3b5b6be4591c42c15c7f9973e92ff0fa7e797..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1536 zcmYL}dsNJ69LAqqwvcs~*gB!owsh5oI;qy^vN36*`y$G0o7uEUrP?EO+3iZVsh#dk zF+{{nrD>TOU35`OIWChev^X3sIXGYYvy=Au<2~;mpXd8N@8$aj1_r_~apC+*E0p;n zmIvElRd{G&tp(Jb05^cG2HUOptg5Q2MLX}<+fw+dkHyP6B-+uJ%yjr{1oN;i0kboK zbTdS!e#SvWd(YF!bh>_s#)61=9TXSxv~XoZBa#N;H)6sXigWCIz-F_R7KXp7pj*8( z+CuMTM9ojBLq0wz9C?)0{W3@TT2wREap~EZL?Ti0p&T|e4(K4m0V!PUi^A6tz@C|~ zU4bRv0viEqU=1^ykTf$*k5$jnAC8}`s8*?JndU2BqH@{-(e7~C5A7&?5x!uCKktjr zJl($?l}eR7y1SjoahzPrXqN-UphtiLF+ydk-i=;+nzLI;LA9%pIGONDy6B3zc+@|K zvSaD$fxCkTllqg^)CrL+ho=IopJCyXjT(LVmK-Ccf#K61ca`2zNV@K~wzc-&sO-5F zCs*vLdA_Z1oRji_d-Q$Mv9WU*(l{m0;aEb$3y3tpK_{@iG0zkDZYFeA02Y(yuRWRn zWF`-+JOlkEAN9s~qzI;2=WF2Cwbxq(WZ1j~&FnmEnWA*uNxv+DfxOS*CS0M`R6LYS~?9X;? z%J22exEXb#wNM}kSMnYn$Fa0x`V{$U$hJVR6F>Mt)8R|#GWFI2_RJRaVH!M{pU)qF zGZ}qDyXR5z^zpJ8<;7n)A72j-FX)B>u`?0ni+y5Xj?ywROwO4U5k_ZxXkaV7aHHpe z!tSG9C8b8Z26Ow?K*MIqnhRua7c|KWo2XVyoo7f?yr zAE3N$DlPd-$$LBO#;iCslo+GH6%qc}unTYoRxJh$0dv4)3YI%6VP-5iCY)x`W48E1 z0LIhNT#2x9Rm~(__-ulKAMhg(UXW!C&8h8I@oKQ;eq>C=p=6bPZ&koTMwU{C})j>1NL`NK?6KD!`plPUJr$bE0H&qZ{nrKh%r#6XK0Y3{^(%FTcc?x%f+{|I zv*)Ws8N-DQO)d}yge-s`Q*c6EU0v3R^b?l~+0<_T_TlDog}0;Z5VCTxyBZb^YFf2E zIzq9jsj1Sy@R=7zgynCpt5LCq=Ud6!>FTr4{#lUIFz+lh7V57uf6w3eu3l}bA2!1DO z^DjZ;$x7K7SL7To=`gHvVaSPN&@EI^ zzw`O=o diff --git a/Assets/Shaders/BizHawk/BizScanlines.cgp b/Assets/Shaders/BizHawk/BizScanlines.cgp deleted file mode 100644 index 3bb5dd154f..0000000000 --- a/Assets/Shaders/BizHawk/BizScanlines.cgp +++ /dev/null @@ -1,4 +0,0 @@ -shaders = 1 - -shader0 = BizScanlines.cg -scale0 = 2 diff --git a/Assets/Shaders/BizHawk/BizScanlines.glsl b/Assets/Shaders/BizHawk/BizScanlines.glsl deleted file mode 100644 index b96461956e..0000000000 --- a/Assets/Shaders/BizHawk/BizScanlines.glsl +++ /dev/null @@ -1,31 +0,0 @@ -//Yeah, I'm sorry this uses really old non-generic attributes -//that's just how old this code is; support on ancient graphics cards is helpful - -#ifdef VERTEX -uniform mat4 modelViewProj; - -void main() -{ - gl_Position = modelViewProj * gl_Vertex; - gl_TexCoord[0] = gl_MultiTexCoord0; -} - -#endif - -#ifdef FRAGMENT - -uniform float uIntensity; -uniform sampler2D s_p; - -uniform vec2 output_size; - -void main() -{ - vec2 vTex = gl_TexCoord[0].xy; - vec4 temp = texture2D(s_p,vTex); - vec2 wpos = gl_FragCoord.xy; - if(floor(wpos.y/2.0) != floor(wpos.y)/2.0) temp.rgb *= uIntensity; - gl_FragColor = temp; -} - -#endif \ No newline at end of file diff --git a/Assets/Shaders/BizHawk/BizScanlines.hlsl b/Assets/Shaders/BizHawk/BizScanlines.hlsl deleted file mode 100644 index 96979e7b29..0000000000 --- a/Assets/Shaders/BizHawk/BizScanlines.hlsl +++ /dev/null @@ -1,23 +0,0 @@ -void main_vertex -( - float4 position : POSITION, - float2 tex : TEXCOORD0, - - uniform float4x4 modelViewProj, - - out float4 oPosition : POSITION, - out float2 oTexcoord : TEXCOORD0 -) -{ - oPosition = mul(modelViewProj, position); - oTexcoord = tex; -} - -uniform float uIntensity; - -float4 main_fragment (in float2 texcoord : TEXCOORD0, in float2 wpos : VPOS, uniform sampler2D s_p : TEXUNIT0) : COLOR -{ - float4 temp = tex2D(s_p,texcoord); - if(floor(wpos.y/2) != floor(wpos.y)/2) temp.rgb *= uIntensity; - return temp; -} diff --git a/Assets/Shaders/BizHawk/bicubic-fast.cgp b/Assets/Shaders/BizHawk/bicubic-fast.cgp deleted file mode 100644 index b82eafc3ab..0000000000 --- a/Assets/Shaders/BizHawk/bicubic-fast.cgp +++ /dev/null @@ -1,4 +0,0 @@ -shaders = 1 - -shader0 = bicubic-fast.cg -scale_type0 = viewport \ No newline at end of file diff --git a/Assets/Shaders/BizHawk/bicubic-fast.hlsl b/Assets/Shaders/BizHawk/bicubic-fast.hlsl deleted file mode 100644 index db7b9fbbb4..0000000000 --- a/Assets/Shaders/BizHawk/bicubic-fast.hlsl +++ /dev/null @@ -1,152 +0,0 @@ -/* COMPATIBILITY - - HLSL compilers - - Cg compilers -*/ - -/* - bicubic-fast Shader - - Copyright (C) 2011-2015 Hyllian - sergiogdb@gmail.com - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - -*/ - -const static float4x4 invX = float4x4(-1.0/6.0, 0.5, -1.0/3.0, 0.0, - 0.5, -1.0, -0.5, 1.0, - -0.5, 0.5, 1.0, 0.0, - 1.0/6.0, 0.0, -1.0/6.0, 0.0); - - -// Can't init statically from variable, even though it's const ... -//const static float4x4 invY = transpose(invX); -const static float4x4 invY = float4x4(-1.0/6.0, 0.5, -0.5, 1.0/6.0, - 0.5, -1.0, 0.5, 0.0, - -1.0/3.0, -0.5, 1.0, -1.0/6.0, - 0.0, 1.0, 0.0, 0.0); - -struct input -{ - float2 video_size; - float2 texture_size; - float2 output_size; - float frame_count; - float frame_direction; - float frame_rotation; -}; - - -struct out_vertex { - float2 texCoord : TEXCOORD0; - float4 t1 : TEXCOORD1; - float4 t2 : TEXCOORD2; - float4 t3 : TEXCOORD3; - float4 t4 : TEXCOORD4; - float4 t5 : TEXCOORD5; - float4 t6 : TEXCOORD6; - float4 t7 : TEXCOORD7; - float2 t8 : COLOR0; -}; - -/* VERTEX_SHADER */ -out_vertex main_vertex -( - float4 position : POSITION, - out float4 oPosition : POSITION, - float2 texCoord1 : TEXCOORD0, - - uniform float4x4 modelViewProj, - uniform input IN -) -{ - float2 ps = float2(1.0/IN.texture_size.x, 1.0/IN.texture_size.y); - float dx = ps.x; - float dy = ps.y; - - oPosition = mul(modelViewProj, position); - - // This line fix a bug in ATI cards. - float2 tex = texCoord1 + float2(0.0000001, 0.0000001); - - out_vertex OUT = { - tex, - float4(tex,tex) + float4( -dx, -dy, 0.0, -dy), - float4(tex,tex) + float4( dx, -dy, 2.0*dx, -dy), - float4(tex,tex) + float4( -dx, 0.0, dx, 0.0), - float4(tex,tex) + float4(2.0*dx, 0.0, -dx, dy), - float4(tex,tex) + float4( 0.0, dy, dx, dy), - float4(tex,tex) + float4(2.0*dx, dy, -dx, 2.0*dy), - float4(tex,tex) + float4( 0.0, 2.0*dy, dx, 2.0*dy), - tex + float2(2.0*dx, 2.0*dy) - }; - - - return OUT; -} - - -float4 main_fragment(in out_vertex VAR, uniform sampler2D s_p : TEXUNIT0, uniform input IN) : COLOR -{ - - float2 fp = frac(VAR.texCoord*IN.texture_size); - float3 c00 = tex2D(s_p, VAR.t1.xy).xyz; - float3 c01 = tex2D(s_p, VAR.t1.zw).xyz; - float3 c02 = tex2D(s_p, VAR.t2.xy).xyz; - float3 c03 = tex2D(s_p, VAR.t2.zw).xyz; - float3 c10 = tex2D(s_p, VAR.t3.xy).xyz; - float3 c11 = tex2D(s_p, VAR.texCoord).xyz; - float3 c12 = tex2D(s_p, VAR.t3.zw).xyz; - float3 c13 = tex2D(s_p, VAR.t4.xy).xyz; - float3 c20 = tex2D(s_p, VAR.t4.zw).xyz; - float3 c21 = tex2D(s_p, VAR.t5.xy).xyz; - float3 c22 = tex2D(s_p, VAR.t5.zw).xyz; - float3 c23 = tex2D(s_p, VAR.t6.xy).xyz; - float3 c30 = tex2D(s_p, VAR.t6.zw).xyz; - float3 c31 = tex2D(s_p, VAR.t7.xy).xyz; - float3 c32 = tex2D(s_p, VAR.t7.zw).xyz; - float3 c33 = tex2D(s_p, VAR.t8.xy).xyz; - - - float4x4 red_matrix = float4x4(c00.x, c01.x, c02.x, c03.x, - c10.x, c11.x, c12.x, c13.x, - c20.x, c21.x, c22.x, c23.x, - c30.x, c31.x, c32.x, c33.x); - - float4x4 green_matrix = float4x4(c00.y, c01.y, c02.y, c03.y, - c10.y, c11.y, c12.y, c13.y, - c20.y, c21.y, c22.y, c23.y, - c30.y, c31.y, c32.y, c33.y); - - float4x4 blue_matrix = float4x4(c00.z, c01.z, c02.z, c03.z, - c10.z, c11.z, c12.z, c13.z, - c20.z, c21.z, c22.z, c23.z, - c30.z, c31.z, c32.z, c33.z); - - - float4x1 invX_Px = mul(invX, float4x1(fp.x*fp.x*fp.x, fp.x*fp.x, fp.x, 1.0)); - float1x4 Py_invY = mul(float1x4(fp.y*fp.y*fp.y, fp.y*fp.y, fp.y, 1.0), invY); - - - float red = mul(Py_invY, mul( red_matrix, invX_Px)); - float green = mul(Py_invY, mul(green_matrix, invX_Px)); - float blue = mul(Py_invY, mul( blue_matrix, invX_Px)); - - return float4(red, green, blue, 1.0); -} - diff --git a/Assets/Shaders/BizHawk/bicubic-normal.cgp b/Assets/Shaders/BizHawk/bicubic-normal.cgp deleted file mode 100644 index 974f9e7e25..0000000000 --- a/Assets/Shaders/BizHawk/bicubic-normal.cgp +++ /dev/null @@ -1,4 +0,0 @@ -shaders = 1 - -shader0 = bicubic-normal.cg -scale_type0 = viewport \ No newline at end of file diff --git a/Assets/Shaders/BizHawk/bicubic-normal.hlsl b/Assets/Shaders/BizHawk/bicubic-normal.hlsl deleted file mode 100644 index 81aa180deb..0000000000 --- a/Assets/Shaders/BizHawk/bicubic-normal.hlsl +++ /dev/null @@ -1,151 +0,0 @@ -/* COMPATIBILITY - - HLSL compilers - - Cg compilers -*/ - -/* - Copyright (C) 2010 Team XBMC - http://www.xbmc.org - Copyright (C) 2011 Stefanos A. - http://www.opentk.com - -This Program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -This Program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with XBMC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -http://www.gnu.org/copyleft/gpl.html - - From this forum post: - http://board.byuu.org/viewtopic.php?p=33488#p33488 - -*/ - - -/* Default Vertex shader */ -void main_vertex -( - float4 position : POSITION, - //float4 color : COLOR, - float2 texCoord1 : TEXCOORD0, - - uniform float4x4 modelViewProj, - - out float4 oPosition : POSITION, - //out float4 oColor : COLOR, - out float2 otexCoord : TEXCOORD - ) -{ - oPosition = mul(modelViewProj, position); - //oColor = color; - otexCoord = texCoord1; -} - -struct output -{ - float4 color : COLOR; -}; - -struct input -{ - float2 video_size; - float2 texture_size; - float2 output_size; - float frame_count; - float frame_direction; - float frame_rotation; -}; - -float weight(float x) -{ - float ax = abs(x); - // Mitchel-Netravali coefficients. - // Best psychovisual result. - const float B = 1.0 / 3.0; - const float C = 1.0 / 3.0; - - // Sharper version. - // May look better in some cases. - //const float B = 0.0; - //const float C = 0.75; - - if (ax < 1.0) - { - return - ( - pow(x, 2.0) * ((12.0 - 9.0 * B - 6.0 * C) * ax + (-18.0 + 12.0 * B + 6.0 * C)) + - (6.0 - 2.0 * B) - ) / 6.0; - } - else if ((ax >= 1.0) && (ax < 2.0)) - { - return - ( - pow(x, 2.0) * ((-B - 6.0 * C) * ax + (6.0 * B + 30.0 * C)) + - (-12.0 * B - 48.0 * C) * ax + (8.0 * B + 24.0 * C) - ) / 6.0; - } - else - { - return 0.0; - } -} - -float4 weight4(float x) -{ - return float4( - weight(x - 2.0), - weight(x - 1.0), - weight(x), - weight(x + 1.0)); -} - -float3 pixel(float xpos, float ypos, uniform sampler2D s_p) -{ - return tex2D(s_p, float2(xpos, ypos)).rgb; -} - -float3 line_run(float ypos, float4 xpos, float4 linetaps, uniform sampler2D s_p) -{ - return - pixel(xpos.r, ypos, s_p) * linetaps.r + - pixel(xpos.g, ypos, s_p) * linetaps.g + - pixel(xpos.b, ypos, s_p) * linetaps.b + - pixel(xpos.a, ypos, s_p) * linetaps.a; -} - - -output main_fragment (float2 tex : TEXCOORD0, uniform input IN, uniform sampler2D s_p : TEXUNIT0) -{ - float2 stepxy = float2(1.0/IN.texture_size.x, 1.0/IN.texture_size.y); - float2 pos = tex.xy + stepxy * 0.5; - float2 f = frac(pos / stepxy); - - float4 linetaps = weight4(1.0 - f.x); - float4 columntaps = weight4(1.0 - f.y); - - //make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur - linetaps /= linetaps.r + linetaps.g + linetaps.b + linetaps.a; - columntaps /= columntaps.r + columntaps.g + columntaps.b + columntaps.a; - - float2 xystart = (-1.5 - f) * stepxy + pos; - float4 xpos = float4(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0, xystart.x + stepxy.x * 3.0); - - -// final sum and weight normalization - output OUT; - OUT.color = float4(line_run(xystart.y , xpos, linetaps, s_p) * columntaps.r + - line_run(xystart.y + stepxy.y , xpos, linetaps, s_p) * columntaps.g + - line_run(xystart.y + stepxy.y * 2.0, xpos, linetaps, s_p) * columntaps.b + - line_run(xystart.y + stepxy.y * 3.0, xpos, linetaps, s_p) * columntaps.a,1); - return OUT; -} - diff --git a/Assets/Shaders/BizHawk/hq2x.cgp b/Assets/Shaders/BizHawk/hq2x.cgp deleted file mode 100644 index afdb999e90..0000000000 --- a/Assets/Shaders/BizHawk/hq2x.cgp +++ /dev/null @@ -1,4 +0,0 @@ -shaders = 1 - -shader0 = hq2x.cg -scale0 = 2 diff --git a/Assets/Shaders/BizHawk/hq2x.glsl b/Assets/Shaders/BizHawk/hq2x.glsl deleted file mode 100644 index 6a3d1652bd..0000000000 --- a/Assets/Shaders/BizHawk/hq2x.glsl +++ /dev/null @@ -1,84 +0,0 @@ -//Yeah, I'm sorry this uses really old non-generic attributes -//that's just how old this code is; support on ancient graphics cards is helpful - -uniform struct -{ - vec2 video_size; - vec2 texture_size; - vec2 output_size; -} IN; - -#ifdef VERTEX -uniform mat4 modelViewProj; - -void main() -{ - gl_Position = modelViewProj * gl_Vertex; - - vec2 texsize = IN.texture_size; - vec2 delta = 0.5 / texsize; - float dx = delta.x; - float dy = delta.y; - - gl_TexCoord[0].xy = gl_MultiTexCoord0.xy + vec2(-dx, -dy); - gl_TexCoord[1].xy = gl_MultiTexCoord0.xy + vec2(-dx, 0.0); - gl_TexCoord[2].xy = gl_MultiTexCoord0.xy + vec2(-dx, dy); - gl_TexCoord[3].xy = gl_MultiTexCoord0.xy + vec2(0.0, -dy); - gl_TexCoord[4].xy = gl_MultiTexCoord0.xy + vec2(0.0, 0.0); - gl_TexCoord[5].xy = gl_MultiTexCoord0.xy + vec2(0.0, dy); - gl_TexCoord[6].xy = gl_MultiTexCoord0.xy + vec2(dx, -dy); - gl_TexCoord[7].xy = gl_MultiTexCoord0.xy + vec2(dx, 0); - gl_TexCoord[7].zw = gl_MultiTexCoord0.xy + vec2(dx, dy); -} - -#endif - -#ifdef FRAGMENT - -uniform sampler2D s_p; - -const float mx = 0.325; // start smoothing wt. -const float k = -0.250; // wt. decrease factor -const float max_w = 0.25; // max filter weigth -const float min_w = -0.05; // min filter weigth -const float lum_add = 0.25; // effects smoothing - -void main() -{ - vec3 c00 = texture2D(s_p, gl_TexCoord[0].xy).xyz; - vec3 c01 = texture2D(s_p, gl_TexCoord[1].xy).xyz; - vec3 c02 = texture2D(s_p, gl_TexCoord[2].xy).xyz; - vec3 c10 = texture2D(s_p, gl_TexCoord[3].xy).xyz; - vec3 c11 = texture2D(s_p, gl_TexCoord[4].xy).xyz; - vec3 c12 = texture2D(s_p, gl_TexCoord[5].xy).xyz; - vec3 c20 = texture2D(s_p, gl_TexCoord[6].xy).xyz; - vec3 c21 = texture2D(s_p, gl_TexCoord[7].xy).xyz; - vec3 c22 = texture2D(s_p, gl_TexCoord[7].zw).xyz; - vec3 dt = vec3(1.0,1.0,1.0); - - float md1 = dot(abs(c00 - c22), dt); - float md2 = dot(abs(c02 - c20), dt); - - float w1 = dot(abs(c22 - c11), dt) * md2; - float w2 = dot(abs(c02 - c11), dt) * md1; - float w3 = dot(abs(c00 - c11), dt) * md2; - float w4 = dot(abs(c20 - c11), dt) * md1; - - float t1 = w1 + w3; - float t2 = w2 + w4; - float ww = max(t1, t2) + 0.0001; - - c11 = (w1 * c00 + w2 * c20 + w3 * c22 + w4 * c02 + ww * c11) / (t1 + t2 + ww); - - float lc1 = k / (0.12 * dot(c10 + c12 + c11, dt) + lum_add); - float lc2 = k / (0.12 * dot(c01 + c21 + c11, dt) + lum_add); - - w1 = clamp(lc1 * dot(abs(c11 - c10), dt) + mx, min_w, max_w); - w2 = clamp(lc2 * dot(abs(c11 - c21), dt) + mx, min_w, max_w); - w3 = clamp(lc1 * dot(abs(c11 - c12), dt) + mx, min_w, max_w); - w4 = clamp(lc2 * dot(abs(c11 - c01), dt) + mx, min_w, max_w); - - gl_FragColor = vec4(w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11, 1.0); -} - -#endif \ No newline at end of file diff --git a/Assets/Shaders/BizHawk/hq2x.hlsl b/Assets/Shaders/BizHawk/hq2x.hlsl deleted file mode 100644 index 98b7e6f640..0000000000 --- a/Assets/Shaders/BizHawk/hq2x.hlsl +++ /dev/null @@ -1,93 +0,0 @@ -struct tex_coords -{ - float2 c00 : TEXCOORD0; - float2 c01 : TEXCOORD1; - float2 c02 : TEXCOORD2; - float2 c10 : TEXCOORD3; - float2 c11 : TEXCOORD4; - float2 c12 : TEXCOORD5; - float2 c20 : TEXCOORD6; - float2 c21 : TEXCOORD7; - float2 c22 : COLOR0; -}; - -struct input -{ - float2 video_size; - float2 texture_size; - float2 output_size; -}; - -void main_vertex -( - float4 position : POSITION, - out float4 oPosition : POSITION, - uniform float4x4 modelViewProj, - - float2 tex : TEXCOORD0, - - uniform input IN, - out tex_coords coords -) -{ - oPosition = mul(modelViewProj, position); - - float2 texsize = IN.texture_size; - float2 delta = 0.5 / texsize; - float dx = delta.x; - float dy = delta.y; - - coords.c00 = tex + float2(-dx, -dy); - coords.c01 = tex + float2(-dx, 0.0); - coords.c02 = tex + float2(-dx, dy); - coords.c10 = tex + float2(0.0, -dy); - coords.c11 = tex + float2(0.0, 0.0); - coords.c12 = tex + float2(0.0, dy); - coords.c20 = tex + float2(dx, -dy); - coords.c21 = tex + float2(dx, 0); - coords.c22 = tex + float2(dx, dy); -} - -static const float mx = 0.325; // start smoothing wt. -static const float k = -0.250; // wt. decrease factor -static const float max_w = 0.25; // max filter weigth -static const float min_w = -0.05; // min filter weigth -static const float lum_add = 0.25; // effects smoothing - -float4 main_fragment (in tex_coords co, uniform sampler2D s_p : TEXUNIT0) : COLOR -{ - float3 c00 = tex2D(s_p, co.c00).xyz; - float3 c01 = tex2D(s_p, co.c01).xyz; - float3 c02 = tex2D(s_p, co.c02).xyz; - float3 c10 = tex2D(s_p, co.c10).xyz; - float3 c11 = tex2D(s_p, co.c11).xyz; - float3 c12 = tex2D(s_p, co.c12).xyz; - float3 c20 = tex2D(s_p, co.c20).xyz; - float3 c21 = tex2D(s_p, co.c21).xyz; - float3 c22 = tex2D(s_p, co.c22).xyz; - float3 dt = float3(1.0,1.0,1.0); - - float md1 = dot(abs(c00 - c22), dt); - float md2 = dot(abs(c02 - c20), dt); - - float w1 = dot(abs(c22 - c11), dt) * md2; - float w2 = dot(abs(c02 - c11), dt) * md1; - float w3 = dot(abs(c00 - c11), dt) * md2; - float w4 = dot(abs(c20 - c11), dt) * md1; - - float t1 = w1 + w3; - float t2 = w2 + w4; - float ww = max(t1, t2) + 0.0001; - - c11 = (w1 * c00 + w2 * c20 + w3 * c22 + w4 * c02 + ww * c11) / (t1 + t2 + ww); - - float lc1 = k / (0.12 * dot(c10 + c12 + c11, dt) + lum_add); - float lc2 = k / (0.12 * dot(c01 + c21 + c11, dt) + lum_add); - - w1 = clamp(lc1 * dot(abs(c11 - c10), dt) + mx, min_w, max_w); - w2 = clamp(lc2 * dot(abs(c11 - c21), dt) + mx, min_w, max_w); - w3 = clamp(lc1 * dot(abs(c11 - c12), dt) + mx, min_w, max_w); - w4 = clamp(lc2 * dot(abs(c11 - c01), dt) + mx, min_w, max_w); - - return float4(w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11, 1.0); -} diff --git a/Assets/Shaders/retroizer/retroizer.cgp b/Assets/Shaders/retroizer/retroizer.cgp deleted file mode 100644 index 71a5bb7e6c..0000000000 --- a/Assets/Shaders/retroizer/retroizer.cgp +++ /dev/null @@ -1,4 +0,0 @@ -shaders = 1 - -shader0 = retroizer.cg -scale0 = 6 \ No newline at end of file diff --git a/Assets/Shaders/retroizer/retroizer.glsl b/Assets/Shaders/retroizer/retroizer.glsl deleted file mode 100644 index 224305d475..0000000000 --- a/Assets/Shaders/retroizer/retroizer.glsl +++ /dev/null @@ -1,218 +0,0 @@ -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//// -//// VERTEX SHADER : STOLEN FROM NEIGHBOURING SHADERS -//// -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// - -//Yeah, I'm sorry this uses really old non-generic attributes -//that's just how old this code is; support on ancient graphics cards is helpful - -#ifdef VERTEX - -uniform mat4 modelViewProj; - -void main() -{ - gl_Position = modelViewProj * gl_Vertex; - gl_TexCoord[0] = gl_MultiTexCoord0; -} - -#endif //VERTEX - -#ifdef FRAGMENT - -uniform struct -{ - vec2 video_size; - vec2 texture_size; - vec2 output_size; -} IN; - -uniform float Time; - -uniform sampler2D s_p; - -float saturate(float x) -{ - return max(0, min(1, x)); -} - -vec2 saturate(vec2 x) -{ - return max(vec2(0.0,0.0), min(vec2(1.0,1.0), x)); -} - -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//// EFFECT CONSTANTS : TWEAK THEM! -//// - - // Size of the border effect - const vec2 OverscanMaskHardness = vec2(12.0f ,12.0f ); - // Attenuation of the border effect - const float OverscanMaskPower = 4.0f; - // Intensity of the border effect - const float OverscanIntensity = 0.96f; - - // Intensity of the TV Corners (round-ness) deformation - const float TVDeformInstensity = 0.02f; - - - // How much R, G and B are offset : default is -0.333 pixels in fake-pixel-space - const float ColorFringeIntensity = -0.666; - // How much luminosity is output by a fake-pixel - const float FakePixelMaskGain = 0.75f; - // How much luminosity is output between fake-pixels (adds to the fake-pixel value) - const float FakePixelMaskOffset = 0.55f; - // How sharp will appear the pixels (Horizontal Sharpness, Vertical Sharpness A.K.A Scanlines) - const vec2 FakePixelMaskPower = vec2(0.150f ,2.0f ); - // Scanline Off Sync (Slides one line out of two) - const float ScanlineOffSync = 0.25; - // Base Brightness - const float BaseBrightness = 0.55f; - - // How much the Fake-Pixel effect is Active (0.0 = normal image, 1.0 = full FakePixel Effect) - const float FakePixelEffectBlend = 0.95f; - - // Ghost Sampling : enable define to activate - #define GHOST_SAMPLING; - - const float GhostLatencyIntensity = 0.03f; - // Number of samples (higer is slower) - const int GhostNumSamples = 32; - // Latency of the RGB Signal (per-signal, in screen width percentage) - const vec3 SignalLatencyRGB = vec3(0.184f,0.08f,0.0624f); - // Attenuation of the ghosting latency - const float SignalLatencyAttenuation = 1.0f; - - // Bloom : enable define to activate - #define BLOOM; - const float BloomIntensity = 0.75f; - const float BloomExponent = 1.00f; - const float BloomWeights[25] = float[] ( - 0.003765, 0.015019, 0.023792, 0.015019, 0.003765, - 0.015019, 0.059912, 0.094907, 0.059912, 0.015019, - 0.023792, 0.094907, 0.150342, 0.094907, 0.023792, - 0.015019, 0.059912, 0.094907, 0.059912, 0.015019, - 0.003765, 0.015019, 0.023792, 0.015019, 0.003765 - ); - - const float BloomPositions[5] = float[] ( -2, -1, 0 , 1 , 2 ); - -//// -//// -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// - -float expow(float value, float exponent) { - return mix(1.0f,pow(value,max(exponent,1.0f)),saturate(exponent)); -} - -//the code that calls expow() carefully builds vec2 for some reason and calls this only to have it implicitly thrown away (which is a warning) -//so this was added to get rid of the warning -float expow(vec2 value, vec2 exponent) { - return mix(1.0f,pow(value.x,max(exponent.x,1.0f)),saturate(exponent.x)); -} -float expow(vec2 value, float exponent) { - return mix(1.0f,pow(value.x,max(exponent,1.0f)),saturate(exponent)); -} - -// MultiSampling for ghosting effect -vec3 GhostSample(vec2 t, float latency) { - - vec3 Out = texture2D(s_p,t).rgb; - float Weight = 1.0f; - vec2 Direction = vec2(-latency,0.0f); - for(int i=1; i < GhostNumSamples; i++) { - float curweight = pow(1.0f-(float(i)/GhostNumSamples),1.0f/SignalLatencyAttenuation); - - Out += GhostLatencyIntensity * curweight * texture2D(s_p,saturate(t+(1.0f-curweight)*Direction)).xyz; - Weight += GhostLatencyIntensity * curweight; - } - return Out/Weight; -} - -// MultiSampling for ghosting effect -vec3 Bloom(vec2 t, vec2 r) { - - vec3 Out = vec3(0,0,0); - for(int j = 0; j < 5; j++) - for(int i = 0; i < 5; i++) - { - vec2 offset = vec2(BloomPositions[i],BloomPositions[j]) / r; - Out += texture2D(s_p, t + offset).rgb * BloomWeights[i*5+j]; - } - return pow(Out, vec3(BloomExponent,BloomExponent,BloomExponent)) * BloomIntensity; -} - -// Compositing of the TV Emulation -vec3 TVEffect(vec2 in_Position, vec2 FakeResolution, float Time) { - - // TV Deformation - vec2 ScreenPos = in_Position + dot(in_Position-0.5f,in_Position-0.5f)*(in_Position-0.5f)* TVDeformInstensity; - - // Apply Off-Sync - ScreenPos += (ScanlineOffSync/FakeResolution.x) * vec2(sin((Time*30*3.1415926)+(ScreenPos.y*3.1415926*FakeResolution.y)),0); - - // Sampling 3 Images biased to simulate TV RGB Offset - #ifdef GHOST_SAMPLING - vec3 latencyweight = vec3(0.0f,0.0f,0.0f); - for(int i=1; i < GhostNumSamples; i++) { - latencyweight += texture2D(s_p, ScreenPos + vec2(1.0f/FakeResolution.x,0.0f)).xyz; - } - vec3 LatencyRGB = SignalLatencyRGB * (1.0-(latencyweight/GhostNumSamples)); - - vec3 SMP_Red = GhostSample((ScreenPos),LatencyRGB.x).xyz; - vec3 SMP_Green = GhostSample((ScreenPos) + ((vec2(ColorFringeIntensity,0.0f))/FakeResolution),LatencyRGB.y).xyz; - vec3 SMP_Blue = GhostSample((ScreenPos) + ((vec2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution),LatencyRGB.z).xyz; - #else - vec3 SMP_Red = texture2D(s_p, (ScreenPos)).xyz; - vec3 SMP_Green = texture2D(s_p, (ScreenPos) + ((vec2(ColorFringeIntensity,0.0f))/FakeResolution)).xyz; - vec3 SMP_Blue = texture2D(s_p, (ScreenPos) + ((vec2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution)).xyz; - #endif - - #ifdef BLOOM - vec3 bloom = Bloom(ScreenPos, FakeResolution); - SMP_Red += bloom.r; - SMP_Green += bloom.g; - SMP_Blue += bloom.b; - #endif - - // Apply base Brightness - SMP_Red *= BaseBrightness; - SMP_Green *= BaseBrightness; - SMP_Blue *= BaseBrightness; - - // Overscan Darkening Mask - float ScreenMaskPower = 1.0f/OverscanMaskPower; - vec2 ScreenMask = pow(saturate(ScreenPos*(1.0f-ScreenPos)*OverscanMaskHardness),vec2(ScreenMaskPower,ScreenMaskPower)); - float mask = mix(1.0, ScreenMask.x * ScreenMask.y, OverscanIntensity); - - // CRT Cell Masks (HorizontalRGB+Scanline) - float PixelMaskR = expow(saturate(4*fract(ScreenPos.x*FakeResolution.x)*(1.0f-fract(ScreenPos.x*FakeResolution.x))),FakePixelMaskPower.x); - float PixelMaskG = expow(saturate(4*fract(ScreenPos.x*FakeResolution.x+vec2(ColorFringeIntensity,0.0f))*(1.0f-fract(ScreenPos.x*FakeResolution.x+vec2(ColorFringeIntensity,0.0f)))),FakePixelMaskPower.x); - float PixelMaskB = expow(saturate(4*fract(ScreenPos.x*FakeResolution.x+vec2(ColorFringeIntensity*2.0f,0.0f))*(1.0f-fract(ScreenPos.x*FakeResolution.x+vec2(ColorFringeIntensity*2.0f,0.0f)))),FakePixelMaskPower.x); - float PixelMaskScanline = pow(saturate(4*fract(ScreenPos.y*FakeResolution.y)*(1.0f-fract(ScreenPos.y*FakeResolution.y))),FakePixelMaskPower.y); - - vec3 PixelRGB = vec3 ( - ((PixelMaskR*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Red.x , - ((PixelMaskG*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Green.y , - ((PixelMaskB*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Blue.z - ); - - // Non-Pixelated Image - vec3 ImageRGB = texture2D(s_p, ScreenPos).xyz; - return mix(ImageRGB, PixelRGB, FakePixelEffectBlend) * mask; - -} - -void main() -{ - vec4 color = vec4(1.0f,1.0f,1.0f,1.0f); - color.xyz = TVEffect(gl_TexCoord[0].xy, IN.texture_size, Time); - gl_FragColor = color; -} - -#endif \ No newline at end of file diff --git a/Assets/Shaders/retroizer/retroizer.hlsl b/Assets/Shaders/retroizer/retroizer.hlsl deleted file mode 100644 index c075770744..0000000000 --- a/Assets/Shaders/retroizer/retroizer.hlsl +++ /dev/null @@ -1,211 +0,0 @@ - -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//// -//// VERTEX SHADER : STOLEN FROM NEIGHBOURING SHADERS -//// -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// - -struct input -{ - float2 video_size; - float2 texture_size; - float2 output_size; - -}; - -void main_vertex -( - float4 position : POSITION, - out float4 oPosition : POSITION, - uniform float4x4 modelViewProj, - - float2 tex : TEXCOORD, - - uniform input IN, - out float2 oTexcoord : TEXCOORD, - out float2 oFakeResolution : TEXCOORD1 -) -{ - oPosition = mul(modelViewProj, position); - oTexcoord = tex; - oFakeResolution = IN.texture_size; -} - - -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//// EFFECT CONSTANTS : TWEAK THEM! -//// - - // Size of the border effect - static const float2 OverscanMaskHardness = {12.0f ,12.0f }; - // Attenuation of the border effect - static const float OverscanMaskPower = 4.0f; - // Intensity of the border effect - static const float OverscanIntensity = 0.96f; - - // Intensity of the TV Corners (round-ness) deformation - static const float TVDeformInstensity = 0.02f; - - - // How much R, G and B are offset : default is -0.333 pixels in fake-pixel-space - static const float ColorFringeIntensity = -0.666; - // How much luminosity is output by a fake-pixel - static const float FakePixelMaskGain = 0.75f; - // How much luminosity is output between fake-pixels (adds to the fake-pixel value) - static const float FakePixelMaskOffset = 0.55f; - // How sharp will appear the pixels (Horizontal Sharpness, Vertical Sharpness A.K.A Scanlines) - static const float2 FakePixelMaskPower = {0.150f ,2.0f }; - // Scanline Off Sync (Slides one line out of two) - static const float ScanlineOffSync = 0.25; - // Base Brightness - static const float BaseBrightness = 0.55f; - - // How much the Fake-Pixel effect is Active (0.0 = normal image, 1.0 = full FakePixel Effect) - static const float FakePixelEffectBlend = 0.95f; - - // Ghost Sampling : enable define to activate - #define GHOST_SAMPLING; - - static const float GhostLatencyIntensity = 0.03f; - // Number of samples (higer is slower) - static const int GhostNumSamples = 32; - // Latency of the RGB Signal (per-signal, in screen width percentage) - static const float3 SignalLatencyRGB = {0.184f,0.08f,0.0624f}; - // Attenuation of the ghosting latency - static const float SignalLatencyAttenuation = 1.0f; - - // Bloom : enable define to activate - #define BLOOM; - static const float BloomIntensity = 0.75f; - static const float BloomExponent = 1.00f; - static const float BloomWeights[5][5] = - { - {0.003765, 0.015019, 0.023792, 0.015019, 0.003765}, - {0.015019, 0.059912, 0.094907, 0.059912, 0.015019}, - {0.023792, 0.094907, 0.150342, 0.094907, 0.023792}, - {0.015019, 0.059912, 0.094907, 0.059912, 0.015019}, - {0.003765, 0.015019, 0.023792, 0.015019, 0.003765} - }; - static const float BloomPositions[5] = { -2, -1, 0 , 1 , 2}; - - -//// -//// -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// - -float expow(float value, float exponent) { - return lerp(1.0f,pow(value,max(exponent,1.0f)),saturate(exponent)); -} - -//the code that calls expow() carefully builds float2 for some reason and calls this only to have it implicitly thrown away (which is a warning) -//so this was added to get rid of the warning -float expow(float2 value, float2 exponent) { - return lerp(1.0f,pow(value,max(exponent,1.0f)),saturate(exponent)).x; -} - -// MultiSampling for ghosting effect -float3 GhostSample(sampler2D s, float2 t, float latency) { - - float3 Out = tex2D(s,t); - float Weight = 1.0f; - float2 Direction = float2(-latency,0.0f); - for(int i=1; i < GhostNumSamples; i++) { - float curweight = pow(1.0f-((float)i/GhostNumSamples),1.0f/SignalLatencyAttenuation); - - Out += GhostLatencyIntensity * curweight * tex2D(s,saturate(t+(1.0f-curweight)*Direction)).xyz; - Weight += GhostLatencyIntensity * curweight; - } - return Out/Weight; -} - -// MultiSampling for ghosting effect -float3 Bloom(sampler2D s, float2 t, float2 r) { - - float3 Out = float3(0,0,0); - for(int j = 0; j < 5; j++) - for(int i = 0; i < 5; i++) - { - float2 offset = float2(BloomPositions[i],BloomPositions[j]) / r; - Out += tex2D(s, t + offset).rgb * BloomWeights[i][j]; - } - return pow(Out, BloomExponent) * BloomIntensity; -} - -// Compositing of the TV Emulation -float3 TVEffect(float2 in_Position, float2 FakeResolution, sampler2D Texture, float Time) { - - // TV Deformation - float2 ScreenPos = in_Position + dot(in_Position-0.5f,in_Position-0.5f)*(in_Position-0.5f)* TVDeformInstensity; - - // Apply Off-Sync - ScreenPos += (ScanlineOffSync/FakeResolution.x) * float2(sin((Time*30*3.1415926)+(ScreenPos.y*3.1415926*FakeResolution.y)),0); - - // Sampling 3 Images biased to simulate TV RGB Offset - #ifdef GHOST_SAMPLING - float3 latencyweight = float3(0.0f,0.0f,0.0f); - for(int i=1; i < GhostNumSamples; i++) { - latencyweight += tex2D(Texture, ScreenPos + float2(1.0f/FakeResolution.x,0.0f)).xyz; - } - float3 LatencyRGB = SignalLatencyRGB * (1.0-(latencyweight/GhostNumSamples)); - - float3 SMP_Red = GhostSample(Texture, (ScreenPos),LatencyRGB.x).xyz; - float3 SMP_Green = GhostSample(Texture, (ScreenPos) + ((float2(ColorFringeIntensity,0.0f))/FakeResolution),LatencyRGB.y).xyz; - float3 SMP_Blue = GhostSample(Texture, (ScreenPos) + ((float2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution),LatencyRGB.z).xyz; - #else - float3 SMP_Red = tex2D(Texture, (ScreenPos)).xyz; - float3 SMP_Green = tex2D(Texture, (ScreenPos) + ((float2(ColorFringeIntensity,0.0f))/FakeResolution)).xyz; - float3 SMP_Blue = tex2D(Texture, (ScreenPos) + ((float2(ColorFringeIntensity*2.0f,0.0f))/FakeResolution)).xyz; - #endif - - #ifdef BLOOM - float3 bloom = Bloom(Texture, ScreenPos, FakeResolution); - SMP_Red += bloom.r; - SMP_Green += bloom.g; - SMP_Blue += bloom.b; - #endif - - // Apply base Brightness - SMP_Red *= BaseBrightness; - SMP_Green *= BaseBrightness; - SMP_Blue *= BaseBrightness; - - // Overscan Darkening Mask - float2 ScreenMask = pow(saturate(ScreenPos*(1.0f-ScreenPos)*OverscanMaskHardness),1.0f/OverscanMaskPower); - float mask = lerp(1.0, ScreenMask.x * ScreenMask.y, OverscanIntensity); - - // CRT Cell Masks (HorizontalRGB+Scanline) - float PixelMaskR = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x)*(1.0f-frac(ScreenPos.x*FakeResolution.x))),FakePixelMaskPower.x); - float PixelMaskG = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity,0.0f))*(1.0f-frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity,0.0f)))),FakePixelMaskPower.x); - float PixelMaskB = expow(saturate(4*frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity*2.0f,0.0f))*(1.0f-frac(ScreenPos.x*FakeResolution.x+float2(ColorFringeIntensity*2.0f,0.0f)))),FakePixelMaskPower.x); - float PixelMaskScanline = pow(saturate(4*frac(ScreenPos.y*FakeResolution.y)*(1.0f-frac(ScreenPos.y*FakeResolution.y))),FakePixelMaskPower.y); - - float3 PixelRGB = float3 ( - ((PixelMaskR*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Red.x , - ((PixelMaskG*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Green.y , - ((PixelMaskB*PixelMaskScanline * FakePixelMaskGain)+FakePixelMaskOffset) * SMP_Blue.z - ); - - // Non-Pixelated Image - float3 ImageRGB = tex2D(Texture, ScreenPos).xyz; - return lerp(ImageRGB, PixelRGB, FakePixelEffectBlend) * mask; - - //return float3(PixelMaskR*PixelMaskScanline,PixelMaskG*PixelMaskScanline,PixelMaskB*PixelMaskScanline); -} - -float4 main_fragment -( - in float2 TexCoord : TEXCOORD, - in float2 FakeResolution : TEXCOORD1, - in float2 wpos : WPOS, - uniform sampler2D s_p : TEXUNIT0, - uniform float Time -) : COLOR -{ - float4 color = float4(1.0f,1.0f,1.0f,1.0f); - color.xyz = TVEffect(TexCoord,FakeResolution, s_p, Time); - return color; -} diff --git a/Assets/Shaders/shaders-readme.txt b/Assets/Shaders/shaders-readme.txt deleted file mode 100644 index 29fffc4bc1..0000000000 --- a/Assets/Shaders/shaders-readme.txt +++ /dev/null @@ -1,16 +0,0 @@ -Despite using the "cgp" derived "retro shader" approach, we're doing things a bit different than retroarch. - -A single .cgp file is used for any graphics backend. The shader references inside it can be written extensionless, or with .cg (or with .hlsl or .glsl for reasons, read on) - -In case you have shaders that work only GLSL or HLSL -- well, they simply won't work in the wrong mode. -In that case, try something like bizhawkdir/Shaders/myshaders/glsl/mybadshader.cgp -In this case, the .cgp can reference .glsl shaders internally. - -An important point, which you will perceive by checking out the bizhawk shaders, is that a .cgp is now portable due to the extension-ignorant behaviour AND the separate .glsl and .hlsl extensions. -(For instance, BizScanlines.cgp+BizScanlines.hlsl+BizScanlines.glsl). -The separate extensions let there be separate shaders for each backend, each referenced by the same cgp which references .cg (arbitrarily; it could be blank) -However if the .cgp referenced a .glsl, it wouldn't work on D3D. - -In case you haven't pieced it together yet, this means there is no automatic mechanism for transpiling shaders. It isn't reliable and created an unmaintainable, slow, mess. - -Porting shaders from retroarch will require touching them extensively, probably. \ No newline at end of file diff --git a/Assets/Tools/.gitempty b/Assets/Tools/.gitempty deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Assets/defctrl.json b/Assets/defctrl.json deleted file mode 100644 index bce8c9f2f5..0000000000 --- a/Assets/defctrl.json +++ /dev/null @@ -1,1382 +0,0 @@ -{ - "AllTrollers": { - "LibRetro Controls": { - "P1 RetroPad Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 RetroPad Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 RetroPad Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 RetroPad Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 RetroPad Select": "Space, J1 B9, X1 Back", - "P1 RetroPad Start": "Enter, J1 B10, X1 Start", - "P1 RetroPad Y": "A, J1 B1, X1 X", - "P1 RetroPad B": "Z, J1 B2, X1 A", - "P1 RetroPad X": "S, J1 B4, X1 Y", - "P1 RetroPad A": "X, J1 B3, X1 B", - "P1 RetroPad L": "W, J1 B5, X1 LeftShoulder", - "P1 RetroPad R": "E, J1 B6, X1 RightShoulder", - "Pointer Pressed": "WMouse L", - "Key Backspace": "Backspace", - "Key Tab": "Tab", - "Key Return": "Enter", - "Key Escape": "Escape", - "Key Space": "Space", - "Key Comma": "Comma", - "Key Minus": "Minus", - "Key Period": "Period", - "Key Slash": "Slash", - "Key 0": "Number0", - "Key 1": "Number1", - "Key 2": "Number2", - "Key 3": "Number3", - "Key 4": "Number4", - "Key 5": "Number5", - "Key 6": "Number6", - "Key 7": "Number7", - "Key 8": "Number8", - "Key 9": "Number9", - "Key Semicolon": "Semicolon", - "Key Equals": "Equals", - "Key LeftBracket": "LeftBracket", - "Key Backslash": "Backslash", - "Key RightBracket": "RightBracket", - "Key Backquote": "Backtick", - "Key A": "A", - "Key B": "B", - "Key C": "C", - "Key D": "D", - "Key E": "E", - "Key F": "F", - "Key G": "G", - "Key H": "H", - "Key I": "I", - "Key J": "J", - "Key K": "K", - "Key L": "L", - "Key M": "M", - "Key N": "N", - "Key O": "O", - "Key P": "P", - "Key Q": "Q", - "Key R": "R", - "Key S": "S", - "Key T": "T", - "Key U": "U", - "Key V": "V", - "Key W": "W", - "Key X": "X", - "Key Y": "Y", - "Key Z": "Z", - "Key Delete": "Delete", - "Key KP0": "Keypad0", - "Key KP1": "Keypad1", - "Key KP2": "Keypad2", - "Key KP3": "Keypad3", - "Key KP4": "Keypad4", - "Key KP5": "Keypad5", - "Key KP6": "Keypad6", - "Key KP7": "Keypad7", - "Key KP8": "Keypad8", - "Key KP9": "Keypad9", - "Key KP_Period": "KeypadDecimal", - "Key KP_Divide": "KeypadDivide", - "Key KP_Multiply": "KeypadMultiply", - "Key KP_Minus": "KeypadSubtract", - "Key KP_Plus": "KeypadAdd", - "Key KP_Enter": "KeypadEnter", - "Key Up": "Up", - "Key Down": "Down", - "Key Left": "Left", - "Key Insert": "LeftCtrl", - "Key Home": "Home", - "Key End": "End", - "Key PageUp": "PageUp", - "Key PageDown": "PageDown", - "Key F1": "F1", - "Key F2": "F2", - "Key F3": "F3", - "Key F4": "F4", - "Key F5": "F5", - "Key F6": "F6", - "Key F7": "F7", - "Key F8": "F8", - "Key F9": "F9", - "Key F10": "F10", - "Key F11": "F11", - "Key F12": "F12", - "Key NumLock": "NumLock", - "Key CapsLock": "CapsLock", - "Key ScrollLock": "ScrollLock", - "Key RShift": "RightShift", - "Key LShift": "LeftShift", - "Key RCtrl": "RightCtrl", - "Key LCtrl": "LeftCtrl", - "Key RAlt": "RightAlt", - "Key LAlt": "LeftAlt", - "Key Menu": "Apps", - "Key Right": "Right" - }, - "NES Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 Select": "Space, J1 B9, X1 Back", - "P1 B": "Z, J1 B1, X1 X", - "P1 A": "X, J1 B2, X1 A", - "P2 Fire": "WMouse L", - "P3 Fire": "WMouse L" - }, - "SNES Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Select": "Space, J1 B9, X1 Back", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 Y": "A, J1 B1, X1 X", - "P1 X": "S, J1 B4, X1 Y", - "P1 B": "Z, J1 B2, X1 A", - "P1 A": "X, J1 B3, X1 B", - "P1 L": "W, J1 B5, X1 LeftShoulder", - "P1 R": "E, J1 B6, X1 RightShoulder", - "P1 Mouse Left": "Z, J1 B1, X1 X", - "P1 Mouse Right": "X, J1 B2, X1 A", - "P2 Trigger": "Z, J1 B1, X1 X", - "P2 Cursor": "X, J1 B2, X1 A", - "P2 Turbo": "A, J1 B3 X1 Y", - "P2 Pause": "S, J1 B4 X1 B" - }, - "Nintendo 64 Controller": { - "P1 A Up": "Up, J1 POV1U", - "P1 A Down": "Down, J1 POV1D", - "P1 A Left": "Left, J1 POV1L", - "P1 A Right": "Right, J1 POV1R", - "P1 DPad U": "X1 DpadUp", - "P1 DPad D": "X1 DpadDown", - "P1 DPad L": "X1 DpadLeft", - "P1 DPad R": "X1 DpadRight", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 Z": "D, J1 B3, X1 B", - "P1 B": "S, J1 B1, X1 X", - "P1 A": "A, J1 B2, X1 A", - "P1 C Up": "Keypad8, J1 RotationZ-, X1 RStickUp", - "P1 C Down": "Keypad2, J1 RotationZ+, X1 RStickDown", - "P1 C Left": "Keypad4, J1 Z-, X1 RStickLeft", - "P1 C Right": "Keypad6, J1 Z+, X1 RStickRight", - "P1 L": "Q, J1 B5, X1 LeftShoulder", - "P1 R": "W, J1 B6, X1 RightShoulder" - }, - "Gameboy Controller": { - "Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "Start": "Enter, J1 B10, X1 Start", - "Select": "Space, J1 B9, X1 Back", - "B": "Z, J1 B1, X1 X", - "A": "X, J1 B2, X1 A", - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 Select": "Space, J1 B9, X1 Back", - "P1 B": "Z, J1 B1, X1 X", - "P1 A": "X, J1 B2, X1 A" - }, - "Gameboy Controller H": { - "Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "Start": "Enter, J1 B10, X1 Start", - "Select": "Space, J1 B9, X1 Back", - "B": "Z, J1 B1, X1 X", - "A": "X, J1 B2, X1 A", - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 Select": "Space, J1 B9, X1 Back", - "P1 B": "Z, J1 B1, X1 X", - "P1 A": "X, J1 B2, X1 A" - }, - "GBA Controller": { - "Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "Start": "Enter, J1 B10, X1 Start", - "Select": "Space, J1 B9, X1 Back", - "B": "Z, J1 B1, X1 X", - "A": "X, J1 B2, X1 A", - "L": "W, J1 B5, X1 LeftShoulder", - "R": "E, J1 B6, X1 RightShoulder" - }, - "NDS Controller": { - "A": "X, J1 B3, X1 B", - "B": "Z, J1 B2, X1 A", - "X": "S, J1 B4, X1 Y", - "Y": "A, J1 B1, X1 X", - "Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "L": "W, J1 B5, X1 LeftShoulder", - "R": "E, J1 B6, X1 RightShoulder", - "Select": "Space, J1 B9, X1 Back", - "Start": "Enter, J1 B10, X1 Start", - "Touch": "WMouse L" - }, - "Atari 2600 Basic Controller": { - "Reset": "D, J1 B9, X1 Back", - "Select": "S, J1 B10, X1 Start", - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Button": "Z, J1 B1, X1 X", - "P2 Up": "Keypad8, J1 RotationZ-, X1 RStickUp", - "P2 Down": "Keypad2, J1 RotationZ+, X1 RStickDown", - "P2 Left": "Keypad4, J1 Z-, X1 RStickLeft", - "P2 Right": "Keypad6, J1 Z+, X1 RStickRight", - "P2 Button": "Keypad1, J1 B2, X1 A" - }, - "Atari 7800 Basic Controller": { - "Reset": "D, J1 B9, X1 Back", - "Select": "S, J1 B10, X1 Start", - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Button": "Z, J1 B1, X1 X", - "P2 Up": "Keypad8, J1 RotationZ-, X1 RStickUp", - "P2 Down": "Keypad2, J1 RotationZ+, X1 RStickDown", - "P2 Left": "Keypad4, J1 Z-, X1 RStickLeft", - "P2 Right": "Keypad6, J1 Z+, X1 RStickRight", - "P2 Button": "Keypad1, J1 B2, X1 A" - }, - "Atari 7800 ProLine Joystick Controller": { - "Reset": "D, J1 B9, X1 Back", - "Select": "S, J1 B10, X1 Start", - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Trigger": "Z, J1 B1, X1 X", - "P1 Trigger 2": "X, J1 B2, X1 A", - "P2 Up": "Keypad8, J1 RotationZ-, X1 RStickUp", - "P2 Down": "Keypad2, J1 RotationZ+, X1 RStickDown", - "P2 Left": "Keypad4, J1 Z-, X1 RStickLeft", - "P2 Right": "Keypad6, J1 Z+, X1 RStickRight", - "P2 Trigger": "Keypad1, J1 B4, X1 Y", - "P2 Trigger 2": "Keypad3, J1 B3, X1 B" - }, - "Atari 7800 Joystick Controller": { - "Reset": "D, J1 B9, X1 Back", - "Select": "S, J1 B10, X1 Start", - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Trigger": "Z, J1 B1, X1 X", - "P1 Trigger 2": "X, J1 B2, X1 A", - "P2 Up": "Keypad8, J1 RotationZ-, X1 RStickUp", - "P2 Down": "Keypad2, J1 RotationZ+, X1 RStickDown", - "P2 Left": "Keypad4, J1 Z-, X1 RStickLeft", - "P2 Right": "Keypad6, J1 Z+, X1 RStickRight", - "P2 Trigger": "Keypad1, J1 B4, X1 Y" - }, - "Atari 7800 Light Gun Controller": { - "Reset": "D, J1 B9, X1 Back", - "Select": "S, J1 B10, X1 Start", - "P1 Trigger": "WMouse L" - }, - "Atari 7800 Paddle Controller": { - "Reset": "D, J1 B9, X1 Back", - "Select": "S, J1 B10, X1 Start", - "P2 Trigger": "Keypad1, J1 B4, X1 Y" - }, - "Commodore 64 Controller": { - "P1 Up": "Keypad8, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Keypad2, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Keypad4, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Keypad6, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Button": "Keypad1, J1 B1, X1 X", - "Key F1": "F1", - "Key F3": "F3", - "Key F5": "F5", - "Key F7": "F7", - "Key Left Arrow": "Backtick", - "Key 1": "Number1", - "Key 2": "Number2", - "Key 3": "Number3", - "Key 4": "Number4", - "Key 5": "Number5", - "Key 6": "Number6", - "Key 7": "Number7", - "Key 8": "Number8", - "Key 9": "Number9", - "Key 0": "Number0", - "Key Plus": "Equals", - "Key Minus": "Minus", - "Key Pound": "Insert", - "Key Clear/Home": "Delete", - "Key Insert/Delete": "Backspace", - "Key Control": "Tab", - "Key Q": "Q", - "Key W": "W", - "Key E": "E", - "Key R": "R", - "Key T": "T", - "Key Y": "Y", - "Key U": "U", - "Key I": "I", - "Key O": "O", - "Key P": "P", - "Key At": "LeftBracket", - "Key Asterisk": "RightBracket", - "Key Up Arrow": "Backslash", - "Key Run/Stop": "CapsLock", - "Key A": "A", - "Key S": "S", - "Key D": "D", - "Key F": "F", - "Key G": "G", - "Key H": "H", - "Key J": "J", - "Key K": "K", - "Key L": "L", - "Key Colon": "Semicolon", - "Key Semicolon": "Apostrophe", - "Key Equal": "RightCtrl", - "Key Return": "Enter", - "Key Commodore": "LeftCtrl", - "Key Left Shift": "LeftShift", - "Key Z": "Z", - "Key X": "X", - "Key C": "C", - "Key V": "V", - "Key B": "B", - "Key N": "N", - "Key M": "M", - "Key Comma": "Comma", - "Key Period": "Period", - "Key Slash": "Slash", - "Key Right Shift": "RightShift", - "Key Cursor Up/Down": "Down", - "Key Cursor Left/Right": "Right", - "Key Space": "Space" - }, - "ZXSpectrum Controller": { - "P1 Up": "Keypad8, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Keypad2, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Keypad4, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Keypad6, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Button": "Keypad1, J1 B1, X1 X", - "Key 1": "Number1", - "Key 2": "Number2", - "Key 3": "Number3", - "Key 4": "Number4", - "Key 5": "Number5", - "Key 6": "Number6", - "Key 7": "Number7", - "Key 8": "Number8", - "Key 9": "Number9", - "Key 0": "Number0", - "Key Break": "Delete", - "Key Delete": "Backspace", - "Key Q": "Q", - "Key W": "W", - "Key E": "E", - "Key R": "R", - "Key T": "T", - "Key Y": "Y", - "Key U": "U", - "Key I": "I", - "Key O": "O", - "Key P": "P", - "Key A": "A", - "Key S": "S", - "Key D": "D", - "Key F": "F", - "Key G": "G", - "Key H": "H", - "Key J": "J", - "Key K": "K", - "Key L": "L", - "Key Return": "Enter", - "Key Caps Shift": "LeftShift, RightShift", - "Key Z": "Z", - "Key X": "X", - "Key C": "C", - "Key V": "V", - "Key B": "B", - "Key N": "N", - "Key M": "M", - "Key Period": "Period", - "Key Symbol Shift": "LeftCtrl, RightCtrl", - "Key Semi-Colon": "Semicolon", - "Key Left Cursor": "Left", - "Key Right Cursor": "Right", - "Key Space": "Space", - "Key Up Cursor": "Up", - "Key Down Cursor": "Down", - "Key Comma": "Comma", - "Play Tape": "F1", - "Stop Tape": "F2", - "RTZ Tape": "F3", - "Key Quote": "Shift+Number2", - "Insert Next Tape": "F6", - "Insert Previous Tape": "F5", - "Next Tape Block": "F8", - "Prev Tape Block": "F7", - "Get Tape Status": "F9", - "Insert Next Disk": "F11", - "Insert Previous Disk": "F10", - "Get Disk Status": "F12" - }, - "Intellivision Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 L": "Z, J1 B1, X1 X", - "P1 R": "X, J1 B2, X1 A", - "P1 Key0": "Keypad0", - "P1 Key1": "Keypad1", - "P1 Key2": "Keypad2", - "P1 Key3": "Keypad3", - "P1 Key4": "Keypad4", - "P1 Key5": "Keypad5", - "P1 Key6": "Keypad6", - "P1 Key7": "Keypad7", - "P1 Key8": "Keypad9", - "P1 Key9": "Keypad9", - "P1 Enter": "KeypadEnter", - "P1 Clear": "KeypadDecimal" - }, - "PC-FX Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 I": "C, J1 B1, X1 X", - "P1 II": "X, J1 B2, X1 A", - "P1 III": "Z, J1 B4, X1 Y", - "P1 IV": "D, J1 B3, X1 B", - "P1 V": "S, J1 B11, X1 X", - "P1 VI": "A, J1 B12, X1 X", - "P1 Select": "Space, J1 B9, X1 Back", - "P1 Run": "Enter, J1 B10, X1 Start", - "P2 Mouse Left": "WMouse L", - "P2 Mouse Right": "WMouse R" - }, - "Saturn Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 X": "D, J1 B3, X1 B", - "P1 Y": "S, J1 B11, X1 X", - "P1 Z": "A, J1 B12, X1 X", - "P1 A": "C, J1 B1, X1 X", - "P1 B": "X, J1 B2, X1 A", - "P1 C": "Z, J1 B4, X1 Y", - "P1 L": "Q, J1 B5, X1 LeftShoulder", - "P1 R": "W, J1 B6, X1 RightShoulder", - "P1 Mouse Left": "WMouse L", - "P1 Mouse Center": "WMouse M", - "P1 Mouse Right": "WMouse R", - "P1 Escape": "Escape", - "P1 F1": "F1", - "P1 F2": "F2", - "P1 F3": "F3", - "P1 F4": "F4", - "P1 F5": "F5", - "P1 F6": "F6", - "P1 F7": "F7", - "P1 F8": "F8", - "P1 F9": "F9", - "P1 F10": "F10", - "P1 F11": "F11", - "P1 F12": "F12", - "P1 Grave`": "Backtick", - "P1 1(One)": "Number1", - "P1 2": "Number2", - "P1 3": "Number3", - "P1 4": "Number4", - "P1 5": "Number5", - "P1 6": "Number6", - "P1 7": "Number7", - "P1 8": "Number8", - "P1 9": "Number9", - "P1 0(Zero)": "Number0", - "P1 Minus-": "Minus", - "P1 Equals=": "Equals", - "P1 Backslash\\": "Backslash", - "P1 Backspace": "Backspace", - "P1 Tab": "Tab", - "P1 Q": "Q", - "P1 W": "W", - "P1 E": "E", - "P1 R(Key)": "R", - "P1 T": "T", - "P1 Y(Key)": "Y", - "P1 U": "U", - "P1 I": "I", - "P1 O": "O", - "P1 P": "P", - "P1 LeftBracket[": "LeftBracket", - "P1 RightBracket]": "RightBracket", - "P1 Enter": "Enter", - "P1 CapsLock": "CapsLock", - "P1 A(Key)": "A", - "P1 S": "S", - "P1 D": "D", - "P1 F": "F", - "P1 G": "G", - "P1 H": "H", - "P1 J": "J", - "P1 K": "K", - "P1 L(Key)": "L", - "P1 Semicolon;": "Semicolon", - "P1 Quote'": "Apostrophe", - "P1 LeftShift": "LeftShift", - "P1 Z(Key)": "Z", - "P1 X(Key)": "X", - "P1 C(Key)": "C", - "P1 V": "V", - "P1 B(Key)": "B", - "P1 N": "N", - "P1 M": "M", - "P1 Comma,": "Comma", - "P1 Period.": "Period", - "P1 Slash/": "Slash", - "P1 RightShift": "RightShift", - "P1 LeftCtrl": "LeftCtrl", - "P1 LeftAlt": "LeftAlt", - "P1 Space": "Space", - "P1 RightAlt": "RightAlt", - "P1 RightCtrl": "RightCtrl", - "P1 ScrollLock": "ScrollLock", - "P1 Pause": "Pause", - "P1 Insert": "Insert", - "P1 Delete": "Delete", - "P1 Home": "Home", - "P1 End": "End", - "P1 PageUp": "PageUp", - "P1 PageDown": "PageDown", - "P1 CursorLeft": "Left", - "P1 NumLock": "NumLock", - "P1 KeypadSlash(Divide)": "KeypadDivide", - "P1 KeypadAsterisk(Multiply)": "KeypadMultiply", - "P1 KeypadMinus": "KeypadSubtract", - "P1 KeypadHome/7": "Keypad7", - "P1 KeypadUp/8": "Keypad8", - "P1 KeypadPageup/9": "Keypad9", - "P1 KeypadPlus": "KeypadAdd", - "P1 KeypadLeft/4": "Keypad4", - "P1 KeypadCenter/5": "Keypad5", - "P1 KeypadRight/6": "Keypad6", - "P1 KeypadEnd/1": "Keypad1", - "P1 KeypadDown/2": "Keypad2", - "P1 KeypadPagedown/3": "Keypad3", - "P1 KeypadEnter": "KeypadEnter", - "P1 KeypadInsert/0": "Keypad0", - "P1 KeypadDelete": "KeypadDecimal" - }, - "PC Engine Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 B2": "Z, J1 B1, X1 X", - "P1 B1": "X, J1 B2, X1 A", - "P1 I": "C, J1 B1, X1 X", - "P1 II": "X, J1 B2, X1 A", - "P1 III": "Z, J1 B4, X1 Y", - "P1 IV": "D, J1 B3, X1 B", - "P1 V": "S, J1 B11, X1 X", - "P1 VI": "A, J1 B12, X1 X", - "P1 Select": "V, J1 B9, X1 Back", - "P1 Run": "Enter, J1 B10, X1 Start", - "P1 Mode: Set 2-button": "LeftBracket", - "P1 Mode: Set 6-button": "RightBracket" - }, - "ColecoVision Basic Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 L": "Z, J1 B5, X1 LeftShoulder", - "P1 R": "X, J1 B6, X1 RightShoulder", - "P1 Key 1": "Keypad1, J1 B1, X1 X", - "P1 Key 2": "Keypad2, J1 B2, X1 A", - "P1 Key 3": "Keypad3, J1 B3, X1 B", - "P1 Key 4": "Keypad4, J1 B4, X1 Y", - "P1 Key 5": "Keypad5, J1 RotationZ-, X1 RStickUp", - "P1 Key 6": "Keypad6, J1 RotationZ+, X1 RStickDown", - "P1 Key 7": "Keypad7, J1 Z-, X1 RStickLeft", - "P1 Key 8": "Keypad8, J1 Z+, X1 RStickRight", - "P1 Key 9": "Keypad9, J1 B11, X1 LeftThumb", - "P1 Star": "KeypadEnter, J1 B9, X1 Back", - "P1 Key 0": "Keypad0, J1 B12, X1 RightThumb", - "P1 Pound": "KeypadDecimal, J1 B10, X1 Start" - }, - "SMS Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 B1": "Z, J1 B1, X1 X", - "P1 B2": "X, J1 B2, X1 A", - "Reset": "J1 B9, X1 Back", - "Pause": "J1 B10, X1 Start" - }, - "SMS Paddle Controller": { - "P1 Left": "Left, J1 POV1L", - "P1 Right": "Right, J1 POV1R", - "P1 B1": "Z, J1 B1, X1 X", - "Reset": "J1 B9, X1 Back", - "Pause": "J1 B10, X1 Start" - }, - "SMS Light Phaser Controller": { - "P1 Trigger": "Z, J1 B1, X1 X, WMouse L", - "Reset": "J1 B9, X1 Back", - "Pause": "J1 B10, X1 Start" - }, - "SMS Sports Pad Controller": { - "P1 Up": "Up, J1 POV1U", - "P1 Down": "Down, J1 POV1D", - "P1 Left": "Left, J1 POV1L", - "P1 Right": "Right, J1 POV1R", - "P1 B1": "Z, J1 B1, X1 X", - "P1 B2": "X, J1 B2, X1 A", - "Reset": "J1 B9, X1 Back", - "Pause": "J1 B10, X1 Start" - }, - "SMS Keyboard Controller": { - "Key 1": "Number1", - "Key 2": "Number2", - "Key 3": "Number3", - "Key 4": "Number4", - "Key 5": "Number5", - "Key 6": "Number6", - "Key 7": "Number7", - "Key 8": "Number8", - "Key 9": "Number9", - "Key 0": "Number0", - "Key Minus": "Minus", - "Key Caret": "Equals", - "Key Yen": "Backspace", - "Key Break": "Delete", - "Key Function": "Tab", - "Key Q": "Q", - "Key W": "W", - "Key E": "E", - "Key R": "R", - "Key T": "T", - "Key Y": "Y", - "Key U": "U", - "Key I": "I", - "Key O": "O", - "Key P": "P", - "Key At": "LeftBracket", - "Key Left Bracket": "RightBracket", - "Key Return": "Enter", - "Key Up Arrow": "Up", - "Key Control": "CapsLock", - "Key A": "A", - "Key S": "S", - "Key D": "D", - "Key F": "F", - "Key G": "G", - "Key H": "H", - "Key J": "J", - "Key K": "K", - "Key L": "L", - "Key Semicolon": "Semicolon", - "Key Colon": "Apostrophe", - "Key Right Bracket": "Backslash", - "Key Left Arrow": "Left", - "Key Right Arrow": "Right", - "Key Shift": "LeftShift", - "Key Z": "Z", - "Key X": "X", - "Key C": "C", - "Key V": "V", - "Key B": "B", - "Key N": "N", - "Key M": "M", - "Key Comma": "Comma", - "Key Period": "Period", - "Key Slash": "Slash", - "Key PI": "RightShift", - "Key Down Arrow": "Down", - "Key Graph": "PageUp", - "Key Kana": "PageDown", - "Key Space": "Space", - "Key Home/Clear": "Home", - "Key Insert/Delete": "Insert", - "P1 Up": "J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 B1": "J1 B1, X1 X", - "P1 B2": "J1 B2, X1 A", - "Reset": "J1 B9, X1 Back", - "Pause": "J1 B10, X1 Start" - }, - "GG Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 B1": "Z, J1 B1, X1 X", - "P1 B2": "X, J1 B2, X1 A", - "Reset": "J1 B9, X1 Back", - "P1 Start": "Enter, J1 B10, X1 Start" - }, - "Dual Gameboy Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 Select": "Space, J1 B9, X1 Space", - "P1 B": "Z, J1 B1, X1 X", - "P1 A": "X, J1 B2, X1 A", - "P2 Up": "Keypad8, J1 RotationZ-, X1 RStickUp", - "P2 Down": "Keypad2, J1 RotationZ+, X1 RStickDown", - "P2 Left": "Keypad4, J1 Z-, X1 RStickLeft", - "P2 Right": "Keypad6, J1 Z+, X1 RStickRight", - "P2 Start": "RightBracket, J1 B5, X1 LeftShoulder", - "P2 Select": "LeftBracket, J1 B6, X1 RightShoulder", - "P2 B": "C, J1 B4, X1 Y", - "P2 A": "V, J1 B3, X1 B" - }, - "TI83 Controller": { - "0": "Keypad0", - "1": "Keypad1", - "2": "Keypad2", - "3": "Keypad3", - "4": "Keypad4", - "5": "Keypad5", - "6": "Keypad6", - "7": "Keypad7", - "8": "Keypad8", - "9": "Keypad9", - "DOT": "KeypadDecimal", - "ON": "Space", - "ENTER": "Enter, KeypadEnter", - "DOWN": "Down", - "UP": "Up", - "LEFT": "Left", - "RIGHT": "Right", - "PLUS": "KeypadAdd", - "MINUS": "KeypadSubtract", - "MULTIPLY": "KeypadMultiply", - "DIVIDE": "KeypadDivide", - "CLEAR": "Escape", - "EXP": "6", - "DASH": "Minus", - "PARACLOSE": "0", - "TAN": "T", - "VARS": "V", - "PARAOPEN": "9", - "COS": "C", - "PRGM": "R", - "STAT": "S", - "SIN": "Period", - "MATRIX": "LeftBracket", - "X": "X", - "STO": "Insert", - "LN": "L", - "LOG": "O", - "SQUARED": "2", - "NEG1": "1", - "MATH": "M", - "ALPHA": "A", - "GRAPH": "G", - "TRACE": "Home", - "ZOOM": "Z", - "WINDOW": "W", - "Y": "Y", - "SECOND": "Slash", - "MODE": "Backslash", - "DEL": "Delete", - "COMMA": "Comma" - }, - "GPGX Genesis Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 A": "Z, J1 B1, X1 X", - "P1 B": "X, J1 B2, X1 A", - "P1 C": "C, J1 B4, X1 Y", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 X": "A, J1 B3, X1 B", - "P1 Y": "S, J1 B5, X1 LeftShoulder", - "P1 Z": "D, J1 B6, X1 RightShoulder", - "P1 Mode": "E, J1 B9, X1 Back", - "P2 Lightgun Trigger": "WMouse L", - "P2 Lightgun Start": "Keypad5", - "P2 Mouse Left": "WMouse L", - "P2 Mouse Center": "WMouse M", - "P2 Mouse Right": "WMouse R", - "P2 Mouse Start": "Keypad5" - }, - "PicoDrive Genesis Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 A": "Z, J1 B1, X1 X", - "P1 B": "X, J1 B2, X1 A", - "P1 C": "C, J1 B4, X1 Y", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 X": "A, J1 B3, X1 B", - "P1 Y": "S, J1 B5, X1 LeftShoulder", - "P1 Z": "D, J1 B6, X1 RightShoulder", - "P1 Mode": "E, J1 B9, X1 Back" - }, - "WonderSwan Controller": { - "P1 X1": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 X3": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 X4": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 X2": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Y1": "Keypad8, J1 RotationZ-, X1 RStickUp", - "P1 Y3": "Keypad2, J1 RotationZ+, X1 RStickDown", - "P1 Y4": "Keypad4, J1 Z-, X1 RStickLeft", - "P1 Y2": "Keypad6, J1 Z+, X1 RStickRight", - "P1 Start": "Enter, J1 B10, X1 Start", - "P1 B": "Z, J1 B1, X1 X", - "P1 A": "X, J1 B2, X1 A", - "P2 X3": "X, J1 B2, X1 A", - "P2 X4": "Z, J1 B1, X1 X", - "P2 Y1": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P2 Y3": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P2 Y4": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P2 Y2": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P2 Start": "Enter, J1 B10, X1 Start" - }, - "PSX Front Panel": { - "P1 Up": "X1 DpadUp, Up", - "P1 Down": "X1 DpadDown, Down", - "P1 Left": "X1 DpadLeft, Left", - "P1 Right": "X1 DpadRight, Right", - "P1 Select": "X1 Back, Space", - "P1 Start": "X1 Start, Enter", - "P1 Square": "X1 X, A", - "P1 Triangle": "X1 Y, S", - "P1 Circle": "X1 B, X", - "P1 Cross": "X1 A, Z", - "P1 L1": "X1 LeftShoulder, Q", - "P1 R1": "X1 RightShoulder, W", - "P1 L2": "X1 LeftTrigger, E", - "P1 R2": "X1 RightTrigger, R", - "P1 L3": "X1 LeftThumb, T", - "P1 R3": "X1 RightThumb, Y", - "P1 MODE": "D" - }, - "Lynx Controller": { - "Up": "Up", - "Down": "Down", - "Left": "Left", - "Right": "Right", - "A": "X", - "B": "Z", - "Option 1": "A", - "Option 2": "S", - "Pause": "Enter" - }, - "Apple IIe Keyboard": { - "Delete": "Delete", - "Left": "Left", - "Tab": "Tab", - "Down": "Down", - "Up": "Up", - "Return": "Enter", - "Right": "Right", - "Space": "Space", - "'": "Apostrophe", - ",": "Comma", - "-": "Minus", - ".": "Period", - "/": "Slash", - "0": "Keypad0", - "1": "Keypad1", - "2": "Keypad2", - "3": "Keypad3", - "4": "Keypad4", - "5": "Keypad5", - "6": "Keypad6", - "7": "Keypad7", - "8": "Keypad8", - "9": "Keypad9", - ";": "Semicolon", - "=": "Equals", - "[": "LeftBracket", - "\\": "Backslash", - "]": "RightBracket", - "`": "Backtick", - "A": "A", - "B": "B", - "C": "C", - "D": "D", - "E": "E", - "F": "F", - "G": "G", - "H": "H", - "I": "I", - "J": "J", - "K": "K", - "L": "L", - "M": "M", - "N": "N", - "O": "O", - "P": "P", - "Q": "Q", - "R": "R", - "S": "S", - "T": "T", - "U": "U", - "V": "V", - "W": "W", - "X": "X", - "Y": "Y", - "Z": "Z", - "Control": "RightCtrl", - "Shift": "RightShift", - "Caps Lock": "CapsLock" - }, - "VirtualBoy Controller": { - "L_Up": "Up, X1 DpadUp, X1 LStickUp", - "L_Down": "Down, X1 DpadDown, X1 LStickDown", - "L_Left": "Left, X1 DpadLeft, X1 LStickLeft", - "L_Right": "Right, X1 DpadRight, X1 LStickRight", - "R_Up": "Keypad8, X1 RStickUp", - "R_Down": "Keypad2, X1 RStickDown", - "R_Left": "Keypad4, X1 RStickLeft", - "R_Right": "Keypad6, X1 RStickRight", - "B": "Z, X1 X", - "A": "X, X1 A", - "R": "W, X1 LeftShoulder", - "L": "E, X1 RightShoulder", - "Select": "Space, X1 Back", - "Start": "Enter, X1 Start" - }, - "NeoGeo Portable Controller": { - "P1 Up": "Up, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, X1 DpadRight, X1 LStickRight", - "P1 B": "Z, J1 B1, X1 X", - "P1 A": "X, J1 B2, X1 A", - "P1 Option": "Enter, J1 B10, X1 Start" - }, - "Vectrex Digital Controller": { - "P1 Up": "Up, J1 POV1U, X1 DpadUp, X1 LStickUp", - "P1 Down": "Down, J1 POV1D, X1 DpadDown, X1 LStickDown", - "P1 Left": "Left, J1 POV1L, X1 DpadLeft, X1 LStickLeft", - "P1 Right": "Right, J1 POV1R, X1 DpadRight, X1 LStickRight", - "P1 Button 1": "Z, J1 B2, X1 A", - "P1 Button 2": "X, J1 B3, X1 B", - "P1 Button 3": "A, J1 B1, X1 X", - "P1 Button 4": "S, J1 B4, X1 Y" - }, - "Vectrex Analog Controller": { - "P1 Button 1": "Z, J1 B2, X1 A", - "P1 Button 2": "X, J1 B3, X1 B", - "P1 Button 3": "A, J1 B1, X1 X", - "P1 Button 4": "S, J1 B4, X1 Y" - }, - "O2 Joystick": { - "P1 Up": "Up", - "P1 Down": "Down", - "P1 Left": "Left", - "P1 Right": "Right", - "P1 F": "Z", - "0": "Keypad0", - "1": "Keypad1", - "2": "Keypad2", - "3": "Keypad3", - "4": "Keypad4", - "5": "Keypad5", - "6": "Keypad6", - "7": "Keypad7", - "8": "Keypad8", - "9": "Keypad9", - "YES": "Y", - "NO": "N", - "ENT": "KeypadEnter" - } - }, - "AllTrollersAutoFire": { - "NES Controller": { - "P1 B": "A", - "P1 A": "S" - }, - "Gameboy Controller": { - "B": "A", - "A": "S" - }, - "Gameboy Controller H": { - "B": "A", - "A": "S" - }, - "GBAController": { - "B": "A", - "A": "S" - }, - "Atari 2600 Basic Controller": { - "P1 Button": "A", - "P2 Button": "S" - }, - "Atari 7800 Basic Controller": { - "P1 Button": "A", - "P2 Button": "S" - }, - "PC Engine Controller": { - "P1 B2": "A", - "P1 B1": "S" - }, - "SMS Controller": { - "P1 B1": "A", - "P1 B2": "S" - }, - "GPGX Genesis Controller": { }, - "GBA Controller": { - "B": "A", - "A": "S" - }, - "WonderSwan Controller": { - "P1 B": "A", - "P1 A": "S", - "P2 X4": "A", - "P2 X3": "S" - }, - "Apple IIe Keyboard": { - "Return": "Enter" - } - }, - "AllTrollersAnalog": { - "NES Controller": { - "P2 Paddle": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P2 Zapper X": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P2 Zapper Y": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P3 Paddle": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P3 Zapper X": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P3 Zapper Y": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.0 - } - }, - "Atari 7800 Paddle Controller": { - "P1 Paddle": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - } - }, - "Atari 7800 Light Gun Controller": { - "P1 VPos": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P1 HPos": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - } - }, - "NDS Controller": { - "TouchX": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "TouchY": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.0 - } - }, - "Nintendo 64 Controller": { - "P1 X Axis": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Y Axis": { - "Value": "X1 LeftThumbY Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P2 X Axis": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P2 Y Axis": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P3 X Axis": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P3 Y Axis": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P4 X Axis": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P4 Y Axis": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - } - }, - "GPGX Genesis Controller": { - "P2 Lightgun X": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P2 Lightgun Y": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P2 Mouse X": { - "Value": "X1 LeftThumbX Axis", - "Mult": 0.1, - "Deadzone": 0.0 - }, - "P2 Mouse Y": { - "Value": "X1 LeftThumbY Axis", - "Mult": 0.1, - "Deadzone": 0.0 - } - }, - "WonderSwan Controller": {}, - "Lynx Controller": {}, - "PSX Front Panel": { - "P1 LStick X": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 LStick Y": { - "Value": "X1 LeftThumbY Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 RStick X": { - "Value": "X1 RightThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 RStick Y": { - "Value": "X1 RightThumbY Axis", - "Mult": 1.0, - "Deadzone": 0.1 - } - }, - "Apple IIe Keyboard": {}, - "LibRetro Controls": { - "Pointer X": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "Pointer Y": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Pointer X": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Pointer Y": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - } - }, - "PC-FX Controller": { - "P2 Mouse X": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P2 Mouse Y": { - "Value": "X1 LeftThumbY Axis", - "Mult": 1.0, - "Deadzone": 0.1 - } - }, - "SNES Controller": { - "P1 Mouse X": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Mouse Y": { - "Value": "X1 LeftThumbY Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P2 Scope X": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P2 Scope Y": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.1 - } - }, - "VirtualBoy Controller": {}, - "NeoGeo Portable Controller": {}, - "Saturn Controller": { - "P1 Right Stick Horizontal": { - "Value": "X1 RightThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Right Stick Vertical": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Right Throttle": { - "Value": "X1 RightThumbY Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Left Stick Horizontal": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Left Stick Vertical": { - "Value": "X1 LeftThumbY Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Left Throttle": { - "Value": "", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Wheel": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Stick Horizontal": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Stick Vertical": { - "Value": "X1 LeftThumbY Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Throttle": { - "Value": "X1 RightThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 X": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Y": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.1 - } - }, - "SMS Paddle Controller": { - "P1 Paddle": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - } - }, - "SMS Light Phaser Controller": { - "P1 X": { - "Value": "WMouse X", - "Mult": 1.0, - "Deadzone": 0.0 - }, - "P1 Y": { - "Value": "WMouse Y", - "Mult": 1.0, - "Deadzone": 0.0 - } - }, - "SMS Sports Pad Controller": { - "P1 X": { - "Value": "X1 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P1 Y": { - "Value": "X1 LeftThumbY Axis", - "Mult": -1.0, - "Deadzone": 0.1 - }, - "P2 X": { - "Value": "X2 LeftThumbX Axis", - "Mult": 1.0, - "Deadzone": 0.1 - }, - "P2 Y": { - "Value": "X2 LeftThumbY Axis", - "Mult": -1.0, - "Deadzone": 0.1 - } - } - } -} \ No newline at end of file diff --git a/Assets/dll/7z.dll b/Assets/dll/7z.dll deleted file mode 100644 index be29515b795a94ffa0ec09d0613d5eeecb7c7c71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1677824 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 z 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Ï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%0DI5AGv4O|#43kWX<^)-E)~MYi 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

-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

7P1TynZUD#jFmN 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

$i8mPUQk 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 TUJiIU;N^gq16~enF9-e~Jze@o diff --git a/Assets/dll/LibretroBridge.dll b/Assets/dll/LibretroBridge.dll deleted file mode 100644 index 94c891c44899c997d64acd2483d7271cb63cc6d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136704 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

WJT>}9Cl)KI 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%0A-uO*)OElZ$ zG*Cny;c9hV*|rA)9!|d-C|8~>Jh}be^k256LExnw z^9vR8oFU1OF7XksY)E%vL%P0*E8&G=mH`AlmVLNJ-YU5TXTM~>aOO7?vF z)on!YDd8VN$UR=UlN>Ulf3eXh&!N7maOd7bWV=GBU8$TxBuPIPB8+!M8pQqqHW@2 zdAbywM80t7p5?v&(VcxG+1jlhBQ|=e`h61v-Mk2?w z_!ONe_-?6SW)SU!&Znq_|5wdxcwCydCaxT|Q|ST5)93kai53Z~^KX?Qw=ITeE?6Q& zEv$7$7B;##x~372%^>MRMi{9X!5zaxlj~HeRVF`#ev$MFW{=~)pyg|RXAkTbv_p*p zq-+@q)(}Ghc$A?rugVoejZjRGFj>b4*(os!E=l|ARHpd9Ai#5#)UACVw+&Isu^t^(s&;RuVKgQ)t*53|r096_G(zPZ*yF}5B_7_R}-O_$Ug@RBk zIW!e`vDetOqHs6|W(XcyHmD``&ov2ETia}U(k`{y4Z~Gy*2E23Bbz|RFS$x=zjOlR z`kHiS&eZZ_>6yMp7euijU_z#69#>8q#(EWuZJpw5+A8>$F8J318~@T3{>2?UlU)s& zEe!@skb#VeS`4fa*+NOdz_c|BJy7=kzhKRt@*8_H1Ua!6sFOG zBYqzi*8VA=N;w>QHc(ynt90C>ag`tey%f770+NP*#2QFpZToqjD_(lMT=K2apwMYo z$liFf8hRFWrbTi|?2V7bmP!6kK{L~mq{ly^>OX0`@IU%S_AMV@IuCz2K6yU{fe?G< zAANMg+_pL@aITjvFB|{4>%W zX#yz8%Xpvh5Wk{pewiHX6kRqY7iIh-S&pb=PRVlIrM@;=wLC?Z!$^}Tnn{?{o#dl3 zdcATmwj76fof^GQ(?{>~W%lUZi;M!JSCtq&pkkNRbdHRkW;vzW=*7|b{bf5|RGAOh zXc1$0GTDyKrT?E~JANPyh$#6Z4m(#uKCHLjwm7{AQ)$b~opYiH$1g7*z>`gCD=5K| zQ0hr}Q9X}4rg)CcxBmE=xYdbG2d$h`WWB*+K;+7{2H9EVWvym(R{7*%-sVLP9Z{Ay zkb)H~&3fW78LO(&=&|MI*}a?7ryaa;VT8l@ET@Rz*1j)U_!mM0o~~(99xsEj>MbSTEUz2>`9)A zq~70#2yORTTOUr=-M{T#;wM{AePulU15@#-{b2JRA%b`6UNz3K5w49~!=w>R`M6#1 zy?uqjIj5TtZjPd}h^Zw8}G)3e4i(_OQR$%#!W zEnW?tbd%5|XIW3Z@jVPPmMxeJ9-F=XxO04j;>+ zy`nM@^oI%}hqLO2Tv4v$xYs%QweIZaIFvG4SH>R&qeQc!+{w@Q0s6rn z!CarXUP0MHAY}3FL|~~7ZONvac-3P%7REY|IFJwgXVsi$R*v%6?ny&K;QtQ1v@JeP zBC#n|qDZ_x&$_xxt7E>BED^%(;O5pfr)*)#@$jjn$(R%MU27?Z*6EsuE<*dW>Z9hPu>x zH2RkC>G!;=Ejovd!9r51?Vfi-ZaeiIeN*4aCy8RI(x&u{FX!{g%FgW%_n)fBbM46Y`I5IpyLZ}=1IR5Jy^X76k0&7j2wyK8j#ay@ zr?#ZS;J⁡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