Compare commits

...

554 commits
v0.8 ... master

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
duncathan 6b097d25ba increase version number 2019-09-15 17:49:56 -06:00
duncathan salt e4b35480de
Merge pull request #65 from duncathan/hashing
use a proper hashing algorithm for seeds like i should've from the start
2019-09-15 17:38:45 -06:00
duncathan c45f243d15 use a proper hashing algorithm for seeds like i should've from the start 2019-09-15 17:38:09 -06:00
duncathan salt 6afa0ad2e5
Merge pull request #63 from periwinkle3125/fix-mr-little-access-req
Update Mr. Little's access requirement
2019-09-14 15:12:04 -06:00
duncathan salt 744eef1bf0
Merge pull request #64 from Fayti1703/fix-multirand
Move mkdir out of if nil check
2019-09-14 15:10:23 -06:00
Fayti1703 d0896c21f2 Move mkdir out of if nil check
Fixes an issue where if you tried to randomize twice without restarting
the program

Reported by @periwinkle, at
https://discordapp.com/channels/558603545008537600/558604014149828608/621887224216158238
2019-09-13 07:40:26 +02:00
periwinkle 64a960189a Update access requirement for Mr. Little
This probably doesn't make any difference at the moment because
Mr. Little's Cemetery location item is fixed, but if the Mr. Little
item ever gets thrown into the mix, then it could matter.
2019-09-12 21:00:39 -04:00
duncathan 07a33104aa swaps deprecated functions to recommended ones 2019-09-12 01:26:06 -06:00
duncathan 71b340acd9 increase version number 2019-09-12 01:15:51 -06:00
duncathan salt 605f103eb0
Merge pull request #61 from periwinkle3125/qol-suggestions
Two QoL tweaks
2019-09-12 01:01:08 -06:00
periwinkle becb3bd404 Shake the screen when Chaba yells at you
Also use the original delays for dramatic effect
2019-09-12 02:57:11 -04:00
duncathan salt 688593e069
Merge pull request #59 from periwinkle3125/fix-momorin-requirement
Implement Momorin's Booster requirement
2019-09-12 00:48:48 -06:00
periwinkle 8c8515c35f Use Momorin's vanilla text for her no-Booster dialogue 2019-09-12 02:45:02 -04:00
duncathan salt f9792a24fd
Merge pull request #60 from periwinkle3125/core-area-fixes
Core area fixes
2019-09-12 00:23:53 -06:00
duncathan salt eeda8f46c7
Merge pull request #62 from periwinkle3125/fix-missile-count
Fix final missile count
2019-09-12 00:21:49 -06:00
duncathan salt 676b7cf70b
Merge pull request #58 from periwinkle3125/smallfixes
Small fixes
2019-09-12 00:16:26 -06:00
periwinkle 93553970d3 Momorin is supposed to require having a Booster to get her item 2019-09-12 01:13:53 -04:00
periwinkle db7989183e The delay after Chaba's "HEY!!!" really doesn't need to be that long 2019-09-12 01:07:17 -04:00
periwinkle a9500ee4e9 Add speedrunner muscle memory-friendly delays
When pressing down to pick up Curly (in the Waterway and in Hell),
the natural instinct is to immediately press jump and shoot (in
some order) in order to mash through the message box that normally
pops up in vanilla. Since those message boxex were removed for rando,
this results in the player jumping after picking up Curly (which, if
speedrunning Hell, would lose precious time on the clock).
Putting in a small delay is intended to eat the jump input,
allowing the player to continue onwards as normal.

I also put in a tiny delay at the start of Hell after the message
box, because I found myself often doing an unintentional extra boost
at the start. This doesn't completely solve the issue for me, but
it's slightly better than nothing, so I'll leave this in for now and
come back to it later if I ever find a better solution.
2019-09-12 01:06:42 -04:00
periwinkle 10eb637dd0 Correct total missile count
Ensure that after collecting all missile chests, in any order,
the player will have 54 missiles in the end.
Previously, this number could be 49 (if the +24 chest was collected
first) or 59 (if the Super Missile chest was collected first).

Also fixes the bug where collecting the Super Missile Launcher
as the first missile chest causes the hidden missile drops in
e.g. Egg Corridor and Waterway to never spawn.
2019-09-12 01:00:31 -04:00
periwinkle a73ee82369 Proper fix for the Core area water level
The area floods if and only if the Core has been defeated,
AND the player has Curly's Air Tank.

Additionally, the music in Dark Place is set to Geothermal
if the Core has been defeated.
2019-09-12 00:57:11 -04:00
periwinkle 534d622706 Fix being able to access Core without saving Curly 2019-09-12 00:53:12 -04:00
periwinkle a999ed555a Fix double fade-in when entering Dark Place with the air tank 2019-09-12 00:50:53 -04:00
periwinkle c8d5d60659 Fix Monster X despawning exploit 2019-09-12 00:29:11 -04:00
periwinkle dc75afa10a Fix extra Quote appearing when entering Lab I before defeating Toroko+ 2019-09-12 00:04:44 -04:00
periwinkle a335bbcd52 Fix inventory puppy counter 2019-09-12 00:01:26 -04:00
periwinkle f08e8cd1bc (Mostly) fix being able to move in situations where you normally can't 2019-09-11 23:59:05 -04:00
periwinkle 2d875febd0 Fix Mr. Little being infinitely collectible 2019-09-11 23:57:49 -04:00
duncathan salt 695cec4c79
Merge pull request #57 from duncathan/settings
adds settings UI
2019-09-11 21:14:01 -06:00
duncathan 366acf3de8 adds support for alphanumeric seeds! 2019-09-11 21:04:14 -06:00
duncathan cec5cc5199 adds CS folder persistence and a menu for selecting seeds 2019-09-11 20:51:48 -06:00
duncathan cd55e26160 gracefully handles missing CS folder 2019-09-11 17:03:27 -06:00
duncathan 32c080d84d Fixes UI runtime errors properly
This reverts commit 11287c053a.
2019-09-11 16:26:29 -06:00
duncathan 0b2e76305c adds support for saving the cs directory in settings - doesn't work tho! 2019-09-11 04:39:10 -06:00
duncathan salt c75e39c0b0
Merge pull request #56 from duncathan/gui
swaps to a new UI library
2019-09-10 23:37:29 -06:00
duncathan 6eb4b0ccc8 rewrites existing UI to luigi 2019-09-10 23:35:41 -06:00
duncathan ac8015b2f0 adds very simple proof of concept buttons 2019-09-10 04:46:45 -06:00
duncathan 9bdb928668 cleans up libraries 2019-09-10 03:48:35 -06:00
duncathan 11287c053a removes runtime errors by commenting out the code causing it :D
here's hoping this doesn't cause more problems down the line... lol. in theory this will only cause problems if:
 - the GUI includes a textbox
 - the UI uses keyboard shortcuts (will cause issues for mac users)
2019-09-10 03:41:06 -06:00
duncathan 27581f737d splits main.lua into pieces 2019-09-10 03:13:50 -06:00
duncathan 8061174638 add luigi graphics library 2019-09-10 02:48:34 -06:00
duncathan salt a0b28cc111
Merge pull request #55 from Velosareon/speed-up-mandatory-text
Speed up mandatory text
2019-09-08 12:32:31 -06:00
yiğit iyişirin 5676ea11b6 PR comments: Readding accidentally removed <FAC, Kings death dialogue, and removing unnecessary <TUR 2019-09-08 00:36:52 -07:00
yiğit iyişirin be584d49d8 Revert "Gave Ballos a joke dialogue, could do something similar to ALttP randomizer where the final boss says different random things for fun/silliness"
This reverts commit 5766d58128.
2019-09-08 00:32:37 -07:00
yiğit iyişirin d7c00b1e5f readding in all Huzzahs 2019-09-08 00:27:51 -07:00
yiğit iyişirin bec915c66e Revert "Malco sped up"
This reverts commit 770ae1375e.
2019-09-08 00:04:43 -07:00
duncathan salt 065847e54f
Merge pull request #54 from Velosareon/fix-first-cave-black-screen
First Cave exit makes your screen black forever
2019-09-08 00:30:03 -06:00
duncathan salt 6d2e8b47d5
Merge pull request #53 from Velosareon/patch-1
Update README.md
2019-09-08 00:29:19 -06:00
yiğit iyişirin b36756abea Experimenting with auto-playing cutscenes. This can be left out, but the idea is that once the falling island graphic displays after defeating Ballos, the run is complete and time is called, so the rest of the game should auto-play till the credits end (where hopefully we can have the game display the time of run) 2019-09-07 20:42:15 -07:00
yiğit iyişirin 5766d58128 Gave Ballos a joke dialogue, could do something similar to ALttP randomizer where the final boss says different random things for fun/silliness 2019-09-07 20:40:55 -07:00
yiğit iyişirin 681f062116 Misery, the Doctor, and Undead Core sped up 2019-09-07 20:39:21 -07:00
yiğit iyişirin 1cbc1b32be Ma pignon boss and Booster sped up 2019-09-07 20:38:11 -07:00
yiğit iyişirin 770ae1375e Malco sped up 2019-09-07 20:37:36 -07:00
yiğit iyişirin 287939142a Core and Waterway sped up 2019-09-07 20:37:16 -07:00
yiğit iyişirin 4570c9e8f0 Labyrinth sped up 2019-09-07 20:36:11 -07:00
yiğit iyişirin f7dbe2b855 Plantation areas sped up 2019-09-07 20:34:38 -07:00
yiğit iyişirin b1e368c9ea Egg corridor speedup 2019-09-07 20:31:57 -07:00
yiğit iyişirin a5912478ab speed up bed rest dialogue 2019-09-07 20:21:48 -07:00
yiğit iyişirin b31f2533c9 kazuma rescue cutscene was cut too short 2019-09-07 20:21:07 -07:00
yiğit iyişirin 3f52fd0ad8 speed up when teleported into labyrinth by misery 2019-09-02 23:50:43 -07:00
yiğit iyişirin e1932ae6eb sped up first balrog fight and jack scene after 2019-09-02 23:50:17 -07:00
yiğit iyişirin bfdc39d568 speed up some item messages 2019-09-02 23:49:23 -07:00
yiğit iyişirin 02e666f178 removing quake from before boss fight 2019-09-02 01:01:51 -07:00
yiğit iyişirin 277c393f76 Sand Zone text and cutscenes sped up 2019-09-02 00:34:09 -07:00
yiğit iyişirin 9611f13a0c Shortened first King and Toroko cutscene 2019-09-01 20:52:01 -07:00
yiğit iyişirin d053f2af3c Speed up death text 2019-09-01 20:47:56 -07:00
yiğit iyişirin 2a87f6ebd3 First Cave exit makes your screen black forever if you did not collect both items when trying to leave 2019-09-01 16:34:08 -07:00
Velosareon 6c99c362b8
Update README.md
Fixes the releases link to point to the new GitHub releases page instead of the GitLab one.
2019-08-31 13:08:40 -07:00
duncathan salt 3de836c2de
Merge pull request #52 from periwinkle3125/master
softlock/various other fixes
2019-07-26 02:40:24 -06:00
periwinkle b33774001d Fix more requirements 2019-07-11 15:06:57 -04:00
periwinkle 35b5b6b3cd Add some missing <TURs 2019-07-11 05:17:57 -04:00
periwinkle 3b501c8200 A few performance improvements
Featuring a much smarter, more efficient worldGraph:collect()
2019-07-11 03:55:05 -04:00
periwinkle 4ec67e76a3 Remove unnecessary event 2019-07-10 20:39:03 -04:00
periwinkle 42e7e771ea Fix a couple of incorrect location access requirements
Also, Curly does not need both polarStar AND weaponBoss, since
the former implies the latter
2019-07-10 20:35:07 -04:00
periwinkle d2eff12fee Fix all remaining softlocks (I hope)
Also makes the air tank unequippable in the inventory, and moves
Prof. Booster's trigger to after the Core fight, as originally intended
2019-07-10 16:57:27 -04:00
periwinkle 811a1b73c4 Fix certain valid seeds being impossible to generate
This does break compatibility with 0.8B seeds, unfortunately
2019-07-10 13:35:14 -04:00
duncathan salt 49b5eecfbb
Merge pull request #46 from duncathan/hotfix
core/puppy chest hotfix
2019-03-31 16:04:35 -06:00
duncathan 22e1c5c1b6 core/puppy chest hotfix 2019-03-31 15:58:14 -06:00
duncathan salt 805a24e957
Merge pull request #43 from duncathan/master
increases version number
2019-03-28 19:44:17 -06:00
duncathan 5dc793da97 increases version number 2019-03-28 19:38:51 -06:00
duncathan salt b01b16170f
Merge pull request #42 from duncathan/core
fixes #25, fixes #8 - core water issues
2019-03-28 19:32:31 -06:00
duncathan 88e26338c3 fixes #25, fixes #8 - core water issues 2019-03-28 19:30:17 -06:00
duncathan salt 60e67fff49
Merge pull request #41 from duncathan/littlechaba
fixes #5, fixes #24, fixes #30
2019-03-28 19:07:09 -06:00
duncathan salt df437f831c
Merge pull request #40 from duncathan/visualitems
fixes #13, #15 - santa key and hell 1
2019-03-28 19:07:00 -06:00
duncathan salt 4620735c6c
Merge pull request #39 from duncathan/egg2
fixes #14, egg 2 issues, and improves egg no 0 when entering from wall
2019-03-28 19:06:50 -06:00
duncathan salt ec116e99ca
Merge pull request #38 from duncathan/balcony
fixes #36, fixes #37 - balcony barrier issues
2019-03-28 19:06:40 -06:00
duncathan d90f1a4dc7 fixes #5, fixes #24, fixes #30
- mr little and chaba now check whether you've picked up the blade or fireball, not whether you have them in your inventory
 - you can now pick up mr little without speaking to his wife
 - you can now drop off/pick up your bubbler at arthur's arsenal
2019-03-28 19:05:54 -06:00
duncathan a24f658eb7 fixes #13, #15 - santa key and hell 1 2019-03-28 18:55:01 -06:00
duncathan 64e2b3d3cc fixes #14, egg 2 issues, and improves egg no 0 when entering from wall 2019-03-28 18:51:07 -06:00
duncathan 3ede29c4dd fixes #36, fixes #37 - balcony barrier issues 2019-03-28 18:41:40 -06:00
duncathan salt af52132fb1
Merge pull request #34 from HapaxL/broken_sprinkler
fixes #11, broken sprinkler can give infinite items
2019-03-28 17:47:11 -06:00
HapaxL 4ff6fbaa1f fixes #11, replaces broken sprinkler entity with mimiga-only chest 2019-03-29 00:38:54 +01:00
duncathan salt c4f3d529e9
Merge pull request #35 from HapaxL/prefab-curly
fixes #9, can't enter prefab house without saving curly
2019-03-28 16:24:24 -06:00
HapaxL bc00557c86 fixes #9, can't enter prefab house without saving curly
edits the Undead Core fight to check for the Iron Bond item (in the inventory) rather than the Iron Bond flag (set when curing Curly from amnesia) when opening Prefab house
edits the exit from Prefa2 to Hell to check for the Iron Bond flag before setting flag 1531 which puts Curly in Hell1
does NOT remove Curly from the final cutscene after defeating Ballos!!!
2019-03-28 23:19:04 +01:00
HapaxL e9eaf03e3f fixes #11, broken sprinkler can give infinite items 2019-03-28 19:56:45 +01:00
duncathan salt da2accd528
Merge pull request #31 from HapaxL/master
fixes issue #7 "ma pignon's chest item can be obtained over and over"
2019-03-28 09:16:30 -06:00
duncathan salt b2ba6ab6ad
Merge pull request #32 from duncathan/softlocks
Fixes most softlock issues
2019-03-28 09:15:50 -06:00
HapaxL 6d9014ba8d fixes (FOR REAL THIS TIME) issue #7 "ma pignon's chest item can be obtained over and over" 2019-03-28 16:14:45 +01:00
duncathan aab32e70ff fixes #33, jellies softlock
also improves some text in chaco's house
2019-03-28 09:03:50 -06:00
duncathan af7f320336 fixes #29, first cave softlock
also makes a minor improvement to gunsmith item pickup
2019-03-28 08:51:57 -06:00
duncathan b09dc32685 fixes #27, upper sand zone softlock 2019-03-28 08:40:17 -06:00
duncathan 0ff62b4495 fixes #6, labyrinth M softlock 2019-03-28 08:36:03 -06:00
duncathan 0c65ea93ae fixes #12, disappearing curly softlock
might wanna do this better later - add a chest?
2019-03-28 08:34:52 -06:00
duncathan c8dccf0db1 fixes #10, mr little logic softlock 2019-03-28 08:34:41 -06:00
duncathan 16840aafa8 fixes #4, teleporter room softlock
droll will attack if you either have the key in your inventory or have unlocked the door
2019-03-28 08:34:31 -06:00
HapaxL 340c21cfac fixes issue #7 "ma pignon's chest item can be obtained over and over" 2019-03-28 14:42:09 +01:00
duncathan salt 99787271a8
Merge pull request #28 from duncathan/weaponfix
Improves Balrog 1
2019-03-28 06:56:55 -06:00
duncathan 4d3e8e94c4 improves balrog 1 2019-03-28 06:51:00 -06:00
duncathan d3afc3d2bb fixes a minor error in the weapon pool's attributes
machine gun is supposed to have weaponSN, not bubbler
2019-03-28 05:45:10 -06:00
duncathan salt ce16a31644
Merge pull request #18 from TrashboxBobylev/master
seed.txt functionality
2019-03-27 23:46:32 -06:00
duncathan 7c8b316da7 fixes whitespace 2019-03-27 23:46:10 -06:00
duncathan b97eb73d46 uses the proper random library 2019-03-27 23:43:26 -06:00
Trashbox Bobylev b59bc37911 Merge branch 'master' of https://github.com/TrashboxBobylev/cave-story-randomizer 2019-03-28 12:17:20 +07:00
duncathan salt 1c4ae36950
Merge pull request #17 from Nikitaw99/text-fixes
Camp/Egg No.0/Malco/Core Text fixes
2019-03-27 22:42:08 -06:00
Nikitaw99 713851b8e5 Removed unnecesarry <TURs and <SATs 2019-03-28 08:45:30 +04:00
duncathan salt f9912ba020
Merge pull request #16 from duncathan/gamefocus
applies game focus hack by Clownacy/Txin
2019-03-27 22:34:13 -06:00
duncathan be11d197dc applies game focus hack by Clownacy/Txin 2019-03-27 19:56:10 -06:00
Trashbox Bobylev 3340f38737 All situations is tested, custom seed functional is complete 2019-03-25 23:15:41 +07:00
Trashbox Bobylev 35da7227bc Fixed strings 2019-03-25 16:29:33 +07:00
Trashbox Bobylev 2687db83ab Gathering seed from file rewrited to use native Lua IO 2019-03-25 16:26:40 +07:00
duncathan salt c6e2043882 Merge branch 'patch-lnx' into 'master'
Fix *nix mkdir

See merge request duncathan/cave-story-randomizer!5
2019-03-25 08:23:29 +00:00
Fayti1703 68b3c68d92 Fix *nix mkdir
Also extracts the mkdir code into its own function, in case we need to modify it again
2019-03-25 08:23:29 +00:00
duncathan salt 57871e0ef1 Merge branch 'randomlib' into 'master'
Moves from lua random library to love2d random library

See merge request duncathan/cave-story-randomizer!11
2019-03-25 08:16:44 +00:00
duncathan 11139054d7 changes random library from math.random to love.math.random 2019-03-25 02:03:03 -06:00
Trashbox Bobylev d88a81fc98 Seed from file now really seed 2019-03-25 10:23:12 +07:00
Trashbox Bobylev 9250d162c8 Fixed weird situations with seed.txt 2019-03-25 10:20:51 +07:00
duncathan salt fa959cc8cc Merge branch 'patch-38' into 'master'
Fix textbox loop in Balcony

Closes #38

See merge request duncathan/cave-story-randomizer!9
2019-03-25 00:15:04 +00:00
TrashboxBobylev dfa31bc999 Update randomizer.lua 2019-03-24 16:38:58 +00:00
Trashbox Bobylev bfd3ec0360 Added ability to read seed from seed.txt in randomizer's home file 2019-03-24 23:16:13 +07:00
Fayti1703 865238c697 Fix textbox loop in Balcony
Fixes #38
You really need to tie up your loose <ENDs, @duncathan
2019-03-24 15:05:59 +01:00
duncathan salt 5c7e994c45 Merge branch 'patch-34' into 'master'
Fix Kazuma's Chest opening without the rusty key

Closes #34

