mirror of
https://github.com/cave-story-randomizer/cave-story-randomizer
synced 2025-12-07 13:01:48 +00:00
Compare commits
388 commits
v0.8C-patc
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
03be08f0a2 | ||
|
|
1c35a17717 | ||
|
|
5e6321dd55 | ||
|
|
1a632137db | ||
|
|
08f0c555f5 | ||
|
|
fad711364b | ||
|
|
902dcd71d9 | ||
|
|
140f892222 | ||
|
|
b919a44e14 | ||
|
|
ab1db92c40 | ||
|
|
6e27d66b06 | ||
|
|
6e9edf4290 | ||
|
|
45586f9a95 | ||
|
|
0a93bf3867 | ||
|
|
268209bff0 | ||
|
|
dab4ba4baa | ||
|
|
43cb531c41 | ||
|
|
a95c51c9c3 | ||
|
|
5bc2db4b58 | ||
|
|
6bf382b6b0 | ||
|
|
18a0eb77e4 | ||
|
|
ebf96d7d2f | ||
|
|
483585cd21 | ||
|
|
2ac159cd9c | ||
|
|
1bade28b09 | ||
|
|
8617fc3a0c | ||
|
|
75317390eb | ||
|
|
e7eaf7f2ee | ||
|
|
e0058a66ca | ||
|
|
106e520a32 | ||
|
|
dab682c263 | ||
|
|
91043f453b | ||
|
|
396c461738 | ||
|
|
8d129d39c4 | ||
|
|
33f12180ae | ||
|
|
83a7b13674 | ||
|
|
d6ca45ba01 | ||
|
|
d70e9214dd | ||
|
|
925b8563bf | ||
|
|
e3b44f719a | ||
|
|
7371f18cdd | ||
|
|
409aa7fed9 | ||
|
|
0e44bbcb74 | ||
|
|
6d6426ff05 | ||
|
|
5358ef9fc6 | ||
|
|
20dd317a09 | ||
|
|
81202a77eb | ||
|
|
bfc491b977 | ||
|
|
6e0dfdac37 | ||
|
|
ad4c5bbee6 | ||
|
|
3ada39e69a | ||
|
|
69df56ec09 | ||
|
|
0ee86f3df0 | ||
|
|
6f99626e4d | ||
|
|
c671f1b1dc | ||
|
|
01082581a8 | ||
|
|
db760f1710 | ||
|
|
ab605182cf | ||
|
|
d27ae7d457 | ||
|
|
753e67faa0 | ||
|
|
c9c4bf1e10 | ||
|
|
4d06730cf9 | ||
|
|
24bb760bc0 | ||
|
|
d291c3bd1d | ||
|
|
4315246bc1 | ||
|
|
e3217bbb32 | ||
|
|
75161d4491 | ||
|
|
aa32fa15d9 | ||
|
|
4c2eedb155 | ||
|
|
56d4554789 | ||
|
|
c25e8d4c27 | ||
|
|
04a51779f4 | ||
|
|
65472dfd78 | ||
|
|
02f5f3ea5e | ||
|
|
b8ac34d683 | ||
|
|
c4efb015eb | ||
|
|
1daae46f65 | ||
|
|
d1221df9fb | ||
|
|
ad204a3bc7 | ||
|
|
c1d39f7296 | ||
|
|
f7190478cd | ||
|
|
f7ff04ac79 | ||
|
|
c5bfc84257 | ||
|
|
9af7ea8336 | ||
|
|
03e3d66add | ||
|
|
36ef32dc61 | ||
|
|
eb4cf55627 | ||
|
|
3a04c8e228 | ||
|
|
1513d3f068 | ||
|
|
82cfca5f8d | ||
|
|
a02de3c01a | ||
|
|
b9191b132f | ||
|
|
24a1f0eb49 | ||
|
|
42f4e74c85 | ||
|
|
46f7d13f70 | ||
|
|
b235d47f74 | ||
|
|
55ae1250a0 | ||
|
|
08fe90b770 | ||
|
|
61407e6e0e | ||
|
|
a344869392 | ||
|
|
e38dcdb197 | ||
|
|
ea83e7643f | ||
|
|
0ef7042a60 | ||
|
|
137e30edcc | ||
|
|
bd8e4889fa | ||
|
|
05409023cd | ||
|
|
105fd7eac1 | ||
|
|
943ac7a61e | ||
|
|
1018d1c46c | ||
|
|
cedd865e24 | ||
|
|
06776a7828 | ||
|
|
2a042c24e4 | ||
|
|
347bfcdc57 | ||
|
|
0f4d0ee04c | ||
|
|
168737fc52 | ||
|
|
e49606f1b8 | ||
|
|
b5f7c9eddd | ||
|
|
d76b811fda | ||
|
|
bbfa4e5661 | ||
|
|
6b07edf4ef | ||
|
|
6ad63828c9 | ||
|
|
d576f7e275 | ||
|
|
5f9d957c9c | ||
|
|
d72738d474 | ||
|
|
4b57793746 | ||
|
|
aa1dadef18 | ||
|
|
ea6549139c | ||
|
|
170e60dcdd | ||
|
|
0f4d4d23fa | ||
|
|
d280a76d90 | ||
|
|
1cd3e0d381 | ||
|
|
5cd8fdddc2 | ||
|
|
c9e8d0452d | ||
|
|
081d7e8f25 | ||
|
|
e6a7e062f8 | ||
|
|
bd061957f2 | ||
|
|
24fb2f6c8e | ||
|
|
9ff300848c | ||
|
|
55c0c11a4b | ||
|
|
fd490d7b6f | ||
|
|
2ef19b8409 | ||
|
|
a1f825681e | ||
|
|
e3efb864b1 | ||
|
|
f62d54fe98 | ||
|
|
1f44720d31 | ||
|
|
6ffe9b3a84 | ||
|
|
2619ce5377 | ||
|
|
063f2ce0a9 | ||
|
|
9c879e0c74 | ||
|
|
969353a277 | ||
|
|
689130b536 | ||
|
|
ea3a022208 | ||
|
|
061a8d45e0 | ||
|
|
29802c3cb4 | ||
|
|
2195323b75 | ||
|
|
8fb4710c8e | ||
|
|
afbb107b3a | ||
|
|
befa3d360f | ||
|
|
7f97841714 | ||
|
|
4e3de4071f | ||
|
|
c063ee7b20 | ||
|
|
cda8d3b568 | ||
|
|
2bcd0a40aa | ||
|
|
03e1955b2f | ||
|
|
7c5fd92aa9 | ||
|
|
5bb304d1f8 | ||
|
|
a325765c63 | ||
|
|
00f29cb90c | ||
|
|
d1a270b234 | ||
|
|
d3c73177e5 | ||
|
|
e576e897db | ||
|
|
9c4d3264a9 | ||
|
|
5e08b8fcd1 | ||
|
|
8a11ff4da7 | ||
|
|
12f1dc1bb1 | ||
|
|
8b0c4c0541 | ||
|
|
a06d49d87f | ||
|
|
5acbe41fc2 | ||
|
|
e5ef1c7924 | ||
|
|
b8628a7a2c | ||
|
|
f2158589ba | ||
|
|
b1e9b4d1c3 | ||
|
|
5b6b353fff | ||
|
|
b5115d4d03 | ||
|
|
d1ecb67666 | ||
|
|
57b5f32705 | ||
|
|
4351467e38 | ||
|
|
4624065639 | ||
|
|
6158433ed3 | ||
|
|
b481be5357 | ||
|
|
6e6de0d7c1 | ||
|
|
d81b944e77 | ||
|
|
adb7135881 | ||
|
|
df8257a2aa | ||
|
|
915856a71a | ||
|
|
707e44a398 | ||
|
|
6442cc6000 | ||
|
|
277e3e2c4c | ||
|
|
5f99facdd3 | ||
|
|
5e7d3a6269 | ||
|
|
bc5b2c657d | ||
|
|
061a9ce57c | ||
|
|
65cd5a1d8b | ||
|
|
5a7fe8a25a | ||
|
|
67bf6706fc | ||
|
|
0a12d846c5 | ||
|
|
10bfd01bac | ||
|
|
60b512b365 | ||
|
|
90b64d8917 | ||
|
|
386bcc477b | ||
|
|
51c8ad2a44 | ||
|
|
9209f9992e | ||
|
|
420e506cf0 | ||
|
|
dcae310995 | ||
|
|
fb54ffdef6 | ||
|
|
f06245f2d3 | ||
|
|
31a65e1e1d | ||
|
|
e630e62e02 | ||
|
|
92c82f20a9 | ||
|
|
afb6fefb93 | ||
|
|
e4594fbb82 | ||
|
|
7bfeb7952b | ||
|
|
194641f06d | ||
|
|
f3d666efef | ||
|
|
2708aef353 | ||
|
|
b589934e71 | ||
|
|
75a69441fe | ||
|
|
4aa35092a3 | ||
|
|
3c71d0ac9b | ||
|
|
d85e02a06b | ||
|
|
65b4d76a45 | ||
|
|
382fffdca9 | ||
|
|
c443f33dad | ||
|
|
09eae80dfb | ||
|
|
4ca549f1e7 | ||
|
|
b71cf74e73 | ||
|
|
4b14645fb9 | ||
|
|
900992db5f | ||
|
|
0213e35cb4 | ||
|
|
657670737c | ||
|
|
68aa8ec09d | ||
|
|
4ef9558ea1 | ||
|
|
2c5ad7dafb | ||
|
|
f8eedf4e28 | ||
|
|
8fb4630a62 | ||
|
|
b4c3799999 | ||
|
|
67e3154b97 | ||
|
|
4e697ff787 | ||
|
|
4c0b005e18 | ||
|
|
9a7dac435d | ||
|
|
e1b24f451d | ||
|
|
bc8dbbd627 | ||
|
|
77ee541c56 | ||
|
|
763d43cd4b | ||
|
|
0606e54105 | ||
|
|
2efcf8e911 | ||
|
|
5645fe3064 | ||
|
|
55fda5d4f9 | ||
|
|
79dcf36934 | ||
|
|
e77239387c | ||
|
|
13a503e696 | ||
|
|
866e9d3ee0 | ||
|
|
8754ed6b9d | ||
|
|
03c082ae5b | ||
|
|
734f772164 | ||
|
|
9b24429db7 | ||
|
|
b4de34f4c8 | ||
|
|
ba8a2f61d3 | ||
|
|
dc7111f0c3 | ||
|
|
a924fbd63e | ||
|
|
23be631cac | ||
|
|
58f02f9180 | ||
|
|
078b9674bd | ||
|
|
068a98074c | ||
|
|
7e9f5d697a | ||
|
|
f58357832d | ||
|
|
af8421e2a5 | ||
|
|
03cf184071 | ||
|
|
67adcb6639 | ||
|
|
e52e63f8e8 | ||
|
|
9432cdcea3 | ||
|
|
57bce5fd86 | ||
|
|
6145e1e234 | ||
|
|
a75676ad2d | ||
|
|
16f1172afc | ||
|
|
69d9afdd5e | ||
|
|
c894799a5b | ||
|
|
9acc690ccf | ||
|
|
9142ee6341 | ||
|
|
e22350a2e8 | ||
|
|
1e569ebe95 | ||
|
|
c5ee18c2a6 | ||
|
|
ede8e618c1 | ||
|
|
25ecbca6d2 | ||
|
|
ca1f1bc51e | ||
|
|
8a6a8ac0ed | ||
|
|
b275ec14ad | ||
|
|
655c71a058 | ||
|
|
51b633ec13 | ||
|
|
4b75ff6abc | ||
|
|
19c6880f9a | ||
|
|
1914775e22 | ||
|
|
18d95f204f | ||
|
|
b4927ea36e | ||
|
|
e44f606479 | ||
|
|
e974d97c7f | ||
|
|
7ed589966e | ||
|
|
9ebbbfaa15 | ||
|
|
9378373661 | ||
|
|
1032d69320 | ||
|
|
c0ce91d1c6 | ||
|
|
13e531c354 | ||
|
|
435d5347f0 | ||
|
|
dc6ac6040a | ||
|
|
f6efe15df0 | ||
|
|
efea98845d | ||
|
|
03afa18131 | ||
|
|
5b172e650c | ||
|
|
4426eb69ec | ||
|
|
46eb8dc016 | ||
|
|
a09179fc56 | ||
|
|
730d7b92fd | ||
|
|
068121a278 | ||
|
|
174f3c5f4b | ||
|
|
69c8a0e2b8 | ||
|
|
ce7ee57279 | ||
|
|
49a1689010 | ||
|
|
beeae91283 | ||
|
|
a27745465f | ||
|
|
693b04b8cf | ||
|
|
1e4d875f1c | ||
|
|
6ba47caa5f | ||
|
|
98ef3ca075 | ||
|
|
b4e08a2d07 | ||
|
|
021bac9307 | ||
|
|
9eb5b6e4b1 | ||
|
|
58a771289b | ||
|
|
1a020162b0 | ||
|
|
6d1c805c56 | ||
|
|
f00114143d | ||
|
|
175b4790d5 | ||
|
|
523fe7ef65 | ||
|
|
ed6234a1c0 | ||
|
|
daf9d4c4b6 | ||
|
|
d2ec0d633f | ||
|
|
e1811934d4 | ||
|
|
2189bee2f5 | ||
|
|
ea84cf35ec | ||
|
|
a8eb4e12ed | ||
|
|
e8a8abbecd | ||
|
|
ff6701d60c | ||
|
|
b73c59a7d9 | ||
|
|
4e1dbd19cf | ||
|
|
f8f994b4ae | ||
|
|
d7969ecd65 | ||
|
|
ee3c595077 | ||
|
|
45fc1300fc | ||
|
|
45dcc77a17 | ||
|
|
a40be80975 | ||
|
|
cb2edb55fb | ||
|
|
6ceb103b15 | ||
|
|
9d1a2fc8c6 | ||
|
|
8e997d0e45 | ||
|
|
0f4186bde8 | ||
|
|
d3cb2402ce | ||
|
|
087da92f42 | ||
|
|
1e09dad380 | ||
|
|
36f282df63 | ||
|
|
5c530d318e | ||
|
|
ca655e2e55 | ||
|
|
823a9116c4 | ||
|
|
9e6ab35470 | ||
|
|
edee93e065 | ||
|
|
ba3fc3d86f | ||
|
|
bf10950a1e | ||
|
|
b12b81a856 | ||
|
|
1317d93870 | ||
|
|
d9a60fc3ce | ||
|
|
c7f8d3a66a | ||
|
|
3035764ad4 | ||
|
|
09e4883acf | ||
|
|
afd6e3405b | ||
|
|
f798197223 | ||
|
|
df3aff4628 | ||
|
|
4b5b26824d | ||
|
|
9d42f9be93 | ||
|
|
4c8e6933f3 | ||
|
|
5e83a639b6 |
32
.github/workflows/daily.yml
vendored
Normal file
32
.github/workflows/daily.yml
vendored
Normal 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
137
.github/workflows/python.yml
vendored
Normal 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
33
.github/workflows/workflow-validate.yml
vendored
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
name: Check Workflow Files
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
merge_group:
|
||||
pull_request:
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install action-validator with asdf
|
||||
uses: asdf-vm/actions/install@v3
|
||||
with:
|
||||
tool_versions: |
|
||||
action-validator 0.5.1
|
||||
|
||||
- name: Lint Actions
|
||||
run: |
|
||||
find .github/workflows -type f \( -iname \*.yaml -o -iname \*.yml \) \
|
||||
| xargs -I {} action-validator --verbose {}
|
||||
27
.gitignore
vendored
27
.gitignore
vendored
|
|
@ -1,13 +1,22 @@
|
|||
data/*
|
||||
notes/*
|
||||
|
||||
pre-edited-cs/Config\.dat
|
||||
|
||||
pre-edited-cs/Doukutsu\.exe\.blbkp
|
||||
|
||||
pre-edited-cs/Profile\.dat
|
||||
|
||||
pre-edited-cs/window\.rect
|
||||
|
||||
pre-edited-cs/Profile\.dat\.bkp
|
||||
*Copy/
|
||||
|
||||
venv/
|
||||
|
||||
build/
|
||||
|
||||
dist/
|
||||
|
||||
cave_story_randomizer.egg-info/
|
||||
|
||||
**/__pycache__
|
||||
|
||||
pre_edited_cs/**/Doukutsu\.exe\.blbkp
|
||||
pre_edited_cs/**/Profile*
|
||||
pre_edited_cs/**/window\.rect
|
||||
|
||||
pre_edited_cs/data/version.txt
|
||||
|
||||
pre_edited_cs/freeware/Doukutsu_backup.exe
|
||||
|
|
|
|||
|
|
@ -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
18
.pre-commit-config.yaml
Normal 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
8
.tscrc.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"setup": {
|
||||
"looseChecking": {
|
||||
"events": true,
|
||||
"arguments": true
|
||||
}
|
||||
}
|
||||
}
|
||||
51
README.md
51
README.md
|
|
@ -1,52 +1,3 @@
|
|||
# Cave Story Randomizer [Open Mode]
|
||||
|
||||
The Cave Story Randomizer shuffles the location of every item in Cave Story, creating a new experience each time you play! The randomizer has logic in place to ensure that you can always reach every item and finish the game. Get started by heading to the [releases page](https://github.com/cave-story-randomizer/cave-story-randomizer/releases) and downloading the most recent version! If you find yourself stuck, wanting to talk about the hilarious location you found the panties in, or just plain enjoying the game please consider joining our [official Discord server](https://discord.gg/7zUdPEn) and hanging out!
|
||||
|
||||
## Main differences
|
||||
Note that there are a few key differences from the vanilla game in order to improve the playing experience:
|
||||
|
||||
- All 5 teleporter locations in Arthur's House are active from the beginning of the game
|
||||
- All other teleporters from the vanilla game are active and linked to one another at all times
|
||||
- A teleporter between Sand Zone (near the Storehouse) and Labyrinth I has been placed and can be activated in one of two ways:
|
||||
1. Defeating Toroko+
|
||||
2. Using the teleporter from the Labyrinth I side
|
||||
- Most cutscenes have been abridged or skipped entirely
|
||||
- Jellyfish Juice can be used an infinite number of times
|
||||
- You can carry as many as 5 puppies at once: Jenka will only accept them once you've collected all 5
|
||||
- By the way, all 5 puppies will be located somewhere in the Sand Zone
|
||||
- Certain items that are received from NPCs have been placed in chests:
|
||||
- Labyrinth B (Fallen Booster)
|
||||
- Labyrinth Shop
|
||||
- One requiring the Machine Gun to open
|
||||
- One requiring the Fireball to open
|
||||
- One requiring the Spur to open
|
||||
- Jail no. 1
|
||||
- Storage? (Ma Pignon)
|
||||
- This chest requires saving Curly in the Waterway to open
|
||||
- If you don't have Curly's Air Tank after defeating the Core, the water will not rise and you may leave without dying
|
||||
- Curly cannot be left behind permanently in the Core; the shutter will never close once the boss has been defeated
|
||||
- The jump in the Waterway to save Curly has been made much easier
|
||||
- Ironhead will always give you his item on defeat (but there's still a special surprise if you defeat him without taking damage!)
|
||||
- Kazuma will only open the door between Egg no. 0 and the Outer Wall if you save him in Grasstown
|
||||
- Kazuma's door can be blown down from both the outside and the inside
|
||||
- Entering the Throne Room to complete the game requires doing three things:
|
||||
1. Saving Sue in the Egg Corridor
|
||||
2. Obtaining the Booster 2.0
|
||||
3. Obtaining the Iron Bond
|
||||
|
||||
## Help me!
|
||||
If you find yourself stuck, here are a few common pitfalls:
|
||||
- Remember that the Jellyfish Juice can quench more than one fireplace
|
||||
- The Graveyard can only be accessed if you obtain the Silver Locket and see Toroko get kidnapped
|
||||
- The Hermit Gunsmith will wake up and give you an item if you defeat the Core and show him his gun
|
||||
- The western side of the Labyrinth can be accessed without flight if you defeat Toroko+
|
||||
- The Plantation can be accessed without the Teleporter Room Key if you save Kazuma and teleport in or climb the Outer Wall
|
||||
- The Waterway can be accessed without the Cure-All by using the teleporter in the Labyrinth Shop
|
||||
- There may be a required item in the Last Cave (Hidden) as a reward for defeating the Red Demon
|
||||
|
||||
If you're still stuck, join our [official Discord server](https://discord.gg/7zUdPEn) and ask for help in there!
|
||||
|
||||
## Credits
|
||||
- Original Cave Story Randomizer by shru: https://shru.itch.io/cave-story-randomizer
|
||||
- Font: https://datagoblin.itch.io/monogram
|
||||
- Icon: Bubbler (@Ethan#6397)
|
||||
A patcher for randomizing Cave Story. If you want to play, check out [Randovania](https://github.com/randovania/randovania)!
|
||||
|
|
|
|||
18
__pyinstaller/__init__.py
Normal file
18
__pyinstaller/__init__.py
Normal 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__)]
|
||||
5
__pyinstaller/hook-caver.py
Normal file
5
__pyinstaller/hook-caver.py
Normal 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'])
|
||||
5
__pyinstaller/hook-pre_edited_cs.py
Normal file
5
__pyinstaller/hook-pre_edited_cs.py
Normal 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
218
caver/patcher.py
Normal 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
0
caver/py.typed
Normal file
23
caver/schema/__init__.py
Normal file
23
caver/schema/__init__.py
Normal 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
195
caver/schema/schema.json
Normal 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
54
caver/schema/types.py
Normal 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
|
||||
25
caver/schema/validator_with_default.py
Normal file
25
caver/schema/validator_with_default.py
Normal 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
169
caver/tsc_file.lua
Normal 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
|
||||
281
cs-hacks/DrowningMimigaMask/AnimationMyChar.txt
Normal file
281
cs-hacks/DrowningMimigaMask/AnimationMyChar.txt
Normal 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
|
||||
36
cs-hacks/DrowningMimigaMask/InitMyChar.txt
Normal file
36
cs-hacks/DrowningMimigaMask/InitMyChar.txt
Normal 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
|
||||
|
||||
34
cs-hacks/DrowningMimigaMask/ProcessAir.txt
Normal file
34
cs-hacks/DrowningMimigaMask/ProcessAir.txt
Normal 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
|
||||
16
cs-hacks/DrowningMimigaMask/PutMyChar.txt
Normal file
16
cs-hacks/DrowningMimigaMask/PutMyChar.txt
Normal 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
|
||||
43
cs-hacks/IncreaseMAX_STRIP/ActionStripper.txt
Normal file
43
cs-hacks/IncreaseMAX_STRIP/ActionStripper.txt
Normal 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
|
||||
36
cs-hacks/IncreaseMAX_STRIP/InitCreditScript.txt
Normal file
36
cs-hacks/IncreaseMAX_STRIP/InitCreditScript.txt
Normal 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
|
||||
2
cs-hacks/IncreaseMAX_STRIP/LoadGenericDataMAX_STRIP.txt
Normal file
2
cs-hacks/IncreaseMAX_STRIP/LoadGenericDataMAX_STRIP.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
offset 4115e6
|
||||
PUSH 3F0 ; (MAX_STRIP - 1) * 0x10
|
||||
8
cs-hacks/IncreaseMAX_STRIP/Multi-File-List.txt
Normal file
8
cs-hacks/IncreaseMAX_STRIP/Multi-File-List.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
ActionStripper.txt
|
||||
InitCreditScript.txt
|
||||
LoadGenericDataMAX_STRIP.txt
|
||||
PutStripper.txt
|
||||
RestoreStripper.txt
|
||||
SetStripper.txt
|
||||
StartCreditScript.txt
|
||||
ReleaseCreditScript.txt
|
||||
135
cs-hacks/IncreaseMAX_STRIP/PutStripper.txt
Normal file
135
cs-hacks/IncreaseMAX_STRIP/PutStripper.txt
Normal 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
|
||||
34
cs-hacks/IncreaseMAX_STRIP/ReleaseCreditScript.txt
Normal file
34
cs-hacks/IncreaseMAX_STRIP/ReleaseCreditScript.txt
Normal 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
|
||||
86
cs-hacks/IncreaseMAX_STRIP/RestoreStripper.txt
Normal file
86
cs-hacks/IncreaseMAX_STRIP/RestoreStripper.txt
Normal 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
|
||||
116
cs-hacks/IncreaseMAX_STRIP/SetStripper.txt
Normal file
116
cs-hacks/IncreaseMAX_STRIP/SetStripper.txt
Normal 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
|
||||
160
cs-hacks/IncreaseMAX_STRIP/StartCreditScript.txt
Normal file
160
cs-hacks/IncreaseMAX_STRIP/StartCreditScript.txt
Normal 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
|
||||
107
cs-hacks/Infinite Orgs/InfiniOrg.xml
Normal file
107
cs-hacks/Infinite Orgs/InfiniOrg.xml
Normal 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">
|
||||
<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>
|
||||
48
cs-hacks/InstantTextDisplay/AutoSpeedText.xml
Normal file
48
cs-hacks/InstantTextDisplay/AutoSpeedText.xml
Normal 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>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
0x40CD91
|
||||
03
|
||||
0x40CDC8
|
||||
03
|
||||
4
cs-hacks/MiscHexPatches/FixNegativeWeaponSlot.txt
Normal file
4
cs-hacks/MiscHexPatches/FixNegativeWeaponSlot.txt
Normal 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
|
||||
2
cs-hacks/MiscHexPatches/FixSLPFlicker.txt
Normal file
2
cs-hacks/MiscHexPatches/FixSLPFlicker.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
0x41DB17
|
||||
95 EA
|
||||
9
cs-hacks/MiscHexPatches/Misc.txt
Normal file
9
cs-hacks/MiscHexPatches/Misc.txt
Normal 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).
|
||||
5
cs-hacks/MultipleSLPs/Patches.txt
Normal file
5
cs-hacks/MultipleSLPs/Patches.txt
Normal 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
|
||||
56
cs-hacks/MultipleSLPs/Readme.txt
Normal file
56
cs-hacks/MultipleSLPs/Readme.txt
Normal 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
|
||||
108
cs-hacks/NegativeVerticalCreditOffset/ActionCredit_Read.txt
Normal file
108
cs-hacks/NegativeVerticalCreditOffset/ActionCredit_Read.txt
Normal 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
|
||||
|
||||
|
||||
17
cs-hacks/RunWhenLosingFocus/gameFocus.xml
Normal file
17
cs-hacks/RunWhenLosingFocus/gameFocus.xml
Normal 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>
|
||||
99
cs-hacks/TitleScreenHash/Titlescreen_Hash_Display_Patch.txt
Normal file
99
cs-hacks/TitleScreenHash/Titlescreen_Hash_Display_Patch.txt
Normal 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.
|
||||
103
cs-hacks/VersionFromFile/version_from_file.txt
Normal file
103
cs-hacks/VersionFromFile/version_from_file.txt
Normal 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
695
docs/csresearch.md
Normal 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]
|
||||
|
|
@ -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
3358
docs/flag_listing.tsv
Normal file
File diff suppressed because it is too large
Load diff
2879
docs/flag_listing.txt
Normal file
2879
docs/flag_listing.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -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
|
|
@ -1,244 +0,0 @@
|
|||
#0000
|
||||
<END
|
||||
#0001
|
||||
<PRI<MSG<TUREmpty.<NOD<END
|
||||
#0002
|
||||
<AMJ0002:0003<PRI<MSG<TUR<GIT0002<AM+0002:0000
|
||||
Got the =Polar Star=!<WAI0025<NOD<END
|
||||
#0003
|
||||
<PRI<MSG<TUR<GIT0013<TAM0002:0013:0000
|
||||
=Polar Star= became the =Spur=!<WAI0025<NOD<END
|
||||
#0004
|
||||
<PRI
|
||||
<MSG<TUR<GIT0003
|
||||
Got the =Fireball=!<WAI0025<NOD<CLR
|
||||
<FLJ2801:0006<FL+2801<AM+0003:0000<END
|
||||
#0005
|
||||
<PRI
|
||||
<MSG<TUR<GIT0001
|
||||
Got the =Snake=!<WAI0025<NOD<CLR
|
||||
<FLJ2801:0006<FL+2801<AM+0001:0000<END
|
||||
#0006
|
||||
<PRI<MSG<TURYou may trade the =Fireball=
|
||||
with the =Snake= and vice-versa
|
||||
at the computer in Arthur's House.<WAI0050<NOD<FL+2802<END
|
||||
#0007
|
||||
<PRI<MSG<TUR<GIT0007<AM+0007:0100<FL+2820
|
||||
Got the =Bubbler=!<WAI0025<NOD<END
|
||||
#0008
|
||||
<PRI<MSG<TUR<GIT0004<AM+0004:0100
|
||||
Got the =Machine Gun=!<WAI0025<NOD<END
|
||||
#0009
|
||||
<PRI
|
||||
<MSG<TUR<GIT0009
|
||||
Got the =Blade=!<WAI0025<NOD<CLR
|
||||
<FLJ2810:0011<FL+2810<AM+0009:0000<END
|
||||
#0010
|
||||
<PRI
|
||||
<MSG<TUR<GIT0012
|
||||
Got the =Nemesis=!<WAI0025<NOD<CLR
|
||||
<FLJ2810:0011<FL+2810<AM+0012:0000<END
|
||||
#0011
|
||||
<PRI<MSG<TURYou may trade the =Nemesis=
|
||||
with the =Blade= and vice-versa
|
||||
at the computer in Arthur's House.<WAI0050<NOD<FL+2811<END
|
||||
#0012
|
||||
<PRI<MSG<TUR<GIT1006Got a =Life Capsule=!<ML+0003
|
||||
Max health increased by 3!<WAI0025<NOD<END
|
||||
#0013
|
||||
<PRI<MSG<TUR<GIT1006Got a =Life Capsule=!<ML+0004
|
||||
Max health increased by 4!<WAI0025<NOD<END
|
||||
#0014
|
||||
<PRI<MSG<TUR<GIT1006Got a =Life Capsule=!<ML+0005
|
||||
Max health increased by 5!<WAI0025<NOD<END
|
||||
#0016
|
||||
<PRI<MSG<TUR
|
||||
Do you want to save?<YNJ0000<FL+0431<SVP<CLRGame saved.<NOD<END
|
||||
#0017
|
||||
<PRI<SAT<FLJ0201:0018
|
||||
<LI+1000<SOU0020<AE+<MSG
|
||||
Health refilled.<NOD<END
|
||||
#0018
|
||||
<PRI
|
||||
<LI+1000<SOU0020<AE+<MSG
|
||||
Health and missiles refilled.<NOD<END
|
||||
#0019
|
||||
<KEY<MSG<TUR
|
||||
Do you want to rest?<YNJ0000<FAO0004<CMU0000<WAI0020<CLR<TUR.....<NOD<CLO
|
||||
<WAI0050
|
||||
<LI+1000<SOU0020<MYD0002<MSG<TUR
|
||||
Health restored.<NOD<CLO<RMU<FAI0004<END
|
||||
#0020
|
||||
<FL+0274<SNP0136:0000:0000:0000<IT+0014
|
||||
<FLJ5004:0024<FLJ5003:0023<FLJ5002:0022<FLJ5001:0021<FL+5001
|
||||
<PRI<MSG<TUR<GIT1014
|
||||
Got a =Puppy=!<WAI0025<NOD<END
|
||||
#0021
|
||||
<PRI<MSG<TUR<GIT1014<FL+5002
|
||||
Got a second =Puppy=!<WAI0025<NOD<END
|
||||
#0022
|
||||
<PRI<MSG<TUR<GIT1014<FL+5003
|
||||
Got a third =Puppy=!<WAI0025<NOD<END
|
||||
#0023
|
||||
<PRI<MSG<TUR<GIT1014<FL+5004
|
||||
Got a fourth =Puppy=!<WAI0025<NOD<END
|
||||
#0024
|
||||
<PRI<MSG<TUR<GIT1014<FL+5005<FL+0593
|
||||
Got the last =Puppy=!<WAI0025<NOD<END
|
||||
#0030
|
||||
<PRI<FLJ2420:0032<FLJ0201:0031<FL+0201<AM+0005:0010<MSG<TUR
|
||||
<GIT0005Got the =Missile Launcher=!<WAI0025<NOD<END
|
||||
#0031
|
||||
<PRI<AM+0005:0005<MSG<TUR
|
||||
<GIT0006Max missiles increased by 5!<NOD<END
|
||||
#0032
|
||||
<PRI<AM+0010:0005<MSG<TUR
|
||||
<GIT0011Max missiles increased by 5!<NOD<END
|
||||
#0033
|
||||
<FL+2420<FL+0201<AMJ0005:0034
|
||||
<PRI<MSG<TUR<GIT0010<AM+0010:0005
|
||||
Got the =Super Missile Launcher=!<WAI0025<NOD<END
|
||||
#0034
|
||||
<PRI<MSG<TUR<GIT0010<TAM0005:0010:0000
|
||||
Your Missiles have been powered up!<WAI0025<NOD<END
|
||||
#0035
|
||||
<PRI<FLJ2420:0037<FLJ0201:0036<FL+0201<MSG<TUR<GIT0005<AM+0005:0029
|
||||
Got the =Missile Launcher=!<WAI0025<NOD<END
|
||||
#0036
|
||||
<PRI<AM+0005:0024<MSG<TUR<GIT0006Max missiles increased by 24!<WAI0025<NOD<END
|
||||
#0037
|
||||
<PRI<AM+0010:0024<MSG<TUR<GIT0011Max missiles increased by 24!<WAI0025<NOD<END
|
||||
#0040
|
||||
<KEY<CMU0000<WAI0040<PRI<WAI0040<CMU0003
|
||||
<MSG<TUR
|
||||
You have died.<NOD<CLRWant to retry?<YNJ0049<CLO
|
||||
<FAO0001<WAI0050<FLJ0431:0048<INI
|
||||
#0041
|
||||
<KEY<CMU0000<HMC<WAI0040<PRI<WAI0040<CMU0003
|
||||
<MSG<TUR
|
||||
You have drowned.<NOD<CLRWant to retry?<YNJ0049<CLO
|
||||
<FAO0001<WAI0050<FLJ0431:0048<INI
|
||||
#0042
|
||||
<KEY<CMU0000<WAI0040<PRI<WAI0040<CMU0003
|
||||
<MSG<TUR<HMC
|
||||
You were never seen again...<NOD<CLRWant to retry?<YNJ0049<CLO
|
||||
<FAO0001<WAI0050<FLJ0431:0048<INI
|
||||
#0048
|
||||
<SMC<LDP
|
||||
#0049
|
||||
<CLO<FAO0004<ESC
|
||||
#0051
|
||||
<PRI<MSG<TUR<GIT1001<IT+0001
|
||||
Got =Arthur's Key=!<WAI0025<NOD<END
|
||||
#0052
|
||||
<PRI<MSG<TUR<GIT1002<IT+0002<EQ+0002
|
||||
Got the =Map System=!<WAI0025<NOD<END
|
||||
#0053
|
||||
<PRI<MSG<TUR<GIT1003<IT+0003
|
||||
Got =Santa's Key=!<WAI0025<NOD<END
|
||||
#0054
|
||||
<PRI<MSG<TUR<GIT1004<IT+0004
|
||||
Got the =Silver Locket=!<WAI0025<NOD<END
|
||||
#0055
|
||||
<PRI<MSG<TUR<GIT1005<IT+0005
|
||||
Got the =Beast Fang=!<WAI0025<NOD<END
|
||||
#0057
|
||||
<PRI<MSG<TUR<GIT1007<IT+0007
|
||||
Got the =ID Card=!<WAI0025<NOD<END
|
||||
#0058
|
||||
<PRI<MSG<TUR<GIT1008<IT+0008
|
||||
Got the =Jellyfish Juice=!<WAI0025<NOD<END
|
||||
#0059
|
||||
<PRI<MSG<TUR<GIT1009<IT+0009
|
||||
Got the =Rusty Key=!<WAI0025<NOD<END
|
||||
#0060
|
||||
<PRI<MSG<TUR<GIT1010<IT+0010
|
||||
Got the =Gum Key=!<WAI0025<NOD<END
|
||||
#0061
|
||||
<PRI<MSG<TUR<GIT1011<IT+0011
|
||||
Got the =Gum Base=!<WAI0025<NOD<END
|
||||
#0062
|
||||
<PRI<MSG<TUR<GIT1012<IT+0012
|
||||
Got the =Charcoal=!<WAI0025<NOD<END
|
||||
#0063
|
||||
<PRI<MSG<TUR<GIT1013<IT+0013
|
||||
Got the =Explosive=!<WAI0025<NOD<END
|
||||
#0064
|
||||
<EVE0020
|
||||
#0065
|
||||
<PRI<MSG<TUR<GIT1015<IT+0015
|
||||
Got the =Life Pot=!<WAI0025<NOD<END
|
||||
#0066
|
||||
<PRI<MSG<TUR<GIT1016<IT+0016
|
||||
Got the =Cure-All=!<WAI0025<NOD<END
|
||||
#0067
|
||||
<PRI<MSG<TUR<GIT1017<IT+0017
|
||||
Got the =Clinic Key=!<WAI0025<NOD<END
|
||||
#0068
|
||||
<ITJ0018:0073
|
||||
<PRI<MSG<TUR<GIT1018<IT+0018<EQ+0001<EQ-0064<FL+0742<FL-1020
|
||||
Got the =Booster v0.8=!<WAI0025<NOD<END
|
||||
#0069
|
||||
<PRI<MSG<TUR<GIT1019<IT+0019<EQ+0004
|
||||
Got the =Arms Barrier=!<WAI0025<NOD<END
|
||||
#0070
|
||||
<PRI<MSG<TUR<GIT1020<IT+0020<EQ+0008
|
||||
Got the =Turbocharge=!<WAI0025<NOD<END
|
||||
#0071
|
||||
<PRI<MSG<TUR<GIT1021<IT+0021<EQ+0016<FL+2900
|
||||
Got =Curly's Air Tank=!<WAI0025<NOD<END
|
||||
#0072
|
||||
<PRI<MSG<TUR<GIT1022<IT+0022
|
||||
Got the =Nikumaru Counter=!<WAI0025<NOD<END
|
||||
#0073
|
||||
<PRI<MSG<TUR<GIT1023<IT+0023<IT-0018<EQ+0032<EQ-0065<FL+0743<FL-1020
|
||||
Got the =Booster v2.0=!<WAI0025<NOD<END
|
||||
#0074
|
||||
<PRI<MSG<TUR<GIT1024<IT+0024
|
||||
Got the =Mimiga Mask=!<WAI0025<NOD<END
|
||||
#0075
|
||||
<PRI<MSG<TUR<GIT1025<IT+0025
|
||||
Got the =Teleporter Room Key=!<WAI0025<NOD<END
|
||||
#0076
|
||||
<PRI<MSG<TUR<GIT1026<IT+0026
|
||||
Got =Sue's Letter=!<WAI0025<NOD<END
|
||||
#0077
|
||||
<PRI<MSG<TUR<GIT1027<IT+0027
|
||||
Got the =Controller=!<WAI0025<NOD<END
|
||||
#0078
|
||||
<PRI<MSG<TUR<GIT1028<IT+0028
|
||||
Got the =Broken Sprinkler=!<WAI0025<NOD<END
|
||||
#0079
|
||||
<PRI<MSG<TUR<GIT1029<IT+0029
|
||||
Got the =Sprinkler=!<WAI0025<NOD<END
|
||||
#0080
|
||||
<PRI<MSG<TUR<GIT1030<IT+0030
|
||||
Got the =Tow Rope=!<WAI0025<NOD<END
|
||||
#0081
|
||||
<PRI<MSG<TUR<GIT1031<IT+0031
|
||||
Got the =Clay Figure Medal=!<WAI0025<NOD<END
|
||||
#0082
|
||||
<PRI<MSG<TUR<GIT1032<IT+0032
|
||||
Got the =Little Man=!<WAI0025<NOD<END
|
||||
#0083
|
||||
<PRI<MSG<TUR<GIT1033<IT+0033
|
||||
Got the =Mushroom Badge=!<WAI0025<NOD<END
|
||||
#0084
|
||||
<PRI<MSG<TUR<GIT1034<IT+0034
|
||||
Got =Ma Pignon=!<WAI0025<NOD<END
|
||||
#0085
|
||||
<PRI<MSG<TUR<GIT1035<IT+0035
|
||||
Got =Curly's Underwear=!<WAI0025<NOD<END
|
||||
#0086
|
||||
<PRI<MSG<TUR<GIT1036<IT+0036
|
||||
Got the =Alien Medal=!<WAI0025<NOD<END
|
||||
#0087
|
||||
<PRI<MSG<TUR<GIT1037<IT+0037
|
||||
Got =Chaco's Lipstick=!<WAI0025<NOD<END
|
||||
#0088
|
||||
<PRI<MSG<TUR<GIT1038<IT+0038<EQ+0128<FL+0722
|
||||
Got the =Whimsical Star=!<WAI0025<NOD<END
|
||||
#0089
|
||||
<PRI<MSG<TUR<GIT1039<IT+0039
|
||||
Got the =Iron Bond=!<WAI0025<NOD<END
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
0==F=IZ[NIPZb==?@ISNV====IR[Q0==F>IZ[NIPZb==?@ISNV===>IR[Q0==F?IZ[NIPZb==?@ISNV===?ISYW=E?FG==FEISYW=E??G==FDIR[Q0==F@IZ[NIPZb==?@ISNV===@IR[Q0==FAIZ[NIPZb==?@ISNV===AIR[Q0==FDIN[]=?B@G==?=G====IR[Q0==FEIP[]=@=CG=>>DG====IN[]=@=CG==@?G===?IR[Q0=>==IXRfISYW=E@FG=>=>ISYW=E==G=>=?IRcR=>=A0=>=>IXRfIZ`TIab_V<5F>-„|{4<>-|}r{;;;I[\QIR[Q0=>=?IVaW==?>G=>=@IRcR=>=A0=>=@ISY8=E@?IRcR=>=A0=>=AI`\b==>>IN[]=>==G====G===?ISN\====Ia_N==ACG==F=G==>DG===F0=?==IXRfI`NaISYW=E@?G=?=AISYW=E?AG=?=@ISYW=E?@G=?=?ISYW=E?>G=?=>IZ`TIab_\]R[-`UbaaR_LIf[W====IPY\IZfQ====IdNV==@=IN[]=?B=G==>=G===>IdNV==>=IN[]=@==G===>G===?IdNV==??IN[]=?B>G==>=G===>IN[]=@==G===@G===?IdNV==@?IN[]=?B?G==>=G===>IdNV==@?IN[]=?B@G==>=G===>IdNV==@?IN[]=?BAG==>=G===>IQ[]=?B=IdNV==@?IQ[]=?B>IdNV==@?IQ[]=?B?IN[]=?B@G===>G====IdNV==@?IQ[]=@==IP[]=@=>G=>>DG====IN[]=@=>G==?>G===?ISY:=E?=ISY8=E?>ISY8=E??IZ`TIab_NO[\_ZNYVaf-QRaRPaRQ-V[`UbaaR_-[\;-AI[\QIR[Q0=?=>IXRfIZ`TIab_NO[\_ZNYVaf-QRaRPaRQ-V[`UbaaR_-[\;-AI[\QIR[Q0=?=?IXRfIZ`TIab_Y\dR_-YVSaLIf[W====ISY8=E?AIPY\IS\[=?BDG==>CIdNV==B=IN[]=?BDG==>=G===@IdNV=>F?IN[]=?BDG====G====IdNV==B=IS\Z==>CIR[Q0=?=@IXRfIZ`TIab_YVSa-V`-Y\dR_RQI[\QIR[Q0=?=AIXRfIZ`TR__\_I[\QIR[Q0=?>=IXRfI`NaISYW=E@=G=?>?ISYW=E?BG=?>>IZ`TIab_\]R[-`UbaaR_LIf[W====ISY8=E?BIPY\IdNV==A=IN[]=?BCG==>=G===>IdNV=>?EIQ[]=?BCIR[Q0=?>>IXRfIZ`TIab_`UbaaR_-\]R[RQI[\QIR[Q0=?>?IXRfIZ`TIab_R__\_I[\QIR[Q0=?A=I]_VISYW=E?EG=?A>IQ[]=?A=ISYW=E@=G=?A@ISY8=E@FIRcR=?A@0=?A>I]_VIZ`TIab_;;;LI[\QIR[Q0=?A?I]_VIZ`TIab_V<5F>4€-<2D>n{tyrq-‚};f|‚-pn{4<>-tr<74>-v<>-y||€r;;;I[\QIR[Q0=?A@IRcR==E=0=?B=0=?B>0=?B?0=?B@0=?BA0=?BBI]_VIZ`TIab_N-o|xr{-|o|<7C>;I[\QV<>4€-€rƒrry†-qnzntrq;I[\QIR[Q0=?BC0=?BD0=?BE0=@==IXRfIZ`TISNP==>Fdrvq-}ynpr9-ruLI[\QV-„|{qr-vs-<2D>uv€-„n€€|zr-€|<>-|s-on€r;I[\QIR[Q0=@=>IXRfISYW=E?@G=@=?IZ`TISNP==?Bauv€-€u‚<75><E2809A>r4€-|{y†znqr-v<>-unys„n†-|}r{;I[\QIPY_Y||x€-yvxr-v<>4€-pn‚tu<74>|{-€|zr<7A>uv{t;;;I[\QIR[Q0=@=?IXRfIZ`TISNP==>FW‚€<E2809A>-€u‚<75><E2809A>r-ns<6E>r€u‚<75><E2809A>r;I[\QNyy-<2D>uv€-€rp‚v<7F>†-znxr€zr-„|{qr-w‚€<E2809A>-„un<75>4€-q|„{urr;I[\QQ|{4<>-†|‚-<2D>uv{xLI[\QIR[Q0=@=AI]_VIZ`TV;;;I[\QIR[Q0=@=BI]_VIZ`TX{|pxrq-|‚<>LI[\QIR[Q0=@=C
I]_VIZ`TIab_aurr-v€-{|-r}y†;;;I[\QIVaW==@=G=@=DIR[Q0=@=DI]_VI`NaIZ`TITVa>=@=dvyy-†|‚-‚€r-<2D>ur-Ja|„-_|}rJLIf[W====IPY\ITVa====IP[]=@=CG=?BFG====ISY8=E@BISY8=E@CISY:=E?FIR[Q0=@A=IXRfIQ[]=@A=IdNV==>=I`\b==??IdNV==>=IZ`TIab_f|‚-urn-€|zr<7A>uv{t-tvƒr;I[\QIPY\IdNV==B=IN[]=?B@G==>=G===>IdNV==AEIQ[]=?B@IN[]=@=>G===@G===?IdNV=>?EIN[]=@=>G===>G===?ISY:=E??ISY8=E?@ISY8=E?CIR[Q0=@B=ISYW=E?BG=@B>IR[Q0=@B>IQ[]=@B=IQ[]=@=>IQ[]=@=?ISY:=E??ISY:=E?CISY8=E?DIP[]=AB=G=>>DG===?IR[Q0=@C=ISYW=E@=G=@C>IR[Q0=@C>IXRfIQ[]=@C=IPZb==?@IR[Q0=A==0=A=>0=A=?0=A>=0=AB=IXRfI`XW===CG=AB>I`X8===CIRcR=AB?0=AB>I`NaIRcR=AB?0=AB?IXRfI`NaISYW=E@DG=@=AISYW=E?EG=@=BIZfO===?IdNV==@=IZfQ===?IS\[=?BEG==>CISY8=E?EISY:=E?AIZ[]=?BDG===DG==>EG====IPZ]==A=G==>BG==@=IPZ]==A=G==>CG==@=IP[]=?BEG=>EAG====IN[]=?BEG==>=G===@IdNV=>?EIN[]=?BEG==?=G====IS\Z==>CIdNV==?=IN[]=?BBG==>=G====IN[]=AB=G==@=G===?IdNV==A=IQ[]=B==IO\N=?==IPZb==??IO`Y====IP[]=AB=G=>E=G===?IN[]=AB=G==A=G===?IN[]=A>=G==?=G====IR[Q0=B==IQ[]=B==IO\N=?==IPZb==??IO`Y====IR[Q0>===IXRfIO\N=B==IZfQ=A=>ISY:=E?EIN[]=A>=G==>=G====IP[]=AB=G=>>DG===AIdNV==>==IS\[=A=>G==>CIP[]=A==G==CDG===?IdNV==B=IP[]=A=?G=>@FG====IN[]=A=?G==A=G====IdNV=>==IN[]=A==G==>@G===?IdNV==B=IP[]=A==G==E?G===?IdNV==?=IN[]=A==G==?BG===?ISZbIO\N=C==IdNV==@=IN[]=A==G==?=G===?IN[]=A=?G==@=G====IN[]=A>=G==@=G====IN[]=AB=G==?=G===?IQ[N=>E>IQ[N=>E?IPZ]==A=G==>BG==ADIPZ]==A=G==>CG==ADIdNV=>==IPZb====IS\Z==>CISY8A===ISY8=@A>ISY8=DE@ISY8=E@DIR^:==>CISY:?F==IR[Q0>>==IXRfISY:A===ISN\===AIdNV==B=IQ[]=AB=ISY8=>C=ISY8=E@=ISY8=E?FISY:=E?DISY8=E==ISY8=E=>ISY8=@D?ISY8=A>>ISY8=@A=ISY8=>BFISY8=E@EISY:>CA?ISY8>CA@ISY:=E@FIVaW==?>G>>=>IRcR>>=?0>>=>IZ[]=A>=G===>G===?G====IN[]=A>=G====G====IR^8==>CISY8?F==IRcR>>>=0>>=?IZ[]=A>=G===>G==??G====IN[]=A>=G====G====IRcR>>>=0>>>=IP[]=@=CG=>>DG===?IN[]=@=CG==@?G===?IN[]=?BEG==>=G===>IdNV==FCIN[]=?BEG===>G====IdNV==B=IZ\c==BBG==>EIQ[N=>E@ISNV===AIdNV==B=IRcR>>>>0>>>>IRcR==D>0>?==IXRfIN[]>?==G==?=G===?ISYW=E?FG>?=>IRcR>?=?0>?=>IP[]=@=CG=>>DG====IN[]=@=CG==@?G===?IRcR>?=?0>?=?IS\[>?==G==>CISNV===>IdNV=>==ISN\===>Ia_N==BCG>?==G==CFG==DC
|
||||
|
|
@ -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>
|
||||
|
|
@ -1 +0,0 @@
|
|||
=:S``i`=:l}~qls}<7D>```lvqy````lu~t=:S``ia=:l}~qls}<7D>```lvqy```alu~t=:S``ib=:l}~qls}<7D>```lvqy```blu~t=:S``ic=:l}~qls}<7D>```lvqy```clu~t=:S``id=:l}~qls}<7D>```lvqy```dlu~t=:=:S`d``=:S`d`a=:S`d`b=:S`da`=:S`daa=:S`dab=:=:=:=:S`e``=:l{u瑛ヒ<E7919B>x}slv}``afl}液```bls}<7D>```l≦q``e`lvqy```a=:l㎞y`ae`=:l}ヘlvqs``bey、P」、泛<EFBDA4>部^^^l㎞y``e`ls|Mvqs``ai<61>姫劵恆梍W」P」、泛<EFBDA4>部=:桝惧辨猷l㎞y``e`ls|<7C>束瀦P像弃、<E5BC83>P桾卵、勗<EFBDA4>=:服覆掠Pァ促Pァ舞尓桾捻走、覆=:ァ姫瀦側P<E581B4>捐l㎞y``e`ls|Mvqs``be^^^^^l㎞y``e`ls|g復彌PyP櫨棍歃P徴、P勁=:悄泝」P恙尓P衍「Pァ泙娜<E6B399>「<EFBFBD>=:劵P函桾^l㎞y``e`ls|lvqs````=:l}ッlу1PPy、P丼「、」^^^l㎞y``e`=:l}ヘlvqs``be∟側ol㎞y``e`ls|lvqs````=:l㎞y`a``l}ッlу1PPPPΑ^^^PP弌、^^^^^=:lq~`da`j``a`j````lq~`daaj``a`j```bl㎞y``e`PPPPPPPP<50>姫<EFBFBD>鎗杰^^=:l㎞y`a``lZl}ヘoQl㎞y``e`ls|lvqs````l{u<>=:ls}<7D>`cdl㎞y`a``=:lq~`d``j````j````l㎞y``b`=:lq~`d`aj````j```bl㎞y``h`=:lZl}ヘlvqs``be<62>姫ァ像弉Ql㎞y``e0ls|lvqs````l{u<>=:l㎞y`a``=:lq~`d``j````j```bl㎞y``b`=:lq~`d`aj``g`j```bl㎞y``cb=:lq~`d`aj````j````l㎞y``b`=:l}ッlу1PPPx復<78>P摯^^^l㎞y``e`=:PPPPPy、P丼「、」^^^l㎞y``e`=:PPPPPPΑP弌、^^^^^l㎞y``e`ls|Ms|=:lZl}ヘlvqs``be√W「姫痢棍善藍、P討・」<EFBDA5>撚l㎞y``e`ls|l{u<>=:lZlvqs````l}ツx勦遭Ql㎞y``e`ls|=:l{u瑛s~`d`bj```ij````l㎞y`ae`=:lZl}ヘlvqs```e<>覆姫ゥ衍P造媛=:z・」、P恙尓P}劵覆ゥP」鎗膿l㎞y``e`ls|<7C>=:lvqs``ai押・P淘摯P、蘖「淵踏姫・」Ql㎞y``e`ls|Mvqs```ex沮捻沾P、剽丶QQl㎞y``e`ls|lvqs````=:l{u<>=:lq~`d`aj``b`j````l㎞y``a`=:lq~`d``j``h`j```bl㎞y```b=:lZl}ヘlvqs```e|弗W」P痢Ql㎞y``e`ls|lvqs````=:l{u瑛v~`d`bj``af=:ls~`d`bj``abj```bl㎞y```b=:lq~`d`bj`a``j```bl㎞y`a``=:lv}<7D>}ヘlу<6C>=:t・沺沺沺沺沺沺沽<E6B2BA>浪Ql㎞y`a``ls|l㎞y``e`lv}<7D>vq```a=:l㎞y``e`lZls}<7D>```=:l}ヘlvqs``bey」Pゥ衍「P<EFBDA2>藻P像弃「剽丶ol㎞y``e`ls|<7C>=:lvqs``bcyW抉棔、P」・「豹^^l㎞y``e`=:lрq``gaj`ab`j````j````=:lu~t=:=:=:
|
||||
|
|
@ -1 +0,0 @@
|
|||
GD]jjsjGDv㊧{v}㍼jjjrv{ニjjjv<76>GD]jjskGDv㊧{v}㍼jjjrv{ニjjkv<76>GD]jjslGDv㊧{v}㍼jjjrv{ニjjlv<76>GD]jjsmGDv㊧{v}㍼jjjrv{ニjjmv<76>GD]jjsnGDv㊧{v}㍼jjjrv{ニjjnv<76>GDGDGDGDGD]jkjjGDv<76>jmpktjkjmGDv<76>jmpjtjkjlGDvヮ<76>jjntjkjkGDv<44>砺拷祝jkkv{<7B>jkjjtjjjjtjjjlGDv{泳jjnv詞{jjkktjjsntjjnltjjolGD]jkjkGDv褐プ㍾<ョZアゥィaョZゥェ洽[v<>~v<76>GD]jkjlGDv<44>砺{泳jjnv詞{jjkktjjsntjjnltjjolGD]jkjmGDv褐プ㍾%ゥッZ撥ィaョZャッィ[v<>~v<76>GDGD]jkojGD]jkokGD]jkolGD]jkomGD]jkonGDGD]jlsjGDvヮ<76>jjntjlskv<76>GD]jlskGDv~<7E>jlsjv<76>jmpjtjlslv}<7D>kjjjtjjpmtjjjlv<76>GD]jlslGDv<76>lnqjtjjjjv<6A>砺∮~jjjlv㍾」誌撃ッエエ屬[v}<7D>jnjktjjjstjjjjv捜ニkjjGDv}<7D>jnjktjjkltjjjjGDv{}jjjov㍾」誌隈D陶ッZ。ゥィィ媚<EFBDA8>」。「ョZァ飮ア」ョ「GDョ「岼Zョ「」ィ。yv嶋<76>jjkv{<7B>jnjktjjmjtjjjjv}<7D>v}<7D>GDv<76>jmpkv}㍼jjjnv}<7D>jnjktjjprtjjjjv|号jnjkv<76>GDGDGD]jnjjGDv<44>敵Dv合}v}<7D>jnjjtjjkltjjjjv{<7B>jnjjtjjljtjjjnv捜ニknjGDv<76>jnjlGD]jnjkGDv<44>敵Dv合}v}<7D>jnjktjjkltjjjjv{<7B>jnjktjjljtjjjnv捜ニknjGDv<76>jnjlGD]jnjlGDv<76>jmpkv<76>jmplv<76>lnqjGDv捜ニkjjv}㍼jjkoGDv㍾」誌隈Dゥッ。「ョZゥ<5A><EFBDA9>Z|屹ャゥ。[v捜ニknjv<6A>~GDv拷祝jnov}<7D>jkojtjjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkoktjjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkol:jjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkomtjjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkontjjjktjjjjv捜ニjjnGDv拷祝jnov}<7D>jkpjtjlomtjjjjGDv}㍼jjjrv<76>GDGD]jojjGDGD]kjjjGDv<44>砺<E7A0BA>jmpjv<76>jmpkv<76>jnnjv<76>jmlpv∮|jjjlv捜ニjmjv∮~jjjlv}<7D>kjjjtjjpjtjjjnGDv}㍼jjjjGDv居{jjmjv拷祝jlpGDv{<7B>kjjjtjjjrtjjjjGDv{<7B>jkjjtjjjktjjjjGDv捜ニjkjGDv∮~jjjjGDv}<7D>kjjjtjjpjtjjjjGDv捜ニkjjGDv居{jjmjv拷祝jlpGDv{<7B>kjjjtjjjrtjjjjGDv{<7B>jkjjtjjjktjjjjGDv捜ニjqjGDv居{jjmjv拷祝jlpGDv{<7B>kjjjtjjjrtjjjjGDv}<7D>jnjjtjjkstjjjlGDv}<7D>jkjjtjjkrtjjjlGDv}㈱jjjntjjjrtjjrjGDv}㈱jjjotjjjrtjjrkGDv}㈱jjjptjjjrtjjrlGDv}㈱jjjntjjjstjjspGDv}㈱jjjotjjjstjjsqGDv}㈱jjjptjjjstjjsrGDGDGDv㍾」誌撃ッエエ屬[v捜ニjojv}<7D>jnjjtjjkltjjjlv{<7B>jnjjtjjmjtjjjlv}<7D>v<EFBFBD>砺}㍼jjkkGDv}<7D>jojjtjjpqtjjjlv捜ニkjjv{<7B>jojjtjjkmtjjjlv捜ニjojv{<7B>kjjjtjjjrtjjjjGDv{<7B>jojjtjjkotjjjlv捜ニkkjGDv{<7B>jojjtjjljtjjjlGDv捜ニjojGDv{}jjjov㍾」誌隈D陶ッZ。ゥィィ媚<EFBDA8>」。「ョZァ飮ア」ョ「GDョ「岼Zョ「」ィ。yv嶋<76>jjkv{<7B>jnjjtjjmjtjjjlv}<7D>v}<7D>GDv<76>jmpkv}㍼jjjnv}<7D>jnjjtjjprtjjjlv|号jnjjv<76>GDGD]kjjkGDv<44>砺<E7A0BA>jmplv<76>jmpkv}㍼jjjrv㍾」誌計{}jjjoGD{ヲヲZャ」。「ョfZュ沺Zウ媚ョ「洽hv<68>~v}<7D>v{<7B>jnjjtjjkjtjjjlv{<7B>jnjktjjkjtjjjlv<76>GDGD
|
||||
|
|
@ -1 +0,0 @@
|
|||
S``i`=:l{u瑛v|]aai`lv|]aaialv|[aaibl}~qls}<7D>`c`lvqy````lu~t=:S``ia=:l{u瑛v|[aai`lv|]aaialv|]aaibl}~qls}<7D>`c`lvqy```alu~t=:S``ib=:l{u瑛}~qls}<7D>`c`lvqy```blu~t=:S``ic=:l{u瑛}~qls}<7D>`c`lvqy```clu~t=:S``id=:l{u瑛v|]aai`lv|[aaialv|]aaibl}~qls}<7D>`c`lvqy```dlu~t=:S``ie=:l{u瑛vqy```dlu~t=:S`a``=:l{u瑛<75><EFBFBD>`aalq~`a``j````j```blvq```c=:lyй``bcj`a`alрq``fcj``icj```ij```d=:S`a`a=:l{u瑛рq``fgj``icj```ij```d=:S`aa`=:lZlvq```blрq``fdj``ibj```aj``aa=:S`ab`=:l{u瑛q~`ab`j````j```bl<62><EFBFBD>`aalvq```dlрq``ffj``idj``a`j```h=:S`ac`=:lZl}ヘ<>劵P擂」、P瀦P、<50>P<EFBFBD>恙董<E68199>、覆=:Η姫憎捻、<E68DBB>P洟<50>「」P淘摯P辨P沾^^^l~tlu~t=:S`aii=:lZl}ヘ~剴姫圈耽l~tlu~t=:=:S`b``=:l{u瑛}液````lt~0b``l㎞ネ}ヘq棠P箕「、<EFBDA2>「P憎捻ゥ衍W「<57>=:痢辨猶、蘖桝惧Ql~tlu~t=:S`b`a=:lZl}ヘlу<6C>=:PPPPPPPPPPPPзqЦケq||\Pv|{ゲl~tlu~t=:S`ba`=:lZlv|zaaiaj`baalv|zaaibj`bab=:lZlvq```dl}液```bl㎞y``e`lрq``fbj``iej```gj``gd=:S`baa=:lZlvq```dl}液```bl㎞y``e`lрq``fbj``iej``gij``gc=:S`bab=:lZlvq```dl}液````l㎞y``e`lрq``fbj``iej`aagj``fb=:S`bii=:lt~`biilv|zbiiij````lu<6C>`c``=:S`c``=:lyй``cij`c`alu<6C>`c`c=:S`c`a=:lv|zbh``j`c`blu<6C>`c`c=:S`c`b=:lv|qlt~q``aclt~`biilt~`c``l<><EFBFBD>`celu~t=:S`c`c=:l{u瑛v~`c``j``afl}詠```bl}ヘlvqs``balwy<77>`cilуS「辨猶摯PΗ姫未沱P、<50>Pu覧=:s泙「剩泙P促Pァ復弃促P、<50>P=:my「沾Pr沾芭Ql~tls|<7C>棡ゥP、<50>霸ァ劈弃yP弔舞娜、<E5A89C>」=:酎「「剳「^l~tlv}```hlu~t
|
||||
|
|
@ -1 +0,0 @@
|
|||
S``i`=:l{u炼v|]aai`lv|]aaialv|[aaibls}<7D>`ahlvqy````lu~t=:S``ia=:l{u炼v|[aai`lv|]aaialv|]aaibls}<7D>`ahlvqy```alu~t=:S``ib=:l{u炼s}<7D>`ahlvqy```blu~t=:S``ic=:l{u炼s}<7D>`ahlvqy```clu~t=:S``id=:l{u炼v|]aai`lv|[aaialv|]aaibls}<7D>`ahlvqy```dlu~t=:S``ie=:l{u炼q~<7E>`bh`j``a`j````lv~`bh`j``af=:l𩺰y``e`lvqy```dlu~t=:=:S`a``=:l{u炼<75><E782BC>`aalq~<7E>`a``j````j```blvq```c=:ly<6C>``bcj`a`al<61>q``fcj``icj```ij```d=:=:S`a`a=:l{u炼<75>q``fgj``icj```ij```d=:=:=:=:S`aa`=:l<><6C>lvq```bl<62>q``fdj``ibj```aj``aa=:=:=:=:S`ab`=:l<><6C>lv|zacicj`abal}<7D>y匕<79>唞匕<E5949E><E58C95>Ql~tlu~t=:S`aba=:l{u炼vq```dlv}``afl<66>q``gij``idj``a`j```h=:=:=:S`aii=:l<><6C>ls}<7D>`ccl}<7D><><EFBFBD>𢏺<EFBFBD>仙<EFBFBD>㎜<EFBFBD>ㄓ<EFBFBD>𤏁=:<3A>𠠬<EFBFBD>角P<E8A792>═P腼Pㄓ<50><E38493>=:<3A><>㎜<EFBFBD>𢶠丐<F0A2B6A0><E4B890><EFBFBD>^^^l~tl<74><6C>u~t=:=:S`b``=:l{u炼}缆````lt~<7E>`b``l}<7D>q恢P棅═<E6A385>㎜<EFBFBD>硂<EFBFBD>凹<EFBFBD>=:<3A><>𢰦<EFBFBD>P<EFBFBD><50>Ql~tlu~t=:=:S`b`a=:l<><6C>l}<7D>l<EFBFBD><6C>=:<3A>q<EFBFBD><71>q||\Pv|{<7B>l~tlu~t=:=:S`ba`=:l<><6C>lv|zaaiaj`baalv|zaaibj`bab=:l<><6C>lvq```dl}缆```bl𩺰y``e`l<>q``g`j``iej```gj``gd=:S`baa=:l<><6C>lvq```dl}缆```bl𩺰y``e`l<>q``g`j``iej``gij``gc=:S`bab=:l<><6C>lvq```dl}缆````l𩺰y``e`l<>q``g`j``iej`aagj``fb=:=:S`bh`=:=:S0bi`=:S`bia=:S`bib=:S`bic=:S`bid=:S`bii=:=:=:=:=:S`c``=:l{u炼x}s=:lv}``afl}缆```bl<62>q``fhj`f``j``bdj``ac=:lu~t=:=:S`c`e=:S`c`f=:S`c`g=:S`ca`=:l<><6C>{u炼}缆````ls}<7D>`ahlv|]aai`lv|]aaialv|[aaiblvqy````=:lq~<7E>`c`ej``aaj```b=:lq~<7E>`bh`j``a`j````=:lv~`bh`j``af=:lq~<7E>`c`ej``c`j````l𩺰y``f`=:lt~<7E>`c`elv|]acialu~t=:S`cb`<60>]b=:=:S`cc`=:l<><6C>{u炼t~<7E>`cc`l}缆````lq~<7E>`cb`j````j```b=:l𩺰<6C>𩺰y``e`=:lv~`cb`j``afl}<7D>lvqs```a<>佅驣Ν<E9A9A3><CE9D>佅𠠬<E4BD85><F0A0A0AC>P<EFBFBD>=:╞蠄P<E8A084>W<EFBFBD>P<EFBFBD><50>P<EFBFBD>P鷀<50>=:<3A>㎜膄^l~t=:y上Ν<E4B88A><CE9D>佅P<E4BD85>𪈠P叚P<E58F9A><50>=:<3A><>P<EFBFBD>硂<EFBFBD>匕<EFBFBD>袇𠠬<E8A287><F0A0A0AC><EFBFBD>=:𤙥奴婱奴Ql~tls|<7C>䰻P<E4B0BB><50>妯l~t=:z<>蘯𪆓P<F0AA8693>㎜𪆓P<F0AA8693>仙<EFBFBD>𢺳l~tls|l{u<>=:lq~<7E>`cb`j````j````l𩺰y``e`=:lq~<7E>`cb`j``c`j````l𩺰y``ab=:lq~<7E>`cb`j``d`j````l𩺰y``e`=:lv|]aciblv}``aflu~t=:=:S`d``=:l<><6C>{u炼v}<7D>t~<7E>`d``l𩺰y``c`lx}slvq````=:ls~<7E>`e``j`bedj````l𩺰y```a=:lq~<7E>`e``j``b`j```bl𩺰y```a=:lq~<7E>`e``j``c`j```bl𩺰y```a=:lv~`e``j``afl}<>`b`j``c`=:lt~<7E>`c`glt~<7E>`bh`=:l𩺰y`a``lvqy```d=:l}<7D>lvqs``bb=:<3A>𠠬腼<F0A0A0AC><E885BC>WΝ<57><CE9D><EFBFBD>璴^^l~tls|<7C>vqs``bhy上Ν<E4B88A>𡼏<EFBFBD><F0A1BC8F>佅䰻γ=:<3A>W<EFBFBD>P<EFBFBD>匕<EFBFBD>P<EFBFBD><50>P䰻十l~tls|lvq```d=:ls}<7D>`cel<65>q``dijab``j``ihj```f=:=:S`e``=:=:
|
||||
|
|
@ -1 +0,0 @@
|
|||
>;Taaja>;m~rmt~<7E>aaimwrzaaaamvu>;Taajb>;m~rmt~<7E>aaimwrzaaabmvu>;Taajc>;m~rmt~<7E>aaimwrzaaacmvu>;Taajd>;m~rmt~<7E>aaimwrzaaadmvu>;Taaje>;m~rmt~<7E>aaimwrzaaaemvu>;>;Taajj>;mt~<7E>aaimwrzaaaemvu>;>;>;Tabab>;m<zmt∥babkaaaakaaaamо<6D>abbmwraaadm<64>raabdkaajdkaabakaaad>;>;Tabac>;m<zmw}{adackabaemw}{adabkabadm~зpRmumvu>;Tabad>;m<z>;mw}{adaekabafm~зm<D0B7>ヘ<EFBFBD>」<EFBFBD>・・圈浪、<E6B5AA>椁・劒沽pmumvu>;Tabae>;m|v確wraaacm<63>raa1bkaajekaaaikaaag>;Tabaf>;mw}{bgeakabagm~зm<D0B7>ヘ<EFBFBD>」<EFBFBD>・・圈浪、<E6B5AA>椁・劒沽pmumvu>;Tabag>;mwraaacmw}\adacmw}\bgebmw}\bgec>;m~隔aaacm<63>raabbkadackaaaikaaag>;>;Tabba>;m|v確wraaaem<65>raajakaajckaaahkaaaj>;>;>;Tabfa>;m|v確~隔aaaamt~<7E>aaimwrzaaae>;m<>zaada>;mо<6D>abcmt~∥afakaadfkaaghm<68>zaaca>;mо<6D>abcmt~∥afakaadgkaaghm<68>zaaca>;mvu>;>;Tacaa>;mvu>;Tacab>;mvu>;>;>;Taeaa>;m<zmо<6D>accmu∥eaamv<6D>aeab>;>;Taeab>;mv<6D>aabc>;>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
>;Taaja>;m~rmt~<7E>abcmwrzaaaamvu>;Taajb>;m~rmt~<7E>abcmwrzaaabmvu>;Taajc>;m~rmt~<7E>abcmwrzaaacmvu>;Taajd>;m~rmt~<7E>abcmwrzaaadmvu>;Taaje>;m~rmt~<7E>abcmwrzaaaemvu>;Tabaa>;m<>zmwr<77>aaaam<61>raabbkaajakaafgkaadd>;Tabba>;m|v㿭<76><E3BFAD>abbmr<72>bbakaaaakaaac>;mwr<77>aaaem<65>raaidkaajekaaahkaa1a>;Tacaa>;m<>zmu<75>caa>;mv薓acac>;Tacac>;mv薓aaic>;Tadaa>;mt<74>daakaaaakaaaamw}{adjakadacmw}\adjamv薓adab>;Tadab>;mv薓aafb>;Tadac>;m<>zm~<7E>rㄔ膓Φ十𣌀佂𨭤m<6D>u>;<3B>𢜟𩓚十見鷀<E8A68B>𡤅<EFBFBD>Q<EFBFBD><51>>;<3B><>丰<EFBFBD>䭯m<6D>umt}<7D>~<7E>m<EFBFBD><6D>𢜟靱<F0A29C9F><E99DB1>﹞Q<EFB99E>靱<EFBFBD><E99DB1>靱rㄔ膓β>;奴<>Q<EFBFBD><51>Q<EFBFBD>Q<EFBFBD>靱~<7E><>伃_m<6D>umt}<7D>vu
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +0,0 @@
|
|||
-::C:FWXKFMW_::::FPKS::::FOXN-::C;FWXKFMW_::::FPKS:::;FOXN-::C<FWXKFMW_::::FPKS:::<FOXN-::C=FWXKFMW_::::FPKS:::=FOXN-::C>FWXKFMW_::::FPKS:::>FOXN-::C?-::CCFUOcFWXKFMW_::::FKXZ:;?:D:::;D::::FPKS:::>FMXZ:=:;D:;;<D:::<FaKS:;::FKXZ:;?:D::::D::::FWcN:::<FNXZ:=:;F]WMFOXN-:;::FZ\SF]K^FPVT;:<=D:;:<FS^T::<?D:;:;FW]QS~1}*vymuon8FXYNFOXN-:;:;F]Y_::<<FW]QF^_\FQS^;:<?_}on*~ro*G^ovozy|~o|*\yyw*Uoエ8FXYNFMVYFS^7::<?FQS^::::FPV5;:<=FO`O:;:<-:;:<FUOcF]Y_::;;FKXZ:;::D::::D:::<FPKY:::<F^\K::?@D::C<D:::;D:;:=
|
||||
-:;?:FUOcF]K^FPVT;;>:D:;?<FS^T::<?D:;?;FPVT;:<=D:;?;FO`O:;?<-:;?;FUOcFW]QNy*ペ*〔x~*~y*qy*~y*K|~r|1}ry}oIFcXT::::FMVYFPV5;:B<FPV5;;>:FZ]5:::?D@::?FWcN:::<FKXZ:<?:D::;:D::::FaKS::@:FMXZ:<@:D:;?:D::::FRWMFKXZ:<@:D::;:D::::FaKS::?:FPKY:::=FaKS:;::F]WMFPVT;;>;D:;?<FPV5;;>;F^\K::?AD:<<:D::;;D::;>-:;?<FZ\SFW]QNy*ペ*〔x~*~y*qy*~y*K|~r|1}ry}oIFcXT::::FMVYFZ]5:::?D@::?FUOcFMXZ:=::D:;;;D:::<FRWMFaKS::@:FKXZ:;?:D:::;D::::FaKS:;::FPKY:::>F^\K:::;D::CCD:::?D:::B-:<?:FUOcFW]Q88888FXYNFOXN-:<@:-:=::-:=:;
|
||||
|
|
@ -1 +0,0 @@
|
|||
=:S``i`=:l}~qlv|]`bfcls}<7D>``blvqy````lu~t=:S``ia=:l}~qlv|]`bfcls}<7D>``blvqy```alu~t=:S``ib=:l}~qlv|]`bfcls}<7D>``blvqy```blu~t=:S``ic=:l}~qlv|]`bfcls}<7D>``blvqy```clu~t=:S``id=:l}~qlv|]`bfcls}<7D>``blvqy```dlu~t=:S``ii=:ls}<7D>`bhlvqy```dlu~t=:S`a``=:l<><6C>l<EFBFBD><6C>`aalt~<7E>`a``lvq```dl<64>q```fj``idj`aaij``ag=:S`b``=:l<><6C>=:ly<6C>```hj`b`b=:l{u炼}<7D>r襔<72>硂<EFBFBD>𠠬<EFBFBD><F0A0A0AC><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><50>袇\=:<3A>仙<EFBFBD>周𩡗<E591A8><F0A9A197>^l~tlv|z`bdaj`b`alu~t=:S`b`a=:ls|<7C>}<7D><>𠠬<EFBFBD><F0A0A0AC>袇P𢅛𠠬<F0A2859B>P<EFBFBD>𠠬<EFBFBD>周<EFBFBD><E591A8>=:<3A>仙<EFBFBD>唞匕<E5949E>匕<EFBFBD>ㄓ^^^l~tls|=:lv|[`bfalv|[`bfclu<6C>`c`a=:S`b`b=:l{u炼v|[`baclq~<7E>`b``j``a`j````l𩺰y``c`lvq```dl<64>q```fj``iij`abdj`0aa=:S`ba`=:l<><6C>lv|zbd`cj``ailv|z`bdaj`baalu<6C>``ai=:S`baa=:l{u炼v|[bd`clvq```dls}<7D>```l𩺰y``b`l}~<7E>`c``j``abj```fj````lq~<7E>`c``j``a`j````=:l𩺰y``e`l|y[a```l<><6C>`b`l}缆```bl<62><6C>vqy```dlu<6C>`bab=:S`bab=:lu<6C>``hg=:S`c``=:l<><6C>=:lv|zbdc`j`c`b=:lv|z`bdaj`c`c=:l{u炼}<7D>x<EFBFBD><78>P<EFBFBD>佅𥫩=:x𪈳𠠬<F0AA88B3>仙<EFBFBD>匕<EFBFBD>䣳髢=:<3A>𠠬<EFBFBD>𢅛<EFBFBD>夜<EFBFBD>寸l~tlu~t=:S`c`a=:l{u炼}<7D>lwy<77>``h<>P<EFBFBD>匕䰻匕<E4B0BB>𠠬<EFBFBD><F0A0A0AC>袇\P<><50>=:<3A><>Pmz<6D>𢅺<EFBFBD><F0A285BA>Pz<50><7A>m^l~tlu~t=:S`c`b=:l{u炼}<7D><>仙<EFBFBD><E4BB99>P䰻匕<E4B0BB><E58C95>㎜‘<E38E9C>𦻐Q=:q<><71><EFBFBD>Ql~tlu~t=:S`c`c=:lv|[`bfalv|[`bfc=:l{u炼}<7D>w<EFBFBD><77>袇αPyP<79><50>P<EFBFBD><50><EFBFBD>𠠬<EFBFBD><F0A0A0AC>硂<EFBFBD><E7A182>=:<3A>硂<EFBFBD>P<EFBFBD>憕<EFBFBD>鰊𠠬<E9B08A><F0A0A0AC><EFBFBD>Ν䰻不<E4B0BB>𦖠^^l~tlu~t
|
||||
|
|
@ -1 +0,0 @@
|
|||
?<Ubbkb?<nsnu㍍bbbnxs{bbbbnwv?<Ubbkc?<nsnu㍍bbbnxs{bbbcnwv?<Ubbkd?<nsnu㍍bbbnxs{bbbdnwv?<Ubbke?<nsnu㍍bbbnxs{bbbenwv?<Ubbkf?<nsnu㍍bbbnxs{bbbfnwv?<Ubcbb?<n}w杵xs|bbdn<64>sbbgelbbkdlbbbjlbcdc?<Ub2bb?<n}w杵w<E69DB5>bdbc?<?<Ubdbc?<n}w杵x~|cibblbdbdnx~]cibbn<62>㍍bddnuCdbblbbdclbbbbnw<6E>bebb?<Ubdbd?<n}w杵<E69DB5>n<EFBFBD>ф圀・R屹痢R屶R迭ヲ、對ァヲ由ヲ。Rォ。ァ、?<沫ヲ陸泝<E999B8>逃孱<E98083>`Ry棕、ォRヲ。R到<52>?<ャ欄棕ァ・R伏到棊<E588B0>剽、・Sn」nwv?<Ubebb?<nw<6E>bbid
|
||||
|
|
@ -1 +0,0 @@
|
|||
?<Ubbkb?<n<6E>snx~|befclbbkgnu𣸆bbknxs{bbbbnw<6E>v?<Ubbkc?<n<6E>snx~|befclbbkhnu𣸆bbknxs{bbbcnw<6E>v?<Ubbkd?<n<6E>snx~|befclbbkinu𣸆bbknxs{bbbdnw<6E>v?<Ubbke?<n<6E>snx~|befclbbkjnu𣸆bbknxs{bbbenw<6E>v?<Ubbkf?<n<6E>snx~|befclbbkknu𣸆bbknxs{bbbfnw<6E>v?<Ubbkg?<nu𣸆bdjnxs{bbbbnw<6E>v?<Ubbkh?<nu𣸆bdjnxs{bbbcnw<6E>v?<Ubbki?<nu𣸆bdjnxs{bbbdnw<6E>v?<Ubbkj?<nu𣸆bdjnxs{bbbenw<6E>v?<Ubbkk?<nu𣸆bdjnv<6E><76>dbbnv<6E><76>dcbnv<6E><76>ddbnxs{bbbfnw<6E>v?<Ubcbb?<n<>{n<>𣸆bccnv<6E><76>cbbnxs<78>bbfn<66>sbbcclbbkflbbfelbbef?<Ubdbb?<nx~|bedilbdbc?<n}w𡃉<F0A18389>nxsubbbi<62>妔<EFBFBD>俘式Rs丹银丸<E993B6>?<黾坏𡢟``n<><6E>?<{R<>“<EFBFBD>吐<EFBFBD>𠘚妔<F0A0989A>充𣑐?<<3C>𢬢吐<F0A2ACA2>妔’<E5A694>卜<EFBFBD>妔<EFBFBD><E5A694>`n<><6E>?<t<>它R哄吾R<E590BE>丑辺^?<<3C><><EFBFBD>R<EFBFBD><52>R哄刪<E59384><E588AA>Y<EFBFBD>?<<3C>〝```n<><6E>nu~<7E><>蠄R<E8A084><52>妔|<7C>𨧨<EFBFBD>〝<EFBFBD>?<<3C>𠘚妔式R<E5BC8F><52>R𣺹```n<><6E>nw<6E>v?<Ubdbc?<n}w𡃉<F0A18389>nxsubbbi<62>丑辺```?<{R<>𢔛吐<F0A2949B><E59090>秄妔𣺹```n<><6E>?<<3C>丑辺Y充<59><E58585>卜𤧅’<F0A4A785>乞?<s丹银乞R<E4B99E>充𣫮<E58585>圲鱝坏?<<3C>中椘亡n<E4BAA1><6E>?<t圻R<E59CBB>R<EFBFBD>充<EFBFBD><E58585><EFBFBD>R僟R?<<3C>妔<EFBFBD>R<EFBFBD>妔v<E5A694>式丸<E5BC8F>?<䐓<>匝n<E58C9D><6E>?<s<>R嵗奉R{```{R衮<52><E8A1AE>Y<EFBFBD>?<═’<E29590>吐<EFBFBD>亡``n<><6E>nw<6E>v?<Ub2cb?<n}w𡃉<F0A18389>nxsubbbk<62>𠘚妔㨩妔扣﹕<E689A3>咱R式?<s丹银丸充黾坏𡢟n<F0A1A29F><6E>?<<3C>丑辺R<E8BEBA>充<EFBFBD>妔<EFBFBD>R<EFBFBD><52>`n<><6E>?<<3C>妔’<E5A694>卜𣸑R<F0A3B891><52><EFBFBD>R<EFBFBD>?<<3C>妔<E5A694><7F>𣫮膄𢹸𡛂㨩飜n<E9A39C><6E>nw<6E>v?<Ubddb?<n}w𡃉<F0A18389>nxsubbbk<62>丑辺Y充𤧅’<F0A4A785>卜s丹银<E4B8B9>?<咅<>鷼R<E9B7BC><52><EFBFBD>吐𣫮黾中<E9BBBE><E4B8AD>?<<3C>餸椬<E9A4B8><E6A4AC>亡``n<><6E>nu~<7E><>R<EFBFBD>中<EFBFBD><E4B8AD>R<EFBFBD>椬袠<E6A4AC>R<EFBFBD>𣸑?<𣸑<><F0A3B891>R<EFBFBD>𣑐R<F0A39190>𢬢戎R<E6888E>?<<><7F>𢬢`n<><6E>nu~<7E>吃充嵗吐<E5B597>妔v<E5A694>式乞?<𣺹Y匝``央<><E5A4AE><EFBFBD>筻<EFBFBD><E7ADBB>`n<><6E>?<<3C>𣑐R<F0A39190>椬袠<E6A4AC>充<EFBFBD><E58585>餸<EFBFBD>?<<3C>𣸑R𣸑<52><F0A3B891>R咅卜<E59285>𠯫`n<><6E>nu~<7E>吐<EFBFBD><E59090>R<EFBFBD><52>R式R<E5BC8F><52>?<<3C><><EFBFBD>璴n<E792B4><6E>?<圲吐s丹银卜<E993B6><E58D9C><EFBFBD>_<EFBFBD><5F><EFBFBD>𠿭?<𣶸”妔𣺹R<F0A3BAB9><52>`n<><6E>?<z𣸑R<F0A3B891><52><EFBFBD>吐<EFBFBD>䐭<EFBFBD>R<EFBFBD><52><EFBFBD>?<<3C><><EFBFBD><EFBFBD>筻“卜<E2809C><E58D9C><EFBFBD><EFBFBD>?<𠈔<>R<EFBFBD><52>```n<><6E>nu~<7E>Y<EFBFBD>R<EFBFBD><52>卜咅<E58D9C>𠲸R𣺹^?<𢬢R鱝<52>R𢬢R{R<><52>`n<><6E>nu~<7E>妔<EFBFBD>俘<EFBFBD><E4BF98>R<EFBFBD><52><EFBFBD>俘<EFBFBD><E4BF98>?<<3C><><EFBFBD>R僟R<E5839F>妔v<E5A694>式乞?<圲吐<E59CB2>R<EFBFBD>充𣫮忖<F0A3ABAE>R<EFBFBD>丑`n<><6E>nw<6E>v?<Ubebb?<n}w𡃉{<7B>bbbjlbebc?<n<6E>\u<><75><EFBFBD>\R\<5C>𤙥S\n<><6E>nx~|bffdlbbbbnu~<7E>“R<E2809C>妔央<E5A694><E5A4AE><EFBFBD>筻𠿭<E7ADBB><F0A0BFAD>?<<3C>哄<EFBFBD>R<EFBFBD>妔<EFBFBD><E5A694>𠯫`n<><6E>nw<6E>v?<Ubebc?<ns<6E><73>ebblbbcblbbbbn统{bbebnx~|bffdlbebdnx~]bffdnv<6E><76>ebbnwòbebe?<Ubebd?<n}w𡃉v<F0A18389><76>ebbnw<6E>v?<Ubebe?<nwòbbbi
|
||||
|
|
@ -1 +0,0 @@
|
|||
IF_llulIFx<EFBFBD>}x<><78>opmvlluqx<78>lllnx<6E><78>lllx<6C><78>IF_llumIFx<46>}x<78>lllnx<6E><78>llmx<6D><78>IF_llunIFx<46>}x<78>lllnx<6E><78>llnx<6E><78>IF_lluoIFx<46>}x<78>lllnx<6E><78>llox<6F><78>IF_llupIFx<46>}x<><78>opmvlluux<78>lllnx<6E><78>llpx<70><78>IFIF_lluqIFx<78>llntx<74><78>lllx<6C><78>IF_lluuIFx<78>llntx<74><78>llpx<70><78>IFIF_lmllIFx<46>𡣘<EFBFBD><F0A1A398>qrmvlmlnx<6E>𡡣lmmx}<7D>lmllvllllvlllnIFx<46>嚯llnx<6E>}llmlvllunvlllovllmnIF_lmlmIFx<46>𡣘<EFBFBD><F0A1A398>qrmvlmlnx<6E>𡡣lmmx}<7D>lmlmvllllvlllnIFx<46>嚯llpx<70>}llonvllupvllltvllluIF_lmlnIFx<46><78><EFBFBD><EFBFBD>豹釩泌豹型〞]x<><78>x<EFBFBD><78>IFIFIFIFIF_lnllIFx<46>𣗏Fx<46><78>qrpvlnlpIFx<46><78>qrnvlnlrIFx<46><78>c瓷\物陘左α鬥\<5C>琵鬥\筍強x<E5BCB7><78>x<EFBFBD><78>IF_lnlmIFx<46>𡣘<EFBFBD><F0A1A398>𨀤鴂\垮豹◤娉陘﹏<E99998><EFB98F>酙<EFBFBD>疽x<E796BD><78>IF<49>\筍崤秣′\囿\陘﹏<E99998><EFB98F>h\陘△c豕IF曲帕\垮豹㓤癧𤟠陛\筍強x<E5BCB7><78>IF<49>\<5C>}<7D>𦖭仃扇疲\鬥侷x<E4BEB7><78>x<EFBFBD><78>IF_lnlnIFx<46><78>nsovlnlqIFx<46>𡣘<EFBFBD><F0A1A398>俞帖瓷\陘﹏𪃸狗鬥炕疲\筍寂F炕<46>\鬥\言1\陘﹏祝”甫jjx<6A><78>x<EFBFBD><78>IF_lnloIFx<46>𡣘<EFBFBD><F0A1A398>順帑𠸊jjjx<6A><78>x<78><7F>砟jjjIF㙈\仃炒挾\◤屐jj\╞砟jjjx<6A><78>x<EFBFBD><78>IF_lnlpIFx<46><78><EFBFBD>\釩<>歿<EFBFBD>爭𩄼扈<F0A984BC>\鬥\鱝IF左\鴂躀ㄐ\哈\陘﹏<E99998><EFB98F>\𢥫炕jx<6A><78>IF𧂈﹏㓤癧丑娉炳洵央疽x<E796BD><78>x<78><7F>娉井扈﹏弁jjjx<6A><78>x<78>𪊴帘帘jjjx<6A><78>x<78>jjj㙈屆酗&﹏左\陘﹏<E99998><EFB98F>IF𢥫炕jjj{x<><78>x<EFBFBD><78>IF_lnlqIFx<46>𡣘<EFBFBD><F0A1A398>戛\恣檱\帖帘央珮部恣IF坏豕<E59D8F>\嬍\悍𠿭偺jx<6A><78>x<78>摱\<5C>阸c豹〃〞\型〞<E59E8B>\垮埋F△*\窗迴jjx<6A><78>IF~掠\戛巡\<5C>弁<EFBFBD>\扈jx<6A><78>x<EFBFBD><78>IF_lnlrIFx<46>𡣘<EFBFBD><F0A1A398>垮c恣\走咩左α◤娉恣癧◢奕&砸x<E7A0B8><78>IF𨫡&︷珮㓤\咧癧釩<E799A7>歿<EFBFBD>屆狢F<E78BA2>爭𩄼酗俞岩ㄓ豹妒奕\<5C>垮豹陘𨀤jx<6A><78>x<78>𠹻h\恭ㄓ迴x<E8BFB4><78>x<78><7F>\筍崤ㄚ\鬥\砥﹏丑屑IF筍崤垮ㄓ豹鬥\𡆇左α檱囿ΖF陘﹏𠼻α炕敦\鬥\陘﹏鱝䰇x<E4B087><78>x<EFBFBD>glqrpx<70><78>IFIFIFIF_lollIFx<46>𡣘<EFBFBD><F0A1A398>lollx<6C>lx<6C><78>llllx<78>llllIFx<46>glqrmx<6D>𣗏Fx}<7D>lqllvlllovlllnx𤛔<78>lsux}<7D>lqllvllllvlllnIFx<78>lomlvlmnnvlllnx<6E><78>lnllIFx<78>lommvlmnnvlllnx<6E><78>lnlmIFx<78>lomnvlmnnvlllnx<6E><78>lnlnIFx<78>lomovlmnnvlllnx<6E><78>lnloIFx<46>𡡣llpx<78>lpllvlmmtvlllnx<6E><78>lqllIFx~<7E>lpllIFx<78>lllpIFx}<7D>lpllvllmlvlllnIFx}<7D>lomlvllmlvlllnIFx}<7D>lommvllmlvlllnIFx}<7D>lomnvllmlvlllnIFx}<7D>lomovllmlvlllnIFx<46><78>IFIFIF_lomlIF_lommIF_lomnIF_lomoIFIFIFIF_lpllIFx<46>𡣘<EFBFBD><F0A1A398>lpllIFx<46>ilqrmx<6D>ilqrqIFx}<7D>lomlvllnlvlllqIFx}<7D>lommvllnlvlllqIFx}<7D>lomnvllnlvlllqIF<}<7D>lomovllnlvlllqIFx<78>lpllvlmmsvlllqIFx}<7D>lpllvlllqvlllqx𤛔<78>llnIFx}<7D>lpllvllolvlllpx<70>𡡣lslIFx𤛔<78>mllx<6C><78><EFBFBD>llmqx<71><78><EFBFBD>穉F𤨎酜垣琶x𤛔<78>mplx<78>llllx<6C><78>x<78>x<EFBFBD>glqrnIFx<46>嚯llpx<70>}llnuvllulvllmnvllluIFIF_lpmlIFx<46>𡣘<EFBFBD>glqrnx<6E><78><EFBFBD>llmu𠹻]x<><78>x<EFBFBD>llllx<78>IFx}<7D>lpllvllmlvllllx𤛔<78>lqlIFx<46><78><EFBFBD>llmu𧞄帷恣\野陘\陘﹏竉岩<E7AB89>涅F鬥哂x<E59382><78>x<78>𨫡𨀤c珮恭ㄓ退\陘&︷涅F物陘左α<E5B7A6>癧<EFBFBD>垮豹陘〝]x<><78>x<78><7F>坼戛巡jIF戛巡\~<7E>椬jx<6A><78>IF㨩〞\<5C>釩均\惇h\<5C><>涅F野陘\陘*﹏鴂巨矾〞jx<6A><78>x<78>x<EFBFBD>llnq<6E>𠼻泌豹<E6B38C>瓷\㓤琵屆帖恭*IF鱝◤恣\陘𨀤jjjx<6A><78>IF}帚*<E5B89A>h\筍崤岩ㄓ豹<E38493>痙x<E79799><78>x<78>x<EFBFBD>llnl<6E><6C>疽jj洫<6A><E6B4AB>巡\䣺F竉岩<E7AB89>i鵐<69>丑娉曲秣\言均IF陘﹏城丑娉悍𠿭偺jjjx<6A><78>x<78>IFx<46><78>pmqIFIF_lpmqIFx<46>𡣘<EFBFBD><F0A1A398><EFBFBD>llmu𠹻h\釩赦x<E8B5A6><78>x<78>𨫡𨀤\𤨓<>娉蝱躀\哈\筍戛涅F弁\左\𧨾2沔砟𧢝】x<E38091><78>IF<49>俞筍崤<E7AD8D>狐\鬥\乾<>!F弘\◤娉延\<5C>鴂左﹏ㄠ泯x<E6B3AF><78>pnlx<6C>glqrox<6F>llllx<78>IFx𨬌炼llnvlllpvlmllx<6C>邮lln<6C><6E><EFBFBD>\垓&\陘﹏y𤨓<79>娉蝱躀yjx<6A><78>x<78>IFx<78>llmlx<6C>邮llp<6C>豹陘﹏y<EFB98F>鴂左﹏<E5B7A6>泊]x𤛔<78>mrlx<6C><78>x<EFBFBD>𪄣<F0AA84A3>IFx<46>嚯llpx<70>}llnuvllulvllmnvllluIFIF_lpnlIFx<46>𡣘<EFBFBD><F0A1A398><EFBFBD>llmu繧檱巡{x<><78>x<78>摱豕h\失\筍崤〃&\鴂㓤ㄐIF筍戛\岩<>h\<5C>豕\鱝\丑恣jx<6A><78>x<EFBFBD><78><EFBFBD>x<EFBFBD><78>llllIFx<46>嚯llpx<70>}llnuvllulvllmnvllluIFIFIFIFIF_lqllIFx<46>𣗏Fx<46><78>qrovlqolIFx<46><78>qmqIFIF_lqmlIFx<46>𡣘<EFBFBD>glqrnx<6E><78><EFBFBD>llmu𠹻]x<><78>x<78>𧞄帷恣\野陘\陘﹏竉岩<E7AB89>涅F鬥哂x<E59382><78>x<78>𨫡𨀤c珮恭ㄓ退\陘&︷涅F物陘左α<E5B7A6>癧<EFBFBD>垮豹陘〝]x<><78>x<78><7F>坼戛巡jIF戛巡\~<7E>椬jx<6A><78>IF㨩〞\<5C>釩均\惇h\<5C><>涅F野陘\陘*﹏鴂巨矾〞jx<6A><78>x<78>x<EFBFBD>llnq<6E>𠼻泌豹<E6B38C>瓷\㓤琵屆帖恭*IF鱝◤恣\陘𨀤jjjx<6A><78>IF}帚*<E5B89A>h\筍崤岩ㄓ豹<E38493>痙x<E79799><78>x<78>x<EFBFBD>llnl<6E><6C>疽jj洫<6A><E6B4AB>巡\䣺F竉岩<E7AB89>i鵐<69>丑娉曲秣\言均IF陘﹏城丑娉悍𠿭偺jjjx<6A><78>x<78>IFx<46><78>qmqIFIF_lqmqIFx}<7D>lllnvlqmsx}<7D>llmovlqmsIFx<46><78><EFBFBD>llmux<75><78>炕\<5C>痛\<5C>癧恣檱巡\言均IF鬥\屆※\陘𨀤\ㄠ狗岩陘jjjx<6A><78>x<EFBFBD><78>IFIF_lqmsIFx<46>glqrox<6F><78>qmtIFIF_lqmtIFx<46><78>lltIFIF_lqnlIFx<46>𡣘<EFBFBD><F0A1A398><EFBFBD>llmu繧檱巡{x<><78>x<78>摱豕h\失\筍崤〃&\鴂㓤ㄐIF筍戛\岩<>h\<5C>豕\鱝\丑恣jx<6A><78>x<EFBFBD><78>IFIF_lqolIFx<46>𡣘<EFBFBD><F0A1A398><EFBFBD>llnq<6E>c珮陘﹏仃<EFB98F>狗\酗剃恣IF陘﹏恣檱\<5C>癧ㄠ粟]x<><78>IF𨫡﹏竉岩<E7AB89>珮部恣\曲秣IF扈<46>\嬍\陘〝jx<6A><78>x<EFBFBD><78>IFIF
|
||||
|
|
@ -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
|
||||
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
{x憺灖瀧x<E780A7>集<EFBFBD>焊灕灋<E78195>灖*被脼灋Κ疮窞灋灙臣瞷x憺灖焮x<E784AE>集<EFBFBD>幻灋灕<E7818B><E78195>灋灍<E7818B>疾{x憺灖爗x<E78897>集<EFBFBD>焊灕灋<E78195>灖お被脼灋Κ疮窞灋牚臣瞷x憺灖<E686BA>x<EFBFBD>集<EFBFBD>幻灋灕<E7818B><E78195>灋灐<E7818B>疾{x憺灖<E686BA>x<EFBFBD>集<EFBFBD>幻灋灕<E7818B><E78195>灋灑<E7818B>疾{x憺灖<E686BA>x<EFBFBD>幻灋牎<E7818B><E7898E>灋灋<E7818B>疾{x憺灖<E686BA>x<EFBFBD>幻灋牎<E7818B><E7898E>灋灎<E7818B>疾{x憺煘瀧x<E780A7>城<EFBFBD>矫灋煙<E7818B>季灍灋<E7818D>灋灗灋灎<E7818B><E7818E>灋灋<E7818B>蜡灋ⅲ<E7818B>灖灗灋<E78197><E7818B>灒<EFBFBD>x憺煘焮x<E784AE>城<EFBFBD>恋封庡蒈曗庉抻軠<E68ABB>讲<EFBFBD>疾{x憺煙瀧x<E780A7>城<EFBFBD>焊灔<E7848A><E78194>煙煪涣祼蚕苷余彁庒渍茚幭嘤庌谙徕余右{x馅趲蒌余庘钟幰葺鄿<E891BA>讲{x封曖庌噍邢汹鐜茌鈳蠋蛰菀幾矣蟵x廨幱茆余幭谳苡湝湭冀勃臣瞷x憺煙焮x<E784AE>城<EFBFBD>矫灋煙<E7818B>季灍煘<E7818D>灋灗灋灎<E7818B><E7818E>灋灎<E7818B>蜡灋ⅴ<E7818B>灖牗灋灑<E7818B>灍<EFBFBD>x憺煚瀧x<E780A7>赂灋牊<E7818B>煚焮x<E784AE>城<EFBFBD>恋禽銕钟相庘钟庒葶芤庉詭嚆嶂总調x逑庥鄮脏蒇庡租肿n湭冀瞷x封庡葶谝軙鈳杏幭幷葺規滓酉庘輲钟弦{x总庡租州汊幭軒献鄮庀苜湭冀勃臣瞷x憺煚焮x<E784AE>城<EFBFBD><E59F8E>灋灐<E7818B>蜡灋ⅵ<E7818B>灖〃灍#<E7818D>灋焮x{x憺煟瀧x<E780A7>城<EFBFBD>集<EFBFBD>幻灋灕<E7818B><E78195>灋灒<E7818B>季灐灋<E78190>煙エ灋灎<E7818B><E7818E>灋灎{x<><78>灋煘{x<>季灐灋<E78190>灋〃灋灎<E7818B><E7818E>灋煠{x<>季灐灋<E78190>灋煥灋灎{x<>季灐灋<E78190>灋〃灋灎<E7818B><E7818E>灋あ{x<>季灐灋<E78190>灎灗灋灎<E7818B><E7818E>灋<EFBFBD>{x<>季灐灋<E78190>灋煥灋灋<E7818B><E7818B>灋煘{x<>季灐灋<E78190>灋〃灋灎<E7818B><E7818E>灍<EFBFBD>{x<>季灐灋<E78190>灎灗灋灎<E7818B><E7818E>灋煘{x<>矫灋煙<E7818B>季灍煘<E7818D>灋灗灋灎<E7818B><E7818E>灋牉{x<>季灐灋<E78190><E7818B>灋牉{x<>矫灋煙<E7818B>季灍煘<E7818D>灋灗灋灋<E7818B>簷灕牉<E78195>疾{x憺<78>瀧x憺 瀧x<E780A7>婪<EFBFBD>恋禽銕嵊訋蠋秀忖蒈湭冀勃两脼灑—焙廓涣稻嘤後右幾鉁<E5B9BE>讲<EFBFBD>航{x<><78>灋<EFBFBD>{x<>矫灋<E79FAB>{x<>痪灋灔<E7818B>灐(灋灋{x<>痪灋灕<E7818B>灐(灋灋{x<>痪灋牑<E7818B>灐煥灍煙{x<><78>灋<EFBFBD><E7818B>疾{x
|
||||
|
|
@ -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–™ž”P‘PžŸ¤•^l~tls|‚l„…‚‡™¤˜P¤˜•P£˜™•œ”P¥ \PyP“‘žW¤=:—•¤P¤ŸP~Ÿ^P``W£P¢ŸŸ<C5B8>^l~tls|‚l„…‚yP¤˜™ž›PŸž•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
|
||||
|
|
@ -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
|
||||
|
|
@ -1 +0,0 @@
|
|||
=:S``i`=:l}~qls}…``adlvqy````lu~t=:S``ia=:l}~qls}…``adlvqy```alu~t=:S``ib=:l}~qls}…``adlvqy```blu~t=:S``ic=:l}~qls}…``adlvqy```clu~t=:S``id=:lv|z`ab`j``ielu†u``ie=:S``ie=:l}~qls}…``adlvqy```dlu~t=:=:S`a``=:l€‚ylƒ…``aalt~€`a``lvq```dl„‚q```bj``idj`biaj```h=:=:S`a`e=:l€‚yl}ƒwtŸP©Ÿ¥P§‘ž¤P¤ŸP£‘¦•ol‰~z````lƒ†€ls|‚w‘<77>•P£‘¦•”^l~tlu~t=:S`a`f=:l€‚yl|y[a```lƒ…``b`lqu[l}ƒwuž•¢—©P¢•£¤Ÿ¢•”^l~tlu~t=:=:=:S`aa`=:l{u‰l}ƒw‰Ÿ¥P–••œP‘P“Ÿœ”P§™ž”=:’œŸ§™ž—P™ž^^^l~tlu~t=:=:=:S`b``=:l{u‰=:lv|[`ab`lv|[`a`elv|[`aedlv|[`aeelv|[`cbilv|[`a0flv|[bh``=:l}‰r```bl‡qy``b`l}‰t```b=:l‡qy``b`lq~€`b``j```ej```bl}‰t```cl}‰t```b=:lq~€`b``j```cj```bl‡qy``c`=:lq~€`b``j```ej```b=:l‡qy``e`lƒ…``dcl‡qy``b`=:lq~€`b``j````j````l‡qy``e`=:lq~€`b``j```cj````l‡qy`abf=:lq~€`b``j````j```bl‡qy``b`=:l}‰t````=:lq~€`b``j```ej```bl‡qy``b`=:lƒ…``aalq~€`a``j````j```bl‡qy``b`=:lq~€`a``j````j````lt~€`b``lƒ…``bclu~t=:=:S`c``=:l{u‰l}ƒwl„…‚ƒ›©Pt¢‘—ŸžPu——P~Ÿ^P``=:x‘¤“˜™ž—P ¢• ‘¢‘¤™Ÿž£P“Ÿ<E2809C> œ•¤•^l~tls|‚=:yž ¥¤P€‘££§Ÿ¢”jl~tlu~t=:S`c``=:l€‚ylvq```dl„‚q```aj``idj```ej```g=:=:=:S`d``=:=:
|
||||
|
|
@ -1 +0,0 @@
|
|||
ZWp}}<7D>ZW凹寰艶圓}}}~遠事}}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}~遠事}}}~薗尅ZWp}}<7D>ZW凹寰艶圓}}}~遠事}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}~遠事}}}薗尅ZWp}}<7D>ZW遠剽}~}g}}<7D>凹寰艶圓}}}~遠事}}}♂兆岨Wp}}<7D>ZW凹寰猿屎}~~}<7D>}}}<7D>}}艶圓}}}~遠事}}}♂兆岨Wp}}<7D>ZW汚懲凹寰艶圓}}}~ZW猿屎}~}}<7D>}}~<7E>}}}遠事}}}〇W艶屎}}~<7E>~~<>}}王事}~}}ZW猿屎}~}}<7D>}}}<7D>}}}ZW凹ヲ挿}}苑屎}}~旺嚼薗尅ZWp}~}}ZW往泱凹<E6B3B1>秤。「汨シmニシツmトョサチmチシmエシmチシm質チオツソtタZWオシツタイ潔ヲ尢}}}}艶劈ZW汚懲艶屎}}}<7D>~~~<7E>}}鴛嚼王事}}マ猿屎}~}}<7D>}}~<7E>}}}ZW王事}~}}遠慈}}}♂。沁}}}~<7E>}<7D><>}}g}}}<7D>Wp}~}~ZW往泱遠慈}}}♂。沁}}}∞}}<7D><>}}<7D>}}}<7D>Wp}~}ZW汚懲艶屎}}}<7D>~~~<7E>}}鴛嚼王事}}マ猿屎}~}}<7D>}}~<7E>}}}ZW王事}~}}遠慈}}}♂等z}~}ラ。沁}}∞}м}<7D>}}<>}}}ZWp}~}ZW往泱遠慈}}}♂。沁}}}g}}<7D><>}~}<7D>}}<7D>Wp}~}<7D>W往泱遠慈}}}♂。沁}}<7F>}<7D><>}~<>}}ZWp}~}セW往泱旺悗}}~~苑屎}~}ラ梼怡}}♂。沁}}<7F>}<7D><>}~~<7E>}~ZWp}~}ЩW往泱遠慈}}}♂。沁}}<7F>}<7D><>}}<7D>}}}<7D>Wp}~}<7D>W往泱遠剽}~}<>~}<7D>國薄チmトシサtチmシスイサn央恆薗尅ZWp}~}<7D>W往泱旺悗}}~~苑屎}~}<7D>梼怡}}♂。沁}}}<>}<7D><>}}∞}}~}ZWp}~~}ZW往泱遠剽}~}g}~~~凹<>薄チmトシサtチmシスイサ{{{央恆薗尅ZWp}~~~ZW往泱苑屎}~~}遠慈}}}♂。沁}}~<7E>}<7D><>}~}<7D>}}<7D>Wp}}}ZW往泱凹<E6B3B1>薄tアmトョチーオmシツチmカウm卜トイソイmニシツ{央恆ZW。オョチmトオカチイmチオカサエmシサmチオイZWッシチチシコ潔屆岨W惱イmチシツーオmョサアm撩、ymカチtタmシテイソ{央恆薗尅ZWp}}}ZWp}}~ZWp}±}ZW往泱遠凅}~}~旺悗}}苑屎}±}薗」筑±ZWp}±~ZW往泱遠凅}~}旺悗}}苑屎}±~薗」筑±〇Wp}±ZW薗」筑}~ZWp}±〇W薗」筑}~ZWp}<7D>}ZW汚懲凹M}凹ヲ挿}}遠圓苑屎}<7D>}遠凅}~}}ZW凹<57>秤梼図}}猿屎}<7D><EFBFBD>}~~<7E>}}。オイソイmニシツmョソイyZWニシツmコシサタチイソn央恆ZW釦コmサシチmョウソョカアアョmニシツn猿屎}<7D><EFBFBD>}}}<7D>}}央恆艶辧艶圓}}}}ZW遠諮}}~惧博歯貧n央恆艶辧遠諮}}}猿屎}<7D><EFBFBD>}~~<7E>}}猿屎}<7D><EFBFBD>}~~<7E>}}ヲイョオ稽、オョチtタmチオョチ潔屆岨Wヲシツmトョササョmッソカサエmカチ系央恆艶辧半mョオイョアmョサアmチソニn央恆ZW津イサmコニmッソシチオイソtタmサイテイソZWッイョチイサmコイnn央恆遠諮}}}}艶劈ZW猿屎}<7D>~<7E>}}<>}}}王事}}eZW猿屎}<7D>~<7E>}}∞}}}}王事}}~}ZW猿屎}<7D><EFBFBD>}}ョ}}}王事}}~}往泱凹<E6B3B1>秤梼図}}●シウnmヲシツmトカサn央恆艶劈汚懲ZW猿屎}<7D>~<7E>}}∞}}}}王事}}~}ZW猿屎}<7D><EFBFBD>}}ョ}}}王事}}~}往泱凹<E6B3B1>薄tコmタシソソニnZW釦コmタシソソニnn央恆遠諮}}}}艶劈汚懲ZW猿屎}<7D>~<7E>}}∞}}}}王事}}~}ZW猿屎}<7D><EFBFBD>}}<7D>}}}凹<7F>背請ョタオnw王事}}<7D>艶劈ZW王事}}}凹<>莫シシオオ{{{央恆艶辧閉オ潔屆岨W王事}}~}猿屎}<7D><EFBFBD>}}}<7D>}}}王事}}~}ZW凹<57>秤梼図}}~、オシtソイmニシツ潔屆岨W猿屎}<7D>~<7E>}}<>}}}王事}}<7D>ZW猿屎}<7D>~<7E>}}∞}}}}王事}}~}ZW猿屎}<7D><EFBFBD>}}ョ}}}王事}}}ZW往泱凹<E6B3B1>秤梼図}}£ソクn王事}}<7D>遠諮}}}}艶劈汚懲ZW猿屎}<7D><EFBFBD>}~<>}}}王事}}<7D>凹<EFBFBD>秤梼図}~{{{{{央恆艶劈ZW猿屎}<7D>~<7E>}}<>}}王事}~}苑屎}<7D>苑屎}<7D>~押圓薗尅ZWp}<7D>~ZWp}<7D>ZWp}<7D>ZW汚懲遠凅}~}遠悍}<7D><EFBFBD>}~セW艶屎}<7D><EFBFBD>}<7D><>}}}ZW王事}±}艶圓}}~<7E>W遠悁}}~ラ國秤。「飮W卒ウイョチイアm牟シソn王事}~±央恆ZW艶圓}}}~薗尅ZWp}<7D>〇Wz}<7D><>W往泱凹<E6B3B1>秤梼図}~、オョチ{{{潔屆痩杉洟オイソイmョコm本{{潔屆岨W、オョチmアカアm本{{潔屆痩杉洟オシmョソイmニシツ潔屆痩兆岨Wp}マ}ZW汚懲遠圓苑寰}}e凹嘲凹ヲ挿}}苑屎}マ}ZW艶圓}}}〇W艶屎}<7D>∞}}~<>}}}ZW艶屎}<7D><EFBFBD>}<7D><>}}}縁<>凩<EFBFBD>遠凛}~}薗尅ZW
|
||||
|
|
@ -1 +0,0 @@
|
|||
GD]jjsjGDv㊧{v}㍼jjlqv{ニjjjv<76>GD]jjskGDv㊧{v}㍼jjlqv{ニjjkv<76>GD]jjslGDv㊧{v}㍼jjlqv{ニjjlv<76>GD]jjsmGDv㊧{v}㍼jjlqv{ニjjmv<76>GD]jjsnGDv㊧{v}㍼jjlqv{ニjjnv<76>GD]jjsoGD]jjssGDv<44>砺㊧{v}㍼jjlqGDv{<7B>jkjjtjjjktjjjjv{ニjjnGDv}<7D>jmjktjkkltjjjlv捜ニkjjGDv{<7B>jkjjtjjjjtjjjjGDv∮~jjjlv~<7E>jmjkv合}v<76>GD]jkjjGDv褐プ㍾」誌鯨ゥZウゥッZア岑ョZョゥZ。ゥZョゥZ{ャョ「ッャaュGD「ゥッュ毓v嶋<76>jjjv}<7D>v<76>jkosGDv<44>砺}<7D>jmjjtjkkktjjjlvg}v捜ニjpjv{<7B>jkjjtjjjktjjjjGDv捜ニkjjv{泳jjnv詞{jjjktjjsstjjjotjjjrGD]jkjkGDv褐プ{泳jjnv詞{jjoktjjsntjjjntjjjnGD]jkjlGDv褐プ{泳jjnv詞{jjoktjjsntjjkrtjjjrGD]jkjmGDv褐プ{泳jjnv詞{jjjotjjsntjjkj:jjjrGD]jkjoGDv褐プ{泳jjnv詞{jjojtjjsntjjkltjjjlGD]jkjpGDv褐プ{泳jjnv詞{jjojtjjsntjjkktjjklGD]jkjrGDv<44>砺拷祝jkkv{<7B>jkjrtjjjjtjjjlv{泳jjnv詞{jjoltjjsntjjjntjjkjGD]jkkjGDv<44>砺{泳jjnv詞{jjontjjsntjjkjtjjjsGD]jkkkGD]jljjGDv褐プ㍾」誌月「飮撥ャ撥ュュZゥ<5A>Z媚婚ウZ~ャ孱ゥィhhhv<68>~v<76>GD]jljkGDv{<7B>jljktjjjjtjjjlv<76>GD]jlkjGDv褐プ㍾」誌月「洳飮ア岶Zョ「」ュZ「ッ。飮浚ェヲゥュ」ゥィ[GD造洽Zセ撥ァ飮ョゥfZ」ョZ屹ヲZヲゥゥ・沾GDヲ」・飮ョ「」ュhv<68>~v<76>GD]jmjjGD]jmjkGD]jmljGDv褐プ<E38397>jrrjtjjjkv<76>jrrjv拷祝jllv}<7D>jmljtjjlktjjjjv<76>jmlkGD]jmlkGDv<76>jjmjGD]kljjGDv<44>砺{<7B>kljjtjjljtjjjjGDv沿kljjtjjkpv{ニjjkGDv捜ニkjjv{泳jjkv詞{jjjptkljjtjkqktjjkn
|
||||
|
|
@ -1 +0,0 @@
|
|||
B?XeeneB?q們vq{v~eeeeqz儁B?XeenfB?q們vq{v~eeefqz儁B?XeengB?q們vq{v~eeegqz儁B?XeenhB?q們vq{v~eeehqz儁B?XeeniB?q們vq{v~eeeiqz儁B?B?XefeeB?q€z巕x倞eeeeq寁~efeeq垊奺fefq寁~eegeq垊奺ehjq寁~egeeB?q{剝egfeoeefkB?q寁~efeeqx倞eeeeB?qv儏egeeoeekeoeeegq{v~eeehB?q寁~eheeqy儏eggeB?q寁~egeeqy儏egeeB?qv儏egheoeeheoeeeeq寁~eeegB?qv儏egheoeefeoeeeeB?q{剝egieoeefkB?q寁~efkeB?q倛|B?qx倞eefex柂湞︰棶U€柉<E282AC>朧q寁~efkeqx亣q{vxeefe厺毈cccq儎yqx亣~U<>珰<EFBFBD><E78FB0>お湞︰<E6B99E>猏橞?枠┆枴‘Uオ U灘U<E78198>沜q儎yqx亣w·瑸<C2B7>U<EFBFBD>U<EFBFBD>歎槫<E6AD8E>cccq儎yqx亣寶 aU¥琔<EFBFA5>歎<EFBFBD>А橴お湞〣?─U棜U洤殮U洤あU枺甎洩┆<E6B4A9>B?灒槚В柀灓(U<EFBC88>U<EFBFBD>歎y<E6AD8E>─<EFBFBD>q儎yB?厷枠歎潠║棜殻Uェ毃毀珰橵q儎yqx亣B?儰琣U<E790A3>‐║湦U潳<55>cq儎yqx亜B?q€z巕{v別eeiq}倄q墖veeeeoefeeoeeefoeefjB?B?XefgeB?q€z巕x倞eeeeB?q{剝egieoeefkB?qx儏egheoehjkoeeegB?qy儏eggeq寁~egeeB?q{v~eeefB?q倛|q{vxeeejq{乣geeeq{乣fike厺毈Vq寁~eejeqx亣墲柀ccc瑬║槨え歝q寁~eejeqx亣q{vxeefn~U<>お湞︰~U瑬║<E791AC><E29591><EFBFBD>?<3F>〇<EFBFBD><E38087>灗U<E78197><55>U洡<55>?í<>cccq寁~eejeB?仱<>║<EFBFBD>牃U瑲Uが欱?<3F>猆枺ぉ潥<E38189>ぃ歝q寁~eejeqx亜q{vxeeeeq寁~eejeB?q倛|q{vxeeej儢漚U櫎<55>︰<EFBFBD>枺燯<E69EBA>cq寁~eejeB?~U瑬║煪īU櫎灒淯瑵柀B?倿<>МU枿牃橴<E78983>U─U櫎cq寁~eejeqx亣q{vxeegj倿<6A>МtU帳猆<E5B8B3>枺aB?<3F>柀U瑸<55>漷q寁~eejeqx亣B?q{vxeeej墲柀\║<>湞ヽq寁~eejeqx亣q{vxeegj~U<>お湞︰<E6B99E>歎潠<E6AD8E>橞?お<>湭┄cq寁~eejeB?}殬燼U~U<>お湞︰巹夿?潠<>橴お<E6A9B4>湭┄cccq寁~eejeqx亣q{vxeeej帳猆棜柀Uw枴·╝U<E2959D>湞﹖q寁~eejeqx亣対殻U<E6AEBB>猆櫈橴<E6AB88>柀aB?灘U<E78198>洨殭Uお<55>槳Ж歝q寁~eejeB?儰琔<E584B0>灘潥<E78198><E6BDA5>U<EFBFBD>U潠˙?─U〇牃Uぇ櫄ЖU洤あB?枺<><E69EBA>Vq寁~ee5eqx亣q{vxeefn~U<>お湞︰<E6B99E>猆湭<E78C86>U瑲<55>B?煪īU煔<55>╝q寁~eejeB?棯︰~U湭毃║灘U瑬║枴<E29591>?<3F>歎xГ<78>\║洊<E29591>¬q寁~eejeqx亣q{vxeeej寶 aU<61>猆<EFBFBD>枼U瑵柀B?<3F>猆à琧q寁~eejeB?v洨毀U枴<55>U倿<55>М\║<>欱?ぃ歎瑵<E6AD8E>潠橴潪<E6A9B4><E6BDAA>牃U<E78983>欱?槯が<E6A7AF>灒U<E78192>歎洖Ж︰ァ枠歝q寁~eejeqx亣q{vxeegj}獫cq寁~eejeB?帳猆櫎<E78C86>︰<EFBFBD>甤q寁~eejeqx亣q{vxeeej~U櫎U<E6AB8E>甤q寁~eejeqx亜q{vxeeeeB?q寁~efjeB?q倛|q{vxeeej垽Vq寁~eejeqx亣B?q{vxeegj垽tq寁~eejeqx亣q{vxeeej垽U瑵柀U枾歎<E69EBE>猆湦灒淏?─U櫎U¥瑃q寁~eejeB?~U槚<55>〇牃U<E78983>猆枺<E78C86>潥<EFBFBD>B?<3F>猆<EFBFBD>牃cq寁~eejeqx亣q{vxeefn}ⅱaU<61>猏<EFBFBD>U<EFBFBD>湞ヽccq寁~eejeqx亣劒<E4BAA3><E58A92>è灓<C3A8>灗Uか毀aB?枺橴¥琔~U煪īU瑬)U─B?<3F>珰Uお︰<E3818A>U櫀<55>q寁~eejeB?à<>瑵毀歎瑵毀歎~U槚<55>?<3F><>璘枺橴殻煠甎朆?棜柂<E6A39C>洩<EFBFBD>珵毈cccq寁~eejeqx亜q{vxeeeeB?q寁~efeeq倛|q{vxeeej姖aU<61>猆牐がcccq寁~eejeqx亣B?q{vxeegj}<7D>q寁~eejeqx亣q{vxeeejccc尋<63>橴灘U棜U枴<55><E69EB4>湞〣?灈U~U煠灒殭U<E6AEAD>猆<EFBFBD>毀歵q寁~eejeqx亣B?q{vxeefn埅<6E>Vq寁~eejeB?仛‐║<E28090>珰U<E78FB0>歎<EFBFBD><E6AD8E>欱?<3F>U<EFBFBD>U─湚<E29480>毀Vq寁~eejeqx亣B?q{vxeefi嚉枴‘tVq寁~eejeqx亣q{vxeefn~\ U<E38080>︰<EFBFBD>猆<EFBFBD>槧U<E6A7A7>欱?ēぉcq寁~eejeB?<>︰洖<EFB8B0>U<EFBFBD>U朥湦<E69CA5>B?ァ枠歛U<E6AD9B>柈tq寁~eejeqx亣B?q{vxeefi帳猆湦︰灘VVq寁~eejeqx亣v U<E38080>湞︰<E6B99E>殻aB?qv儏egheoeegeoeeeg漲寁~eefe杚寁~eefe<66>寁~eefe渜寁~eefeUq寁~eefe<66>寁~eefe<66>寁~eefeUq寁~eefe﹒寁~eefe瀜寁~eefe渜寁~eefe漲寁~eefe﹒寁~eefeVVq寁~eejeqx亜q{vxeeeeB?q€z巕{v別eeiq}倄q~<7E>eehgoefgfq墖veeeeoefeeoeeefoeefjB?B?XefgfB?q€z巕寁~efeeq倛|q|~塮ehgcccv<63><76>︰<EFBFBD>猆洡<E78C86>毄<EFBFBD><E6AF84>B?à<><C3A0>灒渢q寁~efjeq墖veeeeoefeeoeeefoeefjB?B?XegeeB?XegfeB?XeggeB?XegheB?XegieB?B?
|
||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
=:S``i`=:l}~qls}…```hlvqy````lu~t=:S``ia=:l}~qls}…```hlvqy```alu~t=:S``ib=:l}~qls}…```hlvqy```blu~t=:S``ic=:l}~qls}…```hlvqy```clu~t=:S``id=:l}~qls}…```hlvqy```dlu~t=:S`a``=:l€‚ylv|z`e``j`a`a=:lƒ…``aals~€`a``j``ahj```blvq```dl„‚q```fj``idj`bgcj```f=:S`a`a=:l€‚yl}ƒwy¤P§ŸžW¤PŸ •žQl~tlu~t=:S`b``=:l{u‰lv|z`e`aj```alv|[`e`alƒ…``bbls~€`b``j``baj````=:ls~€`d``j``dfj```bls~€`d`aj``dfj````l‡qy```a=:lu†u`c``=:S`b`a=:S`b`b=:l{u‰=:ls~€`e``j``fgj```bl‡qy``a`l}‰t````l‡qy``i`=:lq~€`e``j``acj`0`bl‡qy``e`lq~€a```j```hj````=:ls~€`b`aj```ij```bl‡qy``hhl}‰t````l‡qy``e`ls}…``aa=:ls~€`b`aj``abj```blq~€`b`aj````j```b=:l‡qy``b`lq~€`e``j``bej````l‡qy``e`lq~€`b`aj``d`j```blq~€`e``j``b`j````l‡qy``c`lq~€`b`aj``dbj```blrq``b`l‡qy`a``=:lt~€`b`alrq``a`l‡qy``a`lrq`a``lrƒ|````ls}…```glv|[`e``lu~t=:S`c``=:lu†u``fa=:S`d``=:lt~€`d``lt~€`d`alu†u`b`b=:S`d`a=:lu†u`d``=:S`e``=:Sa```=:l{u‰lrq`ac`lt~q`aa`lt~q`a`dl‡qy`db`ls}…``ae=:l}ƒwl„…‚=:vŸ¥—˜¤PŸ––Pr‘œ¢Ÿ—Ql‡qy`ad`l~t=:ls}…```hlv|]`e``lu~t
|
||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}~薗尅ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}薗尅ZWp}}<7D>ZW凹寰艶圓}}}}遠事}}}♂兆岨WZWp}~}}ZW往泱遠剽}<7D>~<7E>~}~遠剽}<7D><7F>~}ZW薗」筑~}ZWp}~}~ZW往泱凹<E6B3B1>幡シツmーョサtチmケイョテイn央恆薗尅ZWp}~}ZW遠慈}}}♂。沁}}~}<7D>}<7D><>g}}セWp}~}ZW遠慈}}}♂。沁}}х}マ}<7D>}<C280>}~〇WZWZWp}<7D>}ZW汚懲薗」筑<EFBDA3>~ZWp}<7D>~ZW汚懲旺治薗」筑<EFBDA3>ZWp}<7D>ZW凹ヲ挿}}ZW遠凅}fラ等x}f♂味z}}~♂等z}пZW遠凅}<7D>}遠凅}<7D>~凹寰艶圓}}~ч伏翠糖孺<E7B396><EFBFBD>}~ラ梼凡}}〇W王事}}<7D>ZW猿屎}<7D><EFBFBD>}}}<7D>}}}王事}}}ZW猿屎}<7D><EFBFBD>}}}<7D>}}ZW猿屎}<7D><EFBFBD>}}<7D>}}}王事}}<7D>ZW艶屎}<7D><EFBFBD>~=<>}}}王事}~~}ZW艶屎}<7D><EFBFBD>}マ<>}}}王事}}}ZW猿屎}<7D><EFBFBD>}}}<7D>}}ZW猿屎}<7D><EFBFBD>}}ョ}}}}艶屎}<7D>∞}}}<7D>}}}王事}~}}ZW艶屎}<7D>∞}}~<>}}猿屎}<7D><EFBFBD>}~}<7D>}}ZW猿屎}<7D>∞}}}<7D>}}ZW遠悍}<7D>ョ}}~ラ寺掵<E5AFBA>∞}}}<7D>}}ZW猿屎}<7D>∞}}マ<>}}王事}}ZW猿屎}<7D>∞}}<7D><>}}王事}}<7D>ZW艶圓}}}ZW遠悍}<7D>g}}~ラ、事}}}艶圓}}~<7E>W艶屎}<7D>g}}ミ<>}}猿屎}<7D>g}}}<7D>}}王事}}<7D>窺ヲ挿}<7D>ZW猿屎}<7D>g}}~}<7D>}}王事}}〇W猿屎}<7D>g}}マ<>}}王事}}<>W猿屎}<7D>∞}}}<7D>}}}王事}}<7D>ZW猿屎}<7D>g}}}}<7D>}}王事}}}ZW遠悍}<7D>~<7E>}~セW王事}}<7D>ZW猿屎}<7D>g}}~}<7D>}}王事}}±ZW猿屎}<7D><EFBFBD>}}<7D>}}}王事}}~<7E>W猿屎}<7D>~<7E>}~}<7D>}}}ZW艶屎}<7D>х}~<<>}}王事}}~<7E>W猿屎}<7D>g}}}<7D>}}}遠悍}<7D>g}}~セW苑寰}~≠艶圓}}}}王事}~}ZW王事}}}旺嚼王事}}}ZW遠悍}<7D>~<7E>}~ラ寺掵<E5AFBA>~<7E>}}<7D>}}}猿屎}<7D>~<7E>}}<7D>}}}王事}~}}艶圓}}}〇W艶屎}<7D><EFBFBD>~±<>}}縁<7F>凩<EFBFBD>ZW遠悁}}~ラ兆岨WZWZW薗尅ZWp}<7D>~ZWp}<7D>ZWp}<7D>ZW汚懲遠凅}<7D>苑寰}~×苑寰}~<7E>ZW遠悍}<7D><EFBFBD>}~ラ寺掵<E5AFBA><EFBFBD>~}}<7D>}}<7D>W王事}±}艶圓}}}}ZW凹<57>秤。「飮W卒ウイョチイアm徳イサヌカイアm。シソシクシ{央恆艶劈ZW猿屎}<7D><EFBFBD>~±<>}}i糖嘲}~ラ兆岨Wp}<7D>〇Wp}<7D><>W遠剽}<7D><7F>マ~ZW遠剽}<7D><7F>マ}ZW往泱凹<E6B3B1>硲シ{{{央恆。シソシクシ{{{央恆薗尅ZWp}<7D>セWp}<7D>ЩWZWp}マ}ZW汚懲旺治遠凅}<7D>凹<7F>秤。「汢梼図}}<7D>ソエオ{{{央恆艶辧銘tタmチシシmケョチイmウシソmコイ{央恆ZW、カケケmニシツ{{{ョテイサエイmコイ{{{潔屆痩杉彁W猿屎}<7D>g}}±<>}}i圜殉}}}王事}~}}薗尅ZWp}マ~ZW汚懲遠凛}<7D>~苑屎}<7D>i張筑マZWp}マZW薗」筑}}<7D>WZW
|
||||
|
|
@ -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
|
||||
|
|
@ -1 +0,0 @@
|
|||
挓煥焲y<EFBFBD>桨<EFBFBD>寄煙煣<EFBFBD>案煙煙<EFBFBD>匠|y挓煥爘y<E78898>桨<EFBFBD>寄煙煣<E78599>案煙煚<E78599>匠|y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙煣<E78599>案煙煛<E78599>匠|y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙煣<E78599>案煙煝<E78599>匠|y挓煥<E68C93>y<EFBFBD>慈<EFBFBD>还牊煙<E7898A>煥か冀矮布臒煙Й蛋笩煙+磁礋<E7A381>焲y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙煣<E78599>案煙煟<E78599>匠|y|y挓牊焲y<E784B2>慈<EFBFBD>灸煙牋<E78599>娇煚煙<E7859A>煙煩煙煛<E78599>熬煙煟<E78599>涟煙あ<E78599>煥)煙Δ<E78599>煙<EFBFBD>y|y挓牋焲y<E784B2>慈<EFBFBD>灸煙牋<E78599>娇煚牊<E7859A>煙煩煙煛<E78599>熬煙煙<E78599>涟煙ぅ<E78599>煥煩煚牕<E7859A>煣<EFBFBD>y|y挓<79>焲y<E784B2>慈<EFBFBD>粴牊煙<E7898A>粴牊·<E7898A>粴牊ⅶ<E7898A>瘸煙煛<E78599>案煙<E6A188>|y<>娇煟煙<E7859F>煚煩煙煙|y<>娇煟煙<E7859F>煛煩煙煙<E78599>案煙<E6A188><E78599>匠|y|y挓<79>焲y<E784B2>慈|y<>还牊煝<E7898A><E7859D><EFBFBD>y<EFBFBD>霉煙ˉ<E78599><CB89><EFBFBD>y<EFBFBD>还牊煛<E7898A><E7859B><EFBFBD>y<EFBFBD>还牊煚<E7898A><E7859A>牜祷殸煙牜祷殸煝<E6AEB8>y<EFBFBD>娇煟煙<E7859F>煚煩煙煙|y<>露磋行鬃惈既睙煙~骄倡不脸掭栥徻刿蹚茉惈骄硘y笘軓袕卒苄輴徃徺溻銖洲銃y苄重倚圹鑿沅彷杂徹葶迀y袕钾茇中悘笘軓卒苄輴<E88B84>境<EFBFBD>涣蜂桩<E89C82>境<EFBFBD>涣潩潩潾骄倡不莲敖繜<E69596>煩煙煙<E78599>煙煫蛋矡煛<E79FA1>仔銝鈴阕剽畖y绒鋿嵩忀捭忁菰忁諒阕掴詜y谪圹葬忈扪捭猱<E68DAD>境|y圃圹洀鑟鋸庖嗅杂忋自|y咝葶鈴拚諒茉洀黉苓剌謡y掬銖圬谠忋仔銗<E4BB94>境<EFBFBD>涣绒鋸孓溘虞栥徰詮阕秀|y庑遑掎洀孓溘訌柁洚<E69F81>境<EFBFBD>匠|y|y|y挓<79>爘y<E78898>慈<EFBFBD>粴牊煛|y<>露<EFBFBD>安煙¨笘軓搞拮洀掭詮拚忋自|y卒苄葩忔邹徱熊詮戕忋棕鈢y剽坌萦忋迯愚忈遭孕嵋诐<E5B58B>境|y米秀忔劂易徏剽葬鑿沅彷杂|y茉徹葶迯阕剽潩潾骄硘y笍苄菪衷訌戕徶糟徯嫘铔|y唁銤潩黉忏徾揶趶秀徿詽<E5BEBF>境<EFBFBD>涣拜訌蒉鎻笘軓忏湟趶自嵩惈骄倡不寥掬徱圬苎杂忎邚蔗捃忋自|y掬汊赜詻徲赜輺銖柁錆<E69F81>境|y笘軓休徳葜剌栽釓拚|y肄葩赜葬醒墼忋雄暂銢<E69A82>境|y唁銖笘軓釉秀综鑿姓嵝赜|y拚徸载肿汊潩潾骄倡不辆讻忔拊洀孓詮剽徿詽潩<E8A9BD>境<EFBFBD>涣笍菰逶釓庾掬塾栧詮肄茉|y戕忋棕鈴剽坌萦徹輳阕詜y肇徕銖咣幸詽<E5B9B8>境<EFBFBD>匠|y|y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露<EFBFBD>安煙¨睫洀蒉洀怃嵩坭忚掬徸绣詜y蒉忎庠徴掎忊湟讖袕咝阕糟匾泑y忏嵝萦杂徾劂阚詮苄轁<E88B84>境<EFBFBD>匠|y|y|y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露<EFBFBD>粴牊煝<E7898A>糯煟煠|y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露<EFBFBD>安煙¨敦逶徏鉂徛汹熊捭迯荑|y嵩中嵊鉂<E5B58A>境<EFBFBD>匠|y挓<79><E68C93>y<EFBFBD>糯煙Ζ|y|y
|
||||
|
|
@ -1 +0,0 @@
|
|||
ol<EFBFBD>兆弛l椡ー」棗ッキ鋳丁棹」ォ鋳鋳棹ョャ漠鋳恍兆璃ァーヲol<EFBFBD>兆登l椡ー」棗ッキ鋳丁棹」ォ鋳駐棹ョャ漠鋳恍兆璃ァーヲol<EFBFBD>兆俳l椡ー」棗ッキ鋳丁棹」ォ鋳樗棹ョャ漠鋳恍兆璃ァーヲol<EFBFBD>兆賓l椡ー」棗ッキ鋳丁棹」ォ鋳瀦棹ョャ漠鋳恍兆璃ァーヲol<EFBFBD>兆撲l椡ー」棗ッキ鋳丁棹」ォ鋳猪棹ョャ漠鋳恍兆璃ァーヲolol<EFBFBD>兆熔l棗ッイ鋳薄恍駐<EFBFBD>鋳<EFBFBD>椥ーヲolol<EFBFBD>湯弛l椚ァサ棹」ア鋳鋳楔エ」鋳利恍兆凋駐樗恍苧熔lol<EFBFBD>涛弛l椚ァサ楫アキ鋳涛椒ーイ駐湯恍鋳凋鋳樗棹」ア鋳鋳楔エ」鋳利恍兆凋鋳屁恍猪撲lolol<EFBFBD>白弛l椚ァサol棹ョャ湯囀恍白俳l棹ョャ湯囃恍白登l椡オゥ硯ハムマメでハムマメ倹瑞棆アヲ棗ョエ<EFBFBD>ーアヲ棗ョアol椡サ、鋳鋳椒ーイ樗鋳恍鋳莫鋳猪椹」ォ鋳葡椡サヲ鋳鋳棹ョ酷丁寵ィョ藷樗璃ィョ酷樗椀l椡オゥアハ獅ホムムヘほハム苛づルテヘヌ裾ーアヲ棗ョエカハムラノハヨぽムラぱヒノハヨてヌとヌテニ塵lサムラとヒニミ茄なホヒミナハひムぱテヨヨヌヤolハムルぱテミロへヒマヌユしラヌぷマテナヘヌニぽムラ裾ーアヲ棗ョエカハヒユねユへハヌのテヒホ裾ーアヲolカハムユヌほハムへヤロへムとヌネロへハヌえムナヨムヤolノヌヨへハヤムルミねミぬヌヤヌ裾ーアヲolカムCヌぷラトフヌナヨユなムヤぬヒユolヌレメヌヤヒマヌミヨユ瑞裾ーアヲ棗ョエ瑞生ハテヨ苛ほハテヨしラヌぷテヒニ裾ーアヲ棗ョエサムラづなヤヒヌミニびネぬヌヤユ。棆アヲolサムラ花ヌづてヒヨへムムばテヨヌ裾ーアヲolオハヌべユヌニへムてヌねミぬヌヤヌほヒヨハべユ裾ーアヲ棗ョエオハヌほテユでテヤヒミノなムヤぽムラへハヌolルハムホヌへヒマヌ裾ーアヲol、ラヨのラユヨづばヒヨヨホヌほハヒホヌづノム姉lヨハヌロでテマヌづミニへムムヘぬヌヤづルテロ裾ーアヲ椥クァ樗兆olol<EFBFBD>白登l椡オゥ棹ョ酷丁導ハぽヌテハ裾ーアヲ棗ョエャラユヨてヌネムヤヌへハヌロぬテラホヌニぬヌヤびネネ姉lォぷテルぬヌヤでヤテマぷムマヌヨハヒミノねミヨムolロムラヤぴムナヘヌヨ裾ーアヲ椥クァ樗兆olol<EFBFBD>白俳l椚ァサ椡オゥケハテヨほテユねヨ獅テばムリヌばヌヨヨヌヤ。棆アヲ棗ッイ鋳薄恍駐<EFBFBD>鋳<EFBFBD>椥クァ樗兆olol<EFBFBD>白孃l椚ァサ椒ーイ樗鋳恍鋳凋鋳樗椥ーヲololol<EFBFBD>粕弛l椚ァサ棯ッ・棗ーイ樗箔恍痘凋鋳樗椒ーイ樗箔恍駐凋鋳樗椹」ォ鋳嵐ol椡ー」棗ッキ鋳丁棹」ォ鋳猪椹」ォ鋳嵐楫ッ・棣ーイ樗箔椥ーヲol<EFBFBD>粕登lol<EFBFBD>葡弛l楷エォ棹ョャ漠鋳恍鋳到ィョ鵠剪寵オアキ鋳粕棗ーイ瀦鋳恍樗糖鋳鋳棗ッイ鋳薄恍駐<EFBFBD>鋳<EFBFBD>椥クァ瀦駐ol<EFBFBD>葡登l椥クァ鋳劍olol
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
>;Taaja>;m~rmt~<7E>abjmwrzaaaamvu>;Taajb>;m~rmt~<7E>abjmwrzaaabmvu>;Taajc>;m~rmt~<7E>abjmwrzaaacmvu>;Taajd>;m~rmt~<7E>abjmwrzaaadmvu>;Taaje>;m~rmw}{afjfkaajfm|v㿭t~<7E>abbmwrzaaaemv薓acaa>;Taajf>;m~rmt~<7E>abjmwrzaaaemvu>;>;Tabaa>;m<>zm<7A><6D>abbmu<75>baamwr<77>aaaem<65>raabakaajekaadfkaacg>;>;>;>;Tacaa>;m<><6D>|v㿭~<7E>aaaamr<72>eaakaadakaaaa>;mr<72>eaakaadakaaacmǐzaada>;mr<72>eaakaabakaaacmw}\afjfmw}\achimt~<7E>abjmvu>;>;Tacca>;m<><6D>|v<>>;mw}{afjgkacda>;mw}\afjgmw}\afjemz<6D>aabe>;mt<74>ccakabddkaaaamǐzaafa>;m~<7E>mxz<78>abemwrtaaaax佂靱<E4BD82>Ξ<EFBFBD>靱n<E99DB1>﹛<EFBFBD>孓_m<6D>umxz<78>aaamt<74>daakabdakaaaamu<75>eabmw}^achemt}<7D>>;mv薓accb>;Tacc1>;mv薓aagf>;>;Tacda>;m|v㿭w}{aidakacdbm~<7E>mwrtaabd<62><64><EFBFBD>Rm<6D>u>;<3B>吊𩵼丰Q丰嵗Q<E5B597><51>Rm<6D>umt}<7D><>松<EFBFBD><E69DBE>Q<EFBFBD>Q<EFBFBD><51><EFBFBD>Q<EFBFBD><51>>;~<7E><>伃Q<E4BC83>𥫩<EFBFBD><F0A5ABA9>伃靱<E4BC83><E99DB1>>;<3B><>Q<EFBFBD>靱丹<E99DB1><E4B8B9>餸m<6D>umvu>;Tacdb>;m|v㿭z<E3BFAD>aabfkacdc>;m~<7E>mwrtaabdr输Q<E8BE93>吊<EFBFBD><E5908A>Q𤨎Q<F0A4A88E>>;<3B><>Q<EFBFBD><51>_m<6D>umxz<78>abfmz<6D>aabfmt}<7D>>;mwrtaaaa<61><61>银<EFBFBD>Q㜳n}<7D>靱<EFBFBD>叩Rmǐzaadam<6D>umxz<78>aaamt}<7D>wrtaabdt<64>靱<EFBFBD><E99DB1>Q<EFBFBD>Q<EFBFBD>吊鑘𢜟>;<3B><>Q<EFBFBD><51><EFBFBD>Ξ<EFBFBD>𨭤m<6D>u>;z出十<E587BA>靱<EFBFBD>伃仞<E4BC83>鶽>;<3B>𥫩<EFBFBD><F0A5ABA9>嶎<EFBFBD>嶎<EFBFBD>___m<6D>umvu>;Tacdc>;m|v㿭~<7E>mwrtaabdv<64>嶎㜳<E5B68E><E39CB3>筬<EFBFBD><E7ADAC>Q<EFBFBD>>;𣌀礆十<E7A486>𥫩<EFBFBD>𥫩嚤<F0A5ABA9>𤫊__m<6D>u>;r<>QzQ<7A>嶎<EFBFBD>Q<EFBFBD>汨鶽>;<3B><>靱𧖣Q<F0A796A3>鷀筬<E9B780>Q<EFBFBD>囝__m<6D>umvu>;>;Tadaa>;m|v㿭~<7E>[<5B><>釥___m<6D>umvu>;>;>;Taeaa>;Taeab>;>;
|
||||
|
|
@ -1 +0,0 @@
|
|||
0-FSS\S0-_pqd_fpxSSSU_idlSSSS_hqg0-FSS\T0-_pqd_fpxSSSU_idlSSST_hqg0-FSS\U0-_pqd_fpxSSSU_idlSSSU_hqg0-FSS\V0-_pqd_fpxSSSU_idlSSSV_hqg0-FSS\W0-_pqd_fpxSSSU_idlSSSW_hqg0-FSTSS0-_nh|_vrxSSTT_dqsSTSS]SSSS]SSSU_idrSSSU_wudSSXV]SS\U]SSSU]STZV0-FSUSS0-_sul0-_iomTVZU]SUSU0-_dpmSSS\]SUSV0-_iomU[TT]SUSV0-_hyhSUSX0-FSUSU0-_sul_pvj_wxud軌C圏J砲樺仲C嵐C<E5B590>C<EFBFBD><43>Q_qrg_hqg0-FSUSV0-_ioNTVZU_hyhSUSW0-FSUSW0-_hyhSSTS0-#SUSX0-_sul_pvj_wxu|著C資丁OClC腰沫C薯刪C嵐C毎<43>0-幕<>鼎雷倦竃Q_qrg0-_fou_jlwSSS\lJ緒C褐刪C恍呂Г曙覧処C亦粋雷倦<E99BB7>0-潔C恍呂丁舛Г`e巡㊧`D_qrg_hqg0-FSUTS0-_sul_iomTVZS]SUTT_ioNTVZT0-_pvjq丁C嚥<43><E59AA5>㈹④雷<E291A3>C推舛葺<E8889B>0-忠韻嵐QQQ_qrg_fou|著C灸刪遷佑毎<E4BD91>C頗C鋸妹я⑯0-灸刪C恍話_qrg_hqg0-FSUTT0-_sul_pvjw灸綜C恍呂薗匹恍<E58CB9>C笈藷Q_qrg_hqg0-FSUUS0-_sul_pvjz拠J譜C恍楼C酔沫<E98594>b_qrg_hqg0-FSXSS0-_nh|_fqsSUXS]_idlSSSS_hqg
|
||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
yv<EFBFBD>㱔䛐v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD>㱔递v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD>㱔𡲢v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD>㱔呩v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD>㱔懢v邦滬辛嘗<EFBFBD><EFBFBD>迆音<EFBFBD><EFBFBD>迂滌yv<EFBFBD><EFBFBD>䛐v邢掬阮鄘<EFBFBD><EFBFBD>辰獐<EFBFBD><EFBFBD>迆香<EFBFBD><EFBFBD>阱冪<EFBFBD>﹜<EFBFBD>㱔𩵼<EFBFBD><EFBFBD><EFBFBD>𧇍𡲢v<EFBFBD><EFBFBD>䛐v邢掬yv迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>递v迂簣<EFBFBD>孕yv<EFBFBD><EFBFBD>递v邢掬yv迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>呩v巡懦<EFBFBD>䣳<EFBFBD><EFBFBD>𡲢v邦興殮桋<EFBFBD>俅<EFBFBD>葄皙稊寍睧辶獄釜v殮栫藖痶邰<EFBFBD>尰䓃婧䓃欸<EFBFBD><EFBFBD>詑㶈旄辶獄釜v諶䎚<EFBFBD>瑵<EFBFBD>崳俜<EFBFBD>衴頎<EFBFBD>奜瑵龮詈腲v覗龯栜曧硢<EFBFBD>痶迖<EFBFBD>那趕迂滌yv<EFBFBD><EFBFBD>𡲢v邢掬邦興阱謙迆<EFBFBD><EFBFBD><EFBFBD>那趕辛蜀迅耋<EFBFBD>䣳巡<EFBFBD><EFBFBD>䣳棹硞旃曧瑵<EFBFBD>隗<EFBFBD>帑睒豽猌v諼皙稊寍犎辶獄馬偕<EFBFBD>䣳銁授<EFBFBD><EFBFBD>懢v<EFBFBD><EFBFBD>呩v邢掬邦興<EFBFBD>婧俅䓃婧<EFBFBD>痶<EFBFBD>崷詒<EFBFBD>倯硢yv豇詌殑<EFBFBD>隗<EFBFBD>媏葮㶈旄<EFBFBD>那趕yv誠詍<EFBFBD>寊豽䎚<EFBFBD>奜<EFBFBD>粣葮𧄍窙慪啢v葄皙稊寍睧<EFBFBD>辶獄馬捱釜v<EFBFBD><EFBFBD>懢v迂簣<EFBFBD>ㄔyv<EFBFBD><EFBFBD>䛐v邢掬yv迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡲢v迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>递v迂簣<EFBFBD>孕yv<EFBFBD><EFBFBD>递v邦興菽𣞼䓃睙<EFBFBD>隗侲秊褁詈<EFBFBD>砨詙yv隗<EFBFBD>葐痭迍<EFBFBD>奜瑵<EFBFBD>頎迍豽苵v隗氪𦬕萶阼<EFBFBD>殑䓃婧繛俓<EFBFBD>那趕yv俾<EFBFBD><EFBFBD>跁詌宖阼<EFBFBD>覗𣉖<EFBFBD>蓛痶yv赹尰旃<EFBFBD>辶獄釜v桑<EFBFBD>葾棦<EFBFBD>欻祳䓃婤葌秊褁詈腲v摍倳睧靷覕㶈嗀旆<EFBFBD>那趕yv<EFBFBD>恮寊栱<EFBFBD>隗栫<EFBFBD>靷<EFBFBD>嵻迖㶈詑l<EFBFBD><EFBFBD>那趕迂滌yv<EFBFBD><EFBFBD>𡲢v邦興脊睧<EFBFBD>隗侲𥚕裉靷<EFBFBD>那趕辛蜀啕邲袀祳䓃奜<EFBFBD>嗖詅<EFBFBD>詑祳𤥻婭寪yv覗<EFBFBD>蜳隗嵻欸崕獄釜v閩<EFBFBD>梑曧稃<EFBFBD><EFBFBD>蓛痶藖摳<EFBFBD>藖淀yv槮摍衭<EFBFBD><EFBFBD>那趕yv蹄珆<EFBFBD>㶈奜棦<EFBFBD>辶獄馬捱釜v<EFBFBD><EFBFBD>䛐v邢掬迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>递v迂簣<EFBFBD>孕yv<EFBFBD><EFBFBD>递v邦興<EFBFBD>倯<EFBFBD><EFBFBD>恮寊栱<EFBFBD><EFBFBD>蜞痻䓃奜輇v唱眈詅㶈俜<EFBFBD>那趕辛蜀擄拹頍<EFBFBD>箏邴崕獄釜v試豽䓃奜<EFBFBD><EFBFBD>葐嗈詒旃䓃<EFBFBD>萹俅<EFBFBD>棦辶獄馬捱釜v<EFBFBD><EFBFBD>䛐v邢掬迆葆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>递v迂簣<EFBFBD>孕yv<EFBFBD><EFBFBD>递v邦興<EFBFBD><EFBFBD>葾𧄍馹俉葮旃<EFBFBD>辶獄馬捱釜v<EFBFBD>鱝䛐v阮倣邢掬邦躓<EFBFBD><EFBFBD>邦興閩<EFBFBD>婧<EFBFBD>那趕辛蜀棹瑵<EFBFBD><EFBFBD>蓛宖桏藖旂詅悗那趕yv竊邴<EFBFBD>怤瓬<EFBFBD><EFBFBD>隗<EFBFBD>塹棔蚐yv甀尰邲<EFBFBD>那趕yv諶棦詀<EFBFBD>玵尰旃<EFBFBD>塹葌碚<EFBFBD>葨侲珆旃yv棦𣉖<EFBFBD>阼<EFBFBD>拸詑衲<EFBFBD>棦嵻栻<EFBFBD>那趕yv桑<EFBFBD>棎<EFBFBD>苸嵻侲<EFBFBD>眝睟殑<EFBFBD>那趕辛蜀<EFBFBD>蒠<EFBFBD>粣葮嵻敊俷祳曧摳䓃<EFBFBD>衴yv眙蓅殑<EFBFBD>砢<EFBFBD><EFBFBD>珆阼衭曧<EFBFBD>嗐珇辶獄馬站劓<EFBFBD>槮<EFBFBD>寊豽䓃<EFBFBD>眙蓅咧獄釜v識尰<EFBFBD>葌<EFBFBD>槮<EFBFBD>俅詑硞龮侲栻辶獄馬站語v身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>並音<EFBFBD><EFBFBD>邦酈<EFBFBD><EFBFBD>並音<EFBFBD><EFBFBD>yv身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>並音<EFBFBD><EFBFBD>yv身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>阮鄘<EFBFBD><EFBFBD>並音<EFBFBD><EFBFBD>yv辰獐<EFBFBD><EFBFBD>身獐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧊀<EFBFBD><EFBFBD>阮鄘<EFBFBD><EFBFBD>迆<EFBFBD><EFBFBD><EFBFBD>迆<EFBFBD><EFBFBD><EFBFBD>迂滌yv<EFBFBD>䣳䛐v<EFBFBD>𤟠句v釆噩邦興<EFBFBD><EFBFBD>辶獄馬捱<EFBFBD>
|
||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
>;Taaja>;m~rmt~<7E>aaimwrzaaaamvu>;Taajb>;m~rmt~<7E>aaimwrzaaabmvu>;Taajc>;m~rmt~<7E>aaimwrzaaacmvu>;Taajd>;m~rmt~<7E>aaimwrzaaadmvu>;Taaje>;m~rmt~<7E>aai>;mw}{aeibkaajf>;mwrzaaaemvu>;Taajf>;mw}{aidakaajg>;mt∥cabkabackaaaa>;mr∥daakaaaakaaac>;mwrzaaaemvu>;Taajg>;mt~∥abbkaaagkaagb>;mt~∥abbkaaahkaahh>;mt∥cabkabackaaaa>;mr∥daakaaaakaaac>;mwrzaaaemvu>;Tabaa>;mw}{aeiakabab>;m<zmо<6D>abbmu∥baamwraaaem<65>raaagkaajekabhbkaabh>;Tabab>;m<zm~зm<D0B7>ホ・Qィ<51>盜・Q<EFBDA5>。漫Rmumvu>;Tacaa>;mw}{aeibkacac>;m|v確о<E7A2BA>aedmw}\aeibmt∥cabkabackaaaamt~<7E>aaamr∥daakaabakaaaam<61>zaacam~隔aaacm<63>zaefa>;mt~<7E>aaem<65>zaafa>;mt∥cadkaaajkaaaam<61>zaafa>;mt~<7E>aaamr∥daakaacbkaaaam<61>zaaiamt~<7E>abb>;mt∥cadkaabckaaaam~зm<D0B7>ノwrtaabeyヲォォ貯Rmumv<6D>acae>;Tacab>;Tacac>;m<zm~зm<D0B7><6D>>;□ィ魅Q率沐・國泅沽Q泛」梺撈ェ_mumvu>;Tacad>;m|v確t∥cadkaabckaaaamr∥cadkaacakaaaem<65>zabea>;m<>zabaamt~<7E>a1f>;m~зm<D0B7><6D>>;w<>ヲ<EFBFBD>・Q<EFBDA5>覧Qs喋」<E5968B>漏m<E6BC8F>zabeamu>;mt~<7E>aaimw}^aeiamw}\aeicmw}\acbfmvu>;Tacae>;mr∥cadkaadakaaaamt~<7E>aaemt∥cadkaadgkaaaamsмacadmw}\aeiamvu>;Tacfa>;m|v確~зm<D0B7>ヤ箕・圈浪ヲ。___mumvu>;Tadaa>;mw}{aeidkadad>;mw}{aeibkadab>;m|v確~зm<D0B7>ビQ」<51>蕩・___p>;z・Q腹巳盜・Q、末朮・<E69CAE>Q剪ァ鵬帖ェ>;。<>ィ魅_mumvu>;Tadab>;m<zmw}{aeickadac>;m~зm<D0B7>ホ・、Q剿瀦Q圖Q湯、剿媛圈_mumvu>;Tadac>;m|v確<76>zaafa>;mt∥daakabajkaaae>;mr∥daakaabakaaae>;m~郭adaam<61>zaafam~隔adaamw}\aeidmw}\aeifmw}\aeie>;m~зm<D0B7>ュyr|Q橿<51>Q<EFBFBD>Q〉害橿<E5AEB3>srt|]>;zQtrQ~r|vQrQs~sRmumvu>;Tadad>;mw}{aeigkadbd>;mz<6D>aabbkadba>;mv<6D>adaf>;Tadaf>;m|v確~зm<D0B7>ピホxQ~vQntyrフr}n]>;n{v}}学zиQ{<7B>tvn]>;ruQnx<6E>Qsrёn_mumvu>;Tadba>;mz<6D>aaaikadbbmv<6D>adaf>;Tadbb>;mz<6D>aabckadbcmv<6D>adaf>;Tadbc>;m|v確w}\aeigmz<6D>aabbmz<6D>aabc>;mw}\accb>;mv<6D>adfa>;Tadbd>;m|v確~зm<D0B7>ホXuQwwvゲ橿<E382B2>о~vQ<76>r]Qs<51>___mumvu>;Tadfa>;mv<6D>aagd
|
||||
|
|
@ -1 +0,0 @@
|
|||
0==F=IZ[NIPZb====ISNV====IR[Q0==F>IZ[NIPZb====ISNV===>IR[Q0==F?IZ[NIPZb====ISNV===?IR[Q0==F@IZ[NIPZb====ISNV===@IR[Q0==FAIZ[NIPZb====ISNV===AIR[QISYW>BC@G=>=>0=>==IXRfISYW>BCAG=>=>I`\b==>>IN[]=>==G====G===?ISN\===AIa_N==>CG==FAG==@?G===?0=>=>I]_VIZ`TV<54>-„|{4<>-|}r{.I[\QIR[Q0=?==ISYW?A=CG===>ISYW>BCAG=>=>ISYW>=A?G=?=>IXRfIZfO===?IdNV==?=IZ`TUr†;I[\Q-aun<75>-pur€<72>4€-|{y†-s|-}r|}yr„v<E2809E>u-nz{r€vn;I[\Q-du|-{rrq€-v<>9-vtu<74>LI[\QIPY\IR[Q0=?=>I]_VISYW?A=CG===>ISY8?A=CI`\b==??IP[]=?==G==?>G====IRcR=?=?0=?=?IRcR==E@0=A==IXRfIZfO===?IdNV==?=IVaW==@@G=A?=ISYW>BC?G=A>>ISYW>BC>G=A=@IZ`Tf|‚-t|<7C>-€|zr-o‚€v{r€€-„v<E2809E>u-zrLIf[W=A=>IPY_Unu.I[\QV-q|‚o<E2809A>-<2D>un<75>;I[\QIR[Q0=A=>IXRfIZ`TUru:uru:uru;-O†r9-<2D>ur{;I[\QIR[Q0=A=?IXRfISY8>BC>IZ`TUzLI[\Q-Nz{r€vnLI[\QU|„-n„s‚y;I[\QIRcR=A=@
0=A=@IXRfIZ`Tdryy9-<2D>ur{;-Q|-†|‚-„n{<7B>-zr-<2D>|tv<74>r-†|‚-<2D>ur-Z‚€u||z-OnqtrLIf[W=A=EIRcR=A=AIR[Q0=A=AIXRfIZ`TO‚<4F>-v{-rnyv<79>†9-†|‚-q|{4<>rnyy†-„n{<7B>-v<>9-vtu<74>LIf[W=A=BIRcR=A=E0=A=BIXRfIZ`Tf|‚-„n{<7B>-v<>-<2D>un<75>-z‚puLIf[W=A=FIRcR=A=C0=A=CIXRfIZ`Tf|‚-„n{<7B>-v<>-no€|y‚<79>ry†-}|€v<E282AC>v<EFBFBD>ry†{|-zn<7A><6E>r-„un<75>LIf[W=A=FIRcR=A=D0=A=DIXRfIZ`TO‚<4F>-rnyy†-†|‚-q|{4<>-„n{<7B>v<>9-vtu<74>LIf[W=A>=IRcR=A=F0=A=EIXRfIZ`T_rnyy†L-\xn†;I[\QIR[Q0=A=FIXRfIZ`Tfrnu9-„u|-{rrq€-v<>;;;I[\QIR[Q0=A>=IXRfIZ`TSv{r9-urr-†|‚-t|.I[\QIPY_ITVa>=@@IVa8==@@ISY8>BC?IPY_IPZb==>=T|<7C>-<2D>ur-JZ‚€u||z-OnqtrJ;IdNV=>C=I[\QI_ZbIR[Q0=A>>IXRfIZ`TO‡‡‡‡‡<E280A1>;I[\QIR[Q0=A?=IXRfIPZb===AISY8>BCAIP[]=B==G=@>@G====IdNV===?IN[]=B==G=>==G====IQ[]=A==IO`Y=B==IR[Q0=B==IXRfIPZb====IN[]=B==G=B==G===BIdNV=>B=ISY:>BCAIQ[]=B==IRcR=B=>0=B=>IRcR==EA
|
||||
Binary file not shown.
|
|
@ -1,2 +0,0 @@
|
|||
-::C:FWXKFMW_:::BFPKS::::FPVT<>;=D::C@FOXN-::C;FWXKFMW_:::BFPKS:::;FPVT<>;=D::C@FOXN-::C<FWXKFMW_:::BFPKS:::<FPVT<>;=D::C@FOXN-::C=FWXKFMW_:::BFPKS:::=FPVT<>;=D::C@FOXN-::C>FWXKFMW_:::BFPKS:::>FPVT<>;=D::C@FOXN-::C@FMWZ:::<D::<;D::::FMWZ:::=D::<;D::::FOXN-::CCFUOcFWXKFMW_:::BFKXZ:<::D:::;D::::FPKS:::>FMXZ:=:;D:;;<D:::<FaKS:;::FKXZ:<::D::::D::::FWcN::::FNXZ:=:;F]WMFPVT<>;=D::C@FOXN-:;::FUOcF]Y_::;;FKXZ:;::D::::D:::<FPKY::::FWcN::::F^\K::=CD::C:D:;CAD::;>-:;;:
|
||||
FUOcF]Y_::;;FKXZ:;;:D::::D:::<FPKY:::<FWcN:::<F^\K::>>D::C<D:::<D::;=-:<::FO`O:<:;-:<:;FUOcFW]QF^_\Ny*ペ*〔x~*~y*qy*~y*K|~r|1}ry}oIFcXT::::FMVYFMXZ:=::D:;;;D:::<FRWMFaKS::@:FKXZ:<::D:::;D::::FaKS:;::FPKY:::>F^\K:::;D::CCD:::?D:::B-:=::-:=:;-:?::FUOcFWcN:::<FMW_::::FPKS:::<FPVKF]Y_::<CFaKS::?:FW]QIFXYNFMVYFKXZ:?::D::;:D::::FaKS:;=:F]Y_::<=FaKS::<:FMW_:::BFPV7:?<=FPV5:A>:FNXZ:?::FOXN-:?:;FUOcF]Y_::<<FPVT:A>;D:::;FPV5:A>;FMXZ:?:;D::<;D::::FO`O:?:<-:?:<FO`O::@B
|
||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
]Zs€€墍]Z対瀾寭潵€€亯寲憴€€€€寱灁]Zs€€墎]Z対瀾寭潵€€亯寲憴€€€亴暈擼Zs€€墏]Z対瀾寭潵€€亯寲湚€唲€妧€墔寯灎€厐亴枩}€唲€寱<E282AC>€€墔]Zs€€墐]Z対瀾寭潵€€亯寲憴€€€儗暈擼Zs€€墑]Z対瀾寭潵€€亯寲憴€€€剬暈擼Zs€€墔]Z寲憴€€€倢暈擼Zs€亐€]Z尃<5A>寲憻€€€剬あ憖€亐妧€墑妧倐倞€€儌]Zs€個俔Z寲湚€唲亰€個儗牏檶潱棛膒强緒膒坷稻~~~尀煍寱灁]Zs€個僝Z尃<5A>寲憻€€€€尋<E282AC>€€儓妧€墍妧€儏妧€亙]Zs€個刔Zs€個匽Zs€儉€]Z尃<5A>專煡€€倐寯灎€儉€寱<E282AC>€儉乚Zs€儉乚Z寱<5A>€€亜]Zs€剙€]Z寷暕寫灎€厐亰€€亐妧€€倢<E282AC>檧€剙]Z対⿺€€€俔Z対瀾寲憴€€€亴敒爛厐亴<E58E90>搶摑<E690B6>€亯寲渰倓亙寱灁]Zs€剙俔Z寷暕寲湚€唲亰€剙儗潱棇ぅ<E6A387>縫煽舙潜灸p目p坷稻p母祊纯柯弻<E69FAF>殌€€€寭湡]Z寲渰€唲乚Z寲煘€個倞€€唲導憴€亝€專煡€€剝]Z寫灎€個剨€€亐妧€€€導憴€€€垖憺爛厐倞€€€€妧€€俔Z寫灎€個厞€€亐妧€€倢<E282AC>檧€倛]Z寫灎€厐€妧€€€妧€€€導憴€亐€]Z寯灎€個剬敒爛個匽Z寲煗€€儌導憴€亐€]Z寲煗€€亞]Z寯灎€厐€寯濸€厐倢潻攢€€€寱灁]Zs€剙僝Z寷暕対<E69A95>じ祊纯柯p姑p坷稻~尀煍寱灁]Zs€剚€]Zs€厐€]Z尃<5A>対<EFBFBD>檖驳膒澒玫律p目妹荡p煽臸Z纯蔷p傅碌~尀煍]Z┛舙揽柯p母咕穨~~尀煍]Zじ姑p姑p母祊姑急敬w胮穆泵竝傅崩~尀煍]Z熅车p煽舙返膒咕|]Z煽舙镜频聀返膒颗膥~~尀煍寱灁]Zs€厐乚Zs€厐俔Z尃<5A>対<EFBFBD>じ祊们鼓掣p母蹦p坷稻胮母姑]Z纯柯p姑p门览棵荡p目p驳p爬p目繻Z每降歉德祣尀煍]Z捙膒母祊犊磕咕穡胮穆钩簧p爬]Z母德祣尀煍]Z檖兜技p科德p本磒科德p狈惫綸Z啪墓紁檖猜炕祊缴p嫉访~尀煍寱灁]Zs€厐僝Z尃<5A>対<EFBFBD>じ德祊姑p究p碌兰蓗尀煍寱灁]Zs€唨€]Zs€唨乚Z寷暕寲湚€唲€妧唨儗暒晙唨俔Zs€唨俔Z寯灎€厐亴枩}€唲€寱<E282AC>€唨僝Zs€唨僝Z寷暕対瀾寭潵€€亯]Z寫灎€唩€妧€€亰€€€€寲憴€€€刔Z寭灎€唨亰€亖倞€€€€導憴€亐€]Z寫灎€唩€妧€€€妧€€€]Z対⿺€€€€寯灎€唨亴<E594A8>搶暈擼Zs€唩€]Z寷暕寲渰€倓僝Z寭灎€唨€妧亖亰€€€倢槤搶<E6A7A4>檧€唨寫灎€唩€妧€€亰€€€€]Z導憴€亐€寲憻€€€剬あ憖€亐妧唨亰€們亰€€儐]Z]Z]Z]Z
|
||||
|
|
@ -1 +0,0 @@
|
|||
|y挓煥焲y<E784B2>桨<EFBFBD>寄煙煛<E78599>案煙煙<E78599>匠|y挓煥爘y<E78898>桨<EFBFBD>寄煙煛<E78599>案煙煚<E78599>匠|y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙煛<E78599>案煙煛<E78599>匠|y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙煛<E78599>案煙煝<E78599>匠|y挓煥<E68C93>y<EFBFBD>桨<EFBFBD>寄煙煛<E78599>案煙煟<E78599>匠|y|y|y|y|y挓牊焲y<E784B2>慈<EFBFBD>灸煙牋<E78599>娇煚煙<E7859A>煙煩煙煛<E78599>熬煙煙<E78599>瘸煙煙|y<>还煢煝<E785A2>牊爘y<E78898>涟煙ⅷ<E78599>煥)煙В<E78599>煚<EFBFBD>y挓牊爘y<E78898>粴煢煟<E785A2>涟煙ⅷ<E78599>煥)煙В<E78599>煚<EFBFBD>y|y挓牊<E68C93>y<EFBFBD>慈<EFBFBD>熬煙煟<E78599>涟煙ⅷ<E78599>煥)煙<EFBC89><E78599>煚<EFBFBD>y|y挓<79>焲y<E784B2>慈<EFBFBD>露米詮荑忏葬剞溻忈扪捭泑y嫁葩阍釓菨潩<E88FA8>境|y绒溽徱仔菀詮戕徯沣幸趞y剽忔自輳劂鈴仔阋讖捱暂鉂<E69A82>境<EFBFBD>匠|y|y|y挓<79>焲y<E784B2>慈<EFBFBD>露<EFBFBD>牧笘軓袕咦桠匾匦轁<E58CA6>境|y吩嵩洀墼銖茉忈哉刿蹚柁溽徸孕坫诐<E59DAB>境<EFBFBD>痪<EFBFBD>笟牊煙<E7898A>灸煙<E781B8>|y<>霉煙牓<E78599><E78993><EFBFBD>y<EFBFBD>还煢煙<E785A2><E78599>牜祷殶<E7A5B7>煫瓢笩煠煫磁礋<E7A381><E7A48B>y挓<79>爘y<E78898>慈<EFBFBD>露<EFBFBD>牧米詮役剌匾徹廨栥忋揶徴嗅潀y掇徾揶趶辙釓廪茉徿杂匾剌詮阕秀|y坜挹鈴溻醒墼潾骄倡唇硘y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露<EFBFBD>脺煙牓<E78599>粴煢煛<E785A2>粴煢<E7B2B4><E785A2>粴煢煝|y<>该牊牓<E7898A>牧沸萦杂忁逶釓阕詮<E99895>溽詼佰郜潾骄倡唇硘y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露夹蓁忋仔葳鉂<E891B3>境|y逛忏徾糟徿詮仔萦墼忋自忈遭銤<E981AD>境<EFBFBD>匠|y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露晦挹鈴圬谠忋自徿杂匾剌詵鈢y孓嶷剌譂<E5898C>境|y伦詵圹徰詮研亿徹輳幸阖掭徹輡y蒉忋剀詽<E58980>境|y佰蹚阕休阝忋迯柁錄忁諒肄溽庠潾骄倡唇硘y挓<79><E68C93>y<EFBFBD>糯煙ウ|y|y挓<79>焲y<E784B2>还煢煟<E785A2><E7859F><EFBFBD>y<EFBFBD>还煢煛<E785A2><E7859B><EFBFBD>y<EFBFBD>还煢煚<E785A2><E7859A>爘y<E78898>慈<EFBFBD>露笘軓袕蒌徕詽<E5BE95>境|y笍溻杂忋迯孓嶷徹輳阕詮捋觸y役剌匾忀孕嵫铔<E5B5AB>境|y唁銖劂忔锈忊载樵訌谚徶邹忏鉀|y休訌笍折杂徸葬詽<E891AC>境<EFBFBD>匠|y挓<79>爘y<E78898>慈<EFBFBD>露搬詮柁鋸袕蔗卦萦忁諒自徕<E887AA>骄硘y刚忚o鋸倚嵩徯艳溷徸葬洀笘觸y杏遑庠忚掬忋迯愚徯鈴阕詮愚毅掎|y庑桠潾骄倡唇硘y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露掇抻徺扪潾骄硘y绒鋸迂虞栥忊栽徯蓁徶邹忏鉀|y迂訌柁洚<E69F81>境<EFBFBD>匠|y挓<79><E68C93>y<EFBFBD>慈<EFBFBD>露咀洀迂訌柁鋸肄茉忋迯易砸趞y溥忁輳阕秀徶蒯郛<E892AF>境<EFBFBD>涣伦詮嬖葶忁照忋捩嗅逾忋自|y懕掬塾葬彶仔苎葬憹<E891AC>境<EFBFBD>匠|y|y挓ⅰ焲y<E784B2>还煢煛<E785A2>ⅰ<EFBFBD>y<EFBFBD>还煢煚<E785A2>ⅰ牜祷殶<E7A5B7>爘y<E78898>慈<EFBFBD>露<EFBFBD>安煙牗咀洀自钀<E887AA>境<EFBFBD>涣沸逶輺銖庠暂徣灸徹輡y袕孀刿詽<E588BF>境|y绒鋿嵩徾揶谪葜徶揶訍<E68FB6>境<EFBFBD>涣米秀忔劂易忋掴庠訌柁鋦y愚孑徸葬詮戕逈徳桩<E5BEB3>境|y滦茉徯鈴茉惈骄倡不莲蛋矡煛熉迯柁鋸嬖嵩輺銖醒墼忋迀y言秀忋自軓姓阍釓雄蹪潩<E8B9AA>境|y笘訌幸沅雄坭徸杏徿鑿邹咴鈢y辙釓柁錄徰溷潩潾骄倡不涟萦徿詻徃忋嶝杂潀y咀洀笍汜卦訚<E58DA6>境|y拜訌黉忏徾揶趶孀葬詮劂|y洲銖茉潾骄倡不翝潩潩<E6BDA9>境<EFBFBD>涣拜訌雄蹚辙釓蒉阕剌譂<E5898C>境|y篙忋自徳萦洀笍肄溘虞栥|y庑逶徯蓁忁諒阕掴詜y易刿俞暂潾骄硘y米詮庾羞詮笘軓剌忀捩泑y笍孓輺銖言徾孕遑葜|y休桡剀詮廪掭潩潾骄倡唇硘y挓ⅰ爘y<E78898>慈<EFBFBD>露<EFBFBD>安煙<E5AE89>笍怃徨劐杂洀柙凶洀唁銃y蒉鎻孀秀<E5AD80>骄倡不炼湓忖徃栜徺溻銖洲剌謡y戕忊劂徸葬詮休訌徂銤潩<E98AA4>境<EFBFBD>匠|y挓ⅰ<E68C93>y<EFBFBD>慈<EFBFBD>懊<EFBFBD>露<EFBFBD>安煙<E5AE89>米葬詵鈴掭坭忁菰忔需|y掬銖拚忋自徎醒栳剌阕潾骄倡不寥掬徸绣詮戕徶糟忂锈銃y阕詮重休銖徂亿徹輳阕詜y鞭溘釉釓沧熊言釢<E8A880>境<EFBFBD>涣笘訌洲忔劂讖柁錄<E69F81>境<EFBFBD>涣唁銖尕阕忋自忊阈阍徃栜|y剌洀笘訌黉忏徶糟徹輡y柁溽忔需潩潾骄倡祷殶Ε煫祷殶<E7A5B7><E6AEB6>唇硘y|y|y挓<79>焲y<E784B2>慈<EFBFBD>还煢煠<E785A2>煙牜祷殶<E7A5B7>か戮臒煛~步繜<E6ADA5>煩煙<E785A9><E78599>煙煫磁礋<E7A381>爘y挓<79>爘y<E78898>糯煙エ|y|y
|
||||
|
|
@ -1 +0,0 @@
|
|||
A>WddmdA>p亗upw亯dddlpzu}ddddpy倄A>WddmeA>p亗upw亯dddlpzu}dddepy倄A>WddmfA>p亗upw亯dddlpz€~dkjenddmipzu}dddfpy倄A>WddmgA>p亗upw亯dddlpzu}dddgpy倄A>WddmhA>p亗upw亯dddlpzu}dddhpy倄A>A>WddmiA>pu倓dgddnddfdnddddpzu}dddfpy倄A>A>A>WdeddA>py峱z€~dkjgndedeA>p噧塪deepu倓deddnddddndddfpzu僤dddp亶xddddp垎uddhgnddmdnddejnddegA>WdedeA>p剢}p亣{}═<><E29590>═¥櫌Up們xpy倄A>A>WdeedA>pz€~dkjhndeeepy倄A>WdeeeA>py峱zu僤ddhp亶xdddfp垎uddhinddmfndddfndddiA>A>A>A>WdfddA>p剢}py妝dfdeA>WdfdeA>pz€~dkjjndddepz€_dkjjpz€adkjipz€_dfdfA>p噧塪dffpw倓dfddnddfenddddpy妝dfdfA>WdfdfA>py妝ddggA>A>WdgddA>py岮>pz€~dkjhndgdgA>pz€~dkjfndgdfA>pz€~dkjendgdeA>pz€_dkjep噓坧亣{p垑唒zuwddem€櫒[<5B>洐═<E6B490>潷A><3E>潰汿)═<EFBC89>T<EFBFBD>橳珪璪A>崳㏕湥牁T<E78981>暔T<E69A94>槞bp們xpw€傾>pu倓dgddnddfdnddddpy倄A>WdgdeA>py峱u倓dgddnddddnddddA>p亣{pzuwddem嫓暔[<5B><>"泂p們xA>崳<><E5B4B3>Tⅲ═<E285B2>暒櫂`A>暒橳<E69A92>﹕p們xpw€唥T槪〇═<E38087>暔bp們xA>{<7B>"`T洣晼T<E699BC>暔T<E69A94>槞bp們xpu倓dgddnddfdnddddpy倄A>WdgdfA>p剢}p亣{嚋橻<E59A8B>)═棧牁bp們xpy倄A>WdgdgA>p剢}p亣{pzuwddem€櫒[<5B>洠Up們xpw€唸湙<E594B8>[<5B>昑珳 橳<E38080>ЖT<D096>A>。ⅶ<E38082>ΗT珪潹潰汿殻<E6B1BF>┃UUp們xpy倄A>A>A>WdgedA>py峱w倓dgednddefndddhnpu倓dgednddldndddip噥wA>pw亯ddeip亣{p垑咥>x櫄檿<E6AB84>楾v暊Γ沀p媢}dehdp們xpw€僷zuwddddA>pw亯dddlpzu僤ddhp亶xdddfp垎uddhhndjddndddmnddehA>py倄A>A>WdgfdA>py岮>pz€~dkjfndgffA>pz€~dkjendgfepy妝diddA>WdgfeA>py岮>p亗刣gfdnddddnddddnddddA>p亶xdddfp亶xdddgA>pu倓dgddnddfdnddddp媢}ddidA>pw倓diedndgg4nddddA>pw倓dieendgghndddfA>pu倓dgddnddddnddddp媢}ddidp亶xdddfA>p亣{p垑唒zuwddeh|┊畷淯p們xpw亯ddddp們xpw€傾>pw倓dgedndddmndddfp媢}deddA>pw倓dgednddefndddfA>pu倓dgednddgdndddfpw亯ddeeA>p亶xddddA>p媢}ddidA>pu倓dgednddjdndddfp媢}ddhlA>pu倓dgednddidndddfp媢}ddfdA>pu倓dgddnddfdnddddp媢}ddfdA>p亶xdddfp亶xdddgpu倓dgednddldnddddp亶vdddfpu倓dgddnddgdnddddp噧塪dkfp媢}ddgdA>pu倓dgednddddnddddpw亯dddhpw倓dgedndejmnddddpv噣dgedA>pz€_dkjfpz€_dkjgA>py倄A>WdgffA>p剢}py倄A>A>WdggdA>A>A>A>WdiddA>py岮>pz€~dkjfndidfA>pz€~dkjendideA>p亣{}╗<>昑<EFBFBD>Ё潽檂T湙暘璗Γ棢bp們xA>zΓ<7A>枡湞<E69EA1>T潹`T<>㏕棔<E38F95>殭櫊A>昑珴<E69891>T枲+潰沚p們xA>}═牐<E29590><E78990>牆煓T潹T<E6BDB9><54>楾〞煓A>暔T牂暓═ǐ<E29590><C790>¥牂TǎT。獧A>潹`T<>)洔bp們xpy倄A>WdideA>py峱媢}ddedA>pu倓dgddnddddnddddA>p亣{p垑唒zuwddfdw)牁T<E78981>㏕湥牁T潹A>。<>Tǎ珪<C78E>T<EFBFBD>橳櫌榮p們xpw€傾>pu倓dgddnddfdnddddpy倄A>WdidfA>p剢}p亣{}╗<>昑<EFBFBD>Ё潽檂T湙暘璗Γ棢bp們xpy倄A>A>WdiedA>WdieeA>A>A>WdjddA>py峱z€adkjgpz€_dkjhpz€adkjdA>p噥wpw亯dddlpw倓dggdnddefndddfpu倓dgddnddddndddfA>p亗刣gfdnddddnddddnddddA>pzu}dddhA>pu倓dggdnddddnddddA>pu倓dggdnddjdnddddp媢}ddhdA>pu倓dggdnddidndddfp媢}ddfdA>p亶xdddgpu倓dgddnddfdnddddp媢}ddedA>pu倓diddnddednddddp媢}deddA>pu倓dggdnddldndddfA>pu倓dgddnddddndddfA>pu倓diddnddfdnddddp亶xdddfp媢}ddidA>pu倓dggdnddddndddfA>p媢}deddpu倓dgddnddddnddddA>pu倓dggdnddednddddA>p媢}dejdpw倓dfddnddeindddfp媢}ddhdA>pz€_dklepz€_dkjipw倓ddejnddejndddfpy倄A>A>
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue