Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
60ce4dff27 | ||
|
|
f1d2b8adab | ||
|
|
8b76ea0310 | ||
|
|
ac0c92e60a | ||
|
|
6a2f9bf2e7 | ||
|
|
d3e3c08b6c | ||
|
|
ed49b26c12 | ||
|
|
fab7d4eb2f | ||
|
|
5c72a85ad6 | ||
|
|
3dd17ddead | ||
|
|
cc04ff78c9 | ||
|
|
4a30cbf882 | ||
|
|
1a862bc318 | ||
|
|
c13d5c5368 | ||
|
|
d295e51ad6 | ||
|
|
6207e81d9c | ||
|
|
8fb65b8e97 | ||
|
|
3baec1794b | ||
|
|
9cb152ef23 | ||
|
|
8a0c3b34ea | ||
|
|
45275811f0 | ||
|
|
82bdcfa1b1 | ||
|
|
be2daab00c | ||
|
|
6e6ae77ccd | ||
|
|
b9cf7c7415 | ||
|
|
f47088fe37 | ||
|
|
53bd42b2f4 | ||
|
|
5090208a64 | ||
|
|
5ebb141dbf | ||
|
|
8944486597 | ||
|
|
606d91ebab | ||
|
|
3dc353dc73 | ||
|
|
919f00a6ee | ||
|
|
5e0ec6f442 | ||
|
|
d8ad89902b | ||
|
|
ba7c185d8a | ||
|
|
12feecd3d5 | ||
|
|
87a591a1ae | ||
|
|
71aaf4bb04 | ||
|
|
0f6b948ca5 | ||
|
|
6f9e2b3fc9 | ||
|
|
4117589405 | ||
|
|
707a3e0447 | ||
|
|
4dcc329e7e | ||
|
|
1937f0c509 | ||
|
|
ed7ec8b6f8 | ||
|
|
580a082b0f | ||
|
|
c1b930a6fd | ||
|
|
29e2e13d65 | ||
|
|
ed7e83e99b | ||
|
|
a7de9b9c9c | ||
|
|
908d75a86c | ||
|
|
9304931845 | ||
|
|
e39ac455cd | ||
|
|
cfb038429d | ||
|
|
e071233567 | ||
|
|
0dc0813bcd | ||
|
|
fc4451c59f | ||
|
|
6fc879ce39 | ||
|
|
0c39fc479d | ||
|
|
ae333f80a6 | ||
|
|
c39588807f | ||
|
|
db26a1276e | ||
|
|
1d00516d96 | ||
|
|
8bf8fdba9e | ||
|
|
1e61b749cf | ||
|
|
0eecb23724 | ||
|
|
548ea5935b | ||
|
|
cb5ce96103 | ||
|
|
e787fcee8e | ||
|
|
4727734c24 | ||
|
|
ecdfbdf64f | ||
|
|
e476758f73 | ||
|
|
06de56002d | ||
|
|
b17d1f13ff | ||
|
|
bd669f6cee | ||
|
|
5b341dbe54 | ||
|
|
500535b7a6 | ||
|
|
f3d01aeeeb | ||
|
|
70d6f431e3 | ||
|
|
79cdbc24cf | ||
|
|
a24e17535f | ||
|
|
55983f6b01 | ||
|
|
c6681c0a63 | ||
|
|
3730fa78c1 | ||
|
|
5c89ac6edc | ||
|
|
e9653069a2 | ||
|
|
892cff38bc | ||
|
|
7822de38fb | ||
|
|
a70ff264d2 | ||
|
|
a848730a80 | ||
|
|
aac09aa6ad | ||
|
|
d085fd895b | ||
|
|
e4616f7098 | ||
|
|
c9689ebad7 | ||
|
|
a4009e3bbe | ||
|
|
4e3ae6a941 | ||
|
|
3183ad982c | ||
|
|
7a21b8d814 | ||
|
|
7224114a4b | ||
|
|
2d000b8056 | ||
|
|
5bf25d1964 | ||
|
|
cdecb096a1 | ||
|
|
38ee085722 | ||
|
|
0c53142585 | ||
|
|
bb6669c362 | ||
|
|
2e2fe2944c | ||
|
|
d205d0bbc8 | ||
|
|
3b2a232a9d | ||
|
|
9419cd94c7 | ||
|
|
0dd6abab2c | ||
|
|
74bc75fb7c | ||
|
|
177896a021 | ||
|
|
5a776fc06e | ||
|
|
947fd23421 | ||
|
|
776e50f3c2 | ||
|
|
dc41a75615 | ||
|
|
354aa30bfb | ||
|
|
05ae30ce48 | ||
|
|
c8a30de493 | ||
|
|
ebe4a1bbcc | ||
|
|
8d98e1c659 | ||
|
|
0eb824c69c | ||
|
|
49a4b181bf | ||
|
|
fb9426dfb7 | ||
|
|
a711f8c456 | ||
|
|
2c602596d1 | ||
|
|
d3c4198eb9 | ||
|
|
20dc2654f5 | ||
|
|
b9086262b7 | ||
|
|
226a5df74a | ||
|
|
a5f3a5db25 | ||
|
|
70bd093a59 | ||
|
|
b788078590 | ||
|
|
6b57377111 | ||
|
|
2c0f37ff85 | ||
|
|
d3e02c8c5e | ||
|
|
240a30f1d7 | ||
|
|
29a285d37e | ||
|
|
7f9e68dc4a | ||
|
|
8f4dd17507 | ||
|
|
969026b88d | ||
|
|
95b5a038f2 | ||
|
|
c67fd96b0f | ||
|
|
b307de5719 | ||
|
|
1e4ffa3db1 | ||
|
|
3067865b02 | ||
|
|
62bae63bbf | ||
|
|
64516f2bdc | ||
|
|
0e7ed498e3 | ||
|
|
9a8c60e12e | ||
|
|
683ba4ef62 | ||
|
|
217fff8e06 | ||
|
|
ec41f28f3e | ||
|
|
456eefa656 | ||
|
|
7bc5e795f1 | ||
|
|
df70a1458c | ||
|
|
883c812b70 | ||
|
|
6bffa5d2d8 | ||
|
|
21cb6dca39 | ||
|
|
a1ce1d2fa0 | ||
|
|
c9f8f4b230 | ||
|
|
ce135b788f | ||
|
|
e8884e4341 | ||
|
|
d130f43705 | ||
|
|
c37d7fc95a | ||
|
|
c5566b7d06 | ||
|
|
7498304e44 | ||
|
|
7b62f7f702 | ||
|
|
a6e321c1d6 | ||
|
|
4a32ef2bb3 | ||
|
|
fe877ff79c | ||
|
|
619c282477 | ||
|
|
2cafeb1d33 | ||
|
|
1373964746 | ||
|
|
b5feaccc2a | ||
|
|
ac4776b2d0 | ||
|
|
dbc8d63318 | ||
|
|
b2e488e0a4 | ||
|
|
93f3560d19 | ||
|
|
ab75123320 | ||
|
|
a2e5d73bf5 | ||
|
|
ae0d4cbd82 | ||
|
|
f004e9f400 | ||
|
|
b14a35b788 | ||
|
|
33184102c9 | ||
|
|
820ed9cff0 | ||
|
|
2a25274fcf | ||
|
|
d6afb09663 | ||
|
|
4bde2f0080 | ||
|
|
077351bab3 | ||
|
|
e0141fab15 | ||
|
|
d257ecc6ab | ||
|
|
fdc7fc8326 | ||
|
|
2a56fccc85 | ||
|
|
403c7ff910 | ||
|
|
6b0cb815aa | ||
|
|
41474596d0 | ||
|
|
ec9bbd3424 | ||
|
|
5771f195b0 | ||
|
|
236d8322b0 | ||
|
|
16be9476cb | ||
|
|
cd2919400a | ||
|
|
6d818d4da0 | ||
|
|
25692f98fc | ||
|
|
96f538c2f3 | ||
|
|
e6fa6c76c9 | ||
|
|
58f49e421b | ||
|
|
9934109c84 | ||
|
|
aee3c09b57 | ||
|
|
b59fede88d | ||
|
|
95d10ee812 | ||
|
|
bb789872b2 | ||
|
|
7437df78b3 | ||
|
|
6d6cd7d668 | ||
|
|
7da259ec6a | ||
|
|
9e4b321886 | ||
|
|
ce90dae4b9 | ||
|
|
d0a3563c3e | ||
|
|
d18cd82d4b | ||
|
|
5c5e95218b | ||
|
|
f259634c38 | ||
|
|
1879c984f4 | ||
|
|
c4a080b0f4 | ||
|
|
64f84e7ca6 | ||
|
|
9be5a9bd0e | ||
|
|
8b7e16caf6 | ||
|
|
533dd7586f | ||
|
|
15e9f5486b | ||
|
|
8e532db6aa | ||
|
|
f625039190 | ||
|
|
c61d35c41e | ||
|
|
30223faa00 | ||
|
|
8e41ddc297 | ||
|
|
138260c788 | ||
|
|
29940abed6 | ||
|
|
ed469ad8c9 | ||
|
|
b12a3280e6 | ||
|
|
3177a57103 | ||
|
|
012bf2fec2 | ||
|
|
54016ad89b | ||
|
|
eab1c03a52 | ||
|
|
e53eb8a43c | ||
|
|
3f65defbf0 | ||
|
|
15568b37aa | ||
|
|
a116192b3d | ||
|
|
0d3a2b87ed | ||
|
|
0d7939588e |
No files matched your search
@@ -8,11 +8,47 @@ on:
|
||||
- "emulators/**"
|
||||
- "provenance/**"
|
||||
- "wiki/**"
|
||||
- "scripts/generate_site.py"
|
||||
- "scripts/generate_readme.py"
|
||||
- "scripts/validate_site.py"
|
||||
- "scripts/verify.py"
|
||||
# Every script the build runs or imports (tests/test_workflow_paths.py).
|
||||
- "scripts/artifacts.py"
|
||||
- "scripts/auto_fetch.py"
|
||||
- "scripts/common.py"
|
||||
- "scripts/cross_reference.py"
|
||||
- "scripts/crypto_verify.py"
|
||||
- "scripts/deterministic_zip.py"
|
||||
- "scripts/dumpcatalog.py"
|
||||
- "scripts/generate_pack.py"
|
||||
- "scripts/generate_readme.py"
|
||||
- "scripts/generate_site.py"
|
||||
- "scripts/hashing.py"
|
||||
- "scripts/largefiles.py"
|
||||
- "scripts/list_platforms.py"
|
||||
- "scripts/nativemode.py"
|
||||
- "scripts/packextras.py"
|
||||
- "scripts/packpaths.py"
|
||||
- "scripts/packreadme.py"
|
||||
- "scripts/packresolve.py"
|
||||
- "scripts/packverify.py"
|
||||
- "scripts/profile_sync.py"
|
||||
- "scripts/provenance_report.py"
|
||||
- "scripts/refresh_data_dirs.py"
|
||||
- "scripts/region.py"
|
||||
- "scripts/release_record.py"
|
||||
- "scripts/restore_large_files.py"
|
||||
- "scripts/safeparse.py"
|
||||
- "scripts/sect233r1.py"
|
||||
- "scripts/siterender.py"
|
||||
- "scripts/sitesources.py"
|
||||
- "scripts/sitewrite.py"
|
||||
- "scripts/slot.py"
|
||||
- "scripts/slots.py"
|
||||
- "scripts/split_pack.py"
|
||||
- "scripts/truth.py"
|
||||
- "scripts/upstream.py"
|
||||
- "scripts/validate_schemas.py"
|
||||
- "scripts/validate_site.py"
|
||||
- "scripts/validation.py"
|
||||
- "scripts/verify.py"
|
||||
- "scripts/ziptools.py"
|
||||
- "schemas/**"
|
||||
- "tests/**"
|
||||
- "docs_assets/**"
|
||||
@@ -20,7 +56,6 @@ on:
|
||||
- "install.py"
|
||||
- "database.json"
|
||||
- "release.json"
|
||||
- "scripts/release_record.py"
|
||||
- "mkdocs.yml"
|
||||
- ".github/workflows/deploy-site.yml"
|
||||
workflow_dispatch:
|
||||
@@ -49,7 +84,7 @@ jobs:
|
||||
|
||||
# mkdocs-material >= 9.7.5 caps mkdocs < 2; the upper bound keeps a major
|
||||
# theme release from changing the site without a deliberate bump here.
|
||||
- run: pip install pyyaml jsonschema==4.26.0 "mkdocs-material>=9.7.5,<10" "pymdown-extensions>=10.14"
|
||||
- run: pip install pyyaml "jsonschema[format-nongpl]==4.26.0" "mkdocs-material>=9.7.5,<10" "pymdown-extensions>=10.14"
|
||||
|
||||
- name: Validate data contracts
|
||||
run: python scripts/validate_schemas.py
|
||||
|
||||
@@ -112,7 +112,7 @@ jobs:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install pyyaml jsonschema==4.26.0
|
||||
run: pip install pyyaml "jsonschema[format-nongpl]==4.26.0"
|
||||
|
||||
- name: Validate platform configs and emulator profiles
|
||||
run: python scripts/validate_schemas.py --source-only
|
||||
@@ -127,7 +127,7 @@ jobs:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install pyyaml jsonschema==4.26.0
|
||||
run: pip install pyyaml "jsonschema[format-nongpl]==4.26.0"
|
||||
|
||||
# The exporter fidelity cases compare what we hand back against the
|
||||
# file each platform publishes, so they need those files. They skip
|
||||
|
||||
@@ -29,6 +29,14 @@ bios/Sony/PlayStation Vita/PSP2UPDAT.PUP
|
||||
# Large files stored as GitHub Release assets (additional)
|
||||
bios/Other/mame4droid-2024/data/history.db
|
||||
bios/Other/mame4droid-2024/data/.variants/history.db.615619e8
|
||||
bios/Interplay/Descent/d1x-rebirth/d1xr-opl3-music.dxa
|
||||
bios/Interplay/Descent/d1x-rebirth/d1xr-sc55-music.dxa
|
||||
bios/Game Engines/Sonic 3 AIR/sonic3-air/data/audioremaster.bin
|
||||
bios/Id Software/Return to Castle Wolfenstein/demomain/pak0.pk3
|
||||
bios/Id Software/Return to Castle Wolfenstein/demomain/.variants/pak0.pk3.82395c6e
|
||||
bios/Id Software/Doom 3/demo/demo00.pk4
|
||||
bios/Electronic Arts/Medal of Honor Allied Assault/mainta/pak3.pk3
|
||||
bios/Valve/Half-Life/valve/.variants/pak0.pak.2c57b84f
|
||||
bios/Arcade/MAME/artwork/snspell.zip
|
||||
bios/Arcade/MAME/MAME 0.174 Arcade XML.dat
|
||||
bios/Sony/PlayStation Vita/.variants/PSP2UPDAT.PUP.3ae832c9
|
||||
|
||||
@@ -55,9 +55,9 @@ Every release ships `SHA256SUMS.txt` and a detached signature of it, checkable a
|
||||
| RetroBat | 1,466 | 4.4 GB | `bios/` | [Download](../../releases/latest) |
|
||||
| RetroDECK | 3,519 | 6.2 GB | `~/retrodeck/` | [Download](../../releases/latest) |
|
||||
| RetroPie * | 4,525 | 5.5 GB | `~/RetroPie/BIOS/` | [Download](../../releases/latest) |
|
||||
| RomM | 617 | 1.3 GB | `bios/{platform_slug}/` | [Download](../../releases/latest) |
|
||||
| RomM | 617 | 1.3 GB | `library/bios/` | [Download](../../releases/latest) |
|
||||
|
||||
The RetroDECK pack already contains its own `bios/` folder, so it extracts into `~/retrodeck/` rather than into the BIOS folder.
|
||||
The RetroDECK pack already carries its own `bios/` folder, so it extracts into `~/retrodeck/` rather than into the BIOS folder.
|
||||
|
||||
\* Archived: the configuration is kept and packs are still built, but upstream is no longer scraped on a schedule.
|
||||
|
||||
@@ -68,13 +68,13 @@ These are the files an emulator loads from disk instead of carrying inside itsel
|
||||
|
||||
Each file is checked the way your platform checks it. Most compare a checksum, the fingerprint of a file's contents, which catches a corrupt or unexpected copy. RetroArch, Lakka and RetroPie only look for the filename, because that is all their code does: the Coverage table says which applies to you. Independently of that, the collection records five fingerprints per file, and wherever an emulator's code states an expected size or hash, that value is read from its source and rechecked here.
|
||||
|
||||
- **429 files** the platforms' emulators load are still to be found, and 48 more cannot be sourced at all (per-user keys, user-filled slots, dumps nobody has made); both are named in the [gap analysis](https://abdess.github.io/retrobios/gaps/)
|
||||
- **392 files** the platforms' emulators load are still to be found, and 51 more cannot be sourced at all (per-user keys, user-filled slots, dumps nobody has made); both are named in the [gap analysis](https://abdess.github.io/retrobios/gaps/)
|
||||
- **12 platforms** supported with platform-specific verification
|
||||
- **506 emulators** profiled from source (RetroArch cores + standalone)
|
||||
- **546 systems** handled by those emulators (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
|
||||
- **18,913 files in the collection**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,242 system files, 2,810 arcade ROM sets, 10,861 game and engine data files. That is every platform and emulator together, so no pack holds them all: each carries what its own emulators load, counted in the download table
|
||||
- **561 of 5,242 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index
|
||||
- **15506 MB** total collection size
|
||||
- **19,002 files in the collection**, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,266 system files, 2,808 arcade ROM sets, 10,928 game and engine data files. That is every platform and emulator together, so no pack holds them all: each carries what its own emulators load, counted in the download table
|
||||
- **562 of 5,266 system files** matched to dump-preservation catalogs (No-Intro, Redump, TOSEC); arcade sets and engine data fall outside what those catalogs index
|
||||
- **16687 MB** total collection size
|
||||
|
||||
## Supported systems
|
||||
|
||||
@@ -86,18 +86,18 @@ Full list with per-file details: **[https://abdess.github.io/retrobios/](https:/
|
||||
|
||||
| Platform | On its BIOS list | Files its emulators load | Checked by |
|
||||
|----------|-----------------:|-------------------------:|------------|
|
||||
| Batocera | 353/353 | 12,211/12,674 | MD5 hash |
|
||||
| BizHawk | 118/118 | 646/648 | SHA1 hash |
|
||||
| EmuDeck | 168/168 | 380/383 | MD5 hash |
|
||||
| Lakka | 530/530 | 5,260/5,292 | file presence |
|
||||
| Batocera | 353/353 | 12,287/12,718 | MD5 hash |
|
||||
| BizHawk | 118/118 | 800/801 | SHA1 hash |
|
||||
| EmuDeck | 168/168 | 430/432 | MD5 hash |
|
||||
| Lakka | 526/526 | 5,256/5,286 | file presence |
|
||||
| MiSTer FPGA | 81/81 | - | MD5 hash |
|
||||
| ROCKNIX | 38/38 | 5,698/5,730 | MD5 hash |
|
||||
| Recalbox | 351/351 | 2,725/2,734 | MD5 hash |
|
||||
| RetroArch | 530/530 | 5,260/5,292 | file presence |
|
||||
| RetroBat | 348/348 | 11,681/12,147 | MD5 hash |
|
||||
| RetroDECK | 2,008/2,008 | 5,276/5,329 | MD5 hash |
|
||||
| RetroPie * | 530/530 | 9,175/9,323 | file presence |
|
||||
| RomM | 381/381 | 624/630 | MD5 hash |
|
||||
| ROCKNIX | 38/38 | 5,695/5,725 | MD5 hash |
|
||||
| Recalbox | 351/351 | 2,721/2,729 | MD5 hash |
|
||||
| RetroArch | 526/526 | 5,256/5,286 | file presence |
|
||||
| RetroBat | 348/348 | 11,875/12,305 | MD5 hash |
|
||||
| RetroDECK | 2,008/2,008 | 5,387/5,437 | MD5 hash |
|
||||
| RetroPie * | 526/526 | 9,171/9,313 | file presence |
|
||||
| RomM | 381/381 | 746/752 | MD5 hash |
|
||||
|
||||
Each fraction is what the pack has over what is needed, counting required and optional files alike since both ship. The first column is the BIOS list the platform publishes. The second counts files its emulators load that this list never mentions, found by reading their source code, and it is routinely several times larger. A short fraction means files are still missing, and they are named in the [gap analysis](https://abdess.github.io/retrobios/gaps/).
|
||||
That second number is a floor, not a ceiling: an emulator that accepts any file handed to it names none in its code, so nothing there can be counted.
|
||||
@@ -180,4 +180,4 @@ The scripts and tooling are released under the [MIT License](LICENSE).
|
||||
The BIOS and firmware files are not covered by that license: they are third-party system software, preserved and provided for personal backup, archival, and interoperability with emulation software. [NOTICE](NOTICE) sets out their status and how to ask for a file to be removed.
|
||||
The reasoning, and where it is weakest, is in the [FAQ](https://abdess.github.io/retrobios/wiki/faq/#is-this-legal).
|
||||
|
||||
*Auto-generated on 2026-10-04T21:31:40Z*
|
||||
*Auto-generated on 2026-10-09T21:03:52Z*
|
||||
@@ -0,0 +1,86 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:10;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:6;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199776;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199744;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199712;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199680;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199392;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199360;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199328;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199296;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199264;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199232;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199200;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199168;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199136;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199104;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199072;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199040;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199008;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198976;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198944;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198912;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198880;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198848;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198816;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198784;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198752;Y:-200064;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:40;X:-200000;Y:-200032;
|
||||
ID:40;X:-199872;Y:-200032;
|
||||
ID:40;X:-199744;Y:-200032;
|
||||
ID:40;X:-199616;Y:-200032;
|
||||
ID:40;X:-199488;Y:-200032;
|
||||
ID:40;X:-199360;Y:-200032;
|
||||
ID:40;X:-199232;Y:-200032;
|
||||
ID:40;X:-199104;Y:-200032;
|
||||
ID:40;X:-198976;Y:-200032;
|
||||
ID:40;X:-198848;Y:-200032;
|
||||
ID:8;X:-199968;Y:-200320;
|
||||
ID:129;X:-199648;Y:-200096;
|
||||
ID:130;X:-199616;Y:-200096;
|
||||
ID:130;X:-199584;Y:-200096;
|
||||
ID:131;X:-199552;Y:-200096;
|
||||
ID:124;X:-199712;Y:-200096;
|
||||
ID:196;X:-199392;Y:-200224;
|
||||
ID:19;X:-199488;Y:-200096;
|
||||
ID:127;X:-199712;Y:-200128;
|
||||
ID:128;X:-199264;Y:-200160;
|
||||
ID:124;X:-199264;Y:-200096;
|
||||
ID:129;X:-199232;Y:-200096;
|
||||
ID:131;X:-199200;Y:-200096;
|
||||
ID:10;X:-199136;Y:-200128;
|
||||
ID:18;X:-199040;Y:-200096;
|
||||
ID:2;X:-198880;Y:-200160;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,168 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:29;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:264;X:-200000;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199968;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199936;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199904;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199872;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199840;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199808;Y:-200128;W:32;H:32;
|
||||
ID:552;X:-199776;Y:-200128;W:32;H:32;
|
||||
ID:552;X:-199712;Y:-200160;W:32;H:32;
|
||||
ID:324;X:-199712;Y:-200192;W:64;H:32;
|
||||
ID:324;X:-199776;Y:-200160;W:64;H:32;
|
||||
ID:264;X:-199648;Y:-200192;W:32;H:32;
|
||||
ID:264;X:-199616;Y:-200192;W:32;H:32;
|
||||
ID:265;X:-199584;Y:-200192;W:32;H:32;
|
||||
ID:271;X:-199584;Y:-200160;W:32;H:32;
|
||||
ID:271;X:-199584;Y:-200128;W:32;H:32;
|
||||
ID:271;X:-199584;Y:-200096;W:32;H:32;
|
||||
ID:271;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:271;X:-199584;Y:-200032;W:32;H:32;
|
||||
ID:263;X:-199424;Y:-200256;W:32;H:32;
|
||||
ID:266;X:-199424;Y:-200224;W:32;H:32;
|
||||
ID:266;X:-199424;Y:-200192;W:32;H:32;
|
||||
ID:266;X:-199424;Y:-200160;W:32;H:32;
|
||||
ID:266;X:-199424;Y:-200128;W:32;H:32;
|
||||
ID:266;X:-199424;Y:-200096;W:32;H:32;
|
||||
ID:266;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:266;X:-199424;Y:-200032;W:32;H:32;
|
||||
ID:264;X:-199392;Y:-200256;W:32;H:32;
|
||||
ID:264;X:-199360;Y:-200256;W:32;H:32;
|
||||
ID:264;X:-199328;Y:-200256;W:32;H:32;
|
||||
ID:264;X:-199296;Y:-200256;W:32;H:32;
|
||||
ID:264;X:-199232;Y:-200256;W:32;H:32;
|
||||
ID:265;X:-199200;Y:-200256;W:32;H:32;
|
||||
ID:271;X:-199200;Y:-200224;W:32;H:32;
|
||||
ID:271;X:-199200;Y:-200192;W:32;H:32;
|
||||
ID:271;X:-199200;Y:-200160;W:32;H:32;
|
||||
ID:264;X:-199264;Y:-200256;W:32;H:32;
|
||||
ID:59;X:-199168;Y:-200192;W:32;H:32;
|
||||
ID:59;X:-199168;Y:-200160;W:32;H:32;
|
||||
ID:59;X:-199136;Y:-200160;W:32;H:32;
|
||||
ID:276;X:-199200;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199168;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199136;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199104;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199072;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199040;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-199008;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-198976;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-198944;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-198912;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-198880;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-198848;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-198816;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-198784;Y:-200128;W:32;H:32;
|
||||
ID:264;X:-198752;Y:-200128;W:32;H:32;
|
||||
ID:273;X:-200000;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199968;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199936;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199904;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199872;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199840;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199808;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199776;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199744;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199712;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199680;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199648;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199616;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199584;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199552;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199520;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199488;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199456;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199424;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199392;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199360;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199328;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199296;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199264;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199232;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199200;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199168;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199136;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199104;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199072;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199040;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-199008;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-198976;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-198944;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-198912;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-198880;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-198848;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-198816;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-198784;Y:-200544;W:32;H:32;
|
||||
ID:273;X:-198752;Y:-200544;W:32;H:32;
|
||||
ID:262;X:-200000;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-199872;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-199744;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-199616;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-199488;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-199360;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-199232;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-199104;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-198976;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-198848;Y:-200672;W:128;H:128;
|
||||
ID:262;X:-198848;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-198976;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-199104;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-199232;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-199360;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-199488;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-199616;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-199744;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-199872;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-200000;Y:-200800;W:128;H:128;
|
||||
ID:262;X:-199712;Y:-200128;W:128;H:128;
|
||||
ID:262;X:-199840;Y:-200096;W:128;H:128;
|
||||
ID:262;X:-199968;Y:-200096;W:128;H:128;
|
||||
ID:262;X:-200096;Y:-200096;W:128;H:128;
|
||||
ID:262;X:-199392;Y:-200224;W:128;H:128;
|
||||
ID:262;X:-199392;Y:-200096;W:128;H:128;
|
||||
ID:262;X:-199264;Y:-200096;W:128;H:128;
|
||||
ID:262;X:-199136;Y:-200096;W:128;H:128;
|
||||
ID:262;X:-199008;Y:-200096;W:128;H:128;
|
||||
ID:262;X:-198880;Y:-200096;W:128;H:128;
|
||||
ID:262;X:-198752;Y:-200096;W:128;H:128;
|
||||
ID:270;X:-199264;Y:-200192;W:32;H:32;
|
||||
ID:270;X:-199264;Y:-200160;W:32;H:32;
|
||||
ID:270;X:-199232;Y:-200128;W:32;H:32;
|
||||
ID:270;X:-199232;Y:-200160;W:32;H:32;
|
||||
ID:270;X:-199232;Y:-200192;W:32;H:32;
|
||||
ID:270;X:-199232;Y:-200224;W:32;H:32;
|
||||
ID:270;X:-199264;Y:-200224;W:32;H:32;
|
||||
ID:270;X:-199264;Y:-200128;W:32;H:32;
|
||||
ID:270;X:-199744;Y:-200128;W:32;H:32;
|
||||
ID:270;X:-199616;Y:-200160;W:32;H:32;
|
||||
ID:270;X:-199648;Y:-200160;W:32;H:32;
|
||||
ID:270;X:-199680;Y:-200160;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:3;X:-199968;Y:-200544;
|
||||
ID:3;X:-199552;Y:-200544;
|
||||
ID:4;X:-199664;Y:-200512;
|
||||
ID:7;X:-200000;Y:-200224;
|
||||
ID:114;X:-199648;Y:-200224;
|
||||
ID:7;X:-199424;Y:-200352;
|
||||
ID:5;X:-199104;Y:-200160;
|
||||
ID:7;X:-198976;Y:-200224;
|
||||
ID:4;X:-199168;Y:-200512;
|
||||
ID:3;X:-199008;Y:-200544;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,195 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:14;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:145;X:-200000;Y:-200096;W:32;H:32;
|
||||
ID:145;X:-199968;Y:-200096;W:32;H:32;
|
||||
ID:145;X:-199936;Y:-200096;W:32;H:32;
|
||||
ID:145;X:-199904;Y:-200096;W:32;H:32;
|
||||
ID:145;X:-199872;Y:-200096;W:32;H:32;
|
||||
ID:145;X:-199840;Y:-200096;W:32;H:32;
|
||||
ID:146;X:-199808;Y:-200096;W:32;H:32;
|
||||
ID:149;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:149;X:-199808;Y:-200032;W:32;H:32;
|
||||
ID:144;X:-199648;Y:-200096;W:32;H:32;
|
||||
ID:147;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:147;X:-199648;Y:-200032;W:32;H:32;
|
||||
ID:145;X:-199616;Y:-200096;W:32;H:32;
|
||||
ID:145;X:-199584;Y:-200096;W:32;H:32;
|
||||
ID:145;X:-199552;Y:-200096;W:32;H:32;
|
||||
ID:546;X:-199520;Y:-200096;W:32;H:32;
|
||||
ID:546;X:-199488;Y:-200128;W:32;H:32;
|
||||
ID:546;X:-199456;Y:-200160;W:32;H:32;
|
||||
ID:635;X:-199456;Y:-200192;W:32;H:32;
|
||||
ID:635;X:-199488;Y:-200160;W:32;H:32;
|
||||
ID:635;X:-199520;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199424;Y:-200192;W:32;H:32;
|
||||
ID:145;X:-199392;Y:-200192;W:32;H:32;
|
||||
ID:146;X:-199360;Y:-200192;W:32;H:32;
|
||||
ID:154;X:-199360;Y:-200128;W:32;H:32;
|
||||
ID:149;X:-199360;Y:-200160;W:32;H:32;
|
||||
ID:145;X:-199328;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199296;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199264;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199232;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199200;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199168;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199136;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199104;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199072;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-199040;Y:-200128;W:32;H:32;
|
||||
ID:146;X:-199008;Y:-200128;W:32;H:32;
|
||||
ID:149;X:-199008;Y:-200096;W:32;H:32;
|
||||
ID:149;X:-199008;Y:-200064;W:32;H:32;
|
||||
ID:149;X:-199008;Y:-200032;W:32;H:32;
|
||||
ID:144;X:-198848;Y:-200128;W:32;H:32;
|
||||
ID:147;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:147;X:-198848;Y:-200064;W:32;H:32;
|
||||
ID:147;X:-198848;Y:-200032;W:32;H:32;
|
||||
ID:145;X:-198816;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-198784;Y:-200128;W:32;H:32;
|
||||
ID:145;X:-198752;Y:-200128;W:32;H:32;
|
||||
ID:148;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199872;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199904;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199840;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199936;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199968;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-200000;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199456;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199456;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199488;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199488;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199456;Y:-200128;W:32;H:32;
|
||||
ID:148;X:-199424;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199424;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199392;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199520;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199424;Y:-200128;W:32;H:32;
|
||||
ID:148;X:-199392;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199392;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199360;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199552;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199424;Y:-200160;W:32;H:32;
|
||||
ID:148;X:-199392;Y:-200128;W:32;H:32;
|
||||
ID:148;X:-199360;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199360;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199328;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199584;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199392;Y:-200160;W:32;H:32;
|
||||
ID:148;X:-199328;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199328;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199296;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199616;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199296;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199296;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199264;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199264;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199264;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199232;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199232;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199232;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199200;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199200;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199200;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199168;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199168;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199168;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199136;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199136;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199136;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199104;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199104;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199104;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199072;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199072;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199072;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-199040;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-199040;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-199040;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-198784;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-198816;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-198784;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-198784;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-198752;Y:-200064;W:32;H:32;
|
||||
ID:148;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-198816;Y:-200032;W:32;H:32;
|
||||
ID:148;X:-198752;Y:-200096;W:32;H:32;
|
||||
ID:148;X:-198752;Y:-200032;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:189;X:-199808;Y:-200096;
|
||||
ID:189;X:-199648;Y:-200096;
|
||||
ID:189;X:-199008;Y:-200128;
|
||||
ID:189;X:-198848;Y:-200128;
|
||||
ID:188;X:-198880;Y:-200128;
|
||||
ID:188;X:-198912;Y:-200128;
|
||||
ID:188;X:-198944;Y:-200128;
|
||||
ID:188;X:-198976;Y:-200128;
|
||||
ID:188;X:-199776;Y:-200096;
|
||||
ID:188;X:-199744;Y:-200096;
|
||||
ID:188;X:-199712;Y:-200096;
|
||||
ID:188;X:-199680;Y:-200096;
|
||||
ID:187;X:-199680;Y:-200064;
|
||||
ID:187;X:-199712;Y:-200064;
|
||||
ID:187;X:-199744;Y:-200064;
|
||||
ID:187;X:-199744;Y:-200032;
|
||||
ID:187;X:-199776;Y:-200032;
|
||||
ID:187;X:-199776;Y:-200064;
|
||||
ID:187;X:-199712;Y:-200032;
|
||||
ID:187;X:-199680;Y:-200032;
|
||||
ID:187;X:-198976;Y:-200096;
|
||||
ID:187;X:-198944;Y:-200096;
|
||||
ID:187;X:-198912;Y:-200096;
|
||||
ID:187;X:-198880;Y:-200096;
|
||||
ID:187;X:-198880;Y:-200064;
|
||||
ID:187;X:-198880;Y:-200032;
|
||||
ID:187;X:-198912;Y:-200032;
|
||||
ID:187;X:-198944;Y:-200032;
|
||||
ID:187;X:-198976;Y:-200032;
|
||||
ID:187;X:-198976;Y:-200064;
|
||||
ID:187;X:-198944;Y:-200064;
|
||||
ID:187;X:-198912;Y:-200064;
|
||||
ID:38;X:-199872;Y:-200224;
|
||||
ID:108;X:-199968;Y:-200128;
|
||||
ID:27;X:-199616;Y:-200128;
|
||||
ID:113;X:-199360;Y:-200224;
|
||||
ID:111;X:-199392;Y:-200224;
|
||||
ID:34;X:-199296;Y:-200160;
|
||||
ID:34;X:-199296;Y:-200192;
|
||||
ID:34;X:-199296;Y:-200224;
|
||||
ID:34;X:-199296;Y:-200256;
|
||||
ID:126;X:-199296;Y:-200288;
|
||||
ID:109;X:-198784;Y:-200160;
|
||||
ID:109;X:-198816;Y:-200160;
|
||||
ID:108;X:-199040;Y:-200160;
|
||||
ID:113;X:-199136;Y:-200160;
|
||||
ID:111;X:-199232;Y:-200160;
|
||||
ID:112;X:-199168;Y:-200160;
|
||||
ID:112;X:-199200;Y:-200160;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,272 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:35;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:132;X:-200000;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199968;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199936;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199904;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199872;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199840;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199808;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199776;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199744;Y:-200096;W:32;H:32;
|
||||
ID:399;X:-199840;Y:-200128;W:32;H:32;
|
||||
ID:399;X:-199840;Y:-200160;W:32;H:32;
|
||||
ID:399;X:-199840;Y:-200192;W:32;H:32;
|
||||
ID:399;X:-199840;Y:-200224;W:32;H:32;
|
||||
ID:394;X:-199648;Y:-200128;W:32;H:32;
|
||||
ID:394;X:-199616;Y:-200128;W:32;H:32;
|
||||
ID:394;X:-199584;Y:-200128;W:32;H:32;
|
||||
ID:394;X:-199584;Y:-200160;W:32;H:32;
|
||||
ID:394;X:-199584;Y:-200192;W:32;H:32;
|
||||
ID:394;X:-199616;Y:-200160;W:32;H:32;
|
||||
ID:132;X:-199712;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199680;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199648;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199616;Y:-200096;W:32;H:32;
|
||||
ID:132;X:-199584;Y:-200096;W:32;H:32;
|
||||
ID:131;X:-199552;Y:-200256;W:32;H:32;
|
||||
ID:140;X:-199552;Y:-200096;W:32;H:32;
|
||||
ID:134;X:-199552;Y:-200224;W:32;H:32;
|
||||
ID:134;X:-199552;Y:-200192;W:32;H:32;
|
||||
ID:134;X:-199552;Y:-200160;W:32;H:32;
|
||||
ID:134;X:-199552;Y:-200128;W:32;H:32;
|
||||
ID:132;X:-199520;Y:-200256;W:32;H:32;
|
||||
ID:132;X:-199488;Y:-200256;W:32;H:32;
|
||||
ID:132;X:-199456;Y:-200256;W:32;H:32;
|
||||
ID:132;X:-199424;Y:-200256;W:32;H:32;
|
||||
ID:133;X:-199392;Y:-200256;W:32;H:32;
|
||||
ID:141;X:-199392;Y:-200192;W:32;H:32;
|
||||
ID:136;X:-199392;Y:-200224;W:32;H:32;
|
||||
ID:132;X:-199360;Y:-200192;W:32;H:32;
|
||||
ID:132;X:-199328;Y:-200192;W:32;H:32;
|
||||
ID:132;X:-199296;Y:-200192;W:32;H:32;
|
||||
ID:132;X:-199264;Y:-200192;W:32;H:32;
|
||||
ID:132;X:-199232;Y:-200192;W:32;H:32;
|
||||
ID:132;X:-199200;Y:-200192;W:32;H:32;
|
||||
ID:132;X:-199168;Y:-200192;W:32;H:32;
|
||||
ID:132;X:-199136;Y:-200192;W:32;H:32;
|
||||
ID:133;X:-199104;Y:-200192;W:32;H:32;
|
||||
ID:136;X:-199104;Y:-200160;W:32;H:32;
|
||||
ID:136;X:-199104;Y:-200128;W:32;H:32;
|
||||
ID:136;X:-199104;Y:-200096;W:32;H:32;
|
||||
ID:136;X:-199104;Y:-200064;W:32;H:32;
|
||||
ID:136;X:-199104;Y:-200032;W:32;H:32;
|
||||
ID:131;X:-198944;Y:-200128;W:32;H:32;
|
||||
ID:134;X:-198944;Y:-200096;W:32;H:32;
|
||||
ID:134;X:-198944;Y:-200064;W:32;H:32;
|
||||
ID:134;X:-198944;Y:-200032;W:32;H:32;
|
||||
ID:132;X:-198752;Y:-200128;W:32;H:32;
|
||||
ID:132;X:-198784;Y:-200128;W:32;H:32;
|
||||
ID:132;X:-198816;Y:-200128;W:32;H:32;
|
||||
ID:132;X:-198848;Y:-200128;W:32;H:32;
|
||||
ID:132;X:-198880;Y:-200128;W:32;H:32;
|
||||
ID:132;X:-198912;Y:-200128;W:32;H:32;
|
||||
ID:394;X:-198816;Y:-200160;W:32;H:32;
|
||||
ID:394;X:-198784;Y:-200160;W:32;H:32;
|
||||
ID:394;X:-198752;Y:-200160;W:32;H:32;
|
||||
ID:394;X:-198752;Y:-200192;W:32;H:32;
|
||||
ID:394;X:-198752;Y:-200224;W:32;H:32;
|
||||
ID:394;X:-198784;Y:-200192;W:32;H:32;
|
||||
ID:135;X:-199232;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199264;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199232;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199232;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199200;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199296;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199264;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199264;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199232;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199200;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199200;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199168;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199328;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199296;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199296;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199264;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199232;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199200;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199168;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199168;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199136;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199360;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199328;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199328;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199296;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199264;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199200;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199168;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199136;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199136;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199392;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199360;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199360;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199328;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199296;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199168;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199136;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199392;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199392;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199360;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199328;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199136;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199424;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199424;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199392;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199360;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199456;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199456;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199424;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199392;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199488;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199488;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199456;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199424;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199520;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-199520;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199488;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199456;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199424;Y:-200192;W:32;H:32;
|
||||
ID:135;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199552;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199520;Y:-200128;W:32;H:32;
|
||||
ID:135;X:-199488;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199456;Y:-200192;W:32;H:32;
|
||||
ID:135;X:-199424;Y:-200224;W:32;H:32;
|
||||
ID:135;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199584;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199520;Y:-200160;W:32;H:32;
|
||||
ID:135;X:-199488;Y:-200192;W:32;H:32;
|
||||
ID:135;X:-199456;Y:-200224;W:32;H:32;
|
||||
ID:135;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199616;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199520;Y:-200192;W:32;H:32;
|
||||
ID:135;X:-199488;Y:-200224;W:32;H:32;
|
||||
ID:135;X:-199680;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199648;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199520;Y:-200224;W:32;H:32;
|
||||
ID:135;X:-199712;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199680;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199744;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199712;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199776;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199744;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199776;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199808;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199840;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199872;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199904;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199936;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-199968;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-200000;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-198816;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-198848;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-198816;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-198784;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-198880;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-198848;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-198784;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-198784;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-198752;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-198912;Y:-200064;W:32;H:32;
|
||||
ID:135;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-198880;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-198752;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-198752;Y:-200032;W:32;H:32;
|
||||
ID:135;X:-198912;Y:-200096;W:32;H:32;
|
||||
ID:135;X:-198912;Y:-200032;W:32;H:32;
|
||||
ID:399;X:-199360;Y:-200224;W:32;H:32;
|
||||
ID:399;X:-199360;Y:-200256;W:32;H:32;
|
||||
ID:399;X:-199360;Y:-200288;W:32;H:32;
|
||||
ID:399;X:-199360;Y:-200320;W:32;H:32;
|
||||
ID:399;X:-199360;Y:-200352;W:32;H:32;
|
||||
ID:399;X:-199360;Y:-200384;W:32;H:32;
|
||||
ID:394;X:-199712;Y:-200384;W:32;H:32;
|
||||
ID:394;X:-199680;Y:-200384;W:32;H:32;
|
||||
ID:394;X:-199648;Y:-200384;W:32;H:32;
|
||||
ID:394;X:-199040;Y:-200384;W:32;H:32;
|
||||
ID:394;X:-199040;Y:-200352;W:32;H:32;
|
||||
ID:394;X:-199040;Y:-200320;W:32;H:32;
|
||||
ID:394;X:-199008;Y:-200320;W:32;H:32;
|
||||
ID:394;X:-199008;Y:-200352;W:32;H:32;
|
||||
ID:394;X:-199008;Y:-200384;W:32;H:32;
|
||||
ID:394;X:-199040;Y:-200416;W:32;H:32;
|
||||
ID:394;X:-199008;Y:-200416;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:168;X:-200000;Y:-200512;
|
||||
ID:168;X:-199936;Y:-200512;
|
||||
ID:168;X:-199872;Y:-200512;
|
||||
ID:168;X:-199808;Y:-200512;
|
||||
ID:168;X:-199744;Y:-200512;
|
||||
ID:168;X:-199680;Y:-200512;
|
||||
ID:168;X:-199616;Y:-200512;
|
||||
ID:168;X:-199552;Y:-200512;
|
||||
ID:168;X:-199488;Y:-200512;
|
||||
ID:168;X:-199424;Y:-200512;
|
||||
ID:168;X:-199360;Y:-200512;
|
||||
ID:168;X:-199296;Y:-200512;
|
||||
ID:168;X:-199232;Y:-200512;
|
||||
ID:168;X:-199168;Y:-200512;
|
||||
ID:168;X:-199104;Y:-200512;
|
||||
ID:168;X:-199040;Y:-200512;
|
||||
ID:168;X:-198976;Y:-200512;
|
||||
ID:168;X:-198912;Y:-200512;
|
||||
ID:168;X:-198848;Y:-200512;
|
||||
ID:168;X:-198784;Y:-200512;
|
||||
ID:171;X:-199456;Y:-200288;
|
||||
ID:171;X:-199456;Y:-200320;
|
||||
ID:171;X:-199456;Y:-200352;
|
||||
ID:171;X:-199456;Y:-200384;
|
||||
ID:171;X:-199456;Y:-200416;
|
||||
ID:170;X:-199456;Y:-200448;
|
||||
ID:170;X:-199936;Y:-200192;
|
||||
ID:170;X:-199712;Y:-200320;
|
||||
ID:171;X:-199712;Y:-200288;
|
||||
ID:171;X:-199712;Y:-200256;
|
||||
ID:171;X:-199712;Y:-200224;
|
||||
ID:171;X:-199712;Y:-200192;
|
||||
ID:171;X:-199712;Y:-200160;
|
||||
ID:171;X:-199712;Y:-200128;
|
||||
ID:171;X:-199936;Y:-200160;
|
||||
ID:171;X:-199936;Y:-200128;
|
||||
ID:20;X:-199520;Y:-200288;
|
||||
ID:18;X:-199264;Y:-200224;
|
||||
ID:19;X:-198912;Y:-200160;
|
||||
ID:171;X:-199008;Y:-200032;
|
||||
ID:171;X:-199008;Y:-200064;
|
||||
ID:171;X:-199008;Y:-200096;
|
||||
ID:171;X:-199008;Y:-200128;
|
||||
ID:171;X:-199008;Y:-200160;
|
||||
ID:171;X:-199008;Y:-200192;
|
||||
ID:170;X:-199008;Y:-200224;
|
||||
ID:20;X:-199808;Y:-200128;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,243 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:41;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:40;X:-200000;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199968;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199936;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199904;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199872;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199840;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199808;Y:-200224;W:32;H:32;
|
||||
ID:64;X:-199936;Y:-200320;W:32;H:32;
|
||||
ID:64;X:-199904;Y:-200288;W:32;H:32;
|
||||
ID:64;X:-199872;Y:-200256;W:32;H:32;
|
||||
ID:531;X:-199904;Y:-200256;W:32;H:32;
|
||||
ID:531;X:-199936;Y:-200288;W:32;H:32;
|
||||
ID:63;X:-199968;Y:-200320;W:32;H:32;
|
||||
ID:63;X:-200000;Y:-200320;W:32;H:32;
|
||||
ID:67;X:-199936;Y:-200256;W:32;H:32;
|
||||
ID:67;X:-199968;Y:-200256;W:32;H:32;
|
||||
ID:67;X:-200000;Y:-200256;W:32;H:32;
|
||||
ID:67;X:-200000;Y:-200288;W:32;H:32;
|
||||
ID:67;X:-199968;Y:-200288;W:32;H:32;
|
||||
ID:40;X:-199776;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199744;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199712;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199680;Y:-200224;W:32;H:32;
|
||||
ID:41;X:-199648;Y:-200224;W:32;H:32;
|
||||
ID:44;X:-199648;Y:-200192;W:32;H:32;
|
||||
ID:44;X:-199648;Y:-200160;W:32;H:32;
|
||||
ID:44;X:-199648;Y:-200128;W:32;H:32;
|
||||
ID:44;X:-199648;Y:-200096;W:32;H:32;
|
||||
ID:44;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:44;X:-199648;Y:-200032;W:32;H:32;
|
||||
ID:46;X:-200000;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199968;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199936;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199904;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199872;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199840;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199808;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199776;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199744;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199712;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199680;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199648;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199616;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199584;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199552;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199520;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199488;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199456;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199424;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199392;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199360;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199328;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199296;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199264;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199232;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199200;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199168;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199136;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199104;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199072;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199040;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199008;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198976;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198944;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198912;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198880;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198848;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198816;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198784;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198752;Y:-200544;W:32;H:32;
|
||||
ID:459;X:-199616;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199584;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199552;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199520;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199488;Y:-200128;W:32;H:32;
|
||||
ID:467;X:-199616;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199616;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199584;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199552;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199520;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199552;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199584;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199520;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199488;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199488;Y:-200032;W:32;H:32;
|
||||
ID:39;X:-199456;Y:-200192;W:32;H:32;
|
||||
ID:42;X:-199456;Y:-200128;W:32;H:32;
|
||||
ID:42;X:-199456;Y:-200160;W:32;H:32;
|
||||
ID:42;X:-199456;Y:-200096;W:32;H:32;
|
||||
ID:42;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:42;X:-199456;Y:-200032;W:32;H:32;
|
||||
ID:40;X:-199424;Y:-200192;W:32;H:32;
|
||||
ID:40;X:-199392;Y:-200192;W:32;H:32;
|
||||
ID:40;X:-199360;Y:-200192;W:32;H:32;
|
||||
ID:41;X:-199328;Y:-200192;W:32;H:32;
|
||||
ID:44;X:-199328;Y:-200160;W:32;H:32;
|
||||
ID:44;X:-199328;Y:-200128;W:32;H:32;
|
||||
ID:49;X:-199328;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199296;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199264;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199232;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199200;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199168;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199136;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199104;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199072;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199040;Y:-200096;W:32;H:32;
|
||||
ID:48;X:-199008;Y:-200096;W:32;H:32;
|
||||
ID:48;X:-198944;Y:-200192;W:32;H:32;
|
||||
ID:39;X:-199008;Y:-200192;W:32;H:32;
|
||||
ID:39;X:-198944;Y:-200288;W:32;H:32;
|
||||
ID:42;X:-198944;Y:-200256;W:32;H:32;
|
||||
ID:42;X:-198944;Y:-200224;W:32;H:32;
|
||||
ID:42;X:-199008;Y:-200160;W:32;H:32;
|
||||
ID:42;X:-199008;Y:-200128;W:32;H:32;
|
||||
ID:40;X:-198976;Y:-200192;W:32;H:32;
|
||||
ID:40;X:-198912;Y:-200288;W:32;H:32;
|
||||
ID:40;X:-198880;Y:-200288;W:32;H:32;
|
||||
ID:40;X:-198848;Y:-200288;W:32;H:32;
|
||||
ID:40;X:-198816;Y:-200288;W:32;H:32;
|
||||
ID:40;X:-198784;Y:-200288;W:32;H:32;
|
||||
ID:40;X:-198752;Y:-200288;W:32;H:32;
|
||||
ID:43;X:-198976;Y:-200160;W:32;H:32;
|
||||
ID:43;X:-198944;Y:-200160;W:32;H:32;
|
||||
ID:43;X:-198944;Y:-200128;W:32;H:32;
|
||||
ID:43;X:-198976;Y:-200128;W:32;H:32;
|
||||
ID:52;X:-199232;Y:-200224;W:32;H:32;
|
||||
ID:53;X:-199200;Y:-200224;W:32;H:32;
|
||||
ID:53;X:-199168;Y:-200224;W:32;H:32;
|
||||
ID:53;X:-199136;Y:-200224;W:32;H:32;
|
||||
ID:54;X:-199104;Y:-200224;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:89;X:-199680;Y:-200512;
|
||||
ID:91;X:-199680;Y:-200480;
|
||||
ID:91;X:-199680;Y:-200448;
|
||||
ID:91;X:-199680;Y:-200416;
|
||||
ID:91;X:-199680;Y:-200384;
|
||||
ID:91;X:-199680;Y:-200352;
|
||||
ID:91;X:-199680;Y:-200320;
|
||||
ID:91;X:-199680;Y:-200288;
|
||||
ID:90;X:-199680;Y:-200256;
|
||||
ID:94;X:-199808;Y:-200512;
|
||||
ID:95;X:-199808;Y:-200480;
|
||||
ID:95;X:-199808;Y:-200448;
|
||||
ID:95;X:-199808;Y:-200416;
|
||||
ID:96;X:-199808;Y:-200384;
|
||||
ID:125;X:-199968;Y:-200384;
|
||||
ID:125;X:-199744;Y:-200288;
|
||||
ID:15;X:-199776;Y:-200192;
|
||||
ID:15;X:-199904;Y:-200192;
|
||||
ID:15;X:-200032;Y:-200192;
|
||||
ID:15;X:-199776;Y:-200064;
|
||||
ID:15;X:-199904;Y:-200064;
|
||||
ID:15;X:-200032;Y:-200064;
|
||||
ID:15;X:-199424;Y:-200160;
|
||||
ID:15;X:-199424;Y:-200032;
|
||||
ID:15;X:-199296;Y:-200064;
|
||||
ID:15;X:-199168;Y:-200064;
|
||||
ID:15;X:-199040;Y:-200096;
|
||||
ID:15;X:-198912;Y:-200256;
|
||||
ID:15;X:-198784;Y:-200256;
|
||||
ID:15;X:-198784;Y:-200128;
|
||||
ID:15;X:-198912;Y:-200128;
|
||||
ID:15;X:-198848;Y:-200672;
|
||||
ID:15;X:-198976;Y:-200672;
|
||||
ID:15;X:-199104;Y:-200672;
|
||||
ID:15;X:-199232;Y:-200672;
|
||||
ID:15;X:-199360;Y:-200672;
|
||||
ID:15;X:-199488;Y:-200672;
|
||||
ID:15;X:-199616;Y:-200672;
|
||||
ID:15;X:-199744;Y:-200672;
|
||||
ID:15;X:-199872;Y:-200672;
|
||||
ID:15;X:-200000;Y:-200672;
|
||||
ID:15;X:-200000;Y:-200800;
|
||||
ID:15;X:-199872;Y:-200800;
|
||||
ID:15;X:-199744;Y:-200800;
|
||||
ID:15;X:-199616;Y:-200800;
|
||||
ID:15;X:-199488;Y:-200800;
|
||||
ID:15;X:-199360;Y:-200800;
|
||||
ID:15;X:-199232;Y:-200800;
|
||||
ID:15;X:-199104;Y:-200800;
|
||||
ID:15;X:-198976;Y:-200800;
|
||||
ID:15;X:-198848;Y:-200800;
|
||||
ID:89;X:-199392;Y:-200512;
|
||||
ID:90;X:-199392;Y:-200224;
|
||||
ID:91;X:-199392;Y:-200256;
|
||||
ID:91;X:-199392;Y:-200288;
|
||||
ID:91;X:-199392;Y:-200320;
|
||||
ID:91;X:-199392;Y:-200352;
|
||||
ID:91;X:-199392;Y:-200384;
|
||||
ID:91;X:-199392;Y:-200416;
|
||||
ID:91;X:-199392;Y:-200448;
|
||||
ID:91;X:-199392;Y:-200480;
|
||||
ID:94;X:-199552;Y:-200512;
|
||||
ID:95;X:-199552;Y:-200480;
|
||||
ID:95;X:-199552;Y:-200448;
|
||||
ID:97;X:-199552;Y:-200416;
|
||||
ID:125;X:-198784;Y:-200352;
|
||||
ID:89;X:-198848;Y:-200512;
|
||||
ID:90;X:-198848;Y:-200320;
|
||||
ID:91;X:-198848;Y:-200480;
|
||||
ID:91;X:-198848;Y:-200448;
|
||||
ID:91;X:-198848;Y:-200416;
|
||||
ID:91;X:-198848;Y:-200384;
|
||||
ID:91;X:-198848;Y:-200352;
|
||||
ID:94;X:-199168;Y:-200512;
|
||||
ID:95;X:-199168;Y:-200480;
|
||||
ID:95;X:-199168;Y:-200448;
|
||||
ID:95;X:-199168;Y:-200416;
|
||||
ID:95;X:-199168;Y:-200384;
|
||||
ID:95;X:-199168;Y:-200352;
|
||||
ID:96;X:-199168;Y:-200320;
|
||||
ID:125;X:-198976;Y:-200256;
|
||||
ID:94;X:-198976;Y:-200512;
|
||||
ID:95;X:-198976;Y:-200480;
|
||||
ID:95;X:-198976;Y:-200448;
|
||||
ID:97;X:-198976;Y:-200416;
|
||||
ID:125;X:-199072;Y:-200160;
|
||||
ID:125;X:-199264;Y:-200160;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,86 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:18;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:6;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199776;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199744;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199712;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199680;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199392;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199360;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199328;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199296;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199264;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199232;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199200;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199168;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199136;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199104;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199072;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199040;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199008;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198976;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198944;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198912;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198880;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198848;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198816;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198784;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198752;Y:-200064;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:40;X:-200000;Y:-200032;
|
||||
ID:40;X:-199872;Y:-200032;
|
||||
ID:40;X:-199744;Y:-200032;
|
||||
ID:40;X:-199616;Y:-200032;
|
||||
ID:40;X:-199488;Y:-200032;
|
||||
ID:40;X:-199360;Y:-200032;
|
||||
ID:40;X:-199232;Y:-200032;
|
||||
ID:40;X:-199104;Y:-200032;
|
||||
ID:40;X:-198976;Y:-200032;
|
||||
ID:40;X:-198848;Y:-200032;
|
||||
ID:18;X:-199936;Y:-200096;
|
||||
ID:124;X:-199680;Y:-200096;
|
||||
ID:128;X:-199680;Y:-200160;
|
||||
ID:124;X:-199744;Y:-200096;
|
||||
ID:127;X:-199744;Y:-200128;
|
||||
ID:8;X:-199616;Y:-200320;
|
||||
ID:19;X:-199360;Y:-200096;
|
||||
ID:124;X:-199168;Y:-200096;
|
||||
ID:128;X:-199168;Y:-200160;
|
||||
ID:2;X:-198880;Y:-200160;
|
||||
ID:129;X:-199136;Y:-200096;
|
||||
ID:131;X:-199040;Y:-200096;
|
||||
ID:130;X:-199104;Y:-200096;
|
||||
ID:130;X:-199072;Y:-200096;
|
||||
ID:124;X:-198944;Y:-200096;
|
||||
ID:127;X:-198944;Y:-200128;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,92 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:18;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:95;X:-198752;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198784;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198816;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198848;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198880;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198912;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198944;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198976;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199008;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199040;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199072;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199104;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199136;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199168;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199200;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199232;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199264;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199296;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199328;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199360;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199392;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199424;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199456;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199488;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199520;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199552;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199584;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199616;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199648;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199680;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199712;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199744;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199776;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199808;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199840;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199872;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199904;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199936;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199968;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-200000;Y:-200064;W:32;H:32;SL:1;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:64;X:-200000;Y:-200032;
|
||||
ID:64;X:-199904;Y:-200032;
|
||||
ID:64;X:-199808;Y:-200032;
|
||||
ID:64;X:-199712;Y:-200032;
|
||||
ID:64;X:-199616;Y:-200032;
|
||||
ID:64;X:-199520;Y:-200032;
|
||||
ID:64;X:-199424;Y:-200032;
|
||||
ID:64;X:-199328;Y:-200032;
|
||||
ID:64;X:-199232;Y:-200032;
|
||||
ID:64;X:-199136;Y:-200032;
|
||||
ID:64;X:-199040;Y:-200032;
|
||||
ID:64;X:-198944;Y:-200032;
|
||||
ID:64;X:-198848;Y:-200032;
|
||||
ID:64;X:-198752;Y:-200032;
|
||||
ID:121;X:-199936;Y:-200096;
|
||||
ID:86;X:-199904;Y:-200096;
|
||||
ID:86;X:-199872;Y:-200096;
|
||||
ID:86;X:-199840;Y:-200096;
|
||||
ID:122;X:-199808;Y:-200096;
|
||||
ID:85;X:-199712;Y:-200160;
|
||||
ID:124;X:-199712;Y:-200096;
|
||||
ID:8;X:-199600;Y:-200320;
|
||||
ID:18;X:-199360;Y:-200096;
|
||||
ID:124;X:-199136;Y:-200096;
|
||||
ID:84;X:-199136;Y:-200128;
|
||||
ID:121;X:-199072;Y:-200096;
|
||||
ID:86;X:-199040;Y:-200096;
|
||||
ID:86;X:-199008;Y:-200096;
|
||||
ID:122;X:-198976;Y:-200096;
|
||||
ID:19;X:-198880;Y:-200096;
|
||||
ID:151;X:-199680;Y:-200096;
|
||||
ID:152;X:-199200;Y:-200096;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
|
After Width: | Height: | Size: 229 B |
|
After Width: | Height: | Size: 219 B |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,94 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:34;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:95;X:-198752;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198784;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198816;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198848;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198880;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198912;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198944;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-198976;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199008;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199040;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199072;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199104;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199136;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199168;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199200;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199232;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199264;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199296;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199328;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199360;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199392;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199424;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199456;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199488;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199520;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199552;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199584;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199616;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199648;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199680;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199712;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199744;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199776;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199808;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199840;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199872;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199904;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199936;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-199968;Y:-200064;W:32;H:32;SL:1;
|
||||
ID:95;X:-200000;Y:-200064;W:32;H:32;SL:1;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:64;X:-200000;Y:-200032;
|
||||
ID:64;X:-199904;Y:-200032;
|
||||
ID:64;X:-199808;Y:-200032;
|
||||
ID:64;X:-199712;Y:-200032;
|
||||
ID:64;X:-199616;Y:-200032;
|
||||
ID:64;X:-199520;Y:-200032;
|
||||
ID:64;X:-199424;Y:-200032;
|
||||
ID:64;X:-199328;Y:-200032;
|
||||
ID:64;X:-199232;Y:-200032;
|
||||
ID:64;X:-199136;Y:-200032;
|
||||
ID:64;X:-199040;Y:-200032;
|
||||
ID:64;X:-198944;Y:-200032;
|
||||
ID:64;X:-198848;Y:-200032;
|
||||
ID:64;X:-198752;Y:-200032;
|
||||
ID:18;X:-199968;Y:-200096;
|
||||
ID:124;X:-199776;Y:-200096;
|
||||
ID:121;X:-199744;Y:-200096;
|
||||
ID:86;X:-199712;Y:-200096;
|
||||
ID:86;X:-199680;Y:-200096;
|
||||
ID:86;X:-199648;Y:-200096;
|
||||
ID:86;X:-199616;Y:-200096;
|
||||
ID:122;X:-199584;Y:-200096;
|
||||
ID:85;X:-199776;Y:-200160;
|
||||
ID:2;X:-199488;Y:-200160;
|
||||
ID:20;X:-199296;Y:-200096;
|
||||
ID:151;X:-199168;Y:-200096;
|
||||
ID:121;X:-199072;Y:-200096;
|
||||
ID:86;X:-199040;Y:-200096;
|
||||
ID:86;X:-199008;Y:-200096;
|
||||
ID:122;X:-198976;Y:-200096;
|
||||
ID:85;X:-198944;Y:-200160;
|
||||
ID:124;X:-198944;Y:-200096;
|
||||
ID:152;X:-198848;Y:-200096;
|
||||
ID:152;X:-198816;Y:-200096;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
|
After Width: | Height: | Size: 229 B |
|
After Width: | Height: | Size: 219 B |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,198 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:30;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:507;X:-199872;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199840;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199808;Y:-200160;W:32;H:32;
|
||||
ID:508;X:-199776;Y:-200160;W:32;H:32;
|
||||
ID:508;X:-199648;Y:-200256;W:32;H:32;
|
||||
ID:506;X:-199712;Y:-200256;W:32;H:32;
|
||||
ID:507;X:-199680;Y:-200256;W:32;H:32;
|
||||
ID:506;X:-199584;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199552;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199520;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199488;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199456;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199424;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199392;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199360;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199328;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199296;Y:-200160;W:32;H:32;
|
||||
ID:508;X:-199264;Y:-200160;W:32;H:32;
|
||||
ID:508;X:-199296;Y:-200288;W:32;H:32;
|
||||
ID:506;X:-199360;Y:-200288;W:32;H:32;
|
||||
ID:507;X:-199328;Y:-200288;W:32;H:32;
|
||||
ID:506;X:-199136;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199104;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199072;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199040;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199008;Y:-200224;W:32;H:32;
|
||||
ID:508;X:-198976;Y:-200224;W:32;H:32;
|
||||
ID:506;X:-198912;Y:-200160;W:32;H:32;
|
||||
ID:506;X:-198816;Y:-200288;W:32;H:32;
|
||||
ID:507;X:-198752;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-198784;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-198816;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-198848;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-198880;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-198784;Y:-200288;W:32;H:32;
|
||||
ID:507;X:-198752;Y:-200288;W:32;H:32;
|
||||
ID:507;X:-199904;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199968;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-200000;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199936;Y:-200160;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:81;X:-199808;Y:-200128;
|
||||
ID:81;X:-199808;Y:-200096;
|
||||
ID:81;X:-199808;Y:-200064;
|
||||
ID:81;X:-199808;Y:-200032;
|
||||
ID:81;X:-199296;Y:-200128;
|
||||
ID:81;X:-199296;Y:-200096;
|
||||
ID:81;X:-199296;Y:-200064;
|
||||
ID:81;X:-199296;Y:-200032;
|
||||
ID:81;X:-199008;Y:-200192;
|
||||
ID:81;X:-199008;Y:-200160;
|
||||
ID:81;X:-199008;Y:-200128;
|
||||
ID:81;X:-199008;Y:-200096;
|
||||
ID:81;X:-199008;Y:-200064;
|
||||
ID:81;X:-199008;Y:-200032;
|
||||
ID:67;X:-199104;Y:-200192;
|
||||
ID:67;X:-199104;Y:-200160;
|
||||
ID:67;X:-199104;Y:-200128;
|
||||
ID:67;X:-199104;Y:-200096;
|
||||
ID:67;X:-199104;Y:-200064;
|
||||
ID:67;X:-199104;Y:-200032;
|
||||
ID:67;X:-199552;Y:-200128;
|
||||
ID:67;X:-199552;Y:-200096;
|
||||
ID:67;X:-199552;Y:-200064;
|
||||
ID:67;X:-199552;Y:-200032;
|
||||
ID:67;X:-198880;Y:-200128;
|
||||
ID:67;X:-198880;Y:-200096;
|
||||
ID:67;X:-198880;Y:-200064;
|
||||
ID:67;X:-198880;Y:-200032;
|
||||
ID:67;X:-198784;Y:-200256;
|
||||
ID:67;X:-198784;Y:-200224;
|
||||
ID:67;X:-198784;Y:-200192;
|
||||
ID:37;X:-199680;Y:-200224;
|
||||
ID:37;X:-199680;Y:-200192;
|
||||
ID:37;X:-199680;Y:-200160;
|
||||
ID:37;X:-199680;Y:-200096;
|
||||
ID:37;X:-199680;Y:-200128;
|
||||
ID:37;X:-199680;Y:-200064;
|
||||
ID:37;X:-199680;Y:-200032;
|
||||
ID:37;X:-199328;Y:-200192;
|
||||
ID:37;X:-199328;Y:-200224;
|
||||
ID:37;X:-199328;Y:-200256;
|
||||
ID:80;X:-200000;Y:-200128;
|
||||
ID:80;X:-200000;Y:-200096;
|
||||
ID:80;X:-200000;Y:-200064;
|
||||
ID:80;X:-200000;Y:-200032;
|
||||
ID:80;X:-199968;Y:-200128;
|
||||
ID:80;X:-199968;Y:-200096;
|
||||
ID:80;X:-199968;Y:-200064;
|
||||
ID:80;X:-199968;Y:-200032;
|
||||
ID:80;X:-199936;Y:-200128;
|
||||
ID:80;X:-199936;Y:-200096;
|
||||
ID:80;X:-199936;Y:-200064;
|
||||
ID:80;X:-199936;Y:-200032;
|
||||
ID:80;X:-199904;Y:-200128;
|
||||
ID:80;X:-199904;Y:-200096;
|
||||
ID:80;X:-199904;Y:-200064;
|
||||
ID:80;X:-199904;Y:-200032;
|
||||
ID:80;X:-199872;Y:-200128;
|
||||
ID:80;X:-199872;Y:-200096;
|
||||
ID:80;X:-199872;Y:-200064;
|
||||
ID:80;X:-199872;Y:-200032;
|
||||
ID:80;X:-199840;Y:-200128;
|
||||
ID:80;X:-199840;Y:-200096;
|
||||
ID:80;X:-199840;Y:-200064;
|
||||
ID:80;X:-199840;Y:-200032;
|
||||
ID:80;X:-199520;Y:-200128;
|
||||
ID:80;X:-199520;Y:-200096;
|
||||
ID:80;X:-199520;Y:-200064;
|
||||
ID:80;X:-199520;Y:-200032;
|
||||
ID:80;X:-199488;Y:-200128;
|
||||
ID:80;X:-199488;Y:-200096;
|
||||
ID:80;X:-199488;Y:-200064;
|
||||
ID:80;X:-199488;Y:-200032;
|
||||
ID:80;X:-199456;Y:-200128;
|
||||
ID:80;X:-199456;Y:-200096;
|
||||
ID:80;X:-199456;Y:-200064;
|
||||
ID:80;X:-199456;Y:-200032;
|
||||
ID:80;X:-199424;Y:-200128;
|
||||
ID:80;X:-199424;Y:-200096;
|
||||
ID:80;X:-199424;Y:-200064;
|
||||
ID:80;X:-199424;Y:-200032;
|
||||
ID:80;X:-199392;Y:-200128;
|
||||
ID:80;X:-199392;Y:-200096;
|
||||
ID:80;X:-199392;Y:-200064;
|
||||
ID:80;X:-199392;Y:-200032;
|
||||
ID:80;X:-199360;Y:-200128;
|
||||
ID:80;X:-199360;Y:-200096;
|
||||
ID:80;X:-199360;Y:-200064;
|
||||
ID:80;X:-199360;Y:-200032;
|
||||
ID:80;X:-199328;Y:-200128;
|
||||
ID:80;X:-199328;Y:-200096;
|
||||
ID:80;X:-199328;Y:-200064;
|
||||
ID:80;X:-199328;Y:-200032;
|
||||
ID:80;X:-199072;Y:-200192;
|
||||
ID:80;X:-199072;Y:-200160;
|
||||
ID:80;X:-199072;Y:-200128;
|
||||
ID:80;X:-199072;Y:-200096;
|
||||
ID:80;X:-199072;Y:-200064;
|
||||
ID:80;X:-199072;Y:-200032;
|
||||
ID:80;X:-199040;Y:-200192;
|
||||
ID:80;X:-199040;Y:-200160;
|
||||
ID:80;X:-199040;Y:-200128;
|
||||
ID:80;X:-199040;Y:-200096;
|
||||
ID:80;X:-199040;Y:-200064;
|
||||
ID:80;X:-199040;Y:-200032;
|
||||
ID:80;X:-198752;Y:-200256;
|
||||
ID:80;X:-198752;Y:-200224;
|
||||
ID:80;X:-198752;Y:-200192;
|
||||
ID:80;X:-198848;Y:-200128;
|
||||
ID:80;X:-198848;Y:-200096;
|
||||
ID:80;X:-198848;Y:-200064;
|
||||
ID:80;X:-198848;Y:-200032;
|
||||
ID:80;X:-198816;Y:-200128;
|
||||
ID:80;X:-198816;Y:-200096;
|
||||
ID:80;X:-198816;Y:-200064;
|
||||
ID:80;X:-198816;Y:-200032;
|
||||
ID:80;X:-198784;Y:-200128;
|
||||
ID:80;X:-198784;Y:-200096;
|
||||
ID:80;X:-198784;Y:-200064;
|
||||
ID:80;X:-198784;Y:-200032;
|
||||
ID:80;X:-198752;Y:-200128;
|
||||
ID:80;X:-198752;Y:-200096;
|
||||
ID:80;X:-198752;Y:-200064;
|
||||
ID:80;X:-198752;Y:-200032;
|
||||
ID:2;X:-199936;Y:-200256;
|
||||
ID:124;X:-199680;Y:-200288;
|
||||
ID:128;X:-199680;Y:-200352;
|
||||
ID:18;X:-199520;Y:-200192;
|
||||
ID:124;X:-199296;Y:-200192;
|
||||
ID:127;X:-199296;Y:-200224;
|
||||
ID:196;X:-199104;Y:-200384;
|
||||
ID:20;X:-199008;Y:-200256;
|
||||
ID:19;X:-198880;Y:-200192;
|
||||
ID:124;X:-198784;Y:-200320;
|
||||
ID:127;X:-198784;Y:-200352;
|
||||
ID:131;X:-199296;Y:-200320;
|
||||
ID:129;X:-199360;Y:-200320;
|
||||
ID:130;X:-199328;Y:-200320;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,96 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:51;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:69;X:-200000;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199968;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199936;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199904;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199872;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199840;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199808;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199776;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199744;Y:-200160;W:32;H:32;
|
||||
ID:69;X:-199712;Y:-200160;W:32;H:32;
|
||||
ID:1;X:-199680;Y:-200160;W:32;H:32;
|
||||
ID:1;X:-199680;Y:-200128;W:32;H:32;
|
||||
ID:1;X:-199680;Y:-200096;W:32;H:32;
|
||||
ID:1;X:-199680;Y:-200064;W:32;H:32;
|
||||
ID:1;X:-199680;Y:-200032;W:32;H:32;
|
||||
ID:1;X:-199488;Y:-200160;W:32;H:32;
|
||||
ID:1;X:-199488;Y:-200128;W:32;H:32;
|
||||
ID:1;X:-199488;Y:-200096;W:32;H:32;
|
||||
ID:1;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:1;X:-199488;Y:-200032;W:32;H:32;
|
||||
ID:1;X:-199488;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199456;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199424;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199392;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199360;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199328;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199296;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199264;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199232;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199200;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199168;Y:-200192;W:32;H:32;
|
||||
ID:69;X:-199136;Y:-200192;W:32;H:32;
|
||||
ID:1;X:-199104;Y:-200192;W:32;H:32;
|
||||
ID:1;X:-199104;Y:-200160;W:32;H:32;
|
||||
ID:1;X:-199104;Y:-200128;W:32;H:32;
|
||||
ID:1;X:-199104;Y:-200096;W:32;H:32;
|
||||
ID:1;X:-199104;Y:-200064;W:32;H:32;
|
||||
ID:1;X:-199104;Y:-200032;W:32;H:32;
|
||||
ID:1;X:-198976;Y:-200096;W:32;H:32;
|
||||
ID:1;X:-198976;Y:-200064;W:32;H:32;
|
||||
ID:1;X:-198976;Y:-200032;W:32;H:32;
|
||||
ID:69;X:-198944;Y:-200096;W:32;H:32;
|
||||
ID:69;X:-198912;Y:-200096;W:32;H:32;
|
||||
ID:69;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:69;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:69;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:69;X:-198784;Y:-200096;W:32;H:32;
|
||||
ID:69;X:-198752;Y:-200096;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:24;X:-199744;Y:-200192;
|
||||
ID:24;X:-199776;Y:-200192;
|
||||
ID:24;X:-199808;Y:-200192;
|
||||
ID:24;X:-199840;Y:-200192;
|
||||
ID:24;X:-199872;Y:-200192;
|
||||
ID:24;X:-199904;Y:-200192;
|
||||
ID:24;X:-199936;Y:-200192;
|
||||
ID:24;X:-199968;Y:-200192;
|
||||
ID:24;X:-200000;Y:-200192;
|
||||
ID:24;X:-199424;Y:-200224;
|
||||
ID:24;X:-199392;Y:-200224;
|
||||
ID:24;X:-199360;Y:-200224;
|
||||
ID:24;X:-199328;Y:-200224;
|
||||
ID:24;X:-199296;Y:-200224;
|
||||
ID:24;X:-199264;Y:-200224;
|
||||
ID:24;X:-199232;Y:-200224;
|
||||
ID:24;X:-199200;Y:-200224;
|
||||
ID:24;X:-199168;Y:-200224;
|
||||
ID:24;X:-198912;Y:-200128;
|
||||
ID:24;X:-198880;Y:-200128;
|
||||
ID:24;X:-198848;Y:-200128;
|
||||
ID:24;X:-198816;Y:-200128;
|
||||
ID:24;X:-198784;Y:-200128;
|
||||
ID:24;X:-198752;Y:-200128;
|
||||
ID:25;X:-199712;Y:-200192;
|
||||
ID:25;X:-199136;Y:-200224;
|
||||
ID:23;X:-198944;Y:-200128;
|
||||
ID:23;X:-199456;Y:-200224;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
|
After Width: | Height: | Size: 33 KiB |
@@ -0,0 +1,201 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:55;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:507;X:-200000;Y:-200128;W:32;H:32;
|
||||
ID:507;X:-199968;Y:-200128;W:32;H:32;
|
||||
ID:507;X:-199936;Y:-200128;W:32;H:32;
|
||||
ID:507;X:-199904;Y:-200128;W:32;H:32;
|
||||
ID:507;X:-199872;Y:-200128;W:32;H:32;
|
||||
ID:507;X:-199840;Y:-200128;W:32;H:32;
|
||||
ID:507;X:-199808;Y:-200128;W:32;H:32;
|
||||
ID:507;X:-199776;Y:-200128;W:32;H:32;
|
||||
ID:507;X:-199744;Y:-200128;W:32;H:32;
|
||||
ID:508;X:-199712;Y:-200128;W:32;H:32;
|
||||
ID:506;X:-199648;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199616;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199584;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199552;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199488;Y:-200224;W:32;H:32;
|
||||
ID:508;X:-199456;Y:-200224;W:32;H:32;
|
||||
ID:506;X:-199552;Y:-200352;W:32;H:32;
|
||||
ID:508;X:-199488;Y:-200352;W:32;H:32;
|
||||
ID:507;X:-199520;Y:-200224;W:32;H:32;
|
||||
ID:507;X:-199520;Y:-200352;W:32;H:32;
|
||||
ID:506;X:-199360;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199328;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199296;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199264;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199232;Y:-200160;W:32;H:32;
|
||||
ID:507;X:-199200;Y:-200160;W:32;H:32;
|
||||
ID:508;X:-199168;Y:-200160;W:32;H:32;
|
||||
ID:506;X:-199104;Y:-200096;W:32;H:32;
|
||||
ID:506;X:-199008;Y:-200256;W:32;H:32;
|
||||
ID:507;X:-199072;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-199040;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-199008;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198976;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198944;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198912;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198784;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198752;Y:-200096;W:32;H:32;
|
||||
ID:507;X:-198976;Y:-200256;W:32;H:32;
|
||||
ID:507;X:-198944;Y:-200256;W:32;H:32;
|
||||
ID:508;X:-198912;Y:-200256;W:32;H:32;
|
||||
ID:506;X:-198848;Y:-200352;W:32;H:32;
|
||||
ID:508;X:-198784;Y:-200352;W:32;H:32;
|
||||
ID:507;X:-198816;Y:-200352;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:81;X:-199744;Y:-200096;
|
||||
ID:81;X:-199744;Y:-200064;
|
||||
ID:81;X:-199744;Y:-200032;
|
||||
ID:81;X:-199488;Y:-200192;
|
||||
ID:81;X:-199488;Y:-200160;
|
||||
ID:81;X:-199488;Y:-200128;
|
||||
ID:81;X:-199488;Y:-200096;
|
||||
ID:81;X:-199488;Y:-200064;
|
||||
ID:81;X:-199488;Y:-200032;
|
||||
ID:81;X:-199200;Y:-200128;
|
||||
ID:81;X:-199200;Y:-200096;
|
||||
ID:81;X:-199200;Y:-200064;
|
||||
ID:81;X:-199200;Y:-200032;
|
||||
ID:81;X:-198944;Y:-200224;
|
||||
ID:81;X:-198944;Y:-200192;
|
||||
ID:81;X:-198944;Y:-200160;
|
||||
ID:81;X:-198944;Y:-200128;
|
||||
ID:67;X:-198976;Y:-200224;
|
||||
ID:67;X:-198976;Y:-200192;
|
||||
ID:67;X:-198976;Y:-200160;
|
||||
ID:67;X:-198976;Y:-200128;
|
||||
ID:67;X:-199328;Y:-200128;
|
||||
ID:67;X:-199328;Y:-200096;
|
||||
ID:67;X:-199328;Y:-200064;
|
||||
ID:67;X:-199328;Y:-200032;
|
||||
ID:67;X:-199072;Y:-200064;
|
||||
ID:67;X:-199072;Y:-200032;
|
||||
ID:67;X:-199616;Y:-200192;
|
||||
ID:67;X:-199616;Y:-200160;
|
||||
ID:67;X:-199616;Y:-200128;
|
||||
ID:67;X:-199616;Y:-200096;
|
||||
ID:67;X:-199616;Y:-200064;
|
||||
ID:67;X:-199616;Y:-200032;
|
||||
ID:37;X:-199520;Y:-200320;
|
||||
ID:37;X:-199520;Y:-200288;
|
||||
ID:37;X:-199520;Y:-200256;
|
||||
ID:80;X:-200000;Y:-200096;
|
||||
ID:80;X:-200000;Y:-200064;
|
||||
ID:80;X:-200000;Y:-200032;
|
||||
ID:80;X:-199968;Y:-200096;
|
||||
ID:80;X:-199968;Y:-200064;
|
||||
ID:80;X:-199968;Y:-200032;
|
||||
ID:80;X:-199936;Y:-200096;
|
||||
ID:80;X:-199936;Y:-200064;
|
||||
ID:80;X:-199936;Y:-200032;
|
||||
ID:80;X:-199904;Y:-200096;
|
||||
ID:80;X:-199904;Y:-200064;
|
||||
ID:80;X:-199904;Y:-200032;
|
||||
ID:80;X:-199872;Y:-200096;
|
||||
ID:80;X:-199872;Y:-200064;
|
||||
ID:80;X:-199872;Y:-200032;
|
||||
ID:80;X:-199840;Y:-200096;
|
||||
ID:80;X:-199840;Y:-200064;
|
||||
ID:80;X:-199840;Y:-200032;
|
||||
ID:80;X:-199808;Y:-200096;
|
||||
ID:80;X:-199808;Y:-200064;
|
||||
ID:80;X:-199808;Y:-200032;
|
||||
ID:80;X:-199776;Y:-200096;
|
||||
ID:80;X:-199776;Y:-200064;
|
||||
ID:80;X:-199776;Y:-200032;
|
||||
ID:80;X:-199584;Y:-200192;
|
||||
ID:80;X:-199584;Y:-200160;
|
||||
ID:80;X:-199584;Y:-200128;
|
||||
ID:80;X:-199584;Y:-200096;
|
||||
ID:80;X:-199584;Y:-200064;
|
||||
ID:80;X:-199584;Y:-200032;
|
||||
ID:80;X:-199552;Y:-200192;
|
||||
ID:80;X:-199552;Y:-200160;
|
||||
ID:80;X:-199552;Y:-200128;
|
||||
ID:80;X:-199552;Y:-200096;
|
||||
ID:80;X:-199552;Y:-200064;
|
||||
ID:80;X:-199552;Y:-200032;
|
||||
ID:80;X:-199520;Y:-200192;
|
||||
ID:80;X:-199520;Y:-200160;
|
||||
ID:80;X:-199520;Y:-200128;
|
||||
ID:80;X:-199520;Y:-200096;
|
||||
ID:80;X:-199520;Y:-200064;
|
||||
ID:80;X:-199520;Y:-200032;
|
||||
ID:80;X:-199296;Y:-200128;
|
||||
ID:80;X:-199296;Y:-200096;
|
||||
ID:80;X:-199296;Y:-200064;
|
||||
ID:80;X:-199296;Y:-200032;
|
||||
ID:80;X:-199264;Y:-200128;
|
||||
ID:80;X:-199264;Y:-200096;
|
||||
ID:80;X:-199264;Y:-200064;
|
||||
ID:80;X:-199264;Y:-200032;
|
||||
ID:80;X:-199232;Y:-200128;
|
||||
ID:80;X:-199232;Y:-200096;
|
||||
ID:80;X:-199232;Y:-200064;
|
||||
ID:80;X:-199232;Y:-200032;
|
||||
ID:80;X:-199040;Y:-200064;
|
||||
ID:80;X:-199040;Y:-200032;
|
||||
ID:80;X:-199008;Y:-200064;
|
||||
ID:80;X:-199008;Y:-200032;
|
||||
ID:80;X:-198976;Y:-200064;
|
||||
ID:80;X:-198976;Y:-200032;
|
||||
ID:80;X:-198944;Y:-200064;
|
||||
ID:80;X:-198944;Y:-200032;
|
||||
ID:80;X:-198912;Y:-200064;
|
||||
ID:80;X:-198912;Y:-200032;
|
||||
ID:80;X:-198880;Y:-200064;
|
||||
ID:80;X:-198880;Y:-200032;
|
||||
ID:80;X:-198848;Y:-200064;
|
||||
ID:80;X:-198848;Y:-200032;
|
||||
ID:80;X:-198816;Y:-200064;
|
||||
ID:80;X:-198816;Y:-200032;
|
||||
ID:80;X:-198784;Y:-200064;
|
||||
ID:80;X:-198784;Y:-200032;
|
||||
ID:80;X:-198752;Y:-200064;
|
||||
ID:80;X:-198752;Y:-200032;
|
||||
ID:37;X:-198816;Y:-200320;
|
||||
ID:37;X:-198816;Y:-200288;
|
||||
ID:37;X:-198816;Y:-200256;
|
||||
ID:37;X:-198816;Y:-200224;
|
||||
ID:37;X:-198816;Y:-200192;
|
||||
ID:37;X:-198816;Y:-200160;
|
||||
ID:37;X:-198816;Y:-200128;
|
||||
ID:2;X:-199840;Y:-200224;
|
||||
ID:18;X:-200000;Y:-200160;
|
||||
ID:124;X:-199328;Y:-200192;
|
||||
ID:124;X:-199584;Y:-200256;
|
||||
ID:10;X:-199552;Y:-200416;
|
||||
ID:128;X:-199328;Y:-200256;
|
||||
ID:127;X:-199584;Y:-200288;
|
||||
ID:129;X:-199488;Y:-200256;
|
||||
ID:131;X:-199456;Y:-200256;
|
||||
ID:131;X:-199168;Y:-200192;
|
||||
ID:129;X:-199264;Y:-200192;
|
||||
ID:130;X:-199200;Y:-200192;
|
||||
ID:130;X:-199232;Y:-200192;
|
||||
ID:19;X:-198912;Y:-200128;
|
||||
ID:20;X:-198976;Y:-200288;
|
||||
ID:124;X:-198816;Y:-200384;
|
||||
ID:128;X:-198816;Y:-200448;
|
||||
ID:10;X:-199088;Y:-200160;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,95 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:45;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:6;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199776;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199744;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199712;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199680;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199392;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199360;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199328;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199296;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199264;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199232;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199200;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199168;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199136;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199104;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199072;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199040;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-199008;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198976;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198944;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198912;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198880;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198848;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198816;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198784;Y:-200064;W:32;H:32;
|
||||
ID:6;X:-198752;Y:-200064;W:32;H:32;
|
||||
ID:112;X:-199808;Y:-200128;W:32;H:32;
|
||||
ID:111;X:-199808;Y:-200096;W:32;H:32;
|
||||
ID:112;X:-199488;Y:-200096;W:32;H:32;
|
||||
ID:112;X:-199264;Y:-200128;W:32;H:32;
|
||||
ID:1;X:-199040;Y:-200096;W:32;H:32;
|
||||
ID:1;X:-199008;Y:-200096;W:32;H:32;
|
||||
ID:1;X:-198976;Y:-200096;W:32;H:32;
|
||||
ID:1;X:-198976;Y:-200128;W:32;H:32;
|
||||
ID:1;X:-198976;Y:-200160;W:32;H:32;
|
||||
ID:1;X:-199008;Y:-200128;W:32;H:32;
|
||||
ID:111;X:-199264;Y:-200096;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:40;X:-200000;Y:-200032;
|
||||
ID:40;X:-199872;Y:-200032;
|
||||
ID:40;X:-199744;Y:-200032;
|
||||
ID:40;X:-199616;Y:-200032;
|
||||
ID:40;X:-199488;Y:-200032;
|
||||
ID:40;X:-199360;Y:-200032;
|
||||
ID:40;X:-199232;Y:-200032;
|
||||
ID:40;X:-199104;Y:-200032;
|
||||
ID:40;X:-198976;Y:-200032;
|
||||
ID:40;X:-198848;Y:-200032;
|
||||
ID:18;X:-198880;Y:-200096;
|
||||
ID:6;X:-199776;Y:-200192;
|
||||
ID:18;X:-199968;Y:-200096;
|
||||
ID:18;X:-199424;Y:-200096;
|
||||
ID:129;X:-199200;Y:-200096;
|
||||
ID:131;X:-199136;Y:-200096;
|
||||
ID:130;X:-199168;Y:-200096;
|
||||
ID:124;X:-199072;Y:-200096;
|
||||
ID:128;X:-199072;Y:-200160;
|
||||
BGO_END
|
||||
NPC
|
||||
ID:21;X:-199808;Y:-200160;D:-1;
|
||||
ID:21;X:-199488;Y:-200128;D:-1;
|
||||
ID:21;X:-199264;Y:-200160;D:-1;
|
||||
NPC_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,240 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:54;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:238;X:-200000;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199968;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199936;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199904;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199872;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199840;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199808;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199776;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199744;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199712;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199680;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199648;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199616;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199584;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199552;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199520;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199488;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199456;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199424;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199392;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199360;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199328;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199296;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199264;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199232;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199200;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199168;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199136;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199104;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199072;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199040;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-199008;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-198976;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-198944;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-198912;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-198880;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-198848;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-198816;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-198784;Y:-200544;W:32;H:32;
|
||||
ID:238;X:-198752;Y:-200544;W:32;H:32;
|
||||
ID:232;X:-200000;Y:-200224;W:32;H:32;
|
||||
ID:232;X:-199968;Y:-200224;W:32;H:32;
|
||||
ID:232;X:-199936;Y:-200224;W:32;H:32;
|
||||
ID:232;X:-199904;Y:-200224;W:32;H:32;
|
||||
ID:232;X:-199872;Y:-200224;W:32;H:32;
|
||||
ID:233;X:-199840;Y:-200224;W:32;H:32;
|
||||
ID:236;X:-199840;Y:-200192;W:32;H:32;
|
||||
ID:236;X:-199840;Y:-200160;W:32;H:32;
|
||||
ID:236;X:-199840;Y:-200128;W:32;H:32;
|
||||
ID:236;X:-199840;Y:-200096;W:32;H:32;
|
||||
ID:236;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:236;X:-199840;Y:-200032;W:32;H:32;
|
||||
ID:232;X:-199808;Y:-200128;W:32;H:32;
|
||||
ID:232;X:-199776;Y:-200128;W:32;H:32;
|
||||
ID:232;X:-199744;Y:-200128;W:32;H:32;
|
||||
ID:232;X:-199712;Y:-200128;W:32;H:32;
|
||||
ID:232;X:-199680;Y:-200128;W:32;H:32;
|
||||
ID:233;X:-199648;Y:-200128;W:32;H:32;
|
||||
ID:236;X:-199648;Y:-200096;W:32;H:32;
|
||||
ID:236;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:236;X:-199648;Y:-200032;W:32;H:32;
|
||||
ID:121;X:-199552;Y:-200192;W:32;H:32;
|
||||
ID:122;X:-199520;Y:-200192;W:32;H:32;
|
||||
ID:122;X:-199488;Y:-200192;W:32;H:32;
|
||||
ID:122;X:-199456;Y:-200192;W:32;H:32;
|
||||
ID:122;X:-199392;Y:-200192;W:32;H:32;
|
||||
ID:122;X:-199360;Y:-200192;W:32;H:32;
|
||||
ID:122;X:-199328;Y:-200192;W:32;H:32;
|
||||
ID:123;X:-199296;Y:-200192;W:32;H:32;
|
||||
ID:372;X:-199424;Y:-200192;W:32;H:32;
|
||||
ID:231;X:-199200;Y:-200224;W:32;H:32;
|
||||
ID:234;X:-199200;Y:-200192;W:32;H:32;
|
||||
ID:234;X:-199200;Y:-200160;W:32;H:32;
|
||||
ID:234;X:-199200;Y:-200128;W:32;H:32;
|
||||
ID:234;X:-199200;Y:-200096;W:32;H:32;
|
||||
ID:234;X:-199200;Y:-200064;W:32;H:32;
|
||||
ID:234;X:-199200;Y:-200032;W:32;H:32;
|
||||
ID:232;X:-199168;Y:-200224;W:32;H:32;
|
||||
ID:232;X:-199136;Y:-200224;W:32;H:32;
|
||||
ID:232;X:-199104;Y:-200224;W:32;H:32;
|
||||
ID:232;X:-199072;Y:-200224;W:32;H:32;
|
||||
ID:231;X:-199040;Y:-200288;W:32;H:32;
|
||||
ID:234;X:-199040;Y:-200256;W:32;H:32;
|
||||
ID:234;X:-199040;Y:-200224;W:32;H:32;
|
||||
ID:234;X:-199040;Y:-200192;W:32;H:32;
|
||||
ID:234;X:-199040;Y:-200160;W:32;H:32;
|
||||
ID:234;X:-199040;Y:-200128;W:32;H:32;
|
||||
ID:234;X:-199040;Y:-200096;W:32;H:32;
|
||||
ID:234;X:-199040;Y:-200064;W:32;H:32;
|
||||
ID:234;X:-199040;Y:-200032;W:32;H:32;
|
||||
ID:233;X:-198880;Y:-200288;W:32;H:32;
|
||||
ID:232;X:-198848;Y:-200160;W:32;H:32;
|
||||
ID:232;X:-198816;Y:-200160;W:32;H:32;
|
||||
ID:232;X:-198784;Y:-200160;W:32;H:32;
|
||||
ID:232;X:-198752;Y:-200160;W:32;H:32;
|
||||
ID:236;X:-198880;Y:-200256;W:32;H:32;
|
||||
ID:236;X:-198880;Y:-200224;W:32;H:32;
|
||||
ID:236;X:-198880;Y:-200192;W:32;H:32;
|
||||
ID:236;X:-198880;Y:-200160;W:32;H:32;
|
||||
ID:236;X:-198880;Y:-200128;W:32;H:32;
|
||||
ID:236;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:236;X:-198880;Y:-200064;W:32;H:32;
|
||||
ID:236;X:-198880;Y:-200032;W:32;H:32;
|
||||
ID:232;X:-198912;Y:-200288;W:32;H:32;
|
||||
ID:232;X:-198944;Y:-200288;W:32;H:32;
|
||||
ID:232;X:-198976;Y:-200288;W:32;H:32;
|
||||
ID:232;X:-199008;Y:-200288;W:32;H:32;
|
||||
ID:59;X:-198848;Y:-200224;W:32;H:32;
|
||||
ID:59;X:-198848;Y:-200192;W:32;H:32;
|
||||
ID:59;X:-198816;Y:-200192;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:14;X:-200000;Y:-200608;
|
||||
ID:14;X:-199936;Y:-200608;
|
||||
ID:14;X:-199872;Y:-200608;
|
||||
ID:14;X:-199808;Y:-200608;
|
||||
ID:14;X:-199744;Y:-200608;
|
||||
ID:14;X:-199680;Y:-200608;
|
||||
ID:14;X:-199616;Y:-200608;
|
||||
ID:14;X:-199552;Y:-200608;
|
||||
ID:14;X:-199488;Y:-200608;
|
||||
ID:14;X:-199424;Y:-200608;
|
||||
ID:14;X:-199360;Y:-200608;
|
||||
ID:14;X:-199296;Y:-200608;
|
||||
ID:14;X:-199232;Y:-200608;
|
||||
ID:14;X:-199168;Y:-200608;
|
||||
ID:14;X:-199104;Y:-200608;
|
||||
ID:14;X:-199040;Y:-200608;
|
||||
ID:14;X:-198976;Y:-200608;
|
||||
ID:14;X:-198912;Y:-200608;
|
||||
ID:14;X:-198848;Y:-200608;
|
||||
ID:14;X:-198784;Y:-200608;
|
||||
ID:14;X:-198784;Y:-200672;
|
||||
ID:14;X:-198784;Y:-200736;
|
||||
ID:14;X:-200000;Y:-200736;
|
||||
ID:14;X:-200000;Y:-200672;
|
||||
ID:14;X:-199936;Y:-200736;
|
||||
ID:14;X:-199936;Y:-200672;
|
||||
ID:14;X:-199872;Y:-200736;
|
||||
ID:14;X:-199872;Y:-200672;
|
||||
ID:14;X:-199808;Y:-200736;
|
||||
ID:14;X:-199808;Y:-200672;
|
||||
ID:14;X:-199744;Y:-200736;
|
||||
ID:14;X:-199744;Y:-200672;
|
||||
ID:14;X:-199680;Y:-200736;
|
||||
ID:14;X:-199680;Y:-200672;
|
||||
ID:14;X:-199616;Y:-200736;
|
||||
ID:14;X:-199616;Y:-200672;
|
||||
ID:14;X:-199552;Y:-200736;
|
||||
ID:14;X:-199552;Y:-200672;
|
||||
ID:14;X:-199488;Y:-200736;
|
||||
ID:14;X:-199488;Y:-200672;
|
||||
ID:14;X:-199424;Y:-200736;
|
||||
ID:14;X:-199424;Y:-200672;
|
||||
ID:14;X:-199360;Y:-200736;
|
||||
ID:14;X:-199360;Y:-200672;
|
||||
ID:14;X:-199296;Y:-200736;
|
||||
ID:14;X:-199296;Y:-200672;
|
||||
ID:14;X:-199232;Y:-200736;
|
||||
ID:14;X:-199232;Y:-200672;
|
||||
ID:14;X:-199168;Y:-200736;
|
||||
ID:14;X:-199168;Y:-200672;
|
||||
ID:14;X:-199104;Y:-200736;
|
||||
ID:14;X:-199104;Y:-200672;
|
||||
ID:14;X:-199040;Y:-200736;
|
||||
ID:14;X:-199040;Y:-200672;
|
||||
ID:14;X:-198976;Y:-200736;
|
||||
ID:14;X:-198976;Y:-200672;
|
||||
ID:14;X:-198912;Y:-200736;
|
||||
ID:14;X:-198912;Y:-200672;
|
||||
ID:14;X:-198848;Y:-200736;
|
||||
ID:14;X:-198848;Y:-200672;
|
||||
ID:14;X:-199712;Y:-200096;
|
||||
ID:14;X:-199776;Y:-200096;
|
||||
ID:14;X:-199840;Y:-200096;
|
||||
ID:14;X:-199712;Y:-200032;
|
||||
ID:14;X:-199776;Y:-200032;
|
||||
ID:14;X:-199840;Y:-200032;
|
||||
ID:14;X:-199904;Y:-200192;
|
||||
ID:14;X:-199968;Y:-200192;
|
||||
ID:14;X:-200032;Y:-200192;
|
||||
ID:14;X:-199904;Y:-200128;
|
||||
ID:14;X:-199968;Y:-200128;
|
||||
ID:14;X:-200032;Y:-200128;
|
||||
ID:14;X:-199904;Y:-200064;
|
||||
ID:14;X:-199968;Y:-200064;
|
||||
ID:14;X:-200032;Y:-200064;
|
||||
ID:14;X:-199168;Y:-200192;
|
||||
ID:14;X:-199104;Y:-200192;
|
||||
ID:14;X:-199168;Y:-200128;
|
||||
ID:14;X:-199104;Y:-200128;
|
||||
ID:14;X:-199168;Y:-200064;
|
||||
ID:14;X:-199104;Y:-200064;
|
||||
ID:14;X:-199008;Y:-200192;
|
||||
ID:14;X:-199008;Y:-200256;
|
||||
ID:14;X:-198944;Y:-200256;
|
||||
ID:14;X:-198944;Y:-200192;
|
||||
ID:14;X:-198944;Y:-200128;
|
||||
ID:14;X:-199008;Y:-200128;
|
||||
ID:14;X:-199008;Y:-200064;
|
||||
ID:14;X:-198944;Y:-200064;
|
||||
ID:14;X:-198848;Y:-200128;
|
||||
ID:14;X:-198784;Y:-200128;
|
||||
ID:14;X:-198784;Y:-200064;
|
||||
ID:14;X:-198848;Y:-200064;
|
||||
ID:44;X:-199424;Y:-200160;
|
||||
ID:44;X:-199424;Y:-200128;
|
||||
ID:44;X:-199424;Y:-200096;
|
||||
ID:44;X:-199424;Y:-200064;
|
||||
ID:44;X:-199424;Y:-200032;
|
||||
ID:47;X:-199424;Y:-200288;
|
||||
ID:149;X:-199744;Y:-200192;
|
||||
ID:47;X:-199872;Y:-200320;
|
||||
ID:51;X:-199936;Y:-200256;
|
||||
ID:50;X:-199968;Y:-200256;
|
||||
ID:50;X:-200000;Y:-200256;
|
||||
ID:33;X:-199136;Y:-200288;
|
||||
ID:49;X:-199008;Y:-200320;
|
||||
ID:51;X:-198912;Y:-200320;
|
||||
ID:50;X:-198944;Y:-200320;
|
||||
ID:50;X:-198976;Y:-200320;
|
||||
ID:47;X:-198784;Y:-200256;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,198 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:12;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:247;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199776;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199744;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199712;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199680;Y:-200064;W:32;H:32;
|
||||
ID:247;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:255;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:246;X:-199616;Y:-200160;W:32;H:32;
|
||||
ID:249;X:-199616;Y:-200128;W:32;H:32;
|
||||
ID:249;X:-199616;Y:-200096;W:32;H:32;
|
||||
ID:247;X:-199584;Y:-200160;W:32;H:32;
|
||||
ID:247;X:-199552;Y:-200160;W:32;H:32;
|
||||
ID:247;X:-199520;Y:-200160;W:32;H:32;
|
||||
ID:247;X:-199488;Y:-200160;W:32;H:32;
|
||||
ID:315;X:-199456;Y:-200160;W:32;H:32;
|
||||
ID:315;X:-199424;Y:-200128;W:32;H:32;
|
||||
ID:560;X:-199456;Y:-200128;W:32;H:32;
|
||||
ID:560;X:-199424;Y:-200096;W:32;H:32;
|
||||
ID:247;X:-199392;Y:-200096;W:32;H:32;
|
||||
ID:247;X:-199360;Y:-200096;W:32;H:32;
|
||||
ID:247;X:-199328;Y:-200096;W:32;H:32;
|
||||
ID:247;X:-199296;Y:-200096;W:32;H:32;
|
||||
ID:247;X:-199264;Y:-200096;W:32;H:32;
|
||||
ID:247;X:-199232;Y:-200096;W:32;H:32;
|
||||
ID:247;X:-199200;Y:-200096;W:32;H:32;
|
||||
ID:248;X:-199168;Y:-200096;W:32;H:32;
|
||||
ID:251;X:-199168;Y:-200064;W:32;H:32;
|
||||
ID:251;X:-199168;Y:-200032;W:32;H:32;
|
||||
ID:246;X:-199072;Y:-200192;W:32;H:32;
|
||||
ID:249;X:-199072;Y:-200160;W:32;H:32;
|
||||
ID:249;X:-199072;Y:-200128;W:32;H:32;
|
||||
ID:249;X:-199072;Y:-200096;W:32;H:32;
|
||||
ID:249;X:-199072;Y:-200064;W:32;H:32;
|
||||
ID:249;X:-199072;Y:-200032;W:32;H:32;
|
||||
ID:247;X:-199040;Y:-200192;W:32;H:32;
|
||||
ID:247;X:-199008;Y:-200192;W:32;H:32;
|
||||
ID:247;X:-198976;Y:-200192;W:32;H:32;
|
||||
ID:247;X:-198944;Y:-200192;W:32;H:32;
|
||||
ID:316;X:-198912;Y:-200224;W:32;H:32;
|
||||
ID:316;X:-198880;Y:-200256;W:32;H:32;
|
||||
ID:559;X:-198880;Y:-200224;W:32;H:32;
|
||||
ID:559;X:-198912;Y:-200192;W:32;H:32;
|
||||
ID:247;X:-198848;Y:-200256;W:32;H:32;
|
||||
ID:247;X:-198816;Y:-200256;W:32;H:32;
|
||||
ID:247;X:-198784;Y:-200256;W:32;H:32;
|
||||
ID:247;X:-198752;Y:-200256;W:32;H:32;
|
||||
ID:250;X:-198976;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199008;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-198976;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-198976;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198944;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199040;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199008;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-199008;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198944;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-198976;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198944;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198912;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199040;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-199040;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-199008;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198912;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-198976;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198944;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198912;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198880;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199040;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199008;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198880;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-198944;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198912;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198848;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199040;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198880;Y:-200192;W:32;H:32;
|
||||
ID:250;X:-198848;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-198912;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198880;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198816;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-198848;Y:-200192;W:32;H:32;
|
||||
ID:250;X:-198816;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-198880;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198848;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198784;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-198848;Y:-200224;W:32;H:32;
|
||||
ID:250;X:-198816;Y:-200192;W:32;H:32;
|
||||
ID:250;X:-198784;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-198848;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198816;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198784;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198752;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-198816;Y:-200224;W:32;H:32;
|
||||
ID:250;X:-198784;Y:-200192;W:32;H:32;
|
||||
ID:250;X:-198752;Y:-200160;W:32;H:32;
|
||||
ID:250;X:-198816;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198784;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198752;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-198784;Y:-200224;W:32;H:32;
|
||||
ID:250;X:-198752;Y:-200192;W:32;H:32;
|
||||
ID:250;X:-198784;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-198752;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-198752;Y:-200224;W:32;H:32;
|
||||
ID:250;X:-198752;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199296;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199328;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199296;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199264;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199360;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199328;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199264;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199232;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199392;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199360;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199232;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199200;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199424;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199392;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199200;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199456;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199488;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199520;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199456;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-199552;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199488;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-199584;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199520;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-199488;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199616;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:250;X:-199552;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-199520;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199648;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199584;Y:-200096;W:32;H:32;
|
||||
ID:250;X:-199552;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199680;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199584;Y:-200128;W:32;H:32;
|
||||
ID:250;X:-199712;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199744;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199776;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199808;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199840;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199872;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199904;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199936;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-199968;Y:-200032;W:32;H:32;
|
||||
ID:250;X:-200000;Y:-200032;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:8;X:-199840;Y:-200320;
|
||||
ID:30;X:-200000;Y:-200096;
|
||||
ID:152;X:-199520;Y:-200192;
|
||||
ID:152;X:-199520;Y:-200224;
|
||||
ID:152;X:-199520;Y:-200256;
|
||||
ID:152;X:-199520;Y:-200288;
|
||||
ID:152;X:-199520;Y:-200320;
|
||||
ID:151;X:-199520;Y:-200352;
|
||||
ID:151;X:-199584;Y:-200224;
|
||||
ID:152;X:-199584;Y:-200192;
|
||||
ID:163;X:-199360;Y:-200128;
|
||||
ID:124;X:-199168;Y:-200128;
|
||||
ID:128;X:-199168;Y:-200192;
|
||||
ID:163;X:-199040;Y:-200224;
|
||||
ID:124;X:-198944;Y:-200224;
|
||||
ID:127;X:-198944;Y:-200256;
|
||||
ID:129;X:-198816;Y:-200288;
|
||||
ID:130;X:-198752;Y:-200288;
|
||||
ID:130;X:-198784;Y:-200288;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,217 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:8;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:163;X:-200000;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-199968;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-199936;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-199904;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-199872;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-199840;Y:-200160;W:32;H:32;
|
||||
ID:207;X:-199808;Y:-200160;W:32;H:32;
|
||||
ID:206;X:-199680;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199648;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199616;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199584;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199552;Y:-200224;W:32;H:32;
|
||||
ID:207;X:-199520;Y:-200224;W:32;H:32;
|
||||
ID:206;X:-199424;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-199392;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-199328;Y:-200224;W:32;H:32;
|
||||
ID:167;X:-199360;Y:-200160;W:32;H:32;
|
||||
ID:162;X:-199360;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199296;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199264;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199232;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199200;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199168;Y:-200224;W:32;H:32;
|
||||
ID:163;X:-199136;Y:-200224;W:32;H:32;
|
||||
ID:207;X:-199104;Y:-200224;W:32;H:32;
|
||||
ID:206;X:-199008;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-198976;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-198944;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-198912;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-198880;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-198848;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-198784;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-198752;Y:-200160;W:32;H:32;
|
||||
ID:163;X:-198816;Y:-200160;W:32;H:32;
|
||||
ID:165;X:-199360;Y:-200192;W:32;H:32;
|
||||
ID:78;X:-199648;Y:-200160;W:64;H:32;
|
||||
ID:200;X:-199520;Y:-200192;W:32;H:32;
|
||||
ID:200;X:-199520;Y:-200160;W:32;H:32;
|
||||
ID:199;X:-199552;Y:-200160;W:32;H:32;
|
||||
ID:199;X:-199552;Y:-200192;W:32;H:32;
|
||||
ID:199;X:-199648;Y:-200192;W:32;H:32;
|
||||
ID:199;X:-199840;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199872;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199968;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-200000;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-200000;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199968;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199936;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199904;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199872;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199840;Y:-200096;W:32;H:32;
|
||||
ID:200;X:-199808;Y:-200096;W:32;H:32;
|
||||
ID:200;X:-199808;Y:-200128;W:32;H:32;
|
||||
ID:213;X:-199936;Y:-200128;W:32;H:32;
|
||||
ID:613;X:-199840;Y:-200064;W:64;H:32;
|
||||
ID:199;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:199;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:199;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:199;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:199;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:77;X:-199680;Y:-200192;W:32;H:32;
|
||||
ID:198;X:-199424;Y:-200128;W:32;H:32;
|
||||
ID:78;X:-199424;Y:-200096;W:64;H:32;
|
||||
ID:199;X:-199392;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199360;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199360;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199328;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199296;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199264;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199232;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199200;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-199168;Y:-200096;W:32;H:32;
|
||||
ID:613;X:-199136;Y:-200096;W:64;H:32;
|
||||
ID:77;X:-199008;Y:-200128;W:32;H:32;
|
||||
ID:78;X:-198976;Y:-200096;W:64;H:32;
|
||||
ID:199;X:-198912;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-198784;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-198752;Y:-200096;W:32;H:32;
|
||||
ID:199;X:-198752;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-198784;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-198848;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-198912;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-198944;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-198976;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199136;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199168;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199200;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199232;Y:-200160;W:32;H:32;
|
||||
ID:199;X:-199264;Y:-200160;W:32;H:32;
|
||||
ID:199;X:-199296;Y:-200160;W:32;H:32;
|
||||
ID:199;X:-199328;Y:-200160;W:32;H:32;
|
||||
ID:199;X:-199328;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199264;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199168;Y:-200192;W:32;H:32;
|
||||
ID:199;X:-199136;Y:-200192;W:32;H:32;
|
||||
ID:199;X:-199136;Y:-200160;W:32;H:32;
|
||||
ID:199;X:-199168;Y:-200160;W:32;H:32;
|
||||
ID:199;X:-199296;Y:-200192;W:32;H:32;
|
||||
ID:199;X:-199328;Y:-200192;W:32;H:32;
|
||||
ID:199;X:-199232;Y:-200128;W:32;H:32;
|
||||
ID:199;X:-199200;Y:-200192;W:32;H:32;
|
||||
ID:199;X:-199232;Y:-200192;W:32;H:32;
|
||||
ID:200;X:-199104;Y:-200192;W:32;H:32;
|
||||
ID:200;X:-199104;Y:-200160;W:32;H:32;
|
||||
ID:200;X:-199104;Y:-200128;W:32;H:32;
|
||||
ID:223;X:-199200;Y:-200160;W:32;H:32;
|
||||
ID:223;X:-199264;Y:-200192;W:32;H:32;
|
||||
ID:199;X:-199616;Y:-200192;W:32;H:32;
|
||||
ID:213;X:-199584;Y:-200160;W:32;H:32;
|
||||
ID:223;X:-199584;Y:-200192;W:32;H:32;
|
||||
ID:223;X:-199904;Y:-200128;W:32;H:32;
|
||||
ID:230;X:-199296;Y:-200128;W:32;H:32;
|
||||
ID:230;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:230;X:-198880;Y:-200128;W:32;H:32;
|
||||
ID:223;X:-198816;Y:-200128;W:32;H:32;
|
||||
ID:5;X:-199904;Y:-200288;W:32;H:32;CN:-1;
|
||||
ID:5;X:-199168;Y:-200352;W:32;H:32;CN:-1;
|
||||
ID:4;X:-198912;Y:-200288;W:32;H:32;
|
||||
ID:4;X:-198880;Y:-200288;W:32;H:32;
|
||||
ID:4;X:-198848;Y:-200288;W:32;H:32;
|
||||
ID:4;X:-198816;Y:-200288;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:46;X:-200000;Y:-200160;
|
||||
ID:46;X:-199984;Y:-200160;
|
||||
ID:46;X:-199968;Y:-200160;
|
||||
ID:46;X:-199952;Y:-200160;
|
||||
ID:46;X:-199872;Y:-200160;
|
||||
ID:46;X:-199856;Y:-200160;
|
||||
ID:46;X:-199840;Y:-200160;
|
||||
ID:46;X:-199824;Y:-200160;
|
||||
ID:46;X:-199808;Y:-200160;
|
||||
ID:46;X:-199664;Y:-200224;
|
||||
ID:46;X:-199648;Y:-200224;
|
||||
ID:46;X:-199632;Y:-200224;
|
||||
ID:46;X:-199552;Y:-200224;
|
||||
ID:46;X:-199536;Y:-200224;
|
||||
ID:46;X:-199520;Y:-200224;
|
||||
ID:46;X:-199408;Y:-200160;
|
||||
ID:46;X:-199392;Y:-200160;
|
||||
ID:46;X:-199376;Y:-200160;
|
||||
ID:46;X:-199360;Y:-200160;
|
||||
ID:46;X:-199360;Y:-200176;
|
||||
ID:46;X:-199360;Y:-200192;
|
||||
ID:46;X:-199360;Y:-200208;
|
||||
ID:46;X:-199360;Y:-200224;
|
||||
ID:46;X:-199344;Y:-200224;
|
||||
ID:46;X:-199328;Y:-200224;
|
||||
ID:46;X:-199312;Y:-200224;
|
||||
ID:46;X:-199296;Y:-200224;
|
||||
ID:46;X:-199280;Y:-200224;
|
||||
ID:46;X:-199104;Y:-200224;
|
||||
ID:46;X:-199120;Y:-200224;
|
||||
ID:46;X:-199136;Y:-200224;
|
||||
ID:46;X:-199152;Y:-200224;
|
||||
ID:46;X:-198992;Y:-200160;
|
||||
ID:46;X:-198976;Y:-200160;
|
||||
ID:46;X:-198960;Y:-200160;
|
||||
ID:46;X:-198944;Y:-200160;
|
||||
ID:46;X:-198928;Y:-200160;
|
||||
ID:46;X:-198912;Y:-200160;
|
||||
ID:46;X:-198896;Y:-200160;
|
||||
ID:46;X:-198752;Y:-200160;
|
||||
ID:46;X:-198736;Y:-200160;
|
||||
ID:46;X:-198768;Y:-200160;
|
||||
ID:46;X:-198784;Y:-200160;
|
||||
ID:46;X:-198800;Y:-200160;
|
||||
ID:46;X:-198816;Y:-200160;
|
||||
ID:132;X:-199616;Y:-200256;
|
||||
ID:132;X:-199584;Y:-200256;
|
||||
ID:133;X:-199552;Y:-200256;
|
||||
ID:162;X:-199648;Y:-200256;
|
||||
ID:45;X:-199840;Y:-200192;
|
||||
ID:155;X:-199872;Y:-200192;
|
||||
ID:155;X:-199904;Y:-200192;
|
||||
ID:155;X:-199936;Y:-200192;
|
||||
ID:154;X:-199968;Y:-200192;
|
||||
ID:69;X:-199296;Y:-200256;
|
||||
ID:69;X:-199296;Y:-200288;
|
||||
ID:68;X:-199328;Y:-200352;
|
||||
ID:162;X:-198976;Y:-200192;
|
||||
ID:132;X:-198944;Y:-200192;
|
||||
ID:132;X:-198912;Y:-200192;
|
||||
ID:132;X:-198880;Y:-200192;
|
||||
ID:132;X:-198848;Y:-200192;
|
||||
ID:132;X:-198816;Y:-200192;
|
||||
ID:133;X:-198784;Y:-200192;
|
||||
ID:133;X:-199136;Y:-200256;
|
||||
ID:162;X:-199232;Y:-200256;
|
||||
ID:132;X:-199168;Y:-200256;
|
||||
ID:132;X:-199200;Y:-200256;
|
||||
ID:36;X:-199776;Y:-200160;
|
||||
BGO_END
|
||||
NPC
|
||||
ID:10;X:-199614;Y:-200384;D:-1;
|
||||
ID:10;X:-199582;Y:-200384;D:-1;
|
||||
ID:10;X:-199550;Y:-200384;D:-1;
|
||||
NPC_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,99 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:50;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:284;X:-199936;Y:-200192;W:32;H:32;
|
||||
ID:285;X:-199904;Y:-200192;W:32;H:32;
|
||||
ID:285;X:-199872;Y:-200192;W:32;H:32;
|
||||
ID:285;X:-199840;Y:-200192;W:32;H:32;
|
||||
ID:286;X:-199808;Y:-200192;W:32;H:32;
|
||||
ID:291;X:-199680;Y:-200256;W:32;H:32;
|
||||
ID:294;X:-199616;Y:-200256;W:32;H:32;
|
||||
ID:292;X:-199648;Y:-200256;W:32;H:32;
|
||||
ID:284;X:-199552;Y:-200160;W:32;H:32;
|
||||
ID:285;X:-199520;Y:-200160;W:32;H:32;
|
||||
ID:285;X:-199488;Y:-200160;W:32;H:32;
|
||||
ID:285;X:-199456;Y:-200160;W:32;H:32;
|
||||
ID:285;X:-199424;Y:-200160;W:32;H:32;
|
||||
ID:285;X:-199392;Y:-200160;W:32;H:32;
|
||||
ID:285;X:-199360;Y:-200160;W:32;H:32;
|
||||
ID:285;X:-199328;Y:-200160;W:32;H:32;
|
||||
ID:286;X:-199296;Y:-200160;W:32;H:32;
|
||||
ID:295;X:-199392;Y:-200320;W:32;H:32;
|
||||
ID:297;X:-199328;Y:-200320;W:32;H:32;
|
||||
ID:296;X:-199360;Y:-200320;W:32;H:32;
|
||||
ID:291;X:-199168;Y:-200256;W:32;H:32;
|
||||
ID:292;X:-199136;Y:-200256;W:32;H:32;
|
||||
ID:292;X:-199104;Y:-200256;W:32;H:32;
|
||||
ID:292;X:-199072;Y:-200256;W:32;H:32;
|
||||
ID:292;X:-199040;Y:-200256;W:32;H:32;
|
||||
ID:292;X:-199008;Y:-200256;W:32;H:32;
|
||||
ID:294;X:-198976;Y:-200256;W:32;H:32;
|
||||
ID:295;X:-198912;Y:-200192;W:32;H:32;
|
||||
ID:296;X:-198880;Y:-200192;W:32;H:32;
|
||||
ID:296;X:-198848;Y:-200192;W:32;H:32;
|
||||
ID:296;X:-198816;Y:-200192;W:32;H:32;
|
||||
ID:296;X:-198784;Y:-200192;W:32;H:32;
|
||||
ID:296;X:-198752;Y:-200192;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:21;X:-198784;Y:-200160;
|
||||
ID:21;X:-199072;Y:-200224;
|
||||
ID:21;X:-199424;Y:-200128;
|
||||
ID:21;X:-199360;Y:-200288;
|
||||
ID:21;X:-199648;Y:-200224;
|
||||
ID:21;X:-199872;Y:-200160;
|
||||
ID:22;X:-199360;Y:-200256;
|
||||
ID:22;X:-199360;Y:-200224;
|
||||
ID:22;X:-199360;Y:-200192;
|
||||
ID:22;X:-199424;Y:-200096;
|
||||
ID:22;X:-199424;Y:-200064;
|
||||
ID:22;X:-199424;Y:-200032;
|
||||
ID:22;X:-199648;Y:-200192;
|
||||
ID:22;X:-199648;Y:-200160;
|
||||
ID:22;X:-199648;Y:-200128;
|
||||
ID:22;X:-199648;Y:-200096;
|
||||
ID:22;X:-199648;Y:-200064;
|
||||
ID:22;X:-199648;Y:-200032;
|
||||
ID:22;X:-199872;Y:-200128;
|
||||
ID:22;X:-199872;Y:-200096;
|
||||
ID:22;X:-199872;Y:-200064;
|
||||
ID:22;X:-199872;Y:-200032;
|
||||
ID:22;X:-199072;Y:-200192;
|
||||
ID:22;X:-199072;Y:-200160;
|
||||
ID:22;X:-199072;Y:-200128;
|
||||
ID:22;X:-199072;Y:-200096;
|
||||
ID:22;X:-199072;Y:-200064;
|
||||
ID:22;X:-199072;Y:-200032;
|
||||
ID:22;X:-198784;Y:-200128;
|
||||
ID:22;X:-198784;Y:-200096;
|
||||
ID:22;X:-198784;Y:-200064;
|
||||
ID:22;X:-198784;Y:-200032;
|
||||
ID:115;X:-199840;Y:-200224;
|
||||
ID:115;X:-199872;Y:-200224;
|
||||
ID:116;X:-199360;Y:-200352;
|
||||
ID:116;X:-199328;Y:-200192;
|
||||
ID:22;X:-199360;Y:-200128;
|
||||
ID:22;X:-199360;Y:-200096;
|
||||
ID:22;X:-199360;Y:-200064;
|
||||
ID:22;X:-199360;Y:-200032;
|
||||
ID:115;X:-199488;Y:-200192;
|
||||
ID:116;X:-199648;Y:-200288;
|
||||
ID:115;X:-199008;Y:-200288;
|
||||
ID:116;X:-199136;Y:-200288;
|
||||
ID:115;X:-198848;Y:-200224;
|
||||
ID:116;X:-198784;Y:-200224;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,129 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:48;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:582;X:-200000;Y:-200128;W:32;H:32;
|
||||
ID:582;X:-199968;Y:-200128;W:32;H:32;
|
||||
ID:582;X:-199936;Y:-200128;W:32;H:32;
|
||||
ID:582;X:-199904;Y:-200128;W:32;H:32;
|
||||
ID:582;X:-199872;Y:-200128;W:32;H:32;
|
||||
ID:582;X:-199840;Y:-200128;W:32;H:32;
|
||||
ID:582;X:-199808;Y:-200128;W:32;H:32;
|
||||
ID:583;X:-199776;Y:-200128;W:32;H:32;
|
||||
ID:586;X:-199776;Y:-200096;W:32;H:32;
|
||||
ID:586;X:-199776;Y:-200064;W:32;H:32;
|
||||
ID:586;X:-199776;Y:-200032;W:32;H:32;
|
||||
ID:373;X:-199680;Y:-200192;W:32;H:32;
|
||||
ID:375;X:-199424;Y:-200192;W:32;H:32;
|
||||
ID:373;X:-199328;Y:-200128;W:32;H:32;
|
||||
ID:373;X:-199136;Y:-200256;W:32;H:32;
|
||||
ID:374;X:-199456;Y:-200192;W:32;H:32;
|
||||
ID:374;X:-199488;Y:-200192;W:32;H:32;
|
||||
ID:374;X:-199520;Y:-200192;W:32;H:32;
|
||||
ID:374;X:-199552;Y:-200192;W:32;H:32;
|
||||
ID:374;X:-199584;Y:-200192;W:32;H:32;
|
||||
ID:374;X:-199616;Y:-200192;W:32;H:32;
|
||||
ID:374;X:-199648;Y:-200192;W:32;H:32;
|
||||
ID:374;X:-199296;Y:-200128;W:32;H:32;
|
||||
ID:374;X:-199264;Y:-200128;W:32;H:32;
|
||||
ID:374;X:-199232;Y:-200128;W:32;H:32;
|
||||
ID:374;X:-199200;Y:-200128;W:32;H:32;
|
||||
ID:374;X:-199168;Y:-200128;W:32;H:32;
|
||||
ID:374;X:-199136;Y:-200128;W:32;H:32;
|
||||
ID:374;X:-199104;Y:-200256;W:32;H:32;
|
||||
ID:374;X:-199072;Y:-200256;W:32;H:32;
|
||||
ID:374;X:-199040;Y:-200256;W:32;H:32;
|
||||
ID:375;X:-199104;Y:-200128;W:32;H:32;
|
||||
ID:375;X:-199008;Y:-200256;W:32;H:32;
|
||||
ID:581;X:-198912;Y:-200192;W:32;H:32;
|
||||
ID:584;X:-198912;Y:-200160;W:32;H:32;
|
||||
ID:584;X:-198912;Y:-200128;W:32;H:32;
|
||||
ID:584;X:-198912;Y:-200096;W:32;H:32;
|
||||
ID:584;X:-198912;Y:-200064;W:32;H:32;
|
||||
ID:584;X:-198912;Y:-200032;W:32;H:32;
|
||||
ID:582;X:-198752;Y:-200192;W:32;H:32;
|
||||
ID:582;X:-198784;Y:-200192;W:32;H:32;
|
||||
ID:582;X:-198816;Y:-200192;W:32;H:32;
|
||||
ID:582;X:-198848;Y:-200192;W:32;H:32;
|
||||
ID:582;X:-198880;Y:-200192;W:32;H:32;
|
||||
ID:585;X:-198816;Y:-200128;W:32;H:32;
|
||||
ID:585;X:-198848;Y:-200128;W:32;H:32;
|
||||
ID:585;X:-198816;Y:-200160;W:32;H:32;
|
||||
ID:585;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-198784;Y:-200128;W:32;H:32;
|
||||
ID:585;X:-198880;Y:-200128;W:32;H:32;
|
||||
ID:585;X:-198848;Y:-200160;W:32;H:32;
|
||||
ID:585;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-198784;Y:-200160;W:32;H:32;
|
||||
ID:585;X:-198816;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-198784;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-198752;Y:-200128;W:32;H:32;
|
||||
ID:585;X:-198880;Y:-200160;W:32;H:32;
|
||||
ID:585;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-198848;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-198752;Y:-200160;W:32;H:32;
|
||||
ID:585;X:-198816;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-198784;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-198752;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-198880;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-198848;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-198784;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-198752;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-198880;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-198752;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-199872;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-199904;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-199840;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-199936;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-199872;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-199808;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-199968;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-199904;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-199840;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-200000;Y:-200096;W:32;H:32;
|
||||
ID:585;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-199936;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-199808;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:585;X:-199968;Y:-200032;W:32;H:32;
|
||||
ID:585;X:-200000;Y:-200032;W:32;H:32;
|
||||
ID:599;X:-200000;Y:-200224;W:32;H:32;
|
||||
ID:599;X:-200000;Y:-200192;W:32;H:32;
|
||||
ID:599;X:-200000;Y:-200160;W:32;H:32;
|
||||
ID:599;X:-199968;Y:-200160;W:32;H:32;
|
||||
ID:599;X:-199936;Y:-200160;W:32;H:32;
|
||||
ID:599;X:-199968;Y:-200192;W:32;H:32;
|
||||
ID:599;X:-198752;Y:-200256;W:32;H:32;
|
||||
ID:599;X:-198752;Y:-200224;W:32;H:32;
|
||||
ID:599;X:-198784;Y:-200224;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:199;X:-199840;Y:-200160;
|
||||
ID:199;X:-198880;Y:-200224;
|
||||
ID:124;X:-199488;Y:-200224;
|
||||
ID:128;X:-199488;Y:-200288;
|
||||
ID:18;X:-199648;Y:-200224;
|
||||
ID:19;X:-199296;Y:-200160;
|
||||
ID:124;X:-199136;Y:-200160;
|
||||
ID:127;X:-199136;Y:-200192;
|
||||
ID:131;X:-199040;Y:-200288;
|
||||
ID:129;X:-199072;Y:-200288;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,257 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:42;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:46;X:-200000;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199968;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199936;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199904;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199872;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199840;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199808;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199776;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199744;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199712;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199680;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199648;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199616;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199584;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199552;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199520;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199488;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199456;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199424;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199392;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199360;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199328;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199296;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199264;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199232;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199200;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199168;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199136;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199104;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199072;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199040;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-199008;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198976;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198944;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198912;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198880;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198848;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198816;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198784;Y:-200544;W:32;H:32;
|
||||
ID:46;X:-198752;Y:-200544;W:32;H:32;
|
||||
ID:40;X:-200000;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199968;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199936;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199904;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199872;Y:-200224;W:32;H:32;
|
||||
ID:41;X:-199840;Y:-200224;W:32;H:32;
|
||||
ID:44;X:-199840;Y:-200192;W:32;H:32;
|
||||
ID:44;X:-199840;Y:-200160;W:32;H:32;
|
||||
ID:44;X:-199840;Y:-200128;W:32;H:32;
|
||||
ID:44;X:-199840;Y:-200096;W:32;H:32;
|
||||
ID:44;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:44;X:-199840;Y:-200032;W:32;H:32;
|
||||
ID:459;X:-199808;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199776;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199744;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199712;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199680;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199648;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199616;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199584;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199552;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199520;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199488;Y:-200128;W:32;H:32;
|
||||
ID:459;X:-199456;Y:-200128;W:32;H:32;
|
||||
ID:39;X:-199424;Y:-200192;W:32;H:32;
|
||||
ID:42;X:-199424;Y:-200160;W:32;H:32;
|
||||
ID:42;X:-199424;Y:-200128;W:32;H:32;
|
||||
ID:42;X:-199424;Y:-200096;W:32;H:32;
|
||||
ID:42;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:42;X:-199424;Y:-200032;W:32;H:32;
|
||||
ID:54;X:-199520;Y:-200224;W:32;H:32;
|
||||
ID:54;X:-199520;Y:-200256;W:32;H:32;
|
||||
ID:52;X:-199712;Y:-200224;W:32;H:32;
|
||||
ID:52;X:-199616;Y:-200256;W:32;H:32;
|
||||
ID:53;X:-199584;Y:-200256;W:32;H:32;
|
||||
ID:53;X:-199552;Y:-200256;W:32;H:32;
|
||||
ID:53;X:-199552;Y:-200224;W:32;H:32;
|
||||
ID:53;X:-199584;Y:-200224;W:32;H:32;
|
||||
ID:53;X:-199616;Y:-200224;W:32;H:32;
|
||||
ID:53;X:-199648;Y:-200224;W:32;H:32;
|
||||
ID:53;X:-199680;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-199392;Y:-200192;W:32;H:32;
|
||||
ID:40;X:-199360;Y:-200192;W:32;H:32;
|
||||
ID:40;X:-199328;Y:-200192;W:32;H:32;
|
||||
ID:40;X:-199296;Y:-200192;W:32;H:32;
|
||||
ID:41;X:-199264;Y:-200192;W:32;H:32;
|
||||
ID:49;X:-199264;Y:-200096;W:32;H:32;
|
||||
ID:44;X:-199264;Y:-200160;W:32;H:32;
|
||||
ID:44;X:-199264;Y:-200128;W:32;H:32;
|
||||
ID:40;X:-199232;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199200;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199168;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199136;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199104;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199072;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199040;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-199008;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-198976;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-198944;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-198912;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:40;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:39;X:-198816;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-198784;Y:-200224;W:32;H:32;
|
||||
ID:40;X:-198752;Y:-200224;W:32;H:32;
|
||||
ID:62;X:-198848;Y:-200160;W:32;H:32;
|
||||
ID:62;X:-198880;Y:-200128;W:32;H:32;
|
||||
ID:525;X:-198848;Y:-200128;W:32;H:32;
|
||||
ID:42;X:-198816;Y:-200128;W:32;H:32;
|
||||
ID:42;X:-198816;Y:-200160;W:32;H:32;
|
||||
ID:42;X:-198816;Y:-200192;W:32;H:32;
|
||||
ID:48;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199456;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199488;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199520;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199552;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199584;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199616;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199648;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199680;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199712;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199744;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199776;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199808;Y:-200032;W:32;H:32;
|
||||
ID:467;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199808;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199776;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199744;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199744;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199712;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199680;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199648;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199616;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199584;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199552;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199520;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199488;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199456;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:467;X:-199680;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199712;Y:-200096;W:32;H:32;
|
||||
ID:467;X:-199776;Y:-200064;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:15;X:-198848;Y:-200672;
|
||||
ID:15;X:-198976;Y:-200672;
|
||||
ID:15;X:-199104;Y:-200672;
|
||||
ID:15;X:-199232;Y:-200672;
|
||||
ID:15;X:-199360;Y:-200672;
|
||||
ID:15;X:-199488;Y:-200672;
|
||||
ID:15;X:-199616;Y:-200672;
|
||||
ID:15;X:-199744;Y:-200672;
|
||||
ID:15;X:-199872;Y:-200672;
|
||||
ID:15;X:-200000;Y:-200672;
|
||||
ID:15;X:-200000;Y:-200800;
|
||||
ID:15;X:-199872;Y:-200800;
|
||||
ID:15;X:-199744;Y:-200800;
|
||||
ID:15;X:-199616;Y:-200800;
|
||||
ID:15;X:-199488;Y:-200800;
|
||||
ID:15;X:-199360;Y:-200800;
|
||||
ID:15;X:-199232;Y:-200800;
|
||||
ID:15;X:-199104;Y:-200800;
|
||||
ID:15;X:-198976;Y:-200800;
|
||||
ID:15;X:-198848;Y:-200800;
|
||||
ID:15;X:-199968;Y:-200192;
|
||||
ID:15;X:-200096;Y:-200192;
|
||||
ID:15;X:-199968;Y:-200064;
|
||||
ID:15;X:-200096;Y:-200064;
|
||||
ID:15;X:-199392;Y:-200160;
|
||||
ID:15;X:-199392;Y:-200032;
|
||||
ID:15;X:-199264;Y:-200064;
|
||||
ID:15;X:-199136;Y:-200064;
|
||||
ID:15;X:-199008;Y:-200064;
|
||||
ID:15;X:-198880;Y:-200064;
|
||||
ID:15;X:-198784;Y:-200192;
|
||||
ID:15;X:-198752;Y:-200064;
|
||||
ID:90;X:-199360;Y:-200224;
|
||||
ID:90;X:-199904;Y:-200256;
|
||||
ID:91;X:-199360;Y:-200256;
|
||||
ID:91;X:-199360;Y:-200288;
|
||||
ID:91;X:-199360;Y:-200320;
|
||||
ID:91;X:-199360;Y:-200352;
|
||||
ID:91;X:-199360;Y:-200384;
|
||||
ID:91;X:-199360;Y:-200416;
|
||||
ID:91;X:-199360;Y:-200448;
|
||||
ID:91;X:-199360;Y:-200480;
|
||||
ID:91;X:-199904;Y:-200288;
|
||||
ID:91;X:-199904;Y:-200320;
|
||||
ID:91;X:-199904;Y:-200352;
|
||||
ID:91;X:-199904;Y:-200384;
|
||||
ID:91;X:-199904;Y:-200416;
|
||||
ID:91;X:-199904;Y:-200448;
|
||||
ID:91;X:-199904;Y:-200480;
|
||||
ID:89;X:-199360;Y:-200512;
|
||||
ID:89;X:-199904;Y:-200512;
|
||||
ID:89;X:-198944;Y:-200512;
|
||||
ID:91;X:-198944;Y:-200480;
|
||||
ID:91;X:-198944;Y:-200448;
|
||||
ID:91;X:-198944;Y:-200416;
|
||||
ID:91;X:-198944;Y:-200384;
|
||||
ID:91;X:-198944;Y:-200352;
|
||||
ID:91;X:-198944;Y:-200320;
|
||||
ID:91;X:-198944;Y:-200288;
|
||||
ID:91;X:-198944;Y:-200256;
|
||||
ID:91;X:-198944;Y:-200224;
|
||||
ID:91;X:-198944;Y:-200192;
|
||||
ID:91;X:-198944;Y:-200160;
|
||||
ID:90;X:-198944;Y:-200128;
|
||||
ID:94;X:-199264;Y:-200512;
|
||||
ID:94;X:-199008;Y:-200512;
|
||||
ID:95;X:-199008;Y:-200480;
|
||||
ID:95;X:-199008;Y:-200448;
|
||||
ID:95;X:-199008;Y:-200416;
|
||||
ID:95;X:-199264;Y:-200480;
|
||||
ID:95;X:-199264;Y:-200448;
|
||||
ID:97;X:-199008;Y:-200384;
|
||||
ID:96;X:-199264;Y:-200416;
|
||||
ID:125;X:-199552;Y:-200320;
|
||||
ID:94;X:-199648;Y:-200512;
|
||||
ID:95;X:-199648;Y:-200480;
|
||||
ID:95;X:-199648;Y:-200448;
|
||||
ID:95;X:-199648;Y:-200416;
|
||||
ID:96;X:-199648;Y:-200384;
|
||||
ID:125;X:-199104;Y:-200160;
|
||||
ID:125;X:-198784;Y:-200288;
|
||||
ID:94;X:-198816;Y:-200512;
|
||||
ID:95;X:-198816;Y:-200480;
|
||||
ID:96;X:-198816;Y:-200448;
|
||||
ID:95;X:-199968;Y:-200448;
|
||||
ID:95;X:-199968;Y:-200480;
|
||||
ID:94;X:-199968;Y:-200512;
|
||||
ID:97;X:-199968;Y:-200416;
|
||||
ID:125;X:-199968;Y:-200288;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,226 @@
|
||||
HEAD
|
||||
CPID:"TheXTech";
|
||||
HEAD_END
|
||||
SECTION
|
||||
SC:0;L:-200000;R:-198720;T:-200736;B:-200000;MZ:8;MF:"";BG:32;
|
||||
SECTION_END
|
||||
BLOCK
|
||||
ID:81;X:-200000;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199968;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199936;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199904;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199872;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199840;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199808;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199776;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199744;Y:-200096;W:32;H:32;
|
||||
ID:299;X:-199712;Y:-200128;W:32;H:32;
|
||||
ID:299;X:-199680;Y:-200160;W:32;H:32;
|
||||
ID:85;X:-199680;Y:-200128;W:32;H:32;
|
||||
ID:85;X:-199712;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199648;Y:-200160;W:32;H:32;
|
||||
ID:81;X:-199616;Y:-200160;W:32;H:32;
|
||||
ID:81;X:-199584;Y:-200160;W:32;H:32;
|
||||
ID:81;X:-199552;Y:-200160;W:32;H:32;
|
||||
ID:81;X:-199488;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199456;Y:-200096;W:32;H:32;
|
||||
ID:82;X:-199520;Y:-200160;W:32;H:32;
|
||||
ID:86;X:-199520;Y:-200096;W:32;H:32;
|
||||
ID:84;X:-199520;Y:-200128;W:32;H:32;
|
||||
ID:81;X:-199424;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199392;Y:-200096;W:32;H:32;
|
||||
ID:616;X:-199360;Y:-200128;W:64;H:32;
|
||||
ID:616;X:-199296;Y:-200160;W:64;H:32;
|
||||
ID:522;X:-199296;Y:-200128;W:32;H:32;
|
||||
ID:522;X:-199360;Y:-200096;W:32;H:32;
|
||||
ID:81;X:-199232;Y:-200160;W:32;H:32;
|
||||
ID:81;X:-199200;Y:-200160;W:32;H:32;
|
||||
ID:81;X:-199168;Y:-200160;W:32;H:32;
|
||||
ID:616;X:-199136;Y:-200192;W:64;H:32;
|
||||
ID:522;X:-199136;Y:-200160;W:32;H:32;
|
||||
ID:522;X:-199072;Y:-200192;W:32;H:32;
|
||||
ID:616;X:-199072;Y:-200224;W:64;H:32;
|
||||
ID:81;X:-199008;Y:-200224;W:32;H:32;
|
||||
ID:81;X:-198976;Y:-200224;W:32;H:32;
|
||||
ID:81;X:-198944;Y:-200224;W:32;H:32;
|
||||
ID:81;X:-198912;Y:-200224;W:32;H:32;
|
||||
ID:81;X:-198880;Y:-200224;W:32;H:32;
|
||||
ID:81;X:-198848;Y:-200224;W:32;H:32;
|
||||
ID:81;X:-198816;Y:-200224;W:32;H:32;
|
||||
ID:81;X:-198784;Y:-200224;W:32;H:32;
|
||||
ID:81;X:-198752;Y:-200224;W:32;H:32;
|
||||
ID:87;X:-199584;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199616;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199584;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199552;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199648;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199616;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199584;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199552;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199520;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199680;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199648;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199616;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199552;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199488;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199712;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199680;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199648;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199456;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199744;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199424;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199776;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199392;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199808;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199360;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199840;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199328;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199872;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199328;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199296;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199904;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199296;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199264;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199936;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199264;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199232;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199968;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199264;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199232;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199200;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-200000;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199232;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199200;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199168;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199200;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199168;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199136;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199168;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199136;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199104;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199136;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199104;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199072;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199104;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199072;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199040;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199104;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-199072;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199040;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-199008;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199072;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-199040;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-199008;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198976;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199040;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-199008;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198976;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198944;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199040;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-199008;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198976;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198944;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198912;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-199008;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-198976;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198944;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198912;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198880;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-198976;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-198944;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198912;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198880;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198848;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-198944;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-198912;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198880;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198848;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198816;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-198912;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-198880;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198848;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198816;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198784;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-198880;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-198848;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198816;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198784;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198752;Y:-200064;W:32;H:32;
|
||||
ID:87;X:-198848;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-198816;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198784;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198752;Y:-200096;W:32;H:32;
|
||||
ID:87;X:-198816;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-198784;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198752;Y:-200128;W:32;H:32;
|
||||
ID:87;X:-198784;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-198752;Y:-200160;W:32;H:32;
|
||||
ID:87;X:-198752;Y:-200192;W:32;H:32;
|
||||
ID:87;X:-199136;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199904;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199808;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199712;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199008;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199744;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199968;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199456;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199328;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199680;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199520;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-198848;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-200000;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199840;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199776;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199264;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199424;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-198944;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199360;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199872;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199552;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199392;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199296;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199072;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199648;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199040;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199616;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-198912;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199200;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-198816;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199232;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-198784;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-198976;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-198880;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199168;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199488;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-198752;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199104;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199584;Y:-200032;W:32;H:32;
|
||||
ID:87;X:-199936;Y:-200032;W:32;H:32;
|
||||
BLOCK_END
|
||||
BGO
|
||||
ID:18;X:-199840;Y:-200128;
|
||||
ID:31;X:-199008;Y:-200384;
|
||||
ID:124;X:-199552;Y:-200192;
|
||||
ID:128;X:-199552;Y:-200256;
|
||||
ID:127;X:-199616;Y:-200224;
|
||||
ID:124;X:-199616;Y:-200192;
|
||||
ID:131;X:-199424;Y:-200128;
|
||||
ID:130;X:-199456;Y:-200128;
|
||||
ID:130;X:-199488;Y:-200128;
|
||||
ID:124;X:-199328;Y:-200128;
|
||||
ID:124;X:-199328;Y:-200160;
|
||||
ID:127;X:-199328;Y:-200192;
|
||||
ID:124;X:-199200;Y:-200192;
|
||||
ID:128;X:-199200;Y:-200256;
|
||||
ID:32;X:-200064;Y:-200224;
|
||||
BGO_END
|
||||
LAYERS
|
||||
LR:"Default";
|
||||
LR:"Destroyed Blocks";HD:1;
|
||||
LR:"Spawned NPCs";
|
||||
LAYERS_END
|
||||
EVENTS_CLASSIC
|
||||
ET:"Level - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - Start";AS:0;AX:0;AY:0;
|
||||
ET:"P Switch - End";AS:0;AX:0;AY:0;
|
||||
EVENTS_CLASSIC_END
|
||||
@@ -0,0 +1,2 @@
|
||||
[activity-setup]
|
||||
enable-activity = false
|
||||
@@ -0,0 +1,498 @@
|
||||
// SPDX-FileCopyrightText: 2002-2025 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#ifndef FXAA_HLSL
|
||||
#define FXAA_HLSL 0
|
||||
#endif
|
||||
#ifndef FXAA_GLSL_130
|
||||
#define FXAA_GLSL_130 0
|
||||
#endif
|
||||
#ifndef FXAA_GLSL_VK
|
||||
#define FXAA_GLSL_VK 0
|
||||
#endif
|
||||
|
||||
#define UHQ_FXAA 1 //High Quality Fast Approximate Anti Aliasing. Adapted for GS from Timothy Lottes FXAA 3.11.
|
||||
#define FxaaSubpixMax 0.0 //[0.00 to 1.00] Amount of subpixel aliasing removal. 0.00: Edge only antialiasing (no blurring)
|
||||
#define FxaaEarlyExit 1 //[0 or 1] Use Fxaa early exit pathing. When disabled, the entire scene is antialiased(FSAA). 0 is off, 1 is on.
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[GLOBALS|FUNCTIONS]
|
||||
------------------------------------------------------------------------------*/
|
||||
#if (FXAA_GLSL_130 == 1)
|
||||
|
||||
in vec2 PSin_t;
|
||||
|
||||
layout(location = 0) out vec4 SV_Target0;
|
||||
layout(binding = 0) uniform sampler2D TextureSampler;
|
||||
|
||||
#elif (FXAA_GLSL_VK == 1)
|
||||
|
||||
layout(location = 0) in vec2 PSin_t;
|
||||
layout(location = 0) out vec4 SV_Target0;
|
||||
layout(set = 0, binding = 0) uniform sampler2D TextureSampler;
|
||||
|
||||
#elif (FXAA_HLSL == 1)
|
||||
Texture2D Texture : register(t0);
|
||||
SamplerState TextureSampler : register(s0);
|
||||
|
||||
struct VS_INPUT
|
||||
{
|
||||
float4 p : POSITION;
|
||||
float2 t : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct VS_OUTPUT
|
||||
{
|
||||
float4 p : SV_Position;
|
||||
float2 t : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct PS_OUTPUT
|
||||
{
|
||||
float4 c : SV_Target0;
|
||||
};
|
||||
|
||||
#elif defined(__METAL_VERSION__)
|
||||
static constexpr sampler MAIN_SAMPLER(coord::normalized, address::clamp_to_edge, filter::linear);
|
||||
#endif
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[FXAA CODE SECTION]
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
#if (FXAA_HLSL == 1)
|
||||
struct FxaaTex { SamplerState smpl; Texture2D tex; };
|
||||
#define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)
|
||||
#define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)
|
||||
#define FxaaDiscard clip(-1)
|
||||
#define FxaaSat(x) saturate(x)
|
||||
|
||||
#elif (FXAA_GLSL_130 == 1 || FXAA_GLSL_VK == 1)
|
||||
#define int2 ivec2
|
||||
#define float2 vec2
|
||||
#define float3 vec3
|
||||
#define float4 vec4
|
||||
#define FxaaDiscard discard
|
||||
#define FxaaSat(x) clamp(x, 0.0, 1.0)
|
||||
#define FxaaTex sampler2D
|
||||
#define FxaaTexTop(t, p) textureLod(t, p, 0.0)
|
||||
#define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)
|
||||
|
||||
#elif defined(__METAL_VERSION__)
|
||||
#define FxaaTex texture2d<float>
|
||||
#define FxaaTexTop(t, p) t.sample(MAIN_SAMPLER, p)
|
||||
#define FxaaTexOff(t, p, o, r) t.sample(MAIN_SAMPLER, p, o)
|
||||
#define FxaaDiscard discard_fragment()
|
||||
#define FxaaSat(x) saturate(x)
|
||||
#endif
|
||||
|
||||
#define FxaaEdgeThreshold 0.063
|
||||
#define FxaaEdgeThresholdMin 0.00
|
||||
#define FXAA_QUALITY_P0 1.0
|
||||
#define FXAA_QUALITY_P1 1.5
|
||||
#define FXAA_QUALITY_P2 2.0
|
||||
#define FXAA_QUALITY_P3 2.0
|
||||
#define FXAA_QUALITY_P4 2.0
|
||||
#define FXAA_QUALITY_P5 2.0
|
||||
#define FXAA_QUALITY_P6 2.0
|
||||
#define FXAA_QUALITY_P7 2.0
|
||||
#define FXAA_QUALITY_P8 2.0
|
||||
#define FXAA_QUALITY_P9 2.0
|
||||
#define FXAA_QUALITY_P10 4.0
|
||||
#define FXAA_QUALITY_P11 8.0
|
||||
#define FXAA_QUALITY_P12 8.0
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[GAMMA PREPASS CODE SECTION]
|
||||
------------------------------------------------------------------------------*/
|
||||
float RGBLuminance(float3 color)
|
||||
{
|
||||
const float3 lumCoeff = float3(0.2126729, 0.7151522, 0.0721750);
|
||||
return dot(color.rgb, lumCoeff);
|
||||
}
|
||||
|
||||
float3 RGBGammaToLinear(float3 color, float gamma)
|
||||
{
|
||||
color = FxaaSat(color);
|
||||
color.r = (color.r <= 0.0404482362771082) ?
|
||||
color.r / 12.92 : pow((color.r + 0.055) / 1.055, gamma);
|
||||
color.g = (color.g <= 0.0404482362771082) ?
|
||||
color.g / 12.92 : pow((color.g + 0.055) / 1.055, gamma);
|
||||
color.b = (color.b <= 0.0404482362771082) ?
|
||||
color.b / 12.92 : pow((color.b + 0.055) / 1.055, gamma);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
float3 LinearToRGBGamma(float3 color, float gamma)
|
||||
{
|
||||
color = FxaaSat(color);
|
||||
color.r = (color.r <= 0.00313066844250063) ?
|
||||
color.r * 12.92 : 1.055 * pow(color.r, 1.0 / gamma) - 0.055;
|
||||
color.g = (color.g <= 0.00313066844250063) ?
|
||||
color.g * 12.92 : 1.055 * pow(color.g, 1.0 / gamma) - 0.055;
|
||||
color.b = (color.b <= 0.00313066844250063) ?
|
||||
color.b * 12.92 : 1.055 * pow(color.b, 1.0 / gamma) - 0.055;
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
float4 PreGammaPass(float4 color)
|
||||
{
|
||||
const float GammaConst = 2.233;
|
||||
color.rgb = RGBGammaToLinear(color.rgb, GammaConst);
|
||||
color.rgb = LinearToRGBGamma(color.rgb, GammaConst);
|
||||
color.a = RGBLuminance(color.rgb);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[FXAA CODE SECTION]
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
float FxaaLuma(float4 rgba)
|
||||
{
|
||||
rgba.w = RGBLuminance(rgba.xyz);
|
||||
return rgba.w;
|
||||
}
|
||||
|
||||
float4 FxaaPixelShader(float2 pos, FxaaTex tex, float2 fxaaRcpFrame, float fxaaSubpix, float fxaaEdgeThreshold, float fxaaEdgeThresholdMin)
|
||||
{
|
||||
float2 posM = pos;
|
||||
float4 rgbyM = FxaaTexTop(tex, posM);
|
||||
rgbyM.w = RGBLuminance(rgbyM.xyz);
|
||||
#define lumaM rgbyM.w
|
||||
|
||||
float lumaS = FxaaLuma(FxaaTexOff(tex, posM, int2( 0, 1), fxaaRcpFrame.xy));
|
||||
float lumaE = FxaaLuma(FxaaTexOff(tex, posM, int2( 1, 0), fxaaRcpFrame.xy));
|
||||
float lumaN = FxaaLuma(FxaaTexOff(tex, posM, int2( 0,-1), fxaaRcpFrame.xy));
|
||||
float lumaW = FxaaLuma(FxaaTexOff(tex, posM, int2(-1, 0), fxaaRcpFrame.xy));
|
||||
|
||||
float maxSM = max(lumaS, lumaM);
|
||||
float minSM = min(lumaS, lumaM);
|
||||
float maxESM = max(lumaE, maxSM);
|
||||
float minESM = min(lumaE, minSM);
|
||||
float maxWN = max(lumaN, lumaW);
|
||||
float minWN = min(lumaN, lumaW);
|
||||
|
||||
float rangeMax = max(maxWN, maxESM);
|
||||
float rangeMin = min(minWN, minESM);
|
||||
float range = rangeMax - rangeMin;
|
||||
float rangeMaxScaled = rangeMax * fxaaEdgeThreshold;
|
||||
float rangeMaxClamped = max(fxaaEdgeThresholdMin, rangeMaxScaled);
|
||||
|
||||
#if (FxaaEarlyExit == 1)
|
||||
// Potential optimization, early exit.
|
||||
if (range < rangeMaxClamped)
|
||||
return rgbyM;
|
||||
#endif
|
||||
|
||||
float lumaNW = FxaaLuma(FxaaTexOff(tex, posM, int2(-1,-1), fxaaRcpFrame.xy));
|
||||
float lumaSE = FxaaLuma(FxaaTexOff(tex, posM, int2( 1, 1), fxaaRcpFrame.xy));
|
||||
float lumaNE = FxaaLuma(FxaaTexOff(tex, posM, int2( 1,-1), fxaaRcpFrame.xy));
|
||||
float lumaSW = FxaaLuma(FxaaTexOff(tex, posM, int2(-1, 1), fxaaRcpFrame.xy));
|
||||
|
||||
float lumaNS = lumaN + lumaS;
|
||||
float lumaWE = lumaW + lumaE;
|
||||
float subpixRcpRange = 1.0/range;
|
||||
float subpixNSWE = lumaNS + lumaWE;
|
||||
float edgeHorz1 = (-2.0 * lumaM) + lumaNS;
|
||||
float edgeVert1 = (-2.0 * lumaM) + lumaWE;
|
||||
float lumaNESE = lumaNE + lumaSE;
|
||||
float lumaNWNE = lumaNW + lumaNE;
|
||||
float edgeHorz2 = (-2.0 * lumaE) + lumaNESE;
|
||||
float edgeVert2 = (-2.0 * lumaN) + lumaNWNE;
|
||||
|
||||
float lumaNWSW = lumaNW + lumaSW;
|
||||
float lumaSWSE = lumaSW + lumaSE;
|
||||
float edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);
|
||||
float edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);
|
||||
float edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;
|
||||
float edgeVert3 = (-2.0 * lumaS) + lumaSWSE;
|
||||
float edgeHorz = abs(edgeHorz3) + edgeHorz4;
|
||||
float edgeVert = abs(edgeVert3) + edgeVert4;
|
||||
|
||||
float subpixNWSWNESE = lumaNWSW + lumaNESE;
|
||||
float lengthSign = fxaaRcpFrame.x;
|
||||
bool horzSpan = edgeHorz >= edgeVert;
|
||||
float subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;
|
||||
if(!horzSpan) lumaN = lumaW;
|
||||
if(!horzSpan) lumaS = lumaE;
|
||||
if(horzSpan) lengthSign = fxaaRcpFrame.y;
|
||||
float subpixB = (subpixA * (1.0/12.0)) - lumaM;
|
||||
|
||||
float gradientN = lumaN - lumaM;
|
||||
float gradientS = lumaS - lumaM;
|
||||
float lumaNN = lumaN + lumaM;
|
||||
float lumaSS = lumaS + lumaM;
|
||||
bool pairN = abs(gradientN) >= abs(gradientS);
|
||||
float gradient = max(abs(gradientN), abs(gradientS));
|
||||
if(pairN) lengthSign = -lengthSign;
|
||||
float subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);
|
||||
|
||||
float2 posB;
|
||||
posB.x = posM.x;
|
||||
posB.y = posM.y;
|
||||
float2 offNP;
|
||||
offNP.x = (!horzSpan) ? 0.0 : fxaaRcpFrame.x;
|
||||
offNP.y = ( horzSpan) ? 0.0 : fxaaRcpFrame.y;
|
||||
if(!horzSpan) posB.x += lengthSign * 0.5;
|
||||
if( horzSpan) posB.y += lengthSign * 0.5;
|
||||
|
||||
float2 posN;
|
||||
posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;
|
||||
posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;
|
||||
float2 posP;
|
||||
posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;
|
||||
posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;
|
||||
float subpixD = ((-2.0)*subpixC) + 3.0;
|
||||
float lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));
|
||||
float subpixE = subpixC * subpixC;
|
||||
float lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));
|
||||
|
||||
if(!pairN) lumaNN = lumaSS;
|
||||
float gradientScaled = gradient * 1.0/4.0;
|
||||
float lumaMM = lumaM - lumaNN * 0.5;
|
||||
float subpixF = subpixD * subpixE;
|
||||
bool lumaMLTZero = lumaMM < 0.0;
|
||||
lumaEndN -= lumaNN * 0.5;
|
||||
lumaEndP -= lumaNN * 0.5;
|
||||
bool doneN = abs(lumaEndN) >= gradientScaled;
|
||||
bool doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;
|
||||
bool doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;
|
||||
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;
|
||||
}}}}}}}}}}}
|
||||
|
||||
float dstN = posM.x - posN.x;
|
||||
float dstP = posP.x - posM.x;
|
||||
if(!horzSpan) dstN = posM.y - posN.y;
|
||||
if(!horzSpan) dstP = posP.y - posM.y;
|
||||
|
||||
bool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;
|
||||
float spanLength = (dstP + dstN);
|
||||
bool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;
|
||||
float spanLengthRcp = 1.0/spanLength;
|
||||
|
||||
bool directionN = dstN < dstP;
|
||||
float dst = min(dstN, dstP);
|
||||
bool goodSpan = directionN ? goodSpanN : goodSpanP;
|
||||
float subpixG = subpixF * subpixF;
|
||||
float pixelOffset = (dst * (-spanLengthRcp)) + 0.5;
|
||||
float subpixH = subpixG * fxaaSubpix;
|
||||
|
||||
float pixelOffsetGood = goodSpan ? pixelOffset : 0.0;
|
||||
float pixelOffsetSubpix = max(pixelOffsetGood, subpixH);
|
||||
if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;
|
||||
if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;
|
||||
|
||||
return float4(FxaaTexTop(tex, posM).xyz, lumaM);
|
||||
}
|
||||
|
||||
#if (FXAA_GLSL_130 == 1 || FXAA_GLSL_VK == 1)
|
||||
float4 FxaaPass(float4 FxaaColor, float2 uv0)
|
||||
#elif (FXAA_HLSL == 1)
|
||||
float4 FxaaPass(float4 FxaaColor : COLOR0, float2 uv0 : TEXCOORD0)
|
||||
#elif defined(__METAL_VERSION__)
|
||||
float4 FxaaPass(float4 FxaaColor, float2 uv0, texture2d<float> tex)
|
||||
#endif
|
||||
{
|
||||
|
||||
#if (FXAA_HLSL == 1)
|
||||
FxaaTex tex;
|
||||
tex.tex = Texture;
|
||||
tex.smpl = TextureSampler;
|
||||
|
||||
float2 PixelSize;
|
||||
Texture.GetDimensions(PixelSize.x, PixelSize.y);
|
||||
FxaaColor = FxaaPixelShader(uv0, tex, 1.0/PixelSize.xy, FxaaSubpixMax, FxaaEdgeThreshold, FxaaEdgeThresholdMin);
|
||||
|
||||
#elif (FXAA_GLSL_130 == 1 || FXAA_GLSL_VK == 1)
|
||||
vec2 PixelSize = vec2(textureSize(TextureSampler, 0));
|
||||
FxaaColor = FxaaPixelShader(uv0, TextureSampler, 1.0/PixelSize.xy, FxaaSubpixMax, FxaaEdgeThreshold, FxaaEdgeThresholdMin);
|
||||
#elif defined(__METAL_VERSION__)
|
||||
float2 PixelSize = float2(tex.get_width(), tex.get_height());
|
||||
FxaaColor = FxaaPixelShader(uv0, tex, 1.f/PixelSize, FxaaSubpixMax, FxaaEdgeThreshold, FxaaEdgeThresholdMin);
|
||||
#endif
|
||||
|
||||
return FxaaColor;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
[MAIN() & COMBINE PASS CODE SECTION]
|
||||
------------------------------------------------------------------------------*/
|
||||
#if (FXAA_GLSL_130 == 1 || FXAA_GLSL_VK == 1)
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 color = texture(TextureSampler, PSin_t);
|
||||
color = PreGammaPass(color);
|
||||
color = FxaaPass(color, PSin_t);
|
||||
|
||||
SV_Target0 = float4(color.rgb, 1.0);
|
||||
}
|
||||
|
||||
#elif (FXAA_HLSL == 1)
|
||||
PS_OUTPUT main(VS_OUTPUT input)
|
||||
{
|
||||
PS_OUTPUT output;
|
||||
|
||||
float4 color = Texture.Sample(TextureSampler, input.t);
|
||||
|
||||
color = PreGammaPass(color);
|
||||
color = FxaaPass(color, input.t);
|
||||
|
||||
output.c = float4(color.rgb, 1.0);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
// Metal main function in in fxaa.metal
|
||||
#endif
|
||||
@@ -0,0 +1,470 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
//#version 420 // Keep it for text editor detection
|
||||
|
||||
layout(std140, binding = 1) uniform cb20
|
||||
{
|
||||
vec2 VertexScale;
|
||||
vec2 VertexOffset;
|
||||
|
||||
vec2 TextureScale;
|
||||
vec2 TextureOffset;
|
||||
|
||||
vec2 PointSize;
|
||||
|
||||
uint MaxDepth;
|
||||
float LineAA1Width;
|
||||
};
|
||||
|
||||
#ifdef VERTEX_SHADER
|
||||
|
||||
#ifndef VS_EXPAND_NONE
|
||||
#define VS_EXPAND_NONE 0
|
||||
#define VS_EXPAND_POINT 1
|
||||
#define VS_EXPAND_LINE 2
|
||||
#define VS_EXPAND_SPRITE 3
|
||||
#define VS_EXPAND_LINE_AA1 4
|
||||
#define VS_EXPAND_TRIANGLE_AA1 5
|
||||
#endif
|
||||
|
||||
out SHADER
|
||||
{
|
||||
vec4 t_float;
|
||||
vec4 t_int;
|
||||
#if VS_IIP != 0
|
||||
vec4 c;
|
||||
#else
|
||||
flat vec4 c;
|
||||
#endif
|
||||
float inv_cov; // We use the inverse to make it simpler to interpolate.
|
||||
flat uint interior; // 1 for triangle interior; 0 for edge.
|
||||
} VSout;
|
||||
|
||||
const float exp_min32 = exp2(-32.0f);
|
||||
|
||||
#if VS_EXPAND == VS_EXPAND_NONE
|
||||
|
||||
layout(location = 0) in vec2 i_st;
|
||||
layout(location = 2) in vec4 i_c;
|
||||
layout(location = 3) in float i_q;
|
||||
layout(location = 4) in uvec2 i_p;
|
||||
layout(location = 5) in uint i_z;
|
||||
layout(location = 6) in uvec2 i_uv;
|
||||
layout(location = 7) in vec4 i_f;
|
||||
|
||||
void texture_coord()
|
||||
{
|
||||
vec2 uv = vec2(i_uv) - TextureOffset;
|
||||
vec2 st = i_st - TextureOffset;
|
||||
|
||||
// Float coordinate
|
||||
VSout.t_float.xy = st;
|
||||
VSout.t_float.w = i_q;
|
||||
|
||||
// Integer coordinate => normalized
|
||||
VSout.t_int.xy = uv * TextureScale;
|
||||
#if VS_FST
|
||||
// Integer coordinate => integral
|
||||
VSout.t_int.zw = uv;
|
||||
#else
|
||||
// Some games uses float coordinate for post-processing effect
|
||||
VSout.t_int.zw = st / TextureScale;
|
||||
#endif
|
||||
}
|
||||
|
||||
void vs_main()
|
||||
{
|
||||
// Clamp to max depth, gs doesn't wrap
|
||||
highp uint z = min(i_z, MaxDepth);
|
||||
|
||||
// pos -= 0.05 (1/320 pixel) helps avoiding rounding problems (integral part of pos is usually 5 digits, 0.05 is about as low as we can go)
|
||||
// example: ceil(afterseveralvertextransformations(y = 133)) => 134 => line 133 stays empty
|
||||
// input granularity is 1/16 pixel, anything smaller than that won't step drawing up/left by one pixel
|
||||
// example: 133.0625 (133 + 1/16) should start from line 134, ceil(133.0625 - 0.05) still above 133
|
||||
gl_Position.xy = vec2(i_p) - vec2(0.05f, 0.05f);
|
||||
gl_Position.xy = gl_Position.xy * VertexScale - VertexOffset;
|
||||
|
||||
#if HAS_CLIP_CONTROL
|
||||
gl_Position.z = float(z) * exp_min32;
|
||||
#else
|
||||
gl_Position.z = (float(z) * exp_min32) * 2.0f - 1.0f;
|
||||
#endif
|
||||
|
||||
gl_Position.w = 1.0f;
|
||||
|
||||
texture_coord();
|
||||
|
||||
VSout.c = i_c;
|
||||
VSout.t_float.z = i_f.x; // pack for with texture
|
||||
|
||||
#if VS_POINT_SIZE
|
||||
gl_PointSize = PointSize.x;
|
||||
#endif
|
||||
}
|
||||
|
||||
#else // VS_EXPAND
|
||||
|
||||
struct RawVertex
|
||||
{
|
||||
vec2 ST;
|
||||
uint RGBA;
|
||||
float Q;
|
||||
uint XY;
|
||||
uint Z;
|
||||
uint UV;
|
||||
uint FOG;
|
||||
};
|
||||
|
||||
layout(std140, binding = 4) uniform cb22
|
||||
{
|
||||
uint BaseVertex;
|
||||
uint BaseIndex;
|
||||
uint pad_cb22_0;
|
||||
uint pad_cb22_1;
|
||||
};
|
||||
|
||||
layout(std140, binding = 2) readonly buffer VertexBuffer {
|
||||
RawVertex vertex_buffer[];
|
||||
};
|
||||
|
||||
// Warning: use std430 instead of std140 so that the ints are tightly packed.
|
||||
layout(std430, binding = 3) readonly buffer IndexBuffer {
|
||||
uint index_buffer[];
|
||||
};
|
||||
|
||||
struct ProcessedVertex
|
||||
{
|
||||
vec4 p;
|
||||
vec4 t_float;
|
||||
vec4 t_int;
|
||||
vec4 c;
|
||||
};
|
||||
|
||||
uint load_index(uint _i)
|
||||
{
|
||||
uint i = _i + BaseIndex;
|
||||
// i is even => load lower 16 bits; i odd => load upper 16 bits.
|
||||
uint shift = (i & 1u) << 4u;
|
||||
return (index_buffer[i >> 1u] >> shift) & 0xFFFFu;
|
||||
}
|
||||
|
||||
ProcessedVertex load_vertex(uint index)
|
||||
{
|
||||
RawVertex rvtx = vertex_buffer[BaseVertex + index];
|
||||
|
||||
vec2 i_st = rvtx.ST;
|
||||
vec4 i_c = vec4(uvec4(bitfieldExtract(rvtx.RGBA, 0, 8), bitfieldExtract(rvtx.RGBA, 8, 8),
|
||||
bitfieldExtract(rvtx.RGBA, 16, 8), bitfieldExtract(rvtx.RGBA, 24, 8)));
|
||||
float i_q = rvtx.Q;
|
||||
uvec2 i_p = uvec2(bitfieldExtract(rvtx.XY, 0, 16), bitfieldExtract(rvtx.XY, 16, 16));
|
||||
uint i_z = rvtx.Z;
|
||||
uvec2 i_uv = uvec2(bitfieldExtract(rvtx.UV, 0, 16), bitfieldExtract(rvtx.UV, 16, 16));
|
||||
vec4 i_f = unpackUnorm4x8(rvtx.FOG);
|
||||
|
||||
ProcessedVertex vtx;
|
||||
|
||||
uint z = min(i_z, MaxDepth);
|
||||
vtx.p.xy = vec2(i_p) - vec2(0.05f, 0.05f);
|
||||
vtx.p.xy = vtx.p.xy * VertexScale - VertexOffset;
|
||||
|
||||
#if HAS_CLIP_CONTROL
|
||||
vtx.p.z = float(z) * exp_min32;
|
||||
#else
|
||||
vtx.p.z = (float(z) * exp_min32) * 2.0f - 1.0f;
|
||||
#endif
|
||||
|
||||
vtx.p.w = 1.0f;
|
||||
|
||||
vec2 uv = vec2(i_uv) - TextureOffset;
|
||||
vec2 st = i_st - TextureOffset;
|
||||
|
||||
vtx.t_float.xy = st;
|
||||
vtx.t_float.w = i_q;
|
||||
|
||||
vtx.t_int.xy = uv * TextureScale;
|
||||
#if VS_FST
|
||||
vtx.t_int.zw = uv;
|
||||
#else
|
||||
vtx.t_int.zw = st / TextureScale;
|
||||
#endif
|
||||
|
||||
vtx.c = i_c;
|
||||
vtx.t_float.z = i_f.x;
|
||||
|
||||
return vtx;
|
||||
}
|
||||
|
||||
// Convert XY from NDC to GS pixel coordinates (i.e. 1.0 = 1 GS pixel).
|
||||
vec2 get_xy_unscaled(vec2 xy)
|
||||
{
|
||||
return round(xy / VertexScale) / 16.0f;
|
||||
}
|
||||
|
||||
// Get the XY deltas in GS pixel coordinates, using first vertex as the origin.
|
||||
mat2 get_xy_deltas_unscaled(ProcessedVertex v0, ProcessedVertex v1, ProcessedVertex v2)
|
||||
{
|
||||
vec2 xy0 = get_xy_unscaled(v0.p.xy);
|
||||
vec2 xy1 = get_xy_unscaled(v1.p.xy);
|
||||
vec2 xy2 = get_xy_unscaled(v2.p.xy);
|
||||
return mat2(xy1 - xy0, xy2 - xy0);
|
||||
}
|
||||
|
||||
// Get the AA1 outward expand direction to the edge formed by the first two vertices.
|
||||
// This is up or down for shallow (X dominant) edges, and right or left for steep (Y dominant) edges.
|
||||
// Similar expansion to line AA1 except instead of expanding on both sides of the line,
|
||||
// expand on on the side towards the outside of the triangle.
|
||||
vec2 get_aa1_triangle_expand_dir(ProcessedVertex v0, ProcessedVertex v1, ProcessedVertex v2)
|
||||
{
|
||||
mat2 xy_deltas = get_xy_deltas_unscaled(v0, v1, v2);
|
||||
vec2 line_delta = xy_deltas[0];
|
||||
vec2 line_opposite = xy_deltas[1];
|
||||
|
||||
vec2 line_normal = vec2(line_delta.y, -line_delta.x);
|
||||
vec2 line_expand = abs(line_delta.x) >= abs(line_delta.y) ? vec2(0.0f, 1.0f) : vec2(1.0f, 0.0f);
|
||||
|
||||
if ((dot(line_expand, line_normal) >= 0.0f) == (dot(line_opposite, line_normal) >= 0.0f))
|
||||
{
|
||||
// Expand direction point towards the interior so flip it.
|
||||
line_expand = -line_expand;
|
||||
}
|
||||
|
||||
return line_expand;
|
||||
}
|
||||
|
||||
mat2 get_inverse(mat2 mat, float det)
|
||||
{
|
||||
return mat2(mat[1][1], -mat[0][1], -mat[1][0], mat[0][0]) * (1.0f / det);
|
||||
}
|
||||
|
||||
// Extrapolate triangle attributes from the first vertex along the given direction.
|
||||
// dp_mat is derived from the input vertices, it is passed in to avoid recomputing.
|
||||
void extrapolate_aa1_triangle_edge(inout ProcessedVertex v0, ProcessedVertex v1, ProcessedVertex v2, mat2 dp_mat, vec2 dp)
|
||||
{
|
||||
// Get texture deltas
|
||||
#if VS_TME
|
||||
#if VS_FST
|
||||
mat2 dt = mat2(v1.t_int.zw - v0.t_int.zw, v2.t_int.zw - v0.t_int.zw);
|
||||
#else
|
||||
mat2 dt = mat2(v1.t_float.xy - v0.t_float.xy, v2.t_float.xy - v0.t_float.xy);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Get color delta if interpolating
|
||||
#if VS_IIP
|
||||
mat2x4 dc = mat2x4(v1.c - v0.c, v2.c - v0.c);
|
||||
#endif
|
||||
|
||||
vec2 dz = vec2(v1.p.z - v0.p.z, v2.p.z - v0.p.z); // Z deltas
|
||||
|
||||
vec2 df = vec2(v1.t_float.z - v0.t_float.z, v2.t_float.z - v0.t_float.z); // Fog deltas
|
||||
|
||||
vec2 dq = vec2(v1.t_float.w - v0.t_float.w, v2.t_float.w - v0.t_float.w); // Q deltas
|
||||
|
||||
// To prevent unstable extrapolation, do not extrapolate if the
|
||||
// minimum perpendicular length of the triangle is < 2 pixels.
|
||||
float dp_det = determinant(dp_mat); // Twice signed triangle area.
|
||||
float len0 = length(dp_mat[0]);
|
||||
float len1 = length(dp_mat[1]);
|
||||
float len2 = length(dp_mat[1] - dp_mat[0]);
|
||||
float min_perp_length = abs(dp_det) / max(max(len0, len1), len2);
|
||||
|
||||
// Get the position -> barycentric weight matrix
|
||||
mat2 inv_dp_mat = get_inverse(dp_mat, dp_det);
|
||||
|
||||
vec2 weights = min_perp_length < 2.0f ? vec2(0) : inv_dp_mat * dp;
|
||||
|
||||
v0.p.xy += dp * PointSize; // Extrapolate position
|
||||
|
||||
// Extrapolate texture coords
|
||||
#if VS_TME
|
||||
#if VS_FST
|
||||
v0.t_int.zw += dt * weights;
|
||||
v0.t_int.xy = v0.t_int.zw * TextureScale;
|
||||
#else
|
||||
v0.t_float.xy += dt * weights;
|
||||
v0.t_int.zw = v0.t_float.xy / TextureScale;
|
||||
v0.t_float.w += dot(dq, weights);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Extrapolate and clamp color
|
||||
#if VS_IIP
|
||||
v0.c += dc * weights;
|
||||
v0.c = clamp(v0.c, vec4(0), vec4(255));
|
||||
#endif
|
||||
|
||||
v0.p.z += dot(dz, weights); // Extrapolate depth
|
||||
|
||||
v0.t_float.z += dot(df, weights); // Extrapolate fog
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
ProcessedVertex vtx;
|
||||
|
||||
uint vid = uint(gl_VertexID);
|
||||
|
||||
#if VS_EXPAND == VS_EXPAND_POINT
|
||||
|
||||
vtx = load_vertex(vid >> 2);
|
||||
|
||||
vtx.p.x += ((vid & 1u) != 0u) ? PointSize.x : 0.0f;
|
||||
vtx.p.y += ((vid & 2u) != 0u) ? PointSize.y : 0.0f;
|
||||
|
||||
#elif (VS_EXPAND == VS_EXPAND_LINE) || (VS_EXPAND == VS_EXPAND_LINE_AA1)
|
||||
|
||||
uint vid_base = vid >> 2;
|
||||
bool is_bottom = (vid & 2u) != 0u;
|
||||
bool is_right = (vid & 1u) != 0u;
|
||||
uint vid_other = is_bottom ? vid_base - 1u : vid_base + 1u;
|
||||
vtx = load_vertex(vid_base);
|
||||
ProcessedVertex other = load_vertex(vid_other);
|
||||
|
||||
// Use bottom minus top for delta regardless of which vertex we are expanding.
|
||||
vec2 line_delta = is_bottom ? (vtx.p.xy - other.p.xy) : (other.p.xy - vtx.p.xy);
|
||||
vec2 line_vector = normalize(line_delta / VertexScale);
|
||||
vec2 line_expand = vec2(line_vector.y, -line_vector.x);
|
||||
#if VS_EXPAND == VS_EXPAND_LINE_AA1
|
||||
line_expand *= 2.0f * LineAA1Width;
|
||||
#endif
|
||||
vec2 line_width = (line_expand * PointSize) / 2.0f;
|
||||
vec2 offset = is_right ? line_width : -line_width;
|
||||
vtx.p.xy += offset;
|
||||
|
||||
#if VS_EXPAND == VS_EXPAND_LINE_AA1
|
||||
VSout.inv_cov = is_right ? 1.0f : -1.0f;
|
||||
#endif
|
||||
|
||||
// Lines will be run as (0 1 2) (1 2 3)
|
||||
// This means that both triangles will have a point based off the top line point as their first point
|
||||
// So we don't have to do anything for !IIP
|
||||
|
||||
#elif VS_EXPAND == VS_EXPAND_SPRITE
|
||||
|
||||
// Sprite points are always in pairs
|
||||
uint vid_base = vid >> 1;
|
||||
uint vid_lt = vid_base & ~1u;
|
||||
uint vid_rb = vid_base | 1u;
|
||||
|
||||
ProcessedVertex lt = load_vertex(vid_lt);
|
||||
ProcessedVertex rb = load_vertex(vid_rb);
|
||||
vtx = rb;
|
||||
|
||||
bool is_right = ((vid & 1u) != 0u);
|
||||
vtx.p.x = is_right ? lt.p.x : vtx.p.x;
|
||||
vtx.t_float.x = is_right ? lt.t_float.x : vtx.t_float.x;
|
||||
vtx.t_int.xz = is_right ? lt.t_int.xz : vtx.t_int.xz;
|
||||
|
||||
bool is_bottom = ((vid & 2u) != 0u);
|
||||
vtx.p.y = is_bottom ? lt.p.y : vtx.p.y;
|
||||
vtx.t_float.y = is_bottom ? lt.t_float.y : vtx.t_float.y;
|
||||
vtx.t_int.yw = is_bottom ? lt.t_int.yw : vtx.t_int.yw;
|
||||
|
||||
#elif VS_EXPAND == VS_EXPAND_TRIANGLE_AA1
|
||||
|
||||
// Triangles with AA1 are expanded as follows:
|
||||
// - Vertices 0-2: Interior of triangle (1 triangle).
|
||||
// - Vertices 3-8: First edge expanded (2 triangles).
|
||||
// - Vertices 9-14: Second edge expanded (2 triangles).
|
||||
// - Vertices 15-20: Third edge expanded (2 triangles).
|
||||
// - Vertices 21-26: First corner cap (2 triangles).
|
||||
// - Vertices 27-32: Second corner cap (2 triangles).
|
||||
// - Vertices 33-38: Third corner cap (2 triangles).
|
||||
|
||||
uint prim_id = vid / 39u;
|
||||
uint prim_offset = vid - 39u * prim_id; // range: 0-38
|
||||
bool interior = prim_offset < 3u;
|
||||
bool edge = 3u <= prim_offset && prim_offset < 21u;
|
||||
|
||||
if (interior)
|
||||
{
|
||||
vtx = load_vertex(load_index(3u * prim_id + prim_offset));
|
||||
VSout.inv_cov = 0.0f; // Full coverage
|
||||
VSout.interior = 1u;
|
||||
}
|
||||
else if (edge)
|
||||
{
|
||||
// Vertex indices for this edge. We need all 3 for determining exterior/interior.
|
||||
uint prim_offset_edges = prim_offset - 3u; // range: 0-17
|
||||
uint i0 = prim_offset_edges / 6u;
|
||||
uint i1 = (i0 >= 2u) ? i0 - 2u : i0 + 1u;
|
||||
uint i2 = (i0 >= 1u) ? i0 - 1u : i0 + 2u;
|
||||
uint edge_offset = prim_offset_edges - 6u * i0; // range: 0-5
|
||||
|
||||
// Note: order of top/bottom, inside/outside is arbitrary,
|
||||
// as long as it assembles into two triangles forming a quad.
|
||||
bool is_bottom = (2u <= edge_offset) && (edge_offset <= 4u);
|
||||
bool is_outside = (edge_offset & 1u) != 0u;
|
||||
|
||||
vtx = load_vertex(load_index(3u * prim_id + (is_bottom ? i1 : i0)));
|
||||
ProcessedVertex other = load_vertex(load_index(3u * prim_id + (is_bottom ? i0 : i1)));
|
||||
ProcessedVertex opposite = load_vertex(load_index(3u * prim_id + i2));
|
||||
|
||||
mat2 pos_deltas = get_xy_deltas_unscaled(vtx, other, opposite);
|
||||
|
||||
vec2 expand_dir = is_outside ? get_aa1_triangle_expand_dir(vtx, other, opposite) : vec2(0);
|
||||
|
||||
// Do actual extrapolation, or no-op if expand_dir == 0.
|
||||
extrapolate_aa1_triangle_edge(vtx, other, opposite, pos_deltas, expand_dir);
|
||||
|
||||
VSout.inv_cov = is_outside ? 1.0f : 0.0f; // No coverage on outside, otherwise full.
|
||||
|
||||
VSout.interior = 0u;
|
||||
}
|
||||
else // Corner cap
|
||||
{
|
||||
// Vertex indices for this cap. We need all 3 for determining exterior/interior.
|
||||
uint prim_offset_cap = prim_offset - 21u; // range: 0-17
|
||||
uint i0 = prim_offset_cap / 6u;
|
||||
uint i1 = (i0 >= 2u) ? i0 - 2u : i0 + 1u;
|
||||
uint i2 = (i0 >= 1u) ? i0 - 1u : i0 + 2u;
|
||||
uint cap_offset = prim_offset_cap - 6u * i0; // range: 0-5
|
||||
|
||||
bool is_near_corner = cap_offset == 0u || cap_offset == 3u;
|
||||
bool is_far_corner = cap_offset == 2u || cap_offset == 5u;
|
||||
bool is_first_tri = cap_offset < 3u;
|
||||
|
||||
// First triangle is on the side of vertex i1 and second is on the side of vertex i2.
|
||||
vtx = load_vertex(load_index(3u * prim_id + i0));
|
||||
ProcessedVertex other = load_vertex(load_index(3u * prim_id + (is_first_tri ? i1 : i2)));
|
||||
ProcessedVertex opposite = load_vertex(load_index(3u * prim_id + (is_first_tri ? i2 : i1)));
|
||||
|
||||
mat2 pos_deltas = get_xy_deltas_unscaled(vtx, other, opposite);
|
||||
|
||||
// Get the edge expansion directions of both incident edges.
|
||||
vec2 edge_expand_dir_0 = get_aa1_triangle_expand_dir(vtx, other, opposite);
|
||||
vec2 edge_expand_dir_1 = get_aa1_triangle_expand_dir(vtx, opposite, other);
|
||||
|
||||
// Check if the corner is already filled by the expanded edges.
|
||||
// This happens if the expand directions are the same.
|
||||
// If so we output a degenerate triangle at this corner.
|
||||
bool corner_filled = all(equal(edge_expand_dir_0, edge_expand_dir_1));
|
||||
|
||||
// Nothing if corner is filled, otherwise opposite to the bisector of the corner angle.
|
||||
vec2 far_corner_dir = corner_filled ? vec2(0) : -normalize((pos_deltas[0] + pos_deltas[1]) / 2.0f);
|
||||
|
||||
// Determine the expand direction.
|
||||
vec2 expand_dir = is_near_corner ? vec2(0) : // No extrapolation
|
||||
is_far_corner ? far_corner_dir : // Opposite to the angle bisector of corner
|
||||
edge_expand_dir_0; // Standard AA1 edge expansion
|
||||
|
||||
// Do the actual extrapolation (no-op if expand_dir == 0).
|
||||
extrapolate_aa1_triangle_edge(vtx, other, opposite, pos_deltas, expand_dir);
|
||||
|
||||
VSout.inv_cov = is_near_corner ? 0.0f : 1.0f; // Full coverage at near corner, otherwise none.
|
||||
|
||||
VSout.interior = 0u;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
gl_Position = vtx.p;
|
||||
VSout.t_float = vtx.t_float;
|
||||
VSout.t_int = vtx.t_int;
|
||||
VSout.c = vtx.c;
|
||||
}
|
||||
|
||||
#endif // VS_EXPAND
|
||||
|
||||
#endif // VERTEX_SHADER
|
||||
@@ -0,0 +1,400 @@
|
||||
#ifndef PS_SCALE_FACTOR
|
||||
#define PS_SCALE_FACTOR 1.0
|
||||
#endif
|
||||
|
||||
#ifdef VERTEX_SHADER
|
||||
|
||||
layout(location = 0) in vec4 a_pos;
|
||||
layout(location = 1) in vec2 a_tex;
|
||||
|
||||
layout(location = 0) out vec2 v_tex;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(a_pos.x, -a_pos.y, a_pos.z, a_pos.w);
|
||||
v_tex = a_tex;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef FRAGMENT_SHADER
|
||||
|
||||
layout(location = 0) in vec2 v_tex;
|
||||
|
||||
#if defined(ps_convert_rgba8_16bits) || defined(ps_convert_float32_32bits)
|
||||
layout(location = 0) out uint o_col0;
|
||||
#elif !defined(ps_datm1) && \
|
||||
!defined(ps_datm0) && \
|
||||
!defined(ps_convert_rgba8_float32) && \
|
||||
!defined(ps_convert_rgba8_float24) && \
|
||||
!defined(ps_convert_rgba8_float16) && \
|
||||
!defined(ps_convert_rgb5a1_float16) && \
|
||||
!defined(ps_convert_rgba8_float32_biln) && \
|
||||
!defined(ps_convert_rgba8_float24_biln) && \
|
||||
!defined(ps_convert_rgba8_float16_biln) && \
|
||||
!defined(ps_convert_rgb5a1_float16_biln) && \
|
||||
!defined(ps_depth_copy)
|
||||
layout(location = 0) out vec4 o_col0;
|
||||
#endif
|
||||
|
||||
layout(set = 0, binding = 0) uniform sampler2D samp0;
|
||||
|
||||
vec4 sample_c(vec2 uv)
|
||||
{
|
||||
return texture(samp0, uv);
|
||||
}
|
||||
|
||||
#ifdef ps_copy
|
||||
void ps_copy()
|
||||
{
|
||||
o_col0 = sample_c(v_tex);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_depth_copy
|
||||
void ps_depth_copy()
|
||||
{
|
||||
gl_FragDepth = sample_c(v_tex).r;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_filter_transparency
|
||||
void ps_filter_transparency()
|
||||
{
|
||||
vec4 c = sample_c(v_tex);
|
||||
o_col0 = vec4(c.rgb, 1.0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_rgba8_16bits
|
||||
// Need to be careful with precision here, it can break games like Spider-Man 3 and Dogs Life
|
||||
void ps_convert_rgba8_16bits()
|
||||
{
|
||||
uvec4 i = uvec4(sample_c(v_tex) * vec4(255.5f, 255.5f, 255.5f, 255.5f));
|
||||
|
||||
o_col0 = ((i.x & 0x00F8u) >> 3) | ((i.y & 0x00F8u) << 2) | ((i.z & 0x00f8u) << 7) | ((i.w & 0x80u) << 8);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_datm1
|
||||
void ps_datm1()
|
||||
{
|
||||
if(sample_c(v_tex).a < (127.5f / 255.0f)) // >= 0x80 pass
|
||||
discard;
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_datm0
|
||||
void ps_datm0()
|
||||
{
|
||||
if((127.5f / 255.0f) < sample_c(v_tex).a) // < 0x80 pass (== 0x80 should not pass)
|
||||
discard;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_hdr_init
|
||||
void ps_hdr_init()
|
||||
{
|
||||
vec4 value = sample_c(v_tex);
|
||||
o_col0 = vec4(roundEven(value.rgb * 255.0f) / 65535.0f, value.a);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_hdr_resolve
|
||||
void ps_hdr_resolve()
|
||||
{
|
||||
vec4 value = sample_c(v_tex);
|
||||
o_col0 = vec4(vec3(uvec3(value.rgb * 65535.5f) & 255u) / 255.0f, value.a);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_float32_32bits
|
||||
void ps_convert_float32_32bits()
|
||||
{
|
||||
// Convert a vec32 depth texture into a 32 bits UINT texture
|
||||
o_col0 = uint(exp2(32.0f) * sample_c(v_tex).r);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_float32_rgba8
|
||||
void ps_convert_float32_rgba8()
|
||||
{
|
||||
// Convert a vec32 depth texture into a RGBA color texture
|
||||
uint d = uint(sample_c(v_tex).r * exp2(32.0f));
|
||||
o_col0 = vec4(uvec4((d & 0xFFu), ((d >> 8) & 0xFFu), ((d >> 16) & 0xFFu), (d >> 24))) / vec4(255.0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_float16_rgb5a1
|
||||
void ps_convert_float16_rgb5a1()
|
||||
{
|
||||
// Convert a vec32 (only 16 lsb) depth into a RGB5A1 color texture
|
||||
uint d = uint(sample_c(v_tex).r * exp2(32.0f));
|
||||
o_col0 = vec4(uvec4((d & 0x1Fu), ((d >> 5) & 0x1Fu), ((d >> 10) & 0x1Fu), (d >> 15) & 0x01u)) / vec4(32.0f, 32.0f, 32.0f, 1.0f);
|
||||
}
|
||||
#endif
|
||||
|
||||
float rgba8_to_depth32(vec4 unorm)
|
||||
{
|
||||
uvec4 c = uvec4(unorm * vec4(255.5f));
|
||||
return float(c.r | (c.g << 8) | (c.b << 16) | (c.a << 24)) * exp2(-32.0f);
|
||||
}
|
||||
|
||||
float rgba8_to_depth24(vec4 unorm)
|
||||
{
|
||||
uvec3 c = uvec3(unorm.rgb * vec3(255.5f));
|
||||
return float(c.r | (c.g << 8) | (c.b << 16)) * exp2(-32.0f);
|
||||
}
|
||||
|
||||
float rgba8_to_depth16(vec4 unorm)
|
||||
{
|
||||
uvec2 c = uvec2(unorm.rg * vec2(255.5f));
|
||||
return float(c.r | (c.g << 8)) * exp2(-32.0f);
|
||||
}
|
||||
|
||||
float rgb5a1_to_depth16(vec4 unorm)
|
||||
{
|
||||
uvec4 c = uvec4(unorm * vec4(255.5f));
|
||||
return float(((c.r & 0xF8u) >> 3) | ((c.g & 0xF8u) << 2) | ((c.b & 0xF8u) << 7) | ((c.a & 0x80u) << 8)) * exp2(-32.0f);
|
||||
}
|
||||
|
||||
#ifdef ps_convert_rgba8_float32
|
||||
void ps_convert_rgba8_float32()
|
||||
{
|
||||
// Convert an RGBA texture into a float depth texture
|
||||
gl_FragDepth = rgba8_to_depth32(sample_c(v_tex));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_rgba8_float24
|
||||
void ps_convert_rgba8_float24()
|
||||
{
|
||||
// Same as above but without the alpha channel (24 bits Z)
|
||||
|
||||
// Convert an RGBA texture into a float depth texture
|
||||
gl_FragDepth = rgba8_to_depth24(sample_c(v_tex));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_rgba8_float16
|
||||
void ps_convert_rgba8_float16()
|
||||
{
|
||||
// Same as above but without the A/B channels (16 bits Z)
|
||||
|
||||
// Convert an RGBA texture into a float depth texture
|
||||
gl_FragDepth = rgba8_to_depth16(sample_c(v_tex));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_rgb5a1_float16
|
||||
void ps_convert_rgb5a1_float16()
|
||||
{
|
||||
// Convert an RGB5A1 (saved as RGBA8) color to a 16 bit Z
|
||||
gl_FragDepth = rgb5a1_to_depth16(sample_c(v_tex));
|
||||
}
|
||||
#endif
|
||||
|
||||
#define SAMPLE_RGBA_DEPTH_BILN(CONVERT_FN) \
|
||||
ivec2 dims = textureSize(samp0, 0); \
|
||||
vec2 top_left_f = v_tex * vec2(dims) - 0.5f; \
|
||||
ivec2 top_left = ivec2(floor(top_left_f)); \
|
||||
ivec4 coords = clamp(ivec4(top_left, top_left + 1), ivec4(0), dims.xyxy - 1); \
|
||||
vec2 mix_vals = fract(top_left_f); \
|
||||
float depthTL = CONVERT_FN(texelFetch(samp0, coords.xy, 0)); \
|
||||
float depthTR = CONVERT_FN(texelFetch(samp0, coords.zy, 0)); \
|
||||
float depthBL = CONVERT_FN(texelFetch(samp0, coords.xw, 0)); \
|
||||
float depthBR = CONVERT_FN(texelFetch(samp0, coords.zw, 0)); \
|
||||
gl_FragDepth = mix(mix(depthTL, depthTR, mix_vals.x), mix(depthBL, depthBR, mix_vals.x), mix_vals.y);
|
||||
|
||||
#ifdef ps_convert_rgba8_float32_biln
|
||||
void ps_convert_rgba8_float32_biln()
|
||||
{
|
||||
// Convert an RGBA texture into a float depth texture
|
||||
SAMPLE_RGBA_DEPTH_BILN(rgba8_to_depth32);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_rgba8_float24_biln
|
||||
void ps_convert_rgba8_float24_biln()
|
||||
{
|
||||
// Same as above but without the alpha channel (24 bits Z)
|
||||
|
||||
// Convert an RGBA texture into a float depth texture
|
||||
SAMPLE_RGBA_DEPTH_BILN(rgba8_to_depth24);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_rgba8_float16_biln
|
||||
void ps_convert_rgba8_float16_biln()
|
||||
{
|
||||
// Same as above but without the A/B channels (16 bits Z)
|
||||
|
||||
// Convert an RGBA texture into a float depth texture
|
||||
SAMPLE_RGBA_DEPTH_BILN(rgba8_to_depth16);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_rgb5a1_float16_biln
|
||||
void ps_convert_rgb5a1_float16_biln()
|
||||
{
|
||||
// Convert an RGB5A1 (saved as RGBA8) color to a 16 bit Z
|
||||
SAMPLE_RGBA_DEPTH_BILN(rgb5a1_to_depth16);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_rgba_8i
|
||||
void ps_convert_rgba_8i()
|
||||
{
|
||||
// Convert a RGBA texture into a 8 bits packed texture
|
||||
// Input column: 8x2 RGBA pixels
|
||||
// 0: 8 RGBA
|
||||
// 1: 8 RGBA
|
||||
// Output column: 16x4 Index pixels
|
||||
// 0: 8 R | 8 B
|
||||
// 1: 8 R | 8 B
|
||||
// 2: 8 G | 8 A
|
||||
// 3: 8 G | 8 A
|
||||
uvec2 pos = uvec2(gl_FragCoord.xy);
|
||||
|
||||
// Collapse separate R G B A areas into their base pixel
|
||||
uvec2 block = (pos & ~uvec2(15u, 3u)) >> 1;
|
||||
uvec2 subblock = pos & uvec2(7u, 1u);
|
||||
uvec2 coord = block | subblock;
|
||||
|
||||
// Apply offset to cols 1 and 2
|
||||
uint is_col23 = pos.y & 4u;
|
||||
uint is_col13 = pos.y & 2u;
|
||||
uint is_col12 = is_col23 ^ (is_col13 << 1);
|
||||
coord.x ^= is_col12; // If cols 1 or 2, flip bit 3 of x
|
||||
|
||||
if (floor(PS_SCALE_FACTOR) != PS_SCALE_FACTOR)
|
||||
coord = uvec2(vec2(coord) * PS_SCALE_FACTOR);
|
||||
else
|
||||
coord *= uvec2(PS_SCALE_FACTOR);
|
||||
|
||||
vec4 pixel = texelFetch(samp0, ivec2(coord), 0);
|
||||
vec2 sel0 = (pos.y & 2u) == 0u ? pixel.rb : pixel.ga;
|
||||
float sel1 = (pos.x & 8u) == 0u ? sel0.x : sel0.y;
|
||||
o_col0 = vec4(sel1); // Divide by something here?
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_clut_4
|
||||
layout(push_constant) uniform cb10
|
||||
{
|
||||
vec2 scale;
|
||||
uvec2 offset;
|
||||
uint doffset;
|
||||
};
|
||||
|
||||
void ps_convert_clut_4()
|
||||
{
|
||||
// CLUT4 is easy, just two rows of 8x8.
|
||||
uint index = uint(gl_FragCoord.x) + doffset;
|
||||
uvec2 pos = uvec2(index % 8u, index / 8u);
|
||||
|
||||
ivec2 final = ivec2(floor(vec2(offset + pos) * vec2(scale)));
|
||||
o_col0 = texelFetch(samp0, final, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_clut_8
|
||||
layout(push_constant) uniform cb10
|
||||
{
|
||||
vec2 scale;
|
||||
uvec2 offset;
|
||||
uint doffset;
|
||||
};
|
||||
|
||||
void ps_convert_clut_8()
|
||||
{
|
||||
uint index = min(uint(gl_FragCoord.x) + doffset, 255u);
|
||||
|
||||
// CLUT is arranged into 8 groups of 16x2, with the top-right and bottom-left quadrants swapped.
|
||||
// This can probably be done better..
|
||||
uint subgroup = (index / 8u) % 4u;
|
||||
uvec2 pos;
|
||||
pos.x = (index % 8u) + ((subgroup >= 2u) ? 8u : 0u);
|
||||
pos.y = ((index / 32u) * 2u) + (subgroup % 2u);
|
||||
|
||||
ivec2 final = ivec2(floor(vec2(offset + pos) * vec2(scale)));
|
||||
o_col0 = texelFetch(samp0, final, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_yuv
|
||||
layout(push_constant) uniform cb10
|
||||
{
|
||||
int EMODA;
|
||||
int EMODC;
|
||||
};
|
||||
|
||||
void ps_yuv()
|
||||
{
|
||||
vec4 i = sample_c(v_tex);
|
||||
vec4 o = vec4(0.0f);
|
||||
|
||||
mat3 rgb2yuv;
|
||||
rgb2yuv[0] = vec3(0.587, -0.311, -0.419);
|
||||
rgb2yuv[1] = vec3(0.114, 0.500, -0.081);
|
||||
rgb2yuv[2] = vec3(0.299, -0.169, 0.500);
|
||||
|
||||
vec3 yuv = rgb2yuv * i.gbr;
|
||||
|
||||
float Y = float(0xDB)/255.0f * yuv.x + float(0x10)/255.0f;
|
||||
float Cr = float(0xE0)/255.0f * yuv.y + float(0x80)/255.0f;
|
||||
float Cb = float(0xE0)/255.0f * yuv.z + float(0x80)/255.0f;
|
||||
|
||||
switch(EMODA) {
|
||||
case 0:
|
||||
o.a = i.a;
|
||||
break;
|
||||
case 1:
|
||||
o.a = Y;
|
||||
break;
|
||||
case 2:
|
||||
o.a = Y/2.0f;
|
||||
break;
|
||||
case 3:
|
||||
o.a = 0.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
switch(EMODC) {
|
||||
case 0:
|
||||
o.rgb = i.rgb;
|
||||
break;
|
||||
case 1:
|
||||
o.rgb = vec3(Y);
|
||||
break;
|
||||
case 2:
|
||||
o.rgb = vec3(Y, Cb, Cr);
|
||||
break;
|
||||
case 3:
|
||||
o.rgb = vec3(i.a);
|
||||
break;
|
||||
}
|
||||
|
||||
o_col0 = o;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(ps_stencil_image_init_0) || defined(ps_stencil_image_init_1)
|
||||
|
||||
void main()
|
||||
{
|
||||
o_col0 = vec4(0x7FFFFFFF);
|
||||
|
||||
#ifdef ps_stencil_image_init_0
|
||||
if((127.5f / 255.0f) < sample_c(v_tex).a) // < 0x80 pass (== 0x80 should not pass)
|
||||
o_col0 = vec4(-1);
|
||||
#endif
|
||||
#ifdef ps_stencil_image_init_1
|
||||
if(sample_c(v_tex).a < (127.5f / 255.0f)) // >= 0x80 pass
|
||||
o_col0 = vec4(-1);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,228 @@
|
||||
#ifdef VERTEX_SHADER
|
||||
|
||||
layout(location = 0) in vec4 a_pos;
|
||||
layout(location = 1) in vec2 a_tex;
|
||||
|
||||
layout(location = 0) out vec2 v_tex;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(a_pos.x, -a_pos.y, a_pos.z, a_pos.w);
|
||||
v_tex = a_tex;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef FRAGMENT_SHADER
|
||||
|
||||
layout(location = 0) in vec2 v_tex;
|
||||
layout(location = 0) out vec4 o_col0;
|
||||
|
||||
layout(push_constant) uniform cb0
|
||||
{
|
||||
vec4 ZrH;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 0) uniform sampler2D samp0;
|
||||
|
||||
|
||||
// Weave shader
|
||||
#ifdef ps_main0
|
||||
void ps_main0()
|
||||
{
|
||||
const int idx = int(ZrH.x); // buffer index passed from CPU
|
||||
const int field = idx & 1; // current field
|
||||
const int vpos = int(gl_FragCoord.y); // vertical position of destination texture
|
||||
|
||||
if ((vpos & 1) == field)
|
||||
o_col0 = textureLod(samp0, v_tex, 0);
|
||||
else
|
||||
discard;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
// Bob shader
|
||||
#ifdef ps_main1
|
||||
void ps_main1()
|
||||
{
|
||||
o_col0 = textureLod(samp0, v_tex, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
// Blend shader
|
||||
#ifdef ps_main2
|
||||
void ps_main2()
|
||||
{
|
||||
vec2 vstep = vec2(0.0f, ZrH.y);
|
||||
vec4 c0 = textureLod(samp0, v_tex - vstep, 0);
|
||||
vec4 c1 = textureLod(samp0, v_tex, 0);
|
||||
vec4 c2 = textureLod(samp0, v_tex + vstep, 0);
|
||||
|
||||
o_col0 = (c0 + c1 * 2.0f + c2) / 4.0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
// MAD shader - buffering
|
||||
#ifdef ps_main3
|
||||
void ps_main3()
|
||||
{
|
||||
// We take half the lines from the current frame and stores them in the MAD frame buffer.
|
||||
// the MAD frame buffer is split in 2 consecutive banks of 2 fields each, the fields in each bank
|
||||
// are interleaved (top field at even lines and bottom field at odd lines).
|
||||
// When the source texture has an odd vres, the first line of bank 1 would be an odd index
|
||||
// causing the wrong lines to be discarded, so a vertical offset (lofs) is added to the vertical
|
||||
// position of the destination texture to force the proper field alignment
|
||||
|
||||
const int idx = int(ZrH.x); // buffer index passed from CPU
|
||||
const int bank = idx >> 1; // current bank
|
||||
const int field = idx & 1; // current field
|
||||
const int vres = int(ZrH.z) >> 1; // vertical resolution of source texture
|
||||
const int lofs = ((((vres + 1) >> 1) << 1) - vres) & bank; // line alignment offset for bank 1
|
||||
const int vpos = int(gl_FragCoord.y) + lofs; // vertical position of destination texture
|
||||
const vec2 bofs = vec2(0.0f, 0.5f * bank); // vertical offset of the current bank relative to source texture size
|
||||
const vec2 vscale = vec2(1.0f, 2.0f); // scaling factor from source to destination texture
|
||||
const vec2 optr = v_tex - bofs; // used to check if the current destination line is within the current bank
|
||||
const vec2 iptr = optr * vscale; // pointer to the current pixel in the source texture
|
||||
|
||||
// if the index of current destination line belongs to the current fiels we update it, otherwise
|
||||
// we leave the old line in the destination buffer
|
||||
if ((optr.y >= 0.0f) && (optr.y < 0.5f) && ((vpos & 1) == field))
|
||||
o_col0 = textureLod(samp0, iptr, 0);
|
||||
else
|
||||
discard;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
// MAD shader - reconstruction
|
||||
#ifdef ps_main4
|
||||
void ps_main4()
|
||||
{
|
||||
// we use the contents of the MAD frame buffer to reconstruct the missing lines from the current
|
||||
// field.
|
||||
|
||||
const int idx = int(ZrH.x); // buffer index passed from CPU
|
||||
const int bank = idx >> 1; // current bank
|
||||
const int field = idx & 1; // current field
|
||||
const int vpos = int(gl_FragCoord.y); // vertical position of destination texture
|
||||
const float sensitivity = ZrH.w; // passed from CPU, higher values mean more likely to use weave
|
||||
const vec3 motion_thr = vec3(1.0, 1.0, 1.0) * sensitivity; //
|
||||
const vec2 bofs = vec2(0.0f, 0.5f); // position of the bank 1 relative to source texture size
|
||||
const vec2 vscale = vec2(1.0f, 0.5f); // scaling factor from source to destination texture
|
||||
const vec2 lofs = vec2(0.0f, ZrH.y) * vscale; // distance between two adjacent lines relative to source texture size
|
||||
const vec2 iptr = v_tex * vscale; // pointer to the current pixel in the source texture
|
||||
|
||||
vec2 p_t0; // pointer to current pixel (missing or not) from most recent frame
|
||||
vec2 p_t1; // pointer to current pixel (missing or not) from one frame back
|
||||
vec2 p_t2; // pointer to current pixel (missing or not) from two frames back
|
||||
vec2 p_t3; // pointer to current pixel (missing or not) from three frames back
|
||||
|
||||
switch (idx)
|
||||
{
|
||||
case 1:
|
||||
p_t0 = iptr;
|
||||
p_t1 = iptr;
|
||||
p_t2 = iptr + bofs;
|
||||
p_t3 = iptr + bofs;
|
||||
break;
|
||||
case 2:
|
||||
p_t0 = iptr + bofs;
|
||||
p_t1 = iptr;
|
||||
p_t2 = iptr;
|
||||
p_t3 = iptr + bofs;
|
||||
break;
|
||||
case 3:
|
||||
p_t0 = iptr + bofs;
|
||||
p_t1 = iptr + bofs;
|
||||
p_t2 = iptr;
|
||||
p_t3 = iptr;
|
||||
break;
|
||||
default:
|
||||
p_t0 = iptr;
|
||||
p_t1 = iptr + bofs;
|
||||
p_t2 = iptr + bofs;
|
||||
p_t3 = iptr;
|
||||
break;
|
||||
}
|
||||
|
||||
// calculating motion, only relevant for missing lines where the "center line" is pointed by p_t1
|
||||
|
||||
vec4 hn = textureLod(samp0, p_t0 - lofs, 0); // new high pixel
|
||||
vec4 cn = textureLod(samp0, p_t1, 0); // new center pixel
|
||||
vec4 ln = textureLod(samp0, p_t0 + lofs, 0); // new low pixel
|
||||
|
||||
vec4 ho = textureLod(samp0, p_t2 - lofs, 0); // old high pixel
|
||||
vec4 co = textureLod(samp0, p_t3, 0); // old center pixel
|
||||
vec4 lo = textureLod(samp0, p_t2 + lofs, 0); // old low pixel
|
||||
|
||||
vec3 mh = hn.rgb - ho.rgb; // high pixel motion
|
||||
vec3 mc = cn.rgb - co.rgb; // center pixel motion
|
||||
vec3 ml = ln.rgb - lo.rgb; // low pixel motion
|
||||
|
||||
mh = max(mh, -mh) - motion_thr;
|
||||
mc = max(mc, -mc) - motion_thr;
|
||||
ml = max(ml, -ml) - motion_thr;
|
||||
|
||||
#if 1 // use this code to evaluate each color motion separately
|
||||
float mh_max = max(max(mh.x, mh.y), mh.z);
|
||||
float mc_max = max(max(mc.x, mc.y), mc.z);
|
||||
float ml_max = max(max(ml.x, ml.y), ml.z);
|
||||
#else // use this code to evaluate average color motion
|
||||
float mh_max = mh.x + mh.y + mh.z;
|
||||
float mc_max = mc.x + mc.y + mc.z;
|
||||
float ml_max = ml.x + ml.y + ml.z;
|
||||
#endif
|
||||
|
||||
// selecting deinterlacing output
|
||||
|
||||
if ((vpos & 1) == field) // output coordinate present on current field
|
||||
{
|
||||
// output coordinate present on current field
|
||||
o_col0 = textureLod(samp0, p_t0, 0);
|
||||
}
|
||||
else if ((iptr.y > 0.5f - lofs.y) || (iptr.y < 0.0 + lofs.y))
|
||||
{
|
||||
// top and bottom lines are always weaved
|
||||
o_col0 = cn;
|
||||
}
|
||||
else
|
||||
{
|
||||
// missing line needs to be reconstructed
|
||||
if(((mh_max > 0.0f) || (ml_max > 0.0f)) || (mc_max > 0.0f))
|
||||
// high motion -> interpolate pixels above and below
|
||||
o_col0 = (hn + ln) / 2.0f;
|
||||
else
|
||||
{
|
||||
// Check if it's completely static first, we don't need to mess with any of that.
|
||||
if((mh_max != -motion_thr.x) || (ml_max != -motion_thr.x) || (mc_max != -motion_thr.x))
|
||||
{
|
||||
// Check the diff with the above and below lines, if the difference is smaller between the new high and low lines
|
||||
// compared to the new centre line and the high line (with some threshold of about 25 color steps), then reconstruct.
|
||||
vec3 mhln = hn.rgb - ln.rgb;
|
||||
vec3 mchn = hn.rgb - cn.rgb;
|
||||
|
||||
mhln = max(mhln, -mhln) - motion_thr;
|
||||
mchn = max(mchn, -mchn) - motion_thr;
|
||||
|
||||
float mhln_max = max(max(mhln.x, mhln.y), mhln.z);
|
||||
float mchn_max = max(max(mchn.x, mchn.y), mchn.z);
|
||||
|
||||
// The new centre line is a fair chunk different from those surrounding it, so quite likely incorrect.
|
||||
if (mhln_max < 0.0f && mchn_max >= (mhln_max * 0.90f))
|
||||
o_col0 = (hn + ln) / 2.0f;
|
||||
else
|
||||
// low motion -> weave
|
||||
o_col0 = cn;
|
||||
}
|
||||
else
|
||||
// low motion -> weave
|
||||
o_col0 = cn;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||