See merge request duncathan/cave-story-randomizer!8
2019-03-24 13:45:18 +00:00
Fayti1703 0e7aa07a5a Fix Kazuma's Chest opening without the rusty key
Fixes #34
2019-03-24 14:38:52 +01:00
Nikitaw99 8c43907be6 Added a bunch of <SATs and <TURs to Core 2019-03-24 04:08:05 +04:00
Nikitaw99 17e3c11ec1 Malco and Boulder chamber minor text fixes
note: balrog's huzzah is still kinda late
2019-03-24 03:54:46 +04:00
Nikitaw99 65746f83f7 Egg No.0 and Camp text fixes 2019-03-24 03:42:47 +04:00
duncathan 6396bdf6a2 updates the readme 2019-03-22 05:34:42 -06:00
duncathan 804a689901 fixes mr little item requirements 2019-03-22 05:17:02 -06:00
duncathan a5435ab2e9 makes kazuma not open the outer wall door if he hasn't been saved 2019-03-22 04:49:26 -06:00
duncathan 95ee38b89d teleporter improvements 2019-03-22 04:36:48 -06:00
duncathan 0f2a6bf20e various little improvements/tweaks/fixes 2019-03-22 04:27:00 -06:00
duncathan 579e5e616b prep for release of v0.8A 2019-03-22 03:08:39 -06:00
duncathan bb6e7cadcb fixes monster X fight when approaching from east - fixes #3 2019-03-22 02:15:21 -06:00
duncathan 28689acf2f fixes power room weirdness after beating core - fixes #17 2019-03-22 02:03:59 -06:00
duncathan df946dd9f5 minor improvement to momorin text 2019-03-22 01:54:50 -06:00
duncathan ea50ee6ba1 unobtainable locations now obtainable - fixes #5 2019-03-22 01:47:27 -06:00
duncathan 0bdbd5ca96 minimizes failed seeds by placing a weaponSN in first cave before fill
fixes #6
2019-03-22 01:32:05 -06:00
duncathan 8f887748e1 message improvements and mushroom chest logic - fixes #2 2019-03-22 01:22:19 -06:00
duncathan 4d3d1a5bd4 text TUR fixes, also improves handling of puppies - fixes #20
jenka won't take away any puppies until you have all 5
2019-03-22 00:36:32 -06:00
duncathan 97a30765bc handful of script fixes - fixes #25, fixes #15 2019-03-22 00:10:28 -06:00
duncathan d66885dd5a fixes ending check loop - fixes #14
also updates blcny2 tiles to match blcny1
2019-03-21 23:49:21 -06:00
duncathan b0012063e2 fixes jail no 1 softlock: talk to mahin to escape - fixes #13 2019-03-21 23:45:37 -06:00
duncathan 001d814e50 adds tile in grasstown east if entered through chaco's fireplace
fixes #23
2019-03-21 23:41:32 -06:00
duncathan 3213125ac3 fixes being able to trade snake/fireball before obtaining both 2019-03-21 23:29:42 -06:00
duncathan 5cb16668fe adds <TUR to teleporters - fixes #22 2019-03-21 23:24:24 -06:00
duncathan 8cae77890d some cutscene fixes - fixes #9 2019-03-21 23:21:50 -06:00
duncathan 5b8c8ca841 keeps core shutter from closing on later entries - fixes #12 2019-03-21 23:09:19 -06:00
duncathan 6ae8fceae2 fixes 2 of the 4 duplicate item bugs - curly and ironhead
also prevents a softlock in waterway if you don't save curly
2019-03-21 23:03:30 -06:00
duncathan b4cb568856 gives quote a tetanus shot - fixes #11 2019-03-21 22:31:50 -06:00
duncathan 182f86025f allows proper non-trading of blade/nemesis at arthur's house - fixes #10 2019-03-21 22:31:50 -06:00
duncathan 4ccf7d8c75 lounge.tsc -> Lounge.tsc - fixes #7 2019-03-21 22:31:50 -06:00
duncathan 8001def10c replaces life capsules with sparkles - fixes #1 2019-03-21 22:31:50 -06:00
duncathan salt 7bdc6961f3 Merge branch 'license' into 'master'
adds license

See merge request duncathan/cave-story-randomizer!4
2019-03-22 04:24:21 +00:00
duncathan 4f97a323ad adds open mode license 2019-03-21 22:22:55 -06:00
shru 05ceaeb338 License under zlib 2019-03-22 04:01:41 +00:00
duncathan salt a68c48cd1c Merge branch 'patch-1' into 'master'
Treat *.tsc files as binary

See merge request duncathan/cave-story-randomizer!3
2019-03-21 11:23:51 +00:00
Fayti1703 eac7a39817 Add .gitattributes 2019-03-21 11:04:26 +00:00
2527 changed files with 58182 additions and 7941 deletions

1
.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
*.tsc -text -diff

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 {}

20
.gitignore vendored
View file

