Compare commits

...

388 commits

Author SHA1 Message Date
duncathan salt 03be08f0a2
Merge pull request #188 from duncathan/fix/tow-rope-mw
fix tow rope item location not always sending in MW
2025-05-03 17:42:28 -06:00
duncathan 1c35a17717 fix tow rope item location not always sending in MW 2025-05-03 17:40:25 -06:00
duncathan salt 5e6321dd55
Merge pull request #184 from cave-story-randomizer/duncathan-patch-1
Fix error handling in TscFile:_getLabelPositionRange()
2024-12-18 15:25:03 -06:00
duncathan salt 1a632137db
Fix error handling in TscFile:_getLabelPositionRange()
Fixes #180
2024-12-18 15:24:06 -06:00
duncathan salt 08f0c555f5
Merge pull request #182 from duncathan/auto-version
Automatically update in-game version on release
2024-12-18 15:23:01 -06:00
duncathan fad711364b add patch to read version from file 2024-12-18 15:12:48 -06:00
duncathan 902dcd71d9 Merge remote-tracking branch 'github/master' into auto-version 2024-12-18 14:52:04 -06:00
duncathan salt 140f892222
Merge pull request #181 from duncathan/typing
typing fixes and schema validation
2024-12-18 10:32:06 -06:00
duncathan b919a44e14 workflows for validation 2024-12-18 10:31:11 -06:00
duncathan ab1db92c40 fix mychar pattern 2024-12-18 10:10:14 -06:00
duncathan 6e27d66b06 bump python version in workflow 2024-12-18 00:03:24 -06:00
duncathan 6e9edf4290 typing fixes and schema validation 2024-12-17 21:25:33 -06:00
duncathan 45586f9a95 automatically update version number 2024-12-17 19:25:32 -06:00
duncathan salt 0a93bf3867
Update python.yml 2024-12-05 15:16:59 -06:00
duncathan salt 268209bff0
Merge pull request #179 from duncathan/fixes
Fixes
2024-12-05 15:05:10 -06:00
duncathan dab4ba4baa "document" undocumented patches 2024-12-05 15:03:04 -06:00
duncathan 43cb531c41 fix the alt-tab crash for real 2024-12-05 15:00:51 -06:00
duncathan a95c51c9c3 add ikuyo and kleckser to rando credits 2024-12-05 14:48:19 -06:00
duncathan 5bc2db4b58 moves the helper block in Weed lower to make the jump easier
also runs the CMP correctly on all entrances to Grasstown, including loading saves
2024-12-05 14:26:42 -06:00
duncathan 6bf382b6b0 removes the block in jail no. 1 when loading saves in there 2024-12-05 14:20:09 -06:00
duncathan 18a0eb77e4 fix plantation curly item not sending in MW in some circumstances
when collecting this item without either the mushroom badge in your inventory or the mimiga mask equipped, it would fail to send
2024-12-05 14:10:44 -06:00
duncathan salt ebf96d7d2f
Merge pull request #177 from calvarado194/tweaked
Bump Tweaked to v1.6
2024-05-27 07:03:06 -06:00
ikuyo 483585cd21 Updated several sprites from Lethrys. Added the missing item sprites back to casts.bmp. Removed spurious files. 2024-05-27 00:50:11 -04:00
duncathan salt 2ac159cd9c
Merge pull request #178 from periwinkle9/update-mw-dll
Update multiworld DLL to v1.2
2024-05-26 14:15:06 -06:00
periwinkle 1bade28b09 Include settings.ini for freeware multiworld DLL 2024-05-26 15:38:26 -04:00
periwinkle 8617fc3a0c Update multiworld DLL to v1.2 2024-05-26 11:16:42 -04:00
ikuyo 75317390eb Updated version on title screen 2024-05-25 02:23:12 -04:00
ikuyo e7eaf7f2ee Removed redundant file 2024-05-25 02:07:36 -04:00
ikuyo e0058a66ca Bump to Tweaked v1.6 2024-05-25 01:33:39 -04:00
duncathan salt 106e520a32
Merge pull request #176 from calvarado194/tweaked
Several fixes to graphical issues when playing over a freeware export. Windows build should not require DLLs anymore.
2024-03-13 17:59:06 -06:00
ikuyo dab682c263 Merge branch 'tweaked' of https://github.com/calvarado194/cave-story-randomizer into tweaked 2024-03-13 20:55:43 -03:00
ikuyo 91043f453b oops now the actual builds lol 2024-03-13 20:54:48 -03:00
Ema Alvarado 396c461738
Merge branch 'cave-story-randomizer:master' into tweaked 2024-03-11 22:51:18 -03:00
ikuyo 8d129d39c4 Tweaked prioritizes its own png files over vanilla's bmp files when overwriting an existing freeware export. Added imports to avoid needing DLLs 2024-03-11 22:50:04 -03:00
ikuyo 33f12180ae Fixed ItemImage missing the rando aggregator items on Tweaked builds 2024-03-09 19:55:41 -03:00
duncathan salt 83a7b13674
Merge pull request #175 from henriquegemignani/feature/lupa
Use randovania-lupa instead
2024-03-07 15:27:53 -06:00
Henrique Gemignani Passos Lima d6ca45ba01
Use randovania-lupa instead 2024-03-07 22:27:52 +02:00
duncathan salt d70e9214dd
Merge pull request #174 from calvarado194/tweaked
Fix: Missing Graphics in StageImage, fixed issues with config files.
2024-03-05 14:12:59 -06:00
ikuyo 925b8563bf Fixed several config issues. Added missing graphics for StageImage 2024-03-05 11:58:49 -03:00
ikuyo e3b44f719a improved sprites for StageSelect upscale 2024-03-02 17:08:30 -03:00
ikuyo 7371f18cdd Added missing Armory graphics for StageSelect 2024-03-02 13:32:09 -03:00
duncathan salt 409aa7fed9
Merge pull request #173 from calvarado194/tweaked
Support Cave Story: Tweaked as an export
2024-01-27 18:33:40 -06:00
ikuyo 0e44bbcb74 Exporter now checks OS it's running under and bundles only the executable required for the target OS 2024-01-20 00:37:56 -03:00
ikuyo 6d6426ff05 Moved shared data files out of Tweaked/Freeware and into data pre_edited_cs. Patcher moves data files from that folder into the respective build. Freeware files have been kept to ensure BL compatibility. 2024-01-14 19:11:21 -03:00
ikuyo 5358ef9fc6 Removed unnnecessary files 2024-01-14 17:10:44 -03:00
ikuyo 20dd317a09 Removed unneeded patcher_data.json file. Moved CSPlatform enum out of rdv and into the patcher class. 2024-01-13 18:36:11 -03:00
ikuyo 81202a77eb deleted a TON of redundant files 2024-01-13 18:18:59 -03:00
ikuyo bfc491b977 Replaced files for upscale with the Lethrys versions for Rando. Added code to handle exporting upscaled mychar. 2024-01-09 19:28:33 -03:00
ikuyo 6e0dfdac37 Added initial draft for CS:Tweaked exporter 2024-01-05 00:07:59 -03:00
duncathan ad4c5bbee6 a couple fixes 2023-10-14 14:43:23 -06:00
duncathan 3ada39e69a add py.typed 2023-10-13 22:12:24 -06:00
duncathan 69df56ec09 bump version number 2023-10-13 13:59:29 -06:00
duncathan salt 0ee86f3df0
Merge pull request #171 from duncathan/feature/multiworld
Multiworld
2023-10-13 13:51:13 -06:00
duncathan 6f99626e4d update to CSMultiworldDLL v1.0 2023-10-13 13:44:01 -06:00
duncathan c671f1b1dc bookshelf in prefab house now returns you to prefab building 2023-10-13 13:42:43 -06:00
duncathan 01082581a8 more fixes 2023-10-12 22:04:14 -06:00
duncathan db760f1710 fix 2023-10-12 19:15:13 -06:00
duncathan ab605182cf update credits 2023-10-11 15:08:42 -06:00
duncathan d27ae7d457 hopefully fix race condition when saving 2023-10-11 15:08:35 -06:00
duncathan 753e67faa0 multiworld!!!!! 2023-10-11 00:56:21 -06:00
duncathan salt c9c4bf1e10
Merge pull request #170 from cave-story-randomizer/patcher
merge patcher branch into main
2023-06-19 16:51:07 -06:00
duncathan salt 4d06730cf9
Update README.md 2023-06-19 16:50:34 -06:00
duncathan 24bb760bc0 bump CSVERSION 2022-01-23 19:17:15 -06:00
duncathan d291c3bd1d add <KEY to debug cats 2022-01-23 19:16:50 -06:00
duncathan 4315246bc1 fix megane not accepting consolidated sprinklers 2022-01-17 15:55:22 -06:00
duncathan e3217bbb32 changes for softlock debug cats 2022-01-17 15:48:52 -06:00
duncathan 75161d4491 actually i was wrong; i was just handling length wrong 2022-01-11 22:34:39 -06:00
duncathan aa32fa15d9 fix an off-by-one error that predates me 2022-01-11 22:25:44 -06:00
duncathan 4c2eedb155 maybe fix text wrapping in hints 2022-01-11 21:54:58 -06:00
duncathan 56d4554789 use <NUM0000 instead of hardcoded numbers for missile expansion text 2022-01-11 20:46:45 -06:00
duncathan c25e8d4c27 better error messages for failures in tsc_file.lua 2022-01-11 20:39:28 -06:00
duncathan 04a51779f4 slightly change head for easier replacing of life capsule events 2022-01-11 20:16:11 -06:00
duncathan salt 65472dfd78
skip love-release, use love directly 2022-01-11 17:31:24 -06:00
duncathan salt 02f5f3ea5e
use it directly? 2022-01-11 16:50:51 -06:00
duncathan salt b8ac34d683
try adding luarocks to PATH for daily 2022-01-11 16:47:39 -06:00
duncathan salt c4efb015eb
try sudo 2022-01-07 20:41:05 -06:00
duncathan salt 1daae46f65
fix luarocksVersion in daily workflow 2022-01-07 20:28:16 -06:00
duncathan salt d1221df9fb
Merge pull request #169 from cave-story-randomizer/stable
merge malco changes to master
2022-01-07 20:25:44 -06:00
duncathan ad204a3bc7 explicitly run MALCO on the stable branch 2022-01-07 20:25:18 -06:00
duncathan c1d39f7296 allow manual daily workflow calls 2022-01-07 20:11:45 -06:00
duncathan f7190478cd i am a fool 2022-01-07 19:56:58 -06:00
duncathan f7ff04ac79 convert MALCO to github actions 2022-01-07 19:53:34 -06:00
duncathan c5bfc84257 fix text wrapping for consolidation items 2021-12-10 20:58:15 -06:00
duncathan 9af7ea8336 fix <ITJs for consolidated items 2021-12-10 20:15:19 -06:00
duncathan 03e3d66add add consolidation items to prevent inventory max-out 2021-12-10 19:59:03 -06:00
duncathan 36ef32dc61 add consolidation item sprites (keyring courtesy of Taiki) 2021-12-10 19:14:58 -06:00
duncathan eb4cf55627 add needles to other_tsc 2021-12-10 19:14:22 -06:00
duncathan 3a04c8e228 support patching other TSC files 2021-12-10 03:05:51 -06:00
duncathan 1513d3f068 adds a tribute to Arthur's grave. in memory of Kenzo. 2021-12-10 01:34:23 -06:00
duncathan 82cfca5f8d a few small changes 2021-12-10 01:32:28 -06:00
duncathan a02de3c01a ok I swear this'll be the last one tonight 2021-12-08 01:11:50 -06:00
duncathan b9191b132f sorry for spamming #project-updates i forgot something obvious 2021-12-08 00:45:26 -06:00
duncathan 24a1f0eb49 fix pyinstaller hook 2021-12-08 00:42:20 -06:00
duncathan 42f4e74c85 add pyinstaller hook 2021-12-08 00:12:16 -06:00
duncathan 46f7d13f70 rename pre-edited-cs -> pre_edited_cs 2021-12-08 00:09:45 -06:00
duncathan b235d47f74 fix hints 2021-12-06 02:20:16 -06:00
duncathan 55ae1250a0 add scripts for non-progressive items 2021-12-04 00:45:18 -06:00
duncathan 08fe90b770 support patching hints 2021-12-01 02:44:05 -06:00
duncathan 61407e6e0e fix workflow 2021-12-01 01:46:24 -06:00
duncathan a344869392 update gitignore and workflow 2021-12-01 01:28:14 -06:00
duncathan e38dcdb197 fix patcher functionality (hints TODO) 2021-12-01 01:28:01 -06:00
duncathan ea83e7643f fix workflow 2021-11-30 22:54:16 -06:00
duncathan 0ef7042a60 add workflow 2021-11-30 22:49:52 -06:00
duncathan 137e30edcc remove unnecessary files 2021-11-30 22:39:57 -06:00
duncathan bd8e4889fa add patcher scripts 2021-11-30 22:37:50 -06:00
duncathan 05409023cd rename src -> caver 2021-11-30 20:51:31 -06:00
duncathan 105fd7eac1 add python package files 2021-11-30 20:49:36 -06:00
duncathan salt 943ac7a61e
Merge pull request #167 from Fayti1703/patch-trunc
Properly truncate utf-8 text
2021-09-28 10:03:57 -06:00
Fayti1703 1018d1c46c Properly truncate utf-8 text
Simply slicing byte-wise produces illegal sequences --
throw away any leftover illegal sequences as well.
2021-09-28 13:42:34 +02:00
duncathan cedd865e24 fix softlock from entering storehouse before getting jenka's item 2021-09-23 22:39:20 -06:00
duncathan 06776a7828 fix teleporter icons disappearing
air tank equip flag was colliding with the range used for multiple SLPs hack
2021-09-23 22:36:08 -06:00
duncathan 2a042c24e4 fixes crash when exiting game 2021-09-23 22:21:07 -06:00
duncathan 347bfcdc57 fix all bosses completable logic 2021-09-23 22:12:39 -06:00
duncathan salt 0f4d0ee04c
Merge pull request #166 from Brayconn/master
Added flag list output from TKT
2021-09-12 22:07:52 -06:00
Brayconn 168737fc52 Added flag list output from TKT 2021-09-12 20:58:34 -07:00
duncathan e49606f1b8 increase version number 2021-07-26 22:27:22 -06:00
duncathan b5f7c9eddd adds WIP kero blaster orgs courtesy of CoryWelchMusic 2021-07-26 22:16:15 -06:00
duncathan d76b811fda adds options for random and custom mychars 2021-07-26 21:03:50 -06:00
duncathan salt bbfa4e5661
Merge pull request #164 from duncathan/completable
add completable logic
2021-07-26 20:38:11 -06:00
duncathan 6b07edf4ef Merge branch 'master' into completable 2021-07-26 20:37:38 -06:00
duncathan 6ad63828c9 fix sphere logging (oops) 2021-07-26 20:33:43 -06:00
duncathan d576f7e275 adds completable logic to UI, adjusts settings UI 2021-07-26 20:32:39 -06:00
duncathan 5f9d957c9c fix sphere logging (oops) 2021-07-26 20:32:12 -06:00
duncathan d72738d474 makes the title screen hash into a real hash 2021-07-26 17:59:47 -06:00
duncathan 4b57793746 proj files 2021-07-26 17:32:09 -06:00
duncathan aa1dadef18 splits sphere analysis and logging into separate functions 2021-07-26 17:32:09 -06:00
duncathan ea6549139c adds sphere analysis 2021-07-26 17:32:09 -06:00
duncathan 170e60dcdd starts work on completable logic 2021-07-26 17:32:09 -06:00
duncathan 0f4d4d23fa makes the title screen hash into a real hash 2021-04-05 20:04:06 -06:00
duncathan salt d280a76d90
Merge pull request #159 from duncathan/quickfixes
fixes pt 5
2021-04-02 00:30:06 -06:00
duncathan 1cd3e0d381 fixes the memory leak i made? maybe? lol 2021-04-02 00:15:21 -06:00
duncathan 5cd8fdddc2 splits out item hint initialization into its own function for clarity 2021-04-01 22:22:34 -06:00
duncathan c9e8d0452d reduces size of MAX_STRIP to 0x40 instead of 0x7F
this technically introduces a memory leak which increases memory usage each time credits are rolled, but it's pretty insignificant imo
2021-04-01 22:22:34 -06:00
duncathan 081d7e8f25 fixes drowning sprite displaying on new game 2021-04-01 21:11:43 -06:00
duncathan e6a7e062f8 fixes numahachi hint (again) 2021-04-01 20:41:24 -06:00
duncathan bd061957f2 remove checks for fireball/snake in softlock checks 2021-04-01 20:40:15 -06:00
duncathan 24fb2f6c8e presses save in vscode
(actually implements the softlock debug cats, lmao)
2021-04-01 20:03:37 -06:00
duncathan salt 9ff300848c
Merge pull request #158 from duncathan/quickfixes
fixes pt. 4
2021-03-31 05:25:11 -06:00
duncathan 55c0c11a4b fixes credit event labels in flag_listing.txt 2021-03-31 04:57:21 -06:00
duncathan fd490d7b6f adds flag listing, removes empty file 2021-03-31 04:47:40 -06:00
duncathan 2ef19b8409 exports mrmap.bin after stage table changes
stage table was changed in 8fb4710c8e
2021-03-31 04:34:10 -06:00
duncathan a1f825681e fixes #106
adds debug cat entity to save players from softlocks which spawns upon saving/loading a save (both calling <MPJ0098) in situations where a softlock may be happening

also edits npc.tbl to make smoke not create smoke when deleted (lol) and calls <DNA0004 after the CMPs in MazeB and MazeO
2021-03-31 03:33:23 -06:00
duncathan e3efb864b1 sets credit missile launcher flag when 24-pack is your first pickup 2021-03-31 00:07:11 -06:00
duncathan f62d54fe98 character draws normally when drowning after core fight 2021-03-31 00:04:40 -06:00
duncathan 1f44720d31 closes message box during egg teleport 2021-03-30 23:46:19 -06:00
duncathan 6ffe9b3a84 commits the numahachi hint change properly lol 2021-03-30 23:44:24 -06:00
duncathan salt 2619ce5377
Merge pull request #157 from duncathan/quickfixes
finally adds the font file to fix cse2 compat fr
2021-03-30 05:42:11 -06:00
duncathan 063f2ce0a9 finally adds the font file to fix cse2 compat fr 2021-03-30 05:41:11 -06:00
duncathan salt 9c879e0c74
Merge pull request #155 from duncathan/quickfixes
fixes pt 3
2021-03-30 05:29:19 -06:00
duncathan 969353a277 malco will give you his item immediately if you have the reqs 2021-03-30 05:23:43 -06:00
duncathan 689130b536 fixes #141, adds prebuild hints for jenka and numahachi 2021-03-30 05:20:03 -06:00
duncathan ea3a022208 one last fix for red demon chest lol 2021-03-30 04:47:41 -06:00
duncathan 061a8d45e0 triggers room-load CMPs even when loading save files
holy shit I deadass used map flags
2021-03-30 03:22:09 -06:00
duncathan 29802c3cb4 adds airstream at bottom of outer wall when entering from above (#106) 2021-03-30 03:12:58 -06:00
duncathan 2195323b75 fixes #126, drowning sprites are in MyChar.bmp (with mimiga mask) 2021-03-30 02:56:09 -06:00
duncathan 8fb4710c8e fixes #114, adjusts bad ending credits sequence
also updates the mychar so that dragons are visible in unmodified mychar for testing
2021-03-29 20:10:37 -06:00
duncathan salt afbb107b3a
Merge pull request #148 from duncathan/credits
End Screen Overhaul
2021-03-29 19:03:08 -06:00
duncathan befa3d360f fix rusty key display 2021-03-29 19:02:46 -06:00
duncathan 7f97841714 Merge remote-tracking branch 'github/master' into credits 2021-03-29 18:47:54 -06:00
duncathan salt 4e3de4071f
Merge pull request #151 from duncathan/arsenal
overhauls arthur's arsenal
2021-03-29 18:41:08 -06:00
duncathan c063ee7b20 allows trading weapons on collection 2021-03-29 18:40:27 -06:00
duncathan cda8d3b568 converts arthur's arsenal to <SLP menu 2021-03-29 18:39:17 -06:00
duncathan salt 2bcd0a40aa
Merge pull request #154 from duncathan/quickfixes
more fixes
2021-03-29 18:36:36 -06:00
duncathan 03e1955b2f properly fixes red demon refight 2021-03-29 18:34:30 -06:00
duncathan 7c5fd92aa9 properly fixes jenka puppies 2021-03-29 18:28:07 -06:00
duncathan 5bb304d1f8 fixes #153 2021-03-29 18:26:44 -06:00
duncathan a325765c63 fixes #152 2021-03-28 21:02:40 -06:00
duncathan 00f29cb90c fixes #117 2021-03-28 20:56:33 -06:00
duncathan d1a270b234 properly fixes debug cat in pixel house 2021-03-28 20:49:15 -06:00
duncathan d3c73177e5 fixes further credit issues 2021-03-28 20:29:26 -06:00
duncathan salt e576e897db
Merge pull request #149 from duncathan/quickfixes
Bunch of small fixes
2021-03-28 18:25:45 -06:00
duncathan 9c4d3264a9 updates MALCO
- renames Puppy option for dailies
- properly applies sequence break settings
- adjusts weights to make for more friendly dailies on average
2021-03-26 06:01:05 -06:00
duncathan 5e08b8fcd1 updates MALCO
- renames Puppy option for dailies
- properly applies sequence break settings
- adjusts weights to make for more friendly dailies on average
2021-03-26 05:59:52 -06:00
duncathan 8a11ff4da7 fixes #122 2021-03-26 04:55:10 -06:00
duncathan 12f1dc1bb1 fixes death counter behavior when reloading new file 2021-03-25 20:29:23 -06:00
duncathan 8b0c4c0541 fixes counter bugs - item, HP, missile, and death counter all work now 2021-03-25 20:29:23 -06:00
duncathan a06d49d87f increases space between death counter and inventory display 2021-03-25 20:29:23 -06:00
duncathan 5acbe41fc2 implements death counter fully 2021-03-25 20:29:23 -06:00
duncathan e5ef1c7924 adds death counter to credits, initializes hp counter at spawn 2021-03-25 20:29:23 -06:00
duncathan b8628a7a2c inventory display in credits 2021-03-25 20:29:23 -06:00
duncathan f2158589ba allows negative vertical offsets in credits 2021-03-25 20:29:23 -06:00
duncathan b1e9b4d1c3 rename hack folder 2021-03-25 20:29:23 -06:00
duncathan 5b6b353fff increases stripper limit from 16 to 127 2021-03-25 20:29:23 -06:00
duncathan b5115d4d03 first pass at hacking credits to expand 16-entry on-screen limit 2021-03-25 20:29:23 -06:00
duncathan d1ecb67666 first attempt at inventory display in credits 2021-03-25 20:29:23 -06:00
duncathan 57b5f32705 tiny change to bad ending credits 2021-03-25 20:29:23 -06:00
duncathan 4351467e38 expands casts.bmp to 2x height 2021-03-25 20:29:23 -06:00
duncathan salt 4624065639
Merge pull request #150 from duncathan/hack-documentation
adds copies of hacks used
2021-03-25 19:13:27 -06:00
duncathan 6158433ed3 adds copies of hacks used 2021-03-25 19:12:53 -06:00
duncathan b481be5357 fixes #132 2021-03-25 16:37:41 -06:00
duncathan 6e6de0d7c1 fixes #118 2021-03-25 16:33:39 -06:00
duncathan d81b944e77 fixes #119 2021-03-25 16:29:22 -06:00
duncathan adb7135881 fixes #128 2021-03-25 16:28:30 -06:00
duncathan df8257a2aa fixes #129 2021-03-25 16:22:36 -06:00
duncathan 915856a71a fixes #131 (pixel house sparkly bug)
also changes sparklies for teleportation into debug cats
2021-03-25 16:21:04 -06:00
duncathan 707e44a398 fixes #134 2021-03-25 16:15:08 -06:00
duncathan 6442cc6000 fixes #144 2021-03-25 16:10:39 -06:00
duncathan salt 277e3e2c4c
Merge pull request #146 from HapaxL/pawprint_spot_hints
Pawprint Spot hint bug fix
2021-03-25 16:04:29 -06:00
duncathan salt 5f99facdd3
Merge pull request #147 from HapaxL/code_formatting
First Cave requirements reformatting
2021-03-25 16:04:13 -06:00
duncathan salt 5e7d3a6269
Merge pull request #145 from HapaxL/obj_dependent_seeding
fixes issue with 100% and Best Ending producing the same results with the same seed
2021-03-25 16:03:20 -06:00
duncathan bc5b2c657d update gitignore for more robust profile ignores 2021-03-15 20:22:11 -06:00
HapaxL 061a9ce57c added comments to not forget DO NOT FORGET 2021-03-02 11:17:43 +01:00
HapaxL 65cd5a1d8b reformatting first cave access requirements
in prevision of entrance rando, and also to remove redundancies
2021-03-02 11:10:55 +01:00
HapaxL 5a7fe8a25a fixed Pawprint Spot hint bug
fixed previously unnoticed King hint bug
2021-03-02 03:53:40 +01:00
HapaxL 67bf6706fc fixed issue with 100% and Best Ending producing the same results with the same seed.
also made it more efficient.
2021-03-02 03:05:05 +01:00
duncathan 0a12d846c5 changes name of puppy shuffling option 2021-01-28 22:07:11 -06:00
duncathan 10bfd01bac fixes map system in bad ending/normal ending 2021-01-28 21:48:44 -06:00
duncathan salt 60b512b365
Merge pull request #123 from HapaxL/sky_dragon_mychar
Smalrog
2021-01-28 21:06:43 -06:00
duncathan salt 90b64d8917
Merge pull request #124 from Giftfox/chaco-mychar
Chaco mychar added
2021-01-28 21:06:18 -06:00
duncathan salt 386bcc477b
Merge pull request #125 from Giftfox/cast-change
Robin contributor icon change
2021-01-28 21:05:12 -06:00
duncathan salt 51c8ad2a44
Merge pull request #130 from HapaxL/puppycarryfixes
Puppy carry sprite fixes
2021-01-28 21:04:45 -06:00
HapaxL 9209f9992e fixes puppy carry sprite being displayed at the beginning of normal ending (helicopter scene) 2020-12-16 02:40:12 +01:00
HapaxL 420e506cf0 various minor changes for puppy carry sprites:
- puppy appears immediately when you obtain it
- puppy disappears immediately when you give all puppies to jenka
- puppy is always behind curly when both are carried
- grabbing curly immediately puts her in front
2020-12-15 09:33:25 +01:00
HapaxL dcae310995 removes carried puppy sprite in jenka's house after the all-puppies cutscene 2020-12-13 11:19:55 +01:00
HapaxL fb54ffdef6 removes floating puppy from normal ending 2020-12-13 11:18:11 +01:00
HapaxL f06245f2d3 replaces default Whimsical Star sprites for the Misery MyChar. 2020-12-07 05:36:55 +01:00
Robin 31a65e1e1d Robin contributor icon change 2020-12-06 20:40:49 -05:00
Robin e630e62e02 Chaco mychar added 2020-12-06 19:41:20 -05:00
HapaxL 92c82f20a9 Merge branch 'master' of https://github.com/cave-story-randomizer/cave-story-randomizer.git into sky_dragon_mychar 2020-12-07 01:13:27 +01:00
HapaxL afb6fefb93 replaces default puppy with Smalrog in Misery's MyChar 2020-12-07 01:09:25 +01:00
duncathan salt e4594fbb82
Merge pull request #116 from duncathan/camp
Makes Camp chest accessible from inside Camp in Camp seeds
2020-12-06 18:06:55 -06:00
duncathan salt 7bfeb7952b
Merge pull request #112 from HapaxL/sky_dragon_mychar
adds sky dragon to MyChar (for normal ending)
2020-12-06 18:06:30 -06:00
HapaxL 194641f06d adds sky dragon to MyChar (for normal ending) 2020-12-07 00:57:39 +01:00
duncathan f3d666efef Makes Camp chest accessible from inside Camp in Camp seeds
fixes #105
2020-12-06 17:57:10 -06:00
duncathan salt 2708aef353
Merge pull request #111 from duncathan/hints
improves hints, fixes #109
2020-12-06 17:43:35 -06:00
duncathan salt b589934e71
Merge pull request #103 from Robinnium/master
Added <WAI0040 to reservoir -> waterway confirmation
2020-12-06 17:43:10 -06:00
duncathan 75a69441fe improves hints, fixes #109 2020-12-06 17:40:54 -06:00
Robin 4aa35092a3 Added <WAI to waterway -> labyrinth confirmation, stopped relevant sparkly from vanishing 2020-12-06 17:35:53 -05:00
duncathan salt 3c71d0ac9b
Merge pull request #104 from Robinnium/puppy-side-room
Side room dog exists again
2020-12-06 16:29:38 -06:00
duncathan salt d85e02a06b
Merge pull request #100 from HapaxL/master
add option to remove falling blocks in Hell B2
2020-12-06 16:26:41 -06:00
duncathan salt 65b4d76a45
Merge pull request #110 from duncathan/oneliners
a few one-line fixes
2020-12-06 16:26:16 -06:00
duncathan 382fffdca9 a few one-line fixes 2020-12-06 16:07:48 -06:00
Robin c443f33dad Side room dog exists again 2020-12-06 16:22:20 -05:00
Robin 09eae80dfb Added <WAI0040 to reservoir -> waterway confirmation 2020-12-04 01:37:16 -05:00
HapaxL 4ca549f1e7 Merge branch 'master' of https://github.com/cave-story-randomizer/cave-story-randomizer.git
# Conflicts:
#	pre-edited-cs/data/Stage/Hell2.pxe
2020-12-02 09:17:25 +01:00
duncathan salt b71cf74e73
Merge pull request #99 from Fayti1703/patch-cse2
Fix mrmap.bin
2020-10-18 05:53:32 -06:00
duncathan salt 4b14645fb9
Merge pull request #98 from Fayti1703/patch-puppies
Allow puppies to be visibly carried everywhere
2020-10-18 05:53:15 -06:00
HapaxL 900992db5f add option to remove falling blocks in Hell B2
thank god
2020-07-16 22:39:32 +02:00
Kayo 0213e35cb4 Fix mrmap.bin 2020-03-15 22:49:38 +01:00
Kayo 657670737c Add Puppy entities to all maps 2020-03-15 22:48:46 +01:00
Kayo 68aa8ec09d Add Puppies to MyChars 2020-03-15 22:47:44 +01:00
Kayo 4ef9558ea1 Modify carried puppy to use MyChar.bmp 2020-03-15 22:45:37 +01:00
duncathan 2c5ad7dafb adds misery mychar courtesy of hiino 2020-03-14 00:06:46 -06:00
duncathan salt f8eedf4e28
Merge pull request #97 from cave-story-randomizer/dail
fix dailies
2020-03-13 03:48:00 -06:00
duncathan 8fb4630a62 cron only 2020-03-13 03:46:03 -06:00
duncathan b4c3799999 fix inconsistencies between dailies 2020-03-13 03:42:12 -06:00
duncathan 67e3154b97 fix 2020-03-13 03:31:02 -06:00
duncathan 4e697ff787 oop 2020-03-13 03:26:02 -06:00
duncathan 4c0b005e18 idk what i broke lol 2020-03-13 03:25:12 -06:00
duncathan 9a7dac435d go back to what worked 2020-03-13 03:01:43 -06:00
duncathan e1b24f451d what happened to travis 2020-03-13 02:46:23 -06:00
duncathan bc8dbbd627 travis issue? 2020-03-13 02:37:44 -06:00
duncathan 77ee541c56 increase version number 2020-03-13 02:23:17 -06:00
duncathan 763d43cd4b turns peri's image into a cs edit 2020-03-13 02:19:16 -06:00
duncathan salt 0606e54105
Merge pull request #95 from duncathan/linux
fix linux cse2
2020-03-13 02:05:13 -06:00
duncathan 2efcf8e911 fix linux cse2 2020-03-13 02:03:31 -06:00
duncathan 5645fe3064 update travis for release deployment (mac and linux only)
fix travis... again


update travis yml to match spec


skip cleanup


continued travis work for releases


reorder travis


messed up syntax


one day i'll figure this shit out


?


let's walk it back a step


icon replacement for windows


diff wine


seriously


maybe this way?


getting there


wineboot


run wine through xvfb


diff repo


apt-key


xvfb -a


wineprefix?


is sudo killing me


try try try


wineboot


no more xvfb


wineboot again


maybe?


mkdir


im just throwin things at the wall


docker


docker 2


wineconsole


WINDOWS???


fix


package name


is this necessary?


luarocks directory


PROPER proper lua directory


7zip x


debugs


cmd


cmd.exe


escape?


more cmd


bat file


more cmd.exe


hopefully this caches stuff


exact paths


install lua through pacman


mw


different luarocks


ooops


pray for cache


try again


conditionals


trailing semi


verbatim block


better cache


keep tryin


fix extract


use chocolate lua


update env


fafffffff


af


silly


windows style paths


self lua


windows path


this is a hack


this is all magic


hererocks again???


path


bat


ooooops


oops again


more path nonsense


lol


?


i don't understand


hmmm
Auto stash before rebase of "github/master"
afaooigasb


mingw


try try again


manual install libzip


i give up
2020-03-13 01:34:17 -06:00
duncathan 55fda5d4f9 increase version number 2020-03-08 22:31:19 -06:00
duncathan salt 79dcf36934
adds out of the box support for cse2 (#93)
Co-authored-by: duncathan <dunc@duncathan.com>
2020-03-08 22:25:16 -06:00
duncathan salt e77239387c
working on travis builds (#92)
* working on travis builds

* fix

* sudo

* install libzip

* ?

* dev

* hererocks

* idk man

* asda

* reorder

* source?

* sudo again

* etsts

* why won't activate work

* su

* no su

* manual path

* whoops

* use the proper build dir

* set up deployment (hopefully)

* proper release directory

* jk what is it

* should be this

* forgot one

Co-authored-by: duncathan <dunc@duncathan.com>
2020-03-08 22:07:58 -06:00
duncathan 13a503e696 hopefully fixes #87 2020-03-08 17:55:24 -06:00
duncathan 866e9d3ee0 special hints: fixes #89, fixes #83 2020-03-08 17:47:57 -06:00
duncathan 8754ed6b9d credits fixes: fixes #90, fixes #91, fixes #88 2020-03-08 16:59:23 -06:00
duncathan 03c082ae5b makes 100% completable at balcony 2020-03-08 16:27:24 -06:00
duncathan salt 734f772164
adds daily challenges, posted to discord via ~~travis~~MALCO (#86)
* sets up travis for daily challenges

* separate push from cron

* whoops

* windows env

* i have no idea how to effectively test travis builds

* sdgahhetheah

* tests

* possible fix

* we'll get there one day

* this is the one

* trying something different

* why not

* sdgsgs

* please?

* yet another angle

* why why hwhy why

* oh ok this makes sense tho

* i'm silly

* aafasfadf

* wtf is xvfb fr

* screen?

* testing something...

* ?

* idk man

* timeout

* is it a zip thing

* this might be it

* oh we're so close

* quote?

* alternate method to read

* for the record i am definitely squashing before this gets merged

* more tests

* try something new

* how bout this one. donk

* to be clear i have no idea how bash syntax works

* hmmmm

* maybe this way

* keep tryin

* tst

* verbosity

* one last tiiiiiime, relax have a drink with me

* one last tiiiime, and if we get this right

* we're gonna teach em how to say goodbye

* YOUUUU AND IIIIIIIII

* (drum fill)

* pick up a pen start writing

* i wanna talk about what i have learned

* the hard-won wisdom i have earned

* i have no idea

* lol

* is it quotes' fault

* stack echange blowing my mind rn

* @filename be like

* this is the one

* should be the final update to daily

* fix bash error

Co-authored-by: duncathan <dunc@duncathan.com>
2020-03-08 16:24:11 -06:00
duncathan 9b24429db7 nice 2020-03-08 14:15:37 -06:00
duncathan salt b4de34f4c8
Merge pull request #84 from periwinkle3125/platform-independent-sharecodes
Change sharecode format to be platform-independent
2020-03-08 14:12:25 -06:00
duncathan salt ba8a2f61d3
Merge pull request #85 from periwinkle3125/fix-linux
Fix running on Linux
2020-03-08 14:11:48 -06:00
duncathan dc7111f0c3 optimizes map sys script space to prevent TSC overflow in non-freeware 2020-03-08 14:07:47 -06:00
Perry Lee a924fbd63e Fix running on Linux
I think.
Hopefully.
2020-03-08 16:07:47 -04:00
periwinkle 23be631cac Make sharecodes platform-independent
Resolves the issue of sharecodes generated with the 32-bit version
of LÖVE being incompatible with the 64-bit version, and vice versa.

This also happens to shorten the sharecodes by removing all of the
"A"s at the beginning. :)
2020-03-07 21:11:54 -05:00
duncathan 58f02f9180 item collects now display the bubbles, and all text is displayed fast 2020-03-07 05:54:23 -06:00
duncathan 078b9674bd hash items display under timer on title screen 2020-03-07 05:33:39 -06:00
duncathan 068a98074c fix beast fang in 100% 2020-03-07 05:33:23 -06:00
duncathan 7e9f5d697a update peri's credit image 2020-03-07 04:04:43 -06:00
duncathan f58357832d generate a hash for the title screen for easy verification in races 2020-03-07 01:58:03 -06:00
duncathan af8421e2a5 fix inaccessible last cave 2020-03-06 18:00:08 -06:00
duncathan 03cf184071 increase version number 2020-03-06 07:04:29 -06:00
duncathan 67adcb6639 adds version checking for cave story, to ensure folders are valid 2020-03-06 06:28:38 -06:00
duncathan e52e63f8e8 guarantee arthur's key hint in camp/arthur mode 2020-03-06 05:54:52 -06:00
duncathan 9432cdcea3 minor fixes 2020-03-06 05:51:28 -06:00
duncathan 57bce5fd86 adds 100% to UI 2020-03-06 03:48:33 -06:00
duncathan 6145e1e234 adds ingame checks for 100% items 2020-03-06 03:40:24 -06:00
duncathan a75676ad2d adds a item counter to the map system 2020-03-06 03:07:22 -06:00
duncathan 16f1172afc adds a button to randomize settings 2020-03-06 00:45:06 -06:00
duncathan 69d9afdd5e shuffles mr little 2020-03-06 00:24:14 -06:00
duncathan c894799a5b fixes visual error in hint text 2020-03-06 00:13:57 -06:00
duncathan 9acc690ccf mrs little and malco give hints about their checks 2020-03-06 00:01:39 -06:00
duncathan 9142ee6341 allow sisters refight in any objective 2020-03-05 22:14:56 -06:00
duncathan e22350a2e8 consistently automates ending scenes 2020-03-05 20:10:59 -06:00
duncathan 1e569ebe95 gives momo proper text for bad ending and adjust's last cave door text 2020-03-05 19:53:29 -06:00
duncathan c5ee18c2a6 completes credit item counter 2020-03-05 08:24:48 -06:00
duncathan ede8e618c1 item counter now increments when any item is collected 2020-03-05 05:47:17 -06:00
duncathan 25ecbca6d2 credits display the value in the incrementer (as num of items collected) 2020-03-05 05:41:24 -06:00
duncathan ca1f1bc51e adds an incrementer to head.tsc to count number of items collected 2020-03-05 02:11:16 -06:00
duncathan 8a6a8ac0ed adds randomizer credits 2020-03-04 23:25:42 -06:00
duncathan b275ec14ad path from reservoir to dark place opens when you beat ironhead 2020-03-04 23:25:42 -06:00
duncathan 655c71a058 fixes credit music timing 2020-03-04 23:25:42 -06:00
duncathan salt 51b633ec13
Merge pull request #82 from periwinkle3125/restore-omega-dialogue
Restore Misery dialogue before Omega fight
2020-03-04 19:17:58 -06:00
duncathan 4b75ff6abc shuffles credit music! 2020-03-04 19:15:06 -06:00
duncathan 19c6880f9a fixes crash on credits 2020-03-04 19:11:05 -06:00
duncathan 1914775e22 outer wall requires a weapon or at least 9 hp to climb without flight 2020-03-04 18:40:31 -06:00
periwinkle 18d95f204f Add back Curly reaction at start of Sand Zone 2020-03-04 19:34:31 -05:00
periwinkle b4927ea36e Restore Misery dialogue before Omega fight 2020-03-04 19:05:26 -05:00
duncathan e44f606479 adds missing cue 2020-03-04 02:58:00 -06:00
duncathan e974d97c7f compile fix 2020-03-04 00:08:55 -06:00
duncathan 7ed589966e door to last cave warns you if you don't have all requirements 2020-03-03 23:48:39 -06:00
duncathan 9ebbbfaa15 momorin now tells you if you're ready for the throne room 2020-03-03 22:40:16 -06:00
duncathan 9378373661 fixes a couple tsc errors 2020-03-03 22:16:47 -06:00
duncathan 1032d69320 adds missing passage cue 2020-03-03 22:13:11 -06:00
duncathan c0ce91d1c6 main ui updates 2020-03-03 20:26:46 -06:00
duncathan 13e531c354 adds missing momo cue 2020-03-03 09:25:01 -06:00
duncathan 435d5347f0 fix bad end hint logic 2020-03-03 08:34:05 -06:00
duncathan dc6ac6040a tweaks id card hints 2020-03-03 08:30:50 -06:00
duncathan salt f6efe15df0
Merge pull request #81 from duncathan/hints
adds randomized hints!!!!
2020-03-03 08:23:05 -06:00
duncathan efea98845d adds randomized hints!!!! 2020-03-03 08:20:04 -06:00
duncathan salt 03afa18131
Merge pull request #80 from duncathan/smallfeatures
adds music shuffle
2020-03-03 01:22:13 -06:00
duncathan 5b172e650c adds music settings to saved settings 2020-03-03 01:21:07 -06:00
duncathan 4426eb69ec adds ui for music settings 2020-03-03 01:08:27 -06:00
duncathan 46eb8dc016 adds music randomization 2020-03-02 23:02:23 -06:00
duncathan a09179fc56 implements org loading hack 2020-03-02 19:57:07 -06:00
duncathan 730d7b92fd adds orgs in prep for an org loading hack 2020-03-02 18:19:07 -06:00
duncathan 068121a278 tiny logic update to prevent the most edge case of softlocks
imagine if all weaponSNs were somehow locked behind first cave in arthur mode
2020-03-02 06:04:25 -06:00
duncathan 174f3c5f4b permits refighting the sisters in all bosses if they were skipped 2020-03-01 22:29:10 -06:00
duncathan 69c8a0e2b8 adds signs in labyrinth shop showing what you need for each chest 2020-03-01 21:05:50 -06:00
duncathan ce7ee57279 removes motionless king/toroko from mimiga village 2020-03-01 20:42:52 -06:00
duncathan 49a1689010 makes labyrinth B always climbable in Camp mode 2020-03-01 19:43:25 -06:00
duncathan beeae91283 text change 2020-03-01 04:51:46 -06:00
duncathan a27745465f makes last cave accessible via rocket skip if rocket skip is enabled 2020-03-01 04:38:13 -06:00
duncathan 693b04b8cf fixes double gunsmith in arthur/camp modes 2020-03-01 04:26:43 -06:00
duncathan 1e4d875f1c fixes duplicate curlys in waterway 2020-03-01 04:22:41 -06:00
duncathan salt 6ba47caa5f
Merge pull request #79 from duncathan/sequencebreaks
adds configurable sequence break logic
2020-03-01 04:11:51 -06:00
duncathan 98ef3ca075 implements sharecodes 2020-03-01 04:03:00 -06:00
duncathan b4e08a2d07 implements UI and settings for sequence breaks 2020-03-01 03:32:16 -06:00
duncathan 021bac9307 adds optional logic for sequence breaks 2020-03-01 03:32:06 -06:00
duncathan salt 9eb5b6e4b1
Merge pull request #78 from duncathan/spawnpoints
adds arthur's house and camp as spawn points
2020-02-29 22:31:46 -06:00
duncathan 58a771289b updates a couple weapon reqs 2020-02-29 22:31:06 -06:00
duncathan 1a020162b0 makes weapons other than MG successfully generate, adds snake (camp) 2020-02-29 22:28:38 -06:00
duncathan 6d1c805c56 more map fixes, backtracks, etc 2020-02-29 20:23:53 -06:00
duncathan f00114143d adds icons to startpoints 2020-02-29 04:50:31 -06:00
duncathan 175b4790d5 gives hp, locks arthur's front door 2020-02-29 04:29:03 -06:00
duncathan 523fe7ef65 generation works! 2020-02-28 17:50:30 -06:00
duncathan ed6234a1c0 possible to backtrack from mimiga village to labyrinth through waterway 2020-02-28 17:31:24 -06:00
duncathan daf9d4c4b6 implements UI and increases randomness 2020-02-28 17:23:21 -06:00
duncathan d2ec0d633f adds two spawn points, arthur's house and camp 2020-02-28 16:58:29 -06:00
duncathan e1811934d4 regions get logged in proper order 2020-02-28 15:52:01 -06:00
duncathan 2189bee2f5 more fix 2020-02-28 15:23:59 -06:00
duncathan ea84cf35ec quick fix 2020-02-28 08:36:19 -06:00
duncathan salt a8eb4e12ed
Merge pull request #77 from duncathan/mychars
adds 6 new mychars to choose from!
2020-02-28 08:29:51 -06:00
duncathan e8a8abbecd adds working mychar selection! 2020-02-28 07:48:45 -06:00
duncathan ff6701d60c adds mychar selector to settings menu UI 2020-02-28 07:22:56 -06:00
duncathan b73c59a7d9 shrink objectives into a stepper, and make steppers good 2020-02-28 07:04:44 -06:00
duncathan salt 4e1dbd19cf
Merge pull request #76 from duncathan/sharecode
Adds sharecodes
2020-02-28 04:54:34 -06:00
duncathan f8f994b4ae can now import sharecodes 2020-02-28 04:37:33 -06:00
duncathan d7969ecd65 can now copy sharecode after randomization 2020-02-28 03:28:46 -06:00
duncathan ee3c595077 creates a unique sharecode for any given combination of settings 2020-02-28 03:20:05 -06:00
duncathan salt 45fc1300fc
Merge pull request #75 from duncathan/mimask
mimiga mask and boosters are no longer incompatible
2020-02-28 01:16:16 -06:00
duncathan 45dcc77a17 mimiga mask and boosters are no longer incompatible 2020-02-28 01:13:18 -06:00
duncathan salt a40be80975
Merge pull request #70 from duncathan/objectives
adds new objectives: bad ending, normal ending, and all bosses
2020-02-27 23:55:02 -06:00
duncathan cb2edb55fb makes settings persist between instances 2020-02-27 23:54:37 -06:00
duncathan 6ceb103b15 adds bad ending 2020-02-27 23:19:21 -06:00
duncathan salt 9d1a2fc8c6
Merge pull request #74 from periwinkle3125/super-missile-backup
Make the second Super Missile chest only upgrade when the first one didn't
2020-02-27 21:03:45 -06:00
duncathan 8e997d0e45 makes ironhead give you something different during all bosses 2020-02-27 21:03:18 -06:00
periwinkle 0f4186bde8 Make the 2nd Super Missile item strictly a backup Super Missile upgrade
Now it's just a standard missile expansion, but turns into a Super Missile
upgrade only when the main Super Missile item was already collected as a
regular Missile Launcher.
2020-02-27 20:12:15 -05:00
duncathan d3cb2402ce Merge remote-tracking branch 'github/master' into objectives 2020-02-27 19:01:29 -06:00
duncathan salt 087da92f42
Merge pull request #73 from duncathan/doubleguns
fixes duplicate weapons
2020-02-27 18:53:41 -06:00
duncathan 1e09dad380 fixes duplicate weapons 2020-02-27 18:53:22 -06:00
duncathan 36f282df63 renames game mode to objective 2020-02-27 18:21:21 -06:00
duncathan salt 5c530d318e
Merge pull request #72 from periwinkle3125/fix-lab-i-quote
Proper fix for double Quote in Lab I
2020-02-27 18:15:53 -06:00
duncathan ca655e2e55 actually adds ALL bosses.... 2020-02-27 18:14:55 -06:00
periwinkle 823a9116c4 ACTUALLY fix double Quote when loading into Lab I before defeating Toroko+
Also another text speedup that fell through the cracks
2020-02-27 19:03:57 -05:00
duncathan 9e6ab35470 adds beast fang, to keep a log of bosses 2020-02-27 18:03:38 -06:00
duncathan edee93e065 fixes best ending requirements 2020-02-27 17:03:24 -06:00
duncathan ba3fc3d86f updates hell door to only open on best ending or all bosses 2020-02-26 22:55:01 -06:00
duncathan bf10950a1e Merge remote-tracking branch 'github/master' into objectives 2020-02-26 13:29:57 -06:00
duncathan salt b12b81a856
fixes puppy stuff (#71)
* adds support for puppysanity to randomizer

* makes puppy hat only spawn in sand zone

* fixes crash when collecting more than one puppy
2020-02-26 13:20:34 -06:00
duncathan 1317d93870 applied flags to each boss 2020-02-26 02:04:46 -06:00
duncathan d9a60fc3ce disable bad ending for now 2020-02-26 01:52:08 -06:00
duncathan c7f8d3a66a generation works! 2020-02-26 01:46:14 -06:00
duncathan 3035764ad4 enables basic generation for objectives 2020-02-26 01:34:19 -06:00
duncathan 09e4883acf initial setup for objectives 2020-02-26 01:22:50 -06:00
periwinkle afd6e3405b
Add back some of the original dialogue (#68)
* Add dialogue to Balrog 1 fight

* Give a short dialogue to Jack

* Add dialogue to Igor

* Add dialogue to Sue (Egg No. 00)

* Add dialogue in Power Room

* Add dialogue to bomb cutscene

* Add initial Curly encounter dialogue

* Add pre-Curly fight dialogue
Also shorten the leftmost Mimiga's dialogue in case a player
accidentally talks to them

* Add pre-Omega boss dialogue

* Add Jenka2 dialogue

* Add a small amount of pre-Toroko+ cutscene dialogue

* Add dialogue to Labyrinth entry cutscene

* Add pre-Balrog (Labyrinth) fight dialogue

* Add dialogue to Core cutscenes

* Tweak Waterway Cabin cutscenes

* Add a line of dialogue before the Ma Pignon fight
I would very much appreciate a cue before a boss spawns right
in front of my face, thank you very much :3

* Remove the line about Sunstones
Nobody even knows what they are, anyways (Keepo)

* Add a little more dialogue to Kazuma (Egg No. 00)

* Restore Itoh's signature line

* Add dialogue to boss rush cutscenes

* Add some ending scene dialogue
Also, there's not really any need for the ending cutscenes to be
<SAT'ed (and the best ending one isn't anyways), so I removed it
from the normal ending cutscene as well.

* Add <TURs in Prefab House

* Tweak Balfrog cutscene dialogue
The narrative I'm going for here is "Misery shows up and tries to
start a conversation/confrontation, but then Balrog drops in
suddenly, so Misery abruptly ends the conversation, turns Balrog
into a frog, and then silently leaves".
Dunno if this quite achives that, but it's the best I could do
using only snippets of the vanilla dialogue.

* Adjust wait time after "It won't STOOOOOOOOP!!"

* Give Curly something to say upon entering Dark Place
Because having her stay silent doesn't quite feel right

* Re-<SAT best ending Seal Chamber cutscene
I'm still not satisfied with how the best ending sequence as a whole
is handled, but I don't know how to make it better.

* Move Puu Black boss triggers lower (for speedrunning purposes)
In the vanilla speedruns, the strat for Puu Black is to shoot
four Fireballs while jumping to the chest from the door,
so that the boss falls right into them when it spawns.
In rando, there's a bit of a delay between opening the chest
and the boss spawn, so this strat isn't quite as effective.
Moving the triggers down makes the boss spawn timing a little
closer to vanilla, so that the speedrun strat actually works.

* Shorten dialogue and add <TURs in a few (mostly non-mandatory) places
This doesn't cover all of them, but it does cover all of the remaining
unchecked boxes in cave-story-randomizer/cave-story-randomizer#49.

* Work around <TUR text-scrolling bug in Jenka's dialogue

* Add more humor
by taking (and/or omitting) fragments of the vanilla dialogue in
amusing ways

* Fix some bugs that I accidentally created (oops)
Also fix Dr. Gero's dialogue (he was saying "Go look for some
medicine" even after giving him the Cure-All), and remove the
sparkly thing at the bottom of Plantation (Kanpachi was supposed
to have fished it out).

* Speed up dialogue in a couple more places

* Shorten Ballos's dialogue

* Add the same <WAI0025 delay after item gets to the missile expansions

* More delay tweaks

* A couple more text speedups
I should really stop doing this before it gets too out of hand :P

* Alex Jebailey had nothing to do with this
But heavens, that felt good :3
2020-02-26 00:25:40 -06:00
duncathan f798197223 makes puppy hat only spawn in sand zone 2020-02-25 23:25:36 -06:00
duncathan df3aff4628 adds support for puppysanity to randomizer 2020-02-25 23:25:36 -06:00
periwinkle 4b5b26824d Make Super Missiles strictly an upgrade to the regular Missile Launcher
Turns out that having only 5 Super Missiles as your only weapon is a pain.
Also, it causes problems in cases when there's a required progression item in
the upper Sand Zone Polish spot and no other accessible block-breaker weapon
that you can use to get to it.
(It's still technically possible to reach that item location in such a
scenario, but it requires grinding the missiles up to Level 3, as well as
some luck and a couple of precise jumps. In other words, it sucks.)

The alternative is starting with 10 Super Missiles instead of 5 if you get
the Super Missile chest first, but that would give you an extra 5 missiles,
letting you have 59 at the end instead of 54, which feels wrong.
2020-02-25 23:16:50 -06:00
duncathan 9d42f9be93 fixes generation errors if CS+ folder was ever dropped onto the window 2020-02-25 20:06:43 -06:00
Brian Christian 4c8e6933f3 Update tsc notes.txt 2020-01-17 13:50:10 -06:00
Brian Christian 5e83a639b6 Change csresearch.txt into markdown format 2020-01-17 13:50:10 -06:00
2615 changed files with 56987 additions and 17924 deletions

32
.github/workflows/daily.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: "MALCO's Daily Challenge"
on:
schedule:
- cron: '53 15 * * *' # 9:53 AM, UTC-6
workflow_dispatch:
jobs:
Build:
runs-on: '${{ matrix.os }}'
strategy:
matrix:
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: 'stable'
- name: Install dependencies (Ubuntu)
if: runner.os == 'Linux'
run: |
sudo add-apt-repository -y ppa:bartbes/love-stable
sudo apt-get -q update
sudo apt-get install -y xvfb love
- name: Generate Daily
env:
WEBHOOK: ${{ secrets.WEBHOOK }}
run: |
cd $GITHUB_WORKSPACE
sudo xvfb-run -a --server-args="-screen 0 1024x768x24" love src --daily
cat daily.txt
curl -H "Content-Type: application/json" -X POST -d @daily.txt "$WEBHOOK"

137
.github/workflows/python.yml vendored Normal file
View file

@ -0,0 +1,137 @@
name: Python Package
on:
workflow_dispatch:
pull_request:
push:
branches:
- '*'
tags:
- '*'
jobs:
mypy-required:
runs-on: 'ubuntu-latest'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Workaround for worktree config
run: git config --unset-all extensions.worktreeConfig || true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "pip"
- name: Install Python packages
run: |
python -m pip install -e .
python -m pip install mypy
- name: Mypy on required files
uses: tsuyoshicho/action-mypy@v5
with:
github_token: ${{ secrets.github_token }}
# Change reviewdog reporter if you need [github-pr-check,github-check,github-pr-review].
reporter: github-check
setup_method: nothing
target: --config-file=pyproject.toml
fail_on_error: true
install_types: false
mypy-modified:
runs-on: 'ubuntu-latest'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Workaround for worktree config
run: git config --unset-all extensions.worktreeConfig || true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "pip"
- name: Install Python packages
run: |
python -m pip install -e .
python -m pip install mypy
- name: Mypy on modified files
uses: tsuyoshicho/action-mypy@v5
with:
github_token: ${{ secrets.github_token }}
# Change reviewdog reporter if you need [github-pr-check,github-check,github-pr-review].
reporter: github-check
setup_method: nothing
level: warning
fail_on_error: false
install_types: false
build:
runs-on: ubuntu-latest
name: Wheel
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: 'recursive'
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.10"
- name: Install Python packages
run: python -m pip install --upgrade build pip
- name: build wheel
run: python -m build --wheel
- name: build sdist
run: python -m build --sdist
- name: Store the packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist
pypi:
runs-on: 'ubuntu-latest'
needs:
- mypy-required
- build
if: ${{ github.event_name != 'pull_request' }}
steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Publish 📦 to TestPyPI
if: ${{ github.ref == 'refs/heads/patcher' }}
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.testpypi_password }}
repository_url: https://test.pypi.org/legacy/
- name: Publish 📦 to PyPI
if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.pypi_password }}

33
.github/workflows/workflow-validate.yml vendored Normal file
View file

@ -0,0 +1,33 @@
name: Check Workflow Files
on:
push:
branches:
- main
merge_group:
pull_request:
defaults:
run:
shell: bash
jobs:
actions:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install action-validator with asdf
uses: asdf-vm/actions/install@v3
with:
tool_versions: |
action-validator 0.5.1
- name: Lint Actions
run: |
find .github/workflows -type f \( -iname \*.yaml -o -iname \*.yml \) \
| xargs -I {} action-validator --verbose {}

27
.gitignore vendored
View file

@ -1,13 +1,22 @@
data/*
notes/*
pre-edited-cs/Config\.dat
pre-edited-cs/Doukutsu\.exe\.blbkp
pre-edited-cs/Profile\.dat
pre-edited-cs/window\.rect
pre-edited-cs/Profile\.dat\.bkp
*Copy/
venv/
build/
dist/
cave_story_randomizer.egg-info/
**/__pycache__
pre_edited_cs/**/Doukutsu\.exe\.blbkp
pre_edited_cs/**/Profile*
pre_edited_cs/**/window\.rect
pre_edited_cs/data/version.txt
pre_edited_cs/freeware/Doukutsu_backup.exe

View file

@ -1,23 +0,0 @@
# image: shru/arch-love-release:heavy
image: asmfreak/love-release:latest
variables:
ITCHIO_USER: shru
ITCHIO_GAME: cave-story-randomizer
CHANNEL: $CI_COMMIT_REF_NAME
stages:
- build-release
build-and-release:
stage: build-release
when: manual
script:
# I - Build
- cd src
- love-release -W
# II - Release to itch.io
- cd releases
- FILE=$(ls *-win32.zip) ;
zip -d "$FILE" "*/lovec.exe" "*/changes.txt" "*/readme.txt" "*.ico" ;
butler push "$FILE" "$ITCHIO_USER/$ITCHIO_GAME:win32-$CHANNEL"

18
.pre-commit-config.yaml Normal file
View file

@ -0,0 +1,18 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.8.3
hooks:
- id: ruff
args: [ --fix, --exit-non-zero-on-fix ]
- id: ruff-format
- repo: https://github.com/henriquegemignani/jsonschema-to-typeddict
rev: v1.1.1
hooks:
- id: jsonschema-to-typeddict
files: caver/schema/schema.json
args: [ --output-path, caver/schema/types.py, --root-name, CaverData ]

8
.tscrc.json Normal file
View file

@ -0,0 +1,8 @@
{
"setup": {
"looseChecking": {
"events": true,
"arguments": true
}
}
}

View file

@ -1,52 +1,3 @@
# Cave Story Randomizer [Open Mode]
The Cave Story Randomizer shuffles the location of every item in Cave Story, creating a new experience each time you play! The randomizer has logic in place to ensure that you can always reach every item and finish the game. Get started by heading to the [releases page](https://github.com/cave-story-randomizer/cave-story-randomizer/releases) and downloading the most recent version! If you find yourself stuck, wanting to talk about the hilarious location you found the panties in, or just plain enjoying the game please consider joining our [official Discord server](https://discord.gg/7zUdPEn) and hanging out!
## Main differences
Note that there are a few key differences from the vanilla game in order to improve the playing experience:
- All 5 teleporter locations in Arthur's House are active from the beginning of the game
- All other teleporters from the vanilla game are active and linked to one another at all times
- A teleporter between Sand Zone (near the Storehouse) and Labyrinth I has been placed and can be activated in one of two ways:
1. Defeating Toroko+
2. Using the teleporter from the Labyrinth I side
- Most cutscenes have been abridged or skipped entirely
- Jellyfish Juice can be used an infinite number of times
- You can carry as many as 5 puppies at once: Jenka will only accept them once you've collected all 5
- By the way, all 5 puppies will be located somewhere in the Sand Zone
- Certain items that are received from NPCs have been placed in chests:
- Labyrinth B (Fallen Booster)
- Labyrinth Shop
- One requiring the Machine Gun to open
- One requiring the Fireball to open
- One requiring the Spur to open
- Jail no. 1
- Storage? (Ma Pignon)
- This chest requires saving Curly in the Waterway to open
- If you don't have Curly's Air Tank after defeating the Core, the water will not rise and you may leave without dying
- Curly cannot be left behind permanently in the Core; the shutter will never close once the boss has been defeated
- The jump in the Waterway to save Curly has been made much easier
- Ironhead will always give you his item on defeat (but there's still a special surprise if you defeat him without taking damage!)
- Kazuma will only open the door between Egg no. 0 and the Outer Wall if you save him in Grasstown
- Kazuma's door can be blown down from both the outside and the inside
- Entering the Throne Room to complete the game requires doing three things:
1. Saving Sue in the Egg Corridor
2. Obtaining the Booster 2.0
3. Obtaining the Iron Bond
## Help me!
If you find yourself stuck, here are a few common pitfalls:
- Remember that the Jellyfish Juice can quench more than one fireplace
- The Graveyard can only be accessed if you obtain the Silver Locket and see Toroko get kidnapped
- The Hermit Gunsmith will wake up and give you an item if you defeat the Core and show him his gun
- The western side of the Labyrinth can be accessed without flight if you defeat Toroko+
- The Plantation can be accessed without the Teleporter Room Key if you save Kazuma and teleport in or climb the Outer Wall
- The Waterway can be accessed without the Cure-All by using the teleporter in the Labyrinth Shop
- There may be a required item in the Last Cave (Hidden) as a reward for defeating the Red Demon
If you're still stuck, join our [official Discord server](https://discord.gg/7zUdPEn) and ask for help in there!
## Credits
- Original Cave Story Randomizer by shru: https://shru.itch.io/cave-story-randomizer
- Font: https://datagoblin.itch.io/monogram
- Icon: Bubbler (@Ethan#6397)
A patcher for randomizing Cave Story. If you want to play, check out [Randovania](https://github.com/randovania/randovania)!

18
__pyinstaller/__init__.py Normal file
View file

@ -0,0 +1,18 @@
import os
# Functions
# =========
#
# .. _get_hook_dirs:
#
# get_hook_dirs
# -------------
#
# Tell PyInstaller where to find hooks provided by this distribution;
# this is referenced by the :ref:`hook registration <hook_registration>`.
# This function returns a list containing only the path to this
# directory, which is the location of these hooks.
def get_hook_dirs():
return [os.path.dirname(__file__)]

View file

@ -0,0 +1,5 @@
from PyInstaller.utils.hooks import collect_data_files
# https://pyinstaller.readthedocs.io/en/stable/hooks.html#provide-hooks-with-package
datas = collect_data_files('caver', excludes=['__pyinstaller'])

View file

@ -0,0 +1,5 @@
from PyInstaller.utils.hooks import collect_data_files
# https://pyinstaller.readthedocs.io/en/stable/hooks.html#provide-hooks-with-package
datas = collect_data_files('pre_edited_cs', excludes=['__pyinstaller'])

218
caver/patcher.py Normal file
View file

@ -0,0 +1,218 @@
from __future__ import annotations
import json
import logging
import platform as pl
import shutil
import sys
import textwrap
import typing
from enum import Enum
from pathlib import Path
from uuid import UUID
import pre_edited_cs
from randovania_lupa import LuaRuntime # type: ignore
from caver.schema.validator_with_default import DefaultValidatingDraft7Validator
LuaFile = typing.Any
if typing.TYPE_CHECKING:
from collections.abc import Callable
from caver.schema import (
CaverData,
CaverdataMaps,
CaverdataOtherTsc,
EventNumber,
MapName,
)
class CaverException(Exception):
pass
class CSPlatform(Enum):
FREEWARE = "freeware"
TWEAKED = "tweaked"
def get_path() -> Path:
if getattr(sys, "frozen", False):
file_dir = Path(getattr(sys, "_MEIPASS"))
else:
file_dir = Path(__file__).parent.parent
return file_dir.joinpath("caver")
def validate(patch_data: dict) -> None:
with Path(__file__).parent.joinpath("schema/schema.json").open() as f:
schema = json.load(f)
DefaultValidatingDraft7Validator(schema).validate(patch_data)
def patch_files(
patch_data: CaverData, output_dir: Path, platform: CSPlatform, progress_update: Callable[[str, float], None]
) -> None:
progress_update("Validating schema...", -1)
validate(typing.cast(dict, patch_data))
progress_update("Copying base files...", -1)
ensure_base_files_exist(platform, output_dir)
total = len(patch_data["maps"].keys()) + len(patch_data["other_tsc"].keys()) + 3
lua_file = get_path().joinpath("tsc_file.lua").read_text()
TscFile = typing.cast(LuaFile, LuaRuntime().execute(lua_file))
for i, (mapname, mapdata) in enumerate(patch_data["maps"].items()):
progress_update(f"Patching {mapname}...", i / total)
patch_map(mapname, mapdata, TscFile, output_dir)
for filename, scripts in patch_data["other_tsc"].items():
i += 1
progress_update(f"Patching {filename}.tsc...", i / total)
patch_other(filename, scripts, TscFile, output_dir)
i += 1
progress_update("Copying MyChar...", i / total)
patch_mychar(patch_data["mychar"], output_dir, platform is CSPlatform.TWEAKED)
i += 1
progress_update("Copying hash...", i / total)
patch_hash(patch_data["hash"], output_dir)
i += 1
progress_update("Copying UUID...", i / total)
patch_uuid(patch_data["uuid"], output_dir)
if platform == CSPlatform.TWEAKED:
if pl.system() == "Linux":
output_dir.joinpath("CSTweaked.exe").unlink()
else:
output_dir.joinpath("CSTweaked").unlink()
def ensure_base_files_exist(platform: CSPlatform, output_dir: Path) -> None:
internal_copy = pre_edited_cs.get_path()
with internal_copy.joinpath("data", "version.txt").open() as version_file:
latest_version = version_file.readline()
version = output_dir.joinpath("data", "version.txt")
current_version = "v0.0.0.0"
if version.exists():
with version.open() as version_file:
current_version = version_file.readline()
keep_existing_files = current_version >= latest_version
def should_ignore(path: str, names: list[str]) -> list[str]:
base = ["__init__.py", "__pycache__", "ScriptSource", "__pyinstaller"]
if keep_existing_files:
p = Path(path)
base.extend(
[str(p.joinpath(name)) for name in names if p.joinpath(name).exists() and p.joinpath(name).is_file()]
)
return base
try:
shutil.copytree(internal_copy.joinpath(platform.value), output_dir, ignore=should_ignore, dirs_exist_ok=True)
shutil.copytree(
internal_copy.joinpath("data"), output_dir.joinpath("data"), ignore=should_ignore, dirs_exist_ok=True
)
except shutil.Error:
raise CaverException(
"Error copying base files. Ensure the directory is not read-only, and that Doukutsu.exe is closed"
)
output_dir.joinpath("data", "Plaintext").mkdir(exist_ok=True)
def patch_map(mapname: MapName, mapdata: CaverdataMaps, TscFile: LuaFile, output_dir: Path) -> None:
mappath = output_dir.joinpath("data", "Stage", f"{mapname}.tsc")
tsc_file = TscFile.new(TscFile, mappath.read_bytes(), logging.getLogger("caver"))
for event, script in mapdata["pickups"].items():
TscFile.placeScriptAtEvent(tsc_file, script, event, mapname)
for event, song in mapdata["music"].items():
TscFile.placeSongAtCue(tsc_file, song["song_id"], event, song["original_id"], mapname)
for event, script in mapdata["entrances"].items():
needle = "<EVE...." # TODO: create a proper pattern
TscFile.placeScriptAtEvent(tsc_file, script, event, mapname, needle)
for event, hint in mapdata["hints"].items():
script = create_hint_script(hint["text"], hint.get("facepic", "0000") != "0000", hint.get("ending", "<END"))
TscFile.placeScriptAtEvent(tsc_file, script, event, mapname)
chars = TscFile.getText(tsc_file).values()
mappath.write_bytes(bytes(chars))
output_dir.joinpath("data", "Plaintext", f"{mapname}.txt").write_text(TscFile.getPlaintext(tsc_file))
def patch_other(
filename: MapName, scripts: dict[EventNumber, CaverdataOtherTsc], TscFile: LuaFile, output_dir: Path
) -> None:
filepath = output_dir.joinpath("data", f"{filename}.tsc")
tsc_file = TscFile.new(TscFile, filepath.read_bytes(), logging.getLogger("caver"))
for event, script in scripts.items():
TscFile.placeScriptAtEvent(tsc_file, script["script"], event, filename, script.get("needle", "<EVE...."))
chars = TscFile.getText(tsc_file).values()
filepath.write_bytes(bytes(chars))
output_dir.joinpath("data", "Plaintext", f"{filename}.txt").write_text(TscFile.getPlaintext(tsc_file))
def patch_mychar(mychar: str | None, output_dir: Path, add_upscale: bool) -> None:
if mychar is None:
return
mychar_img = Path(mychar).read_bytes()
output_dir.joinpath("data", "MyChar.bmp").write_bytes(mychar_img)
if add_upscale:
mychar_name = Path(mychar).name
mychar_up_img = Path(mychar).parent.joinpath("2x", mychar_name).read_bytes()
output_dir.joinpath("data", "sprites_up", "MyChar.bmp").write_bytes(mychar_up_img)
def patch_hash(hash: list[int], output_dir: Path) -> None:
hash_strings = [f"{num:04d}" for num in hash]
hash_string = ",".join(hash_strings)
output_dir.joinpath("data", "hash.txt").write_text(hash_string)
def patch_uuid(uuid: str, output_dir: Path) -> None:
uuid = f"{{{UUID(uuid)}}}"
output_dir.joinpath("data", "uuid.txt").write_text(uuid)
def wrap_msg_text(text: str, facepic: bool, *, ending: str = "<NOD", max_text_boxes: int | None = 1) -> str:
hard_limit = 35
msgbox_limit = 26 if facepic else hard_limit
max_lines = max_text_boxes * 3 if max_text_boxes is not None else None
lines = textwrap.wrap(text, width=msgbox_limit, max_lines=max_lines)
text = ""
for i, line in enumerate(lines):
text += line
if i < len(lines) - 1:
if i % 3 == 2:
text += "<NOD"
if len(line) != hard_limit:
text += "\r\n"
text += ending
return text
def create_hint_script(text: str, facepic: bool, ending: str) -> str:
"""
A desperate attempt to generate valid <MSG text.
Fills one text box (up to three lines). Attempts to wrap words elegantly.
"""
return f"<PRI<MSG<TUR{wrap_msg_text(text, facepic, ending=ending)}"

0
caver/py.typed Normal file
View file

23
caver/schema/__init__.py Normal file
View file

@ -0,0 +1,23 @@
from caver.schema.types import (
CaverData,
CaverdataMaps,
CaverdataMapsHints,
CaverdataMapsMusic,
CaverdataOtherTsc,
EventNumber,
MapName,
TscScript,
TscValue,
)
__all__ = [
"CaverData",
"TscValue",
"EventNumber",
"MapName",
"TscScript",
"CaverdataMapsHints",
"CaverdataMapsMusic",
"CaverdataMaps",
"CaverdataOtherTsc",
]

195
caver/schema/schema.json Normal file
View file

@ -0,0 +1,195 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"$schema": {
"type": "string",
"format": "uri"
},
"maps": {
"type": "object",
"propertyNames": {
"$ref": "#/$defs/map_name"
},
"additionalProperties": {
"type": "object",
"properties": {
"pickups": {
"type": "object",
"propertyNames": {
"$ref": "#/$defs/event_number"
},
"additionalProperties": {
"$ref": "#/$defs/tsc_script"
},
"default": {}
},
"hints": {
"type": "object",
"propertyNames": {
"$ref": "#/$defs/event_number"
},
"additionalProperties": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"facepic": {
"$ref": "#/$defs/tsc_value",
"default": "0000"
},
"ending": {
"$ref": "#/$defs/tsc_script",
"default": "<END"
}
},
"required": [
"text",
"facepic",
"ending"
],
"additionalProperties": false
},
"default": {}
},
"music": {
"type": "object",
"propertyNames": {
"$ref": "#/$defs/event_number"
},
"additionalProperties": {
"type": "object",
"properties": {
"original_id": {
"$ref": "#/$defs/tsc_value"
},
"song_id": {
"$ref": "#/$defs/tsc_value"
}
},
"required": [
"original_id",
"song_id"
],
"additionalProperties": false
},
"default": {}
},
"entrances": {
"type": "object",
"propertyNames": {
"$ref": "#/$defs/event_number"
},
"additionalProperties": {
"$ref": "#/$defs/tsc_script"
},
"default": {}
}
},
"additionalProperties": false,
"required": [
"pickups",
"hints",
"music",
"entrances"
]
},
"default": {}
},
"other_tsc": {
"type": "object",
"propertyNames": {
"$ref": "#/$defs/map_name"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"$ref": "#/$defs/event_number"
},
"additionalProperties": {
"type": "object",
"properties": {
"needle": {
"type": "string",
"description": "Lua pattern to search for and replace within the event"
},
"script": {
"$ref": "#/$defs/tsc_script"
}
},
"required": [
"needle",
"script"
],
"additionalProperties": false
}
},
"default": {}
},
"mychar": {
"description": "A path to the mychar.bmp file to use (Optional)",
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"pattern": "^.*\\.bmp$"
}
],
"default": null
},
"hash": {
"description": "An array of five item IDs to display on the title screen, within [1, 39]",
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 39
},
"minItems": 5,
"maxItems": 5,
"default": [1,1,1,1,1]
},
"uuid": {
"description": "The UUID for the world in a multiworld session, or the empty UUID if single player.",
"type": "string",
"pattern": "^\\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\\}$",
"default": "{00000000-0000-0000-0000-000000000000}"
},
"platform": {
"description": "Which supported platform to export to.",
"$comment": "Not actually used by the patcher.",
"type": "string",
"enum": [
"freeware",
"tweaked"
]
}
},
"required": [
"maps",
"other_tsc",
"mychar",
"hash",
"uuid"
],
"additionalProperties": false,
"$defs": {
"tsc_value": {
"type": "string",
"pattern": "^[ -~]{4}$"
},
"event_number": {
"$ref": "#/$defs/tsc_value",
"$comment": "Semantic alias for tsc_value"
},
"map_name": {
"type": "string"
},
"tsc_script": {
"type": "string"
}
}
}

54
caver/schema/types.py Normal file
View file

@ -0,0 +1,54 @@
# This file is generated. Manual changes will be lost
# fmt: off
# ruff: noqa
from __future__ import annotations
import typing_extensions as typ
# Definitions
TscValue: typ.TypeAlias = str
EventNumber: typ.TypeAlias = TscValue
MapName: typ.TypeAlias = str
TscScript: typ.TypeAlias = str
# Schema entries
@typ.final
class CaverdataMapsHints(typ.TypedDict):
text: str
facepic: TscValue
ending: TscScript
@typ.final
class CaverdataMapsMusic(typ.TypedDict):
original_id: TscValue
song_id: TscValue
@typ.final
class CaverdataMaps(typ.TypedDict):
pickups: dict[EventNumber, TscScript]
hints: dict[EventNumber, CaverdataMapsHints]
music: dict[EventNumber, CaverdataMapsMusic]
entrances: dict[EventNumber, TscScript]
@typ.final
class CaverdataOtherTsc(typ.TypedDict):
needle: str
script: TscScript
@typ.final
class Caverdata(typ.TypedDict):
maps: dict[MapName, CaverdataMaps]
other_tsc: dict[MapName, dict[EventNumber, CaverdataOtherTsc]]
mychar: None | str
hash: list[int]
uuid: str
platform: typ.NotRequired[str]
CaverData: typ.TypeAlias = Caverdata

View file

@ -0,0 +1,25 @@
from jsonschema import Draft7Validator, validators
def extend_with_default(validator_class):
validate_properties = validator_class.VALIDATORS["properties"]
def set_defaults(validator, properties, instance, schema):
for property, subschema in properties.items():
if "default" in subschema:
instance.setdefault(property, subschema["default"])
yield from validate_properties(
validator,
properties,
instance,
schema,
)
return validators.extend(
validator_class,
{"properties": set_defaults},
)
DefaultValidatingDraft7Validator = extend_with_default(Draft7Validator)

169
caver/tsc_file.lua Normal file
View file

@ -0,0 +1,169 @@
local TscFile = {}
function TscFile:new(contents)
o = {}
setmetatable(o, self)
self.__index = self
self._text = self:_codec(contents, 'decode')
return o
end
function TscFile:placeScriptAtEvent(script, event, mapname, needle)
needle = needle or "<EVE...."
local err
self._text, err = self:_stringReplace(self._text, needle, script, event)
if err ~= nil then
local template = 'Unable to place script "%s" at [%s] event "%s".\nCause: %s'
error(template:format(script, mapname, event, err))
end
end
function TscFile:placeSongAtCue(songid, event, originalid, mapname)
local err
self._text, err = self:_stringReplace(self._text, "<CMU" .. originalid, "<CMU" .. songid, event, {"<CMU0015", "<CMU0000"})
if err ~= nil then
local template = "Unable to replace [%s] event #%s's music cue with %q.\nCause: %s"
error(template:format(mapname, event, songid, err))
end
end
function TscFile:_stringReplace(text, needle, replacement, label, overrides)
overrides = overrides or {}
local pStart, pEnd = self:_getLabelPositionRange(label)
local i, o = -1, -1
while(o <= i) do
o = nil
i, i2 = text:find(needle, pStart)
if i == nil then
local err = ('No match for "%s".'):format(needle)
return text, err
elseif i > pEnd then
-- This is totally normal and can be ignored.
local err = ('Found "%s", but was outside of label (%d, %d) at index %d.'):format(needle, pStart, pEnd, i)
return text, err
end
-- find the earliest occurence of an override
for k,v in ipairs(overrides) do
local over = text:find(v, pStart)
if over ~= nil then
if o ~= nil then
o = math.min(o, over)
else
o = over
end
end
end
-- no overrides found
if o == nil then break end
pStart = o+1
end
local len = i2-i+1
local j = i + len - 1
assert((i % 1 == 0) and (i > 0) and (i <= j), tostring(i))
assert((j % 1 == 0), tostring(j))
local a = text:sub(1, i - 1)
local b = text:sub(j + 1)
return a .. replacement .. b, nil
end
function TscFile:_getLabelPositionRange(label)
local labelStart, labelEnd
-- Recursive shit for when label is a table...
if type(label) == 'table' then
labelStart, labelEnd = math.huge, 0
for _, _label in ipairs(label) do
local _start, _end = self:_getLabelPositionRange(_label)
labelStart = math.min(labelStart, _start)
labelEnd = math.max(labelEnd, _end)
end
return labelStart, labelEnd
end
assert(type(label) == 'string')
assert(#label == 4)
assert(tonumber(label) >= 0)
assert(tonumber(label) <= 9999)
local i = 1
local labelPattern = "#%d%d%d%d\r\n"
while true do
local j = self._text:find(labelPattern, i)
if j == nil then
break
end
i = j + 1
if labelStart then
labelEnd = j - 1
break
end
local _label = self._text:sub(j + 1, j + 4)
if label == _label then
labelStart = j
end
end
if labelStart == nil then
error(("Could not find label: %s"):format(label))
labelStart = 1
end
if labelEnd == nil then
labelEnd = #self._text
end
return labelStart, labelEnd
end
function TscFile:getPlaintext()
return self._text
end
function TscFile:getText()
return self:_codec(self._text, 'encode')
end
function TscFile:_codec(text, mode)
-- Create array of chars.
local chars = {}
text:gsub(".", function(c) table.insert(chars, c) end)
-- Determine encoding char value
local encodingCharPosition = math.floor(#chars / 2) + 1
local encodingChar = chars[encodingCharPosition]:byte()
if mode == 'decode' then
encodingChar = encodingChar * -1
elseif mode == 'encode' then
-- OK!
else
error('Unknown codec mode: ' .. tostring(mode))
end
-- Encode or decode.
for pos, char in ipairs(chars) do
if pos ~= encodingCharPosition then
local byte = (char:byte() + encodingChar) % 256
if mode == 'decode' then
chars[pos] = string.char(byte)
else
chars[pos] = byte
end
elseif mode == 'encode' then
chars[pos] = char:byte()
end
end
if mode == 'encode' then
return chars
end
return table.concat(chars)
end
return TscFile

View file

@ -0,0 +1,281 @@
offset 414bf0
#define
rectMax=0D
rectMaxx10=0D0
rcLeft.left=EBP-0D0
rcLeft.top=EBP-0CC
rcLeft.right=EBP-0C8
rcLeft.bottom=EBP-0C4
rcRight.left=EBP-1A0
rcRight.top=EBP-19C
rcRight.right=EBP-198
rcRight.bottom=EBP-194
gMC.rect.left=49E69C
gMC.rect.top=49E6A0
gMC.rect.right=49E6A4
gMC.rect.bottom=49E6A8
gMC.cond=49E638
gMC.flag=49E63C
gMC.ani_no=49E678
gMC.ani_wait=49E674
gMC.up=49E644
gMC.down=49E648
gMC.ym=49E670
gMC.direct=49E640
gMC.air=49E6DC
gKey_addr=49E210
gKeyUp=493634
gKeyLeft=493630
gKeyRight=493638
bKey=EBP+8
PlaySoundObject=00420640
#enddefine
PUSH EBP
MOV EBP,ESP
SUB ESP,1A0 ; or whatever
PUSH ESI
PUSH EDI
XOR ESI,ESI
; FRAMERECTS
; Push left framerects onto stack for ease of looping
PUSH 0D0 ; DROWNING SPRITES
PUSH 70
PUSH 60
PUSH 30
PUSH 50
PUSH 30
PUSH 40
PUSH 30
PUSH 0
PUSH 20
PUSH 0
PUSH 10
PUSH 0
MOV EAX, 0
MOV ECX, 10
MOV EDX, 20
JMP :loopbody
:looptop
ADD ESI, 10
CMP ESI, rectMaxx10
JGE :loopend
:loopbody
; Left top = 0, Right top = 0x10
MOV [rcLeft.top+ESI], EAX | MOV [rcRight.top+ESI], ECX
; Left bottom = 0x10, Right bottom = 0x20
MOV [rcLeft.bottom+ESI], ECX | MOV [rcRight.bottom+ESI], EDX
POP EDI
; Left/Right left = value from stack
MOV [rcLeft.left+ESI], EDI | MOV [rcRight.left+ESI], EDI
ADD EDI, 10
; Left/Right right = value from stack + 0x10
MOV [rcLeft.right+ESI], EDI | MOV [rcRight.right+ESI], EDI
JMP :looptop
:loopend
; if (gMC.air <= 0)
MOV EDX, [gMC.air]
CMP EDX, 0
JG :checkCond
MOV [gMC.ani_no], 0C
JMP :checkDir
; if (gMC.cond & 2)
:checkCond
MOVZX EAX, BYTE [gMC.cond]
TEST EAX, 00000002
JNE :return
; if (gMC.flag & 8)
:checkFlag
MOV ECX, [gMC.flag]
TEST ECX, 00000008
JE :checkUp
; if (gMC.cond & 1)
TEST EAX, 00000001
JE :keycheckWalk
MOV [gMC.ani_no], 0B
JMP :checkDir
; else if (gKey & (gKeyLeft | gKeyRight) && bKey)
:keycheckWalk
MOV ECX, [gKey_addr]
MOV EDX, [gKeyLeft]
OR EDX, [gKeyRight]
TEST ECX, EDX ; gKey & (gKeyLeft | gKeyRight)
JE :keycheckStop
CMP [bKey], 0 ; bKey
JE :keycheckStop
; if (gKey & gKeyUp)
TEST ECX, [gKeyUp]
JE :WalkFrames
:UpWalkFrames
PUSH 6
PUSH 9
PUSH 9
PUSH 7
JMP :WalkAni
:WalkFrames
PUSH 1
PUSH 4
PUSH 4
PUSH 2
:WalkAni
OR EAX, 00000004
MOV BYTE [gMC.cond], AL ;gMC.cond |= 4
POP EAX ; 7 if looking up, else 2
POP ECX ; 9 if looking up, else 4
MOV ESI, [gMC.ani_wait]
INC ESI ; ++gMC.ani_wait
MOV EDI, [gMC.ani_no]
; if (++gMC.ani_wait > 4)
CMP ESI, 4
JLE :checkWalkAni
XOR ESI,ESI ; gMC.ani_wait = 0
INC EDI ; ++gMC.ani_no
CMP EDI, EAX
JE :playSound
CMP EDI, ECX
JNE :checkWalkAni
:playSound
PUSH 1
PUSH 18
CALL PlaySoundObject
ADD ESP,8
; UP: if (gMC.ani_no > 9 || gMC.ani_no < 6)
; ELSE: if (gMC.ani_no > 4 || gMC.ani_no < 1)
:checkWalkAni
MOV [gMC.ani_wait], ESI
POP EAX ; 9 if looking up, else 4
POP ECX ; 6 if looking up, else 1
CMP EDI, EAX
JG :resetWalkAni
CMP EDI, ECX
JGE :setAniNo
:resetWalkAni
MOV EDI, ECX
:setAniNo
MOV [gMC.ani_no], EDI
JMP :checkDir
:keyChecKStop
TEST ECX, [gKeyUp]
JE :StopFrame
CMP [bKey], 0
JE :StopFrame
:UpStopFrame
PUSH 5
JMP :StopAni
:StopFrame
PUSH 0
:StopAni
TEST EAX, 00000004
JE :SetStopAni
PUSH 1
PUSH 18
CALL PlaySoundObject
ADD ESP,8
:SetStopAni
MOVZX EAX, BYTE [gMC.cond]
AND EAX, FFFFFFFB
MOV BYTE [gMC.cond], AL
POP ECX
MOV [gMC.ani_no], ECX
JMP :checkDir
:checkUp
LEA EAX, [gMC.ani_no]
CMP [gMC.up], 0
JE :checkDown
MOV [EAX], 6
JMP :checkDir
:checkDown
CMP [gMC.down], 0
JE :checkYm
MOV [EAX], 0A
JMP :checkDir
:checkYm
CMP [gMC.ym], 0
JLE :ymLess
:ymMore
MOV [EAX], 1
JMP :checkDir
:ymLess
MOV [EAX], 3
:checkDir
MOV EAX, [gMC.ani_no]
SHL EAX, 4
CMP [gMC.direct], 0
JNE :rectRight
:rectLeft
LEA EAX, [EAX+rcLeft.left]
JMP :setrect
:rectRight
LEA EAX, [EAX+rcRight.left]
:setrect
MOV ECX, [EAX]
MOV [gMC.rect.left], ECX
MOV ECX, [EAX+4]
MOV [gMC.rect.top], ECX
MOV ECX, [EAX+8]
MOV [gMC.rect.right], ECX
MOV ECX, [EAX+0C]
MOV [gMC.rect.bottom], ECX
:return
POP EDI
POP ESI
MOV ESP,EBP
POP EBP
RETN
INT3

View file

@ -0,0 +1,36 @@
offset 414b50
PUSH EBP
MOV EBP, ESP
PUSH 0B4
PUSH 0
PUSH 0049E638
CALL 00480D30
ADD ESP,0C ; memset(&gMC, 0, sizeof(MYCHAR))
MOV BYTE [49E638],80 ; gMC.cond = 0x80
MOV [49E640],2 ; gMC.direct = 2
MOV EAX,1000
MOV [49E694],EAX ; gMC.view.back = 8 * 0x200
MOV [49E690],EAX ; gMC.view.top = 8 * 0x200
MOV [49E68C],EAX ; gMC.view.front = 8 * 0x200
MOV [49E698],EAX ; gMC.view.bottom = 8 * 0x200
MOV ECX,0A00
MOV [49E684],ECX ; gMC.hit.back = 5 * 0x200
MOV [49E680],EAX ; gMC.hit.top = 8 * 0x200
MOV [49E67C],ECX ; gMC.hit.front = 5 * 0x200
MOV [49e688],EAX ; gMC.hit.bottom = 8 * 0x200
MOV WORD [49E6CC],3 ; gMC.life = 3
MOV WORD [49E6D0],3 ; gMC.max_life = 3
MOV [49E64C],0 ; gMC.unit = 0
MOV [49E6DC],3E8 ; gMC.air = 1000
POP EBP
RETN
INT3

View file

@ -0,0 +1,34 @@
offset 4169EB
#define
GetNPCFlag=40E930
StartTextScript=421990
setDeathCond=416A52
computeAirGet=416A65
gMC.air=49E6DC
#enddefine
PUSH 0FA0 ; 4000
CALL GetNPCFlag
POP ECX
TEST EAX,EAX ; if (GetNPCFlag(4000))
JE :drown
:core
PUSH 44C ; 1100
CALL StartTextScript
POP ECX
MOV [gMC.air], 3E8 ; gMC.air = 1000
JMP computeAirGet
:drown
PUSH 29 ; 41
CALL StartTextScript
POP ECX
JMP setDeathCond

View file

@ -0,0 +1,16 @@
offset 415256
#define
gMC.air=49E6DC
gMC.cond=49E638
#enddefine
CMP [gMC.air], 0
JLE 00415495
MOV AL, BYTE [gMC.cond]
TEST AL, 00000080
JE 00415270
TEST AL, 00000002
JE 00415275
//data 90 90 90 90 ; 4 bytes were saved

View file

@ -0,0 +1,43 @@
offset 40cf90
#define
count=EBP-4
Strip_addr=0049D628
Credit.mode=49D620
MAX_STRIP=40
size=50
Strip.flag=EAX
Strip.x=EAX+4
Strip.y=EAX+8
Strip.cast=EAX+0C
Strip.str=EAX+10
#enddefine
push ebp
mov ebp, esp
push ecx
mov eax, [Strip_addr]
mov edx, MAX_STRIP
:$LL4@ActionStri
test BYTE [Strip.flag], 80
je :$LN5@ActionStri
cmp [Credit.mode], 0
je :$LN5@ActionStri
sub [Strip.y], 100
:$LN5@ActionStri
cmp [Strip.y], -2000
jg :$LN2@ActionStri
and [Strip.flag], 0
:$LN2@ActionStri
add eax, size
sub edx, 1
jne :$LL4@ActionStri
leave
retn

View file

@ -0,0 +1,36 @@
offset 40d3e0
#define
size=50
MAX_STRIP=40
Strip_addr=0049d628
#enddefine
PUSH EBP
MOV EBP,ESP
PUSH 18
PUSH 0
PUSH 0049D610
CALL 00480D30
ADD ESP,0C
/*
PUSH 500
PUSH 0
PUSH 0049D628
CALL 00480D30
ADD ESP,0C
PUSH size
PUSH MAX_STRIP
CALL 00487701
ADD ESP,8
MOV [Strip_addr],EAX
*/
XOR EAX,EAX
MOV [Strip_addr],EAX
POP EBP
RETN
INT3

View file

@ -0,0 +1,2 @@
offset 4115e6
PUSH 3F0 ; (MAX_STRIP - 1) * 0x10

View file

@ -0,0 +1,8 @@
ActionStripper.txt
InitCreditScript.txt
LoadGenericDataMAX_STRIP.txt
PutStripper.txt
RestoreStripper.txt
SetStripper.txt
StartCreditScript.txt
ReleaseCreditScript.txt

View file

@ -0,0 +1,135 @@
offset 40D010
#define
; Constants
MAX_STRIP=40
MAX_STRIPx10=400
size=50
; Locals
ArrayPad=EBP-4
rc_addr=EBP-14
rc.left=EBP-14
rc.right=EBP-0C
rc.top=EBP-10
rc.bottom=EBP-8
; References
Strip_addr=0049D628
Strip.flag=ecx
Strip.x=ecx+4
Strip.y=ecx+8
Strip.cast=ecx+0c
Strip.str=ecx+10
grcFull=0048f92c
; Functions
PutBitmap3=0040c3c0
; Builtins
___security_cookie=498b20
__security_check_cookie=00480dc1
#enddefine
push ebp
mov ebp,esp
sub esp, 14 ; 00000018H
push ebx
push esi
push edi
; Line 92
xor esi, esi
xor edi, edi
:$LL4@PutStrippe
; Line 94
mov ecx, [Strip_addr]
test BYTE [esi+Strip.flag], 80 ; 00000080H
je :$LN2@PutStrippe
; Line 97
and [rc.left], 0
mov [rc.right], 140 ; 00000140H
mov [rc.top], edi
lea eax, [edi+10]
mov [rc.bottom], eax
; Line 102
push 23 ; 00000023H
lea eax, [rc_addr]
push eax
mov ebx, 1ff ; 000001ffH
mov eax, [esi+Strip.y]
cdq
and edx, ebx
add eax, edx
sar eax, 9
push eax
mov eax, [esi+Strip.x]
cdq
and edx, ebx
add eax, edx
sar eax, 9
push eax
push grcFull
call PutBitmap3
; Line 110
push 25 ; 00000025H
mov ecx, [Strip_addr]
mov eax, [esi+Strip.cast]
cdq
mov ebx, 0d
idiv ebx
imul edx, edx, 18
imul eax, eax, 18
mov [rc.left], edx
add edx, 18 ; 00000018H
mov [rc.right], edx
mov [rc.top], eax
add eax, 18
mov [rc.bottom], eax
lea eax, [rc_addr]
push eax
mov ebx, 1ff
mov eax, [esi+Strip.y]
cdq
and edx, ebx
add eax, edx
sar eax, 9
sub eax, 8
push eax
mov eax, [esi+Strip.x]
cdq
and edx, ebx
add eax, edx
sar eax, 9
sub eax, 18 ; 00000018H
push eax
push grcFull
call PutBitmap3
add esp, 28 ; 00000028H
:$LN2@PutStrippe
; Line 92
add edi, 10 ; 00000010H
add esi, size ; 00000050H
cmp edi, MAX_STRIPx10 ; 000007f0H
jl :$LL4@PutStrippe
; Line 113
pop edi
pop esi
pop ebx
leave
retn

View file

@ -0,0 +1,34 @@
offset 40d410
#define
Credit.pData=49d614
Strip=49d628
_free=0048128b
#enddefine
push ebp
mov ebp,esp
mov eax, [Credit.pData]
test eax, eax
je :$LN2@ReleaseCre
push eax
call _free
pop ecx
and [Credit.pData], 0
:$LN2@ReleaseCre
mov eax, [Strip]
test eax, eax
je :$LN3@ReleaseCre
push eax
call _free
pop ecx
:$LN3@ReleaseCre
mov esp, ebp
pop ebp
retn

View file

@ -0,0 +1,86 @@
offset 40d240
#define
; Constants
MAX_STRIPx10=400
; Locals
ArrayPad = EBP-4
rc_addr = EBP-14
rc.left=EBP-14
rc.right=EBP-0c
rc.top=EBP-10
rc.bottom=EBP-8
; References
Credit=49D620
Strip_addr=0049D628
Strip.flag=0049D628
Strip.x=0049D62C
Strip.y=0049D630
Strip.cast=0049D634
Strip.str=0049D638
; Functions
CortBox2=0040ca80
PutText2=0040ceb0
; Builtins
___security_cookie=498b20
__security_check_cookie=00480dc1
#enddefine
push ebp
mov ebp, esp
sub esp, 14 ; 00000014H
push esi
push edi
; Line 151
xor edi, edi
xor esi, esi
:$LL4@RestoreStr
; Line 153
mov eax, [Strip_addr]
test eax, eax
je :return
test [edi+eax], 128 ; 00000080H
je :$LN2@RestoreStr
; Line 155
and [rc.left], 0
; Line 156
mov [rc.right], 140 ; 00000140H
; Line 157
mov [rc.top], esi
; Line 158
lea eax, [esi+16]
mov [rc.bottom], eax
; Line 160
push 23 ; 00000023H
push 0
lea eax, [rc_addr]
push eax
call CortBox2
; Line 161
push 23 ; 00000023H
push 00feffff ; 00feffffH
mov eax, [Strip_addr]
add eax, 10 ; 00000010H
add eax, edi
push eax
push [rc.top]
push 0
call PutText2
add esp, 20 ; 00000020H
:$LN2@RestoreStr
; Line 151
add esi, 10 ; 00000010H
add edi, 50 ; 00000050H
cmp esi, MAX_STRIPx10 ; 000007f0H
jl :$LL4@RestoreStr
; Line 164
:return
pop edi
pop esi
leave
retn

View file

@ -0,0 +1,116 @@
offset 40d150
#define
; Constants
MAX_STRIP=40
size=50
; Locals
ArrayPad=EBP-4
rc_addr=EBP-14
rc.left=EBP-14
rc.right=EBP-0C
rc.top=EBP-10
rc.bottom=EBP-8
; Arguments
argx=EBP+8
argy=EBP+0C
argtext=EBP+10
argcast=EBP+14
; References
Strip_addr=0049D628
Strip.flag=edx
Strip.x=edx+4
Strip.y=edx+8
Strip.cast=edx+0c
Strip.str=edx+10
; Functions
CortBox2=0040ca80
PutText2=0040ceb0
; Builtins
___security_cookie=498b20
__security_check_cookie=00480dc1
_strcpy=00481100
#enddefine
push ebp
mov ebp, esp
sub esp, 14 ; 00000014H
mov eax, [___security_cookie]
mov [ArrayPad], eax
mov edx, [Strip_addr]
mov eax, edx
push esi
push edi
mov edi, [argtext]
; Line 121
xor esi, esi
:$LL4@SetStrippe
; Line 122
test [eax], 80 ; 00000080H
je :$LN13@SetStrippe
; Line 121
inc esi
add eax, size ; 00000050H
mov ecx, esi
cmp esi, MAX_STRIP ; 0000007fH
jl :$LL4@SetStrippe
; Line 125
cmp ecx, MAX_STRIP ; 0000007fH
je :$LN1@SetStrippe
:$LN13@SetStrippe
; Line 129
imul ecx, esi, size
mov [ecx+Strip.flag], 80 ; 00000080H
; Line 130
mov eax, [argx]
mov [ecx+Strip.x], eax
; Line 131
mov eax, [argy]
mov [ecx+Strip.y], eax
; Line 132
mov eax, [argcast]
mov [ecx+Strip.cast], eax
; Line 133
push edi
lea eax, [Strip.str]
add eax, ecx
push eax
call _strcpy
; Line 136
and [rc.left], 0
; Line 137
mov [rc.right], 140 ; 00000140H
; Line 138
shl esi, 4
mov [rc.top], esi
; Line 139
lea eax, [esi+10]
mov [rc.bottom], eax
; Line 141
push 23 ; 00000023H
push 0
lea eax, [rc_addr]
push eax
call CortBox2
; Line 142
push 23 ; 00000023H
push 00feffff ; 00feffffH
push edi
push [rc.top]
push 0
call PutText2
add esp, 28 ; 00000028H
:$LN1@SetStrippe
; Line 143
pop edi
pop esi
mov ecx, [ArrayPad]
call __security_check_cookie
leave
retn

View file

@ -0,0 +1,160 @@
offset 40d440
#define
; Constants
MAX_STRIP=40
size=50
; Locals
path=EBP-108
ArrayPad=EBP-4
; References
Strip_addr=0049D628
Credit.pData=49D614
Credit.size=49d610
Credit.offset=49d618
Credit.wait=49d61c
Credit.mode=49d620
Illust.x=49d60c
Illust.act_no=49d608
grcGame.left=48f91c
gDataPath=0049E220
; Functions
GetFileSizeLong=00410d80
EncryptionBinaryData2=004215c0
ReloadBitmapFile=0040BFD0
; Builtins
___security_cookie=498b20
__security_check_cookie=00480dc1
_malloc=004813a3
_calloc=00487701
_free=0048128B
_memset=00480d30
_sprintf=00481010
_fopen=00480FFD
_fread=00480f55
; Strings
credit_script=48f918
format=0048C374
str_rb=0048C37C
str_casts=0048c380
#enddefine
push ebp
mov ebp, esp
sub esp, 108 ; 00000108H
mov eax, [___security_cookie]
mov [ArrayPad], eax
; Line 241
mov eax, [Credit.pData]
push esi
xor esi, esi
push edi
test eax, eax
je :$LN2@StartCredi
; Line 243
push eax
call _free
pop ecx
; Line 244
mov [Credit.pData], esi
:$LN2@StartCredi
; Line 248
push [credit_script]
lea eax, [path]
push gDataPath
push format
push eax
call _sprintf
; Line 250
lea eax, [path]
push eax
call GetFileSizeLong
add esp, 14 ; 00000014H
mov [Credit.size], eax
; Line 251
cmp eax, -1
je :$LN8@StartCredi
; Line 255
push eax
call _malloc
mov [Credit.pData], eax
pop ecx
; Line 256
test eax, eax
je :$LN8@StartCredi
; Line 259
lea eax, [path]
push str_rb
push eax
call _fopen
pop ecx
pop ecx
; Line 260
test eax, eax
jne :$LN5@StartCredi
; Line 262
push [Credit.pData]
call _free
pop ecx
:$LN8@StartCredi
; Line 299
xor eax, eax
:$LN1@StartCredi
pop edi
pop esi
mov ecx, [ArrayPad]
call __security_check_cookie
leave
retn
:$LN5@StartCredi
; Line 267
push eax
push [Credit.size]
xor edi, edi
inc edi
push edi
push [Credit.pData]
call _fread
; Line 274
push [Credit.size]
push [Credit.pData]
call EncryptionBinaryData2
; Line 293
push 25 ; 00000025H
push str_casts
mov [Credit.offset], esi
mov [Credit.wait], esi
mov [Credit.mode], edi
mov [Illust.x], fffec000 ; fffec000H
mov [Illust.act_no], esi
mov [grcGame.left], 0a0 ; 000000a0H
call ReloadBitmapFile
add esp, 20 ; 00000020H
test eax, eax
je SHORT :$LN8@StartCredi
; Line 297
mov eax, [Strip_addr]
test eax, eax
je :blah
push eax
call _free
pop ecx
:blah
push size
push MAX_STRIP
call _calloc
add ESP,8
mov [Strip_addr],EAX
; Line 298
mov eax, edi
jmp :$LN1@StartCredi
data cc cc cc cc cc cc cc cc

View file

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<hack name="SuperOrg" author="txin">
<panel>
<panel title="Info">
</panel>
<field type="info" col="0">
Causes the game to load music and instruments from files instead of resources.
This effectively allows for near unlimited music files in a mod.
</field>
<field type="info" col="0">
&#60;CMUabcd will now change the current music to "data\Orgs\abcd.org".
"abcd" can be any ascii character, and letters are case sensitive.
It will also load the instruments within "data\Orgs\abcd.dat" as a wave100 file.
</field>
<field type="info" col="0">
If the "*.dat" file is not found, the game will simply skip loading it.
However, if the "*.org" file is not found, the game may crash.
The default/empty org is "0000.org", and the default wave100 is "0000.dat".
</field>
<panel title="Customize" col="0">
</panel>
<panel>
<panel title="" col="0">
<field type="label">New *.org size limit (bytes)</field>
<field type="text" size="4" offset="0x41BAED" col="1">1048576</field>
</panel>
</panel>
<panel title="Data" col="0">
</panel>
<panel>
<field type="data" offset="0x40FDF4" col="0">
89 85 9C FE FF FF 85 C0 74 58 3D 28 23 00 00 7D
0F 6A 04 8F 85 E4 FE FF FF 68 30 30 30 32 EB 47
3D E0 2E 00 00 7D 0F 6A 03 8F 85 E4 FE FF FF 68
30 30 34 31 EB 31 3D 98 3A 00 00 7D 0F 6A 02 8F
85 E4 FE FF FF 68 30 30 34 30 EB 1B 3D 50 46 00
00 7D 0F 6A 01 8F 85 E4 FE FF FF 68 30 30 33 36
EB 05 68 30 30 32 34 E8 80 10 01 00 58 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
</field>
<field type="data" offset="0x41B379" col="1">
2E 64 61 74 00 CC CC 60 89 E5 8B 7D 24 6A 7F 59
31 C0 89 CA F2 AE E3 47 29 CA 89 D1 8B 75 24 BF
B9 4F 49 00 F3 A4 68 48 C7 48 00 68 B0 4F 49 00
6A 05 59 E8 50 8F 00 00 F3 A4 E8 45 5C 06 00 85
C0 74 1C 50 93 6A 01 68 00 64 00 00 68 00 E7 49
00 E8 86 5B 06 00 53 E8 46 5A 06 00 31 C0 40 89
45 1C 89 EC 61 C3 CC B8 F4 57 4A 00 89 08 C3 CC
CC CC CC CC CC CC CC
</field>
<field type="data" offset="0x41BAD0" col="2">
60 8B EC 81 EC 9C 00 00 00 A1 20 8B 49 00 89 45
EC 56 89 8D 64 FF FF FF C6 45 F7 00 68 00 00 10
00 E8 AD 58 06 00 89 45 FC FF 75 24 E8 7F F8 FF
FF 6A 05 BE A3 C0 41 00 59 F3 A4 68 48 C7 48 00
68 B0 4F 49 00 E8 E3 54 06 00 93 31 C0 40 E8 E8
87 00 00
</field>
<field type="data" offset="0x41C09D" col="3">
8B E5 61 C2 04 00 2E 6F 72 67 00 CC
</field>
<field type="data" offset="0x41C6B1" col="4">
30 30 30 30 00 CC CC CC CC CC CC CC CC CC CC 55
8B EC 8B 0D E8 57 4A 00 E3 21 68 B1 C6 41 00 E8
AB EC FF FF 85 C0 75 04 33 C0 EB 0F B9 18 4E 4A
00 E8 69 EF FF FF B8 01 00 00 00 C9 C3
</field>
<field type="data" offset="0x420EE0" col="0">
55 8B EC 8B 4D 08 E3 0A 3B 0D F4 57 4A 00 75 02
C9 C3 E8 79 B8 FF FF BA F4 57 4A 00 89 42 04 8B
0A 89 4A 08 E8 E7 B8 FF FF 83 7D 08 00 75 07 C7
45 08 30 30 30 30 E8 1F 34 00 00 9B E8 CF B7 FF
FF 83 C4 04 6A 64 E8 95 B8 FF FF 83 C4 04 6A 00
E8 FB B7 FF FF 83 C4 04 E8 53 B8 FF FF 8B 4D 08
E8 9B A4 FF FF C9 C3 CC
</field>
<field type="data" offset="0x420F50" col="1">
60 8B EC E8 18 B8 FF FF 97 E8 92 B8 FF FF BE F4
57 4A 00 8B 1E 8B 46 08 B9 A8 4F 49 00 89 01 C6
41 04 00 51 E8 77 B7 FF FF FF 76 04 E8 AF B7 FF
FF 6A 64 E8 38 B8 FF FF E8 03 B8 FF FF 8B 46 08
89 06 89 7E 08 89 EC 61 C3
</field>
<field type="data" offset="0x4242DA" col="2">
B9 E0 5A 4A 00 8B 51 F8 03 11 81 3A 3C 43 4D 55
75 60 FF 72 04 E8 EC CB FF FF 58 83 05 E0 5A 4A
00 08 E9 CA E2 FF FF BE 79 B3 41 00 4F 89 7D 00
C3 8B 75 FC 3C 01 75 0F 53 50 50 56 E8 3A CC 05
00 46 83 C4 10 EB ED 8B 0D D4 4F 49 00 E3 07 51
E8 5C CF 05 00 59 8B 55 FC 89 15 D4 4F 49 00 C3
5A B9 A8 4F 49 00 8B 45 08 89 01 C6 41 04 00 51
FF E2
</field>
<field type="data" offset="0x494FB0" col="3">
64 61 74 61 5C 4F 72 67 5C 51 57 45 52 54 59 55
49 4F 50 2E 64 61 74 00
</field>
</panel>
</panel>
</hack>

View file

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<hack name="SpeedText" author="txin">
<panel>
<panel title="Description">
</panel>
<field type="info">
Causes message box text to scroll instantly, displaying = signs as circles.
</field>
<panel title="Data">
</panel>
<panel>
<field type="data" offset="0x421d01" col="0">
FE 45 D4 C3
</field>
<field type="data" offset="0x422573" col="1">
6A 01 5A B9 28 36 49 00 A1 10 E2 49 00 F6 C4 02
71 24 85 01 74 03 C1 F2 02 85 41 04 74 03 C1 F2
02 B9 FC 5A 4A 00 01 11 83 39 04 0F 8C 98 31 00
00 83 21 00 EB 1B 42 EB DD 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 C7 45 D4 00 00 00 00 83 7D D4 00 0F 85 9C 2F
00 00 8B 0D D8 5A 4A 00 03 0D E0 5A 4A 00 0F BE
11 83 FA 3C 0F 85 BF 2C 00 00 81 39 3C 45 4E 44
75 71 C6 05 DC 5A 4A 00 00 80 25 38 E6 49 00 FE
80 0D E8 E1 49 00 03 83 25 0C 5B 4A 00 00 6A 01
8F 45 D4 EB B3 90 90 90 90 90 90 90 90 B9 28 36
49 00 A1 10 E2 49 00 F6 C4 02 71 09 85 01 74 12
85 41 04 74 0D 6A 00 6A 00 E8 0F 00 00 00 89 45
D4 C3 6A 01 58 EB F7 90 90 90 90 90 90 B9 B1 37
49 00 8B 44 E4 08 80 09 01 9B C2 08 00 90 90 90
90 90 90
</field>
<field type="data" offset="0x423654" col="2">
00
</field>
<field type="data" offset="0x4236B4" col="2">
00
</field>
<field type="data" offset="0x425565" col="0">
E8 B6 D0 FF FF D9 D0 E9 5A D0 FF FF E9 C6 01 00 00
</field>
<field type="data" offset="0x425737" col="1">
E9 00 00 00 00 80 3D DC 5A 4A 00 00 75 0E 83 25 E8 E1 49 00 FB
65 66 0F 19 C4
</field>
</panel>
</panel>
</hack>

View file

@ -0,0 +1,4 @@
0x40CD91
03
0x40CDC8
03

View file

@ -0,0 +1,4 @@
0x40149E
8B 4D F8 49 79 01 41 B8 68 9C 49 00 31 D2 39 10
7D 02 89 08 39 08 7E 14 89 10 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90

View file

@ -0,0 +1,2 @@
0x41DB17
95 EA

View file

@ -0,0 +1,9 @@
this file isn't a real hex patch; it's a copy and paste of peri's discord message on 5 dec 2024:
---
There is an undocumented hex edit to increase the size of the Casts.bmp surface (0x411569: F0 00 -> E0 01, which I presume we just used BL's hacks/intro/surface_bitmap_sizes.xml here);
There is an undocumented hex edit to increase the TSC buffer size (0x421545: 00 50 00 -> 20 A1 07, again this was probably from the BL hack and we never wrote it down);
Randomly the byte at 0x414B24 was changed from 0x80 to 0x5F, which is the number of bytes to memset when initializing the map flag array. Not sure why this was changed, but the multiworld DLL overwrites this function anyways so it doesn't really make a difference (anymore).

View file

@ -0,0 +1,5 @@
0x41D9C6
A1 09 DF 49 00 90
0x41DA1F
C7 45 F8 00 00 00 00 C7 45 FC 00 00 00 00

View file

@ -0,0 +1,56 @@
Author: Enlight
DUNC NOTE: flag range changed from 4008 through 4015 to 2888 through 2919 in rando
also: skip the second patch it's not needed and also bugged
Instructions:
1. Backup your .exe, then patch your .exe with the patches in patches.txt.
2. Learn how to use the hack and setup your teleporters with the demonstration mod and the information below.
3. Make a similar system in your mod.
Important Files:
Patches.txt - The first patch allows you to edit where teleporter menus draw. The 2nd one just fixes a graphic bug with slots 6 and 7.
OOBFlagGen.jar - What helps you generate the flags for the top framerects. Input address 49DF09 and the value will be how many pixels down you want
the mod to START drawing the teleporter icons IN HEXADECIMAL. The rows are IN DECIMAL 0, 16, 32, 48, 64... etc. In HEXADECIMAL it's 0, 10, 20, 30 etc.
Keep it in bytes. You will then copy the flags it generates (should be just over flag 4000) to use in your level TSC (explained below)
StageSelect.tsc - Example of how you can setup having different location names for different teleporters.
This is just normal TSC using flags. The game is hardcoded to run events 1001-1007 for the slots, but flagjumps can change what it says.
The TSC file for Arthur's House (Pens1.tsc) - Example of how to setup everything else for the teleporters (explained below)
~~~~~
Please open the demonstration mod in a CS editor of you choice to see how the tsc all comes together.
The most important events though are the ones for displaying the teleporter.
One of these events is shown below with comments.
#0100
<KEY
<FL-4008<FL-4009<FL-4010<FL-4011<FL-4012<FL-4013<FL-4014<FL-4015
// What you generate with OOBFlagGen, tells the game the top framerect of where to draw the teleporter images.
<FL+5001<FL-5002<FL-5003<FL-5004
// These are used like normal flags, telling StageSelect.tsc what to call the teleporter options.
<PS+0001:0110<PS+0002:0111<PS+0003:0112<PS+0004:0113
// These are overwriting the teleporter slots to run events 110-113, this is what's saved to profile.dat
but you can (probably) ignore that and just overwrite it every time before you display the tele menu.
<SLP<END
// Displays the teleporter menu.
~~~~~
If you have any other questions you can just contact me (Enlight) because I'm not good at writing tutorials at 4:30 AM
<Cave Story ~ Doukutsu Monogatari> (C) Studio Pixel 2004

View file

@ -0,0 +1,108 @@
; ActionCredit_Read
offset 0040d684
#define
var_a=ebp-30
len=ebp-34
var_text=ebp-2c
Credit.pData=49d614
Credit.offset=49d618
Credit.wait=49d61c
Credit.start_x=49d624
_memcpy=4813c0
GetScriptNumber=40db00
SetStripper=40d150
IsShiftJIS=410e90
#enddefine
mov ecx,[Credit.offset]
inc ecx
mov [Credit.offset],ecx
mov [var_a],ecx
:loop
mov eax,[Credit.pData]
add eax,[var_a]
movsx ecx,BYTE [eax]
cmp ecx,5d
je :break
push ecx
call IsShiftJIS
pop ecx
mov ecx,[var_a]
test eax,eax
je :notShiftJIS
inc ecx
:notShiftJIS
inc ecx
mov [var_a],ecx
jmp :loop
:break
; len = a - Credit.offset
mov edx,[var_a]
sub edx,[Credit.offset]
mov [len],edx
push edx ; Arg3 = len
mov ecx,[Credit.pData]
add ecx,[Credit.offset]
push ecx ; Arg2 = &Credit.pData[Credit.offset]
lea ecx,[var_text]
push ecx ; Arg1 = text
call _memcpy
add esp,0c
; text[len] = '\0'
mov ecx,[len]
mov [ecx+var_text],0
; Credit.offset = a+1
mov eax,[var_a]
inc eax
mov [Credit.offset],eax
add eax,[Credit.pData]
push eax ; Arg1 = &Credit.pData[Credit.offset]
call GetScriptNumber
; len = GetScriptNumber
mov [len],eax
pop ecx
push eax ; Arg4 = len
lea eax,[var_text]
push eax ; Arg3 = text
mov edx,1f000
mov eax,[Credit.wait]
cmp eax,0
jge :more
imul eax,eax,200
add edx,eax
:more
push edx
mov eax,[Credit.start_x]
push eax ; Arg1 = Credit.start_x
call SetStripper
add esp,10
; Credit.wait = 0
mov [Credit.wait],0
; Credit.offset += 0
mov eax,[Credit.offset]
add eax,4
mov [Credit.offset],eax
jmp 0040da6a

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<hack name="noLoseFocus" author="Clownacy / txin">
<panel>
<field type="info">
Prevents the game stopping when in the background
</field>
<field type="data" offset="0x413593">
71
</field>
<field type="data" offset="0x412BC0">
C3
</field>
<field type="data" offset="0x412BF0">
C3
</field>
</panel>
</hack>

View file

@ -0,0 +1,99 @@
0x434101
8B 75 08 8B 46 10 01 46 08 8B 46 14 01 46 0C 6A
20 59 3E 83 A4 8D 7C FF FF FF 00 E2 F5 C6 45 C0
20 C6 45 C4 20 C6 45 C8 30 C6 45 CC 30 C6 45 D0
30 C6 45 D4 20 C6 45 D8 40 C6 45 DC 30 C6 45 E0
40 C6 45 E4 20 C6 45 E8 50 C6 45 EC 30 C6 45 F0
50 C6 45 F4 20 C6 45 F8 60 C6 45 FC 30 C6 45 80
20 C6 45 84 30 C6 45 88 30 C6 45 8C 40 C6 45 90
30 C6 45 94 30 C6 45 98 40 C6 45 9C 40 C6 45 A0
40 C6 45 A4 30 C6 45 A8 50 C6 45 AC 40 C6 45 B0
50 C6 45 B4 30 C6 45 B8 60 C6 45 BC 40 FF 46 64
83 7E 64 01 7E 07 83 66 64 00 FF 46 68 83 7E 68
02 7E 04 83 66 68 00 89 F7 83 C7 54 8B 46 68 C1
E0 04 83 7E 4C 00 75 06 8D 74 05 C0 EB 04 8D 74
05 80 6A 04 59 F3 A5 C9 C3 CC CC CC CC CC CC 64
61 74 61 5C 68 61 73 68 2E 74 78 74 00 CC CC C8
34 01 00 6A 02 6A 05 E8 04 35 05 00 83 C4 04 89
45 DC 68 E0 41 43 00 68 28 E3 49 00 68 40 C7 48
00 8D 85 CC FE FF FF 50 E8 F2 CD 04 00 83 C4 10
68 8C C2 48 00 8D 85 CC FE FF FF 50 E8 CB CD 04
00 83 C4 08 85 C0 75 05 8B 45 DC C9 C3 50 6A 01
6A 20 8D 45 E0 50 E8 09 CD 04 00 83 C4 0C E8 C7
CB 04 00 83 C4 04 31 C9 31 D2 31 DB 30 E4 8A 44
29 E0 3C 30 72 0F 3C 39 77 0B 2C 30 6B DB 0A 66
01 C3 41 EB E9 8B 45 DC 66 89 1C 50 41 42 83 FA
05 7C D7 C9 C3 CC CC CC CC CC CC CC CC CC CC CC
CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
CC CC CC CC CC CC CC CC CC
0x433CC7
43
0x433EFB
8B 75 08 83 46 14 40 81 7E 14 FF 05 00 00 7E 07
C7 46 14 FF 05 00 00 8B 46 10 01 46 08 8B 46 14
01 46 0C 8B 45 08 89 F7 83 C7 54 8B 46 68 C1 E0
04 83 7E 4C 00 75 06 8D 74 05 D0 EB 04 8D 74 05
A0 6A 04 59 F3 A5 C9 C3 CB 3C 43 00 E7 3C 43 00
59 3E 43 00 BC 3E 43 00 CC CC CC CC CC CC CC CC
CC CC CC CC CC C8 10 00 00 6A 41 5B 6A 05 59 8B
75 08 0F B7 06 6A 08 5F 31 D2 F7 F7 6B D2 20 6B
C0 10 89 55 F0 89 45 F4 83 C2 20 83 C0 10 89 55
F8 89 45 FC 51 6A 08 8D 45 F0 50 6A 08 53 68 1C
F9 48 00 E8 1D 84 FD FF 5B 5B 83 C4 0C 59 83 C3
28 83 C6 02 E2 BC C9 C3 CC CC
0x40F9B5
F4
0x40FD8A
E8 61 44 02 00 89 85 0C FE FF FF 83 A5 64 FF FF
FF 00 83 A5 E4 FE FF FF 00 83 A5 9C FE FF FF 00
68 20 20 20 00 E8 FC CA FF FF 89 45 C0 58
0x40FF0D
55
0x40FF52
10
0x40FF8F
2A
0x40FF99
20
0x410141
CF
0x4102FB
FF 75 C4 8D 85 FC FE FF FF 50 FF B5 0C FF FF FF
6A 74 68 1C F9 48 00 E8 A9 C0 FF FF 83 C4 14 6A
00 6A 00 E8 9D A8 FF FF 83 C4 08 FF B5 0C FE FF
FF E8 2F 3C 02 00 83 C4 04 83 BD 9C FE FF FF 00
74 0C 6A 08 6A 10 E8 EA A0 00 00 83 C4 04 E8 22
20 00 00 FF 35 58 E4 49 00 E8 E7 AF FF FF 83 C4
04 85 C0 0F 85 A0 FB FF FF EB 57 6A 00 E8 73 0B
01 00 83 C4 04 FF 15 24 C1 48 00 89 85 E8 FE FF
FF FF 15 24 C1 48 00 8B 8D E8 FE FF FF 81 C1 E8
03 00 00 39 C8 73 28 6A 00 68 1C F9 48 00 E8 42
C6 FF FF 83 C4 08 E8 CA 1F 00 00 FF 35 58 E4 49
00 E8 8F AF FF FF 83 C4 04 85 C0 75 C4 EB 03 6A
03 58 50 FF B5 0C FE FF FF E8 C2 0E 07 00 83 C4
04 58 C9 C3 45 01 41 00 98 01 41 00 EB 01 41 00
3E 02 41 00 8E 02 41 00 CC CC CC CC CC CC CC CC
CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
CC CC CC CC CC
----------Specifications:
The hack reads the first 5 item numbers listed in data\hash.txt, and displays them on the title screen in order.
The item numbers in data\hash.txt can be separated by any non-numerical character.
If data\hash.txt does not exist, the title screen will display item 0 in all 5 slots.
The hack optimises NPCs 64 and 65's velocity and frame code.
004341F0 - load items from hash.txt
00433F60 - render title screen items
----------Limitations:
If you enter item numbers in hash.txt over 65535, it will not work properly.
If hash.txt is more than 31 bytes large, a buffer will overflow, and the game will likely crash. That said, due to the previous limitation, this should never happen.
----------Info:
This is version 1.2 of the "Titlescreen Hash Display" hack, created by zxin and commissioned by duncathan_salt.

View file

@ -0,0 +1,103 @@
; Reads version number from data\version.txt
; The file must start with the version string in the format shown at the bottom of this file
; Made by periwinkle
#define
gDataPath=49E220
gVersionString=48C2BC
sprintf=481010
fopen=480FFD
rb=48C28C
fread=480F55
fclose=480E1B
sscanf=4817E8
call VirtualProtect=data ff 15 84 c0 48 00
filePath=[ebp-114]
bufchk=[ebp-10]
tmp=[ebp-c]
oldProtect=[ebp-8]
fp=[ebp-4]
v1=[ebp+8]
v2=[ebp+c]
v3=[ebp+10]
v4=[ebp+14]
#enddefine
offset 410990 ; GetCompileVersion
push ebp
mov ebp, esp
sub esp, 114
mov eax, [498B20]
mov bufchk, eax
; Get path to data\version.txt file
push gDataPath
push :VersionPath ; "%s\version.txt"
lea edx, filePath
push edx
call sprintf
add esp, c
; Open file
push rb ; "rb"
lea ecx, filePath
push ecx
call fopen
add esp, 8
test eax, eax
jz :ReadVersion
mov fp, eax
; Mark gVersionString as read/write (it's normally in a read-only segment)
lea eax, oldProtect
push eax
push 4 ; PAGE_READWRITE
push 40 ; Max size of gVersionString (including null character)
push gVersionString
call VirtualProtect
test eax, eax
jz :CloseFile
; Read contents of file into gVersionString
push fp
push 3F ; count (excluding null character)
push 1 ; size
push gVersionString
call fread
add esp, 10
mov byte [eax+gVersionString], 0 ; Write null terminator
; Restore previous protection status
lea eax, tmp
push eax
push oldProtect
push 40
push gVersionString
call VirtualProtect
:CloseFile
push fp
call fclose
pop ecx
:ReadVersion
; Parse the version string
push v4
push v3
push v2
push v1
push :VersionString
push gVersionString
call sscanf
add esp, 18
mov ecx, bufchk
call 480DC1
leave
retn
:VersionPath
data 25 73 5C 76 65 72 73 69 6F 6E 2E 74 78 74 00 00 ; "%s\version.txt"
:VersionString
data 76 25 64 2E 25 64 2E 25 64 2E 25 64 00 ; "v%d.%d.%d.%d"

695
docs/csresearch.md Normal file
View file

@ -0,0 +1,695 @@
# Cave Story Research Compendium
*A guide to Cave Story's file formats and important hacks*
**by fdeitylink**
**Last updated 2019-10-23**
## Rationale
* Learning more about Cave Story for my own edification
* File formats & important hacks weren't all published and collected
* Actually, they *are* included with Miza, but I hadn't realized this when beginning
## Notes
* Some information may be incorrect - S.P. Gardebiter's guides are a bit old. Feel free to tell me of any information that is incorrect or in need of an update.
* Cave Story was made for Windows and x86 architecture, which leads to some nuances to look out for
* Newlines are encoded as `\r\n` (affects TSC)
* Multibyte data is encoded in little endian format
## Credits
Big thanks to all of the following people for much of the following information!
* Carrotlord for the TSC file format
* q3hardcore for the (C)Pixel requirement removal hack
* S.P. Gardebiter for the PXA file format values, the executable mapdata format, and the `npc.tbl` format
* Noxid for Booster's Lab
* Used to determine how particular edits affected the files
* Provided newest information, especially tileset and sound values for `npc.tbl`
*WIthout further ado, let's begin!*
## Flags
### Setting Flags
Bitwise OR the current flags with the flag to set
`flags |= flag`
### Unsetting Flags
Bitwise XOR the flag to set with `0b1111_1111`
Bitwise AND the current flags with that result
`flags &= (flag ^ 0xFF)`
### Checking Flags
Bitwise AND the current flags with the flag to check
Returns flag if it is set, `0` otherwise
`is_set = (flags & flag)`
## TSC File Format
* The encoding character is the middle character in the file (i.e. the character at `floor(file_size / 2)`.
* For example, if the file size is 313 bytes, the encoding character is at the 156th byte.
* During encoding, all characters in the file, except for the encoding character itself, have the value of the encoding character added to them.
* To be clear, the encoding character itself, at the middle of the file, is *not* encoding, but other instances of it can be. If the encoding character was `a`, that one instance of `a` would not be encoded, but others would be.
* To encode a TSC file, add the value of the encoding character to all characters *except* for the encoding character.
* To be clear, do not encode the middle byte of the file
* It then follows that to decode a TSC file, subtract the value of the encoding character from each character
* Also note that newlines in TSC files are Windows-style (`"\r\n"`), so they take up two bytes that should each be treated as independent characters when encoding and decoding.
## Removing the `(C)Pixel` Requirement
| Offset | Old Value | New Value |
|-----------|-----------|-----------|
| `0x1136C` | `0x74` | `0xEB` |
| `0x8C4D8` | `0x28` | `0x00` |
In every `.pbm` file, find the `(C)Pixel` at the end and replace the `(` with the null character (`0x00`)
## Enabling bitmaps
| Offset | Old Value | New Value |
|---------------------------------|-----------|-----------|
| `0x8C286`, `0x8C30A`, `0x8C32E` | `0x70` | `0x62` |
| `0x8C287`, `0x8C30B`, `0x8C32F` | `0x62` | `0x6D` |
| `0x8C288`, `0x8C30C`, `0x8C330` | `0x6D` | `0x70` |
## `npc.tbl` Format
* Cave Story has 361 (`0x169`) entities numbered from 0 to 360
* `npc.tbl` contains 11 sets of data. The starting address of each set is a multiple of `0x169`.
* Each set of data contains the corresponding value for each entity, in order.
* For example: At offset `0x02D2` is the Health data for entity 0. At offset `0x02D4` is the Health data for entity 1.
| Offset | Description | Size per Entity (bytes) |
| ------------|------------------------|-------------------------|
| `0x0000` | Flags | 2 |
| `0x02D2` | Health | 2 |
| `0x05A4` | Tileset Number | 1 |
| `0x070D` | Death Sound | 1 |
| `0x0876` | Hurt Sound | 1 |
| `0x09DF` | Death Smoke | 1 |
| `0x0B48` | Experience | 4 |
| `0x10EC` | Damage | 4 |
| `0x1690` | Collision Bounding Box | 4 |
| `0x1C34` | Display Bounding Box | 4 |
### Flags
#### Byte 1
* `0x01`: Solid
* `0x02`: No effect about Tile 44
* `0x04`: Invulnerable (Blink Sound)
* `0x08`: Ignore solid
* `0x10`: Bouncing at top
* `0x20`: Shootable
* `0x40`: Special Solid
* `0x80`: Rear and top no damage
#### Byte 2
* `0x01`: Call Event on Contact
* `0x02`: Call Event on Death
* `0x04`: Drop Hearts and EXP [Unused]
* `0x08`: Visible if FlagID is set
* `0x10`: Spawn with Alternate Direction
* `0x20`: Call Event on Interaction
* `0x40`: Invisible if FlagID is set
* `0x80`: Show Damage Numbers ? ("Interactable" in Booster's Lab)
### Tilesets
* `0x00`: title.pbm
* `0x01`: '2004.12 Studio Pixel'
* `0x02`: Current map tileset
* `0x03`: [Unused]
* `0x04`: [Unused]
* `0x05`: [Unused]
* `0x06`: Fade.pbm
* `0x07`: [Unused]
* `0x08`: ItemImage.pbm
* `0x09`: Map System Buffer
* `0x0A`: Screen Buffer
* `0x0B`: Arms.pbm
* `0x0C`: ArmsImage.pbm
* `0x0D`: MNA Text Buffer
* `0x0E`: StageImage.pbm
* `0x0F`: Loading.pbm
* `0x10`: MyChar.pbm
* `0x11`: Bullet.pbm
* `0x12`: [Unused]
* `0x13`: Caret.pbm
* `0x14`: Npc/NpcSym.pbm
* `0x15`: Map NPC Set 1
* `0x16`: Map NPC Set 2
* `0x17`: Npc/NpcRegu.pbm
* `0x18`: [Unused]
* `0x19`: [Unused]
* `0x1A`: TextBox.pbm
* `0x1B`: Face.pbm
* `0x1C`: Current Map BG
* `0x1D`: Damage # Buffer
* `0x1E`: Textbox Buffer 1
* `0x1F`: Textbox Buffer 2
* `0x20`: Textbox Buffer 3
* `0x21`: [???]
* `0x22`: [Unused]
* `0x23`: Credits Buffer 1
* `0x24`: Credits Buffer 2
* `0x25`: Credits Buffer 3
* `0x26`: [Unused]
* `0x27`: [Unused]
### Hurt / Death Sounds
* `0x00`: [Nothing]
* `0x01`: Blip
* `0x02`: Message Typing
* `0x03`: Bonk
* `0x04`: Weapon Switching
* `0x05`: Menu Prompt?
* `0x06`: Critter hop
* `0x07`: Silent?
* `0x08`: Low charge sound
* `0x09`: [Nothing?]
* `0x0A`: [Nothing?]
* `0x0B`: Door
* `0x0C`: Block Destroy
* `0x0D`: [Nothing?]
* `0x0E`: Get EXP
* `0x0F`: Quote Jump
* `0x10`: Taking Damage
* `0x11`: Death
* `0x12`: [Menu?]
* `0x13`: [Nothing?]
* `0x14`: Health/Ammo Refill
* `0x15`: Bubble
* `0x16`: Chest open
* `0x17`: Thud
* `0x18`: Walking
* `0x19`: Enemy killed?
* `0x1A`: Quake
* `0x1B`: Level up
* `0x1C`: Shot hit
* `0x1D`: Teleport
* `0x1E`: Critter jump
* `0x1F`: Ting
* `0x20`: Polar Star lvl
* `0x21`: Fireball
* `0x22`: Fireball bounce
* `0x23`: Explosion
* `0x24`: [Nothing?]
* `0x25`: No Ammo
* `0x26`: Get item?
* `0x27`: [*bvng*] Em fire? - taken from BL, what is em?
* `0x28`: Water
* `0x29`: Water
* `0x2A`: Get Missile [Beep]
* `0x2B`: Computer [Beep]
* `0x2C`: Missile Hit
* `0x2D`: EXP Bounce
* `0x2E`: Ironhead Shot
* `0x2F`: Explosion 2?
* `0x30`: Bubble pop
* `0x31`: Spur lvl 1
* `0x32`: Sqeek!
* `0x33`: Squeal!
* `0x34`: Roar
* `0x35`: Eyoww
* `0x36`: Thud
* `0x37`: Squeek
* `0x38`: Splash
* `0x39`: Little damage sound
* `0x3A`: [*chik*]
* `0x3B`: Spur Charge (lowest)
* `0x3C`: Spur Charge (lower)
* `0x3D`: Spur Charge (higher)
* `0x3E`: Spur lvl 2
* `0x3F`: Spur lvl 3
* `0x40`: Spur MAX
* `0x41`: Spur full?
* `0x42`: [Nothing?]
* `0x43`: [Nothing?]
* `0x44`: [Nothing?]
* `0x45`: [Nothing?]
* `0x46`: Tiny Explosion
* `0x47`: Medium Explosion
* `0x48`: Large Explosion
* `0x49`: [Nothing?]
* `0x4A`: [Nothing?]
* `0x4B`: [Nothing?]
* `0x4C`: [Nothing?]
* `0x4D`: [Nothing?]
* `0x4E`: [Nothing?]
* `0x4F`: [Nothing?]
* `0x50`: [Nothing?]
* `0x51`: [Nothing?]
* `0x52`: [Nothing?]
* `0x53`: [Nothing?]
* `0x54`: [Nothing?]
* `0x55`: [Nothing?]
* `0x56`: [Nothing?]
* `0x57`: [Nothing?]
* `0x58`: [Nothing?]
* `0x59`: [Nothing?]
* `0x5A`: [Nothing?]
* `0x5B`: [Nothing?]
* `0x5C`: [Nothing?]
* `0x5D`: [Nothing?]
* `0x5E`: [Nothing?]
* `0x5F`: [Nothing?]
* `0x60`: [Nothing?]
* `0x61`: [Nothing?]
* `0x62`: [Nothing?]
* `0x63`: [Nothing?]
* `0x64`: Bubbler lvl 3
* `0x65`: Lightning
* `0x66`: Sandcroc Bite
* `0x67`: Curly Charge
* `0x68`: Hit Invisible Block
* `0x69`: Puppy Bark
* `0x6A`: Blade whoosh
* `0x6B`: Block Move
* `0x6C`: Power Critter Jump
* `0x6D`: Critter Fly
* `0x6E`: Power Critter Fly
* `0x6F`: Thud
* `0x70`: Bigger thud
* `0x71`: [*pshew*] Helicopter?
* `0x72`: Core hurt
* `0x73`: Core thrust
* `0x74`: Core super charge
* `0x75`: Nemesis?
* `0x76`: [Nothing?]
* `0x77`: [Nothing?]
* `0x78`: [Nothing?]
* `0x79`: [Nothing?]
* `0x7A`: [Nothing?]
* `0x7B`: [Nothing?]
* `0x7C`: [Nothing?]
* `0x7D`: [Nothing?]
* `0x7E`: [Nothing?]
* `0x7F`: [Nothing?]
* `0x80`: [Nothing?]
* `0x81`: [Nothing?]
* `0x82`: [Nothing?]
* `0x83`: [Nothing?]
* `0x84`: [Nothing?]
* `0x85`: [Nothing?]
* `0x86`: [Nothing?]
* `0x87`: [Nothing?]
* `0x88`: [Nothing?]
* `0x89`: [Nothing?]
* `0x90`: [Nothing?]
* `0x91`: [Nothing?]
* `0x92`: [Nothing?]
* `0x93`: [Nothing?]
* `0x94`: [Nothing?]
* `0x95`: [Nothing?]
* `0x96`: BASS01
* `0x97`: SNARE01
* `0x98`: HICLOSE
* `0x99`: HIOPEN
* `0x9A`: TOM01
* `0x9B`: PER01
### Smoke
* `0x01`: None
* `0x02`: Small amount
* `0x03`: Medium amount
* `0x04`: Large amount
### Bounding Box Addresses
*From the beginning of each entity's section*
* `0x00`: Left
* `0x01`: Top
* `0x02`: Right
* `0x03`: Bottom
## Map Formats
### Map Metadata
* Applies to freeware executable and CS+ `stage.tbl` file
* Begins at offset `0x937B0` in freeware executable
| Offset (from beginning of each map section) | Description | Size (bytes) |
|---------------------------------------------|---------------------------|--------------|
| `0x00` | Tileset name | 32 |
| `0x20` | Filename | 32 |
| `0x40` | Background Scrolling Type | 4 |
| `0x44` | Background Name | 32 |
| `0x64` | NPC Spritesheet 1 | 32 |
| `0x84` | NPC Spritesheet 2 | 32 |
| `0xA4` | Major Boss | 1 |
| `0xA5` | Map Name | 35 |
#### Background Scrolling Types
* `0x00`: No Scrolling
* `0x01`: Slow Scrolling
* `0x02`: Equal Scrolling
* `0x03`: Water-Style
* `0x04`: Null
* `0x05`: Auto Scrolling
* `0x06`: Cloud-Style [Gravity: Left]
* `0x07`: Cloud-Style [Gravity: Normal]
#### Major Bosses
* `0x00`: No Major Boss
* `0x01`: Omega
* `0x02`: Balfrog
* `0x03`: Monster X
* `0x04`: The Core
* `0x05`: Iron Head
* `0x06`: Dragon Sisters
* `0x07`: Undead Core
* `0x08`: Heavy Press
* `0x09`: Ballos
### PXM File Format
**Note:** Maps must have a minimum size of 21x16
| Offset | Description | Size (bytes) |
|------------------|-----------------------------------------------|--------------|
| `0x00` | `"PXM"` | 3 |
| `0x03` | `0x10` | 1 |
| `0x04` | Map length | 2 |
| `0x06` | Map height | 2 |
| Rest of the file | Tile index (left to right then top to bottom) | 1 |
### PXE File Format
| Offset | Description | Size (bytes) |
|------------------|-----------------------------------------------|--------------|
| `0x00` | `"PXE"` | 3 |
| `0x03` | `0x00` | 1 |
| `0x04` | Entity count | 4 |
| Rest of the file | Entity | 12 |
#### Entity Format
| Offset (from beginning of each entity section) | Description | Size (bytes) |
|------------------------------------------------|--------------|-------------|
| `0x00` | x coordinate | 2 |
| `0x02` | y coordinate | 2 |
| `0x06` | flag number | 2 |
| `0x08` | event number | 2 |
| `0x0A` | type | 2 |
| `0x0C` | flags | 2 |
### PXA File Format
* No header
* Array of tile types corresponding to tiles in a tileset (left to right then top to bottom)
* Tilesets have up to 16x16 tiles, so PXA files are always 256 bytes - fill in `0x00` for tiles not in the tileset
#### Flags
* `0x01`: Special
* `0x02`: Special
* `0x04`: Special
* `0x08`: Special
* `0x10`: Slope
* `0x20`: Water
* `0x40`: Foreground
* `0x80`: Wind
#### Null (`0x00`)
* `0x00`: Null
* `0x01`: Background Tile
* `0x02`: Background Water
* `0x03`: Background NPC-Blocker Tile [Unused]
* `0x04`: Background NPC-Blocker Tile [Unused]
* `0x05`: Background Shoot-Passer Tile [Unused]
* `0x06`: Background Tile [Unused]
* `0x07`: Background Tile [Unused]
* `0x08`: Background Tile [Unused]
* `0x09`: Background Tile [Unused]
* `0x0A`: Background Tile [Unused]
* `0x0B`: Background Tile [Unused]
* `0x0C`: Background Tile [Unused]
* `0x0D`: Background Tile [Unused]
* `0x0E`: Background Tile [Unused]
* `0x0F`: Background Tile [Unused]
#### Slope (`0x10`)
* `0x10`: Background Tile [Unused]
* `0x11`: Background Tile [Unused]
* `0x12`: Background Tile [Unused]
* `0x13`: Background Tile [Unused]
* `0x14`: Background Tile [Unused]
* `0x15`: Background Tile [Unused]
* `0x16`: Background Tile [Unused]
* `0x17`: Background Tile [Unused]
* `0x18`: Background Tile [Unused]
* `0x19`: Background Tile [Unused]
* `0x1A`: Background Tile [Unused]
* `0x1B`: Background Tile [Unused]
* `0x1C`: Background Tile [Unused]
* `0x1D`: Background Tile [Unused]
* `0x1E`: Background Tile [Unused]
* `0x1F`: Background Tile [Unused]
#### Water (`0x20`)
* `0x20`: Null [Unused]
* `0x21`: Null [Unused]
* `0x22`: Null [Unused]
* `0x23`: Null [Unused]
* `0x24`: Null [Unused]
* `0x25`: Null [Unused]
* `0x26`: Null [Unused]
* `0x27`: Null [Unused]
* `0x28`: Null [Unused]
* `0x29`: Null [Unused]
* `0x2A`: Null [Unused]
* `0x2B`: Null [Unused]
* `0x2C`: Null [Unused]
* `0x2D`: Null [Unused]
* `0x2E`: Null [Unused]
* `0x2F`: Null [Unused]
#### Slope + Water (`0x30`)
* `0x30`: Null [Unused]
* `0x31`: Null [Unused]
* `0x32`: Null [Unused]
* `0x33`: Null [Unused]
* `0x34`: Null [Unused]
* `0x35`: Null [Unused]
* `0x36`: Null [Unused]
* `0x37`: Null [Unused]
* `0x38`: Null [Unused]
* `0x39`: Null [Unused]
* `0x3A`: Null [Unused]
* `0x3B`: Null [Unused]
* `0x3C`: Null [Unused]
* `0x3D`: Null [Unused]
* `0x3E`: Null [Unused]
* `0x3F`: Null [Unused]
#### Foreground (`0x40`)
* `0x40`: Foreground Tile
* `0x41`: Solid Tile
* `0x42`: 10 Damage Foreground Tile
* `0x43`: Special Block Tile
* `0x44`: Foreground NPC-Blocker Tile
* `0x45`: Foreground Tile [Unused]
* `0x46`: Character-Blocker Tile [Unused]
* `0x47`: Foreground Tile [Unused]
* `0x48`: Foreground Tile [Unused]
* `0x49`: Foreground Tile [Unused]
* `0x4A`: Foreground Tile [Unused]
* `0x4B`: Foreground Tile [Unused]
* `0x4C`: Foreground Tile [Unused]
* `0x4D`: Foreground Tile [Unused]
* `0x4E`: Foreground Tile [Unused]
* `0x4F`: Foreground Tile [Unused]
#### Foreground + Slope (`0x50`)
* `0x50`: Slope Tile
* `0x51`: Slope Tile
* `0x52`: Slope Tile
* `0x53`: Slope Tile
* `0x54`: Slope Tile
* `0x55`: Slope Tile
* `0x56`: Slope Tile
* `0x57`: Slope Tile
* `0x58`: Foreground Tile [Unused]
* `0x59`: Foreground Tile [Unused]
* `0x5A`: Foreground Tile [Unused]
* `0x5B`: Foreground Tile [Unused]
* `0x5C`: Foreground Tile [Unused]
* `0x5D`: Foreground Tile [Unused]
* `0x5E`: Foreground Tile [Unused]
* `0x5F`: Foreground Tile [Unused]
#### Foreground + Water (`0x60`)
* `0x60`: Foreground Water
* `0x61`: Solid Tile [Unused]
* `0x62`: 10 Damage Foreground Water Tile [Red]
* `0x63`: Foreground Tile [Unused]
* `0x64`: Foreground NPC-Blocker Tile [Unused]
* `0x65`: Foreground Tile [Unused]
* `0x66`: Foreground Tile [Unused]
* `0x67`: Foreground Tile [Unused]
* `0x68`: Foreground Tile [Unused]
* `0x69`: Foreground Tile [Unused]
* `0x6A`: Foreground Tile [Unused]
* `0x6B`: Foreground Tile [Unused]
* `0x6C`: Foreground Tile [Unused]
* `0x6D`: Foreground Tile [Unused]
* `0x6E`: Foreground Tile [Unused]
* `0x6F`: Foreground Tile [Unused]
#### Foreground + Slope + Water (`0x70`)
* `0x70`: Slope Tile [Water]
* `0x71`: Slope Tile [Water]
* `0x72`: Slope Tile [Water]
* `0x73`: Slope Tile [Water]
* `0x74`: Slope Tile [Water]
* `0x75`: Slope Tile [Water]
* `0x76`: Slope Tile [Water]
* `0x77`: Slope Tile [Water]
* `0x78`: Foreground Tile [Unused]
* `0x79`: Foreground Tile [Unused]
* `0x7A`: Foreground Tile [Unused]
* `0x7B`: Foreground Tile [Unused]
* `0x7C`: Foreground Tile [Unused]
* `0x7D`: Foreground Tile [Unused]
* `0x7E`: Foreground Tile [Unused]
* `0x7F`: Foreground Tile [Unused]
#### Wind (`0x80`)
* `0x80`: Wind [Left]
* `0x81`: Wind [Up]
* `0x82`: Wind [Right]
* `0x83`: Wind [Down]
* `0x84`: Null [Unused]
* `0x85`: Null [Unused]
* `0x86`: Null [Unused]
* `0x87`: Null [Unused]
* `0x88`: Null [Unused]
* `0x89`: Null [Unused]
* `0x8A`: Null [Unused]
* `0x8B`: Null [Unused]
* `0x8C`: Null [Unused]
* `0x8D`: Null [Unused]
* `0x8E`: Null [Unused]
* `0x8F`: Null [Unused]
#### Wind + Slope (`0x90`)
* `0x90`: Null [Unused]
* `0x91`: Null [Unused]
* `0x92`: Null [Unused]
* `0x93`: Null [Unused]
* `0x94`: Null [Unused]
* `0x95`: Null [Unused]
* `0x96`: Null [Unused]
* `0x97`: Null [Unused]
* `0x98`: Null [Unused]
* `0x99`: Null [Unused]
* `0x9A`: Null [Unused]
* `0x9B`: Null [Unused]
* `0x9C`: Null [Unused]
* `0x9D`: Null [Unused]
* `0x9E`: Null [Unused]
* `0x9F`: Null [Unused]
#### Wind + Water (`0xA0`)
* `0xA0`: Water Wind [Left]
* `0xA1`: Water Wind [Up]
* `0xA2`: Water Wind [Right]
* `0xA3`: Water Wind [Down]
* `0xA4`: Null [Unused]
* `0xA5`: Null [Unused]
* `0xA6`: Null [Unused]
* `0xA7`: Null [Unused]
* `0xA8` :Null [Unused]
* `0xA9`: Null [Unused]
* `0xAA`: Null [Unused]
* `0xAB`: Null [Unused]
* `0xAC`: Null [Unused]
* `0xAD`: Null [Unused]
* `0xAE`: Null [Unused]
* `0xAF`: Null [Unused]
#### Wind + Slope + Water (`0xB0`)
* `0xB0`: Null [Unused]
* `0xB1`: Null [Unused]
* `0xB2`: Null [Unused]
* `0xB3`: Null [Unused]
* `0xB4`: Null [Unused]
* `0xB5`: Null [Unused]
* `0xB6`: Null [Unused]
* `0xB7`: Null [Unused]
* `0xB8`: Null [Unused]
* `0xB9`: Null [Unused]
* `0xBA`: Null [Unused]
* `0xBB`: Null [Unused]
* `0xBC`: Null [Unused]
* `0xBD`: Null [Unused]
* `0xBE`: Null [Unused]
* `0xBF`: Null [Unused]
#### Wind + Foreground (`0xC0`)
* `0xC0`: Null [Unused]
* `0xC1`: Null [Unused]
* `0xC2`: Null [Unused]
* `0xC3`: Null [Unused]
* `0xC4`: Null [Unused]
* `0xC5`: Null [Unused]
* `0xC6`: Null [Unused]
* `0xC7`: Null [Unused]
* `0xC8`: Null [Unused]
* `0xC9`: Null [Unused]
* `0xCA`: Null [Unused]
* `0xCB`: Null [Unused]
* `0xCC`: Null [Unused]
* `0xCD`: Null [Unused]
* `0xCE`: Null [Unused]
* `0xCF`: Null [Unused]
#### Wind + Foreground + Slope (`0xD0`)
* `0xD0`: Null [Unused]
* `0xD1`: Null [Unused]
* `0xD2`: Null [Unused]
* `0xD3`: Null [Unused]
* `0xD4`: Null [Unused]
* `0xD5`: Null [Unused]
* `0xD6`: Null [Unused]
* `0xD7`: Null [Unused]
* `0xD8`: Null [Unused]
* `0xD9`: Null [Unused]
* `0xDA`: Null [Unused]
* `0xDB`: Null [Unused]
* `0xDC`: Null [Unused]
* `0xDD`: Null [Unused]
* `0xDE`: Null [Unused]
* `0xDF`: Null [Unused]
#### Wind + Foreground + Water (`0xE0`)
* `0xE0`: Null [Unused]
* `0xE1`: Null [Unused]
* `0xE2`: Null [Unused]
* `0xE3`: Null [Unused]
* `0xE4`: Null [Unused]
* `0xE5`: Null [Unused]
* `0xE6`: Null [Unused]
* `0xE7`: Null [Unused]
* `0xE8`: Null [Unused]
* `0xE9`: Null [Unused]
* `0xEA`: Null [Unused]
* `0xEB`: Null [Unused]
* `0xEC`: Null [Unused]
* `0xED`: Null [Unused]
* `0xEE`: Null [Unused]
* `0xEF`: Null [Unused]
#### Wind + Foreground + Slope + Water (`0xF0`)
* `0xF0`: Null [Unused]
* `0xF1`: Null [Unused]
* `0xF2`: Null [Unused]
* `0xF3`: Null [Unused]
* `0xF4`: Null [Unused]
* `0xF5`: Null [Unused]
* `0xF6`: Null [Unused]
* `0xF7`: Null [Unused]
* `0xF8`: Null [Unused]
* `0xF9`: Null [Unused]
* `0xFA`: Null [Unused]
* `0xFB`: Null [Unused]
* `0xFC`: Null [Unused]
* `0xFD`: Null [Unused]
* `0xFE`: Null [Unused]
* `0xFF`: Null [Unused]

View file

@ -1,741 +0,0 @@
-=~ Cave Story Research Compendium ~=-
-=~ A guide to Cave Story's file formats and important hacks for those who are interested ~=-
by F_Deity_Link, using research by others as well
Made it for myself to learn as well as because the file formats and important hacks weren't all 'published'
(actually they're in miza.chm, included with the Miza editor, but I hadn't realized this when I started),
and I figured a centralized document with all of it would be helpful
Last updated 2017-02-06
Note that some info might be incorrect - SP's guides are a bit old - feel free to tell me of anything that could be updated
-=~ Credits ~=-
Big thanks to all the people I got much of this research from!
- Carrotlord for TSC file format
- q3hardcore for (C)Pixel requirement removal
- S.P. Gardebiter for PXA values + EXE mapdata format + npc.tbl format
- dooey100 for flag setting, unsetting, and checking
- Noxid for Booster's Lab, which helped for seeing how edits affected the files, as well as getting newest info
- especially tilesets and sounds in npc.tbl
-=~ TSC File Format ~=-
Encoding char is the middle character in file: char at floor (file size / 2)
ex: size of 313 bytes, encode char is at 156th byte
Newlines are Windows-style newlines ("\r\n"): 0x0D + encode char val, then 0x0A + encode char val
- Because they're Windows-style newlines, open your files in binary mode, not text, otherwise the following transformations are done, which will end up corrupting the file
- "\r\n" --> '\n' for input
- '\n' --> "\r\n" for output
All characters in the file except for the encoding char itself (so other copies of the character are still encoded) have the value of the encoding char added to them when saved
ex: encoding char = [space]: only that instance of the [space] character will not be encoded, but the others will
When reading a TSC file, subtract the encoding character from each character (except the encoding char itself, as noted above) to properly decode the file
When writing a TSC file, add the encoding character to each character (except the encoding char itself, as noted above) to properly encode the file
-=~ Removing (C)Pixel Requirement ~=-
0x1136C: 0x74 --> 0xEB
0x8C4D8: 0x28 --> 0x00
Then in every .pbm, find the (C)Pixel at the end and change the '(' to the null character (0x00)
-=~ Allowing bitmaps ~=-
0x8C286 through 8 and 0x0008C30A through C: 0x70, 0x62, and 0x6D --> 0x62, 0x6D, and 0x70
0x8C32E and F: 0x70 and 0x62 --> 0x62 and 0x6D
0x8C330: 0x6D --> 0x70
-=~ npc.tbl Format ~=-
Cave Story has 361 entities (0x169) from 0 - 360
npc.tbl has 11 sets of data, the starting addresses of which are all multiples of 0x169:
0x0000: Flags - 2 Bytes
0x02D2: Health - 2 Bytes
0x05A4: Tileset Number - 1 Byte
0x070D: Death Sound - 1 Byte
0x0876: Hurt Sound - 1 Byte
0x09DF: Death Smoke - 1 Byte
0x0B48: Experience - 4 Bytes
0x10EC: Damage - 4 Bytes
0x1690: Collsion Bounding Box - 4 Bytes
0x1C34: Display Bounding Box - 4 Bytes
-=~ Flags ~=-
-=~ Byte 1 ~=-
0x01: Solid
0x02: No effect about Tile 44
0x04: Invulnerable (Blink Sound)
0x08: Ignore solid
0x10: Bouncing at top
0x20: Shootable
0x40: Special Solid
0x80: Rear and top no damage
-=~ Byte 2 ~=-
0x01: Call Event on Contact
0x02: Call Event on Death
0x04: Drop Hearts and EXP [Unused]
0x08: Visible if FlagID is set
0x10: Spawn with Alternate Direction
0x20: Call Event on Interaction
0x40: Invisible if FlagID is set
0x80: Show Damage Numbers ?"Interactable" in Booster's Lab
Setting Flags: Flag to set OR current flags
Unsetting Flags: (Flag to unset XOR 1111 1111) AND current flags
Checking Flags: Flag to check AND current flags - returns flag being checked if it is set, 0 if not set
-=~ Tilesets ~=-
0x00: title.pbm
0x01: '2004.12 Studio Pixel'
0x02: Current map tileset
0x03: [Unused]
0x04: [Unused]
0x05: [Unused]
0x06: Fade.pbm
0x07: [Unused]
0x08: ItemImage.pbm
0x09: Map System Buffer
0x0A: Screen Buffer
0x0B: Arms.pbm
0x0C: ArmsImage.pbm
0x0D: MNA Text Buffer
0x0E: StageImage.pbm
0x0F: Loading.pbm
0x10: MyChar.pbm
0x11: Bullet.pbm
0x12: [Unused]
0x13: Caret.pbm
0x14: Npc/NpcSym.pbm
0x15: Map NPC Set 1
0x16: Map NPC Set 2
0x17: Npc/NpcRegu.pbm
0x18: [Unused]
0x19: [Unused]
0x1A: TextBox.pbm
0x1B: Face.pbm
0x1C: Current Map BG
0x1D: Damage # Buffer
0x1E: Textbox Buffer 1
0x1F: Textbox Buffer 2
0x20: Textbox Buffer 3
0x21: [???]
0x22: [Unused]
0x23: Credits Buffer 1
0x24: Credits Buffer 2
0x25: Credits Buffer 3
0x26: [Unused]
0x27: [Unused]
-=~ Hurt / Death Sounds ~=-
0x00: [Nothing]
0x01: Blip
0x02: Message Typing
0x03: Bonk
0x04: Weapon Switching
0x05: Menu Prompt?
0x06: Critter hop
0x07: Silent?
0x08: Low charge sound
0x09: [Nothing?]
0x0A: [Nothing?]
0x0B: Door
0x0C: Block Destroy
0x0D: [Nothing?]
0x0E: Get EXP
0x0F: Quote Jump
0x10: Taking Damage
0x11: Death
0x12: [Menu?]
0x13: [Nothing?]
0x14: Health/Ammo Refill
0x15: Bubble
0x16: Chest open
0x17: Thud
0x18: Walking
0x19: Enemy killed?
0x1A: Quake
0x1B: Level up
0x1C: Shot hit
0x1D: Teleport
0x1E: Critter jump
0x1F: Ting
0x20: Polar Star lvl
0x21: Fireball
0x22: Fireball bounce
0x23: Explosion
0x24: [Nothing?]
0x25: No Ammo
0x26: Get item?
0x27: [*bvng*] Em fire? - taken from BL, what is em?
0x28: Water
0x29: Water
0x2A: Get Missile [Beep]
0x2B: Computer [Beep]
0x2C: Missile Hit
0x2D: EXP Bounce
0x2E: Ironhead Shot
0x2F: Explosion 2?
0x30: Bubble pop
0x31: Spur lvl 1
0x32: Sqeek!
0x33: Squeal!
0x34: Roar
0x35: Eyoww
0x36: Thud
0x37: Squeek
0x38: Splash
0x39: Little damage sound
0x3A: [*chik*]
0x3B: Spur Charge (lowest)
0x3C: Spur Charge (lower)
0x3D: Spur Charge (higher)
0x3E: Spur lvl 2
0x3F: Spur lvl 3
0x40: Spur MAX
0x41: Spur full?
0x42: [Nothing?]
0x43: [Nothing?]
0x44: [Nothing?]
0x45: [Nothing?]
0x46: Tiny Explosion
0x47: Medium Explosion
0x48: Large Explosion
0x49: [Nothing?]
0x4A: [Nothing?]
0x4B: [Nothing?]
0x4C: [Nothing?]
0x4D: [Nothing?]
0x4E: [Nothing?]
0x4F: [Nothing?]
0x50: [Nothing?]
0x51: [Nothing?]
0x52: [Nothing?]
0x53: [Nothing?]
0x54: [Nothing?]
0x55: [Nothing?]
0x56: [Nothing?]
0x57: [Nothing?]
0x58: [Nothing?]
0x59: [Nothing?]
0x5A: [Nothing?]
0x5B: [Nothing?]
0x5C: [Nothing?]
0x5D: [Nothing?]
0x5E: [Nothing?]
0x5F: [Nothing?]
0x60: [Nothing?]
0x61: [Nothing?]
0x62: [Nothing?]
0x63: [Nothing?]
0x64: Bubbler lvl 3
0x65: Lightning
0x66: Sandcroc Bite
0x67: Curly Charge
0x68: Hit Invisible Block
0x69: Puppy Bark
0x6A: Blade whoosh
0x6B: Block Move
0x6C: Power Critter Jump
0x6D: Critter Fly
0x6E: Power Critter Fly
0x6F: Thud
0x70: Bigger thud
0x71: [*pshew*] Helicopter?
0x72: Core hurt
0x73: Core thrust
0x74: Core super charge
0x75: Nemesis?
0x76: [Nothing?]
0x77: [Nothing?]
0x78: [Nothing?]
0x79: [Nothing?]
0x7A: [Nothing?]
0x7B: [Nothing?]
0x7C: [Nothing?]
0x7D: [Nothing?]
0x7E: [Nothing?]
0x7F: [Nothing?]
0x80: [Nothing?]
0x81: [Nothing?]
0x82: [Nothing?]
0x83: [Nothing?]
0x84: [Nothing?]
0x85: [Nothing?]
0x86: [Nothing?]
0x87: [Nothing?]
0x88: [Nothing?]
0x89: [Nothing?]
0x90: [Nothing?]
0x91: [Nothing?]
0x92: [Nothing?]
0x93: [Nothing?]
0x94: [Nothing?]
0x95: [Nothing?]
0x96: BASS01
0x97: SNARE01
0x98: HICLOSE
0x99: HIOPEN
0x9A: TOM01
0x9B: PER01
-=~ Smoke ~=-
0x01: None
0x02: Small amount
0x03: Medium amount
0x04: Large amount
-=~ Bounding Box Addresses ~=-
(from beginning of each portion)
0x00: Left
0x01: Top
0x02: Right
0x03: Bottom
-=~ Map Formats ~=-
-=~ Mapdata Addresses ~=-
(for freeware and stage.tbl(CS+))
(from the beginning of each map section)
0x00: Tileset name
0x20: Filename
0x40: Background Scrolling Type
0x44: Background Name
0x64: NPC Spritesheet 1
0x84: NPC Spritesheet 2
0xA4: Major Boss
0xA5: Mapname
-=~ Background Scrolling Types ~=-
0x00: No Scrolling
0x01: Slow Scrolling
0x02: Equal Scrolling
0x03: Water-Style
0x04: Null
0x05: Auto Scrolling
0x06: Cloud-Style [Gravity: Left]
0x07: Cloud-Style [Gravity: Normal]
-=~ Major Bosses are as follows ~=-
0x00: No Major Boss
0x01: Omega
0x02: Balfrog
0x03: Monster X
0x04: The Core
0x05: Iron Head
0x06: Dragon Sisters
0x07: Undead Core
0x08: Heavy Press
0x09: Ballos
WINDOWS IS LITTLE-ENDIAN AND ALL DATA (with the exception of PXM map tile and PXE entity count) TAKES UP TWO BYTES
ex: x coord of 256 (dec) is 0x0100, seen as 00 01 in hex editor
-=~ PXM File Data ~=-
maps must be minimum of 21x16
First three bytes are PXM, then 0x10
Then 0x_map_length - 2 bytes
Then 0x_map_height - 2 bytes
Then 0x_map_tile_from_tileset for the rest of the file (numbered from 0, and going left to right, top to bottom) - 1 byte
-=~ PXE File Data ~=-
First three bytes are PXE, then 0x00
Then 0x_entity_count - 4 bytes
Then each entity takes up 12 bytes, and they are in order based on their draw order (higher drawn on top) - lowest in file first:
0x_x_coord - 2 bytes
0x_y_coord - 2 bytes
0x_flag_num - 2 bytes
0x_event_num - 2 bytes
0x_entity_type - 2 bytes
0x_entity_flags - 2 bytes
-=~ Flags ~=-
Setting: Flag to set OR current flags
Unsetting: (Flag to unset XOR 1111 1111) AND current flags
Checking: Flag to check AND current flags - returns flag being checked if it is set, 0 if not set
-=~ PXA File Data ~=-
Format is tile type, corresponds to tileset directly - file has no header
Tilesets can be 16x16 tiles max, so PXA has 256 bytes, value of 0 for tiles not in tileset image
-=~ Tile Types ~=-
Flags:
0x01: Special
0x02: Special
0x04: Special
0x08: Special
0x10: Slope
0x20: Water
0x40: Foreground
0x80: Wind
0x00 (Null):
0x00: Null
0x01: Background Tile
0x02: Background Water
0x03: Background NPC-Blocker Tile [Unused]
0x04: Background NPC-Blocker Tile [Unused]
0x05: Background Shoot-Passer Tile [Unused]
0x06: Background Tile [Unused]
0x07: Background Tile [Unused]
0x08: Background Tile [Unused]
0x09: Background Tile [Unused]
0x0A: Background Tile [Unused]
0x0B: Background Tile [Unused]
0x0C: Background Tile [Unused]
0x0D: Background Tile [Unused]
0x0E: Background Tile [Unused]
0x0F: Background Tile [Unused]
0x10 (Slope):
0x10: Background Tile [Unused]
0x11: Background Tile [Unused]
0x12: Background Tile [Unused]
0x13: Background Tile [Unused]
0x14: Background Tile [Unused]
0x15: Background Tile [Unused]
0x16: Background Tile [Unused]
0x17: Background Tile [Unused]
0x18: Background Tile [Unused]
0x19: Background Tile [Unused]
0x1A: Background Tile [Unused]
0x1B: Background Tile [Unused]
0x1C: Background Tile [Unused]
0x1D: Background Tile [Unused]
0x1E: Background Tile [Unused]
0x1F: Background Tile [Unused]
0x20 (Water):
0x20: Null [Unused]
0x21: Null [Unused]
0x22: Null [Unused]
0x23: Null [Unused]
0x24: Null [Unused]
0x25: Null [Unused]
0x26: Null [Unused]
0x27: Null [Unused]
0x28: Null [Unused]
0x29: Null [Unused]
0x2A: Null [Unused]
0x2B: Null [Unused]
0x2C: Null [Unused]
0x2D: Null [Unused]
0x2E: Null [Unused]
0x2F: Null [Unused]
0x30 (Slope + Water):
0x30: Null [Unused]
0x31: Null [Unused]
0x32: Null [Unused]
0x33: Null [Unused]
0x34: Null [Unused]
0x35: Null [Unused]
0x36: Null [Unused]
0x37: Null [Unused]
0x38: Null [Unused]
0x39: Null [Unused]
0x3A: Null [Unused]
0x3B: Null [Unused]
0x3C: Null [Unused]
0x3D: Null [Unused]
0x3E: Null [Unused]
0x3F: Null [Unused]
0x40 (Foreground):
0x40: Foreground Tile
0x41: Solid Tile
0x42: 10 Damage Foreground Tile
0x43: Special Block Tile
0x44: Foreground NPC-Blocker Tile
0x45: Foreground Tile [Unused]
0x46: Character-Blocker Tile [Unused]
0x47: Foreground Tile [Unused]
0x48: Foreground Tile [Unused]
0x49: Foreground Tile [Unused]
0x4A: Foreground Tile [Unused]
0x4B: Foreground Tile [Unused]
0x4C: Foreground Tile [Unused]
0x4D: Foreground Tile [Unused]
0x4E: Foreground Tile [Unused]
0x4F: Foreground Tile [Unused]
0x50 (Foreground + Slope):
0x50: Slope Tile
0x51: Slope Tile
0x52: Slope Tile
0x53: Slope Tile
0x54: Slope Tile
0x55: Slope Tile
0x56: Slope Tile
0x57: Slope Tile
0x58: Foreground Tile [Unused]
0x59: Foreground Tile [Unused]
0x5A: Foreground Tile [Unused]
0x5B: Foreground Tile [Unused]
0x5C: Foreground Tile [Unused]
0x5D: Foreground Tile [Unused]
0x5E: Foreground Tile [Unused]
0x5F: Foreground Tile [Unused]
0x60 (Foreground + Water):
0x60: Foreground Water
0x61: Solid Tile [Unused]
0x62: 10 Damage Foreground Water Tile [Red]
0x63: Foreground Tile [Unused]
0x64: Foreground NPC-Blocker Tile [Unused]
0x65: Foreground Tile [Unused]
0x66: Foreground Tile [Unused]
0x67: Foreground Tile [Unused]
0x68: Foreground Tile [Unused]
0x69: Foreground Tile [Unused]
0x6A: Foreground Tile [Unused]
0x6B: Foreground Tile [Unused]
0x6C: Foreground Tile [Unused]
0x6D: Foreground Tile [Unused]
0x6E: Foreground Tile [Unused]
0x6F: Foreground Tile [Unused]
0x70 (Foreground + Slope + Water):
0x70: Slope Tile [Water]
0x71: Slope Tile [Water]
0x72: Slope Tile [Water]
0x73: Slope Tile [Water]
0x74: Slope Tile [Water]
0x75: Slope Tile [Water]
0x76: Slope Tile [Water]
0x77: Slope Tile [Water]
0x78: Foreground Tile [Unused]
0x79: Foreground Tile [Unused]
0x7A: Foreground Tile [Unused]
0x7B: Foreground Tile [Unused]
0x7C: Foreground Tile [Unused]
0x7D: Foreground Tile [Unused]
0x7E: Foreground Tile [Unused]
0x7F: Foreground Tile [Unused]
0x80 (Wind):
0x80: Wind [Left]
0x81: Wind [Up]
0x82: Wind [Right]
0x83: Wind [Down]
0x84: Null [Unused]
0x85: Null [Unused]
0x86: Null [Unused]
0x87: Null [Unused]
0x88: Null [Unused]
0x89: Null [Unused]
0x8A: Null [Unused]
0x8B: Null [Unused]
0x8C: Null [Unused]
0x8D: Null [Unused]
0x8E: Null [Unused]
0x8F: Null [Unused]
0x90 (Wind + Slope):
0x90: Null [Unused]
0x91: Null [Unused]
0x92: Null [Unused]
0x93: Null [Unused]
0x94: Null [Unused]
0x95: Null [Unused]
0x96: Null [Unused]
0x97: Null [Unused]
0x98: Null [Unused]
0x99: Null [Unused]
0x9A: Null [Unused]
0x9B: Null [Unused]
0x9C: Null [Unused]
0x9D: Null [Unused]
0x9E: Null [Unused]
0x9F: Null [Unused]
0xA0 (Wind + Water):
0xA0: Water Wind [Left]
0xA1: Water Wind [Up]
0xA2: Water Wind [Right]
0xA3: Water Wind [Down]
0xA4: Null [Unused]
0xA5: Null [Unused]
0xA6: Null [Unused]
0xA7: Null [Unused]
0xA8 :Null [Unused]
0xA9: Null [Unused]
0xAA: Null [Unused]
0xAB: Null [Unused]
0xAC: Null [Unused]
0xAD: Null [Unused]
0xAE: Null [Unused]
0xAF: Null [Unused]
0xB0 (Wind + Slope + Water):
0xB0: Null [Unused]
0xB1: Null [Unused]
0xB2: Null [Unused]
0xB3: Null [Unused]
0xB4: Null [Unused]
0xB5: Null [Unused]
0xB6: Null [Unused]
0xB7: Null [Unused]
0xB8: Null [Unused]
0xB9: Null [Unused]
0xBA: Null [Unused]
0xBB: Null [Unused]
0xBC: Null [Unused]
0xBD: Null [Unused]
0xBE: Null [Unused]
0xBF: Null [Unused]
0xC0 (Wind + Foreground):
0xC0: Null [Unused]
0xC1: Null [Unused]
0xC2: Null [Unused]
0xC3: Null [Unused]
0xC4: Null [Unused]
0xC5: Null [Unused]
0xC6: Null [Unused]
0xC7: Null [Unused]
0xC8: Null [Unused]
0xC9: Null [Unused]
0xCA: Null [Unused]
0xCB: Null [Unused]
0xCC: Null [Unused]
0xCD: Null [Unused]
0xCE: Null [Unused]
0xCF: Null [Unused]
0xD0 (Wind + Foreground + Slope):
0xD0: Null [Unused]
0xD1: Null [Unused]
0xD2: Null [Unused]
0xD3: Null [Unused]
0xD4: Null [Unused]
0xD5: Null [Unused]
0xD6: Null [Unused]
0xD7: Null [Unused]
0xD8: Null [Unused]
0xD9: Null [Unused]
0xDA: Null [Unused]
0xDB: Null [Unused]
0xDC: Null [Unused]
0xDD: Null [Unused]
0xDE: Null [Unused]
0xDF: Null [Unused]
0xE0 (Wind + Foreground + Water):
0xE0: Null [Unused]
0xE1: Null [Unused]
0xE2: Null [Unused]
0xE3: Null [Unused]
0xE4: Null [Unused]
0xE5: Null [Unused]
0xE6: Null [Unused]
0xE7: Null [Unused]
0xE8: Null [Unused]
0xE9: Null [Unused]
0xEA: Null [Unused]
0xEB: Null [Unused]
0xEC: Null [Unused]
0xED: Null [Unused]
0xEE: Null [Unused]
0xEF: Null [Unused]
0xF0 (Wind + Foreground + Slope + Water):
0xF0: Null [Unused]
0xF1: Null [Unused]
0xF2: Null [Unused]
0xF3: Null [Unused]
0xF4: Null [Unused]
0xF5: Null [Unused]
0xF6: Null [Unused]
0xF7: Null [Unused]
0xF8: Null [Unused]
0xF9: Null [Unused]
0xFA: Null [Unused]
0xFB: Null [Unused]
0xFC: Null [Unused]
0xFD: Null [Unused]
0xFE: Null [Unused]
0xFF: Null [Unused]
Weapons (AM+/AM-/AMJ/GIT/TAM) Profile.dat bytes 0x038-098 (every 4 bytes: weapon, level (1-3),
energy, max ammo (0 = infinite), current ammo) (every 20 bytes)
0000 [nothing?]
0001 Snake
0002 Polar Star
0003 Fireball
0004 Machine Gun
0005 Missile Launcher
0006 Missiles (GIT only)
0007 Bubbler
0008 [nothing?]
0009 Blade
0010 Super Missile Launcher
0011 Super Missiles (GIT only)
0012 Nemesis
0013 Spur
Items (GIT/IT+/IT-/ITJ) Profile.dat bytes 0x0D8-14C (every 4 bytes) [Add 1000 to GIT?]
0000 [Blank - Clears box in GIT]
0001 Arthur's Key
0002 Map System
0003 Santa's Key
0004 Silver Locket
0005 Beast Fang
0006 Life Capsule (GIT only)
0007 ID Card
0008 Jellyfish Juice
0009 Rusty Key
0010 Gum Key
0011 Gum Base
0012 Charcoal
0013 Explosive
0014 Puppy
0015 Life Pot
0016 Cure-All
0017 Clinic Key
0018 Booster 0.8
0019 Arms Barrier
0020 Turbocharge
0021 Curly's Air Tank
0022 Nikumaru Counter
0023 Booster v2.0
0024 Mimiga Mask
0025 Teleporter Room Key
0026 Sue's Letter
0027 Controller
0028 Broken Sprinkler
0029 Sprinkler
0030 Tow Rope
0031 Clay Figure Medal
0032 Little Man
0033 Mushroom Badge
0034 Ma Pignon
0035 Curly's Underwear
0036 Alien Medal
0037 Chaco's Lipstick
0038 Whimsical Star
0039 Iron Bond
Equip (EQ+/EQ-) Profile.dat bytes 0x02C-02D (low byte first)
0001 Booster v0.8 (ignored if v2.0 on)
0002 Map System
0004 Arms Barrier
0008 Turbocharge
0016 Curly's Air Tank
0032 Booster v2.0
0064 Mimiga Mask
0128 Whimsical Star
0256 Nikumaru Counter
NOTE: these are bitwise flags, the final value is the sum of the equipped items

3358
docs/flag_listing.tsv Normal file

File diff suppressed because it is too large Load diff

2879
docs/flag_listing.txt Normal file

File diff suppressed because it is too large Load diff

View file

@ -294,8 +294,8 @@ Weapons (AM+/AM-/AMJ/GIT/TAM) Profile.dat bytes 0x038-098 (every 4 bytes: wea
Items (GIT/IT+/IT-/ITJ) Profile.dat bytes 0x0D8-14C (every 4 bytes)
0000 [nothing?]
Items (GIT/IT+/IT-/ITJ) Profile.dat bytes 0x0D8-14C (every 4 bytes) [Add 1000 to GIT?]
0000 [Blank - Clears box in GIT]
0001 Arthur's Key
0002 Map System
0003 Santa's Key

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,244 +0,0 @@
#0000
<END
#0001
<PRI<MSG<TUREmpty.<NOD<END
#0002
<AMJ0002:0003<PRI<MSG<TUR<GIT0002<AM+0002:0000
Got the =Polar Star=!<WAI0025<NOD<END
#0003
<PRI<MSG<TUR<GIT0013<TAM0002:0013:0000
=Polar Star= became the =Spur=!<WAI0025<NOD<END
#0004
<PRI
<MSG<TUR<GIT0003
Got the =Fireball=!<WAI0025<NOD<CLR
<FLJ2801:0006<FL+2801<AM+0003:0000<END
#0005
<PRI
<MSG<TUR<GIT0001
Got the =Snake=!<WAI0025<NOD<CLR
<FLJ2801:0006<FL+2801<AM+0001:0000<END
#0006
<PRI<MSG<TURYou may trade the =Fireball=
with the =Snake= and vice-versa
at the computer in Arthur's House.<WAI0050<NOD<FL+2802<END
#0007
<PRI<MSG<TUR<GIT0007<AM+0007:0100<FL+2820
Got the =Bubbler=!<WAI0025<NOD<END
#0008
<PRI<MSG<TUR<GIT0004<AM+0004:0100
Got the =Machine Gun=!<WAI0025<NOD<END
#0009
<PRI
<MSG<TUR<GIT0009
Got the =Blade=!<WAI0025<NOD<CLR
<FLJ2810:0011<FL+2810<AM+0009:0000<END
#0010
<PRI
<MSG<TUR<GIT0012
Got the =Nemesis=!<WAI0025<NOD<CLR
<FLJ2810:0011<FL+2810<AM+0012:0000<END
#0011
<PRI<MSG<TURYou may trade the =Nemesis=
with the =Blade= and vice-versa
at the computer in Arthur's House.<WAI0050<NOD<FL+2811<END
#0012
<PRI<MSG<TUR<GIT1006Got a =Life Capsule=!<ML+0003
Max health increased by 3!<WAI0025<NOD<END
#0013
<PRI<MSG<TUR<GIT1006Got a =Life Capsule=!<ML+0004
Max health increased by 4!<WAI0025<NOD<END
#0014
<PRI<MSG<TUR<GIT1006Got a =Life Capsule=!<ML+0005
Max health increased by 5!<WAI0025<NOD<END
#0016
<PRI<MSG<TUR
Do you want to save?<YNJ0000<FL+0431<SVP<CLRGame saved.<NOD<END
#0017
<PRI<SAT<FLJ0201:0018
<LI+1000<SOU0020<AE+<MSG
Health refilled.<NOD<END
#0018
<PRI
<LI+1000<SOU0020<AE+<MSG
Health and missiles refilled.<NOD<END
#0019
<KEY<MSG<TUR
Do you want to rest?<YNJ0000<FAO0004<CMU0000<WAI0020<CLR<TUR.....<NOD<CLO
<WAI0050
<LI+1000<SOU0020<MYD0002<MSG<TUR
Health restored.<NOD<CLO<RMU<FAI0004<END
#0020
<FL+0274<SNP0136:0000:0000:0000<IT+0014
<FLJ5004:0024<FLJ5003:0023<FLJ5002:0022<FLJ5001:0021<FL+5001
<PRI<MSG<TUR<GIT1014
Got a =Puppy=!<WAI0025<NOD<END
#0021
<PRI<MSG<TUR<GIT1014<FL+5002
Got a second =Puppy=!<WAI0025<NOD<END
#0022
<PRI<MSG<TUR<GIT1014<FL+5003
Got a third =Puppy=!<WAI0025<NOD<END
#0023
<PRI<MSG<TUR<GIT1014<FL+5004
Got a fourth =Puppy=!<WAI0025<NOD<END
#0024
<PRI<MSG<TUR<GIT1014<FL+5005<FL+0593
Got the last =Puppy=!<WAI0025<NOD<END
#0030
<PRI<FLJ2420:0032<FLJ0201:0031<FL+0201<AM+0005:0010<MSG<TUR
<GIT0005Got the =Missile Launcher=!<WAI0025<NOD<END
#0031
<PRI<AM+0005:0005<MSG<TUR
<GIT0006Max missiles increased by 5!<NOD<END
#0032
<PRI<AM+0010:0005<MSG<TUR
<GIT0011Max missiles increased by 5!<NOD<END
#0033
<FL+2420<FL+0201<AMJ0005:0034
<PRI<MSG<TUR<GIT0010<AM+0010:0005
Got the =Super Missile Launcher=!<WAI0025<NOD<END
#0034
<PRI<MSG<TUR<GIT0010<TAM0005:0010:0000
Your Missiles have been powered up!<WAI0025<NOD<END
#0035
<PRI<FLJ2420:0037<FLJ0201:0036<FL+0201<MSG<TUR<GIT0005<AM+0005:0029
Got the =Missile Launcher=!<WAI0025<NOD<END
#0036
<PRI<AM+0005:0024<MSG<TUR<GIT0006Max missiles increased by 24!<WAI0025<NOD<END
#0037
<PRI<AM+0010:0024<MSG<TUR<GIT0011Max missiles increased by 24!<WAI0025<NOD<END
#0040
<KEY<CMU0000<WAI0040<PRI<WAI0040<CMU0003
<MSG<TUR
You have died.<NOD<CLRWant to retry?<YNJ0049<CLO
<FAO0001<WAI0050<FLJ0431:0048<INI
#0041
<KEY<CMU0000<HMC<WAI0040<PRI<WAI0040<CMU0003
<MSG<TUR
You have drowned.<NOD<CLRWant to retry?<YNJ0049<CLO
<FAO0001<WAI0050<FLJ0431:0048<INI
#0042
<KEY<CMU0000<WAI0040<PRI<WAI0040<CMU0003
<MSG<TUR<HMC
You were never seen again...<NOD<CLRWant to retry?<YNJ0049<CLO
<FAO0001<WAI0050<FLJ0431:0048<INI
#0048
<SMC<LDP
#0049
<CLO<FAO0004<ESC
#0051
<PRI<MSG<TUR<GIT1001<IT+0001
Got =Arthur's Key=!<WAI0025<NOD<END
#0052
<PRI<MSG<TUR<GIT1002<IT+0002<EQ+0002
Got the =Map System=!<WAI0025<NOD<END
#0053
<PRI<MSG<TUR<GIT1003<IT+0003
Got =Santa's Key=!<WAI0025<NOD<END
#0054
<PRI<MSG<TUR<GIT1004<IT+0004
Got the =Silver Locket=!<WAI0025<NOD<END
#0055
<PRI<MSG<TUR<GIT1005<IT+0005
Got the =Beast Fang=!<WAI0025<NOD<END
#0057
<PRI<MSG<TUR<GIT1007<IT+0007
Got the =ID Card=!<WAI0025<NOD<END
#0058
<PRI<MSG<TUR<GIT1008<IT+0008
Got the =Jellyfish Juice=!<WAI0025<NOD<END
#0059
<PRI<MSG<TUR<GIT1009<IT+0009
Got the =Rusty Key=!<WAI0025<NOD<END
#0060
<PRI<MSG<TUR<GIT1010<IT+0010
Got the =Gum Key=!<WAI0025<NOD<END
#0061
<PRI<MSG<TUR<GIT1011<IT+0011
Got the =Gum Base=!<WAI0025<NOD<END
#0062
<PRI<MSG<TUR<GIT1012<IT+0012
Got the =Charcoal=!<WAI0025<NOD<END
#0063
<PRI<MSG<TUR<GIT1013<IT+0013
Got the =Explosive=!<WAI0025<NOD<END
#0064
<EVE0020
#0065
<PRI<MSG<TUR<GIT1015<IT+0015
Got the =Life Pot=!<WAI0025<NOD<END
#0066
<PRI<MSG<TUR<GIT1016<IT+0016
Got the =Cure-All=!<WAI0025<NOD<END
#0067
<PRI<MSG<TUR<GIT1017<IT+0017
Got the =Clinic Key=!<WAI0025<NOD<END
#0068
<ITJ0018:0073
<PRI<MSG<TUR<GIT1018<IT+0018<EQ+0001<EQ-0064<FL+0742<FL-1020
Got the =Booster v0.8=!<WAI0025<NOD<END
#0069
<PRI<MSG<TUR<GIT1019<IT+0019<EQ+0004
Got the =Arms Barrier=!<WAI0025<NOD<END
#0070
<PRI<MSG<TUR<GIT1020<IT+0020<EQ+0008
Got the =Turbocharge=!<WAI0025<NOD<END
#0071
<PRI<MSG<TUR<GIT1021<IT+0021<EQ+0016<FL+2900
Got =Curly's Air Tank=!<WAI0025<NOD<END
#0072
<PRI<MSG<TUR<GIT1022<IT+0022
Got the =Nikumaru Counter=!<WAI0025<NOD<END
#0073
<PRI<MSG<TUR<GIT1023<IT+0023<IT-0018<EQ+0032<EQ-0065<FL+0743<FL-1020
Got the =Booster v2.0=!<WAI0025<NOD<END
#0074
<PRI<MSG<TUR<GIT1024<IT+0024
Got the =Mimiga Mask=!<WAI0025<NOD<END
#0075
<PRI<MSG<TUR<GIT1025<IT+0025
Got the =Teleporter Room Key=!<WAI0025<NOD<END
#0076
<PRI<MSG<TUR<GIT1026<IT+0026
Got =Sue's Letter=!<WAI0025<NOD<END
#0077
<PRI<MSG<TUR<GIT1027<IT+0027
Got the =Controller=!<WAI0025<NOD<END
#0078
<PRI<MSG<TUR<GIT1028<IT+0028
Got the =Broken Sprinkler=!<WAI0025<NOD<END
#0079
<PRI<MSG<TUR<GIT1029<IT+0029
Got the =Sprinkler=!<WAI0025<NOD<END
#0080
<PRI<MSG<TUR<GIT1030<IT+0030
Got the =Tow Rope=!<WAI0025<NOD<END
#0081
<PRI<MSG<TUR<GIT1031<IT+0031
Got the =Clay Figure Medal=!<WAI0025<NOD<END
#0082
<PRI<MSG<TUR<GIT1032<IT+0032
Got the =Little Man=!<WAI0025<NOD<END
#0083
<PRI<MSG<TUR<GIT1033<IT+0033
Got the =Mushroom Badge=!<WAI0025<NOD<END
#0084
<PRI<MSG<TUR<GIT1034<IT+0034
Got =Ma Pignon=!<WAI0025<NOD<END
#0085
<PRI<MSG<TUR<GIT1035<IT+0035
Got =Curly's Underwear=!<WAI0025<NOD<END
#0086
<PRI<MSG<TUR<GIT1036<IT+0036
Got the =Alien Medal=!<WAI0025<NOD<END
#0087
<PRI<MSG<TUR<GIT1037<IT+0037
Got =Chaco's Lipstick=!<WAI0025<NOD<END
#0088
<PRI<MSG<TUR<GIT1038<IT+0038<EQ+0128<FL+0722
Got the =Whimsical Star=!<WAI0025<NOD<END
#0089
<PRI<MSG<TUR<GIT1039<IT+0039
Got the =Iron Bond=!<WAI0025<NOD<END

View file

@ -1 +0,0 @@
0==F=IZ[NIPZb==?@ISNV====IR[Q0==F>IZ[NIPZb==?@ISNV===>IR[Q0==F?IZ[NIPZb==?@ISNV===?ISYW=E?FG==FEISYW=E??G==FDIR[Q0==F@IZ[NIPZb==?@ISNV===@IR[Q0==FAIZ[NIPZb==?@ISNV===AIR[Q0==FDIN[]=?B@G==?=G====IR[Q0==FEIP[]=@=CG=>>DG====IN[]=@=CG==@?G===?IR[Q0=>==IXRfISYW=E@FG=>=>ISYW=E==G=>=?IRcR=>=A0=>=>IXRfIZ`TIab_V<5F>-„|{4<>-|}r{;;;I[\QIR[Q0=>=?IVaW==?>G=>=@IRcR=>=A0=>=@ISY8=E@?IRcR=>=A0=>=AI`\b==>>IN[]=>==G====G===?ISN\====Ia_N==ACG==F=G==>DG===F0=?==IXRfI`NaISYW=E@?G=?=AISYW=E?AG=?=@ISYW=E?@G=?=?ISYW=E?>G=?=>IZ`TIab_\]R[-`UbaaR_LIf[W====IPY\IZfQ====IdNV==@=IN[]=?B=G==>=G===>IdNV==>=IN[]=@==G===>G===?IdNV==??IN[]=?B>G==>=G===>IN[]=@==G===@G===?IdNV==@?IN[]=?B?G==>=G===>IdNV==@?IN[]=?B@G==>=G===>IdNV==@?IN[]=?BAG==>=G===>IQ[]=?B=IdNV==@?IQ[]=?B>IdNV==@?IQ[]=?B?IN[]=?B@G===>G====IdNV==@?IQ[]=@==IP[]=@=>G=>>DG====IN[]=@=>G==?>G===?ISY:=E?=ISY8=E?>ISY8=E??IZ`TIab_NO[\_ZNYVaf-QRaRPaRQ-V[`UbaaR_-[\;-AI[\QIR[Q0=?=>IXRfIZ`TIab_NO[\_ZNYVaf-QRaRPaRQ-V[`UbaaR_-[\;-AI[\QIR[Q0=?=?IXRfIZ`TIab_Y\dR_-YVSaLIf[W====ISY8=E?AIPY\IS\[=?BDG==>CIdNV==B=IN[]=?BDG==>=G===@IdNV=>F?IN[]=?BDG====G====IdNV==B=IS\Z==>CIR[Q0=?=@IXRfIZ`TIab_YVSa-V`-Y\dR_RQI[\QIR[Q0=?=AIXRfIZ`TR__\_I[\QIR[Q0=?>=IXRfI`NaISYW=E@=G=?>?ISYW=E?BG=?>>IZ`TIab_\]R[-`UbaaR_LIf[W====ISY8=E?BIPY\IdNV==A=IN[]=?BCG==>=G===>IdNV=>?EIQ[]=?BCIR[Q0=?>>IXRfIZ`TIab_`UbaaR_-\]R[RQI[\QIR[Q0=?>?IXRfIZ`TIab_R__\_I[\QIR[Q0=?A=I]_VISYW=E?EG=?A>IQ[]=?A=ISYW=E@=G=?A@ISY8=E@FIRcR=?A@0=?A>I]_VIZ`TIab_;;;LI[\QIR[Q0=?A?I]_VIZ`TIab_V<5F>4€-<2D>n{tyrq-};f|-pn{4<>-tr<74>-v<>-y||€r;;;I[\QIR[Q0=?A@IRcR==E=0=?B=0=?B>0=?B?0=?B@0=?BA0=?BBI]_VIZ`TIab_N-o|xr{-|o|<7C>;I[\QV<>4€-€rƒrry†-qnzntrq;I[\QIR[Q0=?BC0=?BD0=?BE0=@==IXRfIZ`TISNP==>Fdrvq-}ynpr9-ruLI[\QV-„|{qr-vs-<2D>uv€-„n€€|zr-€|<>-|s-on€r;I[\QIR[Q0=@=>IXRfISYW=E?@G=@=?IZ`TISNP==?Bauv€-€u<75><E2809A>r4€-|{y†znqr-v<>-unys„n†-|}r{;I[\QIPY_Y||x€-yvxr-v<>4€-pntu<74>|{-€|zr<7A>uv{t;;;I[\QIR[Q0=@=?IXRfIZ`TISNP==>FW<E2809A>-€u<75><E2809A>r-ns<6E>r€u<75><E2809A>r;I[\QNyy-<2D>uv€-€rpv<7F>†-znxr€zr-„|{qr-w<E2809A>-„un<75>4€-q|„{urr;I[\QQ|{4<>-†|-<2D>uv{xLI[\QIR[Q0=@=AI]_VIZ`TV;;;I[\QIR[Q0=@=BI]_VIZ`TX{|pxrq-|<>LI[\QIR[Q0=@=C I]_VIZ`TIab_aurr-v€-{|-r}y†;;;I[\QIVaW==@=G=@=DIR[Q0=@=DI]_VI`NaIZ`TITVa>=@=dvyy-†|-€r-<2D>ur-Ja|„-_|}rJLIf[W====IPY\ITVa====IP[]=@=CG=?BFG====ISY8=E@BISY8=E@CISY:=E?FIR[Q0=@A=IXRfIQ[]=@A=IdNV==>=I`\b==??IdNV==>=IZ`TIab_f|-urn-€|zr<7A>uv{t-tvƒr;I[\QIPY\IdNV==B=IN[]=?B@G==>=G===>IdNV==AEIQ[]=?B@IN[]=@=>G===@G===?IdNV=>?EIN[]=@=>G===>G===?ISY:=E??ISY8=E?@ISY8=E?CIR[Q0=@B=ISYW=E?BG=@B>IR[Q0=@B>IQ[]=@B=IQ[]=@=>IQ[]=@=?ISY:=E??ISY:=E?CISY8=E?DIP[]=AB=G=>>DG===?IR[Q0=@C=ISYW=E@=G=@C>IR[Q0=@C>IXRfIQ[]=@C=IPZb==?@IR[Q0=A==0=A=>0=A=?0=A>=0=AB=IXRfI`XW===CG=AB>I`X8===CIRcR=AB?0=AB>I`NaIRcR=AB?0=AB?IXRfI`NaISYW=E@DG=@=AISYW=E?EG=@=BIZfO===?IdNV==@=IZfQ===?IS\[=?BEG==>CISY8=E?EISY:=E?AIZ[]=?BDG===DG==>EG====IPZ]==A=G==>BG==@=IPZ]==A=G==>CG==@=IP[]=?BEG=>EAG====IN[]=?BEG==>=G===@IdNV=>?EIN[]=?BEG==?=G====IS\Z==>CIdNV==?=IN[]=?BBG==>=G====IN[]=AB=G==@=G===?IdNV==A=IQ[]=B==IO\N=?==IPZb==??IO`Y====IP[]=AB=G=>E=G===?IN[]=AB=G==A=G===?IN[]=A>=G==?=G====IR[Q0=B==IQ[]=B==IO\N=?==IPZb==??IO`Y====IR[Q0>===IXRfIO\N=B==IZfQ=A=>ISY:=E?EIN[]=A>=G==>=G====IP[]=AB=G=>>DG===AIdNV==>==IS\[=A=>G==>CIP[]=A==G==CDG===?IdNV==B=IP[]=A=?G=>@FG====IN[]=A=?G==A=G====IdNV=>==IN[]=A==G==>@G===?IdNV==B=IP[]=A==G==E?G===?IdNV==?=IN[]=A==G==?BG===?ISZbIO\N=C==IdNV==@=IN[]=A==G==?=G===?IN[]=A=?G==@=G====IN[]=A>=G==@=G====IN[]=AB=G==?=G===?IQ[N=>E>IQ[N=>E?IPZ]==A=G==>BG==ADIPZ]==A=G==>CG==ADIdNV=>==IPZb====IS\Z==>CISY8A===ISY8=@A>ISY8=DE@ISY8=E@DIR^:==>CISY:?F==IR[Q0>>==IXRfISY:A===ISN\===AIdNV==B=IQ[]=AB=ISY8=>C=ISY8=E@=ISY8=E?FISY:=E?DISY8=E==ISY8=E=>ISY8=@D?ISY8=A>>ISY8=@A=ISY8=>BFISY8=E@EISY:>CA?ISY8>CA@ISY:=E@FIVaW==?>G>>=>IRcR>>=?0>>=>IZ[]=A>=G===>G===?G====IN[]=A>=G====G====IR^8==>CISY8?F==IRcR>>>=0>>=?IZ[]=A>=G===>G==??G====IN[]=A>=G====G====IRcR>>>=0>>>=IP[]=@=CG=>>DG===?IN[]=@=CG==@?G===?IN[]=?BEG==>=G===>IdNV==FCIN[]=?BEG===>G====IdNV==B=IZ\c==BBG==>EIQ[N=>E@ISNV===AIdNV==B=IRcR>>>>0>>>>IRcR==D>0>?==IXRfIN[]>?==G==?=G===?ISYW=E?FG>?=>IRcR>?=?0>?=>IP[]=@=CG=>>DG====IN[]=@=CG==@?G===?IRcR>?=?0>?=?IS\[>?==G==>CISNV===>IdNV=>==ISN\===>Ia_N==BCG>?==G==CFG==DC

View file

@ -1 +0,0 @@
€}枺<E69EBA>}<7D><EFBFBD><EFBC83><EFBC83>练€}枺<E69EBA>}<7D><EFBFBD><EFBC83><EFBC83>练€}枺<E69EBA>}<7D><EFBFBD><EFBC83><EFBC83>练€}枺<E69EBA>}<7D><EFBFBD><EFBC83><EFBC83>练€}枺<E69EBA>}<7D><EFBFBD><EFBC83><EFBC83>练€}枺,█}<7D><EFBFBD><EFBC83>偶€}<7D>Μ<EFBC83><EFBC83>柑€}<7D>撩¥<EFBFA5><EFBC83><EFBFBD>练€}€}枺В<E69EBA>}枺В<E69EBA>}枺В<E69EBA>}枺ǎ<E69EBA>}<7D><EFBC88>€}<7D><EFBFBD>坪守咧忄亍<E5BF84><EFBFBD>颗€}<7D>ガ紦脏摰赃哜妗<E5939C>路€}<7D>颗库嶷煋哜嶷撣蚤負紦暝茜刈 谅矾犊攀攒缲讚兮鍝幺負忉負贳鈥}赈柽讚佘嵩哌鞊骅兆柝撪靲}嘣谲謿鎿勹屐 谅矾犊帕怅煋捃哌撪財<E692AA>路€}洛摷牋<E691B7>路s墼哌撧苓邠搪葦敮谅矾犊聙}<7D>€}<7D><EFBC87><EFBC8C><EFBC87>¥﹢}<7D><EFBC8C><EFBC8C><EFBC83>练€}枺<><E69EBA>}<7D><EFBC8C>€}<7D><EFBC8C>¥﹢}<7D><EFBC87>Ζ<EFBFBD>€}<7D><EFBC87>Ζ<EFBFBD>€}<7D><EFBC83>€}<7D><EFBC83>ǎ€}<7D>麓¥<EFBFA5>€}<7D><EFBC87>€}<7D><EFBC87>¥﹢}<7D>€}<7D><EFBC83>€}<7D>练€}枻<E69EBB>}<7D>拷ぉ<E38189><EFBFBD>}<7D>繛ぉ€}<7D><EFBC83><EFBC85>€}<7D>Ε<EFBC83><EFBC86>ǎ€}<7D><EFBC86><EFBC83>练€}枻<E69EBB>}<7D><EFBFBD><EFBC83>¥﹢}<7D>麓ぃ<E38183>€}<7D><EFBFBD><E7B3AF><EFBC83><EFBC83><EFBFBD>

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}<7D>```lvqy````lu~t=:S``ia=:l}~qls}<7D>```lvqy```alu~t=:S``ib=:l}~qls}<7D>```lvqy```blu~t=:S``ic=:l}~qls}<7D>```lvqy```clu~t=:S``id=:l}~qls}<7D>```lvqy```dlu~t=:=:S`d``=:S`d`a=:S`d`b=:S`da`=:S`daa=:S`dab=:=:=:=:S`e``=:l{u瑛ヒ<E7919B>x}slv}``afl}液```bls}<7D>```l≦q``e`lvqy```a=:l㎞y`ae`=:l}ヘlvqs``bey、P」、泛<EFBDA4>部^^^l㎞y``e`ls|vqs``ai<61>姫劵恆梍W」P」、泛<EFBDA4>部=:桝惧辨猷l㎞y``e`ls|<7C>束瀦P像弃、<E5BC83>P桾卵、勗<EFBDA4>=:服覆掠Pァ促Pァ舞尓桾捻走、覆=:ァ姫瀦側P<E581B4>捐l㎞y``e`ls|vqs``be^^^^^l㎞y``e`ls|復彌PyP櫨棍歃P徴、P勁=:悄泝」P恙尓P衍「Pァ泙娜<E6B399><EFBFBD>=:劵P函桾^l㎞y``e`ls|lvqs````=:l}ッlуPPy、P丼「、」^^^l㎞y``e`=:l}ヘlvqs``be∟側ol㎞y``e`ls|lvqs````=:l㎞y`a``l}ッlуPPPPΑ^^^PP弌、^^^^^=:lq~€`da`j``a`j````lq~€`daaj``a`j```bl㎞y``e`PPPPPPPP<50><EFBFBD>鎗杰^^=:l㎞y`a``l€l}ヘoQl㎞y``e`ls|lvqs````l{u<>=:ls}<7D>`cdl㎞y`a``=:lq~€`d``j````j````l㎞y``b`=:lq~€`d`aj````j```bl㎞y``h`=:l€l}ヘlvqs``be<62>姫ァ像弉Ql㎞y``e0ls|lvqs````l{u<>=:l㎞y`a``=:lq~€`d``j````j```bl㎞y``b`=:lq~€`d`aj``g`j```bl㎞y``cb=:lq~€`d`aj````j````l㎞y``b`=:l}ッlуPPPx復<78>P摯^^^l㎞y``e`=:PPPPPy、P丼「、」^^^l㎞y``e`=:PPPPPPΑP弌、^^^^^l㎞y``e`ls|s|=:l€l}ヘlvqs``be√W「姫痢棍善藍、P討・」<EFBDA5>撚l㎞y``e`ls|l{u<>=:l€lvqs````l}ツx勦遭Ql㎞y``e`ls|=:l{u瑛s~€`d`bj```ij````l㎞y`ae`=:l€l}ヘlvqs```e<>覆姫ゥ衍P造媛=:z・」、P恙尓P}劵覆ゥP」鎗膿l㎞y``e`ls|<7C>=:lvqs``ai押・P淘摯P、蘖「淵踏姫・」Ql㎞y``e`ls|vqs```ex沮捻沾P、剽QQl㎞y``e`ls|lvqs````=:l{u<>=:lq~€`d`aj``b`j````l㎞y``a`=:lq~€`d``j``h`j```bl㎞y```b=:l€l}ヘlvqs```e|弗W」P痢Ql㎞y``e`ls|lvqs````=:l{u瑛v~`d`bj``af=:ls~€`d`bj``abj```bl㎞y```b=:lq~€`d`bj`a``j```bl㎞y`a``=:lv}<7D>}ヘlу<6C>=:t・沺沺沺沺沺沺沽<E6B2BA>浪Ql㎞y`a``ls|l㎞y``e`lv}<7D>vq```a=:l㎞y``e`l€ls}<7D>```=:l}ヘlvqs``bey」Pゥ衍「P<EFBDA2>藻P像弃「剽ol㎞y``e`ls|<7C>=:lvqs``bcyW抉棔、P」・「豹^^l㎞y``e`=:lрq``gaj`ab`j````j````=:lu~t=:=:=:

View file

@ -1 +0,0 @@
GD]jjsjGDv㊧{v}㍼jjjrv€{ニjjjv<76>GD]jjskGDv㊧{v}㍼jjjrv€{ニjjkv<76>GD]jjslGDv㊧{v}㍼jjjrv€{ニjjlv<76>GD]jjsmGDv㊧{v}㍼jjjrv€{ニjjmv<76>GD]jjsnGDv㊧{v}㍼jjjrv€{ニjjnv<76>GDGDGDGDGD]jkjjGDv€<76>jmpktjkjmGDv€<76>jmpjtjkjlGDvヮ<76>jjntjkjkGDv<44>砺拷祝jkkv{<7B>jkjjtjjjjtjjjlGDv€{泳jjnv詞{jjkktjjsntjjnltjjolGD]jkjkGDv褐プ㍾ョZアゥィaョZゥェ洽[v<>~v<76>GD]jkjlGDv<44>€{泳jjnv詞{jjkktjjsntjjnltjjolGD]jkjmGDv褐プ㍾ゥッZ撥ィaョZャッィ[v<>~v<76>GDGD]jkojGD]jkokGD]jkolGD]jkomGD]jkonGDGD]jlsjGDvヮ<76>jjntjlskv<76>GD]jlskGDv~<7E>jlsjv€<76>jmpjtjlslv}<7D>kjjjtjjpmtjjjlv<76>GD]jlslGDv€<76>lnqjtjjjjv<6A>砺∮~jjjlv㍾」誌撃ッエエ屬[v}<7D>jnjktjjjstjjjjv捜ニkjjGDv}<7D>jnjktjjkltjjjjGDv€{}jjjov㍾」誌隈D陶ッZ。ゥィィ媚<EFBDA8>」。「ョZァ飮ア」ョ「GDョ「岼Zョ「」ィ。yv嶋<76>jjkv{<7B>jnjktjjmjtjjjjv}<7D>v}<7D>GDv€<76>jmpkv}㍼jjjnv}<7D>jnjktjjprtjjjjv|号jnjkv<76>GDGDGD]jnjjGDv<44>敵Dv合}v}<7D>jnjjtjjkltjjjjv{<7B>jnjjtjjljtjjjnv捜ニknjGDv<76>jnjlGD]jnjkGDv<44>敵Dv合}v}<7D>jnjktjjkltjjjjv{<7B>jnjktjjljtjjjnv捜ニknjGDv<76>jnjlGD]jnjlGDv€<76>jmpkv€<76>jmplv€<76>lnqjGDv捜ニkjjv}㍼jjkoGDv㍾」誌隈D€ゥッ。「ョZゥ<5A><EFBDA9>Z|屹ャゥ。[v捜ニknjv<6A>~GDv拷祝jnov}<7D>jkojtjjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkoktjjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkol:jjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkomtjjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkontjjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkpjtjlomtjjjjGDv}㍼jjjrv<76>GDGD]jojjGDGD]kjjjGDv<44>€<E7A0BA>jmpjv€<76>jmpkv€<76>jnnjv€<76>jmlpv∮|jjjlv捜ニjmjv∮~jjjlv}<7D>kjjjtjjpjtjjjnGDv}㍼jjjjGDv居{jjmjv拷祝jlpGDv{<7B>kjjjtjjjrtjjjjGDv{<7B>jkjjtjjjktjjjjGDv捜ニjkjGDv∮~jjjjGDv}<7D>kjjjtjjpjtjjjjGDv捜ニkjjGDv居{jjmjv拷祝jlpGDv{<7B>kjjjtjjjrtjjjjGDv{<7B>jkjjtjjjktjjjjGDv捜ニjqjGDv居{jjmjv拷祝jlpGDv{<7B>kjjjtjjjrtjjjjGDv}<7D>jnjjtjjkstjjjlGDv}<7D>jkjjtjjkrtjjjlGDv}㈱jjjntjjjrtjjrjGDv}㈱jjjotjjjrtjjrkGDv}㈱jjjptjjjrtjjrlGDv}㈱jjjntjjjstjjspGDv}㈱jjjotjjjstjjsqGDv}㈱jjjptjjjstjjsrGDGDGDv㍾」誌撃ッエエ屬[v捜ニjojv}<7D>jnjjtjjkltjjjlv{<7B>jnjjtjjmjtjjjlv}<7D>v<EFBFBD>砺}㍼jjkkGDv}<7D>jojjtjjpqtjjjlv捜ニkjjv{<7B>jojjtjjkmtjjjlv捜ニjojv{<7B>kjjjtjjjrtjjjjGDv{<7B>jojjtjjkotjjjlv捜ニkkjGDv{<7B>jojjtjjljtjjjlGDv捜ニjojGDv€{}jjjov㍾」誌隈D陶ッZ。ゥィィ媚<EFBDA8>」。「ョZァ飮ア」ョ「GDョ「岼Zョ「」ィ。yv嶋<76>jjkv{<7B>jnjjtjjmjtjjjlv}<7D>v}<7D>GDv€<76>jmpkv}㍼jjjnv}<7D>jnjjtjjprtjjjlv|号jnjjv<76>GDGD]kjjkGDv<44>€<E7A0BA>jmplv€<76>jmpkv}㍼jjjrv㍾」誌計€{}jjjoGD{ヲヲZャ」。「ョfZュ沺Zウ媚ョ「洽hv<68>~v}<7D>v{<7B>jnjjtjjkjtjjjlv{<7B>jnjktjjkjtjjjlv<76>GDGD

View file

@ -1 +0,0 @@
S``i`=:l{u瑛v|]aai`lv|]aaialv|[aaibl}~qls}<7D>`c`lvqy````lu~t=:S``ia=:l{u瑛v|[aai`lv|]aaialv|]aaibl}~qls}<7D>`c`lvqy```alu~t=:S``ib=:l{u瑛}~qls}<7D>`c`lvqy```blu~t=:S``ic=:l{u瑛}~qls}<7D>`c`lvqy```clu~t=:S``id=:l{u瑛v|]aai`lv|[aaialv|]aaibl}~qls}<7D>`c`lvqy```dlu~t=:S``ie=:l{u瑛vqy```dlu~t=:S`a``=:l{u瑛<75><EFBFBD>`aalq~€`a``j````j```blvq```c=:lyй``bcj`a`alрq``fcj``icj```ij```d=:S`a`a=:l{u瑛рq``fgj``icj```ij```d=:S`aa`=:l€lvq```blрq``fdj``ibj```aj``aa=:S`ab`=:l{u瑛q~€`ab`j````j```bl<62><EFBFBD>`aalvq```dlрq``ffj``idj``a`j```h=:S`ac`=:l€l}ヘ<>劵P擂」、P瀦P、<50>P<EFBFBD>恙董<E68199>、覆=:Η姫憎捻、<E68DBB>P洟<50>「」P淘摯P辨P沾^^^l~tlu~t=:S`aii=:l€l}ヘ~剴姫圈耽l~tlu~t=:=:S`b``=:l{u瑛}液````lt~€0b``l㎞ネ}ヘq棠P箕「、<EFBDA2>「P憎捻ゥ衍W「<57>=:痢辨猶、蘖桝惧Ql~tlu~t=:S`b`a=:l€l}ヘlу<6C>=:PPPPPPPPPPPPзqЦケq||\Pv|{ゲl~tlu~t=:S`ba`=:l€lv|zaaiaj`baalv|zaaibj`bab=:l€lvq```dl}液```bl㎞y``e`lрq``fbj``iej```gj``gd=:S`baa=:l€lvq```dl}液```bl㎞y``e`lрq``fbj``iej``gij``gc=:S`bab=:l€lvq```dl}液````l㎞y``e`lрq``fbj``iej`aagj``fb=:S`bii=:lt~€`biilv|zbiiij````lu<6C>`c``=:S`c``=:lyй``cij`c`alu<6C>`c`c=:S`c`a=:lv|zbh``j`c`blu<6C>`c`c=:S`c`b=:lv|qlt~q``aclt~€`biilt~€`c``l<><EFBFBD>`celu~t=:S`c`c=:l{u瑛v~`c``j``afl}詠```bl}ヘlvqs``balwy<77>`cilу「辨猶摯PΗ姫未沱P、<50>Pu覧=:s泙「剩泙P促Pァ復弃促P、<50>P=:my「沾Pr沾芭Ql~tls|<7C>棡ゥP、<50>霸ァ劈弃yP弔舞娜、<E5A89C>」=:酎「「剳「^l~tlv}```hlu~t

View file

@ -1 +0,0 @@
S``i`=:l{u炼v|]aai`lv|]aaialv|[aaibls}<7D>`ahlvqy````lu~t=:S``ia=:l{u炼v|[aai`lv|]aaialv|]aaibls}<7D>`ahlvqy```alu~t=:S``ib=:l{u炼s}<7D>`ahlvqy```blu~t=:S``ic=:l{u炼s}<7D>`ahlvqy```clu~t=:S``id=:l{u炼v|]aai`lv|[aaialv|]aaibls}<7D>`ahlvqy```dlu~t=:S``ie=:l{u炼q~<7E>`bh`j``a`j````lv~`bh`j``af=:l𩺰y``e`lvqy```dlu~t=:=:S`a``=:l{u炼<75><E782BC>`aalq~<7E>`a``j````j```blvq```c=:ly<6C>``bcj`a`al<61>q``fcj``icj```ij```d=:=:S`a`a=:l{u炼<75>q``fgj``icj```ij```d=:=:=:=:S`aa`=:l<><6C>lvq```bl<62>q``fdj``ibj```aj``aa=:=:=:=:S`ab`=:l<><6C>lv|zacicj`abal}<7D>y匕<79>唞匕<E5949E><E58C95>Ql~tlu~t=:S`aba=:l{u炼vq```dlv}``afl<66>q``gij``idj``a`j```h=:=:=:S`aii=:l<><6C>ls}<7D>`ccl}<7D><><EFBFBD>𢏺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤏁=:<3A>𠠬<EFBFBD>角P<E8A792>═P腼Pㄓ<50><E38493>=:<3A><><EFBFBD>𢶠丐<F0A2B6A0><E4B890><EFBFBD>^^^l~tl<74><6C>u~t=:=:S`b``=:l{u炼}缆````lt~<7E>`b``l}<7D>q恢P棅═<E6A385><EFBFBD><EFBFBD><EFBFBD>=:<3A><>𢰦<EFBFBD>P<EFBFBD><50>Ql~tlu~t=:=:S`b`a=:l<><6C>l}<7D>l<EFBFBD><6C>=:<3A>q<EFBFBD><71>q||\Pv|{<7B>l~tlu~t=:=:S`ba`=:l<><6C>lv|zaaiaj`baalv|zaaibj`bab=:l<><6C>lvq```dl}缆```bl𩺰y``e`l<>q``g`j``iej```gj``gd=:S`baa=:l<><6C>lvq```dl}缆```bl𩺰y``e`l<>q``g`j``iej``gij``gc=:S`bab=:l<><6C>lvq```dl}缆````l𩺰y``e`l<>q``g`j``iej`aagj``fb=:=:S`bh`=:=:S0bi`=:S`bia=:S`bib=:S`bic=:S`bid=:S`bii=:=:=:=:=:S`c``=:l{u炼x}s=:lv}``afl}缆```bl<62>q``fhj`f``j``bdj``ac=:lu~t=:=:S`c`e=:S`c`f=:S`c`g=:S`ca`=:l<><6C>{u炼}缆````ls}<7D>`ahlv|]aai`lv|]aaialv|[aaiblvqy````=:lq~<7E>`c`ej``aaj```b=:lq~<7E>`bh`j``a`j````=:lv~`bh`j``af=:lq~<7E>`c`ej``c`j````l𩺰y``f`=:lt~<7E>`c`elv|]acialu~t=:S`cb`<60>]b=:=:S`cc`=:l<><6C>{u炼t~<7E>`cc`l}缆````lq~<7E>`cb`j````j```b=:l𩺰<6C>𩺰y``e`=:lv~`cb`j``afl}<7D>lvqs```a<>佅驣Ν<E9A9A3><CE9D>佅𠠬<E4BD85><F0A0A0AC>P<EFBFBD>=:╞蠄P<E8A084>W<EFBFBD>P<EFBFBD><50>P<EFBFBD>P鷀<50>=:<3A>㎜膄^l~t=:y上Ν<E4B88A><CE9D>佅P<E4BD85>𪈠P叚P<E58F9A><50>=:<3A><>P<EFBFBD><EFBFBD><EFBFBD>袇𠠬<E8A287><F0A0A0AC><EFBFBD>=:𤙥奴婱奴Ql~tls|<7C>䰻P<E4B0BB><50>妯l~t=:z<>蘯𪆓P<F0AA8693>㎜𪆓P<F0AA8693><EFBFBD>𢺳l~tls|l{u<>=:lq~<7E>`cb`j````j````l𩺰y``e`=:lq~<7E>`cb`j``c`j````l𩺰y``ab=:lq~<7E>`cb`j``d`j````l𩺰y``e`=:lv|]aciblv}``aflu~t=:=:S`d``=:l<><6C>{u炼v}<7D>t~<7E>`d``l𩺰y``c`lx}slvq````=:ls~<7E>`e``j`bedj````l𩺰y```a=:lq~<7E>`e``j``b`j```bl𩺰y```a=:lq~<7E>`e``j``c`j```bl𩺰y```a=:lv~`e``j``afl}<>`b`j``c`=:lt~<7E>`c`glt~<7E>`bh`=:l𩺰y`a``lvqy```d=:l}<7D>lvqs``bb=:<3A>𠠬腼<F0A0A0AC><E885BC>WΝ<57><CE9D><EFBFBD>璴^^l~tls|<7C>vqs``bhy上Ν<E4B88A>𡼏<EFBFBD><F0A1BC8F>佅䰻γ=:<3A>W<EFBFBD>P<EFBFBD><EFBFBD>P<EFBFBD><50>P䰻十l~tls|lvq```d=:ls}<7D>`cel<65>q``dijab``j``ihj```f=:=:S`e``=:=:

View file

@ -1 +0,0 @@
>;Taaja>;m~rmt~<7E>aaimwrzaaaamvu>;Taajb>;m~rmt~<7E>aaimwrzaaabmvu>;Taajc>;m~rmt~<7E>aaimwrzaaacmvu>;Taajd>;m~rmt~<7E>aaimwrzaaadmvu>;Taaje>;m~rmt~<7E>aaimwrzaaaemvu>;>;Taajj>;mt~<7E>aaimwrzaaaemvu>;>;>;Tabab>;mzmt∥babkaaaakaaaamо<6D>abbmwr€aaadm<64>raabdkaajdkaabakaaad>;>;Tabac>;mzmw}{adackabaemw}{adabkabadm~зpRm€umvu>;Tabad>;mz>;mw}{adaekabafm~зm<D0B7><EFBFBD><EFBFBD>・・圈浪、<E6B5AA>椁・劒沽pm€umvu>;Tabae>;m|v確wr€aaacm<63>raa1bkaajekaaaikaaag>;Tabaf>;mw}{bgeakabagm~зm<D0B7><EFBFBD><EFBFBD>・・圈浪、<E6B5AA>椁・劒沽pm€umvu>;Tabag>;mwr€aaacmw}\adacmw}\bgebmw}\bgec>;m~隔aaacm<63>raabbkadackaaaikaaag>;>;Tabba>;m|v確wr€aaaem<65>raajakaajckaaahkaaaj>;>;>;Tabfa>;m|v確~隔aaaamt~<7E>aaimwrzaaae>;m<>zaada>;mо<6D>abcmt~∥afakaadfkaaghm<68>zaaca>;mо<6D>abcmt~∥afakaadgkaaghm<68>zaaca>;mvu>;>;Tacaa>;mvu>;Tacab>;mvu>;>;>;Taeaa>;mzmо<6D>accmu∥eaamv<6D>aeab>;>;Taeab>;mv<6D>aabc>;>;

View file

@ -1 +0,0 @@
>;Taaja>;m~rmt~<7E>abcmwrzaaaamvu>;Taajb>;m~rmt~<7E>abcmwrzaaabmvu>;Taajc>;m~rmt~<7E>abcmwrzaaacmvu>;Taajd>;m~rmt~<7E>abcmwrzaaadmvu>;Taaje>;m~rmt~<7E>abcmwrzaaaemvu>;Tabaa>;m<>zmwr<77>aaaam<61>raabbkaajakaafgkaadd>;Tabba>;m|v㿭<76><E3BFAD>abbmr<72>bbakaaaakaaac>;mwr<77>aaaem<65>raaidkaajekaaahkaa1a>;Tacaa>;m<>zmu<75>caa>;mv薓acac>;Tacac>;mv薓aaic>;Tadaa>;mt<74>daakaaaakaaaamw}{adjakadacmw}\adjamv薓adab>;Tadab>;mv薓aafb>;Tadac>;m<>zm~<7E>rㄔ膓Φ十𣌀佂𨭤m<6D>u>;<3B>𢜟𩓚十見鷀<E8A68B>𡤅<EFBFBD>Q<EFBFBD><51>>;<3B><><EFBFBD>䭯m<6D>umt}<7D>~<7E>m<EFBFBD><6D>𢜟靱<F0A29C9F><E99DB1>﹞Q<EFB99E><EFBFBD><E99DB1>靱rㄔ膓β>;奴<>Q<EFBFBD><51>Q<EFBFBD>Q<EFBFBD>靱~<7E><>伃_m<6D>umt}<7D>vu

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
-::C:FWXKFMW_::::FPKS::::FOXN-::C;FWXKFMW_::::FPKS:::;FOXN-::C<FWXKFMW_::::FPKS:::<FOXN-::C=FWXKFMW_::::FPKS:::=FOXN-::C>FWXKFMW_::::FPKS:::>FOXN-::C?-::CCFUOcFWXKFMW_::::FKXZ:;?:D:::;D::::FPKS:::>FMXZ:=:;D:;;<D:::<FaKS:;::FKXZ:;?:D::::D::::FWcN:::<FNXZ:=:;F]WMFOXN-:;::FZ\SF]K^FPVT;:<=D:;:<FS^T::<?D:;:;FW]QS~1}*vymuon8FXYNFOXN-:;:;F]Y_::<<FW]QF^_\FQS^;:<?_}on*~ro*G^ovozy|~o|*\yyw*Uoエ8FXYNFMVYFS^7::<?FQS^::::FPV5;:<=FO`O:;:<-:;:<FUOcF]Y_::;;FKXZ:;::D::::D:::<FPKY:::<F^\K::?@D::C<D:::;D:;:=
-:;?:FUOcF]K^FPVT;;>:D:;?<FS^T::<?D:;?;FPVT;:<=D:;?;FO`O:;?<-:;?;FUOcFW]QNy*ペ*x~*~y*qy*~y*K|~r|1}ry}oIFcXT::::FMVYFPV5;:B<FPV5;;>:FZ]5:::?D@::?FWcN:::<FKXZ:<?:D::;:D::::FaKS::@:FMXZ:<@:D:;?:D::::FRWMFKXZ:<@:D::;:D::::FaKS::?:FPKY:::=FaKS:;::F]WMFPVT;;>;D:;?<FPV5;;>;F^\K::?AD:<<:D::;;D::;>-:;?<FZ\SFW]QNy*ペ*x~*~y*qy*~y*K|~r|1}ry}oIFcXT::::FMVYFZ]5:::?D@::?FUOcFMXZ:=::D:;;;D:::<FRWMFaKS::@:FKXZ:;?:D:::;D::::FaKS:;::FPKY:::>F^\K:::;D::CCD:::?D:::B-:<?:FUOcFW]Q88888FXYNFOXN-:<@:-:=::-:=:;

View file

@ -1 +0,0 @@
=:S``i`=:l}~qlv|]`bfcls}<7D>``blvqy````lu~t=:S``ia=:l}~qlv|]`bfcls}<7D>``blvqy```alu~t=:S``ib=:l}~qlv|]`bfcls}<7D>``blvqy```blu~t=:S``ic=:l}~qlv|]`bfcls}<7D>``blvqy```clu~t=:S``id=:l}~qlv|]`bfcls}<7D>``blvqy```dlu~t=:S``ii=:ls}<7D>`bhlvqy```dlu~t=:S`a``=:l<><6C>l<EFBFBD><6C>`aalt~<7E>`a``lvq```dl<64>q```fj``idj`aaij``ag=:S`b``=:l<><6C>=:ly<6C>```hj`b`b=:l{u炼}<7D>r襔<72><EFBFBD>𠠬<EFBFBD><F0A0A0AC><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><50>袇\=:<3A><EFBFBD>周𩡗<E591A8><F0A9A197>^l~tlv|z`bdaj`b`alu~t=:S`b`a=:ls|<7C>}<7D><>𠠬<EFBFBD><F0A0A0AC>袇P𢅛𠠬<F0A2859B>P<EFBFBD>𠠬<EFBFBD><EFBFBD><E591A8>=:<3A><EFBFBD>唞匕<E5949E><EFBFBD>ㄓ^^^l~tls|=:lv|[`bfalv|[`bfclu<6C>`c`a=:S`b`b=:l{u炼v|[`baclq~<7E>`b``j``a`j````l𩺰y``c`lvq```dl<64>q```fj``iij`abdj`0aa=:S`ba`=:l<><6C>lv|zbd`cj``ailv|z`bdaj`baalu<6C>``ai=:S`baa=:l{u炼v|[bd`clvq```dls}<7D>```l𩺰y``b`l}~<7E>`c``j``abj```fj````lq~<7E>`c``j``a`j````=:l𩺰y``e`l|y[a```l<><6C>`b`l}缆```bl<62><6C>vqy```dlu<6C>`bab=:S`bab=:lu<6C>``hg=:S`c``=:l<><6C>=:lv|zbdc`j`c`b=:lv|z`bdaj`c`c=:l{u炼}<7D>x<EFBFBD><78>P<EFBFBD>佅𥫩=:x𪈳𠠬<F0AA88B3><EFBFBD><EFBFBD>䣳髢=:<3A>𠠬<EFBFBD>𢅛<EFBFBD><EFBFBD>寸l~tlu~t=:S`c`a=:l{u炼}<7D>lwy<77>``h<>P<EFBFBD>匕䰻匕<E4B0BB>𠠬<EFBFBD><F0A0A0AC>袇\P<><50>=:<3A><>Pmz<6D>𢅺<EFBFBD><F0A285BA>Pz<50><7A>m^l~tlu~t=:S`c`b=:l{u炼}<7D><><EFBFBD><E4BB99>P䰻匕<E4B0BB><E58C95><E38E9C>𦻐Q=:q<><71><EFBFBD>Ql~tlu~t=:S`c`c=:lv|[`bfalv|[`bfc=:l{u炼}<7D>w<EFBFBD><77>αPyP<79><50>P<EFBFBD><50><EFBFBD>𠠬<EFBFBD><F0A0A0AC><EFBFBD><E7A182>=:<3A><EFBFBD>P<EFBFBD><EFBFBD>鰊𠠬<E9B08A><F0A0A0AC><EFBFBD>Ν䰻不<E4B0BB>𦖠^^l~tlu~t

View file

@ -1 +0,0 @@
?<Ubbkb?<n€snu㍍bbbnxs{bbbbnw€v?<Ubbkc?<n€snu㍍bbbnxs{bbbcnw€v?<Ubbkd?<n€snu㍍bbbnxs{bbbdnw€v?<Ubbke?<n€snu㍍bbbnxs{bbbenw€v?<Ubbkf?<n€snu㍍bbbnxs{bbbfnw€v?<Ubcbb?<n}w杵xsbbdn<64>sbbgelbbkdlbbbjlbcdc?<Ub2bb?<n}w杵w<E69DB5>bdbc?<?<Ubdbc?<n}w杵x~|cibblbdbdnx~]cibbn<62>㍍bddnu€dbblbbdclbbbbnw<6E>bebb?<Ubdbd?<n}w杵<E69DB5>n<EFBFBD>ф圀・R屹痢R屶R迭ヲ、對ァヲ由ヲ。Rォ。ァ、?<沫ヲ陸泝<E999B8>逃孱<E98083>`Ry棕、ォRヲ。R到<52>?<ャ欄棕ァ・R伏到棊<E588B0>剽、・Sn€」nw€v?<Ubebb?<nw<6E>bbid

View file

@ -1 +0,0 @@
?<Ubbkb?<n<6E>snx~|befclbbkgnu𣸆bbknxs{bbbbnw<6E>v?<Ubbkc?<n<6E>snx~|befclbbkhnu𣸆bbknxs{bbbcnw<6E>v?<Ubbkd?<n<6E>snx~|befclbbkinu𣸆bbknxs{bbbdnw<6E>v?<Ubbke?<n<6E>snx~|befclbbkjnu𣸆bbknxs{bbbenw<6E>v?<Ubbkf?<n<6E>snx~|befclbbkknu𣸆bbknxs{bbbfnw<6E>v?<Ubbkg?<nu𣸆bdjnxs{bbbbnw<6E>v?<Ubbkh?<nu𣸆bdjnxs{bbbcnw<6E>v?<Ubbki?<nu𣸆bdjnxs{bbbdnw<6E>v?<Ubbkj?<nu𣸆bdjnxs{bbbenw<6E>v?<Ubbkk?<nu𣸆bdjnv<6E><76>dbbnv<6E><76>dcbnv<6E><76>ddbnxs{bbbfnw<6E>v?<Ubcbb?<n<>{n<>𣸆bccnv<6E><76>cbbnxs<78>bbfn<66>sbbcclbbkflbbfelbbef?<Ubdbb?<nx~|bedilbdbc?<n}w𡃉<F0A18389>nxsubbbi<62><EFBFBD>俘式Rs丹银丸<E993B6>?<黾坏𡢟``n<><6E>?<{R<><EFBFBD><EFBFBD>𠘚妔<F0A0989A>充𣑐?<<3C>𢬢吐<F0A2ACA2><E5A694><EFBFBD><EFBFBD><E5A694>`n<><6E>?<t<>它R哄吾R<E590BE>丑辺^?<<3C><><EFBFBD>R<EFBFBD><52>R哄刪<E59384><E588AA>Y<EFBFBD>?<<3C>〝```n<><6E>nu~<7E><>蠄R<E8A084><52>妔|<7C>𨧨<EFBFBD><EFBFBD>?<<3C>𠘚妔式R<E5BC8F><52>R𣺹```n<><6E>nw<6E>v?<Ubdbc?<n}w𡃉<F0A18389>nxsubbbi<62>丑辺```?<{R<>𢔛吐<F0A2949B><E59090>秄妔𣺹```n<><6E>?<<3C>丑辺Y充<59><E58585>卜𤧅<F0A4A785>乞?<s丹银乞R<E4B99E>充𣫮<E58585>圲鱝坏?<<3C>中椘亡n<E4BAA1><6E>?<t圻R<E59CBB>R<EFBFBD><EFBFBD><E58585><EFBFBD>R僟R?<<3C><EFBFBD>R<EFBFBD>妔v<E5A694>式丸<E5BC8F>?<䐓<>匝n<E58C9D><6E>?<s<>R嵗奉R{```{R衮<52><E8A1AE>Y<EFBFBD>?<═<E29590><EFBFBD>亡``n<><6E>nw<6E>v?<Ub2cb?<n}w𡃉<F0A18389>nxsubbbk<62>𠘚妔㨩妔扣﹕<E689A3>咱R式?<s丹银丸充黾坏𡢟n<F0A1A29F><6E>?<<3C>丑辺R<E8BEBA><EFBFBD><EFBFBD>R<EFBFBD><52>`n<><6E>?<<3C><E5A694>卜𣸑R<F0A3B891><52><EFBFBD>R<EFBFBD>?<<3C><E5A694><7F>𣫮膄𢹸𡛂㨩飜n<E9A39C><6E>nw<6E>v?<Ubddb?<n}w𡃉<F0A18389>nxsubbbk<62>丑辺Y充𤧅<F0A4A785>卜s丹银<E4B8B9>?<咅<>鷼R<E9B7BC><52><EFBFBD>吐𣫮黾中<E9BBBE><E4B8AD>?<<3C>餸椬<E9A4B8><E6A4AC>亡``n<><6E>nu~<7E><>R<EFBFBD><EFBFBD><E4B8AD>R<EFBFBD>椬袠<E6A4AC>R<EFBFBD>𣸑?<𣸑<><F0A3B891>R<EFBFBD>𣑐R<F0A39190>𢬢戎R<E6888E>?<<><7F>𢬢`n<><6E>nu~<7E>吃充嵗吐<E5B597>妔v<E5A694>式乞?<𣺹Y匝``央<><E5A4AE><EFBFBD><EFBFBD><E7ADBB>`n<><6E>?<<3C>𣑐R<F0A39190>椬袠<E6A4AC><EFBFBD><E58585><EFBFBD>?<<3C>𣸑R𣸑<52><F0A3B891>R咅卜<E59285>𠯫`n<><6E>nu~<7E><EFBFBD><E59090>R<EFBFBD><52>R式R<E5BC8F><52>?<<3C><><EFBFBD>璴n<E792B4><6E>?<圲吐s丹银卜<E993B6><E58D9C><EFBFBD>_<EFBFBD><5F><EFBFBD>𠿭?<𣶸”妔𣺹R<F0A3BAB9><52>`n<><6E>?<z𣸑R<F0A3B891><52><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD><52><EFBFBD>?<<3C><><EFBFBD><EFBFBD>筻“卜<E2809C><E58D9C><EFBFBD><EFBFBD>?<𠈔<>R<EFBFBD><52>```n<><6E>nu~<7E>Y<EFBFBD>R<EFBFBD><52>卜咅<E58D9C>𠲸R𣺹^?<𢬢R鱝<52>R𢬢R{R<><52>`n<><6E>nu~<7E><EFBFBD><EFBFBD><E4BF98>R<EFBFBD><52><EFBFBD><EFBFBD><E4BF98>?<<3C><><EFBFBD>R僟R<E5839F>妔v<E5A694>式乞?<圲吐<E59CB2>R<EFBFBD>充𣫮忖<F0A3ABAE>R<EFBFBD>丑`n<><6E>nw<6E>v?<Ubebb?<n}w𡃉{<7B>bbbjlbebc?<n<6E>\u<><75><EFBFBD>\R\<5C>𤙥S\n<><6E>nx~|bffdlbbbbnu~<7E>“R<E2809C>妔央<E5A694><E5A4AE><EFBFBD>筻𠿭<E7ADBB><F0A0BFAD>?<<3C><EFBFBD>R<EFBFBD><EFBFBD><E5A694>𠯫`n<><6E>nw<6E>v?<Ubebc?<ns<6E><73>ebblbbcblbbbbn统{bbebnx~|bffdlbebdnx~]bffdnv<6E><76>ebbnwòbebe?<Ubebd?<n}w𡃉v<F0A18389><76>ebbnw<6E>v?<Ubebe?<nwòbbbi

View file

@ -1 +0,0 @@
IF_llulIFx<EFBFBD>}x<><78>opmvlluqx<78>lllnx<6E><78>lllx<6C><78>IF_llumIFx<46>}x<78>lllnx<6E><78>llmx<6D><78>IF_llunIFx<46>}x<78>lllnx<6E><78>llnx<6E><78>IF_lluoIFx<46>}x<78>lllnx<6E><78>llox<6F><78>IF_llupIFx<46>}x<><78>opmvlluux<78>lllnx<6E><78>llpx<70><78>IFIF_lluqIFx<78>llntx<74><78>lllx<6C><78>IF_lluuIFx<78>llntx<74><78>llpx<70><78>IFIF_lmllIFx<46>𡣘<EFBFBD><F0A1A398>qrmvlmlnx<6E>𡡣lmmx}<7D>lmllvllllvlllnIFx<46>嚯llnx<6E>}llmlvllunvlllovllmnIF_lmlmIFx<46>𡣘<EFBFBD><F0A1A398>qrmvlmlnx<6E>𡡣lmmx}<7D>lmlmvllllvlllnIFx<46>嚯llpx<70>}llonvllupvllltvllluIF_lmlnIFx<46><78><EFBFBD><EFBFBD>豹釩泌豹型〞]x<><78>x<EFBFBD><78>IFIFIFIFIF_lnllIFx<46>𣗏Fx<46><78>qrpvlnlpIFx<46><78>qrnvlnlrIFx<46><78>c瓷\物陘左α鬥\<5C>琵鬥\筍強x<E5BCB7><78>x<EFBFBD><78>IF_lnlmIFx<46>𡣘<EFBFBD><F0A1A398>𨀤鴂\垮豹◤娉陘<E99998><EFB98F><EFBFBD>疽x<E796BD><78>IF<49>\筍崤秣′\囿\陘<E99998><EFB98F>h\陘△c豕IF曲帕\垮豹㓤癧𤟠陛\筍強x<E5BCB7><78>IF<49>\<5C>}<7D>𦖭仃扇疲\鬥侷x<E4BEB7><78>x<EFBFBD><78>IF_lnlnIFx<46><78>nsovlnlqIFx<46>𡣘<EFBFBD><F0A1A398>俞帖瓷\陘﹏𪃸狗鬥炕疲\筍寂F炕<46>\鬥\言1\陘祝”甫jjx<6A><78>x<EFBFBD><78>IF_lnloIFx<46>𡣘<EFBFBD><F0A1A398>順帑𠸊jjjx<6A><78>x<78><7F>砟jjjIF㙈\仃炒挾\◤屐jj\╞砟jjjx<6A><78>x<EFBFBD><78>IF_lnlpIFx<46><78><EFBFBD>\釩<>歿<EFBFBD>爭𩄼扈<F0A984BC>\鬥\鱝IF左\鴂躀ㄐ\哈\陘<E99998><EFB98F>\𢥫炕jx<6A><78>IF𧂈㓤癧丑娉炳洵央疽x<E796BD><78>x<78><7F>娉井扈弁jjjx<6A><78>x<78>𪊴帘帘jjjx<6A><78>x<78>jjj㙈屆酗左\陘<E99998><EFB98F>IF𢥫炕jjj{x<><78>x<EFBFBD><78>IF_lnlqIFx<46>𡣘<EFBFBD><F0A1A398>戛\恣檱\帖帘央珮部恣IF坏豕<E59D8F>\嬍\悍𠿭偺jx<6A><78>x<78>摱\<5C>阸c豹〃〞\型〞<E59E8B>\垮埋F△\窗迴jjx<6A><78>IF~掠\戛巡\<5C><EFBFBD>\扈jx<6A><78>x<EFBFBD><78>IF_lnlrIFx<46>𡣘<EFBFBD><F0A1A398>垮c恣\走咩左α◤娉恣癧◢奕砸x<E7A0B8><78>IF𨫡︷珮㓤\咧癧釩<E799A7>歿<EFBFBD>屆狢F<E78BA2>爭𩄼酗俞岩ㄓ豹妒奕\<5C>垮豹陘𨀤jx<6A><78>x<78>𠹻h\恭ㄓ迴x<E8BFB4><78>x<78><7F>\筍崤ㄚ\鬥\砥丑屑IF筍崤垮ㄓ豹鬥\𡆇左α檱囿ΖF陘𠼻α炕敦\鬥\陘鱝䰇x<E4B087><78>x<EFBFBD>glqrpx<70><78>IFIFIFIF_lollIFx<46>𡣘<EFBFBD><F0A1A398>lollx<6C>lx<6C><78>llllx<78>llllIFx<46>glqrmx<6D>𣗏Fx}<7D>lqllvlllovlllnx𤛔<78>lsux}<7D>lqllvllllvlllnIFx<78>lomlvlmnnvlllnx<6E><78>lnllIFx<78>lommvlmnnvlllnx<6E><78>lnlmIFx<78>lomnvlmnnvlllnx<6E><78>lnlnIFx<78>lomovlmnnvlllnx<6E><78>lnloIFx<46>𡡣llpx<78>lpllvlmmtvlllnx<6E><78>lqllIFx~<7E>lpllIFx<78>lllpIFx}<7D>lpllvllmlvlllnIFx}<7D>lomlvllmlvlllnIFx}<7D>lommvllmlvlllnIFx}<7D>lomnvllmlvlllnIFx}<7D>lomovllmlvlllnIFx<46><78>IFIFIF_lomlIF_lommIF_lomnIF_lomoIFIFIFIF_lpllIFx<46>𡣘<EFBFBD><F0A1A398>lpllIFx<46>ilqrmx<6D>ilqrqIFx}<7D>lomlvllnlvlllqIFx}<7D>lommvllnlvlllqIFx}<7D>lomnvllnlvlllqIF<}<7D>lomovllnlvlllqIFx<78>lpllvlmmsvlllqIFx}<7D>lpllvlllqvlllqx𤛔<78>llnIFx}<7D>lpllvllolvlllpx<70>𡡣lslIFx𤛔<78>mllx<6C><78><EFBFBD>llmqx<71><78><EFBFBD>穉F𤨎酜垣琶x𤛔<78>mplx<78>llllx<6C><78>x<78>x<EFBFBD>glqrnIFx<46>嚯llpx<70>}llnuvllulvllmnvllluIFIF_lpmlIFx<46>𡣘<EFBFBD>glqrnx<6E><78><EFBFBD>llmu𠹻]x<><78>x<EFBFBD>llllx<78>IFx}<7D>lpllvllmlvllllx𤛔<78>lqlIFx<46><78><EFBFBD>llmu𧞄帷恣\野陘\陘竉岩<E7AB89>涅F鬥哂x<E59382><78>x<78>𨫡𨀤c珮恭ㄓ退\陘︷涅F物陘左α<E5B7A6><EFBFBD>垮豹陘〝]x<><78>x<78><7F>戛巡jIF戛巡\~<7E>椬jx<6A><78>IF㨩〞\<5C>釩均\惇h\<5C><>涅F野陘\陘鴂巨矾〞jx<6A><78>x<78>x<EFBFBD>llnq<6E>𠼻泌豹<E6B38C>瓷\㓤琵屆帖恭IF鱝◤恣\陘𨀤jjjx<6A><78>IF}帚<E5B89A>h\筍崤岩ㄓ豹<E38493>痙x<E79799><78>x<78>x<EFBFBD>llnl<6E><6C>疽jj洫<6A><E6B4AB>巡\䣺F竉岩<E7AB89>i鵐<69>丑娉曲秣\言均IF陘城丑娉悍𠿭偺jjjx<6A><78>x<78>IFx<46><78>pmqIFIF_lpmqIFx<46>𡣘<EFBFBD><F0A1A398><EFBFBD>llmu𠹻h\釩赦x<E8B5A6><78>x<78>𨫡𨀤\𤨓<>娉蝱躀\哈\筍戛涅F弁\左\𧨾沔砟𧢝】x<E38091><78>IF<49>俞筍崤<E7AD8D>狐\鬥\乾<>F弘\◤娉延\<5C>鴂左ㄠ泯x<E6B3AF><78>pnlx<6C>glqrox<6F>llllx<78>IFx𨬌炼llnvlllpvlmllx<6C>邮lln<6C><6E><EFBFBD>\垓&\陘y𤨓<79>娉蝱躀yjx<6A><78>x<78>IFx<78>llmlx<6C>邮llp<6C>豹陘y<EFB98F>鴂左<E5B7A6>泊]x𤛔<78>mrlx<6C><78>x<EFBFBD>𪄣<F0AA84A3>IFx<46>嚯llpx<70>}llnuvllulvllmnvllluIFIF_lpnlIFx<46>𡣘<EFBFBD><F0A1A398><EFBFBD>llmu繧檱巡{x<><78>x<78>摱豕h\失\筍崤〃&\鴂㓤ㄐIF筍戛\岩<>h\<5C>豕\鱝\丑恣jx<6A><78>x<EFBFBD><78><EFBFBD>x<EFBFBD><78>llllIFx<46>嚯llpx<70>}llnuvllulvllmnvllluIFIFIFIFIF_lqllIFx<46>𣗏Fx<46><78>qrovlqolIFx<46><78>qmqIFIF_lqmlIFx<46>𡣘<EFBFBD>glqrnx<6E><78><EFBFBD>llmu𠹻]x<><78>x<78>𧞄帷恣\野陘\陘竉岩<E7AB89>涅F鬥哂x<E59382><78>x<78>𨫡𨀤c珮恭ㄓ退\陘︷涅F物陘左α<E5B7A6><EFBFBD>垮豹陘〝]x<><78>x<78><7F>戛巡jIF戛巡\~<7E>椬jx<6A><78>IF㨩〞\<5C>釩均\惇h\<5C><>涅F野陘\陘鴂巨矾〞jx<6A><78>x<78>x<EFBFBD>llnq<6E>𠼻泌豹<E6B38C>瓷\㓤琵屆帖恭IF鱝◤恣\陘𨀤jjjx<6A><78>IF}帚<E5B89A>h\筍崤岩ㄓ豹<E38493>痙x<E79799><78>x<78>x<EFBFBD>llnl<6E><6C>疽jj洫<6A><E6B4AB>巡\䣺F竉岩<E7AB89>i鵐<69>丑娉曲秣\言均IF陘城丑娉悍𠿭偺jjjx<6A><78>x<78>IFx<46><78>qmqIFIF_lqmqIFx}<7D>lllnvlqmsx}<7D>llmovlqmsIFx<46><78><EFBFBD>llmux<75><78>炕\<5C>痛\<5C>癧恣檱巡\言均IF鬥\屆※\陘𨀤\ㄠ狗岩陘jjjx<6A><78>x<EFBFBD><78>IFIF_lqmsIFx<46>glqrox<6F><78>qmtIFIF_lqmtIFx<46><78>lltIFIF_lqnlIFx<46>𡣘<EFBFBD><F0A1A398><EFBFBD>llmu繧檱巡{x<><78>x<78>摱豕h\失\筍崤〃&\鴂㓤ㄐIF筍戛\岩<>h\<5C>豕\鱝\丑恣jx<6A><78>x<EFBFBD><78>IFIF_lqolIFx<46>𡣘<EFBFBD><F0A1A398><EFBFBD>llnq<6E>c珮陘<EFB98F>狗\酗剃恣IF陘恣檱\<5C>癧ㄠ粟]x<><78>IF𨫡竉岩<E7AB89>珮部恣\曲秣IF扈<46>\嬍\陘〝jx<6A><78>x<EFBFBD><78>IFIF

View file

@ -1 +0,0 @@
ROhuu~uRO£宕∴丁uuuu°<75>uuuu♀悼ROhuu~vRO£宕∴丁uuuu°<75>uuuv♀悼ROhuu~wRO£宕∴丁uuuu°<75>uuuw♀悼ROhuu~xRO£宕∴丁uuuu°<75>uuux♀悼ROhuu~yRO£宕∴丁uuuu°<75>uuuy・悼ROhuvuuRO落§爆uuvv♂燈uvuu°<75>uuuy☆螺uuw~uu~yuuu{uuu~ROhuyuuRO落§爆uuww♂燈uyuu♀寢uyuvROhuyuvRO♀寢uuwuROhuywuRO萱♂燈uywu♀寢uywvROhuywvRO♀寢uu}z

View file

@ -1 +0,0 @@
QNgtt}tQN€…€‡™tttt€Š…<C5A0>tttt€‰ˆQNgtt}uQN€…€‡™tttt€Š…<C5A0>tttu€‰ˆQNgtt}vQN€…€‡™tttt€Š…<C5A0>tttv€‰ˆQNgtt}wQN€…€‡™tttt€Š…<C5A0>tttw€‰DQNgtt}xQN€…€‡™tttt€Š…<C5A0>tttx€‰ˆQNgtuttQN€”<E2809D>€Š…“tttx€˜…ttut~tt}x~tt{w~ttv{QNgtxttQN€”<E2809D>ˆ”txtt€Š<E282AC>otzut€‰š‰txtuQNgtxtuQN€‰š‰ttvt

Binary file not shown.

View file

@ -1 +0,0 @@
{x憺灖瀧x<E780A7><EFBFBD>焊灕灋<E78195>被脼灋Κ疮窞灋灙臣瞷x憺灖焮x<E784AE><EFBFBD>幻灋灕<E7818B><E78195>灋灍<E7818B>疾{x憺灖爗x<E78897><EFBFBD>焊灕灋<E78195>灖お被脼灋Κ疮窞灋牚臣瞷x憺灖<E686BA>x<EFBFBD><EFBFBD>幻灋灕<E7818B><E78195>灋灐<E7818B>疾{x憺灖<E686BA>x<EFBFBD><EFBFBD>幻灋灕<E7818B><E78195>灋灑<E7818B>疾{x憺灖<E686BA>x<EFBFBD>幻灋牎<E7818B><E7898E>灋灋<E7818B>疾{x憺灖<E686BA>x<EFBFBD>幻灋牎<E7818B><E7898E>灋灎<E7818B>疾{x憺煘瀧x<E780A7><EFBFBD>矫灋煙<E7818B>季灍灋<E7818D>灋灗灋灎<E7818B><E7818E>灋灋<E7818B>蜡灋ⅲ<E7818B>灖灗灋<E78197><E7818B><EFBFBD>x憺煘焮x<E784AE><EFBFBD>恋封庡蒈曗庉抻軠<E68ABB><EFBFBD>疾{x憺煙瀧x<E780A7><EFBFBD>焊灔<E7848A><E78194>煙煪涣祼蚕苷余彁庒渍茚幭嘤庌谙徕余右{x馅趲蒌余庘钟幰葺鄿<E891BA>讲{x封曖庌噍邢汹鐜茌鈳蠋蛰菀幾矣蟵x廨幱茆余幭谳苡湝湭冀勃臣瞷x憺煙焮x<E784AE><EFBFBD>矫灋煙<E7818B>季灍煘<E7818D>灋灗灋灎<E7818B><E7818E>灋灎<E7818B>蜡灋<E7818B>灖牗灋灑<E7818B><EFBFBD>x憺煚瀧x<E780A7>赂灋牊<E7818B>煚焮x<E784AE><EFBFBD>恋禽銕钟相庘钟庒葶芤庉詭嚆嶂总調x逑庥鄮脏蒇庡租肿n湭冀瞷x封庡葶谝軙鈳杏幭幷葺規滓酉庘輲钟弦{x总庡租州汊幭軒献鄮庀苜湭冀勃臣瞷x憺煚焮x<E784AE><EFBFBD><E59F8E>灋灐<E7818B>蜡灋ⅵ<E7818B>灖〃灍<E7818D>灋焮x{x憺煟瀧x<E780A7><EFBFBD><EFBFBD>幻灋灕<E7818B><E78195>灋灒<E7818B>季灐灋<E78190>煙エ灋灎<E7818B><E7818E>灋灎{x<><78>灋煘{x<>季灐灋<E78190>灋〃灋灎<E7818B><E7818E>灋煠{x<>季灐灋<E78190>灋煥灋灎{x<>季灐灋<E78190>灋〃灋灎<E7818B><E7818E>灋あ{x<>季灐灋<E78190>灎灗灋灎<E7818B><E7818E><EFBFBD>{x<>季灐灋<E78190>灋煥灋灋<E7818B><E7818B>灋煘{x<>季灐灋<E78190>灋〃灋灎<E7818B><E7818E><EFBFBD>{x<>季灐灋<E78190>灎灗灋灎<E7818B><E7818E>灋煘{x<>矫灋煙<E7818B>季灍煘<E7818D>灋灗灋灎<E7818B><E7818E>灋牉{x<>季灐灋<E78190><E7818B>灋牉{x<>矫灋煙<E7818B>季灍煘<E7818D>灋灗灋灋<E7818B>簷灕牉<E78195>疾{x憺<78>瀧x憺 瀧x<E780A7><EFBFBD>恋禽銕嵊訋蠋秀忖蒈湭冀勃两脼灑—焙廓涣稻嘤後右幾鉁<E5B9BE><EFBFBD>航{x<><78><EFBFBD>{x<>矫灋<E79FAB>{x<>痪灋灔<E7818B>灋灋{x<>痪灋灕<E7818B>灋灋{x<>痪灋牑<E7818B>灐煥灍煙{x<><78><EFBFBD><E7818B>疾{x

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}…```hlvqy````lu~t=:S``ia=:l}~qls}…```hlvqy```alu~t=:S``ib=:l}~qls}…```hlvqy```blu~t=:S``ic=:l}~qls}…```hlvqy```clu~t=:S``id=:l}~qls}…```hlvqy```dlu~t=:S`a``=:l€ylvq```dl„q```bj``idj`bb`j```g=:S`ae`=:l{u‰l}ƒw•”P •¤œ£P¢•P£“¤¤•¢•”PŸ¥¤^l~tlu~t=:S`b``=:l{u‰l}ƒw‰Ÿ¥P™ž”PPžŸ¤•^l~tls|l„…‡™¤˜˜•P£˜™•œ”P¥ \PyP“žW¤=:—•¤P¤ŸP~Ÿ^P``W£P¢ŸŸ<C5B8>^l~tls|l„…yP¤˜™žPŸž•PŸ˜•£•P¤•¢<E280A2>™žœ£=:Ÿ¥—˜¤P¤ŸP•Pœ•P¤ŸPœŸ§•¢P¤˜•=:£˜™•œ”^^^l~tlu~t=:S`c``=:l€ylv|z`b``j```alv|[`b``=:lƒ…``bbls~€`c``j``baj````lu†u`c`a=:S`c`a=:lu†u``c`=:S`e``=:S`e`a=:l€yl}ƒcl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`a=:u¢¢Ÿ¢jPu——W£P“Ÿž”™¤™ŸžPžŸ¢<C5B8>œ^=:q”¦™£•P™ž¦•£¤™—¤™Ÿž^l~tlu~t=:S`e`b=:l€yl}ƒcl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`b=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`e`c=:l€yl}ƒcl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`c=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`e`d=:l€yl}ƒcl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`d=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S0e`e=:l€yl}ƒcl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`e=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`e`f=:l€yl}ƒcl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`f=:u¢¢Ÿ¢jPu——W£P“Ÿž”™¤™ŸžPžŸ¢<C5B8>œ^=:q”¦™£•P™ž¦•£¤™—¤™Ÿž^l~tlu~t=:S`e`g=:l€yl}ƒcl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`g=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`e`h=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`h=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`e`i=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P`i=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`ea`=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^Pa`=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`eaa=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^Paa=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`eab=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^Pab=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`eac=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^Pac=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`ead=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^Pad=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`eae=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^Pae=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t=:S`eaf=:l€yl}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^Paf=:sŸž”™¤™ŸžPžŸ¢<C5B8>œ^l~tlu~t

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}…```hlvqy````lu~t=:S``ia=:l}~qls}…```hlvqy```alu~t=:S``ib=:l}~qls}…```hlvqy```blu~t=:S``ic=:l}~qls}…```hlvqy```clu~t=:S``id=:l}~qls}…```hlvqy```dlu~t=:S`a``=:l€ylv|z`ibaj`aa`lvq```dl„q``dij``idj`bafj```d=:S`a`a=:l€ylv|z`ibaj`aa`lvq```dl„q``dij``idj`bbgj```f=:S`aa`=:l€yl}ƒwl„…‰Ÿ¥P“žW¤P—•¤PŸ¥¤QQl~tlu~t=:S`b``=:l{u‰=:S`c`b=:l{u‰lv|z`ib`j`0`alv|[`ib`lƒ…``bbls~€`c`bj``baj````ls~€`c`dj``dfj````lu†u`c`c=:S`c`c=:lu†u``c`=:S`c`d=:l{u‰lt~€`c`dls}…````lƒ…``ab=:ls}€```dj```ej``cgl}‰t````l‡qy``e`l}‰t```bl‡qy``e`lrƒ|````ls}…```dlrq``b`lv|[`ibalu~t=:Sa```=:l{u‰lrqa```l‡qy`be`ls}…````=:l}ƒwl„…ls}…``ae=:r•¤P¤˜•Pƒ™£¤•¢£Ql‡qy`af`l~tls|=:ls~€``afj``afj```bls}…```h=:lƒ…``abls}€```dj```ej``dalv|]`ibalu~t

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}…``adlvqy````lu~t=:S``ia=:l}~qls}…``adlvqy```alu~t=:S``ib=:l}~qls}…``adlvqy```blu~t=:S``ic=:l}~qls}…``adlvqy```clu~t=:S``id=:lv|z`ab`j``ielu†u``ie=:S``ie=:l}~qls}…``adlvqy```dlu~t=:=:S`a``=:l€ylƒ…``aalt~€`a``lvq```dl„q```bj``idj`biaj```h=:=:S`a`e=:l€yl}ƒwtŸP©Ÿ¥P§ž¤P¤ŸP£¦•ol‰~z````lƒ†€ls|w<77>•P£¦•”^l~tlu~t=:S`a`f=:l€yl|y[a```lƒ…``b`lqu[l}ƒwuž•¢—©P¢•£¤Ÿ¢•”^l~tlu~t=:=:=:S`aa`=:l{u‰l}ƒw‰Ÿ¥P••œPP“Ÿœ”P§™ž”=:œŸ§™ž—P™ž^^^l~tlu~t=:=:=:S`b``=:l{u‰=:lv|[`ab`lv|[`a`elv|[`aedlv|[`aeelv|[`cbilv|[`a0flv|[bh``=:l}‰r```bl‡qy``b`l}‰t```b=:l‡qy``b`lq~€`b``j```ej```bl}‰t```cl}‰t```b=:lq~€`b``j```cj```bl‡qy``c`=:lq~€`b``j```ej```b=:l‡qy``e`lƒ…``dcl‡qy``b`=:lq~€`b``j````j````l‡qy``e`=:lq~€`b``j```cj````l‡qy`abf=:lq~€`b``j````j```bl‡qy``b`=:l}‰t````=:lq~€`b``j```ej```bl‡qy``b`=:lƒ…``aalq~€`a``j````j```bl‡qy``b`=:lq~€`a``j````j````lt~€`b``lƒ…``bclu~t=:=:S`c``=:l{u‰l}ƒwl„…ƒ©Pt¢—ŸžPu——P~Ÿ^P``=:x¤“˜™ž—P ¢• ¢¤™Ÿž£P“Ÿ<E2809C> œ•¤•^l~tls|=:yž ¥¤P€££§Ÿ¢”jl~tlu~t=:S`c``=:l€ylvq```dl„q```aj``idj```ej```g=:=:=:S`d``=:=:

View file

@ -1 +0,0 @@
ZWp}}<7D>ZW凹寰艶圓}}}~遠事}}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}~遠事}}}~薗尅ZWp}}<7D>ZW凹寰艶圓}}}~遠事}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}~遠事}}}€薗尅ZWp}}<7D>ZW遠剽}~}}}<7D>凹寰艶圓}}}~遠事}}}♂兆岨Wp}}<7D>ZW凹寰猿屎}~~}<7D>}}}<7D>}}艶圓}}}~遠事}}}♂兆岨Wp}}<7D>ZW汚懲凹寰艶圓}}}~ZW猿屎}~}}<7D>}}~<7E>}}}遠事}}}W艶屎}€}~<7E>~~<>}}王事}~}}ZW猿屎}~}}<7D>}}}<7D>}}}ZW凹ヲ挿}}苑屎}€}~旺嚼薗尅ZWp}~}}ZW往泱凹<E6B3B1>秤。「汨シmニシツmトョサチmチシmエシmチシm質チオツソtタZWオシツタイ潔ヲ尢}}}}艶劈ZW汚懲艶屎}€}}<7D>~~~<7E>}}鴛嚼王事}}マ猿屎}~}}<7D>}}~<7E>}}}ZW王事}~}}遠慈}}}♂。沁}}}~<7E>}<7D><>}}}}}<7D>Wp}~}~ZW往泱遠慈}}}♂。沁}}}∞}}<7D><>}}<7D>}}}<7D>Wp}~}ZW汚懲艶屎}€}}<7D>~~~<7E>}}鴛嚼王事}}マ猿屎}~}}<7D>}}~<7E>}}}ZW王事}~}}遠慈}}}♂等z}~}ラ。沁}}∞}м}<7D>}}<>}}}ZWp}~}€ZW往泱遠慈}}}♂。沁}}}}}<7D><>}~}<7D>}}<7D>Wp}~}<7D>W往泱遠慈}}}♂。沁}}<7F>}<7D><>}~<>}}ZWp}~}セW往泱旺悗}}~~苑屎}~}ラ梼怡}}♂。沁}}<7F>}<7D><>}~~<7E>}~ZWp}~}ЩW往泱遠慈}}}♂。沁}}€<7F>}<7D><>}}<7D>}}}<7D>Wp}~}<7D>W往泱遠剽}~}€<>~}<7D>國薄チmトシサtチmシスイサn央恆薗尅ZWp}~}<7D>W往泱旺悗}}~~苑屎}~}<7D>梼怡}}♂。沁}}}€<>}<7D><>}}∞}}~}ZWp}~~}ZW往泱遠剽}~}}~~~凹<>薄チmトシサtチmシスイサ{{{央恆薗尅ZWp}~~~ZW往泱苑屎}~~}遠慈}}}♂。沁}}~<7E>}<7D><>}~}<7D>}}<7D>Wp}}}ZW往泱凹<E6B3B1>薄tアmトョチーオmシツチmカウm卜トイソイmニシツ{央恆ZW。オョチmトオカチイmチオカサエmシサmチオイZWッシチチシコ潔屆岨W惱イmチシツーオmョサアm撩、ymカチtタmシテイソ{央恆薗尅ZWp}€}}ZWp}€}~ZWp}±}ZW往泱遠凅}~}~旺悗}}苑屎}±}薗」筑±€ZWp}±~ZW往泱遠凅}~}旺悗}}苑屎}±~薗」筑±Wp}±€ZW薗」筑}~ZWp}±W薗」筑}~€ZWp}<7D>}ZW汚懲凹M}凹ヲ挿}}遠圓苑屎}<7D>}遠凅}~}}ZW凹<57>秤梼図}}€猿屎}<7D><EFBFBD>}~~<7E>}}。オイソイmニシツmョソイyZWニシツmコシサタチイソn央恆ZW釦コmサシチmョウソョカアアョmニシツn猿屎}<7D><EFBFBD>}}}<7D>}}央恆艶辧艶圓}}}}ZW遠諮}}~惧博歯貧n央恆艶辧遠諮}}}€猿屎}<7D><EFBFBD>}~~<7E>}}猿屎}<7D><EFBFBD>}~~<7E>}}ヲイョオ稽、オョチtタmチオョチ潔屆岨Wヲシツmトョササョmッソカサエmカチ系央恆艶辧半mョオイョアmョサアmチソニn央恆ZW津イサmコニmッソシチオイソtタmサイテイソZWッイョチイサmコイnn央恆遠諮}}}}艶劈ZW猿屎}<7D>~<7E>}}<>}}}王事}}ZW猿屎}<7D>~<7E>}}∞}}}}王事}}~}ZW猿屎}<7D><EFBFBD>}}ョ}}}王事}}~}往泱凹<E6B3B1>秤梼図}}●シウnmヲシツmトカサn央恆艶劈汚懲ZW猿屎}<7D>~<7E>}}∞}}}}王事}}~}ZW猿屎}<7D><EFBFBD>}}ョ}}}王事}}~}往泱凹<E6B3B1>薄tコmタシソソニnZW釦コmタシソソニnn央恆遠諮}}}}艶劈汚懲ZW猿屎}<7D>~<7E>}}∞}}}}王事}}~}ZW猿屎}<7D><EFBFBD>}}<7D>}}}<7F>背請ョタオnw王事}}<7D>艶劈ZW王事}}}凹<>莫シシオオ{{{央恆艶辧閉オ潔屆岨W王事}}~}猿屎}<7D><EFBFBD>}}}<7D>}}}王事}}~}ZW凹<57>秤梼図}}~、オシtソイmニシツ潔屆岨W猿屎}<7D>~<7E>}}<>}}}王事}}<7D>ZW猿屎}<7D>~<7E>}}∞}}}}王事}}~}ZW猿屎}<7D><EFBFBD>}}ョ}}}王事}}}€ZW往泱凹<E6B3B1>秤梼図}}£ソクn王事}}<7D>遠諮}}}}艶劈汚懲ZW猿屎}<7D><EFBFBD>}~€<>}}}王事}}<7D><EFBFBD>秤梼図}~{{{{{央恆艶劈ZW猿屎}<7D>~<7E>}}<>}}王事}~}苑屎}<7D>苑屎}<7D>~押圓薗尅ZWp}<7D>~ZWp}<7D>ZWp}<7D>€ZW汚懲遠凅}~}€遠悍}<7D>€<EFBFBD>}~セW艶屎}<7D>€<EFBFBD>}<7D><>}}}ZW王事}±}艶圓}}~<7E>W遠悁}}~ラ國秤。「飮W卒ウイョチイアm牟シソn王事}~±央恆ZW艶圓}}}~薗尅ZWp}<7D>Wz}<7D><>W往泱凹<E6B3B1>秤梼図}~€、オョチ{{{潔屆痩杉洟オイソイmョコm本{{潔屆岨W、オョチmアカアm本{{潔屆痩杉洟オシmョソイmニシツ潔屆痩兆岨Wp}マ}ZW汚懲遠圓苑寰}}e凹嘲凹ヲ挿}}苑屎}マ}ZW艶圓}}}W艶屎}<7D>∞}}~€<>}}}ZW艶屎}<7D>€<EFBFBD>}<7D><>}}}縁<><EFBFBD>€遠凛}~}€薗尅ZW

View file

@ -1 +0,0 @@
GD]jjsjGDv㊧{v}㍼jjlqv€{ニjjjv<76>GD]jjskGDv㊧{v}㍼jjlqv€{ニjjkv<76>GD]jjslGDv㊧{v}㍼jjlqv€{ニjjlv<76>GD]jjsmGDv㊧{v}㍼jjlqv€{ニjjmv<76>GD]jjsnGDv㊧{v}㍼jjlqv€{ニjjnv<76>GD]jjsoGD]jjssGDv<44>砺㊧{v}㍼jjlqGDv{<7B>jkjjtjjjktjjjjv€{ニjjnGDv}<7D>jmjktjkkltjjjlv捜ニkjjGDv{<7B>jkjjtjjjjtjjjjGDv∮~jjjlv~<7E>jmjkv合}v<76>GD]jkjjGDv褐プ㍾」誌鯨ゥZウゥッZア岑ョZョゥZ。ゥZョゥZ{ャョ「ッャaュGD「ゥッュ毓v嶋<76>jjjv}<7D>v€<76>jkosGDv<44>砺}<7D>jmjjtjkkktjjjlv}v捜ニjpjv{<7B>jkjjtjjjktjjjjGDv捜ニkjjv€{泳jjnv詞{jjjktjjsstjjjotjjjrGD]jkjkGDv褐プ€{泳jjnv詞{jjoktjjsntjjjntjjjnGD]jkjlGDv褐プ€{泳jjnv詞{jjoktjjsntjjkrtjjjrGD]jkjmGDv褐プ€{泳jjnv詞{jjjotjjsntjjkj:jjjrGD]jkjoGDv褐プ€{泳jjnv詞{jjojtjjsntjjkltjjjlGD]jkjpGDv褐プ€{泳jjnv詞{jjojtjjsntjjkktjjklGD]jkjrGDv<44>砺拷祝jkkv{<7B>jkjrtjjjjtjjjlv€{泳jjnv詞{jjoltjjsntjjjntjjkjGD]jkkjGDv<44>€{泳jjnv詞{jjontjjsntjjkjtjjjsGD]jkkkGD]jljjGDv褐プ㍾」誌月「飮撥ャ撥ュュZゥ<5A>Z媚婚ウZ~ャ孱ゥィhhhv<68>~v<76>GD]jljkGDv{<7B>jljktjjjjtjjjlv<76>GD]jlkjGDv褐プ㍾」誌月「洳飮ア岶Zョ「」ュZ「ッ。飮浚ェヲゥュ」ゥィ[GD造洽Zセ撥ァ飮ョゥfZ」ョZ屹ヲZヲゥゥ・沾GDヲ」・飮ョ「」ュhv<68>~v<76>GD]jmjjGD]jmjkGD]jmljGDv褐プ€<E38397>jrrjtjjjkv€<76>jrrjv拷祝jllv}<7D>jmljtjjlktjjjjv<76>jmlkGD]jmlkGDv<76>jjmjGD]kljjGDv<44>砺{<7B>kljjtjjljtjjjjGDv€沿kljjtjjkpv€{ニjjkGDv捜ニkjjv€{泳jjkv詞{jjjptkljjtjkqktjjkn

View file

@ -1 +0,0 @@
B?XeeneB?q們vq{v~eeeeqz儁B?XeenfB?q們vq{v~eeefqz儁B?XeengB?q們vq{v~eeegqz儁B?XeenhB?q們vq{v~eeehqz儁B?XeeniB?q們vq{v~eeeiqz儁B?B?XefeeB?q€z巕x倞eeeeq寁~efeeq垊奺fefq寁~eegeq垊奺ehjq寁~egeeB?q{剝egfeoeefkB?q寁~efeeqx倞eeeeB?qv儏egeeoeekeoeeegq{v~eeehB?q寁~eheeqy儏eggeB?q寁~egeeqy儏egeeB?qv儏egheoeeheoeeeeq寁~eeegB?qv儏egheoeefeoeeeeB?q{剝egieoeefkB?q寁~efkeB?q倛|B?qx倞eefex柂湞棶U€柉<E282AC>朧q寁~efkeqx亣q{vxeefe厺毈cccq儎yqx亣~U<><EFBFBD><E78FB0>お湞<E6B99E>猏橞?枠┆枴Uオ U灘U<E78198>沜q儎yqx亣w·瑸<C2B7>U<EFBFBD>U<EFBFBD>歎槫<E6AD8E>cccq儎yqx亣寶 aU¥琔<EFBFA5><EFBFBD>А橴お湞〣?─U棜U洤殮U洤あU枺甎洩┆<E6B4A9>B?灒槚В柀灓U<EFBC88>U<EFBFBD>歎y<E6AD8E><EFBFBD>q儎yB?厷枠歎潠║棜殻Uェ毃毀珰橵q儎yqx亣B?儰琣U<E790A3>║湦U潳<55>cq儎yqx亜B?q€z巕{v別eeiq}倄q墖veeeeoefeeoeeefoeefjB?B?XefgeB?q€z巕x倞eeeeB?q{剝egieoeefkB?qx儏egheoehjkoeeegB?qy儏eggeq寁~egeeB?q{v~eeefB?q倛|q{vxeeejq{乣geeeq{乣fike厺毈Vq寁~eejeqx亣墲柀ccc瑬║槨え歝q寁~eejeqx亣q{vxeefn~U<>お湞~U瑬║<E791AC><E29591><EFBFBD>?<3F><EFBFBD><E38087>灗U<E78197><55>U洡<55><>cccq寁~eejeB?仱<><EFBFBD>牃U瑲Uが欱?<3F>猆枺ぉ潥<E38189>ぃ歝q寁~eejeqx亜q{vxeeeeq寁~eejeB?q倛|q{vxeeej儢漚U櫎<55><EFBFBD>枺燯<E69EBA>cq寁~eejeB?~U瑬║煪īU櫎灒淯瑵柀B?倿<>МU枿牃橴<E78983>U─U櫎cq寁~eejeqx亣q{vxeegj倿<6A>МtU帳猆<E5B8B3>枺aB?<3F>柀U瑸<55>漷q寁~eejeqx亣B?q{vxeeej墲柀\║<>湞ヽq寁~eejeqx亣q{vxeegj~U<>お湞<E6B99E>歎潠<E6AD8E>橞?お<>湭┄cq寁~eejeB?}殬燼U~U<>お湞巹夿?潠<>橴お<E6A9B4>湭┄cccq寁~eejeqx亣q{vxeeej帳猆棜柀Uw枴·╝U<E2959D>湞﹖q寁~eejeqx亣対殻U<E6AEBB>猆櫈橴<E6AB88>柀aB?灘U<E78198>洨殭Uお<55>槳Ж歝q寁~eejeB?儰琔<E584B0>灘潥<E78198><E6BDA5>U<EFBFBD>U潠˙?─U牃Uぇ櫄ЖU洤あB?枺<><E69EBA>Vq寁~ee5eqx亣q{vxeefn~U<>お湞<E6B99E>猆湭<E78C86>U瑲<55>B?煪īU煔<55>╝q寁~eejeB?棯︰~U湭毃║灘U瑬║枴<E29591>?<3F>歎xГ<78>\║洊<E29591>¬q寁~eejeqx亣q{vxeeej寶 aU<61><EFBFBD>枼U瑵柀B?<3F>猆à琧q寁~eejeB?v洨毀U枴<55>U倿<55>М\║<>欱?ぃ歎瑵<E6AD8E>潠橴潪<E6A9B4><E6BDAA>牃U<E78983>欱?槯が<E6A7AF>灒U<E78192>歎洖Жァ枠歝q寁~eejeqx亣q{vxeegj}獫cq寁~eejeB?帳猆櫎<E78C86><EFBFBD>甤q寁~eejeqx亣q{vxeeej~U櫎U<E6AB8E>甤q寁~eejeqx亜q{vxeeeeB?q寁~efjeB?q倛|q{vxeeej垽Vq寁~eejeqx亣B?q{vxeegj垽tq寁~eejeqx亣q{vxeeej垽U瑵柀U枾歎<E69EBE>猆湦灒淏?─U櫎U¥瑃q寁~eejeB?~U槚<55>牃U<E78983>猆枺<E78C86><EFBFBD>B?<3F><EFBFBD>牃cq寁~eejeqx亣q{vxeefn}ⅱaU<61><EFBFBD>U<EFBFBD>湞ヽccq寁~eejeqx亣劒<E4BAA3><E58A92>è灓<C3A8>灗Uか毀aB?枺橴¥琔~U煪īU瑬U─B?<3F>珰Uお<E3818A>U櫀<55>q寁~eejeB?à<>瑵毀歎瑵毀歎~U槚<55>?<3F><>璘枺橴殻煠甎朆?棜柂<E6A39C><EFBFBD>珵毈cccq寁~eejeqx亜q{vxeeeeB?q寁~efeeq倛|q{vxeeej姖aU<61>猆牐がcccq寁~eejeqx亣B?q{vxeegj}<7D>q寁~eejeqx亣q{vxeeejccc尋<63>橴灘U棜U枴<55><E69EB4>湞〣?灈U~U煠灒殭U<E6AEAD><EFBFBD>毀歵q寁~eejeqx亣B?q{vxeefn埅<6E>Vq寁~eejeB?仛<E28090>珰U<E78FB0><EFBFBD><E6AD8E>欱?<3F>U<EFBFBD>U─湚<E29480>毀Vq寁~eejeqx亣B?q{vxeefi嚉枴tVq寁~eejeqx亣q{vxeefn~\ U<E38080><EFBFBD><EFBFBD>槧U<E6A7A7>欱?ēぉcq寁~eejeB?<><EFB8B0>U<EFBFBD>U朥湦<E69CA5>B?ァ枠歛U<E6AD9B>柈tq寁~eejeqx亣B?q{vxeefi帳猆湦灘VVq寁~eejeqx亣v U<E38080><E6B99E>殻aB?qv儏egheoeegeoeeeg漲寁~eefe杚寁~eefe<66>寁~eefe渜寁~eefeUq寁~eefe<66>寁~eefe<66>寁~eefeUq寁~eefe﹒寁~eefe瀜寁~eefe渜寁~eefe漲寁~eefe﹒寁~eefeVVq寁~eejeqx亜q{vxeeeeB?q€z巕{v別eeiq}倄q~<7E>eehgoefgfq墖veeeeoefeeoeeefoeefjB?B?XefgfB?q€z巕寁~efeeq倛|q|~塮ehgcccv<63><76><EFBFBD>猆洡<E78C86><EFBFBD><E6AF84>B?à<><C3A0>灒渢q寁~efjeq墖veeeeoefeeoeeefoeefjB?B?XegeeB?XegfeB?XeggeB?XegheB?XegieB?B?

Binary file not shown.

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}…```hlvqy````lu~t=:S``ia=:l}~qls}…```hlvqy```alu~t=:S``ib=:l}~qls}…```hlvqy```blu~t=:S``ic=:l}~qls}…```hlvqy```clu~t=:S``id=:l}~qls}…```hlvqy```dlu~t=:S`a``=:l€ylv|z`e``j`a`a=:lƒ…``aals~€`a``j``ahj```blvq```dl„q```fj``idj`bgcj```f=:S`a`a=:l€yl}ƒwy¤P§ŸžW¤PŸ •žQl~tlu~t=:S`b``=:l{u‰lv|z`e`aj```alv|[`e`alƒ…``bbls~€`b``j``baj````=:ls~€`d``j``dfj```bls~€`d`aj``dfj````l‡qy```a=:lu†u`c``=:S`b`a=:S`b`b=:l{u‰=:ls~€`e``j``fgj```bl‡qy``a`l}‰t````l‡qy``i`=:lq~€`e``j``acj`0`bl‡qy``e`lq~€a```j```hj````=:ls~€`b`aj```ij```bl‡qy``hhl}‰t````l‡qy``e`ls}…``aa=:ls~€`b`aj``abj```blq~€`b`aj````j```b=:l‡qy``b`lq~€`e``j``bej````l‡qy``e`lq~€`b`aj``d`j```blq~€`e``j``b`j````l‡qy``c`lq~€`b`aj``dbj```blrq``b`l‡qy`a``=:lt~€`b`alrq``a`l‡qy``a`lrq`a``lrƒ|````ls}…```glv|[`e``lu~t=:S`c``=:lu†u``fa=:S`d``=:lt~€`d``lt~€`d`alu†u`b`b=:S`d`a=:lu†u`d``=:S`e``=:Sa```=:l{u‰lrq`ac`lt~q`aa`lt~q`a`dl‡qy`db`ls}…``ae=:l}ƒwl„…=:vŸ¥—˜¤PŸPrœ¢Ÿ—Ql‡qy`ad`l~t=:ls}…```hlv|]`e``lu~t

Binary file not shown.

View file

@ -1 +0,0 @@
ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}~薗尅ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}€薗尅ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}♂兆岨WZWp}~}}ZW往泱遠剽}<7D>~<7E>~}~遠剽}<7D><7F>~}€ZW薗」筑~}ZWp}~}~ZW往泱凹<E6B3B1>幡シツmーョサtチmケイョテイn央恆薗尅ZWp}~}ZW遠慈}}}♂。沁}}~}<7D>}<7D><>}}€セWp}~}€ZW遠慈}}}♂。沁}}€х}マ}<7D>}€€<C280>}~WZWZWp}<7D>}ZW汚懲薗」筑<EFBDA3>~ZWp}<7D>~ZW汚懲旺治薗」筑<EFBDA3>ZWp}<7D>ZW凹ヲ挿}}ZW遠凅}ラ等x}♂味z}}~♂等z}пZW遠凅}<7D>}遠凅}<7D>~凹寰艶圓}}~ч伏翠糖孺<E7B396>€<EFBFBD>}~ラ梼凡}}W王事}}<7D>ZW猿屎}<7D><EFBFBD>}}}<7D>}}}王事}}€}ZW猿屎}<7D><EFBFBD>}}}<7D>}}ZW猿屎}<7D><EFBFBD>}€}<7D>}}}王事}}<7D>ZW艶屎}<7D>€<EFBFBD>~<>}}}王事}~~}ZW艶屎}<7D>€<EFBFBD>}マ<>}}}王事}}€}ZW猿屎}<7D>€<EFBFBD>}}}<7D>}}ZW猿屎}<7D>€<EFBFBD>}}ョ}}}}艶屎}<7D>∞}}}<7D>}}}王事}~}}ZW艶屎}<7D>∞}}~<>}}猿屎}<7D>€<EFBFBD>}~}<7D>}}ZW猿屎}<7D>∞}}€}<7D>}}ZW遠悍}<7D>ョ}}~ラ寺掵<E5AFBA>∞}}€}<7D>}}ZW猿屎}<7D>∞}}マ<>}}王事}}€ZW猿屎}<7D>∞}}<7D><>}}王事}}<7D>ZW艶圓}}}ZW遠悍}<7D>}}~ラ、事}}€}艶圓}}~<7E>W艶屎}<7D>}}ミ<>}}猿屎}<7D>}}}<7D>}}王事}}<7D>窺ヲ挿}<7D>ZW猿屎}<7D>}}~}<7D>}}王事}}W猿屎}<7D>}}マ<>}}王事}}<>W猿屎}<7D>∞}}}<7D>}}}王事}}<7D>ZW猿屎}<7D>}}}}<7D>}}王事}}}ZW遠悍}<7D>~<7E>}~セW王事}}<7D>ZW猿屎}<7D>}}~}<7D>}}王事}}±ZW猿屎}<7D><EFBFBD>}}<7D>}}}王事}}~<7E>W猿屎}<7D>~<7E>}~}<7D>}}}ZW艶屎}<7D>х}~<>}}王事}}~<7E>W猿屎}<7D>}}€}<7D>}}}遠悍}<7D>}}~セW苑寰}~≠艶圓}}}}王事}~€}ZW王事}}€}旺嚼王事}}€}ZW遠悍}<7D>~<7E>}~ラ寺掵<E5AFBA>~<7E>}}<7D>}}}猿屎}<7D>~<7E>}€}<7D>}}}王事}~}}艶圓}}}W艶屎}<7D>€<EFBFBD><>}}<7F><EFBFBD>€ZW遠悁}}~ラ兆岨WZWZW薗尅ZWp}<7D>~ZWp}<7D>ZWp}<7D>€ZW汚懲遠凅}<7D>€苑寰}~×苑寰}~<7E>ZW遠悍}<7D>€<EFBFBD>}~ラ寺掵<E5AFBA>€<EFBFBD>~}}<7D>}}<7D>W王事}±}艶圓}}}}ZW凹<57>秤。「飮W卒ウイョチイアm徳イサヌカイアm。シソシクシ{央恆艶劈ZW猿屎}<7D>€<EFBFBD><>}}i糖嘲}~ラ兆岨Wp}<7D>Wp}<7D><>W遠剽}<7D><7F>マ~ZW遠剽}<7D>€<7F>マ}ZW往泱凹<E6B3B1>硲シ{{{央恆。シソシクシ{{{央恆薗尅ZWp}<7D>セWp}<7D>ЩWZWp}マ}ZW汚懲旺治遠凅}<7D><7F>秤。「汢梼図}}<7D>ソエオ{{{央恆艶辧銘tタmチシシmケョチイmウシソmコイ{央恆ZW、カケケmニシツ{{{ョテイサエイmコイ{{{潔屆痩杉彁W猿屎}<7D>}}±<>}}i圜殉}}}王事}~}}薗尅ZWp}マ~ZW汚懲遠凛}<7D>~苑屎}<7D>張筑マZWp}マZW薗」筑}}<7D>WZW

View file

@ -1 +0,0 @@
0-FSS\S0-_pqd_idlSSSS_hqg0-FSS\T0-_pqd_idlSSST_hqg0-FSS\U0-_pqd_idlSSSU_hqg0-FSS\V0-_pqd_idlSSSV_hqg0-FSS\W0-_pqd_idlSSSW_hqg0-FSS\X0-_nh|0-_iomTXVU]SUSS_idlSSSV0-_iomTXXS]SUST_hqg0-FSS\Y0-_nh|_p|eSSSU_zdlSSSU_sul_idlSSST_hqg0-FSTSS0-_sul_idrSSST_wudSS[T]SS\X]STXT]SSTV0-FSTTS0-_sul_irpSSTY_idrSSSV0-_zdlSSVS0-_iomTXVW]STTT0-_wudSS[W]SS\X]SSTS]SSSU0-FSTTT0-_wudSS[X]SS\X]SSTS]SSSU0-FSUSS0-_fqsSUSS]SVUS]SSSS0-_ioPTXVU_ioNTXVV0-_zdlSSSU_idlSSSV_iomTXXS]SUST_hqg0-FSUST0-_gqsSUST0-_fpsSSSZ]SSTW]SSST0-_fpsSSS[]SSTW]SSST0-_fpsSSS\]SSTW]SSST0-_fpsSSTS]SSTW]SSST0-_fpsSSTT]SSTW]SSST0-_fpsSSTU]SSTW]SSST0-_fpsSSTV]SSTW]SSST_hqg0-FSUWS0-FSUWT0-_gqsSUWT_dqsSUWS]SSTS]SSSV_hqg0-FSUWU0-FSUWV0-_gqsSUWV_dqsSUWU]SSTS]SSSV_hqg0-FSUWW0-FSUWX0-_gqsSUWX_dqsSUWW]SSTS]SSSV_hqg0-FSUXS0-FSUXT0-_gqsSUXT_dqsSUXS]SSTS]SSST_hqg0-FSUXU0-#SUXV0-_gqsSUXV_dqsSUXU]SSTS]SSSV_hqg0-FSUXW0-FSUXX0-_gqsSUXX_dqsSUXW]SSTS]SSST_hqg0-FSUXY0-FSUXZ0-_gqsSUXZ_dqsSUXY]SSTS]SSSV_hqg0-FSU\S0-_gqsSU\S_vrxSSTU0-_fpsSTTZ]SSS\]SSU[0-_fpsSTTZ]SSTS]SSU[0-_fpsSTTZ]SSTT]SSU[0-_hqg0-FSU\T0-_gqsSU\T_vrxSSTU0-_fpsSS\X]SSSV]SSU[0-_fpsSS\X]SSSW]SSU[0-_fpsSS\X]SSSX]SSU[0-_fpsSS\X]SSSY]SSU[0-_hqg0-FSU\U0-_gqsSU\U_vrxSSTU0-_fpsSSSS]SSSS]SSU[0-_fpsSSSS]SSSS]SSU[0-_fpsSSSS]SSSS]SSU[0-_hqg0-FSVSS0-_gqsSVSS_gqdSVS\_gqdSVTT_gqdSVTZ0-_irqSVST]SSTY0-_fpxSSSZ_evoSSSS0-_fpsSSUS]SSTT]SSST0-_fpsSSUS]SSTU]SSST0-_erdSTSS0-_fqsTSST]SVVS]SSSS0-_fqsTSSU]SVVS]SSSU0-_vrxSSTU0-_hqg0-FSVST0-FSVSU0-_prySST[]SSTS_hqg0-FSV\S0-_sul_iomTXXT]SSST_ioNTXXT0-_vrxSSUU_fqsSV\S]SSUT]SSSS_hyhSWSS0-FSWSS0-_hyhSSVX0-FS\SS0-_gqsS\SS_hqg0-FS\ST0-_gqsS\ST_hqg0-FTSSS0-_erdSXSS_fpxSSSS_ioPTXXS_hqg0-FTSST0-FTSSU

View file

@ -1 +0,0 @@
挓煥焲y<EFBFBD><EFBFBD>寄煙煣<EFBFBD>案煙煙<EFBFBD>匠|y挓煥爘y<E78898><EFBFBD>寄煙煣<E78599>案煙煚<E78599>匠|y挓煥<E68C93>y<EFBFBD><EFBFBD>寄煙煣<E78599>案煙煛<E78599>匠|y挓煥<E68C93>y<EFBFBD><EFBFBD>寄煙煣<E78599>案煙煝<E78599>匠|y挓煥<E68C93>y<EFBFBD><EFBFBD>还牊煙<E7898A>煥か冀矮布臒煙Й蛋笩煙磁礋<E7A381>焲y挓煥<E68C93>y<EFBFBD><EFBFBD>寄煙煣<E78599>案煙煟<E78599>匠|y|y挓牊焲y<E784B2><EFBFBD>灸煙牋<E78599>娇煚煙<E7859A>煙煩煙煛<E78599>熬煙煟<E78599>涟煙あ<E78599>煙Δ<E78599><EFBFBD>y|y挓牋焲y<E784B2><EFBFBD>灸煙牋<E78599>娇煚牊<E7859A>煙煩煙煛<E78599>熬煙煙<E78599>涟煙ぅ<E78599>煥煩煚牕<E7859A><EFBFBD>y|y挓<79>焲y<E784B2><EFBFBD>粴牊煙<E7898A>粴牊·<E7898A>粴牊ⅶ<E7898A>瘸煙煛<E78599>案煙<E6A188>|y<>娇煟煙<E7859F>煚煩煙煙|y<>娇煟煙<E7859F>煛煩煙煙<E78599>案煙<E6A188><E78599>匠|y|y挓<79>焲y<E784B2>慈|y<>还牊煝<E7898A><E7859D><EFBFBD>y<EFBFBD>霉煙ˉ<E78599><CB89><EFBFBD>y<EFBFBD>还牊煛<E7898A><E7859B><EFBFBD>y<EFBFBD>还牊煚<E7898A><E7859A>牜祷殸煙牜祷殸煝<E6AEB8>y<EFBFBD>娇煟煙<E7859F>煚煩煙煙|y<>露磋行鬃惈既睙煙骄倡不脸掭栥徻刿蹚茉惈骄硘y笘軓袕卒苄輴徃徺溻銖洲銃y苄重倚圹鑿沅彷杂徹葶迀y袕钾茇中悘笘軓卒苄輴<E88B84><EFBFBD>涣蜂桩<E89C82><EFBFBD>涣潩潩潾骄倡不莲敖繜<E69596>煩煙煙<E78599>煙煫蛋矡煛<E79FA1>仔銝鈴阕剽畖y绒鋿嵩忀捭忁菰忁諒阕掴詜y谪圹葬忈扪捭猱<E68DAD>境|y圃圹洀鑟鋸庖嗅杂忋自|y咝葶鈴拚諒茉洀黉苓剌謡y掬銖圬谠忋仔銗<E4BB94><EFBFBD>涣绒鋸孓溘虞栥徰詮阕秀|y庑遑掎洀孓溘訌柁洚<E69F81><EFBFBD>匠|y|y|y挓<79>爘y<E78898><EFBFBD>粴牊煛|y<><EFBFBD>安煙¨笘軓搞拮洀掭詮拚忋自|y卒苄葩忔邹徱熊詮戕忋棕鈢y剽坌萦忋迯愚忈遭孕嵋诐<E5B58B>境|y米秀忔劂易徏剽葬鑿沅彷杂|y茉徹葶迯阕剽潩潾骄硘y笍苄菪衷訌戕徶糟徯嫘铔|y唁銤潩黉忏徾揶趶秀徿詽<E5BEBF><EFBFBD>涣拜訌蒉鎻笘軓忏湟趶自嵩惈骄倡不寥掬徱圬苎杂忎邚蔗捃忋自|y掬汊赜詻徲赜輺銖柁錆<E69F81>境|y笘軓休徳葜剌栽釓拚|y肄葩赜葬醒墼忋雄暂銢<E69A82>境|y唁銖笘軓釉秀综鑿姓嵝赜|y拚徸载肿汊潩潾骄倡不辆讻忔拊洀孓詮剽徿詽潩<E8A9BD><EFBFBD>涣笍菰逶釓庾掬塾栧詮肄茉|y戕忋棕鈴剽坌萦徹輳阕詜y肇徕銖咣幸詽<E5B9B8><EFBFBD>匠|y|y挓<79><E68C93>y<EFBFBD><EFBFBD><EFBFBD>安煙¨睫洀蒉洀怃嵩坭忚掬徸绣詜y蒉忎庠徴掎忊湟讖袕咝阕糟匾泑y忏嵝萦杂徾劂阚詮苄轁<E88B84><EFBFBD>匠|y|y|y挓<79><E68C93>y<EFBFBD><EFBFBD><EFBFBD>粴牊煝<E7898A>糯煟煠|y挓<79><E68C93>y<EFBFBD><EFBFBD><EFBFBD>安煙¨敦逶徏鉂徛汹熊捭迯荑|y嵩中嵊鉂<E5B58A><EFBFBD>匠|y挓<79><E68C93>y<EFBFBD>糯煙Ζ|y|y

View file

@ -1 +0,0 @@
ol<EFBFBD>兆弛l椡ー」棗ッキ鋳丁棹」ォ鋳鋳棹ョャ漠鋳恍兆璃ァーヲol<EFBFBD>兆登l椡ー」棗ッキ鋳丁棹」ォ鋳駐棹ョャ漠鋳恍兆璃ァーヲol<EFBFBD>兆俳l椡ー」棗ッキ鋳丁棹」ォ鋳樗棹ョャ漠鋳恍兆璃ァーヲol<EFBFBD>兆賓l椡ー」棗ッキ鋳丁棹」ォ鋳瀦棹ョャ漠鋳恍兆璃ァーヲol<EFBFBD>兆撲l椡ー」棗ッキ鋳丁棹」ォ鋳猪棹ョャ漠鋳恍兆璃ァーヲolol<EFBFBD>兆熔l棗ッイ鋳薄恍駐<EFBFBD><EFBFBD>椥ーヲolol<EFBFBD>湯弛l椚ァサ棹」ア鋳鋳楔エ」鋳利恍兆凋駐樗恍苧熔lol<EFBFBD>涛弛l椚ァサ楫アキ鋳涛椒ーイ駐湯恍鋳凋鋳樗棹」ア鋳鋳楔エ」鋳利恍兆凋鋳屁恍猪撲lolol<EFBFBD>白弛l椚ァサol棹ョャ湯囀恍白俳l棹ョャ湯囃恍白登l椡オゥ硯ハムマメでハムマメ倹瑞棆アヲ棗ョエ<EFBFBD>ーアヲ棗ョアol椡サ、鋳鋳椒ーイ樗鋳恍鋳莫鋳猪椹」ォ鋳葡椡サヲ鋳鋳棹ョ酷丁寵ィョ藷樗璃ィョ酷樗椀l椡オゥアハ獅ホムムヘほハム苛づルテヘヌ裾ーアヲ棗ョエカハムラノハヨぽムラぱヒノハヨてヌとヌテニ塵lサムラとヒニミ茄なホヒミナハひムぱテヨヨヌヤolハムルぱテミロへヒマヌユしラヌぷマテナヘヌニぽムラ裾ーアヲ棗ョエカハヒユねユへハヌのテヒホ裾ーアヲolカハムユヌほハムへヤロへムとヌネロへハヌえムナヨムヤolノヌヨへハヤムルミねミぬヌヤヌ裾ーアヲolカムヌぷラトフヌナヨユなムヤぬヒユolヌレメヌヤヒマヌミヨユ瑞裾ーアヲ棗ョエ瑞生ハテヨ苛ほハテヨしラヌぷテヒニ裾ーアヲ棗ョエサムラづなヤヒヌミニびネぬヌヤユ。棆アヲolサムラ花ヌづてヒヨへムムばテヨヌ裾ーアヲolオハヌべユヌニへムてヌねミぬヌヤヌほヒヨハべユ裾ーアヲ棗ョエオハヌほテユでテヤヒミノなムヤぽムラへハヌolルハムホヌへヒマヌ裾ーアヲol、ラヨのラユヨづばヒヨヨホヌほハヒホヌづノム姉lヨハヌロでテマヌづミニへムムヘぬヌヤづルテロ裾ーアヲ椥クァ樗兆olol<EFBFBD>白登l椡オゥ棹ョ酷丁導ハぽヌテハ裾ーアヲ棗ョエャラユヨてヌネムヤヌへハヌロぬテラホヌニぬヌヤびネネ姉lォぷテルぬヌヤでヤテマぷムマヌヨハヒミノねミヨムolロムラヤぴムナヘヌヨ裾ーアヲ椥クァ樗兆olol<EFBFBD>白俳l椚ァサ椡オゥケハテヨほテユねヨ獅テばムリヌばヌヨヨヌヤ。棆アヲ棗ッイ鋳薄恍駐<EFBFBD><EFBFBD>椥クァ樗兆olol<EFBFBD>白孃l椚ァサ椒ーイ樗鋳恍鋳凋鋳樗椥ーヲololol<EFBFBD>粕弛l椚ァサ棯ッ・棗ーイ樗箔恍痘凋鋳樗椒ーイ樗箔恍駐凋鋳樗椹」ォ鋳嵐ol椡ー」棗ッキ鋳丁棹」ォ鋳猪椹」ォ鋳嵐楫ッ・棣ーイ樗箔椥ーヲol<EFBFBD>粕登lol<EFBFBD>葡弛l楷エォ棹ョャ漠鋳恍鋳到ィョ鵠剪寵オアキ鋳粕棗ーイ瀦鋳恍樗糖鋳鋳棗ッイ鋳薄恍駐<EFBFBD><EFBFBD>椥クァ瀦駐ol<EFBFBD>葡登l椥クァ鋳劍olol

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -1 +0,0 @@
>;Taaja>;m~rmt~<7E>abjmwrzaaaamvu>;Taajb>;m~rmt~<7E>abjmwrzaaabmvu>;Taajc>;m~rmt~<7E>abjmwrzaaacmvu>;Taajd>;m~rmt~<7E>abjmwrzaaadmvu>;Taaje>;m~rmw}{afjfkaajfm|v㿭t~<7E>abbmwrzaaaemv薓acaa>;Taajf>;m~rmt~<7E>abjmwrzaaaemvu>;>;Tabaa>;m<>zm<7A><6D>abbmu<75>baamwr<77>aaaem<65>raabakaajekaadfkaacg>;>;>;>;Tacaa>;m<><6D>|v㿭~<7E>aaaamr<72>eaakaadakaaaa>;mr<72>eaakaadakaaacmǐzaada>;mr<72>eaakaabakaaacmw}\afjfmw}\achimt~<7E>abjmvu>;>;Tacca>;m<><6D>|v<>>;mw}{afjgkacda>;mw}\afjgmw}\afjemz<6D>aabe>;mt<74>ccakabddkaaaamǐzaafa>;m~<7E>mxz<78>abemwrtaaaax佂靱<E4BD82>Ξ<EFBFBD>靱n<E99DB1><EFBFBD>孓_m<6D>umxz<78>aaamt<74>daakabdakaaaamu<75>eabmw}^achemt}<7D>>;mv薓accb>;Tacc1>;mv薓aagf>;>;Tacda>;m|v㿭w}{aidakacdbm~<7E>mwrtaabd<62><64><EFBFBD>Rm<6D>u>;<3B>吊𩵼丰Q丰嵗Q<E5B597><51>Rm<6D>umt}<7D><><EFBFBD><E69DBE>Q<EFBFBD>Q<EFBFBD><51><EFBFBD>Q<EFBFBD><51>>;~<7E><>伃Q<E4BC83>𥫩<EFBFBD><F0A5ABA9>伃靱<E4BC83><E99DB1>>;<3B><>Q<EFBFBD>靱丹<E99DB1><E4B8B9>餸m<6D>umvu>;Tacdb>;m|v㿭z<E3BFAD>aabfkacdc>;m~<7E>mwrtaabdr输Q<E8BE93><EFBFBD><E5908A>Q𤨎Q<F0A4A88E>>;<3B><>Q<EFBFBD><51>_m<6D>umxz<78>abfmz<6D>aabfmt}<7D>>;mwrtaaaa<61><61><EFBFBD>Q㜳n}<7D><EFBFBD>叩Rmǐzaadam<6D>umxz<78>aaamt}<7D>wrtaabdt<64><EFBFBD><E99DB1>Q<EFBFBD>Q<EFBFBD>吊鑘𢜟>;<3B><>Q<EFBFBD><51><EFBFBD>Ξ<EFBFBD>𨭤m<6D>u>;z出十<E587BA><EFBFBD>伃仞<E4BC83>鶽>;<3B>𥫩<EFBFBD><F0A5ABA9><EFBFBD><EFBFBD>___m<6D>umvu>;Tacdc>;m|v㿭~<7E>mwrtaabdv<64>嶎㜳<E5B68E><E39CB3><EFBFBD><E7ADAC>Q<EFBFBD>>;𣌀礆十<E7A486>𥫩<EFBFBD>𥫩嚤<F0A5ABA9>𤫊__m<6D>u>;r<>QzQ<7A><EFBFBD>Q<EFBFBD>汨鶽>;<3B><>靱𧖣Q<F0A796A3>鷀筬<E9B780>Q<EFBFBD>囝__m<6D>umvu>;>;Tadaa>;m|v㿭~<7E>[<5B><>釥___m<6D>umvu>;>;>;Taeaa>;Taeab>;>;

View file

@ -1 +0,0 @@
0-FSS\S0-_pqd_fpxSSSU_idlSSSS_hqg0-FSS\T0-_pqd_fpxSSSU_idlSSST_hqg0-FSS\U0-_pqd_fpxSSSU_idlSSSU_hqg0-FSS\V0-_pqd_fpxSSSU_idlSSSV_hqg0-FSS\W0-_pqd_fpxSSSU_idlSSSW_hqg0-FSTSS0-_nh|_vrxSSTT_dqsSTSS]SSSS]SSSU_idrSSSU_wudSSXV]SS\U]SSSU]STZV0-FSUSS0-_sul0-_iomTVZU]SUSU0-_dpmSSS\]SUSV0-_iomU[TT]SUSV0-_hyhSUSX0-FSUSU0-_sul_pvj_wxud軌C圏J砲樺仲C嵐C<E5B590>C<EFBFBD><43>Q_qrg_hqg0-FSUSV0-_ioNTVZU_hyhSUSW0-FSUSW0-_hyhSSTS0-#SUSX0-_sul_pvj_wxu|著C資丁OClC腰沫C薯刪C嵐C毎<43>0-幕<>鼎雷倦竃Q_qrg0-_fou_jlwSSS\lJ緒C褐刪C恍呂Г曙覧処C亦粋雷倦<E99BB7>0-潔C恍呂丁舛Г`e巡㊧`D_qrg_hqg0-FSUTS0-_sul_iomTVZS]SUTT_ioNTVZT0-_pvjq丁C嚥<43><E59AA5>㈹④雷<E291A3>C推舛葺<E8889B>0-忠韻嵐QQQ_qrg_fou|著C灸刪遷佑毎<E4BD91>C頗C鋸妹я⑯0-灸刪C恍話_qrg_hqg0-FSUTT0-_sul_pvjw灸綜C恍呂薗匹恍<E58CB9>C笈藷Q_qrg_hqg0-FSUUS0-_sul_pvjz拠J譜C恍楼C酔沫<E98594>b_qrg_hqg0-FSXSS0-_nh|_fqsSUXS]_idlSSSS_hqg

Binary file not shown.

View file

@ -1 +0,0 @@
yv<EFBFBD>㱔䛐v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD>㱔递v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD>㱔𡲢v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD>㱔呩v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD>㱔懢v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD><EFBFBD>䛐v邢掬阮鄘<EFBFBD><EFBFBD>辰獐<EFBFBD><EFBFBD>迆香<EFBFBD><EFBFBD>阱冪<EFBFBD><EFBFBD>㱔𩵼<EFBFBD><EFBFBD><EFBFBD>𧇍𡲢v<EFBFBD><EFBFBD>䛐v邢掬yv迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>递v迂簣<EFBFBD>孕yv<EFBFBD><EFBFBD>递v邢掬yv迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>呩v巡懦<EFBFBD><EFBFBD><EFBFBD>𡲢v邦興殮桋<EFBFBD><EFBFBD>葄皙稊寍睧辶獄釜v殮栫藖痶邰<EFBFBD>尰䓃婧䓃欸<EFBFBD><EFBFBD>詑㶈旄辶獄釜v諶䎚<EFBFBD><EFBFBD>崳俜<EFBFBD>衴頎<EFBFBD>奜瑵龮詈腲v覗龯栜曧硢<EFBFBD>痶迖<EFBFBD>那趕迂滌yv<EFBFBD><EFBFBD>𡲢v邢掬邦興阱謙迆<EFBFBD><EFBFBD><EFBFBD>那趕辛蜀迅耋<EFBFBD>䣳巡<EFBFBD><EFBFBD>䣳棹硞旃曧瑵<EFBFBD><EFBFBD>帑睒豽猌v諼皙稊寍犎辶獄馬偕<EFBFBD>䣳銁授<EFBFBD><EFBFBD>懢v<EFBFBD><EFBFBD>呩v邢掬邦興<EFBFBD>婧俅䓃婧<EFBFBD><EFBFBD>崷詒<EFBFBD>倯硢yv豇詌殑<EFBFBD><EFBFBD>媏葮㶈旄<EFBFBD>那趕yv誠詍<EFBFBD>寊豽䎚<EFBFBD><EFBFBD>粣葮𧄍窙慪啢v葄皙稊寍睧<EFBFBD>辶獄馬捱釜v<EFBFBD><EFBFBD>懢v迂簣<EFBFBD>ㄔyv<EFBFBD><EFBFBD>䛐v邢掬yv迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡲢v迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>递v迂簣<EFBFBD>孕yv<EFBFBD><EFBFBD>递v邦興菽𣞼䓃睙<EFBFBD>隗侲秊褁詈<EFBFBD>砨詙yv隗<EFBFBD>葐痭迍<EFBFBD>奜瑵<EFBFBD>頎迍豽苵v隗氪𦬕萶阼<EFBFBD>殑䓃婧繛俓<EFBFBD>那趕yv俾<EFBFBD><EFBFBD>跁詌宖阼<EFBFBD>覗𣉖<EFBFBD>蓛痶yv赹尰旃<EFBFBD>辶獄釜v桑<EFBFBD>葾棦<EFBFBD>欻祳䓃婤葌秊褁詈腲v摍倳睧靷覕㶈嗀旆<EFBFBD>那趕yv<EFBFBD>恮寊栱<EFBFBD>隗栫<EFBFBD><EFBFBD>嵻迖㶈詑l<EFBFBD><EFBFBD>那趕迂滌yv<EFBFBD><EFBFBD>𡲢v邦興脊睧<EFBFBD>隗侲𥚕裉靷<EFBFBD>那趕辛蜀啕邲袀祳䓃奜<EFBFBD>嗖詅<EFBFBD>詑祳𤥻婭寪yv覗<EFBFBD>蜳隗嵻欸崕獄釜v閩<EFBFBD>梑曧稃<EFBFBD><EFBFBD>蓛痶藖摳<EFBFBD>藖淀yv槮摍衭<EFBFBD><EFBFBD>那趕yv蹄珆<EFBFBD>㶈奜棦<EFBFBD>辶獄馬捱釜v<EFBFBD><EFBFBD>䛐v邢掬迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>递v迂簣<EFBFBD>孕yv<EFBFBD><EFBFBD>递v邦興<EFBFBD><EFBFBD><EFBFBD>恮寊栱<EFBFBD><EFBFBD>蜞痻䓃奜輇v唱眈詅㶈俜<EFBFBD>那趕辛蜀擄拹頍<EFBFBD>箏邴崕獄釜v試豽䓃奜<EFBFBD><EFBFBD>葐嗈詒旃䓃<EFBFBD>萹俅<EFBFBD>棦辶獄馬捱釜v<EFBFBD><EFBFBD>䛐v邢掬迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>递v迂簣<EFBFBD>孕yv<EFBFBD><EFBFBD>递v邦興<EFBFBD><EFBFBD>葾𧄍馹俉葮旃<EFBFBD>辶獄馬捱釜v<EFBFBD>鱝䛐v阮倣邢掬邦躓<EFBFBD><EFBFBD>邦興閩<EFBFBD><EFBFBD>那趕辛蜀棹瑵<EFBFBD><EFBFBD>蓛宖桏藖旂詅悗那趕yv竊邴<EFBFBD>怤瓬<EFBFBD><EFBFBD><EFBFBD>塹棔蚐yv甀尰邲<EFBFBD>那趕yv諶棦詀<EFBFBD>玵尰旃<EFBFBD>塹葌碚<EFBFBD>葨侲珆旃yv棦𣉖<EFBFBD><EFBFBD>拸詑衲<EFBFBD>棦嵻栻<EFBFBD>那趕yv桑<EFBFBD><EFBFBD>苸嵻侲<EFBFBD>眝睟殑<EFBFBD>那趕辛蜀<EFBFBD><EFBFBD>粣葮嵻敊俷祳曧摳䓃<EFBFBD>衴yv眙蓅殑<EFBFBD><EFBFBD><EFBFBD>珆阼衭曧<EFBFBD>嗐珇辶獄馬站劓<EFBFBD><EFBFBD>寊豽䓃<EFBFBD>眙蓅咧獄釜v識尰<EFBFBD><EFBFBD><EFBFBD>俅詑硞龮侲栻辶獄馬站語v身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>並音<EFBFBD><EFBFBD>邦酈<EFBFBD><EFBFBD>並音<EFBFBD><EFBFBD>yv身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>並音<EFBFBD><EFBFBD>yv身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>阮鄘<EFBFBD><EFBFBD>並音<EFBFBD><EFBFBD>yv辰獐<EFBFBD><EFBFBD>身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>阮鄘<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>迂滌yv<EFBFBD>䣳䛐v<EFBFBD>𤟠句v釆噩邦興<EFBFBD><EFBFBD>辶獄馬捱<EFBFBD>

Binary file not shown.

View file

@ -1 +0,0 @@
>;Taaja>;m~rmt~<7E>aaimwrzaaaamvu>;Taajb>;m~rmt~<7E>aaimwrzaaabmvu>;Taajc>;m~rmt~<7E>aaimwrzaaacmvu>;Taajd>;m~rmt~<7E>aaimwrzaaadmvu>;Taaje>;m~rmt~<7E>aai>;mw}{aeibkaajf>;mwrzaaaemvu>;Taajf>;mw}{aidakaajg>;mt∥cabkabackaaaa>;mr∥daakaaaakaaac>;mwrzaaaemvu>;Taajg>;mt~∥abbkaaagkaagb>;mt~∥abbkaaahkaahh>;mt∥cabkabackaaaa>;mr∥daakaaaakaaac>;mwrzaaaemvu>;Tabaa>;mw}{aeiakabab>;mzmо<6D>abbmu∥baamwr€aaaem<65>raaagkaajekabhbkaabh>;Tabab>;mzm~зm<D0B7>ホ・Qィ<51>盜・Q<EFBDA5>。漫Rm€umvu>;Tacaa>;mw}{aeibkacac>;m|v確о<E7A2BA>aedmw}\aeibmt∥cabkabackaaaamt~<7E>aaamr∥daakaabakaaaam<61>zaacam~隔aaacm<63>zaefa>;mt~<7E>aaem<65>zaafa>;mt∥cadkaaajkaaaam<61>zaafa>;mt~<7E>aaamr∥daakaacbkaaaam<61>zaaiamt~<7E>abb>;mt∥cadkaabckaaaam~зm<D0B7>wrtaabeyヲォォ貯Rm€umv<6D>acae>;Tacab>;Tacac>;mzm~зm<D0B7><6D>>;□ィ魅Q率沐・國泅沽Q泛」梺撈ェ_m€umvu>;Tacad>;m|v確t∥cadkaabckaaaamr∥cadkaacakaaaem<65>zabea>;m<>zabaamt~<7E>a1f>;m~зm<D0B7><6D>>;w<><EFBFBD>・Q<EFBDA5>覧Qs喋」<E5968B>漏m<E6BC8F>zabeam€u>;mt~<7E>aaimw}^aeiamw}\aeicmw}\acbfmvu>;Tacae>;mr∥cadkaadakaaaamt~<7E>aaemt∥cadkaadgkaaaamsмacadmw}\aeiamvu>;Tacfa>;m|v確~зm<D0B7>ヤ箕・圈浪ヲ。___m€umvu>;Tadaa>;mw}{aeidkadad>;mw}{aeibkadab>;m|v確~зm<D0B7>ビQ」<51>蕩・___p>;z・Q腹巳盜・Q、末朮・<E69CAE>Q剪ァ鵬帖ェ>;。<>ィ魅_m€umvu>;Tadab>;mzmw}{aeickadac>;m~зm<D0B7>ホ・、Q剿瀦Q圖Q湯、剿媛圈_m€umvu>;Tadac>;m|v確<76>zaafa>;mt∥daakabajkaaae>;mr∥daakaabakaaae>;m~郭adaam<61>zaafam~隔adaamw}\aeidmw}\aeifmw}\aeie>;m~зm<D0B7>ュyr|Q橿<51>Q<EFBFBD>Q〉害橿<E5AEB3>srt|]>;zQtrQ~r|vQrQs€~sRm€umvu>;Tadad>;mw}{aeigkadbd>;mz<6D>aabbkadba>;mv<6D>adaf>;Tadaf>;m|v確~зm<D0B7>ピホxQ~vQntyrフ€r}n]>;n{v}}学zиQ{<7B>tvn]>;ruQnx<6E>Qsrёn_m€umvu>;Tadba>;mz<6D>aaaikadbbmv<6D>adaf>;Tadbb>;mz<6D>aabckadbcmv<6D>adaf>;Tadbc>;m|v確w}\aeigmz<6D>aabbmz<6D>aabc>;mw}\accb>;mv<6D>adfa>;Tadbd>;m|v確~зm<D0B7>ホXuQ€wwvゲ橿<E382B2>о~vQ<76>r]Qs<51>___m€umvu>;Tadfa>;mv<6D>aagd

View file

@ -1 +0,0 @@
0==F=IZ[NIPZb====ISNV====IR[Q0==F>IZ[NIPZb====ISNV===>IR[Q0==F?IZ[NIPZb====ISNV===?IR[Q0==F@IZ[NIPZb====ISNV===@IR[Q0==FAIZ[NIPZb====ISNV===AIR[QISYW>BC@G=>=>0=>==IXRfISYW>BCAG=>=>I`\b==>>IN[]=>==G====G===?ISN\===AIa_N==>CG==FAG==@?G===?0=>=>I]_VIZ`TV<54>-„|{4<>-|}r{.I[\QIR[Q0=?==ISYW?A=CG===>ISYW>BCAG=>=>ISYW>=A?G=?=>IXRfIZfO===?IdNV==?=IZ`TUr†;I[\Q-aun<75>-pur€<72>4€-|{y†-s|-}r|}yr„v<E2809E>u-nz{r€vn;I[\Q-du|-{rrq€-v<>9-vtu<74>LI[\QIPY\IR[Q0=?=>I]_VISYW?A=CG===>ISY8?A=CI`\b==??IP[]=?==G==?>G====IRcR=?=?0=?=?IRcR==E@0=A==IXRfIZfO===?IdNV==?=IVaW==@@G=A?=ISYW>BC?G=A>>ISYW>BC>G=A=@IZ`Tf|-t|<7C>-€|zr-o€v{r€€-„v<E2809E>u-zrLIf[W=A=>IPY_Unu.I[\QV-q|o<E2809A>-<2D>un<75>;I[\QIR[Q0=A=>IXRfIZ`TUru:uru:uru;-O†r9-<2D>ur{;I[\QIR[Q0=A=?IXRfISY8>BC>IZ`TUzLI[\Q-Nz{r€vnLI[\QU|„-n„sy;I[\QIRcR=A=@ 0=A=@IXRfIZ`Tdryy9-<2D>ur{;-Q|-†|-„n{<7B>-zr-<2D>|tv<74>r-†|-<2D>ur-Z€u||z-OnqtrLIf[W=A=EIRcR=A=AIR[Q0=A=AIXRfIZ`TO<4F>-v{-rnyv<79>†9-†|-q|{4<>rnyy†-„n{<7B>-v<>9-vtu<74>LIf[W=A=BIRcR=A=E0=A=BIXRfIZ`Tf|-„n{<7B>-v<>-<2D>un<75>-zpuLIf[W=A=FIRcR=A=C0=A=CIXRfIZ`Tf|-„n{<7B>-v<>-no€|y<79>ry†-}|€v<E282AC>v<EFBFBD>ry†{|-zn<7A><6E>r-„un<75>LIf[W=A=FIRcR=A=D0=A=DIXRfIZ`TO<4F>-rnyy†-†|-q|{4<>-„n{<7B>v<>9-vtu<74>LIf[W=A>=IRcR=A=F0=A=EIXRfIZ`T_rnyy†L-\xn†;I[\QIR[Q0=A=FIXRfIZ`Tfrnu9-„u|-{rrq€-v<>;;;I[\QIR[Q0=A>=IXRfIZ`TSv{r9-urr-†|-t|.I[\QIPY_ITVa>=@@IVa8==@@ISY8>BC?IPY_IPZb==>=T|<7C>-<2D>ur-JZ€u||z-OnqtrJ;IdNV=>C=I[\QI_ZbIR[Q0=A>>IXRfIZ`TO‡‡‡‡‡<E280A1>;I[\QIR[Q0=A?=IXRfIPZb===AISY8>BCAIP[]=B==G=@>@G====IdNV===?IN[]=B==G=>==G====IQ[]=A==IO`Y=B==IR[Q0=B==IXRfIPZb====IN[]=B==G=B==G===BIdNV=>B=ISY:>BCAIQ[]=B==IRcR=B=>0=B=>IRcR==EA

Binary file not shown.

View file

@ -1,2 +0,0 @@
-::C:FWXKFMW_:::BFPKS::::FPVT<>;=D::C@FOXN-::C;FWXKFMW_:::BFPKS:::;FPVT<>;=D::C@FOXN-::C<FWXKFMW_:::BFPKS:::<FPVT<>;=D::C@FOXN-::C=FWXKFMW_:::BFPKS:::=FPVT<>;=D::C@FOXN-::C>FWXKFMW_:::BFPKS:::>FPVT<>;=D::C@FOXN-::C@FMWZ:::<D::<;D::::FMWZ:::=D::<;D::::FOXN-::CCFUOcFWXKFMW_:::BFKXZ:<::D:::;D::::FPKS:::>FMXZ:=:;D:;;<D:::<FaKS:;::FKXZ:<::D::::D::::FWcN::::FNXZ:=:;F]WMFPVT<>;=D::C@FOXN-:;::FUOcF]Y_::;;FKXZ:;::D::::D:::<FPKY::::FWcN::::F^\K::=CD::C:D:;CAD::;>-:;;:
FUOcF]Y_::;;FKXZ:;;:D::::D:::<FPKY:::<FWcN:::<F^\K::>>D::C<D:::<D::;=-:<::FO`O:<:;-:<:;FUOcFW]QF^_\Ny*ペ*x~*~y*qy*~y*K|~r|1}ry}oIFcXT::::FMVYFMXZ:=::D:;;;D:::<FRWMFaKS::@:FKXZ:<::D:::;D::::FaKS:;::FPKY:::>F^\K:::;D::CCD:::?D:::B-:=::-:=:;-:?::FUOcFWcN:::<FMW_::::FPKS:::<FPVKF]Y_::<CFaKS::?:FW]QIFXYNFMVYFKXZ:?::D::;:D::::FaKS:;=:F]Y_::<=FaKS::<:FMW_:::BFPV7:?<=FPV5:A>:FNXZ:?::FOXN-:?:;FUOcF]Y_::<<FPVT:A>;D:::;FPV5:A>;FMXZ:?:;D::<;D::::FO`O:?:<-:?:<FO`O::@B

Binary file not shown.

View file

@ -1 +0,0 @@
]Zs€€墍]Z対瀾寭潵€€亯寲憴€€€€寱灁]Zs€€墎]Z対瀾寭潵€€亯寲憴€€€亴暈擼Zs€€墏]Z対瀾寭潵€€亯寲湚€唲€妧€墔寯灎€厐亴枩}€唲€寱<E282AC>€€墔]Zs€€墐]Z対瀾寭潵€€亯寲憴€€€儗暈擼Zs€€墑]Z対瀾寭潵€€亯寲憴€€€剬暈擼Zs€€墔]Z寲憴€€€倢暈擼Zs€亐€]Z尃<5A>寲憻€€€剬あ憖€亐妧€墑妧倐倞€€儌]Zs€個俔Z寲湚€唲亰€個儗牏檶潱棛膒强緒膒坷稻~~~尀煍寱灁]Zs€個僝Z尃<5A>寲憻€€€€尋<E282AC>€€儓妧€墍妧€儏妧€亙]Zs€個刔Zs€個匽Zs€儉€]Z尃<5A>專煡€€倐寯灎€儉€寱<E282AC>€儉乚Zs€儉乚Z寱<5A>€€亜]Zs€剙€]Z寷暕寫灎€厐亰€€亐妧€€倢<E282AC>檧€剙]Z対⿺€€€俔Z対瀾寲憴€€€亴敒爛厐亴<E58E90>搶摑<E690B6>€亯寲渰倓亙寱灁]Zs€剙俔Z寷暕寲湚€唲亰€剙儗潱棇ぅ<E6A387>縫煽舙潜灸p目p坷稻p母祊纯柯弻<E69FAF>殌€€€寭湡]Z寲渰€唲乚Z寲煘€個倞€€唲導憴€亝€專煡€€剝]Z寫灎€個剨€€亐妧€€€導憴€€€垖憺爛厐倞€€€€妧€€俔Z寫灎€個厞€€亐妧€€倢<E282AC>檧€倛]Z寫灎€厐€妧€€€妧€€€導憴€亐€]Z寯灎€個剬敒爛個匽Z寲煗€€儌導憴€亐€]Z寲煗€€亞]Z寯灎€厐€寯濸€厐倢潻攢€€€寱灁]Zs€剙僝Z寷暕対<E69A95>じ祊纯柯p姑p坷稻~尀煍寱灁]Zs€剚€]Zs€厐€]Z尃<5A><EFBFBD>檖驳膒澒玫律p目妹荡p煽臸Z纯蔷p傅碌~尀煍]Z┛舙揽柯p母咕穨~~尀煍]Zじ姑p姑p母祊姑急敬w胮穆泵竝傅崩~尀煍]Z熅车p煽舙返膒咕|]Z煽舙镜频聀返膒颗膥~~尀煍寱灁]Zs€厐乚Zs€厐俔Z尃<5A><EFBFBD>じ祊们鼓掣p母蹦p坷稻胮母姑]Z纯柯p姑p门览棵荡p目p驳p爬p目繻Z每降歉德祣尀煍]Z捙膒母祊犊磕咕穡胮穆钩簧p爬]Z母德祣尀煍]Z檖兜技p科德p本磒科德p狈惫綸Z啪墓紁檖猜炕祊缴p嫉访~尀煍寱灁]Zs€厐僝Z尃<5A><EFBFBD>じ德祊姑p究p碌兰蓗尀煍寱灁]Zs€唨€]Zs€唨乚Z寷暕寲湚€唲€妧唨儗暒晙唨俔Zs€唨俔Z寯灎€厐亴枩}€唲€寱<E282AC>€唨僝Zs€唨僝Z寷暕対瀾寭潵€€亯]Z寫灎€唩€妧€€亰€€€€寲憴€€€刔Z寭灎€唨亰€亖倞€€€€導憴€亐€]Z寫灎€唩€妧€€€妧€€€]Z対⿺€€€€寯灎€唨亴<E594A8>搶暈擼Zs€唩€]Z寷暕寲渰€倓僝Z寭灎€唨€妧亖亰€€€倢槤搶<E6A7A4>檧€唨寫灎€唩€妧€€亰€€€€]Z導憴€亐€寲憻€€€剬あ憖€亐妧唨亰€們亰€€儐]Z]Z]Z]Z

View file

@ -1 +0,0 @@
|y挓煥焲y<E784B2><EFBFBD>寄煙煛<E78599>案煙煙<E78599>匠|y挓煥爘y<E78898><EFBFBD>寄煙煛<E78599>案煙煚<E78599>匠|y挓煥<E68C93>y<EFBFBD><EFBFBD>寄煙煛<E78599>案煙煛<E78599>匠|y挓煥<E68C93>y<EFBFBD><EFBFBD>寄煙煛<E78599>案煙煝<E78599>匠|y挓煥<E68C93>y<EFBFBD><EFBFBD>寄煙煛<E78599>案煙煟<E78599>匠|y|y|y|y|y挓牊焲y<E784B2><EFBFBD>灸煙牋<E78599>娇煚煙<E7859A>煙煩煙煛<E78599>熬煙煙<E78599>瘸煙煙|y<>还煢煝<E785A2>牊爘y<E78898>涟煙ⅷ<E78599>В<E78599><EFBFBD>y挓牊爘y<E78898>粴煢煟<E785A2>涟煙ⅷ<E78599>В<E78599><EFBFBD>y|y挓牊<E68C93>y<EFBFBD><EFBFBD>熬煙煟<E78599>涟煙ⅷ<E78599><EFBC89><E78599><EFBFBD>y|y挓<79>焲y<E784B2><EFBFBD>露米詮荑忏葬剞溻忈扪捭泑y嫁葩阍釓菨潩<E88FA8>境|y绒溽徱仔菀詮戕徯沣幸趞y剽忔自輳劂鈴仔阋讖捱暂鉂<E69A82><EFBFBD>匠|y|y|y挓<79>焲y<E784B2><EFBFBD><EFBFBD>牧笘軓袕咦桠匾匦轁<E58CA6>境|y吩嵩洀墼銖茉忈哉刿蹚柁溽徸孕坫诐<E59DAB><EFBFBD><EFBFBD>笟牊煙<E7898A>灸煙<E781B8>|y<>霉煙牓<E78599><E78993><EFBFBD>y<EFBFBD>还煢煙<E785A2><E78599>牜祷殶<E7A5B7>煫瓢笩煠煫磁礋<E7A381><E7A48B>y挓<79>爘y<E78898><EFBFBD><EFBFBD>牧米詮役剌匾徹廨栥忋揶徴嗅潀y掇徾揶趶辙釓廪茉徿杂匾剌詮阕秀|y坜挹鈴溻醒墼潾骄倡唇硘y挓<79><E68C93>y<EFBFBD><EFBFBD><EFBFBD>脺煙牓<E78599>粴煢煛<E785A2>粴煢<E7B2B4><E785A2>粴煢煝|y<>该牊牓<E7898A>牧沸萦杂忁逶釓阕詮<E99895>溽詼佰郜潾骄倡唇硘y挓<79><E68C93>y<EFBFBD><EFBFBD>露夹蓁忋仔葳鉂<E891B3>境|y逛忏徾糟徿詮仔萦墼忋自忈遭銤<E981AD><EFBFBD>匠|y挓<79><E68C93>y<EFBFBD><EFBFBD>露晦挹鈴圬谠忋自徿杂匾剌詵鈢y孓嶷剌譂<E5898C>境|y伦詵圹徰詮研亿徹輳幸阖掭徹輡y蒉忋剀詽<E58980>境|y佰蹚阕休阝忋迯柁錄忁諒肄溽庠潾骄倡唇硘y挓<79><E68C93>y<EFBFBD>糯煙ウ|y|y挓<79>焲y<E784B2>还煢煟<E785A2><E7859F><EFBFBD>y<EFBFBD>还煢煛<E785A2><E7859B><EFBFBD>y<EFBFBD>还煢煚<E785A2><E7859A>爘y<E78898><EFBFBD>露笘軓袕蒌徕詽<E5BE95>境|y笍溻杂忋迯孓嶷徹輳阕詮捋觸y役剌匾忀孕嵫铔<E5B5AB>境|y唁銖劂忔锈忊载樵訌谚徶邹忏鉀|y休訌笍折杂徸葬詽<E891AC><EFBFBD>匠|y挓<79>爘y<E78898><EFBFBD>露搬詮柁鋸袕蔗卦萦忁諒自徕<E887AA>骄硘y刚忚o鋸倚嵩徯艳溷徸葬洀笘觸y杏遑庠忚掬忋迯愚徯鈴阕詮愚毅掎|y庑桠潾骄倡唇硘y挓<79><E68C93>y<EFBFBD><EFBFBD>露掇抻徺扪潾骄硘y绒鋸迂虞栥忊栽徯蓁徶邹忏鉀|y迂訌柁洚<E69F81><EFBFBD>匠|y挓<79><E68C93>y<EFBFBD><EFBFBD>露咀洀迂訌柁鋸肄茉忋迯易砸趞y溥忁輳阕秀徶蒯郛<E892AF><EFBFBD>涣伦詮嬖葶忁照忋捩嗅逾忋自|y懕掬塾葬彶仔苎葬憹<E891AC><EFBFBD>匠|y|y挓焲y<E784B2>还煢煛<E785A2><EFBFBD>y<EFBFBD>还煢煚<E785A2>牜祷殶<E7A5B7>爘y<E78898><EFBFBD><EFBFBD>安煙牗咀洀自钀<E887AA><EFBFBD>涣沸逶輺銖庠暂徣灸徹輡y袕孀刿詽<E588BF>境|y绒鋿嵩徾揶谪葜徶揶訍<E68FB6><EFBFBD>涣米秀忔劂易忋掴庠訌柁鋦y愚孑徸葬詮戕逈徳桩<E5BEB3>境|y滦茉徯鈴茉惈骄倡不莲蛋矡煛熉迯柁鋸嬖嵩輺銖醒墼忋迀y言秀忋自軓姓阍釓雄蹪潩<E8B9AA>境|y笘訌幸沅雄坭徸杏徿鑿邹咴鈢y辙釓柁錄徰溷潩潾骄倡不涟萦徿詻徃忋嶝杂潀y咀洀笍汜卦訚<E58DA6>境|y拜訌黉忏徾揶趶孀葬詮劂|y洲銖茉潾骄倡不翝潩潩<E6BDA9><EFBFBD>涣拜訌雄蹚辙釓蒉阕剌譂<E5898C>境|y篙忋自徳萦洀笍肄溘虞栥|y庑逶徯蓁忁諒阕掴詜y易刿俞暂潾骄硘y米詮庾羞詮笘軓剌忀捩泑y笍孓輺銖言徾孕遑葜|y休桡剀詮廪掭潩潾骄倡唇硘y挓爘y<E78898><EFBFBD><EFBFBD>安煙<E5AE89>笍怃徨劐杂洀柙凶洀唁銃y蒉鎻孀秀<E5AD80>骄倡不炼湓忖徃栜徺溻銖洲剌謡y戕忊劂徸葬詮休訌徂銤潩<E98AA4><EFBFBD>匠|y挓<E68C93>y<EFBFBD><EFBFBD><EFBFBD><EFBFBD>安煙<E5AE89>米葬詵鈴掭坭忁菰忔需|y掬銖拚忋自徎醒栳剌阕潾骄倡不寥掬徸绣詮戕徶糟忂锈銃y阕詮重休銖徂亿徹輳阕詜y鞭溘釉釓沧熊言釢<E8A880><EFBFBD>涣笘訌洲忔劂讖柁錄<E69F81><EFBFBD>涣唁銖尕阕忋自忊阈阍徃栜|y剌洀笘訌黉忏徶糟徹輡y柁溽忔需潩潾骄倡祷殶Ε煫祷殶<E7A5B7><E6AEB6>唇硘y|y|y挓<79>焲y<E784B2><EFBFBD>还煢煠<E785A2>煙牜祷殶<E7A5B7>か戮臒煛步繜<E6ADA5>煩煙<E785A9><E78599>煙煫磁礋<E7A381>爘y挓<79>爘y<E78898>糯煙エ|y|y

View file

@ -1 +0,0 @@
A>WddmdA>p亗upw亯dddlpzu}ddddpy倄A>WddmeA>p亗upw亯dddlpzu}dddepy倄A>WddmfA>p亗upw亯dddlpz€~dkjenddmipzu}dddfpy倄A>WddmgA>p亗upw亯dddlpzu}dddgpy倄A>WddmhA>p亗upw亯dddlpzu}dddhpy倄A>A>WddmiA>pu倓dgddnddfdnddddpzu}dddfpy倄A>A>A>WdeddA>py峱z€~dkjgndedeA>p噧塪deepu倓deddnddddndddfpzu僤dddp亶xddddp垎uddhgnddmdnddejnddegA>WdedeA>p剢}p亣{}═<><E29590>═¥櫌Up們xpy倄A>A>WdeedA>pz€~dkjhndeeepy倄A>WdeeeA>py峱zu僤ddhp亶xdddfp垎uddhinddmfndddfndddiA>A>A>A>WdfddA>p剢}py妝dfdeA>WdfdeA>pz€~dkjjndddepz€_dkjjpz€adkjipz€_dfdfA>p噧塪dffpw倓dfddnddfenddddpy妝dfdfA>WdfdfA>py妝ddggA>A>WdgddA>py岮>pz€~dkjhndgdgA>pz€~dkjfndgdfA>pz€~dkjendgdeA>pz€_dkjep噓坧亣{p垑唒zuwddem€櫒[<5B>洐═<E6B490>潷A><3E>潰汿<EFBC89>T<EFBFBD>橳珪璪A>崳㏕湥牁T<E78981>暔T<E69A94>槞bp們xpw€傾>pu倓dgddnddfdnddddpy倄A>WdgdeA>py峱u倓dgddnddddnddddA>p亣{pzuwddem嫓暔[<5B><>泂p們xA>崳<><E5B4B3>Tⅲ═<E285B2>暒櫂`A>暒橳<E69A92>﹕p們xpw€唥T槪<E38087>暔bp們xA>{<7B>`T洣晼T<E699BC>暔T<E69A94>槞bp們xpu倓dgddnddfdnddddpy倄A>WdgdfA>p剢}p亣{嚋橻<E59A8B>═棧牁bp們xpy倄A>WdgdgA>p剢}p亣{pzuwddem€櫒[<5B>洠Up們xpw€唸湙<E594B8>[<5B>昑珳 <E38080>ЖT<D096>A>。ⅶ<E38082>ΗT珪潹潰汿殻<E6B1BF>┃UUp們xpy倄A>A>A>WdgedA>py峱w倓dgednddefndddhnpu倓dgednddldndddip噥wA>pw亯ddeip亣{p垑咥>x櫄檿<E6AB84>楾v暊Γ沀p媢}dehdp們xpw€僷zuwddddA>pw亯dddlpzu僤ddhp亶xdddfp垎uddhhndjddndddmnddehA>py倄A>A>WdgfdA>py岮>pz€~dkjfndgffA>pz€~dkjendgfepy妝diddA>WdgfeA>py岮>p亗刣gfdnddddnddddnddddA>p亶xdddfp亶xdddgA>pu倓dgddnddfdnddddp媢}ddidA>pw倓diedndgg4nddddA>pw倓dieendgghndddfA>pu倓dgddnddddnddddp媢}ddidp亶xdddfA>p亣{p垑唒zuwddeh|┊畷淯p們xpw亯ddddp們xpw€傾>pw倓dgedndddmndddfp媢}deddA>pw倓dgednddefndddfA>pu倓dgednddgdndddfpw亯ddeeA>p亶xddddA>p媢}ddidA>pu倓dgednddjdndddfp媢}ddhlA>pu倓dgednddidndddfp媢}ddfdA>pu倓dgddnddfdnddddp媢}ddfdA>p亶xdddfp亶xdddgpu倓dgednddldnddddp亶vdddfpu倓dgddnddgdnddddp噧塪dkfp媢}ddgdA>pu倓dgednddddnddddpw亯dddhpw倓dgedndejmnddddpv噣dgedA>pz€_dkjfpz€_dkjgA>py倄A>WdgffA>p剢}py倄A>A>WdggdA>A>A>A>WdiddA>py岮>pz€~dkjfndidfA>pz€~dkjendideA>p亣{}╗<><EFBFBD>Ё潽檂T湙暘璗Γ棢bp們xA>zΓ<7A>枡湞<E69EA1>T潹`T<>㏕棔<E38F95>殭櫊A>昑珴<E69891>T枲潰沚p們xA>}═牐<E29590><E78990>牆煓T潹T<E6BDB9><54>楾〞煓A>暔T牂暓═ǐ<E29590><C790>¥牂TǎT。獧A>潹`T<>洔bp們xpy倄A>WdideA>py峱媢}ddedA>pu倓dgddnddddnddddA>p亣{p垑唒zuwddfdw牁T<E78981>㏕湥牁T潹A>。<>Tǎ珪<C78E>T<EFBFBD>橳櫌榮p們xpw€傾>pu倓dgddnddfdnddddpy倄A>WdidfA>p剢}p亣{}╗<><EFBFBD>Ё潽檂T湙暘璗Γ棢bp們xpy倄A>A>WdiedA>WdieeA>A>A>WdjddA>py峱z€adkjgpz€_dkjhpz€adkjdA>p噥wpw亯dddlpw倓dggdnddefndddfpu倓dgddnddddndddfA>p亗刣gfdnddddnddddnddddA>pzu}dddhA>pu倓dggdnddddnddddA>pu倓dggdnddjdnddddp媢}ddhdA>pu倓dggdnddidndddfp媢}ddfdA>p亶xdddgpu倓dgddnddfdnddddp媢}ddedA>pu倓diddnddednddddp媢}deddA>pu倓dggdnddldndddfA>pu倓dgddnddddndddfA>pu倓diddnddfdnddddp亶xdddfp媢}ddidA>pu倓dggdnddddndddfA>p媢}deddpu倓dgddnddddnddddA>pu倓dggdnddednddddA>p媢}dejdpw倓dfddnddeindddfp媢}ddhdA>pz€_dklepz€_dkjipw倓ddejnddejndddfpy倄A>A>

Binary file not shown.

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more