@ -1,12 +1,22 @@
data/*
notes/*
pre-edited-cs/Config\.dat
*Copy/
pre-edited-cs/Doukutsu\.exe\.blbkp
venv/
pre-edited-cs/Profile\.dat
build/
pre-edited-cs/window\.rect
dist/
pre-edited-cs/Profile\.dat\.bkp
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
}
}
}

44
LICENSE Normal file
View file

@ -0,0 +1,44 @@
ORIGINAL CAVE STORY RANDOMIZER PROJECT:
zlib License
© 2018-∞ shru
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
CAVE STORY RANDOMIZER [OPEN MODE] PROJECT:
[pertaining only to the modifications made to the original project by shru]
zlib License
© 2018-∞ duncathan_salt
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

View file

@ -1,27 +1,3 @@
Cave Story Randomizer
=====================
# Cave Story Randomizer [Open Mode]
Todo
----
- Trade Sequence Step B: Require random obtainable weapon, instead of always polar star and fireball.
- Randomize Booster v0.8 / v2.0
Issues
------
- Infinite Items at Chaco's?!?!
- [Speedrun] When missiles are replaced, sometimes text will exceed message box after "Opened the chest." text. (ie. https://youtu.be/PYhd9zhFdAk?t=4769)
- Collecting the Super Missile Launcher increases your maximum missiles by 5. This does not normally happen.
- Hell Missile Upgrade uses a unique script and won't be easy to replace.
- Trading back the Nemesis for the Blade almost certainly will be weird.
- Ikachan Medal aquisition happens in black screen, so it doesn't make sense to show text box as it makes the player have to mash through blackness.
Bugs
----
- Jenka gave me a life pot, but since I already had one, nothing happened. It even stayed in the same spot, instead of moving to the front.
Credits
-------
- Font: https://datagoblin.itch.io/monogram
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,348 +0,0 @@
#0000
<FRE<WAI9999<END
#1000
<MSG<TURNo weapon.<WAI9999<END
#1001
<MSG<TUR- Snake -
Penetrates through walls.
Made by Chaba in the Labyrinth.<WAI9999<END
#1002
<MSG<TUR- Polar Star -
The most basic gun.
It bears the mark of Polaris.
<WAI9999<END
#1003
<MSG<TUR- Fireball -
Bounces along the floor.
Rather powerful on gentle slopes.<WAI9999<END
#1004
<MSG<TUR- Machine Gun -
An automatic rapid-fire gun.
Automatically recharges over time.<WAI9999<END
#1005
<MSG<TUR- Missile Launcher -
Wide range and powerful damage.
However, its ammunition is limited.<WAI9999<END
#1007
<MSG<TUR- Bubbler -
From the Assembly Hall's fireplace.
How you use it is up to you.<WAI9999<END
#1009
<MSG<TUR- Blade -
A single-shot, high-damage weapon.
King's soul dwells within.<WAI9999<END
#1010
<MSG<TUR- Super Missile -
An exhilirating sort of missile.
Its acceleration is unmatched.<WAI9999<END
#1012
<MSG<TUR- Nemesis -
Lightning of the Goddess.
For advanced players.<WAI9999<END
#1013
<MSG<TUR- Spur -
Hold down the button to
fire a laser.<WAI9999<END
#1100
<MSG<TURHajime<WAI9999<END
#1101
<MSG<TURMick<WAI9999<END
#1102
<MSG<TURShinobu<WAI9999<END
#1103
<MSG<TURKakeru<WAI9999<END
#1104
<MSG<TURNene<WAI9999<END
#1200
<MSG<TURJenka's pet and leader of the dogs.
While searching for his brothers, he
got lost and was taken in by Curly.<WAI9999<END
#1201
<MSG<TURJenka's pet. Loves treasure-hunting.
Or treasure *chests*, rather, and
recently has taken up sleeping in them.<WAI9999<END
#1202
<MSG<TURJenka's pet. Loves dark places. Due
to poor eyesight, he roams the darkness
using his wild instincts alone.<WAI9999<END
#1203
<MSG<TURJenka's pet. Adores bones and has
buried them in countless places,
most of which are by now forgotten.<WAI9999<END
#1204
<MSG<TURJenka's pet. Spends most of her time
asleep, but her dreams have been
known to portend the future.<WAI9999<END
#5000
<MSG<TURNo item.<WAI9999<END
#5001
<MSG<TURArthur's Key<WAI9999<END
#5002
<MSG<TURMap System<WAI9999<END
#5003
<MSG<TURSanta's Key<WAI9999<END
#5004
<MSG<TURSilver Locket<WAI9999<END
#5005
<MSG<TURBeast Fang<WAI9999<END
#5006
<MSG<TURLife Capsule<WAI9999<END
#5007
<MSG<TURID Card<WAI9999<END
#5008
<MSG<TURJellyfish Juice<WAI9999<END
#5009
<MSG<TURRusty Key<WAI9999<END
#5010
<MSG<TURGum Key<WAI9999<END
#5011
<MSG<TURGum Base<WAI9999<END
#5012
<MSG<TURCharcoal<WAI9999<END
#5013
<MSG<TURExplosive<WAI9999<END
#5014
<FLJ3000:1100
<FLJ3001:1101
<FLJ3002:1102
<FLJ3003:1103
<FLJ3004:1104
<MSG<TURPuppy<WAI9999<END
#5015
<MSG<TURLife Pot<WAI9999<END
#5016
<MSG<TURCure-All<WAI9999<END
#5017
<MSG<TURClinic Key<WAI9999<END
#5018
<MSG<TURBooster v0.8<WAI9999<END
#5019
<MSG<TURArms Barrier<WAI9999<END
#5020
<MSG<TURTurbocharge<WAI9999<END
#5021
<MSG<TURCurly's Air Tank<WAI9999<END
#5022
<MSG<TURNikumaru Counter<WAI9999<END
#5023
<MSG<TURBooster v2.0<WAI9999<END
#5024
<MSG<TURMimiga Mask<WAI9999<END
#5025
<MSG<TURTeleporter Room Key<WAI9999<END
#5026
<MSG<TURSue's Letter<WAI9999<END
#5027
<MSG<TURController<WAI9999<END
#5028
<MSG<TURBroken Sprinkler<WAI9999<END
#5029
<MSG<TURSprinkler<WAI9999<END
#5030
<MSG<TURTow Rope<WAI9999<END
#5031
<MSG<TURClay Figure Medal<WAI9999<END
#5032
<MSG<TURLittle Man<WAI9999<END
#5033
<MSG<TURMushroom Badge<WAI9999<END
#5034
<MSG<TURMa Pignon<WAI9999<END
#5035
<MSG<TURCurly's Underwear<WAI9999<END
#5036
<MSG<TURAlien Medal<WAI9999<END
#5037
<MSG<TURChaco's Lipstick<WAI9999<END
#5038
<MSG<TURWhimsical Star<WAI9999<END
#5039
<MSG<TURIron Bond<WAI9999<END
#6000
<MSG<TURNo item.<WAI9999<END
#6001
<MSG<TURThe key to Arthur's house.
It was hidden near Arthur's
gravestone.<WAI9999<END
#6002
<PRI<EVE7002<MPJ7002<MSGNo data for this floor.<NOD<CLR<END
#6003
<MSG<TURThe key to Santa's house.<WAI9999<END
#6004
<MSG<TURA silver locket in the shape of a fish.
From the condition it's in, it looks
like it's been treasured for years.<WAI9999<END
#6005
<MSG<TURA sharp fang found at the
Yamashita Farm. Is its owner still
alive...?<WAI9999<END
#6006
<MSG<TURA life capsule.<WAI9999<END
#6007
<MSG<TURAn ID Card found in Egg No. 06.<WAI9999<END
#6008
<MSG<TURA fluid that can quench
fireplaces.<WAI9999<END
#6009
<MSG<TURA rusty key.<WAI9999<END
#6010
<MSG<TURA tag says "Gum".<WAI9999<END
#6011
<MSG<TURA clump of gum.<WAI9999<END
#6012
<MSG<TURTaken from a fireplace.<WAI9999<END
#6013
<MSG<TURAn explosive for blowing up doors
and such.<WAI9999<END
#6014
<FLJ3000:1200
<FLJ3001:1201
<FLJ3002:1202
<FLJ3003:1203
<FLJ3004:1204
<MSG<TURJenka's pet dog.<WAI9999<END
#6015
<KEY<MSGThis will restore your life,
but only once. Will you use it?<YNJ0000<LI+1000<SOU0020<IT-0015<MSG
Life restored.<FRE<WAI9999<END
#6016
<MSG<TURApparently this cures
anything and everything...<WAI9999<END
#6017
<MSG<TURIt says "Labyrinth Clinic".<WAI9999<END
#6018
<FLJ0742:7018
<KEY<MSGPush the jump button again in
midair to fly even higher.<NOD<CLR
Do you want to equip it?<YNJ0000<EQ+0001<EQ-0064<FL-1020<FL+0742<EQ-0032<FL-0743<MSG
Booster equipped.<NOD<WAI0003<FRE<EVE5018
#6019
<MSG<TURWhen you take damage, the amount
of weapon energy lost will be halved.<WAI9999<END
#6020
<MSG<TURIncreases the rate at which the
machine gun replenishes ammo.<WAI9999<END
#6021
<MSG<TURYou can breathe underwater with
this. Curly used to use it.<WAI9999<END
#6022
<MSG<TURA fully automatic stopwatch.
You can't see any buttons.<WAI9999<END
#6023
<FLJ0743:7023
<KEY<MSGPush the jump button in midair and
you can move in any direction.<NOD<CLR
Do you want to equip it?<YNJ0000<EQ+0032<EQ-0064<FL-1020<FL+0743<EQ-0001<FL-0742<MSG
Equipped Booster v2.0.<NOD<WAI0003<FRE<EVE5023
#6024
<FLJ1020:7024
<KEY<MSG<TURCan't be worn with a Booster.
It's a bit big...<NOD
Do you want to equip
it?<YNJ0000<EQ+0064<EQ-0033<FL-0742<FL-0743<FL+1020<WAI0003<FRE<EVE5024
#6025
<MSG<TURA key fished out by a certain
Mimiga.<WAI9999<END
#6026
<KEY<MSGWill you read it?<YNJ0000<MSG<TUR
This is Sue.<NOD<CLRI don't believe I ever told
you much about all of us.<NOD<CLRWe came to this island from
the surface on a research trip.<NOD<CLRProf. Booster was on our
helicopter, and so was my
mother, my brother,<NOD<CLRvarious assistants...
The Doctor as well.<NOD<CLRHe was there to serve our
medical needs, and did so...<NOD<CLRAt least, until he found
the Demon Crown...<WAI0020<NOD<CLRThat crown, once the property
of the master of this island,<NOD<CLRgrants monstrous magical
powers upon its wearer...<NOD<CLRThe Doctor knew this even
before coming to the island,<NOD<CLRwhich is why he wormed his
way into our group in the
first place.<NOD<CLROnce he had the Crown in
his possession, no one could
stand up to him.<NOD<CLRWe had no choice except to
continue our research of the
island under his orders.<NOD<CLRThe Doctor seeks to rule the
Earth's surface using this
island as a base.<NOD<CLRI think he plans to first
attack the surface using
the Mimigas as weapons.<NOD<CLRAnyway, I was able to get away
somehow, but I fear the other
researchers are already...<NOD<CLRNow, he's using the unsuspecting
Mimigas to cultivate more and
more red flowers.<NOD<CLROnce he is ready to attack, he will
drive the Mimigas into a murderous
frenzy using the flowers.<NOD<CLRUsing his terrible powers,
he will be able to control the
raging Mimigas to do his bidding.<NOD<CLR
And that means I, too, will...<NOD<CLRIf you can escape from this prison
cell, look for the hideout hidden
in the plantation.<NOD<CLRIf my mother is yet safe,
she'll be there, coming up
with a counterplan.<NOD<CLRPlease. Help my mother.<NOD<CLRThe password is
"Litagano Motscoud".<NOD<CLR<FL+1024<FRE<MSGThe letter ends here...<WAI9999<END
#6027
<MSG<TURNecessary to make a rocket.
Pride of Itoh, the cowardly man.<WAI9999<END
#6028
<MSG<TURA busted water sprinkler.<WAI9999<END
#6029
<MSG<TURIt's brand-new. ...Perhaps.<WAI9999<END
#6030
<MSG<TURA tow rope for robots.<WAI9999<END
#6031
<MSG<TURSmall and profoundly heavy.
It has no use.<WAI9999<END
#6032
<MSG<TURHey! We there yet?<WAI9999<END
#6033
<MSG<TURThe mushroom badge you got from the
mushroom. It has no real use. To be
honest, you don't really need it...<FL+1563<WAI9999<END
#6034
<MSG<TURAllegedly, it has the power to
restore memories...<WAI9999<END
#6035
<MSG<TURRetrieved from behind the wall.
Yellow-green panties with a cute
little insignia. They have no use.<WAI9999<END
#6036
<MSG<TUREngraved with the silhouette of an
alien. It has no use.<WAI9999<END
#6037
<MSG<TURRed lipstick.
It has no use.<WAI9999<END
#6038
<KEY<MSGA little trinket you got from
Chaba in the labyrinth.
A whimsical star.<NOD<FLJ0722:7038<CLR
Will you equip it?<YNJ0000<EQ+0128<FL+0722<MSG
Equipped the Whimsical Star.<NOD<WAI0003<FRE<EVE5038
#6039
<MSG<TURYour tie to Curly Brace, the only
warrior you would trust your back to.
Surely you will meet again one day...<WAI9999<END
#7002
<MLP<END
#7018
<KEY<MSGDo you want to remove it?<YNJ0000<EQ-0001<FL-0742<MSG
Deequipped Booster.<NOD<WAI0003<FRE<EVE5018
#7023
<KEY<MSGDo you want to remove it?<YNJ0000<EQ-0032<FL-0743<MSG
Deequipped Booster v2.0.<NOD<WAI0003<FRE<EVE5023
#7024
<KEY<MSG<TURDo you want to remove it?<YNJ0000<EQ-0064<FL-1020<MSG
Deequipped Mimiga Mask.<NOD<WAI0003<FRE<EVE5024
#7038
<KEY<MSGDo you want to remove it?<YNJ0000<EQ-0128<FL-0722<MSG
Deequipped the Whimsical Star.<NOD<WAI0003<FRE<EVE5038

View file

@ -1,265 +0,0 @@
#0000
<END
#0001
<PRI<MSGEmpty.<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<MSGYou may trade the =Fireball=
with the =Snake= and vice-versa
at the computer in Arthur's House.<FL+2802<END
#0007
<PRI<MSG<TUR<GIT0007<AM+0007:0100
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<MSGYou may trade the =Nemesis=
with the =Blade= and vice-versa
at the computer in Arthur's House.<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
Do you want to rest?<YNJ0000<FAO0004<CMU0000<WAI0020<CLR.....<NOD<CLO
<WAI0050
<LI+1000<SOU0020<MYD0002<MSG
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
#0025
<PRI<MSG<TUR<GIT1014<FL+5005<FL+0593
Got the last =Puppy=!<WAI0025<NOD<END
#0030
<PRI<SAT<MSG<FLJ0202:0032<FLJ0201:0031<FL+0201<GIT0005<AM+0005:0010
Got the =Missile Launcher=!<WAI0025<NOD<END
#0031
<PRI<AM+0005:0005<MSG
<GIT0006Max missiles increased by <NUM0000!<NOD<END
#0032
<PRI<AM+0010:0005<MSG
<GIT0011Max missiles increased by <NUM0000!<NOD<END
#0033
<FL+0202<AMJ0005:0034
<PRI<MSG<TUR<GIT0010<AM+0010:0010
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<FLJ0202:0037<FLJ0201:0036<FL+0201<MSG<TUR<GIT0005<AM+0005:0024
Got the =Missile Launcher=!<WAI0025<NOD<END
#0036
<PRI<AM+0005:0024<MSG<TUR<GIT0006Max missiles increased by <NUM0000!<WAI0025<NOD<END
#0037
<PRI<AM+0010:0024<MSG<TUR<GIT0011Max missiles increased by <NUM0000!<WAI0025<NOD<END
#0040
<KEY<CMU0000<WAI0040<PRI<WAI0040<CMU0003
<MSG
You have died.<NOD<CLRWant to retry?<YNJ0049<CLO
<FAO0001<WAI0050<FLJ0431:0048<INI<END
#0041
<KEY<CMU0000<HMC<WAI0040<PRI<WAI0040<CMU0003
<MSG
You have drowned.<NOD<CLRWant to retry?<YNJ0049<CLO
<FAO0001<WAI0050<FLJ0431:0048<INI<END
#0042
<KEY<CMU0000<WAI0040<PRI<WAI0040<CMU0003
<MSG<HMC
You were never seen again...<NOD<CLRWant to retry?<YNJ0049<CLO
<FAO0001<WAI0050<FLJ0431:0048<INI<END
#0048
<SMC<LDP<END
#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
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
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-0001
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
XX: head.tsc 4000 - 4099
4000:Almond<6E><64><EFBFBD><EFBFBD>

File diff suppressed because one or more lines are too long

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 @@
\Yrˆ\Yœ<E280B9><C593>œ¤<E280B9>˜<E280B9>“\Yrˆ€\Yœ<E280B9><C593>œ¤<E280B9>˜<E280B9>“\Yrˆ<7F>\Yœ<E280B9><C593>œ¤<E280B9>˜<7F><E280B9>“\Yrˆ\Yœ<E280B9><C593>œ¤<E280B9>˜<E280B9>“\Yrˆƒ\Yœ<E280B9><C593>œ¤<E280B9>˜ƒ<E280B9>“\Yrƒ\Yrƒ€\Yrƒ<C692>\Yrƒ€\Yrƒ€€\Yrƒ€<C692>\Yr\Y𔍢<E280B9>£—œ•žœ€…œ¨“<7F>œ¤ ¤<C2A0><E280B9>˜€\Y¦<E280B9>˜€„\Yœ¢<E280B9><7F>˜ÃoÂþ¿¿´³}}}<>ž“¡<E280B9>ˆ£·´o¸Â»°½³vÂoÂþ¿¿´³\Yµ°»»¸½¶p<70>ž“¡œ°È±´o°»»o÷´´¶°Ã¸Å´\Y´½´Á¶ÈoưÂoÆ´°º´½´³o°µÃ´Á\YÆ´´°Ão·¸¼Ž<C5BD>ž“¡<E280B9><7F>„}}}}}<>ž“¡¦´»»{o˜o³Ä½½¾{o±ÄÃo¸Ã\Y»¾¾ºÂo»¸º´o¾ÄÁoƾÁºo·´Á´\Y¸Âo³¾½´}<>ž“ž<E280B9>\Yœ¢<C593>£¤¡ooo˜Ão·ÄÁÃÂ}}}¦<E280B9>˜\Yœ¢<E280B9><7F>„¦·°ÃŽ<C5BD>ž“ž<E280B9>\Y¦<E280B9>˜œ¢<C593>£¤¡ooooo¢¾}}}oo·¾Ã}}}}}\Y<59><E280B9>Ÿƒ€<7F><E280B9>Ÿƒ€€‰<7F>¦<E280B9>˜oooooooo£·´o¿°¸½}}}\Y¦<E280B9>˜Ÿ¡˜œ¢Žp¦<E280B9>˜<7F>ž“ž<E280B9>š”¨\Yœ¤ƒ¦<E280B9>˜\Y<59><E280B9>Ÿƒ¦<E280B9>˜<7F>\Y<59><E280B9>Ÿƒ€‰<7F>¦<E280B9>˜\YŸ¡˜œ¢<E280B9><7F>„£·´oư»»pp<70>O“ž<E280B9>š”¨\Y¦<E280B9>˜\Y<59><E280B9>Ÿƒ<7F>¦<E280B9>˜<7F>\Y<59><E280B9>Ÿƒ€‰<7F>¦<E280B9>˜<7F>\Y<59><E280B9>Ÿƒ€‰¦<E280B9>˜<7F>\Yœ¢<C593>£¤¡oooo—´»¿o¼´}}}¦<E280B9>˜\Yooooo˜Ão·ÄÁÃÂ}}}¦<E280B9>˜\Yoooooo¢¾o·¾Ã}}}}}¦<E280B9>˜¡ž\YŸ¡˜œ¢<E280B9><7F>„¦´´o¶¾½½°o¶´Ão²ÁÄ·´³p<70>ž“žš”¨¦<E280B9>˜\YŸ¡˜<E280B9>œ¢¸È°·p<70>ž“ž\Yš”¨<E280B9>Ÿƒ<C692>ˆ¦<E280B9>˜€„\YŸ¡˜œ¢<E280B9>„£·´Á´oȾÄo°Á´p\Y™ÄÂÃo»¸º´¸Â´ÁÈo°¸³}<>ž“¡\Y<E280B9>ˆ¨¾Äo²°¼´oþoÁ´Â²Ä´oÄÂp<70>ž“¡<E280B9>„—¾»³o¾½oø¶·Ãpp<70>ž“ž<E280B9>\Yš”¨\Y<59><E280B9>Ÿƒ€‰<7F>¦<E280B9>˜\Y<59><E280B9>Ÿƒ<7F>¦<E280B9>˜<7F>\YŸ¡˜œ¢<E280B9>´ÃvÂo¶¾p<70>ž“ž<E280B9>\Y𔍕ž<E280A2>ƒ<C692>€…\Y<E280B9>Ÿƒ<C692><7F><7F>¦<E280B9>˜<7F>\Y<59><E280B9>Ÿƒ<C692><7F>¦<E280B9>˜\Y•œ¤œ¢£¤¡\Y“ľ¾¾¾¾¾¾¾¾¾¾¾¾····pp¦<E280B9>˜ž¦<E280B9>˜•œ¤<E280B9>ž€\Y¦<E280B9>˜Ÿ¡˜œ¤\Yœ¢<E280B9><7F>˜ÂoȾÄÁo·´°³o°»»oÁ¸¶·ÃŽ<C5BD>ž“¡\Y<E280B9><7F>˜v¼o½¾ÃoÂÄÁ´}}}<>ž“\Y£¡<C2A3>†€‰<7F>\Y

Binary file not shown.

View file

@ -1 +0,0 @@
NKdqqzqNK}<7D><><EFBFBD>騡qqy}<7D>𧣈qqq}<7D><>KdqqzrNK}<7D><><EFBFBD>騡qqy}<7D>𧣈qqr}<7D><>KdqqzsNK}<7D><><EFBFBD>騡qqy}<7D>𧣈qqs}<7D><>KdqqztNK}<7D><><EFBFBD>騡qqy}<7D>𧣈qqt}<7D><>KdqqzuNK}<7D><><EFBFBD>騡qqy}<7D>𧣈qqu}<7D><>KdqrqqNK}<7D>𡁸twr{qrqtNK}<7D>𡁸twq{qrqsNK}<7D>𡁸qqu{qrqrNK}<7D><EFBFBD>騡qrr}<7D>鰌rqq{qqqq{qqqsNK}<7D>釄qqu}<7D><>qrr{qqzu{qqus{qqvsNKdqrqrNK}<7D><EFBFBD><E3A7BB>琦萼疲琦停旬b}<7D><><EFBFBD><EFBFBD>KdqrqsNK}<7D><EFBFBD>釄qqu}<7D><>qrr{qqzu{qqus{qqvsNKdqrqtNK}<7D><EFBFBD><E3A7BB>偉a丐疲琦雀畜}<7D><><EFBFBD><EFBFBD>KdqrvqNKdqrvrNKdqrvsNKdqrvtNKdqrvuNKdqszqNK}<7D>𡁸qqu{qszr}<7D><>KdqszrNK}<7D>𡁸twq{qqqq}<7D><EFBFBD>ǘ<EFBFBD><C798>qqy𡾞榦a滌軸b}<7D><><EFBFBD>鰌szq}<7D>𩹨qqq{qqwt{qqqs}<7D><>KdquqqNK}<7D><EFBFBD>nqtwr}<7D>nqtwsNK}<7D><><EFBFBD>鰌uqq{qqrs{qqqq}<7D>鰌uqq{qqsq{qqqu}<7D>𧣈ruqNK}<7D><EFBFBD>ǘ<EFBFBD><C798>qqv䬬斯a滌軻腺玥b}<7D><><EFBFBD><EFBFBD>qqq}<7D><EFBFBD>𨍥K}<7D>𧣈rqq}<7D>騡qrvNK}<7D>𠃊K墖隅延a飢吧<E9A3A2>韋馬b}<7D>𧣈ruq}<7D><>K}<7D>騡quv}<7D>鰌rvq{qqqr{qqqq}<7D>𧣈qquNK}<7D>騡quv}<7D>鰌rvr{qqqr{qqqq}<7D>𧣈qquNK}<7D>騡quv}<7D>鰌rvs{qqqr{qqqq}<7D>𧣈qquNK}<7D>騡quv}<7D>鰌rvt{qqqr{qqqq}<7D>𧣈qquNK}<7D>騡quv}<7D>鰌rvu{qqqr{qqqqNK}<7D>騡qqy}<7D><>KdqvqqNKdrqqqNK}<7D><EFBFBD>lqtwq}<7D>lqtwr}<7D>lquuq}<7D>nqtsw}<7D>ǘ<EFBFBD><C798>戌戌收b}<7D><><EFBFBD><EFBFBD>地恩ma揣椰a恩bb}<7D><><EFBFBD>㺸oooo}<7D><><EFBFBD>}<7D><><EFBFBD><EFBFBD>qqs}𦵑𧣈qtq}<7D><>qqs}<7D>𩹨qqq{qqwq{qqqu}<7D>𤛔<EFBFBD><F0A49B94>qqw黱逸釵ooo滌逸釵a秣煮K葵筒a筒地<E7AD92>今偃<E4BB8A>}<7D><><EFBFBD><EFBFBD>奔a𤺧家敦陶榣}<7D><><EFBFBD>𨍥K}<7D><>qqq}<7D>騡qqqNK}<7D><>qtq}<7D>騡qswNK}<7D>𩹨qqq{qqqy{qqqqNK}<7D>鰌rqq{qqqr{qqqqNK}<7D>𧣈qrqNK}<7D><>qqqNK}<7D>𩹨qqq{qqwq{qqqqNK}<7D>𧣈rqqNK}<7D><>qtq}<7D>騡qswNK}<7D>𩹨qqq{qqqy{qqqqNK}<7D>鰌rqq{qqqr{qqqqNK}<7D>𧣈qxqNK}<7D><>qtq}<7D>騡qswNK}<7D>𩹨qqq{qqqy{qqqqNK}<7D>鰌uqq{qqrz{qqqsNK}<7D>鰌rqq{qqry{qqqsNK}<7D>鰌qqu{qqqy{qqyqNK}<7D>鰌qqv{qqqy{qqyrNK}<7D>鰌qqw{qqqy{qqysNK}<7D>鰌qqu{qqqz{qqzwNK}<7D>鰌qqv{qqqz{qqzxNK}<7D>鰌qqw{qqqz{qqzyNK}<7D>ǘ<EFBFBD><C798>飩誥奔}<7D>𧣈qvq}<7D>鰌uqq{qqrs{qqqs}<7D>鰌uqq{qqtq{qqqs}<7D>𨬌<EFBFBD><EFBFBD>騡qrrNK}<7D>鰌vqq{qqwx{qqqs}<7D>𧣈rqq}<7D>鰌vqq{qqrt{qqqs}<7D>𧣈qvq}<7D>𩹨qqq{qqqy{qqqqNK}<7D>ǘ<EFBFBD>𤛔<EFBFBD><F0A49B94>qrw<72>恩a╲偺皂a秣罪}<7D><><EFBFBD>𨍥K}<7D>鰌vqq{qqrv{qqqs}<7D>𧣈rrqNK}<7D>鰌vqq{qqsq{qqqsNK}<7D>𧣈qvqNK}<7D><>qqv}<7D>ǘ<EFBFBD><C798>軒萱h徨滌雲a它╲<E5AE83>}<7D><>K黱軻辰秤糎妒貝琦恩a葵筒NK筒a筒狗<E7AD92>}<7D>𡅈qqr}<7D>鰌uqq{qqtq{qqqs}<7D>幞K}<7D><>qru𨉖炫次a玥b}<7D><><EFBFBD>𨍥K}<7D>lqtwr}<7D>騡qqu}<7D>鰌uqq{qqwy{qqqs}<7D>惗uqq}<7D><>KdrqqrNK}<7D><EFBFBD>nqtws}<7D>nqtwr}<7D>騡qqy}<7D>ǘ<EFBFBD><C798>qqv黇妯}<7D><>K<EFBFBD>苔釭貝痠a揭地滯a筒旬o}<7D><><EFBFBD>𨬌<EFBFBD>鰌uqq{qqrq{qqqs}<7D><>

View file

@ -1 +0,0 @@
啌摐損m煯<EFBFBD>煩瘣敂湏煩瘣敂湐煩瘞敂湑煱堡煢案摀枔煩が摀摀煥抱pm啌摐攑m煯<EFBFBD>煩瘞敂湏煩瘣敂湐煩瘣敂湑煱堡煢案摀枔煩が摀摂煥抱pm啌摐昿m煯<EFBFBD>煱堡煢案摀枔煩が摀摃煥抱pm啌摐杙m煯<EFBFBD>煱堡煢案摀枔煩が摀摉煥抱pm啌摐梡m煯<EFBFBD>煩瘣敂湏煩瘞敂湐煩瘣敂湑煱堡煢案摀枔煩が摀摋煥抱pm啌摐榩m煯<EFBFBD>煩が摀摋煥抱pm啌敁損m煯<EFBFBD>煻哺摀敂煠背摂摀潛摀摑摀摃煩げ摀摉pm煬翻摀晼潛敁敓返<EFBFBD>摍枬摀湒潛摀湞摀摋pm啌敁攑m煯<EFBFBD>煼丹摀櫄潛摐枬摀摐潛摀梡m啌敂損m煶惮煩げ摀摃煼丹摀櫁潛摐暆摀摂潛摂攑m啌敃損m煯<EFBFBD>煠背摂晸潛摀摑摀摃煻哺摀敂煩げ摀摋煼丹摀櫃潛摐棟摀敁潛摀沺m啌敄損m煶惮煱丢匪讨冃刂變湃冏巳兯认唐矣兹誴m敦葍难莾姿葍易巳罩兤男葍萄円褢憫煴钵煥抱pm啌敎減m煶惮煱丢碧c葍鸵艖煴钵煥抱pmpm啌晸損m煯<EFBFBD>煱姬摀摀煣背摃摀熀ざ煱丢ぱ軆韶兆巳諆难莾芤貖杖pm室萄蕛滓兩南蟿煴钵煥抱pm啌晸攑m煶惮煱丢煼傅pm儍儍儍儍儍儍帆し姸儰<EFBFBD>弮┎<EFBFBD>秳煴钵煥抱pm啌晹損m煶惮煩<EFBFBD>敂湐潛晹敓┋瓟敎暆摃敃pm煶惮煩げ摀摋煱姬摀摃熀が摀槗煼丹摀檿潛摐槤摀摎潛摎梡m啌晹攑m煶惮煩げ摀摋煱姬摀摃熀が摀槗煼丹摀檿潛摐槤摀殰潛摎杙m啌晹昿m煶惮煩げ摀摋煱姬摀摀熀が摀槗煼丹摀檿潛摐槤摂敋潛摍昿m啌枔損m煬翻摀枩潛枔暉ü〒枔攑m啌枔攑m煯<EFBFBD>煱讥摀摀煱丢煩う摀晹瑑谝褗變耪饶蝺姿讨兣恼仗日pm匮滋蟽芤貎耪萄蕛腥兌厝兩找衟m姿葍ㄊ蕛σ照糖艺兡謨谌舷兡謕m姿葍煪<EFBFBD>敁枩牞找褍ヒ亚爠pm啌枔昿m煩<EFBFBD>暃摀潛枔枱ü〒枔攑m啌枔杙m煯<EFBFBD><EFBFBD>煣堡摀敄煻哺摀枠熀が摀晿煥抱

View file

@ -1 +0,0 @@
q~~噡[X姍摟姅歿噡姅歿<7F>姅歽噣姂洠~~唺攺梸~~~姄湌[Xq~~<7E>[X姍摟姅歽噡姅歿<7F>姅歿噣姂洠~~唺攺梸~~姄湌[Xq~~噣[X姍摟姂洠~~唺攺梸~~€姄湌[Xq~~噥[X姍摟姂洠~~唺攺梸~~亰摐抂Xq~~噦[X姍摟姅歿噡姅歽<7F>姅歿噣姂洠~~唺攺梸~~倞摐抂Xq~~噧[X姍摟姀湠~€唦垀~~垀~~~姅潨~€唦垀~刐X姤彈~~儈姅彈~~~倞摐抂Xq~~~[X姍摟姟潱~~姀湠~~~垀~~~垀~~€姅彎~~~乕X姉<58>~~€亪~~姠爮~~剚垀~噥垀~~噲~~~俒Xq~~[X姍摟姠爮~~剠垀~噥垀~~噲~~~俒Xq~~[X姙牀姅彎~~~€姠爮~~剛垀~噣垀~~垀~[Xq~€~[X姙牀姅殬亣亪~<7F>椔n沤紆耼骄臣o姕潚姄湌[Xq~€[X姍摟姅彎~~~倞敐泘~<7F>弤~厙垀~噦垀~~垀~~哰Xq~噰[X姙牀姂洠~~亖姏<E4BA96><EFBFBD>筺墙胣唇纍鲁谅芳祇[X⒍硁汲坡n警缆n妨n谅泛篬X眉渤纍苯剂吕帽路郊|||姕潚姞洠姄湌[Xq~€~~[X姍摟姏<E6919F>~~~~姃湠~€~~姏<>徏莕疵缆冻纍<E586BB>瞡墙胾莱[X到芳祅陆n疮汉o姕潚姄湌[Xq~€~[X姙牀姏<E78980> [X<>彚u<E5BD9A>彋歾n敐殭<E69590>姕潚姄湌[Xq~€~[X姙牀姅殬<7F>垀€姅殬噣垀€€[X姙牀姅彎~~~倞洤拁~~€姤彈~~儈姠爮~~厏垀~噧垀~~厛~~厒[Xq~€[X姙牀姅彎~~~倞洤拁~~€姤彈~~儈姠爮~~厏垀~噧垀~厙垀~厑[Xq~€€[X姙牀姅彎~~~倞洤拁~~~姤彈~~儈姠爮~~厏垀~噧垀厛~~剙[Xq~€唦[Xq~€噡[Xq~€<>[Xq~€噣[Xq~€噥[Xq~€噦[Xq~€噰[Xq~亊~[X姟彚[X姍摟姈洃姅潨~亊~垀~刐X姤彈~~唦姀湠~€噰垀~€~垀~~€[X姟灐姤彈~~€~[X姏<58>椔u羘烂技芳祇姕潚姂殱姅彈~~~姤彈~~儈[X姂湠~€<>垀€厛~~~~姀湠~€<>垀~倊垀~~~姤彈~~儈[X姀湠~€噡垀~~~垀~~~姤彈~~€~[X姏<58>姅彂~~€啣硊某n到耼臣矫刀n疵澈o[Xコu莱n莱<6E>莕陆n到n<E588B0>[X<>莕路怀|姕潚姂殸柍秥||n梟汲某纍怖朝怀瞇X梪瞡<E6A2AA><EFBFBD>呵n化钩n仿[X隘惫n陆n露硁撩来<E692A9>硘||姕潚姂殱姅彂~~~~[X姀N瀪€<E780AA>垀~儈垀~~~姤彈~~刐X姏<58>姅彂~~€€梟沤疾忱n反n露城u莱[X<>簄婪刀聕||姕潚姂殱[X姅彂~~~~姤彈~~刐X姛<58>~~~[X姀湠~€噡垀~~亪~~~~[X姀湠~€<>垀~~垀~~~[X姂湠~€噣垀€厙垀~~~[X姂湠~€噥垀€厙垀~~~[X姂湠~€噦垀€厙垀~~€姤彈~~~[X姀湠~€<>垀~個垀~~~[X姀湠~€噡垀~~~垀~~~[X姏<58>姅彂~~€啅糿朝缆犊茂钩|||崐湞拪憵爦攺憕~€€⒍硁苯莱|||峓X椔n苯煤布u耼俺o姕潚姂殱[X姅彎~~~亰敐泘~剨憺<E589A8>洤拁~~€姠爮~~剢垀剘~垀~€倛~~乕X[Xq~亊僛Xq~亊刐Xq~亊匸Xq~<7E>~[X姟彚姍摟姏<E6919F>~~~~姂洠~~唺敋{噡姅歿<7F>姅歽噣姅彈~~~~[X姀湠~亊儓~~垀~~€[X姀湠~€唦垀~~垀~~~[X姅潨~亊儓~~剨洝亰攺憕~~仢某纍冻莱o姕潚[X犆糿欧露n<E99CB2>簄墙胣到聑[X嚼n墙胾莱n到技痭党耓X崩昧冻瞣o姕潚姅潨~€唦垀~剨憵漑X姀湠~亊儓~~亊垀~~~姤彈~~剘[X姃湠~亊儕敋{亣姄湌[Xq~亐~[Xq~亖~[X姟彚姍摟姃湠~亖~姏<>~~~~姀湠~亐~垀~~~垀~~€[X姤彙姤彈~~儈[X姅潨~亐~垀~剨洝晩攺憕~~⒍忱硊羘冀哦忱硁澈脸n陆[X烂紎nコu汉n动某n陆n该痪[X唇纍仿|姕潚[X椔u羘撤露忱n露<6E>n嚼n练耓X冻莱n<E88EB1>瞡撼耼露沉硁澜惫羀X崩昧秐昧o姕潚姂殸Ы胣莱<E883A3>菎姕潚[X樏痪n<E797AA>n疮纍<E796AE>n墙胣悲紀姕潚姂殱姍摟[X姀湠~亐~垀~~~垀~~~姤彈~~儈[X姀湠~亐~垀~亊垀~~~姤彈~~€[X姀湠~亐~垀~倊垀~~~姤彈~~儈[X姅歿亣€姅潧~~剨摐抂Xq~倊~[X姟彚姍摟姅洠姃湠~倊~姤彈~~亊姈洃姅彎~~~~[X姂湠~儈~垀€儌垀~~~姤彈~~~[X姀湠~儈~垀~€~垀~~€姤彈~~~[X姀湠~儈~垀~亊垀~~€姤彈~~~[X姅潨~儈~垀~剨洕<E589A8>~€~垀~亊[X姃湠~亊厞挏瀪€唦[X姤彈~~~姅彈~~~俒X姏<58>姅彂~~€€[X⒍硁妨函疾u羘疮汉芳祙||姕潚姂殸姅彂~~€啑聈羘陆絥帛嫉忱矫羭[Xコu某n到耼陆n久汉n矫耾姕潚姂殱姅彎~~~俒X姂洠~~亙姠爮~~倗<>€~~垀~噯垀~~刐Xq~儈~

View file

@ -1 +0,0 @@
@=Vcclc@=o€<6F>tov€<76>ccckoyt|ccccox<6F>w@=Vccld@=o€<6F>tov€<76>ccckoyt|cccdox<6F>w@=Vccle@=o€<6F>tov€<76>ccckoyt|ccceox<6F>w@=Vcclf@=o€<6F>tov€<76>ccckoyt|cccfox<6F>w@=Vcclg@=o€<6F>tov€<76>ccckoyt|cccgox<6F>w@=Vccll@=ov€<76>ccckoyt|cccgox<6F>w@=Vcdcd@=o<>…|ov<6F><76>cdcdmccccmcccco†<E280A0>ccddoytcccfo‡…tccdfmcclfmccdcmcccf@=Vcdce@=o<>…|oy}cfcemcdcgoy}cfcdmcdcfo€†zrTo<54>wox<6F>w@=Vcdcf@=o<>…|oytccce@=oy^c3ceoy^digdoy^dige@=o€Śwccceo‡…tccddmcfcemccckmccci@=Vcdcg@=o~xŚoytccceo‡…tccddmcclgmccckmccci@=Vcddc@=o~xŚoytcccgo‡…tcclcmcclemcccjmcccl@=Vcdhc@=o~xŚo€Śwccccov€<76>ccckoyt|cccg@=oŠt|ccfc@=o†<E280A0>ccdeov€<76>cchcmccfhmccijoŠt|ccec@=o†<E280A0>ccdeov€<76>cchcmccfimccijoŠt|ccec@=ox<6F>w@=Vcecc@=ox<6F>w@=Vcecd@=ox<6F>w@=Vcgcc@=o<>…|o†<E280A0>cceeow<6F><77>cgccox‰xcgcd@=Vcgcd@=ox‰xccde

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[Q0=>==I]_VISN\====Ia_N==>>G==F=G==BCG==@@0=>>=IXRfI`\b==>>IN[]=>>=G====G===?ISN\===AIa_N==E@G==FAG===DG==>=0=?==I]_VISYW>@D>G=?=>IZ`TfrnuL-dunqqn†n-„n{<7B>LI[\QIR[Q0=?=>I]_VIZ`Tf|-€n†-z†-„vsr4€-y||xv{4s|-zrLI[\QIPY_ frnu9-†|4r-vtu<74>9I[\QV-nv{4<>-orr{-u|zr-v{-n-„uvyr;I[\QNvtu<74>9-<2D>vzr-<2D>|-t|;I[\QITVa>=@?IQ[]=?==IPY_f|4r-t|{{n-<2D>nxr-zr-<2D>urr9|s-p|€rLI[\QIRcR=?=?0=?=?IRcR==E?0=@==IP[]=@==G====G====ISYW=@F=G=@=?ISY8=@F=IRcR=@=>0=@=>IRcR==B>0=@=?I]_VIZ`TN<4E>u4€-tn<7F>r;I[\Qaurr4€-„v<7F>v{t-|{-<2D>ur<17>|zo€<6F>|{rGI[\QIPY_IZ`TIab_Urr-€yrr}€-<2D>ur-{|oyr-N<4E>u9<17>r-ur|-<2D>|-<2D>ur-Zvzvtn€;I[\QIPY_IR[Q

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
IF_llulIFx炎}x苑llllx<6C><78>lllx♀€IF_llumIFx炎}x苑llllx<6C><78>llmx♀€IF_llunIFx炎}x苑llllx<6C><78>llnx♀€IF_lluoIFx炎}x苑llllx<6C><78>llox♀€IF_llupIFx炎}x苑llllx<6C><78>llpx♀€IF_lluqIF_lluuIFx〟富炎}x苑llllIFx}褐lmqlvlllmvllllx<6C><78>llpIFx褐lolmvlmmnvlllnx党<78>mllIFx}褐lmqlvllllvllllIFx鴛€lllnx€褐lolmx初x♀€IF_lmllIFx月<78>Fx<78>lnovlmlnIFx<46><78>lnqvlmlmIFx縁ューcッ\ィォ洫。<E6B4AB>jx葛€x♀€IF_lmlmIFx暑鼠lnnx縁ベュ仁lnq賊。<E8B38A>\ー、。\y寸ィ。ャォョー。ョ\辞ォゥ\<5C>オyjx葛€x<78>IFxュ人lllxgmlnox£mlnIF_lmlnIFx〟富暑鼠lmmx}褐lmllvllllvlllnx<6E>詰llnx錘}llqrvllunvlllmvlmloIF_lmqlIFx〟富殉<E5AF8C><<>mplvlmqnx<6E><78>lnqvlmqmx£mqnIF_lmqmIFx〟富縁ムォ\オォア\ウ擡ー\ーォ\」ォ\ーォ\}ョー、アョcッIF、ォアッ。{x賦<78>lllx<78>IFxgmltnxgmmplx件glllqvrllqIFx党<78>lqlx縁オF㊤<46>℃\視~巨]x葛€x<78>IFx鴛€lllnIFx}褐lnqlvllmlvllllx党<78>lrlIFx褐lnrlvlmqlvllllxчIFx}褐lnrlvllmlvllllx党<78>lqlIFx<46>詰llox党<78>mllx初x<78>mpmvlmqnxgmmpmx錘}llqsvlnnlvllmmvllmpIF_lmqnIFx月<78>縁ムォ\オォア\ウ擡ー\ーォ\」ォ\ーォ\}ョー、アョcッIF、ォアッ。{x賦<78>lllx<78>x件glllqvrllqIFx〟富褐lollvlmmmvlllnxчx党<78>lrlx}褐lmqlvlllmvllllIFx党<78>mllx<6C>詰llpx錘}lllmvlluuvlllqvllltIF_lnqlIFx〟富縁ニjjjjx葛€x♀€IF_lnrlIF_lollIF_lolm

View file

@ -1 +0,0 @@
?<Ubbkb?<n€snx~_bdhenu嘼bbdnxs{bbbbnw€v?<Ubbkc?<n€snx~_bdhenu嘼bbdnxs{bbbcnw€v?<Ubbkd?<n€snx~_bdhenu嘼bbdnxs{bbbdnw€v?<Ubbke?<n€snx~_bdhenu嘼bbdnxs{bbbenw€v?<Ubbkf?<n€snx~_bdhenx~|befclbbkknu嘼bbdnxs{bbbfnw€v?<Ubbkk?<nu嘼bdjnxs{bbbfnw€v?<Ubcbb?<n倓{n厑嘼bccnv€俠cbbnxs乥bbfn唲sbbbhlbbkflbccklbbci?<Ubdbb?<n{唡bbbjlbdbd?<n}w媙厃n唶則棲<E58987><EFBFBD>桼槥洉潡<E6B489>牂R槥摕棩^?<<3C><>ア玆揜殹灄`n€乿nx~|bdfclbdbcnw€v?<Ubdbc?<nu~刵厃n唶剢殫R槥摕棩R摛桼洜R<E6B49C>桼⿹玆摖<E78E86>?<<3C><>晸燳<E699B8><EFBFBD><E6AB81>ウ```n€乿nu~<7E>?<nx~]bdhcnx~]bdhenw坵bebc?<Ubdbd?<n}w媙x~]bdcens€俠dbblbbcblbbbbn塻{bbebnxs乥bbfn唲sbbbhlbbkklbc2flbbcc?<Ubdcb?<n倓{nx~|dfbelbbcknx~|bdhelbdccnw坵bbck?<Ubdcc?<n}w媙x~]dfbenxs乥bbfnu嘼bbbn塻{bbdbn€俠ebblbbcdlbbbhlbbbbns€俠ebblbbcblbbbb?<n塻{bbgbn~{]cbbbn厑嘼bdbn媣bbbdn<64>噉xs{bbbfnw坵bdcd?<Ubdcd?<nw坵bbji?<Ubebb?<n{唡bbbjlbebd?<nx~|bdhclbebc?<nx~|bdfclbebe?<n}w媙厃n唶剒棡灐R<E78190>棨桽?<z摠桼<E691A0><E6A1BC><EFBFBD>厯牔揯?<<3C><EFBFBD>摛棖玙晸<E78E99>n€乿nw€v?<Ubebc?<n}w媙厃n唶剢<E594B6><EFBFBD>¨<EFBFBD><C2A8>桼槥摕棩^R<><52>?<牀棖Ro|棡灚槢<E7819A>R|<7C>晽o`n€乿nw€v?<Ubebd?<n}w媙厃n唶剫¨R櫋<52><E6AB8B>桼o|棡灚槢<E7819A>R|<7C>晽oqS?<s煋瑳牂Sn€乿nw€v?<Ubebe?<n}w媙厃n唶剏 枲棩<E69EB2>R<EFBFBD>摝Y<E6919D>揜枔牂棨¨<E6A3A8>?<洣棢R<E6A3A2><52><EFBFBD>R櫋<52><E6AB8B>棨梎?<s<>R<EFBFBD><52>揜Δ摠棡棨qn€乿nw€v

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 @@
0==F=IZ[NISYW=@A>G==FBIPZb===FISNV====IR[Q0==F>IZ[NISYW=@A>G==FCIPZb===FISNV===>IR[Q0==F?IZ[NISYW=@A>G==FDIPZb===FISNV===?IR[Q0==F@IZ[NISYW=@A>G==FEIPZb===FISNV===@IR[Q0==FAIZ[NISYW=@A>G==FFIPZb===FISNV===AIR[Q0==FBIPZb==?EISNV====IR[Q0==FCIPZb==?EISNV===>IR[Q0==FDIPZb==?EISNV===?IR[Q0==FEIPZb==?EISNV===@IR[Q0==FFIPZb==?EISNV===AIR[Q0=>==I]_VI`\b==>>IQ[]=>==ISN\===AIa_N==>>G==FAG==A@G==@A0=?==ISYW=@?DG=?=>IXRfIZ`TISNP===Daur-xr<78>-<2D>|-N<4E>u<EFBFBD>4<7F>u|<7C><>r;;;I[\QV-<2D>u|<7C>tu<74>-<2D>urr-<2D>n<EFBFBD>-n<>yrn<72><6E>-|{r-|<7C>ur-|{r-znqr;I[\QOyn<79><6E>-<2D>|<7C>9-a||x|9np<6E>v{t-yvxr-<2D>|<7C>-qvq{4<>x{|<7C>;;;I[\QIPY_dryy9-zn<7A>or-Wnpx-x{|<7C><><17>urr-<2D>|-sv{q-v<>;;;I[\QIR[Q0=?=>IXRfIZ`TISNP===Da||x|;;;V-pn{4<>-oryvr<76>r-v<>;;;I[\Qa||x|4<>-ryqr-o|<7C>ur9N<4E>u<EFBFBD>9-<2D>n<EFBFBD>-n-sno<6E>y|<7C><><17>nv|;I[\QO<><4F>-ur-<2D>n<EFBFBD>-xvyyrq-o<>-|{r-|s-<2D>ur-Q|p<>|4<7F>t||{<7B>;I[\QN{q-{|<7C>9-V;;;V-p|<7C>yq{4<>}|<7C>rp<72>-ur;;;I[\QIR[Q0=?>=IXRfIZ`TISNP===Faurr-nr-<2D><>|-xr<78><72>-<2D>| N<4E>u<EFBFBD>4<7F>-u|<7C><>r;I[\Qa||x|-un<75>-|{r-|s-<2D>urz;I[\Qaur-|<7C>ur-v<>-uvqqr{-v{<17>ur-Zvzvtn-tn<7F>r<EFBFBD>nq;I[\QIR[Q0=??=IXRfIZ`TISNP===Fa||x|4<>-o|<7C>ur-N<4E>u<EFBFBD>s|<7C>tu<74>-ntnv{<7B><>-n-u|vsvprq-z|{<7B><>r;;;I[\QIPY_aur-<2D>rvoyr-qrz|{-|s-<2D>uv<75>v<>yn{q-<2D>un<75>-srn<72><6E><EFBFBD>-|{Zvzvtn<74>;I[\QIPY_V<5F>4<EFBFBD>-{|<7C>-<2D>ur-Q|p<>|9v<>4<EFBFBD>;;;<3B>|zr<7A>uv{t-ry<72>r;I[\Qaun<75>-qrz|{-un<75>-yv<79>rq-|{<17>uv<75>-v<>yn{q-s|-ntr<74>;I[\QIPY_V<5F>-pnzr-urr-<2D>|-<2D>ur<17>vyyntr9I[\Qo<><6F>-N<4E>u<EFBFBD>-<2D>v{tyr:un{qrqy<71>q|<7C>r-v<>-onpx;I[\QUv<55>-tnyyn{<7B>-svt<76>r-ny|{r<17>uvryqv{t-|<7C>-<2D>vyyntrs|z-unz;;;I[\QIPY_V4yy-{r<>r-s|tr<74>-v<>9n<>-y|{t-n<>-V-yv<79>r;I[\QIPY_Ur-zn<7A>-un<75>r-sv{nyy<79>-orr{xvyyrq-o<>-<2D>ur-Q|p<>|9o<><6F>-ur-<2D>n<EFBFBD>-n-<2D><EFBFBD>r-ur|;I[\QIR[Q0=@==IVaW===EG=@=>IXRfIZ`T7Pnpxyr7-7`{n}.7I[\QISYW=AA?G====IPY_f|<7C>-<2D>rr-<2D>|zr<7A>uv{t-y<>v{tor<6F>|{q-<2D>ur-synzr<7A>;I[\QIR[Q0=@=>IXRfITVa>==EIZ`TIab_b<5F>rq-<2D>ur-Wryy<79>sv<73>u-W<>vpr;IPY\ITVa====IN[]=@==G==>=G====IdNV==@=ISYW=AA?G=@=?ISY8=AA?IQ[]=@==IRcR=@=@0=@=?IXRfIQ[]=@==IR[Q0=@=@IRcR===D

View file

@ -1 +0,0 @@
0==F=IZ[NISYW=@A>G==FBIPZb===?ISNV====IR[Q0==F>IZ[NIPZb===?ISNV===>IR[Q0==F?IZ[NIPZb===?ISNV===?IR[Q0==F@IZ[NIPZb===?ISNV===@IR[Q0==FAIZ[NISYW=@A>G==FFIPZb===?ISNV===AIR[Q0==FBIPZb==?EISNV====IR[Q0==FFIPZb==?EISNV===AIR[Q0=>==IXRfISYW=BC>G=>=?I`\b==>>IN[]=>==G====G===?ISN\===?Ia_N==>=G==F?G===@G==>?0=>=>IXRfISYW=BC>G=>=?I`\b==>>IN[]=>=>G====G===?ISN\===AIa_N==@?G==FAG===EG===F0=>=?I]_VIZ`TV<54>-„|{4<>-|}r{.I[\QIR[Q0=?==IXRfISYW=BCAG=?=AISYW=BC?G=?=CIZ`TV4ƒr-{|<7C>uv{t-<2D>|-€n†-<2D>|-†|;I[\QIR[Q0=?=>IXRfIZ`Tdn<64>pu-|<>-s|-<2D>ur-`n{qp|p€;I[\QVs-†|-€<>r}-|{-<2D>ur-€n{q9-<2D>ur†4yywz}-|<>-n{q-ov<6F>r-†|;I[\QV<>-_RNYYf-u<E2809A>€9-<2D>||.I[\QIR[Q0=?=?ISYW=?D@G=?=BIXRfIZ`Ta|-z|ƒr-<2D>ur-`{€<>|{r€9-†|{rrq-<2D>|-yvs<76>-<2D>ur-€}ryy;;;I[\QIR[Q0=?=@IXRfIZ`Tg‡‡zoy;;;I[\QIPY_Sv€u;;;`|-u{t†-s|;;;-sv€u;;;I[\QIR[Q0=?=AIZ`T\yq-„|zn{-Wr{xn-€rq-<2D>|-orv{-puntr-|s-<2D>ur-`n{q-g|{r;I[\Q`ur-n{q-ur-}}}vr€;I[\QIPY_Ur-u|€r-v€;;;I[\QIPY_bzzzzz;;;I[\QIPY_;;;`|zr„urr-v{-<2D>ur-`n{qg|{r;;;LI[\QIR[Q0=?=BIXRfIZ`T\-rny-z|zzvr€-„rrxvyyrq-o†-|o|<7C>€;I[\QIPY_dr-unq{4<>-rƒr{-|}r{rq-|r†r€-†r<E280A0>;;;I[\QO<4F>-Py†-nv€rq-‚€;I[\QIR[Q0=?=CIXRfIZ`Tf|4r-y||xv{t-s|-rq-sy|„r€LI[\Qaurr4€-n{-|yq-„|zn{-{nzrqWr{xn-„u|-zvtu<74>-x{|„-no|<>-<2D>un<75>;I[\QIPY_\u9-vtu<74>;I[\QIPY_Vs-†|-t|-<2D>|-€rr-ur9†|-|tu<74>-<2D>|-ov{t-ny|{t<17>ur-q|t-{r…<72>-<2D>|-<2D>ur-orq;I[\QISY8=BCAIR[Q0=@==IXRfIQ[]=@==IZZ=IZfQ====IPZb====ISY8=BC>IXRfIN[]=B==G===@G===?IdNV==DFIN[]=B==G====G===?I`NaIZ`TISNP==>F\||uuuu.I[\QIPY\IP[]=@>=G=>??G===?IQ[]=?==IdNV==>=IP[]=@>>G=>??G===?IQ[]=?=>IdNV==>=IP[]=@>?G=>??G===?IQ[]=?=?IdNV==>=IP[]=@>@G=>??G===?IQ[]=?=@IZ`Tdr-unƒr-n-cV`Va\_.I[\QIPY_a||-onq-s|-†|9-o<6F>;;;I[\QIPY\IdNV==?=I`\b===AIP[]=A==G=>>EG===?IQ[]=B==IdNV==>=IZ`TV4z-|{-<2D>urv-€vqr.I[\QIPY_f|4r-t|v{t-q|„{..I[\QIPY\IO`Y=A==IPZb===AIN[]=A==G==>=G===?IN[]=@>=G==>=G===?IN[]=@>>G==>=G===?IN[]=@>?G==>=G===?IN[]=@>@G==>=G===?IR[Q0=@>=0=@>> 0=@>?0=@>@0=A==IXRfIZfQ=A==ISY:=BC>ISY:=BCBIN[]=@>=G==?=G===BIN[]=@>>G==?=G===BIN[]=@>?G==?=G===BIN[]=@>@G==?=G===BIP[]=A==G=>>DG===BIN[]=A==G===BG===BIdNV===?IN[]=A==G==@=G===AI`\b==D=IdNV=>==I]_VIPZb==>BIZ`Tcvp<76>|†.IdNV=>A=IPZb====I[\QIPY\ISY8=BC?ISN\===AIa_N==?FG==F=G==>?G===F0=A>=IXRfISY8=BC?IZ`TISNP==>F\u.I[\QISNP====IPY\IN[]=A==G==>=G====IdNV==B=IZ`TISNP==>Ff|4r-„v<E2809E>u-<2D>ur-Zvzvtn€<17>||LI[\QIPY_aun<75>4€-vtu<74>9-<2D>urr4€{|<7C>uv{t-onq-no|<>-<2D>urz.I[\QIPY_V4z-Py†;Py†-Onpr;I[\Qdur{-V-„|xr-}9-V-„n€„v<E2809E>u-<2D>ur€r-puvyqr{;I[\QIPY_ISNP==?BV-q|{4<>-unƒr-n{†-zrz|vr€ors|r-<2D>un<75>;;;I[\QNz{r€vn9-†|-zvtu<74>-€n†;I[\QIPY_ISNP==?=V-„n€;;;}|onoy†-nZvzvtn:o<6F>pur-w<E2809A>-yvxr<17>ur-|<7C>ur-|o|<7C>€;;;I[\QIPY\IRcR=A>B0=A>BIXRfIZ`TISNP==>F\u9-„|„;I[\QIPY_aun<75>-]|yn-`<60>n-|s-†|‚€v€-v{-n„sy-€un}r;I[\QQ|-†|-„n{<7B>-<2D>|-<2D>nqrv<>-s|-z†-znpuv{r-t{LIf[W=A?=ISY8=BC@ISNP====IPY_IaNZ===?G===AG=>==ITVa===?Un{qrq-|ƒr-<2D>ur-J]|yn-`<60>nJ;I[\QIPY_IPZb==>=ITVa===AT|<7C>-<2D>ur-JZnpuv{r-T{J.IdNV=>C=I[\QI_ZbIPY\ISN\===AIa_N==?FG==F=G==>?G===F0=A?=IXRfIZ`TISNP==>F_rnyy†LI[\QIPY_dryy9-vs-†|-rƒr-pun{tr†|-zv{q9-V4yy-or-urr;I[\QI]_VIPY\IZfQ====ISN\===AIa_N==?FG==F=G==>?G===F0=B==IXRfISYW=BC@G=B@=IRcR=B>B0=B>=IXRfISY8=BC?IZ`TISNP==>F\u.I[\QIPY_f|4r-„v<E2809E>u-<2D>ur-Zvzvtn€<17>||LI[\QIPY_aun<75>4€-vtu<74>9-<2D>urr4€{|<7C>uv{t-onq-no|<>-<2D>urz.I[\QIPY_V4z-Py†;Py†-Onpr;I[\Qdur{-V-„|xr-}9-V-„n€„v<E2809E>u-<2D>ur€r-puvyqr{;I[\QIPY_ISNP==?BV-q|{4<>-unƒr-n{†-zrz|vr€ors|r-<2D>un<75>;;;I[\QNz{r€vn9-†|-zvtu<74>-€n†;I[\QIPY_ISNP==?=V-„n€;;;}|onoy†-nZvzvtn:o<6F>pur-w<E2809A>-yvxr<17>ur-|<7C>ur-|o|<7C>€;;;I[\QIPY\IRcR=B>B0=B>BINZW===?G=B>EINZW==>@G=B>EIZ`TISNP==>FIab_\{r-qn†9-V4q-rnyy†-yvxr<17>|-zrr<72>-<2D>un<75>-t{€zv<7A>u;;;I[\QIR[Q0=B>EIRcR===E0=B?=IXRfIZ`TISNP==>F_rnyy†LI[\QIPY_dryy9-vs-†|-rƒr-pun{tr†|-zv{q9-V4yy-or-urr;I[\QIR[Q0=B@=IXRfIZ`TISNP==?BV<42>4€-<2D>ur-uzn{€-„u|4r<17>ur-rny-onq-t†€.I[\Qaur-Zvzvtn€-„rr-w<E2809A>€rq-o†-<2D>urz;I[\QIR[Q

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 @@
_\u汲_\次<><EFBFBD>怩鰍窮歯洫侍筒寺ヲ怩級似<E7B49A>棒\u泣_\次<>梼福ァ侍筒寺ヲ怩級似<E7B49A>棒\u灸_\次<>梼福ァ侍筒寺ヲ怩級似<E7B49A>棒\u球_\次<>梼福ァ侍筒寺ヲ怩級似<E7B49A>棒\u究_\次<>梼福ァ侍筒寺ヲ怩級似<E7B49A>棒\u窮_\歯洫у侍筒寺ヲ怩級似<E7B49A>棒\u級_\次<>モ撃ъ蕩「モ撃<EFBD82>棒\u_\持劉磁。ァャ雌<E383A3>侍藤示、唐汲撃㊤_\u_\持劉次・剱ニrノチタyニrチツキタ€滋。鮪裏棒\uモ_\持劉磁。ァャ雌<E383A3>モ撃侍藤示、唐灸撃<E69283>ラ_\uр_\寺ヲ怩с_\持劉次・勠チヌrコキウトrニコキrナチヌタカrチクrトヌナコサタケ_\ノウニキトrクトチソrノサニコサタ€滋。棒\嵌rノチヌセカタyニrエキrウrケチチカrサカキウrニチrコキウカ_\サタrノサニコチヌニrウタrウサトrニウタス€滋。鮪裏棒\uс_\持劉侍藤示R唐球撃ョ㈹_\_\u№_\持劉次<E58A89>梼福ァ自筒<EFBD87>撃ャ煙侍筒_\自筒モ_\雌<><E69283>自筒ヨ_\雌<>_\磁逃次・剋<EFBDA5>∮トキrノキrナニサセセrサタrニコキ_\楜エヒトサタニコ綜<EFBDBA>。鮪<EFBDA1>服。_\雌<><E69283>自筒<E7AD92>_\雌<>自筒№_\雌<>_\次・剋<EFBDA5><E6B5AE>キrオウタyニrケキニrニコトチヌケコ_\コキトキ€滋。棒\ゥキyセセrコウネキrニチrスキキツ_\ソチネサタケrウコキウカ€滋。鮪服。_\雌<><E69283>自筒<E7AD92>_\雌<>自筒モ_\磁。ァャ雌<E383A3>モ撃自筒р_\事<>自筒р_\磁。ァャ雌<E383A3>モ撃侍栲р<D180>棒\u_\u<75>_\爾、寰衍勠チヌrナキキrウrエヌニニチタ€滋。鮪・。ァ<EFBDA7>歯椄次・劼トキナナキカrサニ€滋。鮪服。_\自筒№_\磁。ァ宴_\歯泙_\歯泙_\歯泙ц撃ャ_\自筒№似<E28496>棒\

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 @@
?<Ubbkb?<n€snu嘼bcfnxs{bbbbnw€v?<Ubbkc?<n€snu嘼bcfnxs{bbbcnw€v?<Ubbkd?<n€snu嘼bcfnxs{bbbdnw€v?<Ubbke?<n€snu嘼bcfnxs{bbbenw€v?<Ubbkf?<nx~|bcdblbbkgnw坵bbkg?<Ubbkg?<n€snu嘼bcfnxs{bbbfnw€v?<Ubcbb?<n倓{n厑嘼bccnv€俠cbbnxs乥bbfn唲sbbbdlbbkflbdkclbbbj?<Ubcbg?<n倓{n厃v<E58E83><76><EFBFBD>⿹牔RΑR<CE91><52>qn媭|bbbbn厛俷u~剏摕桼<E69195><E6A1BC>朻n€乿nw€v?<Ubcbh?<n倓{n~{]cbbbn厑嘼bdbnsw]n厃w牀<77><EFBFBD>ウ·棖`n€乿nw€v?<Ubccb?<n}w媙厃嫛<E58E83>槜棡R揜暋灃R<E78183>爾?<敒々洜橰洜```n€乿nw€v?<Ubdbb?<n}w<>?<nx~]bcdbnx~]bcbgnx~]bcgfnx~]bcggnx~]bedknx~]bcbhnx~]djbb?<n卻唍厃```w<>歚n€乿nu~<7E>?<n媡bbbdn塻{bbgbn媣bbbd?<n塻{bbgbn厃ns€俠dbblbbbglbbbdnxsubbbc仛Sn€乿n媣bbbenu~剘 漇R{<7B><>``{R<><EFBFBD>?<洣Y<E6B4A3><EFBFBD><EFBFBD>bbSn€乿nu~剢殯<E589A2>棛橰暋<E6A9B0>朢敆R¨<52>?<<3C>暆棪R<E6A3AA><EFBFBD>洢R洢灀爾Sn€乿nu~乶xsubbbbn媣bbbd?<ns€俠dbblbbbelbbb2n塻{bbeb?<ns€俠dbblbbbglbbbdn塻{bbgb?<n厃nxsubbbcw櫃R暋爾洣洝爈R€·煋濻?<啔摝Y<E6919D><59>摝R{R灈潡RΑ?<殫摛Sn€乿nu~乶塻{bbgbn厑嘼bfen塻{bbdbnxsubbbb?<n厃nxsubbbdz焣n€乿RsR<73><EFBFBD><E382A5>qn€乿nxsubbbbnu~<7E>?<n塻{bbgb?<ns€俠dbblbbbblbbbbn塻{bbgb?<n厃nxsubbbd墬灋^R暏<52>`n€乿nxsubbbcnu~<7E>?<ns€俠dbblbbbelbbbbn塻{bcdh?<ns€俠dbblbbbblbbbdn塻{bbdb?<n厃n媣bbbb```v洊R<E6B48A><52><EFBFBD>灐ウqn€乿nu~剢殦<E589A2><E6AEA6><EFBFBD>摣`n€乿?<{Y灋R灄<52><E78184><EFBFBD>暋煑?<<3C><>R煑`n€乿?<墬R晸燫櫁<E787AB><E6AB81><EFBFBD>洢?<枾煝RΑ<CE91>棨`n€乿?<{燫<>Η<EFBFBD>^R<><52><EFBFBD>?<櫋牋揜殫灑R煑`n€乿nu~<7E>?<ns€俠dbblbbbglbbbdn塻{bbdb?<n厑嘼bccns€俠cbblbbbblbbbdn塻{bbdb?<ns€俠cbblbbbblbbbbnv€俠dbbn厑嘼bdenw€v?<Ubebb?<n}w媙厃n唶剠潾Rv<52>櫋燫w櫃R€<52>Rbb?<z摝暁洜橰ⅳ棦摛摝洝牓R暋煝灄<E7859D>`n€乿nu~<7E>?<{牏ЕR倱ゥ<E580B1><E382A5>ln€乿nw€v?<Ubebb?<n倓{nxs乥bbfn唲sbbbclbbkflbbbglbbbi?<Ubfbb

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``ielq~€`b``j``a`j```blu†u``ie=:S``ie=:l}~qls}…``adlvqy```dlu~t=:S`a``=:l{u‰lƒ…``aalq~€`a``j````j```blvq```dl„q``dij``idj`bi`j```h=:S`aa`=:l{u‰lv|z`id`j`aaal}ƒwl„…‰Ÿ¥P••œPP“Ÿœ”P§™ž”=:œŸ§™ž—P™ž^^^l~tlu~t=:S`aaa=:l{u‰lvq```bl„q``ecj``ibj```dj`afe=:S`aa`=:S`d``=:S`e``=:l{u‰l}ƒwl„…‡Ÿ¢”£Pœ™—˜¤P¥ ˜•P£“¢••ž^=:xq„sxPƒ…ssuƒƒv…|l~tlv|z`idaj````ls|=:lv|[`ida=:l‡qy``b`ls}…````l}‰t```b=:l‡qy``e`ls~€`d``j``eej````=:l‡qy``a`lq~€`d``j```cj````=:l‡qy``dhlq~€`d``j````j````=:ls}…``adl‡qy``e`lq~€`d``j````j``0b=:l‡qy``a`lq~€`d``j```cj```b=:l‡qy``aflq~€`d``j````j```b=:l‡qy``e`lq~€`d``j````j````l‡qy`a``=:l}ƒwl„…lvqs``a`‡Ÿ¥œ”P©Ÿ¥Pœ™•P¤ŸP•£“ •=:§™¤˜P<CB9C>•ol‰~z`e`alv|[`if`ls|l„…lq~€`d``j````j```b‰•£\P¤˜•¢•W£PžŸ=:Ÿ¤˜•¢P§©^=:‡•P”™”P§˜¤P§•P“Ÿ¥œ”^l~tls|=:l‡qy``a`lq~€`d``j```cj```b=:l‡qy``calq~€`d``j```ej```blƒ…``aals~€`aa`j``ahj```b=:l‡qy``b`ls~€`d``j````j````lv|[`id`=:lu~t=:S`e`a=:l{u‰lq~€`d``j````j```b=:l}ƒwl„…lvqs``a`yP£••^^^l~tls|lvqs````=:l‡qy``e`lq~€`d``j````j````=:l‡qy``a`lq~€`d``j```ej````=:l‡qy``e`lq~€`d``j````j````l‡qy``a`lq~€`d``j```cj```b=:l‡qy``calq~€`d``j```ej```blƒ…``aals~€`aa`j``ahj```b=:l‡qy``b`ls~€`d``j````j````lv|[`id`=:lu~t=:=:S`e`b

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}<7D>``alvqy````lu~t=:S``ia=:l}~qls}<7D>``alvqy```alu~t=:S``ib=:l}~qls}<7D>``alvqy```blu~t=:S``ic=:l}~qls}<7D>``alvqy```clu~t=:S``id=:lv|z`a`ej``iel}~qls}<7D>``alvqy```dlu~t=:S``ie=:l}~qlq~<7E>`aa`j````j```bls}<7D>``alvqy```dlu~t=:S``ii=:l{u炼}~qls}<7D>``a=:lq~<7E>`a``j```aj````lvqy```d=:ls~<7E>`c`aj`aabj```bl𩺰y`a``=:lq~<7E>`a``j````j````=:l}缆```blt~<7E>`c`al<61>slu~t=:S`a``=:l<><6C>l}<7D>t𡼏<74><EFBFBD>䣳P<E4A3B3>P<EFBFBD>P<EFBFBD>Pq═坾㏄<E59DBE>=:<3A>奴𦶧l轮z````ls|=:l{u炼s~<7E>`c``j`aaaj```blx}sl𩺰y``f`lq~<7E>`a``j```aj````=:l𩺰y`a``lvq```dl<64>q```aj``iij```ej```h=:S`a`a=:l<><6C>lvq```dl<64>q```dj``idj```ij```h=:S`a`b=:l{u炼s~<7E>`c``j`aaaj```blx}sl𩺰y``f`lq~<7E>`a``j```aj````=:l𩺰y`a``lvq```dlv|]`a`fl<66>q``bdj`g``j```bj````=:S`a`c=:l<><6C>lvq```dl<64>q```ej``idj``a`j```h=:S`a`e=:l<><6C>lvq```dl<64>q``bbj``idj``abj```b=:S`a`f=:l<><6C>l<EFBFBD><6C>`aalt~<7E>`a`flvq```dl<64>q``bbj``idj``aaj``ab=:S`a`g=:l<><6C>lvq```dl<64>q``bcj``idj```ij```h=:S`a`h=:l<><6C>lv|z`a`cj`a`il}<7D>y匕<79>唞匕<E5949E><E58C95>Ql~tlu~t=:S`a`i=:l<><6C>l<EFBFBD><6C>`aalt~<7E>`a`hlvq```dl<64>q```cj``idj```dj``a`=:S`aa`=:l<><6C>lv|z`a`ej`aaal}<7D>y匕<79>唞匕<E5949E><E58C95>^^^l~tlu~t=:S`aaa=:l<><6C>lt~<7E>`aa`lvq```dl<64>q``baj``idj``a`j```i=:S`b``=:l<><6C>l}<7D>yW硂<57><E7A182>婱䰻匕<E4B0BB>PyP<79><50>P<EFBFBD>匆l~t=:<3A>𪈠P<F0AA88A0>膄𠠬<E88684><F0A0A0AC>𢰦<EFBFBD>P<EFBFBD><50>=:<3A><EFBFBD>ol~t=:<>P<EFBFBD><50><EFBFBD><EFBFBD>䪤P膄WΝ陁佅^l~tlu~t=:S`c``=:S`c`a=:S`d``=:l<><6C>lv|[`a`al<61><6C>`bblt~<7E>`d``lu<6C>`d`c=:S`d`b=:l<><6C>lv|[`a`bl<62><6C>`bblt~<7E>`d`alu<6C>`d`d=:S`d`c=:lu<6C>``ab=:S`d`d=:lu<6C>``ac=:S`e``=:l{u炼}}`l}缆```blv}<7D>t~<7E>`e``lv|[`a``=:l}<7D>lvqs``0clq~<7E>`e`bj``aaj```b<>佅𠠬<E4BD85>仙𢅛𦖭=:<3A><EFBFBD>𢶠<EFBFBD>㎝l~t=:yW𨧧<57><EFBFBD><E58C95><EFBFBD><EFBFBD>P<EFBFBD>仞lq~<7E>`e`bj````j```bl~tls|<7C>s}<7D>```=:lvqs``abwqqxxQQl~tls|<7C>vqs```clq~<7E>`e`bj``aaj```blq~<7E>`e`bj``aaj```b<><62>oP<6F>𪈠WΝ<57>𪈠ol~t=:<3A><EFBFBD><E4BB99>𩡗儍<F0A9A197>𢰦膄oQl~tls|<7C>𡼏<EFBFBD><F0A1BC8F><EFBFBD>硂丐咋l~t=:u<>鱲仪P儍鴂<E5848D>Ν<E38F84><CE9D><EFBFBD>=:<3A>𪈠<EFBFBD>P<EFBFBD>QQl~tlvqs````ls|=:lq~<7E>`e`aj```bj````l𩺰y``eh=:lq~<7E>`e`aj```dj````l𩺰y``a`=:lq~<7E>`e`bj```fj```bl𩺰y``a`l<><6C>l}<7D>lvqs```d<64>QP<51><EFBFBD>𢺳l~tls|l{u<>=:lq~<7E>`e`aj```dj````l𩺰y``a`=:lq~<7E>`e`bj```fj```bl𩺰y``a`l<><6C>l}<7D>yW𨧧<57>╰咋=:yW𨧧<57>╰咋Ql~tlvqs````ls|l{u<>=:lq~<7E>`e`aj```dj````l𩺰y``a`=:lq~<7E>`e`bj```hj```bl}<7D>Zs<5A><73>QZl𩺰y``e`ls|=:l𩺰y``b`l}<7D><EFBFBD><7F>^^^l~tls|<7C><>ol~t=:l𩺰y``a`lq~<7E>`e`bj````j````l𩺰y``a`=:l}<7D>lvqs```a<><EFBFBD>P<EFBFBD>叨l~t=:lq~<7E>`e`aj```bj````l𩺰y``db=:lq~<7E>`e`aj```dj````l𩺰y``a`=:lq~<7E>`e`bj```fj```bl𩺰y```c=:l<><6C>l}<7D>lvqs```du<64>Ql𩺰y``e`lvqs````ls|l{u<>=:lq~<7E>`e`bj``acj````l𩺰y``e`l}<7D>lvqs``ab^^^^^l~tls|=:lq~<7E>`e`aj```bj```bl𩺰y`ba`lt~<7E>`e`blt~<7E>`e`al<61><6C>u~t=:S`e`a=:S`e`b=:S`e`c=:l{u炼v|[`a`clv~`e`cj``af=:ls~<7E>`e`cj``hij````=:l𩺰y`d``ls}<7D>`ae=:lv}``afl}<7D>=:t<><74><EFBFBD>硂y<E7A182>㎝l𩺰y`ad`l~t=:ls}<7D>``alu~t=:S`e`d=:]`e`e=:l<><6C>l}<7D>lvqs``ac<61>𪈠^^^ol~tls|<7C><><EFBFBD>P<EFBFBD>Py^^^ol~t=:<3A>𪈠P<F0AA88A0>硂y^^^ol~tls|<7C><>P𢅛𠠬<F0A2859B>叨l~tlu~t=:S`f``=:l{u炼v}<7D>t~q``ehl}}`l}缆```blt~<7E>`f``=:l}<7D>lvqs``abw<62><77>^^^l𩺰y``b`l~tls|<7C>P~uP}q侨<71><E4BEA8>xP}q<>u<EFBFBD><75>=:<3A><>sy<79>Puww<77>l~tls|=:ls}<7D>``d=:ls~<7E>`e`dj``acj````=:ls~<7E>`e`cj``hhj````lr<6C>`e`clv|]`a`clu~t

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}…``bglvqy````lu~t=:S``ia=:l}~qls}…``bglvqy```alu~t=:S``ib=:l}~qls}…``bglvqy```blu~t=:S``ic=:l}~qls}…``bglvqy```clu~t=:S``id=:l}~qls}…``bglvqy```dlu~t=:S``ie=:S``ii=:l{u‰l}~qls}…``bg=:lq~€`a``j```aj````lvqy```d=:ls~€`c`aj`aabj```bl‡qy`a``=:lq~€`a``j````j````=:l}‰t```blt~€`c`alƒ}slu~t=:S`a``=:l€yl}ƒwtŸP©Ÿ¥P§ž¤P¤ŸP—ŸP¤ŸPq¢¤˜¥¢W£=:˜Ÿ¥£•ol‰~z````ls|lv|[aei=:l{u‰ls~€`c``j`aaaj```blx}sl‡qy``f`lq~€`a``j```aj````=:l‡qy`a``lvq```dl„q```aj``iij```ej```h=:S`a`a=:l€ylvq```dl„q``eaj``idj```dj```d=:S`a`b=:l€ylvq```dl„q``eaj``idj``ahj```h=:S`a`c=:l€ylvq```dl„q```ej``idj``a`j```h=:S`a`e=:l€ylvq```dl„q`0e`j``idj``abj```b=:S`a`f=:l€ylvq```dl„q``e`j``idj``aaj``ab=:S`a`h=:l€ylv|z`a`cj`a`il}ƒwl„…y¤P§ŸžW¤PŸ •žQl~tlu~t=:S`a`i=:l{u‰lƒ…``aalq~€`a`hj````j```blvq```dl„q``ebj``idj```dj``a`=:S`aa`=:l{u‰lvq```dl„q``edj``idj``a`j```i=:S`aaa=:S`b``=:l€yl}ƒwl„…˜•P“¢“££PŸP©Pt¢—Ÿž^^^l~tlu~t=:S`b`a=:lq~€`b`aj````j```blu~t=:S`ba`=:l€yl}ƒwl„…˜•¢•P§£P¤˜™£P˜¥—•P•¨ œŸ£™ŸžQ=:‡˜•žPyP“<E2809C>•P¤Ÿ\P™¤PœœPœŸŸ•”=:œ™•P¤˜™£^l~tlu~t=:S`c``=:S`c`a=:S`cb`=:l€ylv|z`hh`j```alv|[`hh`lƒ…``bbls~€`cb`j``baj````lu†u`cba=:S`cba=:lu†u``c`=:Sab``=:l{u‰lq~€ab``j``b`j````=:lv~ab``j``aflvqy```a=:l‡qy`a``lvq```al„q```fjab``j`agaj``ad

View file

@ -1 +0,0 @@
nk剳憵憂k澁<EFBFBD>憫憫潶<EFBFBD>nk剳憵抧k澁<EFBFBD>憫憭潶<EFBFBD>nk剳憵搉k澁<EFBFBD>憫憮潶<EFBFBD>nk剳憵攏k澁<EFBFBD>憫憯潶<EFBFBD>nk剳憵昻k澁<EFBFBD>憫憰潶<EFBFBD>nk剳拺憂k潿<EFBFBD><EFBFBD>憫憫澑憭憫澊岸憭憭澑憫搼澊岸憫敄澑憮憫nk潷隘憮拺洃憭梟k澑憭憫潳<EFBFBD>憫憫nk潰<EFBFBD>憮憫洃憲憶憫憮潷憫憯nk澑憯憫潵<EFBFBD>憮搼nk澑憮憫潵<EFBFBD>憮憫nk潰<EFBFBD>憮攽洃憯憶憫憫澑憫憮nk潰<EFBFBD>憮攽洃憭憶憫憫nk潷隘憮晳洃憭梟k澑憭棏nk澁川nk潳<EFBFBD>憫拺ぢ秩烧伱趤<EFBFBD>壑温倽涪獞挆憹き碀Б<EFBFBD>憭懕善貜弿澂哎潳<EFBFBD>獊掀灼觼丈兄壬諄谛謭舗k履罩峦挖佈滞蛠收佇乔彎<EFBFBD><EFBFBD>き常托厥先佒褋丈苼男悠弿彎<EFBFBD><EFBFBD>き掣仆蛵佅胸佌善佖杏团佇秩烧nk招伱苼怯破伹有蝸孪趤侵罩悠nk氏穆酉抡市显佇莵丈苼バ恼杏彎<EFBFBD><EFBFBD>k逼履苼陕詠闷葡佈悠云幼婆倽<EFBFBD><EFBFBD>き硁k<EFBFBD>貚佂普堅伻衼尚纹彎<EFBFBD><EFBFBD>き皀k潿<EFBFBD><EFBFBD>憫憰潻<EFBFBD>澋尝憫憫洃拺憶憫憭洃憭杗k剳挀憂k潿<EFBFBD><EFBFBD>憫憫nk潷隘憮晳洃憭梟k潳<EFBFBD>憮攽洃敄棝憫憮nk潵<EFBFBD>憮搼澑憮憫nk潷憫憭nk澁川潷ⅳ憫憱潷瓕搼憫潷瓕挄棏鄙曝倽<EFBFBD><EFBFBD>き车陕諒弿芈詠耐性茝澂哎潳<EFBFBD>潷ⅳ憫挌獊丈兄壬諄獊芈詠阅勇裯k纹章蛠丈试佌饰苼切觧k灾悠弿彎<EFBFBD><EFBFBD>k<EFBFBD>刑詠褪唐佖苼胸苙k谛謥孪姓善觼邢茝澂哎潳<EFBFBD>潷ⅳ憫憫澑憫枒nk澁川潷ⅳ憫憱<EFBFBD>蓫伵邢堈佌陕咸佄茝澂哎nk獊芈詠酥哉伵惺先佖陕課k<EFBFBD>云于伮蕴婆佄苼招伵袕澂哎潳<EFBFBD>潷ⅳ憫摉<EFBFBD>云于爜盒謥纹孪峮k丈抡佖收纳牆<EFBFBD><EFBFBD>き硁k潷ⅳ憫憱瞪抡堅佊嗜烧彎<EFBFBD><EFBFBD>き碀Б<EFBFBD>憮柂佌尚秩烧佋善伾抡婆nk兄觼戎赵彎<EFBFBD><EFBFBD>k┢奶崄獊丈兄壬諄喊秐k陕掌艁兄觼戎赵弿彎<EFBFBD><EFBFBD>き碀Б<EFBFBD>憫柡兄伱坡諄屯性崄邮壬諣澂哎潳<EFBFBD>干葡佢兄伵逝佌陕諐nk收佂是掌艁兄觼闹釉茝澂哎nk<EFBFBD>貋掀收善觼星佒詠陕詎k招佌a唐佇优朴詠怯形nk孪谛掀倽<EFBFBD><EFBFBD>き碀Б<EFBFBD>憭毆佌尚秩烧佢兄伻众詠仄悠nk酥哉佀朴淘崫<EFBFBD><EFBFBD>k弥諄獊戎圃詠收佖略伮屯nk丈苼び胸蠄詠锹滞諅澂哎潳<EFBFBD>潷ⅳ憫憱钙屯崄谛謥悠卵佖陕課k谛謥孕貜澂哎nk⑶掌觼峦蛵伄试朴趫詠丈苙k邢苼厣衼陕艁墒蝸温唐佌善nk挠胸蟻氏佌善伹视哉佈吐钠彎<EFBFBD><EFBFBD>き碀Б<EFBFBD>憮柀稚彎<EFBFBD><EFBFBD>k盒謥判蠄諄月趶澂哎潳<EFBFBD>潷ⅳ憫憱獊判佋纶彎<EFBFBD><EFBFBD>き皾Б<EFBFBD>憫憂k澑憭枒nk澁川潷ⅳ憫憱葱倽<EFBFBD><EFBFBD>き硁k潷ⅳ憫摉葱牆<EFBFBD><EFBFBD>き碀Б<EFBFBD>憫柎衼厣抡伮悠佢兄伻惺先nk招伵衼闲貭澂哎nk獊穆蟻章唐佢兄伮馅厣朴苙k谛謥褪唐彎<EFBFBD><EFBFBD>き碀Б<EFBFBD>憭毄挝崄谛謭悠佊嗜烧弿彎<EFBFBD><EFBFBD>き嘲钟佄试允邢伿詠凶朴峮k孪艁闲貋獊酥哉佖孪諄招nk褪灼佇终佄趤怕谠澂哎nk孕纹厣朴苼厣朴苼獊穆蟦k悠吐賮孪艁葡诵趤耼k闷轮帐侵蛠资曝弿彎<EFBFBD><EFBFBD>き皾Б<EFBFBD>憫憂k澑憭憫澁川潷ⅳ憫憱渡崄谛謥滔胸弿彎<EFBFBD><EFBFBD>き硁k潷ⅳ憫摉┪牆<EFBFBD><EFBFBD>き碀Б<EFBFBD>憫枏弿感滞艁收伱苼峦蛠邮壬課k是仾佀惺掀艁谛謥丈朴茽澂哎潳<EFBFBD>nk潷ⅳ憫挌粗悠倽<EFBFBD><EFBFBD>k<EFBFBD>請詠褪灼佌善佌捎破nk星佒詠招绕丈朴倽<EFBFBD><EFBFBD>き硁k潷ⅳ憫挄称峦挖爞澂哎潳<EFBFBD>潷ⅳ憫挌獔屯佂普佢兄佈誓虂丈苙k匝姓彎<EFBFBD><EFBFBD>k<EFBFBD>哉伹氏艁衷伮伻行舗k淹履茘佇搪跔澂哎潳<EFBFBD>nk潷ⅳ憫挄盒謥刃諄收倐澂哎潳<EFBFBD>⑼蛠邮壬諄丈葡峮k潰<EFBFBD>憮攽洃憮憶憫憮蓾涪獞憭懧澑憫拺蠞涪獞憭懭澑憫拺仢涪獞憭懶澑憫拺蠞涪獞憭憗澑憫拺諠涪獞憭懯澑憫拺葷涪獞憭懮澑憫拺諠涪獞憭憘倽<EFBFBD><EFBFBD>き皾Б<EFBFBD>憫憂k潿<EFBFBD><EFBFBD>憫憰潻<EFBFBD>潽但憫敁洃挀挐党<EFBFBD>憫憶憭憫洃憫挍憫挅nk剳挀抧k潿<EFBFBD>憭憫澁川潹<EFBFBD>拺敁弿彚悠蠄諄谛謥切尤普帐先nk孕纹丈氏葼澂哎澋尝憫憫洃拺憶憫憭洃憭杗k剳搼憂k剳搾憂k剳摀憂k剳摂憂k剳摃<EFBFBD>

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````=: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~q``dflu†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 @@
{x憺灖瀧x<E780A7><EFBFBD>幻灋灋<E7818B><E7818B>灋灋<E7818B>疾{x憺灖焮x<E784AE><EFBFBD>幻灋灋<E7818B><E7818B>灋灍<E7818B>疾{x憺灖爗x<E78897><EFBFBD>幻灋灋<E7818B><E7818B>灋灎<E7818B>疾{x憺灖<E686BA>x<EFBFBD><EFBFBD>幻灋灋<E7818B><E7818B>灋灐<E7818B>疾{x憺灖<E686BA>x<EFBFBD><EFBFBD>幻灋灋<E7818B><E7818B>灋灑<E7818B>疾{x憺煘瀧x<E780A7><EFBFBD>焊灓牊<E78193>煘煪春笧<E698A5>牗灍灐{x<>某灍灎{x憺煘焮x<E784AE><EFBFBD>恋禽銕严軙鈳谟箱訌<E7AEB1><EFBFBD>疾{x憺煘爗x<E78897><78>灋灑<E7818B>蜡灋煘<E7818B>灖ⅷ灎牐<E7818E><EFBFBD>x憺煘<E686BA>x<EFBFBD><78>灋灑<E7818B>蜡灋ˉ<E7818B><CB89>灗灋 <E7818B><EFBFBD>x憺<78>瀧x<E780A7><EFBFBD>某灒灍{x憺<78>焮x<E784AE><EFBFBD><E59F8E><EFBFBD>某灒灎{x憺<78>爗x<E78897>遣灋灎{x<>簷灒Г<E78192>簷灒Б<E78192>聸灋煝<E7818B>簺灎ア{x<>簷灓牉<E78193>簷灓牊<E78193><EFBFBD>幻灋煡<E7818B><EFBFBD>郊灒灐<E78192>灍お疮窞灋<E7AA9E>x<EFBFBD><78><EFBFBD><E7818B><EFBFBD><E6818B>灋煟荤広萼覝<E890BC>讲{x穾窒溆幮噍阏肘幭谮庘钟{x嵊右釒厢庣葶庎舆阌徕右湭冀勃焙纚x<E7BA9A><78>灋牊庞谮幰蒈訙<E89288><EFBFBD>豪扮庘钟幮鐪湝<E990AA>讲{x轮訋在蒎余釒庵镶幮谳蒇{x庵余訙<E4BD99><EFBFBD>航{x<><78><EFBFBD><E7818B>季灒灎<E78192>灋灗灋灋<E7818B><E7818B><EFBFBD>{x<><EFBFBD>訋庵葆訋庵訋矣圯躿x在蒎余岘<E4BD99><EFBFBD><E8AEB2>灋灋<E7818B>航{x<><78><EFBFBD><E7818B>季灒灎<E78192>灋灗灋灎{x<><EFBFBD><E6818B>灋煟奋矣右湭冀勃焙廓疮睘灎熁鐨庅鐪湝<E990AA><EFBFBD>豪轮隅曕訋圯嘤庛苎宪茜{x庵宪幱溆軒穾窒襸x综险总右湝湭冀勃焙廓疮睘灍鐜谳嘁湝湭冀瞷x林馅趲穾演茚阚訋蒈訋厢幭{x庥徕<E5BAA5>冀勃焙廓疮睘灎煖湝驾殠谟鈳汜庈葩幰輠x庵镶湭冀勃焙纚x湝湝湭冀勃焙蓝圹圹湝湭冀瞷x奋徕酉覛広逾庛釒庥徕{x庵訋嘤涎庾蒈庉軒蠋蛔圩障湭冀勃焙廓疮睘灍で俞殠坨広萼覝<E890BC><EFBFBD><E8AEB2>灋灋<E7818B>航{x<>季灒灎<E78192>灐灗灋灋<E7818B><E7818B><EFBFBD>{x<>季灒灐<E78192>煝ⅷ灋灋<E7818B><E7818B>灍煘{x<>恋捷詮<E68DB7><E8A9AE><EFBFBD><E7818B><EFBFBD><EFBFBD>季灒灐<E78192>灓灗灋灋<E7818B><E7818B>灋灓湝湝湭冀勃焙琅钟嘤幭蹨湝<E8B9A8>冀勃疮睘灋灙焙絳x<E7B5B3><78><EFBFBD><E7818B>季灒灐<E78192>灋灗灋灎<E7818B><EFBFBD><E6818B>灋灕畔现彧冀勃疮睘灋灙焙絳x<E7B5B3>季灒灐<E78192>灋え灋灋<E7818B>季灒灑<E78192>灋Ж灋灎<E7818B><E7818E>灍灋{x<>季灒灑<E78192>灍牗灋灎<E7818B>季灒灐<E78192>灍灗灋灎{x<>季灒灑<E78192>灐灗灋灎{x<><EFBFBD><E6818B>灋煝街涊譁<E6B68A>讲{x胖余訋逸庣葶庘肿苜{x巛銜嘤幷葑苷<E89191>冀勃唇紴<E59487>え灋煠<E7818B><EFBFBD><E8B1AA>灋煠跋卩菡湭冀瞷x从右庘肿釒蒈訋蠋在蒎余湭冀勃焙廓疮睘灍<E7818D><EFBFBD>ⅷ灋<E285B7><E7818B>灋爗x禽銕蛰鈳租湭冀勃疮睘灋灙焙絳x<E7B5B3>季灒灑<E78192>灓灗灋灎<E7818B><E7818E><EFBFBD>{x<>季灒灑<E78192>灒灗灋灎<E7818B><E7818E><EFBFBD>{x<><EFBFBD><E6818B>灋灕驾弾菱蒉彧冀勃焙纚x<E7BA9A><78>灋灒诚鈳租湈诚鈳租彧冀勃焙纚x<E7BA9A>幻灋灋<E7818B><E7818B>灋灋涤鈳巛汔幹蟦裔庉栽幹余弿<E4BD99><EFBFBD>航{x<>郊灒灒<E78192>灍お暖窞灐灙被脼灍<E884BC>x<EFBFBD>季灒灒<E78192>灓煥灋灎<E7818B>季灒灒<E78192>灎灗灋灎<E7818B><E7818E><EFBFBD><E7818B>遣灋<E981A3>{x<>季灒灒<E78192>灍灗灋灎<E7818B><E7818E>灋牏{x<>季灒灒<E78192>灓灗灋灎<E7818B><E7818E>灋牐{x<>季灒灑<E78192>灎灗灋灋<E7818B><E7818B><EFBFBD>{x<>季灒灒<E78192>灋灗灋牉<E7818B><E78989>灎灋{x<><EFBFBD><E6818B>灋灔螺噍佥弡x<E5BCA1>訋巛銕葙乡瓘<E4B9A1><EFBFBD><EFBFBD><E8B1AA>灋煙湝湽湝湽总諟湝<E8AB9F>冀勃焙澜葺种种湝湭冀瞷x荤湝溮鐜钟弦湝湭冀勃焙廓疮睘灋<E79D98>x弿<78><EFBFBD>豪驾弿<E9A9BE><EFBFBD>郊灒灍<E78192>灍お焙狼葶弾禽銜嘤庘窒鈡x草砚萼彧冀勃疮睘灋灙焙絳x<E7B5B3><78><EFBFBD><E7818B><EFBFBD><E6818B>灋牊湝湝湭冀勃焙琅昼殠缬釡<E7BCAC>讲{x穾羡庘钟幉菅廨鄿<E5BBA8><EFBFBD><EFBFBD>規脏蒇庈蒎庉軞幏幭踸x巛汔庈渝広酉矣鄿<E79FA3><EFBFBD>豪沮酉嵊規廨庅腺訋巛汔{x涎咩献茆宪延湭冀勃焙兰蒎殠逯镶幱嫦砚阽幾醷x租庣葶庌谙軒廨幰輲遄庵{x庵镶庒遢嘁<E981A2>冀勃焙蓝蹧舟浿圹湝湭冀勃焙廓疮睘灋シ曏趲僮谮庣葶弿<E891B6><EFBFBD><E8AEB2>灋灋<E7818B>航{x<>季灒灒<E78192>灍灗灋灎<E7818B><E7818E><EFBFBD>{x<>季灒灎<E78192>灎灗灋灋<E7818B><E7818B>灋煟{x<>季灒灍<E78192>灍灗灋灋{x<>季灒灔<E78192>煝え灋灎<E7818B><E7818E>灋煟{x<>季灒灒<E78192>灐灗灋灋<E7818B>郊灒灒<E78192><EFBFBD>x<EFBFBD>集灍ⅲ<E7818D>幻灋灋<E7818B><E7818B><EFBFBD>{x<><EFBFBD><E6818B>灋牊荤殠相訋庵隅庎酉谮鐊x彷幵嘞兆谟幮釉萼訋庵觷x嘞沼庘腺俞庘钟郗<E9929F><EFBFBD><EFBFBD><E888AA><EFBFBD><E7818B><EFBFBD><E6A790><EFBFBD>{x<>恋街輳<E8A197><EFBFBD>豪禽銜嘤庘窒鈳彷谝子鄘x脏蒇庘钟庒汔韵延彧冀勃唇紴<E59487>煥灋煠<E7818B>季灒灍<E78192>灎灗灋灋<E7818B>豪禽銜溆幯蒇訋镶幭{x徂谟芤滓庘综訙<E7BBBC>讲{x队嘤殠庵隅曕訋馅趲巛汔釓<E6B194><EFBFBD>豪街殠茌殠茌歿x逸軙鈳庵宪賻塾湭冀瞷x断溆幵丬殠巛銕庵嘤訙<E598A4><EFBFBD><EFBFBD>季灒灍<E78192>灐灗灋灋<E7818B><E7818B>灍灋<E7818D>幻灋灑{x<>季灒灐<E78192>煝灗灋灎<E7818B>梁灒灐{x<>交灋煠<E7818B>疾{x{x憺<78>焮x憺<78>爗x憺<78><E686BA>x<EFBFBD><EFBFBD>簷灓牎<E78193>集灍<E99B86><E7818D>集灍<E99B86>{x<>郊灒灐<E78192>灍お<E7818D><EFBFBD>〃灍灋<E7818D><EFBFBD>x<EFBFBD><78>灑灋<E78191>幻灋灋{x<>恋{x灿杂镶右幋嘤荑子規螺噍佥湭暖窞灒灙冀勃焙絳x<E7B5B3>季灒灐<E78192>煝灗灋灒<E7818B><E78192><EFBFBD><E7818D>交灋煠<E7818B>疾{x憺<78><E686BA>x憺<78><E686BA>x<EFBFBD>焊灓牋<E78193><E7898B>焮x<E784AE>焊灓牎<E78193><E7898E>瀧x<E780A7><EFBFBD>恋螺湝湭冀猜萼葙轀湝<E8BD80><EFBFBD>疾{x憺<78><E686BA>x憺<78><E686BA>x憺<78>瀧x<E780A7><EFBFBD><E59F8E><EFBFBD>簷灓牋<E78193><EFBFBD><E6818B>灋灔赤罩湝湭冀勃焙婪鈺釒廨輲谙庥幵萼庅訙<E5BA85>讲{x抛谮庣葶湝溝溆苷訋塾湝湱<E6B99D><EFBFBD>航{x<>季灒灒<E78192>灑灗灋灒<E7818B>前灋灋<E7818B><E7818B>灍灋<E7818D>疾{x憺<78>焮x<E784AE><EFBFBD>簺灓牊<E78193>季灒灒<E78192>某灓灎{x憺<78>爗x<E78897>某灋灖

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}<7D>`cflvqy````lu~t=:S``ia=:l}~qls}<7D>`cflvqy```alu~t=:S``ib=:l}~qls}<7D>`cflvqy```blu~t=:S``ic=:l€ls}<7D>```l赫}lyй``bbj``ielu<6C>``if=:S``id=:l}~qls}<7D>`cflvqy```dlu~t=:S``ie=:luー`befl}ッlу<6C>=:l<><EFBFBD>`dclwy<77>`bbs衍椄覆P蒼、勗側部^l~tlwyЯ```lu<6C>``if=:S``if=:l}ヘlу衍P抹復P善凋蒼娜ァ辨捻凋洫=:、个衍利Pゥ衍^=:q惧Pァ舞<EFBDA7>沾」P箸泛<E7AEB8>部P、蘖|沸復PaQl~tls|=:lvl}~qls}<7D>`cflvqy```clu~t=:S`a``=:l{u瑛vq```blрq``h0j``i`j``ahj``ig=:S`aa`=:l{u瑛v|zaecaj`aaa=:lv}``aflvq```blрq``haj``ibj```bj``ac=:S`aaa=:l㎞y``a`lx}sl㎞y``e`=:l}液````lマslu~t=:S`b``=:l€l}ヘlу<6C>=:√恣沱姫、蘖x復弉l~tlu~t=:S`d``=:l€l<EFBCBA><EFBFBD>`bblt~€`d``lu<6C>`d`a=:S`d`a=:lu<6C>``ad=:S`db`=:lt~€`db`=:lq~€`dc`j``c`j````lv~`dc`j``af=:lq~€`e``j``cbj````lu~t=:S`dc`=:S`e``=:l{u瑛v|]aecalv|[aecbl㎞y``e`=:ls~€`e``j`beij````lu~t=:S`i``=:lt~€`i``lu~t=:S`i`a=:lt~€`i`alu~t

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 @@
q~~噡[X姏湉姂洠~~~唺攺梸~~~姄湌[Xq~~<7E>[X姏湉姂洠~~~唺攺梸~~姄湌[Xq~~噣[X姏湉姂洠~~~唺攺梸~~€姄湌[Xq~~噥[X姏湉姂洠~~~唺攺梸~~亰摐抂Xq~~噦[X姍摟姅殬~~~垀~噧姏湉姂洠~~~唺攺梸~~倞摛搤€~~[Xq~~噧[X姏湉姂洠~~~唺攺梸~~倞摐抂Xq~~~[X姍摟姟潱~~姀湠~~~垀~~~垀~~€姅彎~~~倞<>弤~儊垀~噦垀~厓垀~~僛Xq~~[X姍摟姟潱~~姀湠~~垀~~~垀~~€姅彎~~~~姠爮~~儎垀~噡垀唸~~唩[Xq~€~~[X姍摟姅歽~~~姅歽~€儕敋y~亞姏<E4BA9E>~~~€姤彈~~儈[X姀湠~倊~垀~~垀~~~姏<>[X<58>o姕潚姂殱[X姀湠~倊~垀~€~垀~~~姤彈~~儈姄湌[Xq~倊~[X姍摟[X姅殬~~亪~倊俒X姉<58>~~€剤~倊乕X姅殬~~€垀倊€[X姅殬~~垀倊姅歽~~姅歽~亞[X姀湠~倊~垀~~垀~~~[X姏<58><EFBFBD>抖o姏<6F>~~~€姕潚姂殸捊紆耼狗汉n怀o姕潚[X梪籲痭睹化紀n梟该谅n到耓X化捣悲汉莕旅兰巢n芳陆[X痭浄环弹on梪籲睹化紀姕潚姂殸柮秿姕潚姂殸|||||姕潚姂殸姀湠~倊~垀~~~垀~~~姅彂~~€啣动聈羘露妨峓XЫ胾莱n冀耼郊硁酱n露搅砙X狗汉忱n澜敖铝崐N潚[Xコ汉zn墙胣帘<E883A3>巢n露砙X警悸羘酱磏怀zn该痪芳礫X矫耼悍钩n露<6E>o姕潚姂殸Ы胣沤煤布u耼俺n露<6E>[X怜姆嚼zn沤煤瞡墙脥姕潚姄湌[Xq~倊[X姍摟姅歽~~€[X姏<58>姅彂~~€啑u籲椔蕉zn郊硁酱n露砙X睹化剂n哦絥悲怀n陆n露妨[X妨函疾n陆n步n莱脸<E88EB1>倍|姕潚[X⒍<58>n欧卤秐浄脸狼n旅兰巢[X怀n芳陆n露妨|||姕潚[X梟化集党瞡陆n党耼<E5859A><E880BC>z[X懊聕||该谅n航焦n<E784A6>n怀|姕潚姂殸徏瞡冀舗梪籲谅帽筺冻莱o姕潚姂殸Ы胣焙坊俺瞡镁n蠢交n露砙X矫铝凡硓n卜布u耼墙脇姕潚[X梪籲<E6A2AA>n臣捣汲忱n酱[X苯剂凡忱<E587A1>撼n炉撼悸z姕潚[X懊耼梪籲渤<E7B1B2>逗莕<E98097>蜡凡[X酱n冻返堵羭||姕潚姂殸澏zn沤硓n沤硁妨n怀|||姕潚姂殸梟汲某纍炼矫翰u某n苯怀[X陆n露妨n妨函疾n芳n露砙X捶懒耼竞<E880BC>硘姕潚姄湌[Xq~倊€[X姍摟姏<E6919F>姅彂~~€啘絲n冀zn撩莱呵n墙胣动某[X冀n昧硁唇纍撩倍n痭警露陈繁z[X谅蜡疾巢n悍侣撼n化紎姕潚姄湌[Xq~倊乕X姍摟姏<E6919F>姅歽~~亰摛搤倊僛Xq~倊俒X姍摟姏<E6919F>姅彂~~€啎纺硁浟|n汞唤陆n磺[X莱弹啦羭姕潚姄湌[Xq~倊僛X姄<58>~~厖

View file

@ -1 +0,0 @@
LIbooxoLI{<7B><>{<7B>𦷪oow{<7B>èooo{<7B><>IbooxpLI{<7B><>{<7B>𦷪oow{<7B>èoop{<7B><>IbooxqLI{<7B><>{<7B>𦷪oow{<7B>èooq{<7B><>IbooxrLI{<7B><>{<7B>𦷪oow{<7B>èoor{<7B><>IbooxsLI{<7B><>{<7B>𦷪oow{<7B>èoos{<7B><>IbopooLI{<7B>𤩝<EFBFBD>簆ooo{<7B><>ootuyooxoyopoqyoottLIboppoLI{<7B>𤩝<EFBFBD>𦷪opp{<7B><>oppoyooooyoooq{<7B>簆ooo{<7B><>ootuyooxoyooxxyoossLIboqooLI{<7B>妉I{<7B>纺owpyoqoqLI{<7B>纺owoyoqopLI{<7B><><EFBFBD>悔珞╡悔疳mmm{<7B><><EFBFBD>鬔{<7B><><EFBFBD>穥I{<7B><>ooo{<7B><>oqooyoooqyooos{<7B>èoro{<7B><>ooo{<7B>jpowo{<7B>lpoqt{<7B>jpoquLI{<7B><>吻_垣悚_陽宸淪絍阸孑{<7B><><EFBFBD><EFBFBD>妙揭妊_葬復洧戍訛﹞_ㄓ迚mLI玏復ㄗㄜf訛市身╡_陋_<E9998B>陶仃LI妙跛<E5A699>飛_釣洶淪𣖕于痊𨯂炊δ葬惴{<7B><><EFBFBD><EFBFBD>夾淪迆_釦于<E987A6>走m{<7B><>I𩣪挈于陽宰陰筷陵_ㄓ斥_釦于<E987A6>拳LI忖訛釦戛雁_身_坐惜m{<7B><>I𤧣_﹞_眼〝丐陴_幼巢夾淺I仄砟惆洶韋烯mm{<7B><><EFBFBD>鮎mm𩣪稭f淪陽稭_𣖕于<F0A39695>見m{<7B><><EFBFBD><EFBFBD>捎_鍮弗角迤_恭_坐捲?{<7B><>I玏惠惜_鍮”訛陵宰<E999B5>酗m{<7B><>I佂于散不_陵_﹞_身_坐惜_隅釦_散m{<7B><><EFBFBD><EFBFBD>坐_<E59D90><EFBFBD>惆郎_幼巢葬復釦几I陽悍于釣洶m{<7B><>I<EFBFBD>訛庖眾_鍮咧陶咫_陽走于僙峭LI釦元_<E58583>洶_<E6B4B6>δ陵悚_坐巢絍瓲m{<7B><><EFBFBD><EFBFBD>qoxLIboqopLI{<7B><><EFBFBD>jpowp綉_舅𡵆m{<7B><><EFBFBD><EFBFBD>散訛﹞幼惜_釦元_<E58583>換不_坐巢恭右LIÓ<49>跛坐巢䁥_皎洶釦身囝身陵LI葬敢_祚◥仇m{<7B><><EFBFBD><EFBFBD>qoxLIboqoqLI{<7B>𤩝<EFBFBD><F0A4A99D><EFBFBD><EFBFBD>淪迅k_鍮垣竣_咫陶仃~{<7B><><EFBFBD><EFBFBD>qoxLIboqoxLI{<7B>𤩝<EFBFBD><F0A4A99D>oqooyooooyoooq{<7B><>IboqqoLI{<7B>𢲛<EFBFBD>𤩝<EFBFBD><F0A4A99D><EFBFBD>莑qqpyoptoyoooq{<7B><>oqqpyoopoyoooq{<7B>èotoLI{<7B><><EFBFBD>𦷪ovo龗節{<7B><><EFBFBD>鍸I{<7B>𦷪ovo<76>洫苜{<7B><><EFBFBD>鍸I玏惠惜_陋訛ㄓ迚k_𥼚于葬揍{<7B><><EFBFBD>鮎mmmm{<7B><><EFBFBD>穥I{<7B>èoto{<7B>èoto{<7B><>{<7B>𦷪oow{<7B>èoos{<7B>èoto{<7B><><EFBFBD>莑qqp{<7B><>IboqqpLIborooLI{<7B>ù<EFBFBD>织vooyooop{<7B>jqvoo{<7B>𦷪oqq{<7B>莑rooyooqpyoooo{<7B>莑oqsyoopuyoouu{<7B><>ropLIboropLI{<7B><>ovu

View file

@ -1 +0,0 @@
ur<EFBFBD>咅𤩏r今隆井善<EFBFBD><EFBFBD>亢店<EFBFBD><EFBFBD>五隄ur<EFBFBD>咅猪r今隆井善<EFBFBD><EFBFBD>亢店<EFBFBD><EFBFBD>五隄ur<EFBFBD>咅鮁r今隆井善<EFBFBD><EFBFBD>亢店<EFBFBD><EFBFBD>五隄ur<EFBFBD>咅𣗳r今隆井善<EFBFBD><EFBFBD>亢店<EFBFBD><EFBFBD>五隄ur<EFBFBD>咅崬r今隆井善<EFBFBD><EFBFBD>亢店<EFBFBD><EFBFBD>五隄ur<EFBFBD>咅「r仇俯今隆井善<EFBFBD><EFBFBD>ur予飧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>亢店<EFBFBD><EFBFBD>ur井飧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>凶店<EFBFBD><EFBFBD>ur予飧<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣫺<EFBFBD><EFBFBD>ur今蟀<EFBFBD><EFBFBD>互飧<EFBFBD><EFBFBD>六筍五隄ur<EFBFBD><EFBFBD>𤩏r仇俯亢弧<EFBFBD><EFBFBD>兮漫<EFBFBD><EFBFBD><EFBFBD>咅噐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>「r<EFBFBD><EFBFBD>𤩏r仇俯今趙標<EFBFBD>昅詘晑庄朒<EFBFBD><EFBFBD>笘笫萻𣶸須泉r盃<EFBFBD><EFBFBD>嗀娵<EFBFBD><EFBFBD><EFBFBD>邴阹跁雱切雯<EFBFBD><EFBFBD>井晰亢<EFBFBD><EFBFBD><EFBFBD>ur井飧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>什筍凶店<EFBFBD><EFBFBD>予飧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ur凶店<EFBFBD><EFBFBD>亢弧<EFBFBD><EFBFBD>兮漫<EFBFBD><EFBFBD><EFBFBD>咅﹜<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤩏r<EFBFBD><EFBFBD>𤩏r元滷今趙瞥庄<EFBFBD><EFBFBD><EFBFBD><EFBFBD>衭娵阼<EFBFBD>訧軞坐須洶契瑭軝<EFBFBD><EFBFBD><EFBFBD><EFBFBD>椳坐須洶頁泉r<EFBFBD><EFBFBD>猪r元滷今趙棹桽<EFBFBD><EFBFBD>介楓五隄ur<EFBFBD><EFBFBD>鮁r元滷今趙盃呿跁<EFBFBD><EFBFBD><EFBFBD><EFBFBD>厔俓<EFBFBD>晇袲婠楆須洶頁泉r<EFBFBD><EFBFBD>𣗳r元滷今趙標<EFBFBD>萃桻珈<EFBFBD><EFBFBD>嗝阼<EFBFBD><EFBFBD>倰ur恮邴构<EFBFBD><EFBFBD>迕笰<EFBFBD><EFBFBD>喍楆須洶契獐倰<EFBFBD>訬喍<EFBFBD><EFBFBD>瓬笱<EFBFBD>桾蚐<EFBFBD><EFBFBD>恮玿鈗r嗝<EFBFBD>稊忑嗖楆須洶頁泉r<EFBFBD><EFBFBD>崬r元滷今趙盃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>䪴孖尥軞<EFBFBD>坐須泉r鉼<EFBFBD><EFBFBD>詄尰軘迒<EFBFBD><EFBFBD><EFBFBD>捈晑泚r詍梠葎阼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>埩笚庄朒<EFBFBD><EFBFBD>介楓五隄ur<EFBFBD><EFBFBD>𪊓r元滷今趙標阼<EFBFBD>椳迒<EFBFBD><EFBFBD><EFBFBD><EFBFBD>軝寑<EFBFBD>倎桾笸ur晑<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>弚邳𧬸<EFBFBD>迋珿r嗝邯<EFBFBD>稊楺<EFBFBD><EFBFBD>介楓ur謂筇阼<EFBFBD><EFBFBD>嗝俉<EFBFBD><EFBFBD><EFBFBD>介楓五隄

View file

@ -1 +0,0 @@
A>WddmdA>p<>upw<70>ddempzu}ddddpy<70>A>WddmeA>p<>upw<70>ddempzu}dddepy<70>A>WddmfA>p<>upw<70>ddempzu}dddfpy<70>A>WddmgA>p<>upw<70>ddempzu}dddgpy<70>A>WddmhA>p<>upz<70>~diminddmipy㥍w<E3A58D>ddeepzu}dddhpy哣dfddA>WddmiA>p<>upw<70>ddempzu}dddhpy<70>A>WdeddA>p<>}p<>岚deepx<70>deddpzu<7A>ddhp<68>uddednddmhnddginddfjA>WdfddA>p杮īy㥍<79>xddddpu<70>dhddnddgdnddddA>p<>{pzuwddeh<65>簛夾ㄕ<E5A4BE><EFBFBD>T<EFBFBD>貞A><3E>苜Tǖu<C796>T迤奈A>迤固<E8BFA4><EFBFBD>兞汽<E5859E><E6B1BD>Up<55>xA>w𥚃<77>T迤固<E8BFA4><E59BBA>各p<E59084>xpw<70><77>>pzuwddeg<65>檱UUp<55>xpw<70><77>>pu<70>dhddnddgdndddfp𠹹}ddgdA>pu<70>dhddnddedndddfpz<70>_dimipz<70>_dfklp𠹹}dfddpw<70>ddempy<70>A>WdffdA>p杮īy<7F>>pz<70>~dimjndfgdA>pz<70>_dimjpz<70>_dimhp}ÒddehA>p<>{pzuwddeg<65><67>營bbp<62>xbbb揻孟p<E5AD9F>xpzuwddddpw<70><77>>p𠹹}ddidA>pw<70>dffdndeggnddddp𠹹}ddidA>p<>{p{}Ềde4pzuwdddd{𧞅簛<F0A79E85><EFBFBD>簛q<E7B09B>中訂bp<62>xp{}Ê̌dddpw<70>dgddndegdnddddpx<70>dhdepz<70>adfkhpw<70><77>>py哣dffeA>WdffeA>py哣ddjiA>WdfgdA>py㥍z<E3A58D>~dlgdndfgep<65>{pzuwddeg<65><67><EFBFBD>Up<55>xA>揻固〝夾T夾ㄓT<E38493>䐓Up<55>xpw<70><77><EFBFBD><EFBFBD>佅T見T堺<54><E5A0BA>T<EFBFBD>禑><3E><><EFBFBD>劫佅姯<E4BD85><E5A7AF>襍簛<E8A58D>䐓A>ㄑ見T<E8A68B>簛妝<E7B09B><E5A69D>䉠p<E489A0>xpy<70>A>WdfgeA>py㥍}ǚddeindfgfA>p<>{pzuwddegu𦐑T迤固嚤<E59BBA>T𥚃T𧭈>𧙗<>T<EFBFBD><54>bp<62>xp{}Ềdeip}Óddeipw<70><77>>pzuwdddd<64><64><EFBFBD>T𥸎q<F0A5B88E><71><EFBFBD>秀Up𠹹}ddgdp<64>xp{}Ê̌dddpw<70><77>zuwddegwㄐ簛<E38490><E7B09B>T<EFBFBD>T迤固臁膓A><3E><>T佅ㄗ<E4BD85>吋ㄑ緐p<E7B790>xA>}沍劫<E6B28D><EFBFBD>襍汽<E8A58D>潖A><3E>姯咯<E5A7AF><EFBFBD>㎡𣌀bbbp<62>xpy<70>A>WdfgfA>py㥍<79>{pzuwddegy<67>㎡𥸎<E38EA1><F0A5B88E><EFBFBD><E59AB9>T<EFBFBD>A>𣺹ㄚ劫<E3849A>姯佅姯鷼<E5A7AF><E9B7BC>bbp<62>xA>u<>T}T<>㎡𣌀T╯俊潖A><3E><>T<EFBC83>檱嚹𢒰T迤奔bbp<62>xpy<70>A>WdgddA>py㥍<79>{^<5E>𢒰烀bbbp<62>xpy<70>A>WdhddA>Wdhde

View file

@ -1 +0,0 @@
pm啌摐損m煱堡煢案摀摃煩が摀摀煥抱pm啌摐攑m煱堡煢案摀摃煩が摀摂煥抱pm啌摐昿m煱堡煢案摀摃煩が摀摃煥抱pm啌摐杙m煱堡煢案摀摃煩が摀摉煥抱pm啌摐梡m煱堡煢案摀摃煩が摀摋煥抱pm啌敁損m煯<EFBFBD>煻哺摀敂煠背摂摀潛摀摑摀摃煩げ摀摃煼丹摀槚潛摐暆摀摃潛敋杙m啌晸損m煶惮pm煩<EFBFBD>敄殨潛晸昿m煥龚摃摉pm啌晸昿m煶惮煱丢に弮套娭兪乙莾滓兣葍拍c螒煴钵煥抱pm啌晸杙m煩瘞敄殨煥龚摃摋pm啌晸梡m煥龚摀敁pm啌晹損m煶惮煩<EFBFBD>敄殦潛晹敓┋帞枤攑m煱丢币趦谒日葍翘莾姿淖冃难冋匮pm疑蓛滓憫憻辈<EFBFBD>Ο导邑兯馁妊娮冎热褍熊兯刂拍亚弍m四偃冘邑<EFBFBD><EFBFBD>ū<EFBFBD>m啌晹攑m煶惮煱丢匪难蝺芤貎梢諆芤卣兯认討煴钵煥抱pm啌晻損m煶惮煱丢核見杖冘邑弮刑肿日<EFBFBD><EFBFBD>ū<EFBFBD>m啌槗損m煯<EFBFBD>煢背摃槗潫─瑩摀摕ū<EFBFBD>

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>

View file

@ -1 +0,0 @@
0==F=IZ[NIPZb===EISNV====IR[Q0==F>IZ[NIPZb===EISNV===>IR[Q0==F?IZ[NIPZb===EISNV===?IR[Q0==F@IZ[NIPZb===EISNV===@IR[Q0==FAIZ[NIPZb===EISYW=E@=G==FCISYW=AE>G==FBISNV===AIR[Q0==FBIP[]=?=>G=>=?G====IN[]=@==G====G===?ISNV===AIR[Q0==FCIPZ]==>>G===CG==C>IPZ]==>>G===DG==DDIP[]=?=>G=>=?G====IN[]=@==G====G===?ISNV===AIR[Q0=>==ISYW=AE=G=>=>I]_VI`\b==>>IQ[]=>==ISN\===AIa_N===CG==FAG=>D>G==>D0=>=>I]_VIZ`TIab_V<5F>-„|{4<>-|}r{.I[\QIR[Q0=?==ISYW=AE>G=?=?IXRfI`\b==A@ISY8=AE>IP[]=?=>G=>=?G====IPZb====IN[]=@==G==>=G====IdNV==?=IZfQ===?IdNV=AB=IPZb===AIdNV==B=IP[]=?=@G===FG====IdNV==B=IPZb====IN[]=@==G==?>G====IdNV==E=IPZb==>>IP[]=?=@G==>?G====IZ`TIab_ISNP==>AU‡‡nu.IRcR=?=A0=?=>0=?=?I]_VIZ`TIab_]|„r-s{p<>v|{v{t-{|znyy†;I[\QIR[Q0=?=@IXRfIP[]=?=@G==>?G====IN[]=?=@G==?=G===AIdNV=>A=IdNV=>==IPZb==>B IZ`TIab_S|tu<74>-|ss-Ony|t.IdNV=>A=I[\QIPZb===EISY:=AE=ISY8=AE?ISY8=?>BIR[Q0=?=AIN[]=?=@G==@=G====IPZb===AIP[]=?=@G==@CG====IO`Y=?=@ISY8=AE=IR[Q0=?B=IXRfIZ`TIab_`r<><72>v{t-};;;I[\QIR[Q0=@==ISYW=AE@G=@=@ISYW=AE>G=@=>IXRfIZ`TIab_N-|o|<7C>;;;LV<>-q|r€{4<>-€rrz-<2D>|-unƒr-n{†}|„r;I[\QIR[Q0=@=>I]_VISYW=AE?G=@=?IZ`TIab_V<5F>€-urnq-v€-on€urq-v{;I[\QIR[Q0=@=?IXRfIdNV==B=IP[]=@==G=>=FG===AIN[]=@==G==>=G===AIZfO=@==IdNV==B=IZfQ=@==ISY8=AE@ISY8=AEBISY8=AEAIZ`TIab_aUN[X-f\b.-a\-]Nf-f\b-ONPX9V-PN[-ZNXR-N-O\ZO.I[\QIR[Q0=@=@ISYW=AECG=@>@IVaW==>>G=@>=IRcR=@=B0=@=BIXRfIZ`TIab_O_V[T-ZR-JPUN_P\NYJ9JWRYYfSV`U-WbVPRJ9N[Q-JTbZ-ON`RJ;I[\QIR[Q0=@>=IVaW===EG=@>>IRcR=@=B0=@>>IVaW==>?G=@>?IRcR=@=B0=@>?IXRfISY8=AECIVa:==>>IVa:==>?ISY8=??>IRcR=@B=0=@>@IXRfIZ`TIab_V4Q-\SSR_-f\b-`\ZR-aRN9-Oba;;;I[\QIR[Q0=@B=IRcR==C@

View file

@ -1 +0,0 @@
41JWW`W41ctuhcjt|WWWWcmhpWWWWcluk41JWW`X41ctuhcjt|WWWWcmhpWWWXcluk41JWW`Y41ctuhcjt|WWWWcmhpWWWYcluk41JWW`Z41ctuhcjt|WWWWcmhpWWWZcluk41JWW`[41ctuhcjt|WWWWcmhpWWW[cluk4141JWXWW41crl€cmsqX\][aWXWXczv|WWXXchuwWXWWaWWWWaWWWY41cmhvWWW[c{yhWWX]aWW`[aWWZYaWWWY41JWXWX41cwypctznp汫灃昇汫枟寱Hcuvkcluk41JWYWW41cwypcmsqX\][aWXWXcmsqY[WWaWWWXcmsRY[WWczv|WWYYcjuwWYWWaWWYXaWWWWcl}lWYWY41JWYWY41cl}lWW_Z41JW[WW41crl€ct€iWWWYc~hpWWYW41cp{qWWZZaW[YW41cmsqX\]YaW[XX41cmsqX\]XaW[WZctzn€枩G帠汫殩攲G墱殣晫殮G瀽洀G攲fc€uqW[WXcjsyo垙Hcuvk41pG嫋湁汫洀垱Ucuvkcluk41JW[WX41crl€ctzno審T弻廡弻廢Gi爩SG洀寱Ucuvkcluk41JW[WY41crl€cmsRX\]Xctzno攆cuvkGh敃寶悎fcuvk41o枮G垶崪揢cuvkcl}lW[WZ41JW[WZ41crl€ctzn~寭揝G洀寱UGk朑爾淕瀳暃G攲G洊41帎潓G爾淕洀孏t湚彊枛擥i垕帉fc€uqW[W_cl}lW[W[41JW[W[41crl€ctzni湜G悤G檶垞悰燬G爾淕嫋<E6B795>'<27>41檶垞摖G瀳暃G悰SG檺帍沠c€uqW[W\cl}lW[W_41JW[W\41crl€ctzn€枩G瀳暃G悰G洀垱G敎姀fc€uqW[W`cl}lW[W]41JW[W]41crl€ctzn€枩G瀳暃G悰G垑殩摐泴摖G棖殣洂潓摖41晼G攬洓寵G瀼垱fc€uqW[W`cl}lW[W^41JW[W^41crl€ctzni湜G檶垞摖G爾淕嫋昇汫瀳暃41悰SG檺帍沠c€uqW[XWcl}lW[W`41JW[W_41crl€ctzny寛摀爁Gv拡燯cuvkcluk41JW[W`41crl€ctzn€寛廠G瀼朑晫寢欸悰UUUcuvkcluk41JW[XW41crl€ctznm悤孲G弻檶G爾淕帠Hcuvkcjsycnp{XWZZcp{RWWZZcmsRX\]Ycjsy41cjt|WWXWn枦G洀孏dt湚彊枛擥i垕帉dUc~hpWX]Wcuvkcyt|cluk41JW[XX41crl€ctzni  <E38080>Ucuvkcluk41JW[YW41crl€ctznc{|ycnp{XWZZz彇瀸婫彁擥洀孏dt湚彊枛擥i垕帉dUcnp{WWWWcjsy41ctznc{|ycjt|WWW[k悓HHcuvkcjsvcmsRX\][41cjuwW\WWaWZXZaWWWWc~hpWWWY41chuwW\WWaWXWWaWWWWckuwW[WW41cizsW\WWcluk41JW\WW41crl€cjt|WWWWchuwW\WWaW\WWaWWW\c~hpWX\W41ctzn€枩G瀽昒UUUUUcuvkcjsycmsTX\][ckuwW\WWcl}lW\WX41JW\WX41cl}lWW_[

Binary file not shown.

View file

@ -1 +0,0 @@
ro垥暈時o肠〃埠晻暆Ξ晻晻—畅ro垥暈杛o肠〃埠晻暆Ξ晻晼—畅ro垥暈梤o肠〃埠晻暆Ξ晻晽—畅ro垥暈榬o肠〃埠晻暆Ξ晻晿—畅ro垥暈檙o肠〃埠晻暆Ξ晻暀—畅ro垥枙時o“<EFBFBD>「春晻枛ˇ车晼晻煏晻暉晻晽Υ晻暀」乏晻槥煏暈櫉晻槝煏晻瀝o垥棔時o〉樊脯痹犹憛言犹吰淘憛偻首蕝盐凼蓞苧o芪偃蛥杂呝臀貐呜哑由摗炒﹔o竿蕦貐偻蕝杂蕝芡詤仍迂僮谌偈蓃o偻呜呇魄拮斡偻憛斡呍咨首呝詒o惺收呞貐<EFBFBD>谏呜呎视邮蓞谡摗炒<EFBFBD><EFBFBD>﹔o垥棖時o〉樊脯雇首蕝呜吰訁瘦钨呝詤偻呜呉七蕮roи賲偻蕝掌偻呝詤钨呂貐茄匀惺蓃o寝吰呁谔蕝窃谘墒讚穿〃狈τ蓞以畚犹呝褪吳在焉首呠在焉ro鞘呄谪賲偻蕝鞘涛佑斡虆运呣在譺o僮纹沿摀摗炒<EFBFBD><EFBFBD>﹔o垥棗時o〉樊悲枙棔煏棗枴哺<EFBFBD>仆摀搮畬覅复呁谟套迏嗽譺o参椅唐吽咽赝摀摗炒<EFBFBD>ū窂赜嗡藚赜嗡藦穿〃狈ro敬簠匾恃褏茀俏賲盐惺叢我翁茡穿—畅ro垥棗杛o〉樊<EFBFBD>捦茠推蛽摀穿〃狈驹趯资吽谟愚摗炒<EFBFBD><EFBFBD>﹔o垥棙時o〉樊<EFBFBD>凼呣在吺凼讌厥视呝褪呍谫匚墒呍藃o偻呜呂匮朴嗓穿〃狈雇呜呂匮朴蓞呜吽言瀑斡虆臀掏呂觬o偻蕝匦问負穿roω呝詤驮軈钨呉朴铺守呝詤搜云贀摀穿ro雇瀑呚嗜资賲盐守呠钨臀訁偻呜ro移呤摗炒<EFBFBD><EFBFBD>﹔o垥棛時o〉樊悲暅棔煏棛杛o脯雇瀑呝恃收宰偈讌咱首呝褪资ro谪噬呝詤鞘呠宰形犹呞淤窝ro茀盐儋咽呠臀咽吰淘摗炒﹔o此吶在棕蕬呂賲馅刭呇噬ro恃厥芡首蕝斡呝褪呇魄拮斡偻摀摗炒<EFBFBD><EFBFBD>﹔o垥棛杛o脯雇蕝偈咽赵踪首呚适邑呝詤鞘ro茉仔斡虆釉軗穿〃狈此吶在棕蕬呂賲馅刭呇势韶呝詒o卦沂芡首蕝恃厥呂訁偻蕝哑寝孜淤蛻ro稍守訉賲钨ぁ炒<EFBFBD><EFBFBD>﹔o垥槙時o垥槙杛o“<EFBFBD>肠〃埠晻暆roˇ车晿枙煏晻枱晻晻Ξ晻暀ro〃车晿晼煏枛棢晻晻〖Ξ晼晻roˇ车晿枙煏晻暉晻晻ro京晻晻々车晿晼「波—畅ro垥槚時o“<EFBFBD>—华晿枛roro垥槚杛o〃车晿晻煏枛枱晻晽…波〖Ξ晻洉ˇ车晿枙煏晻枱晻晻ro〖Ξ晼晻Υ晻暀」乏晻櫄煏槙枱晻晽煏暁榬o垥檿時o“<EFBFBD>悲暅棖煏櫀暋哺<EFBFBD>兽呝褪资摗炒<EFBFBD>ū饭臀貐呜呝褪叡魄拮斡偻吀驮諉穿ro甘蕝偻载蕝韧守儇呍凼讌偻首胜穿吀驮軈沂卦沂吶栽褏苁普杂貐朴蓞拊趨绕訁推凼ro芡瀑屫呂迂紊蕮穿—畅ro垥檿杛o“<EFBFBD><EFBFBD>ぁ炒<EFBFBD>ū翻兽憛拊趯凼吿再呚砸寿臀犹ro兆寿俎呚瘴怂迏偻首蕮穿〃狈<EFBFBD>翟哑讌纲谱吰由吰叓巫是蒲褢ro谟咽刎叜呉呜貐肄吿谑刎摗炒<EFBFBD>ū法朴叜呝菩e吰呏谖刃呇栽袇瀑呝褪窑【朝暀晿〃贝roˇ矑晻晿ro〖Ξ晻棔脯‖<EFBFBD>晻晽<EFBFBD>由噬呍凼讌偻蕝翟哑讌纲谱摗炒﹔o‖<EFBFBD>晻晿<EFBFBD>由噬呍凼讌偻蕝<EFBFBD>资瞧蜒摗炒<EFBFBD><EFBFBD>箷晻暋ū穜o「春晻櫃<EFBFBD>驮啞炒<EFBFBD>ū贰<EFBFBD>悤湕枴<EFBFBD>箷晻枴ū穜o」Σ晻晽煏晻枱晻晻〃埠晻枙⒏悠惺<EFBFBD>仍艺咽偈啞鸡畷枦暋炒<EFBFBD>凡骸<EFBFBD>﹔o垥檿梤o“<EFBFBD>睈暅棖脯徹翁蛷穿〃狈<EFBFBD>资搮<EFBFBD>軈魄在賲偻呜ぁ炒<EFBFBD>ū贰<EFBFBD>箹晽暋ū穜o〃埠晻枙箰晻棔—稅晻暆<EFBFBD>賲偻蕝⒐谧窃韧谱淌<EFBFBD>〖Ξ晼洉穿》埠‖<EFBFBD>晻晻〃狈驹趨绕訁推凼呂賲嗽讌俗适摗炒﹔o畢稍訉賲厥蕝朴迏以邮迏杂呣在憆o朴捃妻摗炒<EFBFBD><EFBFBD>﹔o垥檿榬o“<EFBFBD>脯〃狈驹趯资呉呜匚犹呍谫啞炒<EFBFBD><EFBFBD>﹔o垥檿檙o“<EFBFBD>睈暅棖脯徹翁蛷穿〃狈<EFBFBD>资搮<EFBFBD>軈魄在賲偻呜ぁ炒<EFBFBD>ū贰<EFBFBD>箹晿潯ū穜o〃埠晻枙箰晻槤<EFBFBD>賲偻蕝⒓臀邑稳蒲吀倨注啞鸡畷枦暋<EFBFBD>悤枟潯<EFBFBD>悤湕棥炒<EFBFBD>凡骸<EFBFBD>箷晻暋ū矾谪賲茀墒仍灼傥杂憛畬覅扑灼紊憽炒﹔o勤賲拊趯凼吰炎势赊吿再呝褪ro刭自犹守賲苁普杂憛卦呠推賠o恃厥吶朴叜吷预穿—畅ro垥櫀時o“<EFBFBD>脯雇蕝杂蕝芡詤厥蒲噬呞貐谡呂訁褪资ro呜吰呠钨韧呌埔噬叝视衅摗炒<EFBFBD>ū窊摀и賲钨屫呌再吳嗜期厥呚褪呁瀑守ro谪呍讌朴拶臀犹摗炒﹔o际屪蕝褪资呂訁偻呜呇魄拮斡偻呂觬o宰墒讌僭呎自偈荣呚砸寿臀犹摗炒<EFBFBD>ū窊摀畢稍訉賲资蒲艳呑室室鞘讌芡瀑ro钨呂貐朴抟宰蕬吳谫呝推賹貐蒲裷o孜掏賳穿—畅ro垥殨時o“<EFBFBD>ˇ帛晻暀煏殨枴簿<EFBFBD>晻棥复簳暁棥哺<EFBFBD>购翻<EFBFBD>唵啞鸡畷枙暋炒﹔o雇瀑吶褪刭呂貐椅邮啞炒<EFBFBD>ū穜o脯竿攒呉蕝茀‖<EFBFBD>晻暀參财韧斡蕝<EFBFBD>英吰由叜屟裷o咽賲拊趨推凼呠推賹貐斡匚墒摗炒<EFBFBD><EFBFBD>﹔o垥殨杛o“<EFBFBD>悲棜晻煏晻枴<EFBFBD>悧殨暋复簳晽棥ǔ禃殨暉晻棖煏晻暋<EFBFBD>獣殨梤o垥殨梤o—华晻湑ro垥殩時o“<EFBFBD>ˇ帛晻晿煏殩枴簿<EFBFBD>晻棥复簳暁棥哺<EFBFBD>购翻<EFBFBD>唵啞鸡畷枙暋炒﹔o雇瀑吶褪刭呂貐椅邮啞炒<EFBFBD>ū穜o脯竿攒呉蕝茀‖<EFBFBD>晻晿<EFBFBD>巫是蒲癣吰由叜屟褏咽賠o拊趨推凼呠推賹貐斡匚墒摗炒<EFBFBD><EFBFBD>﹔o垥殩杛o“<EFBFBD>悲棜晼煏晻枴<EFBFBD>悧殨枴复簳晽棥ǔ禃殩暉晻棖煏晻暋<EFBFBD>獣殩梤o垥殩梤o—华晻暁ro垥殫時o“<EFBFBD>ˇ帛晻枠煏殫枴簿<EFBFBD>晻棥复簳暁棥哺<EFBFBD>购翻<EFBFBD>唵啞鸡畷枙暋炒﹔o雇瀑吶褪刭呂貐椅邮啞炒<EFBFBD>ū穜o脯竿攒呉蕝茀‖<EFBFBD>晻枠⒏遮注吰由叜屟褏咽賲拊趓o推凼呠推賹貐斡匚墒摗炒<EFBFBD><EFBFBD>﹔o垥殫杛o“<EFBFBD>悲棜晽煏晻枴<EFBFBD>悧殨棥复簳晽棥ǔ禃殫暉晻棖煏晻暋<EFBFBD>獣殫梤o垥殫梤o—华晻潩

View file

@ -1 +0,0 @@
=:S``i`=:l}~qls}…```hlvqy````lv|zbdacj``iflu~t=:S``ia=:l}~qls}…```hlvqy```alv|zbdacj``iflu~t=:S``ib=:l}~qls}…```hlvqy```blv|zbdacj``iflu~t=:S``ic=:l}~qls}…```hlvqy```clv|zbdacj``iflu~t=:S``id=:l}~qls}…```hlvqy```dlv|zbdacj``iflu~t=:S``if=:ls}€```bj``baj````ls}€```cj``baj````lu~t=:S``ii=:l{u‰l}~qls}…```h=:lq~€`b``j```aj````lvqy```d=:ls~€`c`aj`aabj```bl‡qy`a``=:lq~€`b``j````j````=:l}‰t````lt~€`c`alƒ}slv|zbdacj``iflu~t=:S`a``=:l{u‰lƒ…``aalq~€`a``j````j```blvq````l}‰t````l„q``cij``i`j`aigj``ad=:S`aa0=:l{u‰lƒ…``aalq~€`aa`j````j```blvq```bl}‰t```bl„q``ddj``ibj```bj``ac=:=:=:=:S`b``=:lu†u`b`a=:S`b`a=:l{u‰l}ƒwtŸP©Ÿ¥P§ž¤P¤ŸP—ŸP¤ŸPq¢¤˜¥¢W£=:˜Ÿ¥£•ol‰~z````ls|=:ls~€`c``j`aaaj```blx}sl‡qy``f`lq~€`b``j```aj````=:l‡qy`a``lvq```dl„q```aj``iij```ej```h=:S`c``=:S`c`a=:S`e``=:l{u‰l}‰t```bls}…````lvqy```blv|qlƒ…``bil‡qy``e`=:l}ƒwol~tls|lq~€`e``j``a`j````l‡qy`ac`lƒ…``bcl‡qy``b`ls}…```h=:lv|]`ebclv|[`gd`lt~€`e``lu~t=:S`e`a=:l{u‰lƒ…``bblv|z`gdaj```alv|[`gdals~€`e`aj``baj````lu†u`e`b=:S`e`b=:lu†u``fh

Binary file not shown.

View file

@ -1 +0,0 @@
IF_llulIFx墛}x墤llmux倉卨lllx亰€IF_llumIFx墛}x墤llmux倉卨llmx亰€IF_llunIFx墛}x墤llmux倉卨llnx亰€IF_lluoIFx墛}x墤llmux倉卨llox亰€IF_llupIFx墛}x墤llmux倉卨llpx亰€IF_lmllIFx寧厁倉媗llpx悗}llmlvllupvlnnnvllonIF_lnlnIFx倛唋rpmvlnlox寧厁墢儏癨倡猚癨<E78C9A>—jjjx妺€x亰€IF_lnloIFx寧厁倉媗lllx悗}llotvllulvlloqvllmoIF_lnlpIF_lnlqIF_lollIFx寧厁弸憀lnnx€妼lollx亽乴olmIF_lolmIFx亽乴lmpIF_lpllIFx噥晉}妼lqlmvllmlvlllnx墤llllx墢僝]x妺€x垘jjjjjx妺€x垘叞\ǐ<>痋ēА\但盶ぅ癨挨<E799A8>F<46>獱jx妺€x垘摛<E6919B>ク\挨ク\<5C><EFBFBD>x妺€x垕IFx墪€lllnIFx墛}x倉卨llmx搣卨lqlx€妼lqlmx弶x搣卨mllx墤llmux倛gnpmox亰€IF_lplnIFx噥晉倛唋rpmvlplox墢儀悜巰玕但盶碀<E79BB6>\矮\<5C>—\挨<><EFBFBD>{x晩唋lllx垕IFx倛glrpmIFx倠妉nlnvllrpx搣卨mqlx弸憀lpoIFx}妼lnlpvllmlvllllx搣卨lltx}妼lqlnvllllvlllnIFx}妼lnlqvllmlvlllnx搣卨lntIFx}妼lqllvllllvllll<搣卨mllIFx€妼lnlpx€妼lnlqIFx倠塴lonx搣卨mllIFx倠塴lmrIFx€妼lqllx€妼lqlnx墪€llllx亰€IF_lploIFx噥晉墢儛ぁ\牜<>\ク\<5C>—jx妺€x亰€IF_lpmlIF_lqllIFx寧厁墢儏\灐癨墺<E799A8><E5A2BA>\矮<><E79FAE>\但盜F牜唱\ぁ<>jx妺€IF暙盶<E69A99><E79BB6>\挨オ<E68CA8>jjx妺€IF悿ク\ク\挨<><EFBFBD>獱c痋爱澂<E788B1>ぁ潿jx妺€IF嫪煛\但盶癨オhIF但盶<E4BD86>病甛<EFBC81>癹jjx妺€x亰€IF_lqlmIF_lqlnIFx寧厁墢儛ぁ\<5C>グ煠\挨澃\<5C>—痋挨クIF牜<46>\ク\<5C><><EFBFBD><EFBFBD>\矮\灐\爆\矮琁F<E79081><46><E995BF>x妺€IF~卑\挨<><E68CA8><EFBFBD><EFBFBD>痋爱<E7978B>У\爆IF挨<E68CA8>x妺€IF匼è\<5C>\潽燶<E6BDBD>\潱潵狪F豹哎╘匼灝<E58CBC><E7819D>┑\ājx妺€x亰€IF_lqloIFx寧厁墢儛ぁ<E5849B>\ク\<5C>\<5C><>礿x妺€x亰€IF_lrllIF_lrlmIFx噥晉墛}x墤llmuIFx}妼lrmlvlllmvllllx倉卨llpIFx妼lrlmvlmmnvllllx搣卨mllIFx}妼lrmlvllllvllllIFx墪€llllx€妼lrlmx弶x亰€IF_lrmlIFx噥晉倛glnpoIFx妼lrllvlmmmvlllnx剦x搣卨lrlx}妼lrmlvlllmvllllIFx搣卨mllx倉媗llpx悗}llmlvlrlmvlnomvllorIFIFIFIF

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