├── .gitignore ├── files ├── own_scenarios │ └── index.md ├── 1602edit.exe.md ├── savegame │ └── index.md ├── figuren.cod.md ├── noklima │ └── index.md ├── gfx │ └── index.md ├── mgfx │ └── index.md ├── sgfx │ └── index.md ├── editor.cod.md ├── toolgfx │ └── index.md ├── videosmk │ └── index.md ├── gaddata │ └── index.md ├── text.cod.md ├── gadedit │ └── index.md ├── 1602.exe.md ├── nordnat │ └── index.md ├── samples │ └── index.md ├── suednat │ └── index.md ├── index.md ├── music8 │ └── index.md ├── nord │ └── index.md ├── sued │ └── index.md ├── szenes │ └── index.md ├── haeuser.cod.md ├── speech8 │ └── index.md └── game.dat.md ├── _config.yml ├── file_formats ├── szm.md ├── szs.md ├── gam.md ├── scp.md ├── chunks │ ├── wiff.md │ ├── szene_ranking.md │ ├── randtab.md │ ├── name.md │ ├── szene_missnr.md │ ├── szene_gameid.md │ └── szene_kampagne.md ├── index.md ├── text.md ├── col.md ├── encryption.md ├── hss.md ├── chunks.md ├── bsh.md ├── script.md └── anno16_chunks.hexpat ├── README.md ├── additional_resources.md ├── _layouts └── default.html ├── version_differences.md └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | -------------------------------------------------------------------------------- /files/own_scenarios/index.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /file_formats/szm.md: -------------------------------------------------------------------------------- 1 | # SZM # 2 | 3 | -------------------------------------------------------------------------------- /file_formats/szs.md: -------------------------------------------------------------------------------- 1 | # SZS # 2 | 3 | -------------------------------------------------------------------------------- /files/1602edit.exe.md: -------------------------------------------------------------------------------- 1 | # Editor (1602edit.exe) # 2 | 3 | -------------------------------------------------------------------------------- /file_formats/gam.md: -------------------------------------------------------------------------------- 1 | # GAM # 2 | The SaveGame file format. 3 | 4 | -------------------------------------------------------------------------------- /file_formats/scp.md: -------------------------------------------------------------------------------- 1 | # SCP # 2 | 3 | Is a [Chunks](./chunks.md) file format used for Islands. 4 | 5 | It contains at least one of the following **Chunks**: 6 | - INSEL3 7 | - INSEL4 8 | - INSEL5 9 | 10 | -------------------------------------------------------------------------------- /files/savegame/index.md: -------------------------------------------------------------------------------- 1 | # /savegame # 2 | 3 | This Folder is used on old Windows systems for [Savegames](../../file_formats/gam.md). 4 | 5 | It contains an autosave file `lastgame.gam` and a list of **Savegames**. 6 | 7 | -------------------------------------------------------------------------------- /file_formats/chunks/wiff.md: -------------------------------------------------------------------------------- 1 | # Chunks WIFF # 2 | 3 | Always 4 bytes long. 4 | It seems to be a checksum (??). 5 | The game does read this [Chunk](../chunks.md) while loading a file (??). 6 | 7 | ## Used in ## 8 | 9 | - [GAM](../gam.md) 10 | 11 | -------------------------------------------------------------------------------- /file_formats/chunks/szene_ranking.md: -------------------------------------------------------------------------------- 1 | # Chunk SZENE_RANKING # 2 | 3 | Always 4 bytes. Contains a 32bit (unsigned??) integer. 4 | 5 | ## Observed Values ## 6 | 7 | TODO: where 8 | 9 | - 0 10 | - 1 11 | - 2 12 | - 3 13 | 14 | ## Used in ## 15 | 16 | - [SZS](../szs.md) 17 | - [SZM](../szm.md) 18 | 19 | -------------------------------------------------------------------------------- /files/figuren.cod.md: -------------------------------------------------------------------------------- 1 | # /figuren.cod # 2 | 3 | Is an [Encrypted](../file_formats/encryption.md) [Script](../file_formats/script.md). 4 | 5 | ## List of Object Types ## 6 | 7 | ### FORMATION ### 8 | 9 | | ID | Expected Values | Use | 10 | |---------------|-------------------|-----| 11 | | | | | 12 | 13 | -------------------------------------------------------------------------------- /file_formats/chunks/randtab.md: -------------------------------------------------------------------------------- 1 | # Chunk RANDTAB # 2 | 3 | It should always have a length of 1024 bytes. It contains 512 16bit integers used for **Random Number Generation** during Szene file setup (??). 4 | 5 | ## Memory Layout ## 6 | 7 | 512x 16bit-intergers. 8 | 9 | ## Used in ## 10 | 11 | - [SZS](../szs.md) 12 | - [SZM](../szm.md) 13 | 14 | -------------------------------------------------------------------------------- /files/noklima/index.md: -------------------------------------------------------------------------------- 1 | # /noklima # 2 | 3 | This Folder contains Island [scp](../../file_formats/scp.md)s, one for each size. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | big.scp | 70x60 | 10 | | lar.SCP | 100x90 | 11 | | lit.scp | 30x30 | 12 | | med.scp | 50x52 | 13 | | mit.scp | 40x40 | 14 | 15 | -------------------------------------------------------------------------------- /file_formats/index.md: -------------------------------------------------------------------------------- 1 | # File Formats # 2 | 3 | - [BSH](./bsh.md) 4 | - [Chunks](./chunks.md) 5 | - [Encryption](./encryption.md) 6 | - [GAM](./gam.md) 7 | - [HSS](./hss.md) 8 | - [SCP](./scp.md) 9 | - [Script](./script.md) 10 | - [SZM](./szm.md) 11 | - [SZS](./szs.md) 12 | - [Text](./text.md) 13 | 14 | ## Notes ## 15 | If not specified otherwise, Numbers are in Little-Endian! 16 | 17 | -------------------------------------------------------------------------------- /file_formats/chunks/name.md: -------------------------------------------------------------------------------- 1 | # Chunk NAME # 2 | 3 | This [Chunk](../chunks.md) contains the **Name** of the Scenario/Savegame. 4 | 5 | ## Memory Layout ## 6 | 7 | After the [Chunk Header](../chunks.md#chunk-header) is a C-String (not '\0' terminated??) of the length of the **Chunk**. 8 | 9 | ## Used in ## 10 | 11 | - [SZS](../szs.md) 12 | - [SZM](../szm.md) 13 | - [GAM](../gam.md) 14 | 15 | -------------------------------------------------------------------------------- /file_formats/chunks/szene_missnr.md: -------------------------------------------------------------------------------- 1 | # Chunk SZENE_MISSNR # 2 | 3 | Always 4 bytes. Contains a 32bit (unsigned??) integer. 4 | 5 | ## Observed Values ## 6 | 7 | TODO: where 8 | 9 | - 0 10 | - 1 11 | - 2 12 | - 3 13 | - 4 14 | - 5 15 | - 6 16 | - 7 17 | - 8 18 | - 9 19 | - 10 20 | - 11 21 | - 12 22 | - 13 23 | - 14 24 | - 15 `Die Piratenplage.szs` 25 | - 16 `Der Eindringling.szs` 26 | - 17 `Die Festung.szs` 27 | 28 | 29 | -------------------------------------------------------------------------------- /file_formats/chunks/szene_gameid.md: -------------------------------------------------------------------------------- 1 | # Chunk SZENE_GAMEID # 2 | 3 | Always 4 bytes. Contains a 32bit (unsigned??) integer. 4 | Seems to be an **Unique Identifier** for **Scenarios**. 5 | 6 | ## some Observed Values ## 7 | 8 | - 1755982193 `Wenig Bauland.szm` 9 | - 1782304250 `Wenig Land.szs` 10 | - 1807979078 `Zwei sind einer zuviel.szm` 11 | 12 | ## Used in ## 13 | 14 | - [SZS](../szs.md) 15 | - [SZM](../szm.md) 16 | 17 | -------------------------------------------------------------------------------- /file_formats/text.md: -------------------------------------------------------------------------------- 1 | # Text # 2 | 3 | Text Files contain most **Strings** used in the Game and are used for localization. 4 | The **Strings** can contain `printf` formatting information. 5 | 6 | ## File Structure ## 7 | 8 | The file is divided into **Sections** seperated by a *dash-line* of 50 dashes. 9 | Each **Section** starts with a UPPERCASE Section name in **Brackets** eg. `[GAME]` and ends with `[END]`. 10 | 11 | ## Unused Sections ## 12 | 13 | - WARES 14 | 15 | -------------------------------------------------------------------------------- /file_formats/chunks/szene_kampagne.md: -------------------------------------------------------------------------------- 1 | # Chunk SZENE_KAMPAGNE # 2 | 3 | Always 4 bytes. Contains a 32bit (unsigned??) integer. 4 | Use unknown. 5 | If present, it's the first **Chunk**. 6 | Files containing this **Chunk** have an number at the end before the file ending. 7 | eg: `Some Scenario0.szs` 8 | 9 | ## Observed Values ## 10 | 11 | TODO: where 12 | 13 | - 0 14 | - 1 15 | - 2 16 | - 3 17 | - 4 18 | - 5 19 | 20 | ## Used in ## 21 | 22 | - [SZS](../szs.md) 23 | 24 | -------------------------------------------------------------------------------- /files/gfx/index.md: -------------------------------------------------------------------------------- 1 | # /gfx # 2 | 3 | This folder contains the [BSH](../../file_formats/bsh.md) files for max zoom. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | EFFEKTE.BSH | | 10 | | FISCHE.BSH | | 11 | | GAUKLER.BSH | | 12 | | MAEHER.BSH | | 13 | | NUMBERS.BSH | | 14 | | SCHATTEN.BSH | | 15 | | SHIP.BSH | | 16 | | SOLDAT.BSH | | 17 | | STADTFLD.BSH | | 18 | | TIERE.BSH | | 19 | | TRAEGER.BSH | | 20 | -------------------------------------------------------------------------------- /files/mgfx/index.md: -------------------------------------------------------------------------------- 1 | # /mgfx # 2 | 3 | This folder contains the [BSH](../../file_formats/bsh.md) files for medium zoom. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | EFFEKTE.BSH | | 10 | | FISCHE.BSH | | 11 | | GAUKLER.BSH | | 12 | | MAEHER.BSH | | 13 | | NUMBERS.BSH | | 14 | | SCHATTEN.BSH | | 15 | | SHIP.BSH | | 16 | | SOLDAT.BSH | | 17 | | STADTFLD.BSH | | 18 | | TIERE.BSH | | 19 | | TRAEGER.BSH | | 20 | -------------------------------------------------------------------------------- /files/sgfx/index.md: -------------------------------------------------------------------------------- 1 | # /sgfx # 2 | 3 | This folder contains the [BSH](../../file_formats/bsh.md) files for minimum zoom. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | EFFEKTE.BSH | | 10 | | FISCHE.BSH | | 11 | | GAUKLER.BSH | | 12 | | MAEHER.BSH | | 13 | | NUMBERS.BSH | | 14 | | SCHATTEN.BSH | | 15 | | SHIP.BSH | | 16 | | SOLDAT.BSH | | 17 | | STADTFLD.BSH | | 18 | | TIERE.BSH | | 19 | | TRAEGER.BSH | | 20 | -------------------------------------------------------------------------------- /files/editor.cod.md: -------------------------------------------------------------------------------- 1 | # editor.cod # 2 | 3 | [Encrypted](../file_formats/encryption.md) [Text](../file_formats/text.md) 4 | 5 | The file is used by the [Editor](./1602edit.exe.md). 6 | 7 | It differs from the [text.cod](./text.cod.md) only(??) in additional **Sections**. 8 | 9 | ## Additional Section List ## 10 | 11 | | Name | Notes | 12 | |---------------|-------| 13 | | EDITOR | | 14 | | NATIVES | | 15 | | PIRATEN | | 16 | | COPYIT | | 17 | 18 | Does not contain from `text.cod`: 19 | - KAMPAGNE 20 | - DEMO 21 | 22 | -------------------------------------------------------------------------------- /file_formats/col.md: -------------------------------------------------------------------------------- 1 | # COL 2 | 3 | Col is the file format used to store the color palette for the game. 4 | 5 | ## Format and Structure 6 | The [Chunk Header](./chunks.md#chunk-header) identifier is COL. 7 | After the first 20 bytes there are the stored the RGB values one byte per color channel. 8 | ``` 9 | R G B 10 | 0x00, 0x00, 0x00, 11 | 0x80, 0x00, 0x00, 12 | 0x00, 0x80, 0x00, 13 | 0x80, 0x80, 0x00, 14 | 0x00, 0x00, 0x80, 15 | 0x6d, 0x1f, 0x6c, 16 | 0x00, 0x80, 0x80, 17 | 0xc0, 0xc0, 0xc0, 18 | ... 19 | ``` 20 | -------------------------------------------------------------------------------- /file_formats/encryption.md: -------------------------------------------------------------------------------- 1 | # Encryption # 2 | 3 | It's not really `Encryption` but anyway, some game data text files are encrypted using [Two's complement](https://en.wikipedia.org/wiki/Two%27s_complement). Since it's used to represent negative values in signed integers, one can simply de-/encrypt it using the sign operator `-`. 4 | 5 | for example in C: 6 | ```C 7 | char decrypted = -encrypted; 8 | ``` 9 | 10 | ## Encrypted Files ## 11 | 12 | Usualy all files ending with `.cod`. 13 | 14 | - editor.cod 15 | - figuren.cod 16 | - haeuser.cod 17 | - text.cod 18 | 19 | ## Notes ## 20 | 21 | [MDCII-Engine Implementation](https://github.com/roybaer/mdcii-engine/blob/master/src/codcat.cpp) 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Anno 1602 Knowledge Database # 2 | 3 | ## Contents ## 4 | 5 | - [Files](./files/index.md) sorted by folder and type 6 | - [File Formats](./file_formats/index.md) 7 | - [Version and Language Differences](./version_differences.md) 8 | 9 | [Additional Resources](./additional_resources.md) 10 | 11 | ## Help Wanted ! ## 12 | 13 | There is still a lot of information **missing** and/or needs **validation** (search for questionmarks). 14 | If you have any, please feel free to open an **Issue** or **Pull request**. 15 | Also specifically, there are a lot of differences between versions and revisions, that are not yet in this repository. 16 | 17 | ## License ## 18 | 19 | This wiki is licensend under [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/), if not stated otherwise. 20 | 21 | -------------------------------------------------------------------------------- /file_formats/hss.md: -------------------------------------------------------------------------------- 1 | # HSS and HSM # 2 | 3 | Is a [Script](./script.md) file used to save the **Highscore** of the corresponding **Mission**. The HS**S** is used for **Singleplayer** and the HS**M** is used for **Multiplayer** scores. 4 | 5 | An Example of `Endlosspiel.hsm` after two matches: 6 | ``` 7 | 8 | Objekt: HISCORE 9 | 10 | Entry: 0, "player2", 3979, 2, 343421086 11 | Entry: 1, "player2", 3769, 1, 187799765 12 | Entry: 2, "player3", 3206, 1, 187799765 13 | Entry: 3, "player3", 2840, 2, 343421086 14 | Entry: 4, "Green-Sky", 2744, 1, 187799765 15 | Entry: 5, "Green-Sky", 2712, 2, 343421086 16 | Entry: 6, "", 0, 0, 0 17 | Entry: 7, "", 0, 0, 0 18 | Entry: 8, "", 0, 0, 0 19 | Entry: 9, "", 0, 0, 0 20 | Entry: 10, "", 0, 0, 0 21 | Entry: 11, "", 0, 0, 0 22 | 23 | EndObj; 24 | 25 | 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /files/toolgfx/index.md: -------------------------------------------------------------------------------- 1 | # /toolgfx # 2 | 3 | This Folder contains the [BSH](../../file_formats/bsh.md) files for placing buildings, the Editor, symbols for tools and character/fonts with the `.zei` file ending. It also contains a `stadtfld.col` Autodesk(??) Color Palette and the Pause Video `6s.smk`. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | 6s.smk | the Pause Video | 10 | | BAUHAUS.BSH | | 11 | | BAUHAUS6.BSH | | 12 | | BAUHAUS8.BSH | | 13 | | BAUSHIP.BSH | | 14 | | Bauship6.bsh | | 15 | | Bauship8.bsh | | 16 | | Editor.bsh | | 17 | | Editor6.bsh | | 18 | | Editor8.bsh | | 19 | | STADTFLD.COL | Color Palette | 20 | | START.BSH | | 21 | | Start6.bsh | | 22 | | Start8.bsh | | 23 | | SYMBOL.BSH | | 24 | | TOOLS.BSH | | 25 | | TOOLS6.BSH | | 26 | | TOOLS8.BSH | | 27 | | ZEI11A.ZEI | | 28 | | ZEI14A.ZEI | | 29 | | ZEI14V.ZEI | | 30 | | ZEI16G.ZEI | | 31 | | ZEI16H.ZEI | | 32 | | ZEI16V.ZEI | | 33 | | ZEI2.ZEI | | 34 | | ZEI20H.ZEI | | 35 | | ZEI20V.ZEI | | 36 | | ZEI24V.ZEI | | 37 | | ZEI28V.ZEI | | 38 | | ZEI9A.ZEI | | 39 | 40 | 41 | -------------------------------------------------------------------------------- /files/videosmk/index.md: -------------------------------------------------------------------------------- 1 | # /videosmk # 2 | 3 | This Folder contains prerendered videos and cutscenes und the [Smaker video](https://en.wikipedia.org/wiki/Smacker_video) file format. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | 6.smk | | 10 | | 8.smk | | 11 | | 9.smk | | 12 | | 10.smk | | 13 | | 58.smk | | 14 | | 60.smk | | 15 | | 141.smk | | 16 | | 153.smk | | 17 | | 177.smk | | 18 | | 187.smk | | 19 | | 198.smk | | 20 | | 211.smk | | 21 | | 241.smk | | 22 | | 252.smk | | 23 | | 262.smk | | 24 | | 270.smk | | 25 | | 282.smk | | 26 | | 295.smk | | 27 | | 334.smk | | 28 | | 626.smk | | 29 | | 660.smk | | 30 | | 675.smk | | 31 | | 774.smk | | 32 | | 784.smk | | 33 | | 785.smk | | 34 | | 911.smk | | 35 | | 933.smk | | 36 | | 986.smk | | 37 | | 988.smk | | 38 | | 989.smk | | 39 | | 992.smk | | 40 | | 998.smk | | 41 | | 1010.smk | | 42 | | 2000.smk | | 43 | | 2010.smk | | 44 | | 2020.smk | | 45 | | 2030.smk | | 46 | | 2040.smk | | 47 | | 2050.smk | | 48 | | 2060.smk | | 49 | | 2061.smk | | 50 | | 2070.smk | | 51 | | 2080.smk | | 52 | | 2100.smk | | 53 | | 2110.smk | | 54 | | 2120.smk | | 55 | | 2500.smk | | 56 | | 2510.smk | | 57 | | 2520.smk | | 58 | | 2530.smk | | 59 | | 2990.smk | | 60 | 61 | -------------------------------------------------------------------------------- /files/gaddata/index.md: -------------------------------------------------------------------------------- 1 | # /gaddata # 2 | 3 | This Folder contains all the GUI information in the form of [Script](../../file_formats/script.md) files with a `.gad` file ending. 4 | With the exeption of an `.inc` file, which is an file included in other `.gad` files. 5 | 6 | ## List of Files ## 7 | 8 | | Name | Notes | 9 | |---------------|---------------------| 10 | | ANNO.GAD | | 11 | | BASE.GAD | | 12 | | BAU.GAD | | 13 | | BAUKONT.GAD | | 14 | | BAUSHIP.GAD | | 15 | | BERGWERK.GAD | | 16 | | BUBBLE.GAD | | 17 | | BUBBLE01.GAD | | 18 | | CHAT.GAD | | 19 | | CLIENT.GAD | | 20 | | CTRL.GAD | | 21 | | DISK.GAD | | 22 | | ENDE.GAD | | 23 | | ENDE_DEM.GAD | | 24 | | FARBWAHL.GAD | | 25 | | HANDEL.GAD | | 26 | | HOST.GAD | | 27 | | INFO.GAD | | 28 | | INFRA.GAD | | 29 | | KONTOR.GAD | | 30 | | LAGER.GAD | | 31 | | LEIST.GAD | | 32 | | MARKT.GAD | | 33 | | MILITAR.GAD | | 34 | | MISSION.GAD | | 35 | | MISSZIEL.GAD | | 36 | | MKSHIP.GAD | | 37 | | MKSOLDAT.GAD | | 38 | | MUSIK.GAD | | 39 | | OPTION.GAD | | 40 | | PIRAT.GAD | | 41 | | PIRATORD.GAD | | 42 | | PLANTAGE.GAD | | 43 | | PROD.GAD | | 44 | | ROUTE.GAD | | 45 | | SCAPE.GAD | | 46 | | SHIP.GAD | | 47 | | SHIPLIST.GAD | | 48 | | SIEDLER.GAD | | 49 | | SKSHIP.GAD | | 50 | | SKSOLDAT.GAD | | 51 | | STADT.GAD | | 52 | | STADTLST.GAD | | 53 | | TOOLS.INC | | 54 | | TRADE.GAD | | 55 | | TRADER.GAD | | 56 | | TRANSFER.GAD | | 57 | | TRIBUT.GAD | | 58 | | TUTOR.GAD | | 59 | | VERTRAG.GAD | | 60 | | WAITLOAD.GAD | | 61 | | WERFT.GAD | | 62 | 63 | -------------------------------------------------------------------------------- /files/text.cod.md: -------------------------------------------------------------------------------- 1 | # text.cod # 2 | 3 | [Encrypted](../file_formats/encryption.md) [Text](../file_formats/text.md) 4 | 5 | 6 | ## Section List ## 7 | 8 | | Name | Notes | 9 | |---------------|-------| 10 | | GAME | mixed, a lot of `printf` formatted ones | 11 | | LEISTE | strings used in the status bar at the bottom | 12 | | PLAYCOL | player colors | 13 | | VIDEOKIND | kind of video (theres just 3) | 14 | | SPEECHKIND | kind of speech event | 15 | | ERROR | error messages | 16 | | PATH | localized path name for [Own Scenarios](./own_scenarios/index.md) | 17 | | ENDLESSKIND | names for Endlessgame difficulties | 18 | | TUTORKIND | names for the Tutorial Missions | 19 | | KAMPAGNE | localized names for Campaign Missions | 20 | | FIGKIND | kind of figure | 21 | | WARE | localized string for Wares | 22 | | WAREM | same(??) | 23 | | ROHST | Resources | 24 | | ROHSTFELD | Resource Buildings | 25 | | MILITAR | Milliary Buildings | 26 | | WOHNHAUS | Residence Building | 27 | | STRASSE | Street Buildings | 28 | | BERGWERK | Mining Buildings | 29 | | HANDWERK | Craft Buildings | 30 | | FARM | Agrarian Buildings | 31 | | HAFEN | Harbor Buildings | 32 | | DIVERS | Miscellaneous Buildings | 33 | | ABRISS | Demolish Building | 34 | | LANDSCHAFT | Buildings not placable by the Player | 35 | | BUBBLES | bubbles? | 36 | | TUTOR | text for the tutorial | 37 | | MELDUNG | messages for events | 38 | | STAEDTE | list of city names | 39 | | SHIPS | list of ship names | 40 | | DEMO | only contains `password:` | 41 | 42 | -------------------------------------------------------------------------------- /files/gadedit/index.md: -------------------------------------------------------------------------------- 1 | # /gadedit # 2 | 3 | This Folder contains all the GUI information for the Editor in the form of [Script](../../file_formats/script.md). 4 | Very simular to the [/gaddata Folder](../gaddata/index.md), but not all files are the same and some files only exist in one folder. 5 | 6 | ## List of Files ## 7 | 8 | | Name | Notes | 9 | |---------------|---------------------| 10 | | ANNO.GAD | | 11 | | BAU.GAD | | 12 | | BAUEDIT.GAD | | 13 | | BAUKONT.GAD | | 14 | | BAUSHIP.GAD | | 15 | | BERGWERK.GAD | | 16 | | BUBBLE.GAD | | 17 | | CHAT.GAD | | 18 | | CTRL.GAD | | 19 | | DISK.GAD | | 20 | | EDITOR.GAD | | 21 | | ERZBERG.GAD | | 22 | | HANDEL.GAD | | 23 | | INFO.GAD | | 24 | | INFRA.GAD | | 25 | | INSEL.GAD | | 26 | | INSELDAT.GAD | | 27 | | KONTOR.GAD | | 28 | | LAGER.GAD | | 29 | | LEIST.GAD | | 30 | | Leistful.gad | | 31 | | MAIN.GAD | | 32 | | MILITAR.GAD | | 33 | | MISSZIEL.GAD | | 34 | | MKSHIP.GAD | | 35 | | MKSOLDAT.GAD | | 36 | | MUSIK.GAD | | 37 | | OPTION.GAD | | 38 | | PIRAT.GAD | | 39 | | PIRATORD.GAD | | 40 | | PLANTAGE.GAD | | 41 | | PLAYER.GAD | | 42 | | PROD.GAD | | 43 | | RANDOM.GAD | | 44 | | ROUTE.GAD | | 45 | | SCAPE.GAD | | 46 | | SHIP.GAD | | 47 | | SHIPEDIT.GAD | | 48 | | SHIPLIST.GAD | | 49 | | SIEDLER.GAD | | 50 | | SKSHIP.GAD | | 51 | | SKSOLDAT.GAD | | 52 | | STADT.GAD | | 53 | | STADTLST.GAD | | 54 | | STARTDAT.GAD | | 55 | | TOOLS.INC | | 56 | | TRADE.GAD | | 57 | | TRADER.GAD | | 58 | | TRANSFER.GAD | | 59 | | TRIBUT.GAD | | 60 | | TUTOR.GAD | | 61 | | VERTRAG.GAD | | 62 | | WERFT.GAD | | 63 | 64 | -------------------------------------------------------------------------------- /additional_resources.md: -------------------------------------------------------------------------------- 1 | # Additional Resources # 2 | 3 | - [1602annowiki.de](https://1602.annowiki.de/) (German) 4 | - [AnnoZone Forum](https://annozone.de/forum/index.php?page=Board&boardID=18) (mostly German) 5 | - [Charlie's HomePage](https://www.annozone.de/Charlie/) (German) (annozone.de backup) 6 | - [Joe's Anno 1602 Inn](https://annozone.de/Joes1602Inn/) (German) (annozone.de backup) 7 | - [AnnoPool](https://www.annopool.de/index.php?page=Category&categoryID=47&s=4ff0e5572f44cd55deaa17e695ca29d5b73ed661) (file host; mods, savegames, scenarios and islands) (German) 8 | - [Bomi's 1602 Zeugs](http://www.bomibomanns.de/1602Zeugs/) (German) 9 | - [Chains Anno 1602 Szenarienarchiv](http://1602-szenarien.annoarchiv.de/) (German) (file host) 10 | - [Sir Henry's InselEditor](http://www.zur-borg.de/Anno1602/) (Webpage) 11 | - [Sir Henry's InselEditor](https://github.com/wzurborg/1602-Island-Editor) (SourceCode, OpenSource Tool) 12 | - [Sir Henry's Szenario Explorer](https://github.com/wzurborg/scenexplorer) (SourceCode, OpenSource Tool) 13 | - [Sir Henry's Grafx Tool](https://github.com/wzurborg/grafx1602) (SourceCode, OpenSource Tool) 14 | - [sunflowers forum](https://web.archive.org/web/*/sunflowers.de/discussion/*) (archived) 15 | - [MDCII-Engine](https://github.com/roybaer/mdcii-engine) (OpenSource Engine, WiP) 16 | - [MDCII-Engine (fork)](https://github.com/siredmar/mdcii-engine) (fork by Armin Schlegel, OpenSource Engine, WiP) 17 | - [MDCII-Data](https://github.com/roybaer/mdcii-data) (OpenSource Data replacement files) 18 | - [Anno2018](https://github.com/cmfcmf/Anno2018) (OpenSource Engine, WiP, TypeScript, for Browser) 19 | - [Anno2018 (Godot)](https://github.com/cmfcmf/Anno2018-godot) (OpenSource Engine, discontinued) 20 | - [Coloniae](https://github.com/jakubjafra/coloniae) (OpenSource Engine, for Browser) 21 | - [OBBM-Community](https://www.obbm.de/) 22 | 23 | # Honorable Mention # 24 | 25 | - [Unknown Horizon](http://unknown-horizons.org/) 26 | 27 | -------------------------------------------------------------------------------- /files/1602.exe.md: -------------------------------------------------------------------------------- 1 | # Game (1602.exe) # 2 | 3 | ## File Hashes ## 4 | 5 | | Release | Language | EXE file version | EXE product version | MD5 | SHA-256 | 6 | |---------|----------|------------------|---------------------|-----|---------| 7 | | GOG | English | `0.2.5.1` | `1.0.0.5` | `94a06cf9f4cff645db1b026778af2bf0` | `33c428d77fd0fab6b162ecb5162204de966a0c20f16db1bcaa5c40320670726e` | 8 | | GOG | German | `0.2.5.1` | `1.0.0.5` | `94a06cf9f4cff645db1b026778af2bf0` | `33c428d77fd0fab6b162ecb5162204de966a0c20f16db1bcaa5c40320670726e` | 9 | | GOG | French | `0.2.5.2` | `1.0.0.5` | `499dfd9e2e4a38f1e561cd04b1f283de` | `1e8f21dc2f6e95d352b4309fab19c75148b1b1f6339e6c9c4b6fb95ab1426afe` | 10 | | GOG | Polish | `0.1.9.6` |`1.0.0.5` | `38cd215c67369f8485bd71a8dce34665` | `aa8ce4c3b8f328d03a3093f262804a64d1c9b9397f89246110d62ca0c78b8501` | 11 | | KE | English | TODO | TODO | `e005a313f9a5d4d6fae05fa7a33ca4ef` | | 12 | | KE | German | `0.2.5.2` | `1.0.0.5` | `8cfb28ff65f0fad9545f07c97dd2806f` | `7010615017139f2928706f725a74966497442f69d87a915d199b47abf78bbe7e` | 13 | | HE | multi-lingual | `1.0.0.0` | `1.0.0.0` | `01c14728aa7dc8a7dd283329ff489305` | `7731972f696204faf6929b592ddedbf621b03426f85f9dd595c0c35904bdb7a1` | 14 | 15 | ## Building ID lists ## 16 | 17 | For GOG (MD5: `94a06cf9f4cff645db1b026778af2bf0`) 18 | **Contents** and order of **IDs** matches the [text.cod](./text.cod.md) sections. 19 | 20 | | Offset | Contents | Number of Entries | 21 | |---------|-------------|-------------------| 22 | | 0x98440 | MILITAR | 11 | 23 | | 0x9846c | HANDWERK | 17 | 24 | | 0x984b0 | FARM | | 25 | | 0x98500 | BERGWERK | | 26 | | 0x98514 | HAFEN | | 27 | | 0x98538 | STRASSE | | 28 | | 0x9855c | DIVERS | | 29 | | 0x98610 | LANDSCHAFT | | 30 | 31 | # This Document Needs Your Help # 32 | 33 | A lot of data needs to be collected from different versions of the game. 34 | 35 | ## TODO ## 36 | 37 | Check out all the Demos [here](https://annomuseum.de/webseiten/SF/www.anno1602.de/english/index128c.html?downloads/download_demos.html). 38 | 39 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {% seo %} 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 | {% if site.github.is_project_page %} 19 | View on GitHub 20 | {% endif %} 21 | 22 |

{{ site.title | default: site.github.repository_name }}

23 |

{{ site.description | default: site.github.project_tagline }}

24 | 25 | {% if site.show_downloads %} 26 |
27 | Download this project as a .zip file 28 | Download this project as a tar.gz file 29 |
30 | {% endif %} 31 |
32 |
33 | 34 | 35 |
36 |
37 | {{ content }} 38 |
39 |
40 | 41 | 42 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /file_formats/chunks.md: -------------------------------------------------------------------------------- 1 | # Chunks # 2 | 3 | The Chunks file format is used for (almost?) all binary type files. 4 | It basicly is a container type to pack different binary files together. 5 | 6 | The format is very simple, the [Chunk Header](#chunk-header) consists of a file type identifier as ascii string, padded with junk to fill full 16 bytes. Then comes a 4 byte/32bit (unsigned?) integer indicating the size of the chunk, excluding the header. 7 | 8 | ## Format Structure ## 9 | 10 | ### Chunk Header ### 11 | 12 | | Bytes | Use | 13 | |-------|---------------------------------------| 14 | | 16 | chunk type identification + padding | 15 | | 4 | size of chunk (excluding this header) | 16 | 17 | ## Chunk ID list ## 18 | 19 | - AUFTRAG 20 | - AUFTRAG2 21 | - AUFTRAG4 22 | - [BSH](bsh.md) (bsh/zei files use this header, but are never packed with other chunks and can be considered there own file format) 23 | - CUSTOM 24 | - HANDLER 25 | - HIRSCH2 26 | - INSEL3 27 | - INSEL4 28 | - INSEL5 29 | - INSELHAUS 30 | - INSEL_MAXFUN 31 | - KONTOR2 32 | - MARKT2 33 | - MILITAR 34 | - [NAME](./chunks/name.md) 35 | - PLAYER2 36 | - PLAYER3 37 | - PLAYER4 38 | - PRODLIST2 39 | - [RANDTAB](./chunks/randtab.md) 40 | - ROHWACHS2 41 | - SHIP4 42 | - SIEDLER 43 | - SOLDAT2 44 | - SOLDAT3 45 | - SOLDATINSEL 46 | - STADT3 47 | - STADT4 48 | - SZENE 49 | - [SZENE_GAMEID](./chunks/szene_gameid.md) 50 | - [SZENE_KAMPAGNE](./chunks/szene_kampagne.md) 51 | - [SZENE_MISSNR](./chunks/szene_missnr.md) 52 | - SZENE_PLAYERMAX 53 | - SZENE_PLAYERMIN 54 | - [SZENE_RANKING](./chunks/szene_ranking.md) 55 | - TIMERS 56 | - TURM 57 | - WERFT 58 | - [WIFF](./chunks/wiff.md) 59 | - [ZEI](bsh.md) 60 | 61 | ## Formats packed this way ## 62 | 63 | - [BSH](./bsh.md) 64 | - [GAM](./gam.md) 65 | - [SCP](./scp.md) 66 | - [SZM](./szm.md) 67 | - [SZS](./szs.md) 68 | 69 | ## Notes ## 70 | 71 | **A lot** of information about those file formats is known, because of [Sir Henry/wzurborg](https://github.com/wzurborg)'s code releases. In particular the two files [Anno1602read.h](https://github.com/wzurborg/scenexplorer/blob/master/Anno1602read.h) and [Anno1602read.c](https://github.com/wzurborg/scenexplorer/blob/master/Anno1602read.c) which seem to be original code excerpts (??). 72 | 73 | -------------------------------------------------------------------------------- /files/nordnat/index.md: -------------------------------------------------------------------------------- 1 | # /nordnat # 2 | 3 | This Folder contains Island [scp](../../file_formats/scp.md)s for the temperate climate. (nat ??) 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | BIG01.SCP | | 10 | | BIG02.SCP | | 11 | | BIG07.SCP | | 12 | | BIG08.SCP | | 13 | | BIG14.SCP | | 14 | | BIG18.SCP | | 15 | | BIG20.SCP | | 16 | | BIG24.SCP | | 17 | | BIG26.SCP | | 18 | | BIG27.SCP | | 19 | | BIG29.SCP | | 20 | | big37.SCP | | 21 | | big40.SCP | | 22 | | big41.SCP | | 23 | | big42.SCP | | 24 | | big43.SCP | | 25 | | big44.SCP | | 26 | | big45.SCP | | 27 | | big46.SCP | | 28 | | big47.SCP | | 29 | | big48.SCP | | 30 | | big49.SCP | | 31 | | big50.SCP | | 32 | | big51.SCP | | 33 | | big52.SCP | | 34 | | big53.SCP | | 35 | | big54.SCP | | 36 | | big55.SCP | | 37 | | big56.SCP | | 38 | | big57.SCP | | 39 | | big58.SCP | | 40 | | big59.SCP | | 41 | | big60.SCP | | 42 | | big61.SCP | | 43 | | big62.SCP | | 44 | | big63.SCP | | 45 | | big64.SCP | | 46 | | LIT02.SCP | | 47 | | LIT05.SCP | | 48 | | LIT06.SCP | | 49 | | LIT07.SCP | | 50 | | LIT09.SCP | | 51 | | LIT11.SCP | | 52 | | LIT12.SCP | | 53 | | LIT15.SCP | | 54 | | LIT18.SCP | | 55 | | LIT19.SCP | | 56 | | MED03.SCP | | 57 | | MED04.SCP | | 58 | | MED05.SCP | | 59 | | MED06.SCP | | 60 | | MED07.SCP | | 61 | | MED08.SCP | | 62 | | MED09.SCP | | 63 | | MED13.SCP | | 64 | | MED14.SCP | | 65 | | med15.SCP | | 66 | | med17.SCP | | 67 | | med18.SCP | | 68 | | med20.SCP | | 69 | | med22.SCP | | 70 | | med24.SCP | | 71 | | med26.SCP | | 72 | | med27.SCP | | 73 | | med28.SCP | | 74 | | med29.SCP | | 75 | | med30.SCP | | 76 | | med31.SCP | | 77 | | med32.SCP | | 78 | | med33.SCP | | 79 | | med34.scp | | 80 | | MIT00.SCP | | 81 | | MIT03.SCP | | 82 | | MIT05.SCP | | 83 | | MIT09.SCP | | 84 | | MIT10.SCP | | 85 | | MIT14.SCP | | 86 | | MIT16.SCP | | 87 | | MIT18.SCP | | 88 | | MIT19.SCP | | 89 | | MIT21.SCP | | 90 | | MIT22.SCP | | 91 | | mit23.SCP | | 92 | | mit24.SCP | | 93 | | mit27.SCP | | 94 | | mit29.SCP | | 95 | | mit33.SCP | | 96 | | mit35.SCP | | 97 | | mit38.SCP | | 98 | | mit40.SCP | | 99 | | mit42.SCP | | 100 | | mit43.SCP | | 101 | | mit44.SCP | | 102 | | mit45.SCP | | 103 | | mit46.SCP | | 104 | | mit47.SCP | | 105 | 106 | -------------------------------------------------------------------------------- /file_formats/bsh.md: -------------------------------------------------------------------------------- 1 | # BSH # 2 | 3 | It is the file format used to store **Textures** used by the game. 4 | It is usually packed using the [Chunks](./chunks.md) format, but always as a standalone file (missed opportunity), and has either a `.bsh` or `.zei` file ending. `.zei` files contain characters and signs, the name probably stems from the German word `Zeichen` meaning `sign`. 5 | 6 | The [Chunk Header](./chunks.md#chunk-header) identifier is either `BSH` or `ZEI`. This depends on the file suffix. 7 | 8 | After the [Chunk Header](./chunks.md#chunk-header) comes an **Index** of offsets to the **Textures** in the file. Different index positions can use the same byte offset, to avoid storing duplicate textures. This is prominently used in `STADTFLD.BSH` in [the KE version](../version_differences.md). 9 | 10 | And after that the **Textures** is using a [basic form of bitmap](https://en.wikipedia.org/wiki/BMP_file_format) (8-bit indexed with [RLE](https://en.wikipedia.org/wiki/Run-length_encoding)-like compression and custom header ??) 11 | 12 | The BSH file doesn't contain the [Color Palette](). See [COL](./col.md) 13 | 14 | ## Format Structure ## 15 | 16 | ### Texture Index ### 17 | 18 | List of 4byte/32bit unsigned integer **Texture** offsets. The **Texture** is at `20(Chunk Header) + offset` absolute file position. 19 | 20 | ### Texture ### 21 | 22 | Starts with a Header: 23 | 24 | | Bytes | Use | 25 | |-------|-----| 26 | | 4 | **Width** of the **Texture** | 27 | | 4 | **Height** of the **Texture** | 28 | | 4 | **Num** of the **Texture** (??) | 29 | | 4 | **Length** of the **Texture** in bytes | 30 | 31 | Followed by the `RLE`-ish compressed image data. 32 | The **Texture** starts in the upper left corner, is read line wise, and can be interpreted in the following loop: 33 | 34 | - if the next byte is `0xFF` the image has reached it's end. 35 | - if the next byte is `0xFE` the current pixel line has reached it's end. 36 | - else it's an **Texture Chunk** 37 | 38 | **Texture Chunk** layout: 39 | 40 | | Bytes | Use | 41 | |-----------|-----| 42 | | 1 | number of pixels to skip / number of transparent pixels | 43 | | 1 | number of pixels that follow | 44 | | up to 255 | pixels to insert at current position | 45 | 46 | ## Notes ## 47 | 48 | Since there is no length of the **Texture Index**, one can use the offset of the first **Texture** as an **Texture Index** delimiter. 49 | 50 | Main source of information: [Sir Henry's Grafx Source](https://github.com/wzurborg/grafx1602). 51 | 52 | -------------------------------------------------------------------------------- /files/samples/index.md: -------------------------------------------------------------------------------- 1 | # /samples # 2 | 3 | This Folder contains sound effects. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | Arg1.wav | | 10 | | Arg2.wav | | 11 | | Arzt.wav | | 12 | | Backer.wav | | 13 | | Badehaus.wav | | 14 | | Baum.wav | | 15 | | BaumW.wav | | 16 | | Berg.wav | | 17 | | Brosel1.wav | | 18 | | Brosel2.wav | | 19 | | Brunnen.wav | | 20 | | Burg.wav | | 21 | | Deadguy.wav | | 22 | | Denkmal.wav | | 23 | | Dom.wav | | 24 | | Dongel.wav | | 25 | | DongelW.wav | | 26 | | Einschlg.wav | | 27 | | Erz.wav | | 28 | | Event.wav | | 29 | | Feuer.wav | | 30 | | Fleischr.wav | | 31 | | Forster.wav | | 32 | | Gieserei.wav | | 33 | | Hack1.wav | | 34 | | Hack2.wav | | 35 | | Hilight.wav | | 36 | | Hitsword.wav | | 37 | | Jagdhtte.wav | | 38 | | Kanone5.wav | | 39 | | Kanone6.wav | | 40 | | Kanone7.wav | | 41 | | Kanone8.wav | | 42 | | Kapelle.wav | | 43 | | Karren.wav | | 44 | | Kirche.wav | | 45 | | Mahen.wav | | 46 | | MahenW.wav | | 47 | | Markt.wav | | 48 | | Muh1.wav | | 49 | | Muh2.wav | | 50 | | Muhle.wav | | 51 | | Muskete1.wav | | 52 | | Muskete2.wav | | 53 | | Muskete3.wav | | 54 | | Piraten.wav | | 55 | | Plantage.wav | | 56 | | Rumbnrei.wav | | 57 | | Schaf1.wav | | 58 | | Schaf2.wav | | 59 | | Schaf3.wav | | 60 | | Schloss.wav | | 61 | | Schmied.wav | | 62 | | Schule.wav | | 63 | | Schwert1.wav | | 64 | | Schwert2.wav | | 65 | | Schwert3.wav | | 66 | | Schwert4.wav | | 67 | | Schwert5.wav | | 68 | | Schwertb.wav | | 69 | | Scroll.wav | | 70 | | sdtattk1.wav | | 71 | | sdtattk2.wav | | 72 | | sdtattk3.wav | | 73 | | sdtattk4.wav | | 74 | | sdtattk5.wav | | 75 | | sdtattk6.wav | | 76 | | sdtmove1.wav | | 77 | | sdtmove2.wav | | 78 | | sdtmove3.wav | | 79 | | sdtmove4.wav | | 80 | | Select.wav | | 81 | | SelectW.wav | | 82 | | shpattk1.wav | | 83 | | shpattk2.wav | | 84 | | shpattk3.wav | | 85 | | shpattk4.wav | | 86 | | shpmove1.wav | | 87 | | shpmove2.wav | | 88 | | shpmove3.wav | | 89 | | shpmove4.wav | | 90 | | shpmove5.wav | | 91 | | Standard.wav | | 92 | | StandardW.wav | | 93 | | Start.wav | | 94 | | Stein1.wav | | 95 | | Stein2.wav | | 96 | | Steinmtz.wav | | 97 | | Theater.wav | | 98 | | Triumph.wav | | 99 | | Vogel1.wav | | 100 | | Vogel2.wav | | 101 | | Vogel3.wav | | 102 | | Vogel4.wav | | 103 | | Vogel5.wav | | 104 | | Vogel6.wav | | 105 | | Vulkan.wav | | 106 | | Vulkan1.wav | | 107 | | Vulkan2.wav | | 108 | | Vulkan3.wav | | 109 | | Vulkan4.wav | | 110 | | Wellen.wav | | 111 | | WellenW.wav | | 112 | | Wirtshs.wav | | 113 | | Wmuhle.wav | | 114 | | Wohnhaus.wav | | 115 | 116 | -------------------------------------------------------------------------------- /files/suednat/index.md: -------------------------------------------------------------------------------- 1 | # /suednat # 2 | 3 | This Folder contains Island [scp](../../file_formats/scp.md)s for the tropical climate. (nat??) 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | BIG00.SCP | | 10 | | BIG01.SCP | | 11 | | BIG02.SCP | | 12 | | BIG03.SCP | | 13 | | BIG04.SCP | | 14 | | BIG05.SCP | | 15 | | BIG07.SCP | | 16 | | BIG08.SCP | | 17 | | BIG11.SCP | | 18 | | BIG12.SCP | | 19 | | BIG13.SCP | | 20 | | BIG14.SCP | | 21 | | BIG15.SCP | | 22 | | BIG16.SCP | | 23 | | BIG17.SCP | | 24 | | big18.SCP | | 25 | | big19.SCP | | 26 | | big20.SCP | | 27 | | big21.SCP | | 28 | | big22.SCP | | 29 | | big23.SCP | | 30 | | big24.SCP | | 31 | | big25.SCP | | 32 | | big26.SCP | | 33 | | big27.SCP | | 34 | | big28.SCP | | 35 | | big29.SCP | | 36 | | big30.SCP | | 37 | | big31.SCP | | 38 | | big32.SCP | | 39 | | big34.SCP | | 40 | | big35.SCP | | 41 | | big36.SCP | | 42 | | big37.SCP | | 43 | | big38.SCP | | 44 | | big39.SCP | | 45 | | big40.SCP | | 46 | | big41.SCP | | 47 | | big42.SCP | | 48 | | big43.SCP | | 49 | | LIT00.SCP | | 50 | | LIT02.SCP | | 51 | | LIT04.SCP | | 52 | | LIT06.SCP | | 53 | | LIT07.SCP | | 54 | | LIT08.SCP | | 55 | | LIT09.SCP | | 56 | | LIT10.SCP | | 57 | | LIT11.SCP | | 58 | | LIT12.SCP | | 59 | | LIT15.SCP | | 60 | | LIT16.SCP | | 61 | | LIT17.SCP | | 62 | | LIT18.SCP | | 63 | | lit19.SCP | | 64 | | lit20.SCP | | 65 | | lit21.SCP | | 66 | | lit22.SCP | | 67 | | lit23.SCP | | 68 | | lit24.SCP | | 69 | | lit25.SCP | | 70 | | lit26.SCP | | 71 | | lit27.SCP | | 72 | | lit28.SCP | | 73 | | lit29.SCP | | 74 | | lit30.SCP | | 75 | | lit31.SCP | | 76 | | lit32.SCP | | 77 | | lit33.SCP | | 78 | | lit34.SCP | | 79 | | lit35.SCP | | 80 | | MED01.SCP | | 81 | | MED02.SCP | | 82 | | MED03.SCP | | 83 | | MED04.SCP | | 84 | | MED05.SCP | | 85 | | MED06.SCP | | 86 | | MED08.SCP | | 87 | | MED09.SCP | | 88 | | MED10.SCP | | 89 | | MED11.SCP | | 90 | | MED12.SCP | | 91 | | MED14.SCP | | 92 | | med15.SCP | | 93 | | med16.SCP | | 94 | | med17.SCP | | 95 | | med18.SCP | | 96 | | med19.SCP | | 97 | | med20.SCP | | 98 | | med21.SCP | | 99 | | med22.SCP | | 100 | | med23.SCP | | 101 | | med24.SCP | | 102 | | med25.SCP | | 103 | | med26.SCP | | 104 | | med27.SCP | | 105 | | med28.SCP | | 106 | | med29.SCP | | 107 | | med30.SCP | | 108 | | med31.SCP | | 109 | | med32.SCP | | 110 | | med33.SCP | | 111 | | med34.SCP | | 112 | | med35.SCP | | 113 | | MIT00.SCP | | 114 | | MIT01.SCP | | 115 | | MIT03.SCP | | 116 | | MIT04.SCP | | 117 | | MIT05.SCP | | 118 | | MIT06.SCP | | 119 | | MIT07.SCP | | 120 | | MIT08.SCP | | 121 | | MIT09.SCP | | 122 | | MIT10.SCP | | 123 | | MIT11.SCP | | 124 | | MIT12.SCP | | 125 | | MIT13.SCP | | 126 | | MIT14.SCP | | 127 | | MIT15.SCP | | 128 | | mit16.SCP | | 129 | | mit17.SCP | | 130 | | mit18.SCP | | 131 | | mit19.SCP | | 132 | | mit20.SCP | | 133 | | mit21.SCP | | 134 | | mit22.SCP | | 135 | | mit23.SCP | | 136 | | mit24.SCP | | 137 | | mit25.SCP | | 138 | | mit26.SCP | | 139 | | mit27.SCP | | 140 | | mit28.SCP | | 141 | | mit29.SCP | | 142 | | mit30.SCP | | 143 | | mit31.SCP | | 144 | | mit32.SCP | | 145 | | mit33.SCP | | 146 | | mit34.SCP | | 147 | | mit35.SCP | | 148 | | mit36.SCP | | 149 | | mit37.SCP | | 150 | | mit38.SCP | | 151 | | mit39.SCP | | 152 | | mit40.SCP | | 153 | | mit41.SCP | | 154 | 155 | -------------------------------------------------------------------------------- /files/index.md: -------------------------------------------------------------------------------- 1 | # Files # 2 | 3 | ## List Of Files With File Format ## 4 | Filenames can be uppercase or lowercase or mixedcase, depends on version. 5 | 6 | | Name | FileFormat | Notes | 7 | |-------------------------------------|------------------|-------| 8 | | [1602.exe](./1602.exe.md) | Executable | main executable | 9 | | [1602Edit.exe](./1602edit.exe.md) | Executable | editor executable not in vanilla game | 10 | | Config.exe | Executable | little configurator | 11 | 12 | | Name | FileFormat | Notes | 13 | |-------------------------------------|------------------|-------| 14 | | Editor.dll | Executable | dll | 15 | | Language.dll | Executable | dll (??) | 16 | | Maxnet.dll | Executable | dll, parts of the multiplayer code| 17 | | Maxsound.dll | Executable | dll | 18 | | Mfc42.dll | Executable | dll (??) | 19 | | MSVCRTD.DLL | Executable | dll (??) | 20 | | MSVCRT.DLL | Executable | dll (??) | 21 | | SMACKW32.DLL | Executable | dll (??) | 22 | 23 | | Name | FileFormat | Notes | 24 | |-------------------------------------|------------------|-------| 25 | | [editor.cod](./editor.cod.md) | [Encrypted](../file_formats/encryption.md) [Script](../file_formats/script.md) | | 26 | | [figuren.cod](./figuren.cod.md) | [Encrypted](../file_formats/encryption.md) [Script](../file_formats/script.md) | | 27 | | [haeuser.cod](./haeuser.cod.md) | [Encrypted](../file_formats/encryption.md) [Script](../file_formats/script.md) | | 28 | | [text.cod](./text.cod.md) | [Encrypted](../file_formats/encryption.md) [Text](../file_formats/text.md) | contains ingame texts, differs in language specific releases | 29 | 30 | | Name | FileFormat | Notes | 31 | |-------------------------------------|------------------|-------| 32 | | [game.dat](./game.dat.md) | [Script](../file_formats/script.md) | game configuration, campain progression | 33 | 34 | | Name | FileFormat | Notes | 35 | |-------------------------------------|------------------|-------| 36 | | [GADDATA/](./gaddata/index.md) | Folder | contains game gad files | 37 | | [GADEDIT/](./gadedit/index.md) | Folder | contains editor gad files | 38 | 39 | | Name | FileFormat | Notes | 40 | |-------------------------------------|------------------|-------| 41 | | [SGFX/](./sgfx/index.md) | Folder | contains textures for min zoom | 42 | | [MGFX/](./mgfx/index.md) | Folder | contains textures for med zoom | 43 | | [GFX/](./gfx/index.md) | Folder | contains textures for max zoom | 44 | | [TOOLGFX/](./toolgfx/index.md) | Folder | contains textures for characters | 45 | 46 | | Name | FileFormat | Notes | 47 | |-------------------------------------|------------------|-------| 48 | | [MUSIC8/](./music8/index.md) | Folder | contains music | 49 | | [SAMPLES/](./samples/index.md) | Folder | contains audio samples | 50 | | [SPEECH8/](./speech8/index.md) | Folder | contains spoken messages | 51 | 52 | | Name | FileFormat | Notes | 53 | |-------------------------------------|------------------|-------| 54 | | [VIDEOSMK/](./videosmk/index.md) | Folder | contains prerendered videos / cutscenes | 55 | 56 | | Name | FileFormat | Notes | 57 | |-------------------------------------|------------------|-------| 58 | | [NOKLIMA/](./noklima/index.md) | Folder | contains neutral? island data | 59 | | [NORD/](./nord/index.md) | Folder | contains temperate island data | 60 | | [NORDNAT/](./nordnat/index.md) | Folder | contains temperate island data | 61 | | [SUED/](./sued/index.md) | Folder | contains tropical island data | 62 | | [SUEDNAT/](./suednat/index.md) | Folder | contains tropical island data | 63 | 64 | | Name | FileFormat | Notes | 65 | |-------------------------------------|------------------|-------| 66 | | [SZENES/](./szenes/index.md) | Folder | contains scenarios data | 67 | | [OWN SCENARIOS/](./own_scenarios/index.md) | Folder | contains scenarios data (English version) | 68 | | [EIGENE SZENARIEN/](./own_scenarios/index.md) | Folder | contains scenarios data (German version) | 69 | 70 | | Name | FileFormat | Notes | 71 | |-------------------------------------|------------------|-------| 72 | | [SAVEGAME/](./savegame/index.md) | Folder | contains savegame data (ugc) | 73 | 74 | -------------------------------------------------------------------------------- /files/music8/index.md: -------------------------------------------------------------------------------- 1 | # /music8 # 2 | 3 | This Folder contains the Music files. Since the NINA Version(??), the files are encoded in ADPCM. Before that, the files use normal PCM. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------------------|---------------------| 9 | | 1st Beginning.wav | | 10 | | Amazing Grace.wav | | 11 | | ANNO1602 Theme.wav | | 12 | | Ave Maria.wav | | 13 | | Bach Air.wav | | 14 | | Ballad of Hope.wav | | 15 | | Brandenburg.wav | | 16 | | Creators Credits.wav | | 17 | | Daydream (original).wav | | 18 | | Daydream.wav | | 19 | | Dreamer.wav | | 20 | | Emotion.wav | | 21 | | Entry of the Cavalry.wav | | 22 | | Fight1.wav | | 23 | | Fight2.wav | | 24 | | Fight3.wav | | 25 | | Friend.wav | | 26 | | Greensleaves.wav | | 27 | | Irish Touch.wav | | 28 | | Morning mood.wav | | 29 | | Ocean Trip.wav | | 30 | 31 | # Converting to mp3/aac/flac etc. 32 | You may have noticed that if you try to play the .wav with VLC or another media player that it sounds terrible. The files have a very interesting header that is not interpreted correctly by VLC and other players which gives the corrupt sound. 33 | To convert the files to mp3/aac/flac you can use ffmpeg and force the input format. 34 | 35 | These instructions assume you have ffmpeg installed already and can access it from command shell. 36 | 1. Go to the music8 folder in Anno 1602 and open your favourite terminal in the folder. (On windows you can shift + right click and click on "Open PowerShell here") 37 | 38 | 2. To convert the files you will be using the following command: 39 | ```shell 40 | ffmpeg -n -guess_layout_max 0 -c:a adpcm_ima_ssi -i [file.wav] -ac 2 -c:a mp3 -b:a 192k [out.mp3] 41 | ``` 42 |
43 | Detailed Command Explanation 44 | 45 | - `-n` - do not overwrite existing files (prevents mishaps) 46 | - `-guess_layout_max 0` - do not guess the channel layout 47 | - `-c:a adpcm_ima_ssi` - forces `adpcm_ima_ssi` to be used to decode the file 48 | - `-i [file.wav]` - the source file in the directory e.g.: "Ocean Trip.wav" 49 | - `-ac 2` - use 2 audio channels (stereo) 50 | - `-c:a mp3` - encode as mp3 (can be replaced with aac/flac/ac3 etc. See `ffmpeg -encoders` for a full list) 51 | - `-b:a 192k` - encode with 192kbit/s 52 | - `[out.mp3]` - output file name 53 |
54 | 55 | 3. Replace [file.wav] and [out.mp3] with actual filenames and execute the command. The output should look like this: 56 | ```shell 57 | ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers 58 | built with gcc 9.3.1 (GCC) 20200621 59 | configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf 60 | libavutil 56. 51.100 / 56. 51.100 61 | libavcodec 58. 91.100 / 58. 91.100 62 | libavformat 58. 45.100 / 58. 45.100 63 | libavdevice 58. 10.100 / 58. 10.100 64 | libavfilter 7. 85.100 / 7. 85.100 65 | libswscale 5. 7.100 / 5. 7.100 66 | libswresample 3. 7.100 / 3. 7.100 67 | libpostproc 55. 7.100 / 55. 7.100 68 | Input #0, wav, from 'Ocean Trip.wav': 69 | Duration: 00:01:46.96, bitrate: 352 kb/s 70 | Stream #0:0: Audio: adpcm_ima_ssi ([1][0][0][0] / 0x0001), 22050 Hz, 2 channels, s16, 176 kb/s 71 | Stream mapping: 72 | Stream #0:0 -> #0:0 (adpcm_ima_ssi (native) -> mp3 (mp3_mf)) 73 | Press [q] to stop, [?] for help 74 | [mp3_mf @ 000002069c50f880] MFT name: 'MP3 Encoder ACM Wrapper MFT' 75 | Output #0, mp3, to '.\Ocean Trip.mp3': 76 | Metadata: 77 | TSSE : Lavf58.45.100 78 | Stream #0:0: Audio: mp3 (mp3_mf), 22050 Hz, stereo, s16, 192 kb/s 79 | Metadata: 80 | encoder : Lavc58.91.100 mp3_mf 81 | size= 2066kB time=00:03:33.93 bitrate= 79.1kbits/s speed= 384x 82 | video:0kB audio:2066kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.026807% 83 | ``` 84 | 85 | 4. Repeat for all files you want to have as mp3 86 | -------------------------------------------------------------------------------- /files/nord/index.md: -------------------------------------------------------------------------------- 1 | # /nord # 2 | 3 | This Folder contains Island [scp](../../file_formats/scp.md)s for the temperate climate. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | big.scp | | 10 | | big00.scp | | 11 | | big01.scp | | 12 | | big02.scp | | 13 | | big03.scp | | 14 | | big04.scp | | 15 | | big05.scp | | 16 | | big06.scp | | 17 | | big07.scp | | 18 | | big08.scp | | 19 | | big09.scp | | 20 | | big10.scp | | 21 | | big11.scp | | 22 | | big12.scp | | 23 | | big13.scp | | 24 | | big14.scp | | 25 | | big15.scp | | 26 | | big16.scp | | 27 | | big17.scp | | 28 | | big18.scp | | 29 | | big19.scp | | 30 | | big20.scp | | 31 | | big21.scp | | 32 | | big22.scp | | 33 | | big23.scp | | 34 | | big24.scp | | 35 | | big25.scp | | 36 | | big26.scp | | 37 | | big27.scp | | 38 | | big28.scp | | 39 | | big29.scp | | 40 | | big30.SCP | | 41 | | big31.SCP | | 42 | | big32.SCP | | 43 | | big33.SCP | | 44 | | big34.SCP | | 45 | | big35.SCP | | 46 | | big36.SCP | | 47 | | big37.SCP | | 48 | | big38.SCP | | 49 | | big39.SCP | | 50 | | big40.SCP | | 51 | | big41.SCP | | 52 | | big42.SCP | | 53 | | big43.SCP | | 54 | | big44.SCP | | 55 | | big45.SCP | | 56 | | big46.SCP | | 57 | | big47.SCP | | 58 | | big48.SCP | | 59 | | big49.SCP | | 60 | | big50.SCP | | 61 | | big51.SCP | | 62 | | big52.SCP | | 63 | | big53.SCP | | 64 | | big54.SCP | | 65 | | big55.SCP | | 66 | | big56.SCP | | 67 | | big57.SCP | | 68 | | big58.SCP | | 69 | | big59.SCP | | 70 | | big60.SCP | | 71 | | big61.SCP | | 72 | | big62.SCP | | 73 | | big63.SCP | | 74 | | big64.SCP | | 75 | | big65.SCP | | 76 | | big66.SCP | | 77 | | lar.SCP | | 78 | | lar00.SCP | | 79 | | lar01.SCP | | 80 | | lar02.SCP | | 81 | | Lar03.scp | | 82 | | Lar04.scp | | 83 | | lit.scp | | 84 | | lit00.scp | | 85 | | lit01.scp | | 86 | | lit02.scp | | 87 | | lit03.scp | | 88 | | lit04.scp | | 89 | | lit05.scp | | 90 | | lit06.scp | | 91 | | lit07.scp | | 92 | | lit08.scp | | 93 | | lit09.scp | | 94 | | lit10.scp | | 95 | | lit11.scp | | 96 | | lit12.scp | | 97 | | lit13.scp | | 98 | | lit14.scp | | 99 | | lit15.scp | | 100 | | lit16.scp | | 101 | | lit17.scp | | 102 | | lit18.scp | | 103 | | lit19.scp | | 104 | | lit20.SCP | | 105 | | lit21.SCP | | 106 | | lit22.SCP | | 107 | | lit23.SCP | | 108 | | lit24.SCP | | 109 | | lit25.SCP | | 110 | | lit26.SCP | | 111 | | lit27.SCP | | 112 | | lit28.SCP | | 113 | | lit29.SCP | | 114 | | lit30.SCP | | 115 | | lit31.SCP | | 116 | | lit32.SCP | | 117 | | lit33.SCP | | 118 | | lit34.SCP | | 119 | | lit35.SCP | | 120 | | lit36.SCP | | 121 | | lit37.SCP | | 122 | | lit38.SCP | | 123 | | lit39.SCP | | 124 | | lit40.SCP | | 125 | | lit41.SCP | | 126 | | lit42.SCP | | 127 | | lit43.SCP | | 128 | | lit44.SCP | | 129 | | lit45.SCP | | 130 | | lit46.SCP | | 131 | | lit47.SCP | | 132 | | lit48.SCP | | 133 | | lit49.SCP | | 134 | | lit50.SCP | | 135 | | med.scp | | 136 | | med00.scp | | 137 | | med01.scp | | 138 | | med02.scp | | 139 | | med03.scp | | 140 | | med04.scp | | 141 | | med05.scp | | 142 | | med06.scp | | 143 | | med07.scp | | 144 | | med08.scp | | 145 | | med09.scp | | 146 | | med10.scp | | 147 | | med11.scp | | 148 | | med12.scp | | 149 | | med13.scp | | 150 | | med14.scp | | 151 | | med15.SCP | | 152 | | med16.SCP | | 153 | | med17.SCP | | 154 | | med18.SCP | | 155 | | med19.SCP | | 156 | | med20.SCP | | 157 | | med21.SCP | | 158 | | med22.SCP | | 159 | | med23.SCP | | 160 | | med24.SCP | | 161 | | med25.SCP | | 162 | | med26.SCP | | 163 | | med27.SCP | | 164 | | med28.SCP | | 165 | | med29.SCP | | 166 | | med30.SCP | | 167 | | med31.SCP | | 168 | | med32.SCP | | 169 | | med33.SCP | | 170 | | med34.SCP | | 171 | | med35.SCP | | 172 | | med36.SCP | | 173 | | med37.SCP | | 174 | | med38.SCP | | 175 | | mit.scp | | 176 | | mit00.scp | | 177 | | mit01.scp | | 178 | | mit02.scp | | 179 | | mit03.scp | | 180 | | mit04.scp | | 181 | | mit05.scp | | 182 | | mit06.scp | | 183 | | mit07.scp | | 184 | | mit08.scp | | 185 | | mit09.scp | | 186 | | mit10.scp | | 187 | | mit11.scp | | 188 | | mit12.scp | | 189 | | mit13.scp | | 190 | | mit14.scp | | 191 | | mit15.scp | | 192 | | mit16.scp | | 193 | | mit17.scp | | 194 | | mit18.scp | | 195 | | mit19.scp | | 196 | | mit20.scp | | 197 | | mit21.scp | | 198 | | mit22.scp | | 199 | | mit23.SCP | | 200 | | mit24.SCP | | 201 | | mit25.SCP | | 202 | | mit26.SCP | | 203 | | mit27.SCP | | 204 | | mit28.SCP | | 205 | | mit29.SCP | | 206 | | mit30.SCP | | 207 | | mit31.SCP | | 208 | | mit32.SCP | | 209 | | mit33.SCP | | 210 | | mit34.SCP | | 211 | | mit35.SCP | | 212 | | mit36.SCP | | 213 | | mit37.SCP | | 214 | | mit38.SCP | | 215 | | mit39.SCP | | 216 | | mit40.SCP | | 217 | | mit41.SCP | | 218 | | mit42.SCP | | 219 | | mit43.SCP | | 220 | | mit44.SCP | | 221 | | mit45.SCP | | 222 | | mit46.SCP | | 223 | | mit47.SCP | | 224 | 225 | -------------------------------------------------------------------------------- /files/sued/index.md: -------------------------------------------------------------------------------- 1 | # /sued # 2 | 3 | This Folder contains Island [scp](../../file_formats/scp.md)s for the tropical climate. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | big.scp | | 10 | | big00.scp | | 11 | | big01.scp | | 12 | | big02.scp | | 13 | | big03.scp | | 14 | | big04.scp | | 15 | | big05.scp | | 16 | | big06.scp | | 17 | | big07.scp | | 18 | | big08.scp | | 19 | | big09.scp | | 20 | | big10.scp | | 21 | | big11.scp | | 22 | | big12.scp | | 23 | | big13.scp | | 24 | | big14.scp | | 25 | | big15.scp | | 26 | | big16.scp | | 27 | | big17.scp | | 28 | | big18.SCP | | 29 | | big19.SCP | | 30 | | big20.SCP | | 31 | | big21.SCP | | 32 | | big22.SCP | | 33 | | big23.SCP | | 34 | | big24.SCP | | 35 | | big25.SCP | | 36 | | big26.SCP | | 37 | | big27.SCP | | 38 | | big28.SCP | | 39 | | big29.SCP | | 40 | | big30.SCP | | 41 | | big31.SCP | | 42 | | big32.SCP | | 43 | | big33.SCP | | 44 | | big34.SCP | | 45 | | big35.SCP | | 46 | | big36.SCP | | 47 | | big37.SCP | | 48 | | big38.SCP | | 49 | | big39.SCP | | 50 | | big40.SCP | | 51 | | big41.SCP | | 52 | | big42.SCP | | 53 | | big43.SCP | | 54 | | big44.SCP | | 55 | | big45.SCP | | 56 | | big46.SCP | | 57 | | big47.SCP | | 58 | | big48.SCP | | 59 | | big49.SCP | | 60 | | big50.SCP | | 61 | | big51.SCP | | 62 | | big52.SCP | | 63 | | big53.SCP | | 64 | | big54.SCP | | 65 | | big55.SCP | | 66 | | big56.SCP | | 67 | | big57.SCP | | 68 | | big58.SCP | | 69 | | big59.SCP | | 70 | | big60.SCP | | 71 | | big61.SCP | | 72 | | big62.SCP | | 73 | | lar.SCP | | 74 | | lar00.scp | | 75 | | lar01.SCP | | 76 | | lar02.SCP | | 77 | | lar03.SCP | | 78 | | lar04.SCP | | 79 | | lar05.SCP | | 80 | | lit.scp | | 81 | | lit00.scp | | 82 | | lit01.scp | | 83 | | lit02.scp | | 84 | | lit03.scp | | 85 | | lit04.scp | | 86 | | lit05.scp | | 87 | | lit06.scp | | 88 | | lit07.scp | | 89 | | lit08.scp | | 90 | | lit09.scp | | 91 | | lit10.scp | | 92 | | lit11.scp | | 93 | | lit12.scp | | 94 | | lit13.scp | | 95 | | lit14.scp | | 96 | | lit15.scp | | 97 | | lit16.scp | | 98 | | lit17.scp | | 99 | | lit18.scp | | 100 | | lit19.SCP | | 101 | | lit20.SCP | | 102 | | lit21.SCP | | 103 | | lit22.SCP | | 104 | | lit23.SCP | | 105 | | lit24.SCP | | 106 | | lit25.SCP | | 107 | | lit26.SCP | | 108 | | lit27.SCP | | 109 | | lit28.SCP | | 110 | | lit29.SCP | | 111 | | lit30.SCP | | 112 | | lit31.SCP | | 113 | | lit32.SCP | | 114 | | lit33.SCP | | 115 | | lit34.SCP | | 116 | | lit35.SCP | | 117 | | lit36.SCP | | 118 | | lit37.SCP | | 119 | | lit38.SCP | | 120 | | lit39.SCP | | 121 | | lit40.SCP | | 122 | | lit41.SCP | | 123 | | lit42.SCP | | 124 | | lit43.SCP | | 125 | | lit44.SCP | | 126 | | lit45.SCP | | 127 | | lit46.SCP | | 128 | | lit47.SCP | | 129 | | lit48.SCP | | 130 | | med.scp | | 131 | | med00.scp | | 132 | | med01.scp | | 133 | | med02.scp | | 134 | | med03.scp | | 135 | | med04.scp | | 136 | | med05.scp | | 137 | | med06.scp | | 138 | | med07.scp | | 139 | | med08.scp | | 140 | | med09.scp | | 141 | | med10.scp | | 142 | | med11.scp | | 143 | | med12.scp | | 144 | | med13.scp | | 145 | | med14.scp | | 146 | | med15.SCP | | 147 | | med16.SCP | | 148 | | med17.SCP | | 149 | | med18.SCP | | 150 | | med19.SCP | | 151 | | med20.SCP | | 152 | | med21.SCP | | 153 | | med22.SCP | | 154 | | med23.SCP | | 155 | | med24.SCP | | 156 | | med25.SCP | | 157 | | med26.SCP | | 158 | | med27.SCP | | 159 | | med28.SCP | | 160 | | med29.SCP | | 161 | | med30.SCP | | 162 | | med31.SCP | | 163 | | med32.SCP | | 164 | | med33.SCP | | 165 | | med34.SCP | | 166 | | med35.SCP | | 167 | | med36.SCP | | 168 | | med37.SCP | | 169 | | med38.SCP | | 170 | | med39.SCP | | 171 | | med40.SCP | | 172 | | med41.SCP | | 173 | | med42.SCP | | 174 | | med43.SCP | | 175 | | med44.SCP | | 176 | | med45.SCP | | 177 | | med46.SCP | | 178 | | med47.SCP | | 179 | | mit.scp | | 180 | | mit00.scp | | 181 | | mit01.scp | | 182 | | mit02.scp | | 183 | | mit03.scp | | 184 | | mit04.scp | | 185 | | mit05.scp | | 186 | | mit06.scp | | 187 | | mit07.scp | | 188 | | mit08.scp | | 189 | | mit09.scp | | 190 | | mit10.scp | | 191 | | mit11.scp | | 192 | | mit12.scp | | 193 | | mit13.scp | | 194 | | mit14.scp | | 195 | | mit15.scp | | 196 | | mit16.SCP | | 197 | | mit17.SCP | | 198 | | mit18.SCP | | 199 | | mit19.SCP | | 200 | | mit20.SCP | | 201 | | mit21.SCP | | 202 | | mit22.SCP | | 203 | | mit23.SCP | | 204 | | mit24.SCP | | 205 | | mit25.SCP | | 206 | | mit26.SCP | | 207 | | mit27.SCP | | 208 | | mit28.SCP | | 209 | | mit29.SCP | | 210 | | mit30.SCP | | 211 | | mit31.SCP | | 212 | | mit32.SCP | | 213 | | mit33.SCP | | 214 | | mit34.SCP | | 215 | | mit35.SCP | | 216 | | mit36.SCP | | 217 | | mit37.SCP | | 218 | | mit38.SCP | | 219 | | mit39.SCP | | 220 | | mit40.SCP | | 221 | | mit41.SCP | | 222 | | mit42.SCP | | 223 | | mit43.SCP | | 224 | | mit44.SCP | | 225 | 226 | -------------------------------------------------------------------------------- /files/szenes/index.md: -------------------------------------------------------------------------------- 1 | # /szenes # 2 | 3 | This Folder contains Scenario files as [SZS](../../file_formats/szs.md), [SZM](../../file_formats/szm.md), [HSS/HSM](../../file_formats/hss.md). 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |-----------------------------------|---------------------| 9 | | Am Ende allein.szm | | 10 | | Auf gute Nachbarschaft.szm | | 11 | | Auf halbem Wege.hss | | 12 | | Auf zu neuen Ufern0.szs | | 13 | | Auf zu neuen Ufern1.szs | | 14 | | Auf zu neuen Ufern2.szs | | 15 | | Auf zu neuen Ufern3.szs | | 16 | | Aus Drei wird Eins.szm | | 17 | | Bündnis auf Zeit.szm | | 18 | | Bündnispolitik.szm | | 19 | | Das Atoll.szm | | 20 | | Das Atoll.szs | | 21 | | Das Bündnis.szs | | 22 | | Das Monopol.szs | | 23 | | Dem König ein Schloss.szm | | 24 | | Der Diplomat.szm | | 25 | | Der Eindringling.szs | | 26 | | Der lachende Freibeuter.szm | | 27 | | Der Magnat0.szs | | 28 | | Der Magnat1.szs | | 29 | | Der Magnat2.szs | | 30 | | Der Osterpirat.szs | | 31 | | Der Pakt.szm | | 32 | | Der Verbund.szm | | 33 | | Die Antwort.szs | | 34 | | Die Festung.szs | | 35 | | Die Goldprobe.szs | | 36 | | Die Herausforderung.szm | | 37 | | Die Piratenplage.szs | | 38 | | Die Prinzenprüfung.szs | | 39 | | Die Prüfung.szs | | 40 | | Die Revanche.szs | | 41 | | Die Suche nach Bodenschätzen.szs | | 42 | | Die Würze des Lebens.szs | | 43 | | Drei sind zwei zuviel.szs | | 44 | | Dunkle Wolken am Horizont.szs | | 45 | | Eine einsame Siedlung.szs | | 46 | | Einführungsspiel0.szs | | 47 | | Einführungsspiel1.szs | | 48 | | Einführungsspiel2.szs | | 49 | | Einführungsspiel3.szs | | 50 | | Einführungsspiel4.szs | | 51 | | Endlosspiel.hss | | 52 | | Endlosspiel00.szm | | 53 | | Endlosspiel00.szs | | 54 | | Endlosspiel01.szm | | 55 | | Endlosspiel01.szs | | 56 | | Endlosspiel02.szm | | 57 | | Endlosspiel02.szs | | 58 | | Endlosspiel10.szm | | 59 | | Endlosspiel10.szs | | 60 | | Endlosspiel11.szm | | 61 | | Endlosspiel11.szs | | 62 | | Endlosspiel12.szm | | 63 | | Endlosspiel12.szs | | 64 | | Endlosspiel20.szm | | 65 | | Endlosspiel20.szs | | 66 | | Endlosspiel21.szm | | 67 | | Endlosspiel21.szs | | 68 | | Endlosspiel22.szm | | 69 | | Endlosspiel22.szs | | 70 | | Endlosspiel30.szm | | 71 | | Endlosspiel30.szs | | 72 | | Endlosspiel31.szm | | 73 | | Endlosspiel31.szs | | 74 | | Endlosspiel32.szm | | 75 | | Endlosspiel32.szs | | 76 | | Episode Drei.szm | | 77 | | Episode Eins.szm | | 78 | | Episode Zwei.szm | | 79 | | Erbarmungslos 2er.szm | | 80 | | Erbarmungslos 3er.szm | | 81 | | Erbarmungslos 4er.szm | | 82 | | Feindliche Nachbarn0.szs | | 83 | | Feindliche Nachbarn1.szs | | 84 | | Feindliche Nachbarn2.szs | | 85 | | Feuerland.szs | | 86 | | Friedliche Regentschaft.szs | | 87 | | Für Königreich und Vaterland.szm | | 88 | | Fürchte Deinen Nächsten.szm | | 89 | | Gemeinsam einsam.szm | | 90 | | Geteilt wird nicht.szs | | 91 | | Goldrausch.hss | | 92 | | Goldsuche.szs | | 93 | | Größenwahn.szs | | 94 | | Gute Nachbarschaft.szs | | 95 | | Im Auftrag des Königs0.szs | | 96 | | Im Auftrag des Königs1.szs | | 97 | | Im Auftrag des Königs2.szs | | 98 | | Im Auftrag des Königs3.szs | | 99 | | Im Exil.szs | | 100 | | Jedem das Seine.szm | | 101 | | Jedem das Seine.szs | | 102 | | Kalt erwischt.szs | | 103 | | Kampf um die Macht.szm | | 104 | | Kleines Land.szm | | 105 | | Konkurrenzdruck.szs | | 106 | | Kontinentalmasse.szs | | 107 | | Kooperation.szs | | 108 | | Kreuzverkehr 2er.szm | | 109 | | Kreuzverkehr 3er.szm | | 110 | | Kreuzverkehr 4er.szm | | 111 | | Land der blühenden Sonne.szm | | 112 | | Land und Leute.szm | | 113 | | Landgewinnung.szm | | 114 | | Leben und leben lassen.szm | | 115 | | Matrosen heuern.szm | | 116 | | Milde Gaben.szs | | 117 | | Nach Langer Reise.szs | | 118 | | Neue Entdeckungen.szs | | 119 | | New Canada.szs | | 120 | | Pirata0.szs | | 121 | | Pirata1.szs | | 122 | | Pirata2.szs | | 123 | | Piraten!.szs | | 124 | | Piratenjagd 2er.szm | | 125 | | Piratenjagd 3er.szm | | 126 | | Piratenjagd 4er.szm | | 127 | | Pirates Paradise.szs | | 128 | | Prinzenprüfung 2er.szm | | 129 | | Prinzenprüfung 4er.szm | | 130 | | Rauchzeichen.szm | | 131 | | Rum und Prahlerei.szm | | 132 | | Schrecken am Rande.szm | | 133 | | Schritt für Schritt.szm | | 134 | | Seeschlacht.szm | | 135 | | Seeschlachten.szm | | 136 | | Strategie und Taktik.szm | | 137 | | Traue nur Dir selbst0.szs | | 138 | | Traue nur Dir selbst1.szs | | 139 | | Traue nur Dir selbst2.szs | | 140 | | Veni, vidi, vici.hsm | | 141 | | Versorgungszirkel.szm | | 142 | | Weggefährten.szm | | 143 | | Wehret den Anfängen.szm | | 144 | | Wenig Bauland.szm | | 145 | | Wenig Land.szs | | 146 | | Wettstreit der Brüder 2er.szm | | 147 | | Wettstreit der Brüder 3er.szm | | 148 | | Wettstreit der Brüder 4er.szm | | 149 | | Zwei kleine Städte.szm | | 150 | | Zwei sind einer zuviel.szm | | 151 | 152 | -------------------------------------------------------------------------------- /files/haeuser.cod.md: -------------------------------------------------------------------------------- 1 | # /haeuser.cod # 2 | 3 | Is an [Encrypted](../file_formats/encryption.md) [Script](../file_formats/script.md). 4 | 5 | note: `integer` refers to an unsigned integer. 6 | 7 | ## List of Object Types ### 8 | 9 | ### BGRUPPE ### 10 | 11 | | ID | Expected Values | Use | 12 | |---------------|-------------------|-----| 13 | | Prozent | integer | | 14 | | Maxwohn | integer | citizen per building | 15 | | Steuer | float | tax per citizen | 16 | | Hiscore | score | | 17 | 18 | ### BGRUPPE_WARE ### 19 | Nested in [BGRUPPE](#bgruppe). 20 | 21 | | ID | Expected Values | Use | 22 | |---------------|-----------------------------|-----| 23 | | Ware | COMMODITY, amount in float | how much they need for the next level | 24 | 25 | Possible Values for `COMMODITY`: 26 | 27 | - NOWARE 28 | - ALLWARE 29 | - HOLZ 30 | - STOFFE 31 | - ALKOHOL 32 | - TABAKWAREN 33 | - GEWUERZE 34 | - KAKAO 35 | - KLEIDUNG 36 | - SCHMUCK 37 | - GRAS 38 | - GETREIDE 39 | - BAUMWOLLE 40 | - TABAKBAUM 41 | - KAKAOBAUM 42 | - ZUCKERROHR 43 | - GEWUERZBAUM 44 | - WEINTRAUBEN 45 | - BAUM 46 | - FISCHE 47 | - NAHRUNG 48 | - ERZE 49 | - MEHL 50 | - EISEN 51 | - WERKZEUG 52 | - MUSKETEN 53 | - KANONEN 54 | - SCHWERTER 55 | - STEINE 56 | - EISENERZ 57 | - GOLD 58 | - ZIEGEL 59 | - KORN 60 | - WOLLE 61 | - TABAK 62 | - ZUCKER 63 | - FLEISCH 64 | - WILD 65 | 66 | TODO: move WARES to extra file/section 67 | 68 | note: amount is `ORG/SUN` ?? 69 | 70 | ### BAUINFRA ### 71 | Infastructure levels. 72 | 73 | | ID | Expected Values | Use | 74 | |---------------|-------------------|-----| 75 | | BGruppe | integer | the [BGRUPPE](#bgruppe) to require citizen of | 76 | | Minwohn | integer | the amount of citizen to require | 77 | 78 | ### HAUS ### 79 | All the **Buildings**/**Tiles** in the **Game**. 80 | 81 | | ID | Expected Values | Use | 82 | |---------------|-------------------|-----| 83 | | Kind | integer (enum) | | 84 | | Gfx | integer | the general offset for the id in the STADTFLD.[BSH](../file_formats/bsh.md) | 85 | | Baugfx | integer | the build preview offset for the id in the BAUHAUS.[BSH](../file_formats/bsh.md) | 86 | | Blocknr | integer | | 87 | | Posoffs | integer | | 88 | | Wegspeed | 4x integer | | 89 | | Highflg | bool (0 or 1) | | 90 | | Einhoffs | float | ?? | 91 | | Bausample | (integer) | the audio sample to play when placed | 92 | | Ruinenr | integer | | 93 | | Maxenergy | integer | | 94 | | Maxbrand | integer | | 95 | | Size | integer (x), integer (y) | the dimensions of the building | 96 | | Rotate | integer | | 97 | | PlaceFlg | bool (0 or 1) | | 98 | | RandAnz | integer | | 99 | | RandAdd | integer | | 100 | | AnimTime | integer | | 101 | | AnimFrame | integer | unused?? | 102 | | AnimAnz | integer | | 103 | | AnimAdd | integer | | 104 | | NoShotFlg | bool (0 or 1) | | 105 | | Randwachs | integer | | 106 | | Tuerflg | bool (0 or 1) | | 107 | | Ausbauflg | bool (0 or 1) | | 108 | | KreuzBase | integer | | 109 | | Destroyflg | bool (0 or 1) | | 110 | | Strandflg | bool (0 or 1) | | 111 | | Strandoff | integer | | 112 | | Mundoff | integer (always 3) | | 113 | | Grundflg | bool (0 or 1) | | 114 | 115 | Possible Values for `Kind`: 116 | 117 | - UNUSED 118 | - BODEN 119 | - WALD 120 | - RUINE 121 | - STRANDRUINE 122 | - HANG 123 | - MEER 124 | - BRANDUNG 125 | - BRANDECK 126 | - HANGQUELL 127 | - HANGECK 128 | - MUENDUNG 129 | - STRAND 130 | - STRANDVARI 131 | - STRANDECKI 132 | - STRANDECKA 133 | - STRANDMUND 134 | - PIER 135 | - FELS 136 | - FLUSS 137 | - FLUSSECK 138 | - MAUER 139 | - MAUERSTRAND 140 | - TURM 141 | - TURMSTRAND 142 | - STRASSE 143 | - BRUECKE 144 | - PLATZ 145 | - TOR 146 | - STRANDHAUS 147 | - HQ 148 | - HAFEN 149 | - GEBAEUDE 150 | - WMUEHLE 151 | - MINE 152 | 153 | ### HAUS_PRODTYP ### 154 | Nested in [HAUS](#haus). 155 | 156 | | ID | Expected Values | Use | 157 | |---------------|-------------------|-----| 158 | | Kind | integer (enum) | | 159 | | Ware | integer (enum?) | | 160 | | Radius | integer | | 161 | | Rohstoff | integer | | 162 | | Rohmenge | float | | 163 | | Prodmenge | float | | 164 | | Randwachs | integer | | 165 | | Maxlager | integer | | 166 | | Maxprodcnt | integer | | 167 | | Maxnorohst | integer | | 168 | | Interval | integer | | 169 | | Bauinfra | integer (enum?) | | 170 | | Doerrflg | bool (0 or 1) | | 171 | | Kosten | integer, integer | | 172 | | Figurnr | integer | | 173 | | Figuranz | integer | | 174 | | Rauchfignr | integer vec | | 175 | | Arbeiter | integer | | 176 | | NoMoreWork | bool (0 or 1) | | 177 | | NoLagVoll | bool (0 or 1) | | 178 | | Maxware | integer, integer | | 179 | | Workstoff | integer (enum?) | | 180 | | Workmenge | float | | 181 | | Erzbergnr | integer | | 182 | | Anicontflg | bool (0 or 1) | | 183 | | MakLagFlg | bool (0 or 1) | | 184 | | LagAniFlg | bool (0 or 1) | determine wether the animation state in the island is used as animation or stock | 185 | | Nativflg | bool (0 or 1) | | 186 | | Piratflg | bool (0 or 1) | | 187 | | BGruppe | integer | [BGRUPPE](#bgruppe) | 188 | 189 | Possible Values for `Kind`: 190 | 191 | - UNUSED 192 | - ROHSTWACHS 193 | - ROHSTOFF 194 | - FISCHEREI 195 | - KONTOR 196 | - WERFT 197 | - ROHSTERZ 198 | - pMAUER 199 | - WACHTURM 200 | - MILITAR 201 | - HANDWERK 202 | - STEINBRUCH 203 | - BERGWERK 204 | - PLANTAGE 205 | - JAGDHAUS 206 | - WEIDETIER 207 | - WOHNUNG 208 | - PIRATWOHN 209 | - KIRCHE 210 | - KAPELLE 211 | - WIRT 212 | - THEATER 213 | - BADEHAUS 214 | - MARKT 215 | - KLINIK 216 | - HOCHSCHULE 217 | - SCHULE 218 | - BRUNNEN 219 | - SCHLOSS 220 | - GALGEN 221 | - DENKMAL 222 | - TRIUMPH 223 | 224 | ### HAUS_BAUKOST ### 225 | Nested in [HAUS](#haus). 226 | 227 | Lists the required **Resources** to build the **Building**. 228 | 229 | | ID | Expected Values | Use | 230 | |---------------|-------------------|-----| 231 | | Money | integer | | 232 | | Werkzeug | integer | | 233 | | Holz | integer | | 234 | | Ziegel | integer | | 235 | | Kanon | integer | | 236 | 237 | ## Notes ## 238 | 239 | ids ending with "flg" or "Flg" (inconsistent) are booleans represented as an integer as either `0` or `1`. 240 | 241 | -------------------------------------------------------------------------------- /files/speech8/index.md: -------------------------------------------------------------------------------- 1 | # /speech8 # 2 | 3 | This Folder contains all speech samples. 4 | 5 | ## List of Files ## 6 | 7 | | Name | Notes | 8 | |---------------|---------------------| 9 | | 107.wav | | 10 | | 109.wav | | 11 | | 111.wav | | 12 | | 113.wav | | 13 | | 115.wav | | 14 | | 119.wav | | 15 | | 121.wav | | 16 | | 123.wav | | 17 | | 133.wav | | 18 | | 141.wav | | 19 | | 143.wav | | 20 | | 145.wav | | 21 | | 147.wav | | 22 | | 149.wav | | 23 | | 151.wav | | 24 | | 153.wav | | 25 | | 155.wav | | 26 | | 157.wav | | 27 | | 159.wav | | 28 | | 161.wav | | 29 | | 163.wav | | 30 | | 167.wav | | 31 | | 169.wav | | 32 | | 171.wav | | 33 | | 177.wav | | 34 | | 179.wav | | 35 | | 181.wav | | 36 | | 183.wav | | 37 | | 187.wav | | 38 | | 189.wav | | 39 | | 191.wav | | 40 | | 193.wav | | 41 | | 198.wav | | 42 | | 200.wav | | 43 | | 202.wav | | 44 | | 204.wav | | 45 | | 206.wav | | 46 | | 208.wav | | 47 | | 211.wav | | 48 | | 213.wav | | 49 | | 215.wav | | 50 | | 217.wav | | 51 | | 219.wav | | 52 | | 221.wav | | 53 | | 223.wav | | 54 | | 241.wav | | 55 | | 243.wav | | 56 | | 246.wav | | 57 | | 252.wav | | 58 | | 254.wav | | 59 | | 256.wav | | 60 | | 262.wav | | 61 | | 264.wav | | 62 | | 266.wav | | 63 | | 270.wav | | 64 | | 272.wav | | 65 | | 274.wav | | 66 | | 278.wav | | 67 | | 282.wav | | 68 | | 284.wav | | 69 | | 286.wav | | 70 | | 290.wav | | 71 | | 295.wav | | 72 | | 297.wav | | 73 | | 299.wav | | 74 | | 301.wav | | 75 | | 309.wav | | 76 | | 330.wav | | 77 | | 332.wav | | 78 | | 334.wav | | 79 | | 336.wav | | 80 | | 338.wav | | 81 | | 340.wav | | 82 | | 342.wav | | 83 | | 344.wav | | 84 | | 346.wav | | 85 | | 348.wav | | 86 | | 350.wav | | 87 | | 352.wav | | 88 | | 354.wav | | 89 | | 356.wav | | 90 | | 358.wav | | 91 | | 360.wav | | 92 | | 363.wav | | 93 | | 381.wav | | 94 | | 383.wav | | 95 | | 420.wav | | 96 | | 422.wav | | 97 | | 424.wav | | 98 | | 426.wav | | 99 | | 428.wav | | 100 | | 430.wav | | 101 | | 432.wav | | 102 | | 434.wav | | 103 | | 436.wav | | 104 | | 438.wav | | 105 | | 440.wav | | 106 | | 442.wav | | 107 | | 444.wav | | 108 | | 446.wav | | 109 | | 448.wav | | 110 | | 450.wav | | 111 | | 452.wav | | 112 | | 454.wav | | 113 | | 456.wav | | 114 | | 458.wav | | 115 | | 460.wav | | 116 | | 462.wav | | 117 | | 464.wav | | 118 | | 466.wav | | 119 | | 468.wav | | 120 | | 470.wav | | 121 | | 472.wav | | 122 | | 474.wav | | 123 | | 476.wav | | 124 | | 478.wav | | 125 | | 480.wav | | 126 | | 482.wav | | 127 | | 484.wav | | 128 | | 486.wav | | 129 | | 488.wav | | 130 | | 490.wav | | 131 | | 492.wav | | 132 | | 494.wav | | 133 | | 530.wav | | 134 | | 532.wav | | 135 | | 534.wav | | 136 | | 536.wav | | 137 | | 538.wav | | 138 | | 540.wav | | 139 | | 542.wav | | 140 | | 544.wav | | 141 | | 546.wav | | 142 | | 547.wav | | 143 | | 548.wav | | 144 | | 550.wav | | 145 | | 552.wav | | 146 | | 554.wav | | 147 | | 556.wav | | 148 | | 558.wav | | 149 | | 560.wav | | 150 | | 562.wav | | 151 | | 564.wav | | 152 | | 567.wav | | 153 | | 570.wav | | 154 | | 572.wav | | 155 | | 574.wav | | 156 | | 598.wav | | 157 | | 600.wav | | 158 | | 602.wav | | 159 | | 604.wav | | 160 | | 606.wav | | 161 | | 608.wav | | 162 | | 610.wav | | 163 | | 612.wav | | 164 | | 614.wav | | 165 | | 616.wav | | 166 | | 618.wav | | 167 | | 620.wav | | 168 | | 622.wav | | 169 | | 626.wav | | 170 | | 628.wav | | 171 | | 630.wav | | 172 | | 632.wav | | 173 | | 634.wav | | 174 | | 637.wav | | 175 | | 639.wav | | 176 | | 641.wav | | 177 | | 643.wav | | 178 | | 645.wav | | 179 | | 647.wav | | 180 | | 651.wav | | 181 | | 653.wav | | 182 | | 656.wav | | 183 | | 660.wav | | 184 | | 662.wav | | 185 | | 664.wav | | 186 | | 666.wav | | 187 | | 673.wav | | 188 | | 675.wav | | 189 | | 677.wav | | 190 | | 679.wav | | 191 | | 681.wav | | 192 | | 683.wav | | 193 | | 685.wav | | 194 | | 687.wav | | 195 | | 689.wav | | 196 | | 691.wav | | 197 | | 693.wav | | 198 | | 695.wav | | 199 | | 697.wav | | 200 | | 699.wav | | 201 | | 701.wav | | 202 | | 703.wav | | 203 | | 705.wav | | 204 | | 707.wav | | 205 | | 709.wav | | 206 | | 711.wav | | 207 | | 713.wav | | 208 | | 715.wav | | 209 | | 717.wav | | 210 | | 719.wav | | 211 | | 721.wav | | 212 | | 723.wav | | 213 | | 727.wav | | 214 | | 729.wav | | 215 | | 731.wav | | 216 | | 733.wav | | 217 | | 735.wav | | 218 | | 738.wav | | 219 | | 750.wav | | 220 | | 752.wav | | 221 | | 754.wav | | 222 | | 756.wav | | 223 | | 758.wav | | 224 | | 760.wav | | 225 | | 762.wav | | 226 | | 764.wav | | 227 | | 766.wav | | 228 | | 768.wav | | 229 | | 770.wav | | 230 | | 774.wav | | 231 | | 776.wav | | 232 | | 778.wav | | 233 | | 780.wav | | 234 | | 784.wav | | 235 | | 786.wav | | 236 | | 788.wav | | 237 | | 790.wav | | 238 | | 792.wav | | 239 | | 794.wav | | 240 | | 796.wav | | 241 | | 798.wav | | 242 | | 800.wav | | 243 | | 804.wav | | 244 | | 806.wav | | 245 | | 813.wav | | 246 | | 815.wav | | 247 | | 817.wav | | 248 | | 819.wav | | 249 | | 821.wav | | 250 | | 823.wav | | 251 | | 825.wav | | 252 | | 827.wav | | 253 | | 829.wav | | 254 | | 831.wav | | 255 | | 833.wav | | 256 | | 887.wav | | 257 | | 889.wav | | 258 | | 891.wav | | 259 | | 893.wav | | 260 | | 897.wav | | 261 | | 899.wav | | 262 | | 901.wav | | 263 | | 903.wav | | 264 | | 906.wav | | 265 | | 908.wav | | 266 | | 911.wav | | 267 | | 913.wav | | 268 | | 915.wav | | 269 | | 918.wav | | 270 | | 921.wav | | 271 | | 923.wav | | 272 | | 926.wav | | 273 | | 928.wav | | 274 | | 930.wav | | 275 | | 933.wav | | 276 | | 935.wav | | 277 | | 937.wav | | 278 | | 939.wav | | 279 | | 942.wav | | 280 | | 944.wav | | 281 | | 946.wav | | 282 | | 948.wav | | 283 | | 955.wav | | 284 | | 957.wav | | 285 | | 959.wav | | 286 | | 961.wav | | 287 | | 963.wav | | 288 | | 984.wav | | 289 | | 986.wav | | 290 | | 988.wav | | 291 | | 990.wav | | 292 | | 992.wav | | 293 | | 994.wav | | 294 | | 996.wav | | 295 | | 998.wav | | 296 | | 1000.wav | | 297 | | 1002.wav | | 298 | | 1004.wav | | 299 | | 1006.wav | | 300 | | 1008.wav | | 301 | | 1010.wav | | 302 | | 1012.wav | | 303 | | 1014.wav | | 304 | | 1016.wav | | 305 | | 1023.wav | | 306 | | 1046.wav | | 307 | | 1073.wav | | 308 | | 1098.wav | | 309 | | 1114.wav | | 310 | | 1133.wav | | 311 | | 1135.wav | | 312 | | 1137.wav | | 313 | | 1139.wav | | 314 | | 1141.wav | | 315 | | 1143.wav | | 316 | | 1145.wav | | 317 | | 1147.wav | | 318 | 319 | -------------------------------------------------------------------------------- /file_formats/script.md: -------------------------------------------------------------------------------- 1 | # Anno Script # 2 | 3 | Anno defines game parameters, animations, UI layouts, and more with scripts written in a custom markup language. 4 | The language looks like a wild mixture of INI, C-Header, JSON, and YAML. [q](https://github.com/roybaer/mdcii-engine/pull/10#issuecomment-510024829) 5 | Prominent files are eg. [haeuser.cod](../files/haeuser.cod.md) and [figuren.cod](../files/figuren.cod.md), the game config file [game.dat](../files/game.dat.md), [Highscore Files](./hss.md) and GUIs. 6 | 7 | Like [Text Files](./text.md), it uses [Windows-1252](https://en.wikipedia.org/wiki/Windows-1252) encoding and Windows **Line Endings** (CRLF). 8 | 9 | ## Syntax ## 10 | 11 | ### Whitespace ### 12 | 13 | Whitespace characters carry no meaning in scripts. The original game files use indentation for easier reading (using both tabs _and_ spaces). 14 | 15 | ### Comments ### 16 | 17 | Line comments start with `;` and end with the **newline** character. 18 | 19 | ### Variables ### 20 | 21 | Variables carry object-independent information. 22 | 23 | Variable identifiers generally use a combination of uppercase letters, digits and underscores (example: `UPPER_CASE_STRING_123`). Exceptions to this rule apply. Certain variable identifiers are pre-defined by the application. 24 | 25 | Variables are defined and declared in a single statement such as `VARIABLE_NAME = 2`. Variable definitions are allowed anywhere within a script. A variable's scope is always global, i.e. even when it is defined in the middle of an object definition, its value persists throughout the remainder of the script. Variable reassignment is possible. 26 | 27 | The right side of variable assignments can be int or float literals (`0.1`, `20`, ...) or simple arithmetic expressions involving literals and other variable identifiers (`500-2`, `GFXSOMETHINGBASE+10`, ...). 28 | 29 | Using the @-syntax, existing variables can be incremented/decremented and reassigned in a single expression. Example: `@GFXNR = +80`. 30 | 31 | ### Properties ### 32 | 33 | Properties add key-value information to objects. 34 | 35 | Property identifiers generally are `TitleCaseStrings`, though exceptions apply. The `Nummer` property is a special property which marks elements in an array of objects. 36 | 37 | Properties are defined and declared in a single statement such as `PropertyName: 2`. Property definitions are allowed at the top of a script, or within objects. The scope of a property is limited to its surrounding object definition. Property reassignment is probably not meant to be possible (based on the fact that neither of the game's script files does this). 38 | 39 | The right side of property assignments can be int or float literals, simple arithmetic expressions involving literals and other variable identifiers, or list-typed values (!), which themselves can contain literals or arithmetic expressions. Examples: 40 | ``` 41 | Nurture: 1.4 ; fixed point value 42 | Nurturelist: 1.4, SOMEVAR, 0 ; list 43 | ``` 44 | 45 | Additionally, the right side can use array subscript notation: 46 | ``` 47 | Pos: 20, 42 ; Property array 48 | 49 | Posoffs: 30-Pos[0], 200-Pos[1] ; 30 - 20, 200 - 42 -> 10, 158 50 | ``` 51 | This is only used in `/Gaddata/CTRL.GAD`. 52 | 53 | Using the @-syntax, existing properties can be incremented/decremented and reassigned in a single expression. Example: `@Gfx: +5`. This is also used for list-typed values, for example: `@Pos: +79, +0`. 54 | 55 | 56 | ### Keyword Properties ### 57 | 58 | Four keyword properties are known: 59 | 60 | | Keyword | Purpose | 61 | |---------|---------| 62 | | `Include`| include the contents of another script file | 63 | | `Objekt` | begin object definition | 64 | | `EndObj` | end object definition | 65 | | `ObjFill` | defines default properties for following objects, or recalls properties from a previously defined object | 66 | 67 | 68 | ### Objects ### 69 | 70 | Object definitions can take two forms: arrays of a defined object struct-like type, or individual struct-like object definitions. 71 | 72 | Object array definitions follow a syntax like the following: 73 | ``` 74 | Objekt: 75 | 76 | Nummer: 77 | PropertyA: 0 78 | PropertyB: 1 79 | 80 | Nummer: 81 | PropertyA: 0 82 | PropertyB: 1 83 | 84 | EndObj; 85 | ``` 86 | 87 | Struct-like object definitions use a similar syntax without `Nummer` properties: 88 | 89 | ``` 90 | Objekt: HAUS_PRODTYP 91 | Kind: ROHSTWACHS 92 | Ware: NOWARE 93 | Interval: 300 94 | EndObj; 95 | ``` 96 | 97 | Objects can be nested (containing itself an object). The maximum nesting level observed in the game's files is 2. 98 | 99 | ### Object Defaults / ObjFill ### 100 | 101 | The special `ObjFill` property permits reuse of object properties for object arrays. There are two variants: forward-filling and backward-filling. 102 | 103 | * Forward-filling defines a default object which includes a statement such as `ObjFill: 0, MAXHAUS`. The semantics of this are to fill array objects in the given range with the properties of that default object. 104 | * Backward-filling adds the properties of a previously defined object with a certain `Nummer` (i.e. array index) to the current array object. This requires a statement such as `ObjFill: `, for example `ObjFill: HAUSWACHS`. 105 | 106 | An object can be both forward-filled and backward-filled at the same time. 107 | 108 | ### Notes / Other Quirks ### 109 | * In `haeuser.cod` in the KE version, the first occurrence of the `Nummer` property is using a relative assignment (`@Nummer`), even though no previous assignment exists. 110 | * Some scripts are erroneous (TODO: examples??). Occasionally an extra `@` is present on **Properties**. **Undefined Variables** are used (examples??). 111 | 112 | ### EBNF Grammar ### 113 | 114 | See https://github.com/mbugert/anno1602-script-parser/blob/main/parser/io/script/grammar.lark 115 | 116 | ## Parser Implementations ## 117 | 118 | * [Christian Flach](https://github.com/cmfcmf)'s [parser implementation](https://github.com/cmfcmf/Anno2018/blob/master/src/parsers/DAT/dat-parser.ts), TypeScript 119 | * [Armin Schlegel](https://github.com/siredmar)'s [parser implementation (uses protobuf)](https://github.com/siredmar/mdcii-engine/blob/master/source/mdcii/mdcii/src/cod/cod_parser.cpp), C++ 120 | * [Michael Bugert](https://github.com/mbugert)'s [grammar and parser generator](https://github.com/mbugert/anno1602-script-parser), Python 121 | -------------------------------------------------------------------------------- /file_formats/anno16_chunks.hexpat: -------------------------------------------------------------------------------- 1 | #pragma endian little 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace Chunks { 8 | 9 | struct Auftrag { 10 | // TODO: AUFTRAG 11 | }; 12 | 13 | struct Auftrag2 { 14 | // TODO: AUFTRAG2 15 | }; 16 | 17 | struct Auftrag4 { 18 | // TODO: AUFTRAG4 19 | 20 | // some numbers 21 | // mission objective in text form 22 | // credits 23 | 24 | // empty space here? 25 | 26 | // some more numbers 27 | }; 28 | 29 | // TODO: move somewhere else 30 | struct Bsh_Texture { 31 | u32 width; 32 | u32 height; 33 | u32 num; 34 | u32 size_bytes; // includes the 4 u32 here 35 | 36 | u8 data[size_bytes - sizeof(u32)*4]; 37 | }; 38 | 39 | struct Bsh { 40 | // we use the offset in the first index as the first texture 41 | u32 _first_index = std::mem::read_unsigned($, sizeof(u32), std::mem::Endian::Little); 42 | auto _number_of_indecies = _first_index/sizeof(u32); 43 | 44 | u32 index[_number_of_indecies]; 45 | 46 | Bsh_Texture textures[2]; // TODO: be smart about textures 47 | }; 48 | 49 | struct Custom { 50 | // TODO: CUSTOM 51 | }; 52 | 53 | struct Handler { 54 | // TODO: HANDLER 55 | }; 56 | 57 | struct Hirsch2 { 58 | // TODO: HIRSCH2 59 | }; 60 | 61 | struct Insel3 { 62 | // TODO: INSEL3 63 | 64 | u8 id; 65 | u8 width; 66 | u8 height; 67 | }; 68 | 69 | struct Insel4 { 70 | // TODO: INSEL4 71 | 72 | u8 id; 73 | u8 width; 74 | u8 height; 75 | }; 76 | 77 | struct Insel5 { 78 | // TODO: INSEL5 79 | 80 | u8 id; 81 | u8 width; 82 | u8 height; 83 | 84 | padding[1]; 85 | 86 | u16 pos_x; 87 | u16 pos_y; 88 | }; 89 | 90 | bitfield InselHaus_Tile { 91 | u16 id; 92 | u8 x; 93 | u8 y; 94 | 95 | orientation : 2; 96 | animation : 4; 97 | island : 8; 98 | city : 3; 99 | padding : 5; // junk or random data 100 | player : 4; 101 | }; 102 | 103 | struct InselHaus { 104 | InselHaus_Tile tiles[size/sizeof(InselHaus_Tile)]; 105 | }; 106 | 107 | struct InselMaxFun { 108 | // TODO: INSEL_MAXFUN 109 | }; 110 | 111 | struct Kontor2 { 112 | // TODO: KONTOR2 113 | }; 114 | 115 | struct Markt2 { 116 | // TODO: MARKT2 117 | }; 118 | 119 | struct Militar { 120 | // TODO: MILITAR 121 | }; 122 | 123 | struct Name { 124 | // TODO: NAME 125 | }; 126 | 127 | struct Player2 { 128 | // TODO: PLAYER2 129 | }; 130 | 131 | struct Player3 { 132 | // TODO: PLAYER3 133 | }; 134 | 135 | struct Player4 { 136 | // TODO: PLAYER4 137 | }; 138 | 139 | struct ProdList2 { 140 | // TODO: PRODLIST2 141 | }; 142 | 143 | struct RandTab { 144 | u16 random_table[512]; // or something 145 | }; 146 | 147 | struct RohWachs2 { 148 | // TODO: ROHWACHS2 149 | }; 150 | 151 | struct Ship4 { 152 | // TODO: SHIP4 153 | }; 154 | 155 | struct Siedler { 156 | // TODO: SIEDLER 157 | }; 158 | 159 | struct Soldat2 { 160 | // TODO: SOLDAT2 161 | }; 162 | 163 | struct Soldat3 { 164 | // TODO: SOLDAT3 165 | }; 166 | 167 | struct SoldatInsel { 168 | // TODO: SOLDATINSEL 169 | }; 170 | 171 | struct Stadt3 { 172 | // TODO: STADT3 173 | }; 174 | 175 | struct Stadt4 { 176 | // TODO: STADT4 177 | }; 178 | 179 | struct Szene { 180 | // TODO: SZENE 181 | }; 182 | 183 | struct SzeneGameID { 184 | u32 id; 185 | }; 186 | 187 | struct SzeneKampagne { 188 | // TODO: SZENE_KAMPAGNE 189 | }; 190 | 191 | struct SzeneMissNr { 192 | // TODO: SZENE_MISSNR 193 | }; 194 | 195 | struct SzenePlayerMax { 196 | u32 number; 197 | }; 198 | 199 | struct SzenePlayerMin { 200 | u32 number; 201 | }; 202 | 203 | struct SzeneRanking { 204 | u32 number; 205 | }; 206 | 207 | struct Timers { 208 | // TODO: TIMERS 209 | }; 210 | 211 | struct Turm { 212 | // TODO: TURM 213 | }; 214 | 215 | struct Werft { 216 | // TODO: WERFT 217 | }; 218 | 219 | struct Wiff { 220 | u32 checksum; 221 | }; 222 | 223 | using Zei = Bsh; // alias 224 | } 225 | 226 | union ChunkData { 227 | if (size > 0) 228 | padding[size]; 229 | 230 | if (std::string::starts_with(chunk_type, "AUFTRAG")) 231 | Chunks::Auftrag chunk_content; 232 | else if (std::string::starts_with(chunk_type, "AUFTRAG2")) 233 | Chunks::Auftrag2 chunk_content; 234 | else if (std::string::starts_with(chunk_type, "AUFTRAG4")) 235 | Chunks::Auftrag4 chunk_content; 236 | else if (std::string::starts_with(chunk_type, "BSH")) 237 | Chunks::Bsh chunk_content; 238 | else if (std::string::starts_with(chunk_type, "CUSTOM")) 239 | Chunks::Custom chunk_content; 240 | else if (std::string::starts_with(chunk_type, "HANDLER")) 241 | Chunks::Handler chunk_content; 242 | else if (std::string::starts_with(chunk_type, "HIRSCH2")) 243 | Chunks::Hirsch2 chunk_content; 244 | else if (std::string::starts_with(chunk_type, "INSEL3")) 245 | Chunks::Insel3 chunk_content; 246 | else if (std::string::starts_with(chunk_type, "INSEL4")) 247 | Chunks::Insel4 chunk_content; 248 | else if (std::string::starts_with(chunk_type, "INSEL5")) 249 | Chunks::Insel5 chunk_content; 250 | else if (std::string::starts_with(chunk_type, "INSELHAUS")) 251 | Chunks::InselHaus chunk_content; 252 | else if (std::string::starts_with(chunk_type, "INSEL_MAXFUN")) 253 | Chunks::InselMaxFun chunk_content; 254 | else if (std::string::starts_with(chunk_type, "KONTOR2")) 255 | Chunks::Kontor2 chunk_content; 256 | else if (std::string::starts_with(chunk_type, "MARKT2")) 257 | Chunks::Markt2 chunk_content; 258 | else if (std::string::starts_with(chunk_type, "MILITAR")) 259 | Chunks::Militar chunk_content; 260 | else if (std::string::starts_with(chunk_type, "NAME")) 261 | Chunks::Name chunk_content; 262 | else if (std::string::starts_with(chunk_type, "PLAYER2")) 263 | Chunks::Player2 chunk_content; 264 | else if (std::string::starts_with(chunk_type, "PLAYER3")) 265 | Chunks::Player3 chunk_content; 266 | else if (std::string::starts_with(chunk_type, "PLAYER4")) 267 | Chunks::Player4 chunk_content; 268 | else if (std::string::starts_with(chunk_type, "PRODLIST2")) 269 | Chunks::ProdList2 chunk_content; 270 | else if (std::string::starts_with(chunk_type, "RANDTAB")) 271 | Chunks::RandTab chunk_content; 272 | else if (std::string::starts_with(chunk_type, "ROHWACHS2")) 273 | Chunks::RohWachs2 chunk_content; 274 | else if (std::string::starts_with(chunk_type, "SHIP4")) 275 | Chunks::Ship4 chunk_content; 276 | else if (std::string::starts_with(chunk_type, "SIEDLER")) 277 | Chunks::Siedler chunk_content; 278 | else if (std::string::starts_with(chunk_type, "SOLDAT2")) 279 | Chunks::Soldat2 chunk_content; 280 | else if (std::string::starts_with(chunk_type, "SOLDAT3")) 281 | Chunks::Soldat3 chunk_content; 282 | else if (std::string::starts_with(chunk_type, "SOLDATINSEL")) 283 | Chunks::SoldatInsel chunk_content; 284 | else if (std::string::starts_with(chunk_type, "STADT3")) 285 | Chunks::Stadt3 chunk_content; 286 | else if (std::string::starts_with(chunk_type, "STADT4")) 287 | Chunks::Stadt4 chunk_content; 288 | else if (std::string::starts_with(chunk_type, "SZENE_GAMEID")) 289 | Chunks::SzeneGameID chunk_content; 290 | else if (std::string::starts_with(chunk_type, "SZENE_KAMPAGNE")) 291 | Chunks::SzeneKampagne chunk_content; 292 | else if (std::string::starts_with(chunk_type, "SZENE_MISSNR")) 293 | Chunks::SzeneMissNr chunk_content; 294 | else if (std::string::starts_with(chunk_type, "SZENE_PLAYERMAX")) 295 | Chunks::SzenePlayerMax chunk_content; 296 | else if (std::string::starts_with(chunk_type, "SZENE_PLAYERMIN")) 297 | Chunks::SzenePlayerMin chunk_content; 298 | else if (std::string::starts_with(chunk_type, "SZENE_RANKING")) 299 | Chunks::SzeneRanking chunk_content; 300 | else if (std::string::starts_with(chunk_type, "SZENE")) // after common prefix 301 | Chunks::Szene chunk_content; 302 | else if (std::string::starts_with(chunk_type, "TIMERS")) 303 | Chunks::Timers chunk_content; 304 | else if (std::string::starts_with(chunk_type, "TURM")) 305 | Chunks::Turm chunk_content; 306 | else if (std::string::starts_with(chunk_type, "WERFT")) 307 | Chunks::Werft chunk_content; 308 | else if (std::string::starts_with(chunk_type, "WIFF")) 309 | Chunks::Wiff chunk_content; 310 | else if (std::string::starts_with(chunk_type, "ZEI")) 311 | Chunks::Zei chunk_content; 312 | else 313 | std::print("unknown chunk type '{}'\n", chunk_type); 314 | }; 315 | 316 | struct Chunk { 317 | char name[16]; 318 | u32 size; 319 | ChunkData data; 320 | }; 321 | 322 | Chunk chunk[while(!std::mem::eof())] @ 0x00; 323 | 324 | // # vi: ft=cpp 325 | -------------------------------------------------------------------------------- /files/game.dat.md: -------------------------------------------------------------------------------- 1 | # /Game.dat 2 | Is a [Script](../file_formats/script.md) that stores information on in-game settings and savegames. 3 | 4 | ## Königs-Edition (KE) 5 | 6 | ### Example Contents 7 | ``` 8 | Musik: TRUE, 0 9 | Samples: TRUE 10 | Random: TRUE 11 | Volume: -1606, -1606, -597 12 | VideoQual: TRUE 13 | 14 | Song: 0, FALSE 15 | Song: 2, FALSE 16 | 17 | Speach: 0, TRUE 18 | Speach: 1, FALSE 19 | Speach: 2, FALSE 20 | Speach: 3, FALSE 21 | Speach: 4, FALSE 22 | Speach: 5, FALSE 23 | Speach: 6, FALSE 24 | Speach: 7, FALSE 25 | 26 | Video: 0, FALSE 27 | Video: 1, TRUE 28 | Video: 2, TRUE 29 | Video: 3, FALSE 30 | Video: 4, FALSE 31 | Video: 5, FALSE 32 | Video: 6, FALSE 33 | Video: 7, FALSE 34 | 35 | Lastfile: "C:\path\to\Savegame\lastgame.gam" 36 | 37 | Endlosnr: 3 38 | Tutornr: 0 39 | 40 | Kampagne: 0, 2 41 | Kampagne: 1, 1 42 | 43 | Objekt: SPIELNAME 44 | 45 | Name: 0, "Im Auftr d Königs", 1 46 | Name: 1, "Im Auftr d Königs2", 1 47 | Name: 2, "Kreuzverkehr A", 3 48 | Name: 3, "Kreuzverkehr B", 3 49 | Name: 4, "Endlos rot", 1 50 | Name: 5, "", 1 51 | Name: 6, "", 1 52 | Name: 7, "", 1 53 | Name: 8, "", 1 54 | Name: 9, "", 1 55 | Name: 10, "", 1 56 | Name: 11, "", 1 57 | 58 | EndObj; 59 | ``` 60 | 61 | ### Explanation 62 | 63 | | Property | Data Type | Purpose | 64 | | ------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 65 | | `Musik` | bool, uint | The bool encodes whether playback is enabled. **TODO** The role of the uint is unclear. Values observed so far are 15, 8, and 0, which could mean it is a bitmask. | 66 | | `Samples` | bool | Encodes whether sound effects playback is enabled. | 67 | | `Random` | bool | If `TRUE`, music tracks will play in random order (sequential order otherwise). | 68 | | `Volume` | int, int, int | The volume of music, sound effects, and a value that correlates to progress in the main campaign. Values range from -4000 (minimum volume) to 0 (maximum volume) and -595 (new game) up to -580 (endgame). | 69 | | `VideoQual` | bool | **TODO** unclear. | 70 | | `Song` | uint, bool | Whether the i-th music track is disabled. When a track is re-enabled in-game, the corresponding line is removed entirely, so a line such as `Song: 0, TRUE` never occurs in practice. | 71 | | `Speach` | uint, bool | Encodes which categories of voice announcements are disabled (`TRUE` means disabled). Index 0 corresponds to the overall setting (if `TRUE`, all announcements are disabled). Indices 1-7 correspond to the seven categories shown in-game in their order of appearance (German version: "Ereignisse", "Inselstatus", etc.). | 72 | | `Video` | uint, bool | Like `Speach`, but for cutscenes. Index 0 corresponds to the overall setting. Disabling the first category of cutscenes in-game ("Ereignisse") will set indices 1 and 2 to `TRUE`. The second category ("Kampfhandlungen") controls index 5, and the third category ("Diplomatie") controls index 7. Other indices appear to be unused. | 73 | | `Endlosnr` | uint | The difficulty of the last endless game (0: easiest, 3: most difficult). | 74 | | `Tutornr` | uint | **TODO Unclear.** It probably is the index of the next tutorial stage to play, but didn't behave this way. | 75 | | `Lastfile` | string | Filesystem path to the `lastgame.gam` autosave file. | 76 | | `Kampagne` | uint, uint | Campaign progress. The first value is the index of the campaign, the second stores the progress. A progress value of `i` means all scenarios up to and including index `i` are unlocked. | 77 | | `Objekt: SPIELNAME` | per savegame: uint, char[32], uint | Stores savegame properties. The number of savegames is hard-capped to 12 (any externally added entries will be removed again by the game). The first uint is the index of the corresponding `game{i:02}.gam` savegame file in [SAVEGAME/](./savegame/index.md). The string is the name of the savegame shown in-game. The in-game character limit is 18 chars, though up to 32 chars will be displayed if `game.dat` is edited externally. The second uint is the number of human players participating (1 = singleplayer, 2 = two-player multiplayer, etc.). | 78 | 79 | ### Write events 80 | The game updates the contents of `game.dat` whenever: 81 | * the user saves a game 82 | * the user switches from the end-of-game stats screen to the main menu screen 83 | * the game is closed gracefully from the main menu 84 | 85 | ### Interaction with Registry Keys 86 | Certain `game.dat` settings have corresponding registry keys in `HKEY_CURRENT_USER\Software\Anno1602`. For example, the `MUSIK_FLAG`, `SOUND_FLAG`, and `VIDEO_QUALITAET` keys correspond to `Musik`, `Samples`, and `VideoQual` in `game.dat`. When starting the game, the registry settings take priority over `game.dat` settings, and the `game.dat` settings will be modified to match the registry settings on the next occasion (see [Write events](#write-events)). 87 | The value of these registry keys is set through `Config.exe`, or through the in-game audio settings. 88 | 89 | **TODO** Investigate this more closely. 90 | -------------------------------------------------------------------------------- /version_differences.md: -------------------------------------------------------------------------------- 1 | # Version and Language Differences 2 | 3 | _Note on OS compatibility_: There is considerable variation in file name casing (e.g. `Bauhaus.bsh` vs. `BAUHAUS.BSH`) across game versions, languages, and folders. Projects targeting support for OS with case-sensitive file systems (i.e. Linux) should keep this in mind. It does not matter on Windows, since Windows' file system is case-insensitive. 4 | 5 | - [Original](#original) 6 | - [Neue Inseln, neue Abenteuer (NINA)](#neue-inseln-neue-abenteuer-nina) 7 | - [Königs-Edition (KE)](#königs-edition-ke) 8 | - [COD files](#cod-files) 9 | - [GFX](#gfx) 10 | - [MGFX](#mgfx) 11 | - [SGFX](#sgfx) 12 | - [ToolGfx](#toolgfx) 13 | - [Language-agnostic Files](#language-agnostic-files) 14 | - [Language-specific Files](#language-specific-files) 15 | - [Good Old Games (GOG)](#good-old-games-gog) 16 | - [English, German, French Versions](#english-german-french-versions) 17 | - [COD files](#cod-files-1) 18 | - [GFX/MGFX/SGFX](#gfxmgfxsgfx) 19 | - [ToolGfx](#toolgfx-1) 20 | - [Language-agnostic files](#language-agnostic-files-1) 21 | - [Language-specific files](#language-specific-files-1) 22 | - [Polish Version](#polish-version) 23 | - [COD files](#cod-files-2) 24 | - [GFX](#gfx-1) 25 | - [MGFX](#mgfx-1) 26 | - [SGFX](#sgfx-1) 27 | - [ToolGfx](#toolgfx-2) 28 | - [History Edition (HE)](#history-edition-he) 29 | - [COD files](#cod-files-3) 30 | - [GFX, MGFX, SGFX](#gfx-mgfx-sgfx) 31 | - [ToolGfx](#toolgfx-3) 32 | - [Language-agnostic files](#language-agnostic-files-2) 33 | - [Language-specific files](#language-specific-files-2) 34 | 35 | ## Original 36 | TODO 37 | 38 | ## Neue Inseln, neue Abenteuer (NINA) 39 | TODO 40 | 41 | ## Königs-Edition (KE) 42 | Information taken from the German release: 43 | * EXE file version: `0.2.5.2` 44 | * EXE product version: `1.0.0.5` 45 | 46 | ### COD files 47 | | Name | SHA-256 | 48 | |------|---------| 49 | | haeuser.cod | `82799ca9b24ae05745818f39c302f46c732e90eb7d6675d5cd6661fed15d2656` | 50 | | figuren.cod | `2313eeb802ae7f2c4130c611e96489bc172a451d85710d4bf842d58b9e81115c` | 51 | 52 | ### GFX 53 | See [files/gfx/](files/gfx/) for a detailed discussion of file contents. 54 | 55 | Changes in the KE version compared to **TODO the Polish GOG version, which is yet to be identified (suspicion is NINA)**: 56 | * Additions: `FISCHE.BSH`, `GAUKLER.BSH`, `SCHATTEN.BSH`. 57 | * Modifications: 58 | * `STADTFLD.BSH` adds many new things **TODO what exactly?** 59 | * `TIERE.BSH` adds an antelope 60 | * in `MAEHER.BSH`, a single pixel in the 1060th texture has changed 61 | * in `EFFEKTE.BSH`, volcano projectiles and crates floating on the surface (shown after a ship sinks) were added 62 | * The file size of `SHIP.BSH` is reduced, but the file produces the same series of textures as in the previous version. 63 | * This is achieved by removing duplicate textures. For example, the pirate flag animation consists of 8 frames, but only 5 of these frames are unique (playback order is 0, 1, 2, 3, 4, 3, 2, 1). The BSH in **TODO version** stores bitmaps for all 8 frames. The KE version stores bitmaps only for the 5 unique frames, then references those bitmaps multiple times in the BSH texture index (see [BSH file format](file_formats/bsh.md)). 64 | 65 | | Name | SHA-256 | 66 | |------|---------| 67 | | EFFEKTE.BSH | `11eaa1322619bb1379b55613c4f51167861483231ef5c7381e8fce0a01b256fd` | 68 | | FISCHE.BSH | `9cf2fc9e6a1fca0b512f61bd843bdd0be47ddae9b4b7627bed2f49e4e802a9df` | 69 | | GAUKLER.BSH | `4414d65eecd295210760915388f654b9711ed279d0b634011c67c153af4bf42a` | 70 | | MAEHER.BSH | `56196895ef4a8b826dd800dfdb299a8253d2ef3c645cb7b53269bb5d65c9a4ab` | 71 | | NUMBERS.BSH | `73e878f8e4143a21463fb2f3e1416ede17d8af0fa634c6e8837ac9da12a69092` | 72 | | SCHATTEN.BSH | `56ee1712645c5f760697edabbf138e73d2d3a7f57cf63a9174206704eb5e3710` | 73 | | SHIP.BSH | `446bd77296ab4aec88f4fd9cadc0812e5e0686fa850e6bf49b2a208cb8b69065` | 74 | | SOLDAT.BSH | `7270d576570b1481aaf3b90fcced37747ea31829978e7666a61cfb7274e125a1` | 75 | | STADTFLD.BSH | `5a4d46474680d4eaae62b8a768c25bf8e9ef9d35f14a83b11570703ba4b08e8c` | 76 | | TIERE.BSH | `a16608cf1f5ad7133ae30c414b0dc72ec491041ddc0282af0f4ceaef252c13f3` | 77 | | TRAEGER.BSH | `36b4ab78e92b09a0766af1ac8b57769c8802ed6ffd3c1edd06930082bb2d4315` | 78 | 79 | ### MGFX 80 | See [files/mgfx/](files/mgfx/) for a detailed discussion of file contents. 81 | 82 | | Name | SHA-256 | 83 | |------|---------| 84 | | Effekte.bsh | `ccd8e06fd84b134188533a04ddc6939977a4b43692f2f93f4ae28e7a416a455c` | 85 | | FISCHE.BSH | `f75601eb70b94233f27a395033716331b96a311110090010b5ac1843bac67f13` | 86 | | GAUKLER.BSH | `b5d0b43dfa75edd66ef936a6a8fbfc01c165ccec2be2febd8285dd8313bfd2c4` | 87 | | MAEHER.BSH | `cc3ff2e982efacfcbf603b1e4b2f9fe7413af43247df503035eec94d93798b35` | 88 | | NUMBERS.BSH | `3cb6fb99924dd02d2b22d4c86da9c88d5ce070f20137e63799bdfed9c2c5b752` | 89 | | SCHATTEN.BSH | `ee0eb779f88fe11e636c62084c640186df4d9d57b38b756679aeda1dbad4a35d` | 90 | | SHIP.BSH | `65d88b51ab76eacdd06dfc0404e8a266d98380ad70be2611c3648d87e1222ac1` | 91 | | SOLDAT.BSH | `79667644bf11a40de3726a6b84839f33a22ee438c6afb28e8c1011d2cfb59766` | 92 | | Stadtfld.bsh | `398b99798f9e96887829dfb94871f5afd52d70632b4485bb1b8e62a14d059391` | 93 | | TIERE.BSH | `8ea5d8f4a4d1df5b53dc300bf90d5234b73f2faa81733bc87cca07f06278a99c` | 94 | | TRAEGER.BSH | `348993fdd21e08fa16edf26661da5d899ddee52581f8bca443dab9694e3335a7` | 95 | 96 | ### SGFX 97 | See [files/sgfx/](files/sgfx/) for a detailed discussion of file contents. 98 | 99 | | Name | SHA-256 | 100 | |------|---------| 101 | | Effekte.bsh | `1606c5a20d995ed1b71e649702d837745837c9caec21be91928256fd10bbcf59` | 102 | | fische.bsh | `10a6385c352d43060525e8fecb171905b55d476ec559bec115fc7f1869ef5f28` | 103 | | gaukler.bsh | `7f907eacdf90d6512cc44d2ddb8eb5e3189de58fe34f1babd7f72c9f6c277019` | 104 | | Maeher.bsh | `088fb6261e414604046d9a6c13c82f8f30fbe9c2d05221fd5b7fd10d9480ab46` | 105 | | Numbers.bsh | `a4a86260cc967dae7b42b306628d6af3f5f0d3fe46af63fa828cb95d923958f8` | 106 | | schatten.bsh | `216f542727088f1d53ba381eaf8201725f445f02d2ae3bf230f69a33fd706cfb` | 107 | | Ship.bsh | `dd46efa5f4b84f1ebea3eb61d446a193499f51436fc6a53301f77397a3c9c68d` | 108 | | Soldat.bsh | `f0810d8ec08e8571b5f49129279da445d442e6d19f4830225d29e31dc622bed3` | 109 | | Stadtfld.bsh | `b71f34ee9ef70843683759f5f6ad9eddc552e35afae7e69629c8347fd1dcedc0` | 110 | | Tiere.bsh | `1e5581c5cbe1f9861b59291ddd76c4d7ed9298501870d2dcc402ba97832fab5b` | 111 | | Traeger.bsh | `199cf0d96cc3d0a8508c59949acfdd3999b8907453fba83d447cd80392aee982` | 112 | 113 | ### ToolGfx 114 | See [files/toolgfx/](files/toolgfx/) for a detailed discussion of file contents. 115 | 116 | #### Language-agnostic Files 117 | 118 | | Name | SHA-256 | 119 | |------|---------| 120 | | BAUHAUS.BSH | `89634b8c86fff5dce7c5661def79ee2e9820d0a757db475217a12f4142f1ab6b` | 121 | | BAUHAUS6.BSH | `5389ea9c3a1f7803440963431d6d8ac8c1c64ddbac534c3776cad259a60389e5` | 122 | | Bauhaus8.bsh | `7ad7127315ba4fd93a255fdd1f32d584a6e0b56afb7b9fea6a2e271df1946afd` | 123 | | BAUSHIP.BSH | `534fc21e087c02d32085d359b94183411df9042888e6de9dfb6a6106970cad03` | 124 | | Bauship6.bsh | `e160b3eb5f5c6ca05d817a6b6a4c51a9497545ef7e4b08dcbf6b735cdb09caa0` | 125 | | Bauship8.bsh | `44aec439c19ebfedb23b644d7a44fe5ff2f088fa0e34d05cfd47375cdd4cc2d3` | 126 | | STADTFLD.COL | `667d6a6752132517bb17647e01eccaaa4a5232a6b883f6b7584db1bfb318ad5f` | 127 | | SYMBOL.BSH | `c102c45bcb3ce7ffe75c5c9aff013d8dbe20fcdc8fd0573cde3c25b91249d827` | 128 | | ZEI11A.ZEI | `3c7e5d90130f814b926c182f7113c9a710265e53d61dbf45f60616f33a44984c` | 129 | | ZEI14A.ZEI | `fd1a0ccf19554aa1370b5550492b47e560e7f244c5d93aa805aeb954ac1c8b15` | 130 | | ZEI14V.ZEI | `ed3de82ba619833ee79bf2b3148c12caa941b88337590b78b4e97bf743a11d46` | 131 | | ZEI16G.ZEI | `8fe099b89ba5312c40b73780efd983aba4120f6bbee0b7f8c51f9e47ffee4f86` | 132 | | ZEI16H.ZEI | `49673902581cd228e51037c1b8e15230f7bae34b9b14c57522ff562a26c8f49f` | 133 | | ZEI16V.ZEI | `32dc535fb90e4304f300dfbaa9b5c1ae13e7a050016ded786c4bfc6de3996557` | 134 | | ZEI2.ZEI | `aca0080889911926aa14e8772b74915c84370fcd59ae9c970de1864085107fc0` | 135 | | ZEI20H.ZEI | `ebf2b9fd6b417db02fa3d1df975ba47fe5da8b54f413eaeb88770bcd33d4bf13` | 136 | | ZEI20V.ZEI | `6bfc71d979f6678626f26caa8c23c81cdcc4f3d8968b4118c5dc816fb238dc13` | 137 | | ZEI24V.ZEI | `b7730ef6e5c1301e7d0c6328420201b09f5195976b82fc04b638e1a9f0ada86a` | 138 | | ZEI28V.ZEI | `fa6b5d99f4f329c4dae5708da6ae4bc6fbc094662a79a9f04aff872e3aadf49b` | 139 | | ZEI9A.ZEI | `94eac5d80486b9e85818fe27fc768a6facd6d3c9db423befc62d94bae516f923` | 140 | 141 | #### Language-specific Files 142 | 143 | German: 144 | 145 | | Name | SHA-256 | 146 | |------|---------| 147 | | Editor.bsh | `1d307eda649c3233b723b99cc9fee5c8fa49799451292339231670b7c337cb0e` | 148 | | Editor6.bsh | `e405d0f14b5ea6245de36970d53bcd161fdca3131ad2a26809c38cdeee301d5a` | 149 | | Editor8.bsh | `de2da9f2074d4ec8cfab8c90fd9a35be0f60cf97e92e066923a25aaa66aa0a4e` | 150 | | START.BSH | `6a2362a47ca5c0184516c4ffff580c44adb7877754e6423a3565766ddf6ab69c` | 151 | | Start6.bsh | `31ba38fc35bc989e9ba0862bedaa0910fd734d381e27a0f423492ba02f870abe` | 152 | | Start8.bsh | `9f2240033851d23f5d2330f2daf282a3fde7d61f28a35a2ddb77f12e28223127` | 153 | | TOOLS.BSH | `9f9f650a0fdb4e521f3a5b2f1a08bf686119071935849e72aace2e109b71c419` | 154 | | TOOLS6.BSH | `7c7973acf57cf23fa4f2d7f43f49fba48b08426b9dbea52427300de47de862a8` | 155 | | TOOLS8.BSH | `e9674db53784d7ffc5be35437e350caeab1dfe2cb20dcf40b637db29be4a4761` | 156 | 157 | **TODO add other languages and compare them to GOG, HE** 158 | 159 | 160 | ## Good Old Games (GOG) 161 | A re-release that doesn't require a disk drive, or mounting disk images. Product website: https://www.gog.com/de/game/anno_1602_ad 162 | 163 | The game version depends on the in-game language. 164 | 165 | ### English, German, French Versions 166 | 167 | English: 168 | * EXE file version: `0.2.5.1` 169 | * EXE product version: `1.0.0.5` 170 | 171 | German: 172 | * EXE file version: `0.2.5.1` 173 | * EXE product version: `1.0.0.5` 174 | 175 | French: 176 | * EXE file version: `0.2.5.2` 177 | * EXE product version: `1.0.0.5` 178 | 179 | #### COD files 180 | Identical to ![KE](#königs-edition-ke) 181 | 182 | #### GFX/MGFX/SGFX 183 | Identical to ![KE](#königs-edition-ke) 184 | 185 | #### ToolGfx 186 | See [files/toolgfx/](files/toolgfx/) for a detailed discussion of file contents. 187 | 188 | ##### Language-agnostic files 189 | Identical to ![KE](#königs-edition-ke) 190 | 191 | ##### Language-specific files 192 | German: Identical to German ![KE](#königs-edition-ke) files. 193 | 194 | English: 195 | 196 | | Name | SHA-256 | 197 | |------|---------| 198 | | EDITOR.BSH | `3008785d1d3205fe36e60aec8661ae15ae8347dca0d76e11eaf9d7b3c4d3f581` | 199 | | editor6.bsh | `f113425504242fcddcf9a28b6bc2e1c41f9e72183d3b79b835c0f100778c6051` | 200 | | editor8.bsh | `1f8fd94164fa0cc123c9149e1c9469daf3ae9b62ef6699a1c5b753bbfc83a20f` | 201 | | START.BSH | `c7b67c8dbb93c3fbdc56e028f4726cfc15b24b2e1121fa0e9eec96ec2cd38b92` | 202 | | start6.bsh | `f432cd285de2700f87333aa60b8f61db7a77b94490be4bda230f4173dc259dcc` | 203 | | start8.bsh | `27c7cfb6b288e27eac49133b7576eee103abb158cd89a9826748fe2c5b88accc` | 204 | | TOOLS.BSH | `071c4d56568551e860cbfba7a447057524e82b3cb17fb14061e45e71b85f6dbd` | 205 | | tools6.bsh | `0744e8a474fc55e2414c0766f70738858b12359e40a94c5b592f9bd5058b01bc` | 206 | | tools8.bsh | `66f7bd5d37482657d162e55b59862cb51f61762484ccea0029c8d8fb483c5a84` | 207 | 208 | French: 209 | 210 | | Name | SHA-256 | 211 | |------|---------| 212 | | EDITOR.BSH | `40d7dfcc7fd4d508cbfbcc61343fe957d42257330a06a9d8c4b39bee31cbb9d6` | 213 | | editor6.bsh | `b491a5975a2b43ef8a925176707a8312331ff9b7086395014e6c882b298887a7` | 214 | | editor8.bsh | `985ecf5d3ddfd8e28c47186d3c8c1000f263a966497131a24c6055960580ae08` | 215 | | START.BSH | `3a09c79f873913c43a28ef6f51dc807630349256fcb520e2a2727a7d54489781` | 216 | | start6.bsh | `e000ce475c3d2790b9efc7770bfbd618c51f27537a7841cebd8e99aa8104274b` | 217 | | start8.bsh | `583dfc051bed78191704bea8fff7e90d625d6172fdc9b3e83984ca82492904ae` | 218 | | TOOLS.BSH | `25735ad51843182310f2952e1de38974ad4a746ed9950ac4b180ac85554895e3` | 219 | | tools6.bsh | `657045dcc360759e505a64809e3cd48dca770f3f2e5b70b8ac7065c58e07b7da` | 220 | | tools8.bsh | `f8eb4c408d7ba4fc4551c193bfa427104ffd0002b932a8f791f3b6ced0e7296e` | 221 | 222 | 223 | ### Polish Version 224 | * EXE file version: `0.1.9.6` 225 | * EXE product version: `1.0.0.5` 226 | 227 | This version does not include the [island editor](files/1602edit.exe.md). 228 | GFX/MGFX/SGFX are identical to **TODO NINA version??** 229 | 230 | #### COD files 231 | | Name | SHA-256 | 232 | |------|---------| 233 | | Haeuser.cod | `ff6231ad15df44b4f7bc724ba28fe0938287fa86f9e49634cebc1bd65f214aec` | 234 | | Figuren.cod | `e19ff84fbf9771b1fd7d01569e8674cf230d258e16e8d500da27829d073a2f39` | 235 | 236 | #### GFX 237 | 238 | | Name | SHA-256 | 239 | |------|---------| 240 | | NUMBERS.BSH | `73e878f8e4143a21463fb2f3e1416ede17d8af0fa634c6e8837ac9da12a69092` | 241 | | Maeher.bsh | `1a1fc293bd5a22517c2bb1533adac74e6c82d921fae91db9bcdb0e6406601d6d` | 242 | | Tiere.bsh | `276ee161034878c43b12fb949f174360e9bc5801c24f9d3809a7c5128545fdc5` | 243 | | Ship.bsh | `e3b943f4680750fbaaa525f2b0ac0e68a45bfe93f37c10aac219a7036b57d750` | 244 | | Stadtfld.bsh | `d80befc6303a92bb67cb2d12fef8510aa5acb60ecdcba5500afb2e31bab7bd5c` | 245 | | Effekte.bsh | `cb04c1f1c0fa3b156ad3f7ddedaa975375afe59f6ac55814d542de74d292f945` | 246 | | TRAEGER.BSH | `36b4ab78e92b09a0766af1ac8b57769c8802ed6ffd3c1edd06930082bb2d4315` | 247 | | SOLDAT.BSH | `7270d576570b1481aaf3b90fcced37747ea31829978e7666a61cfb7274e125a1` | 248 | 249 | #### MGFX 250 | 251 | | Name | SHA-256 | 252 | |------|---------| 253 | | NUMBERS.BSH | `3cb6fb99924dd02d2b22d4c86da9c88d5ce070f20137e63799bdfed9c2c5b752` | 254 | | Tiere.bsh | `37381fad5305219d7c02bda419ed1abdc3015e51fd878c138222bad14cf895d3` | 255 | | Ship.bsh | `ccf472f430e747994d0e66b3e64dea000981cfc711bc4dc167f47a38152a7187` | 256 | | MAEHER.BSH | `cc3ff2e982efacfcbf603b1e4b2f9fe7413af43247df503035eec94d93798b35` | 257 | | Stadtfld.bsh | `fa841234d19edb9eb73d240b8c9a63c27e84fef59e7c839ac93fa6544d27ccc4` | 258 | | Effekte.bsh | `bf984210f45a0e0034fef7d92fe44ece8124f4b1128b5001f97bcbd811d716b7` | 259 | | TRAEGER.BSH | `348993fdd21e08fa16edf26661da5d899ddee52581f8bca443dab9694e3335a7` | 260 | | SOLDAT.BSH | `79667644bf11a40de3726a6b84839f33a22ee438c6afb28e8c1011d2cfb59766` | 261 | 262 | #### SGFX 263 | 264 | | Name | SHA-256 | 265 | |------|---------| 266 | | Maeher.bsh | `088fb6261e414604046d9a6c13c82f8f30fbe9c2d05221fd5b7fd10d9480ab46` | 267 | | Tiere.bsh | `8950f5c93bff2023d7e98e52fc92ffd6e924c5ebef390bdc06e334ee82db5a94` | 268 | | Ship.bsh | `2cb024acc57624a74fae0375eee696da2e18bdfe931ed49c487c140fc023b13b` | 269 | | Traeger.bsh | `199cf0d96cc3d0a8508c59949acfdd3999b8907453fba83d447cd80392aee982` | 270 | | Soldat.bsh | `f0810d8ec08e8571b5f49129279da445d442e6d19f4830225d29e31dc622bed3` | 271 | | Stadtfld.bsh | `25b27239d6329853afd608fd282f6fb77108805d81458ff7d8dd559ffdc57e13` | 272 | | Numbers.bsh | `a4a86260cc967dae7b42b306628d6af3f5f0d3fe46af63fa828cb95d923958f8` | 273 | | Effekte.bsh | `74cab7c0214c7be382e44efd3d658c93d70b9e7576bc254496fabfc1955a205b` | 274 | 275 | #### ToolGfx 276 | 277 | | Name | SHA-256 | 278 | |------|---------| 279 | | Bauhaus.bsh | `7489b8a1cd5747e59c605969dde07b7e24a100b283c941865d47186b046a4f57` | 280 | | Bauhaus6.bsh | `2c4599f77f95cb564d6f7b4ca2a8ee47f1a0fa53a77eef8b723c999bc91d078b` | 281 | | Bauhaus8.bsh | `0dd7bfdfcc77de60ab614c9f9c06f7aebcae46c9049dcda4ea17539a3ea4e492` | 282 | | BAUSHIP.BSH | `534fc21e087c02d32085d359b94183411df9042888e6de9dfb6a6106970cad03` | 283 | | Bauship6.bsh | `e160b3eb5f5c6ca05d817a6b6a4c51a9497545ef7e4b08dcbf6b735cdb09caa0` | 284 | | Bauship8.bsh | `44aec439c19ebfedb23b644d7a44fe5ff2f088fa0e34d05cfd47375cdd4cc2d3` | 285 | | STADTFLD.COL | `667d6a6752132517bb17647e01eccaaa4a5232a6b883f6b7584db1bfb318ad5f` | 286 | | Start.bsh | `443c7fe0989eb6d4c9e35017a08ad15d0f4b57d9dff54e414b56d79711ddb28a` | 287 | | Start6.bsh | `6dc9770af9f3d3e492a8e8f602f8e7772abc797e567421e27949428f35453c4e` | 288 | | Start8.bsh | `3291b3670053bf5e32c11ec33084ae752c2c101ef3671f66b09a459b944238e5` | 289 | | Symbol.bsh | `7e7f863d7adcca00227dde1973e727d20e53d77283c979e17d5047c311ff2cc2` | 290 | | Tools.bsh | `0852bd0b663e494beb209be7f698090546e96fe544c47d5c1dc1042ded48c456` | 291 | | Tools6.bsh | `82723f3cab16b287f2ef385c87fa6b027de60246821f1f3d3f330a211b11e0ad` | 292 | | Tools8.bsh | `c4e9a31dd30610168112c31da4fc03bcb6cff52d18481355620f744b511d942c` | 293 | | Zei11a.zei | `e71a2f730b9dcacbb504e5e3f9540ca2b4cc73df36b76af75d63c8f432235d29` | 294 | | Zei14a.zei | `ede0d6811689a427d75b1863d9841f76fcfcae0b1f8f9955689d308269f84a65` | 295 | | Zei14v.zei | `527bcfb19d5aedd76478734ed1cce73052e856d6b17ff71abf588366714d56c3` | 296 | | ZEI16G.ZEI | `8fe099b89ba5312c40b73780efd983aba4120f6bbee0b7f8c51f9e47ffee4f86` | 297 | | ZEI16H.ZEI | `49673902581cd228e51037c1b8e15230f7bae34b9b14c57522ff562a26c8f49f` | 298 | | Zei16v.zei | `dbff364083aa7cee4bcc78f4259568d49f2d6a14c4ea18e3e5cee63b328ec33f` | 299 | | ZEI2.ZEI | `aca0080889911926aa14e8772b74915c84370fcd59ae9c970de1864085107fc0` | 300 | | ZEI20H.ZEI | `ebf2b9fd6b417db02fa3d1df975ba47fe5da8b54f413eaeb88770bcd33d4bf13` | 301 | | Zei20v.zei | `fd20022767cc6d56ea9f19806cc854d7f4a742170f4c295bc13b3e494ef788d1` | 302 | | zei20vl.zei | `9192d0d640ab6bce80ed19b417845c158e44b6006a21f94f00d1ddb2eb0e6b75` | 303 | | Zei24v.zei | `7656a4172e2b17b6bdb7eb1b5e1c04f48090a0060d1f9bc9dbc4f453439eeb35` | 304 | | Zei28v.zei | `b9f64817671add44d53244c600d50ea93969628ba9e0f72cd8e0bd07c08f6bd7` | 305 | | Zei9a.zei | `4647d3506dfcda3b8a760867582af3f80fb78b77b41b0abfcb53ab2edcea5726` | 306 | 307 | ## History Edition (HE) 308 | A refresh of [KE](#königs-edition-ke) that adds 64-bit support, widescreen and 4K screen resolutions. Product website: https://store.ubisoft.com/de/game?pid=5ebc1bc50d253c2420445272 309 | 310 | * EXE file version: `1.0.0.0` 311 | * EXE product version: `1.0.0.0` 312 | 313 | ### COD files 314 | Identical to ![KE](#königs-edition-ke). 315 | 316 | ### GFX, MGFX, SGFX 317 | Identical to ![KE](#königs-edition-ke). 318 | 319 | ### ToolGfx 320 | `BAUHAUS.BSH`, `BAUSHIP.BSH`, `STADTFLD.COL`, `SYMBOL.BSH` remain identical to KE. 321 | 322 | Changes in the HE version compared to KE: 323 | * Modifications: 324 | * Menu graphics were added to the language-specific menu images (`TOOLS.BSH`, `Editor.bsh`, `START.BSH`). Some images are stored directly in RGB format, opposed to using color palette indices [[source]](https://github.com/siredmar/mdcii-engine/issues/87#issuecomment-770234926). 325 | * Removals: 326 | * BSH files ending with 6 or 8 (`Bauhaus8.bsh`, `TOOLS6.BSH`, etc.) are removed 327 | * Removed fonts: `ZEI11A.ZEI`, `ZEI14V.ZEI`, `ZEI24V.ZEI`, `ZEI16V.ZEI`, `ZEI9A.ZEI` 328 | 329 | #### Language-agnostic files 330 | 331 | | Name | SHA-256 | 332 | |------|---------| 333 | | BAUHAUS.BSH | `89634b8c86fff5dce7c5661def79ee2e9820d0a757db475217a12f4142f1ab6b` | 334 | | BAUSHIP.BSH | `534fc21e087c02d32085d359b94183411df9042888e6de9dfb6a6106970cad03` | 335 | | STADTFLD.COL | `667d6a6752132517bb17647e01eccaaa4a5232a6b883f6b7584db1bfb318ad5f` | 336 | | SYMBOL.BSH | `c102c45bcb3ce7ffe75c5c9aff013d8dbe20fcdc8fd0573cde3c25b91249d827` | 337 | | ZEI14A.ZEI | `fd1a0ccf19554aa1370b5550492b47e560e7f244c5d93aa805aeb954ac1c8b15` | 338 | | ZEI16G.ZEI | `8fe099b89ba5312c40b73780efd983aba4120f6bbee0b7f8c51f9e47ffee4f86` | 339 | | ZEI16H.ZEI | `49673902581cd228e51037c1b8e15230f7bae34b9b14c57522ff562a26c8f49f` | 340 | | ZEI2.ZEI | `aca0080889911926aa14e8772b74915c84370fcd59ae9c970de1864085107fc0` | 341 | | ZEI20H.ZEI | `ebf2b9fd6b417db02fa3d1df975ba47fe5da8b54f413eaeb88770bcd33d4bf13` | 342 | | ZEI20V.ZEI | `6bfc71d979f6678626f26caa8c23c81cdcc4f3d8968b4118c5dc816fb238dc13` | 343 | | ZEI28V.ZEI | `fa6b5d99f4f329c4dae5708da6ae4bc6fbc094662a79a9f04aff872e3aadf49b` | 344 | 345 | #### Language-specific files 346 | 347 | English: 348 | 349 | | Name | SHA-256 | 350 | |------|---------| 351 | | TOOLS.BSH | `a35e3712dd63b824c1b4ee51a606bbddcabaf5c6b74fe02b0d81a02a4008679c` | 352 | | Editor.bsh | `6a4170e5e26604f36f0eb6c9668c8e62e419ea6757e712554420b51fd87803fb` | 353 | | START.BSH | `e971915f6977b4175509320ec49a748bfdf54ea2da59440c2c73ede7976b20bc` | 354 | 355 | German: 356 | 357 | | Name | SHA-256 | 358 | |------|---------| 359 | | Editor.bsh | `9aef160c47a2f8037a18b5021a55db7c7343ab957734d8f26befdad6d8074c0d` | 360 | | START.BSH | `b4b7ec76af745682eca0e89c6fb6598871d4a542f8736313728486eedbb3efdf` | 361 | | TOOLS.BSH | `8a799204d5376ea5360e05150b6fd4c65bb572dbb63c969856f81bff27dda8c8` | 362 | 363 | Spanish: 364 | 365 | | Name | SHA-256 | 366 | |------|---------| 367 | | EDITOR.BSH | `12ded638f6a1a194f4a29426d4dca42b6a17f3dc0fce707fcc0cdfde1cf9dba8` | 368 | | START.BSH | `ca31536e15059a623965a6648aacb7728f6048f1641c3633a66749c8a52ed4b5` | 369 | | TOOLS.BSH | `0140c4917e353ef5ca4507e97fbd141e13265b3bdb691d013beade80ebcb1893` | 370 | 371 | French: 372 | 373 | | Name | SHA-256 | 374 | |------|---------| 375 | | EDITOR.BSH | `40d7dfcc7fd4d508cbfbcc61343fe957d42257330a06a9d8c4b39bee31cbb9d6` | 376 | | START.BSH | `e29488f08fb514ef8033d5a5f09729897029cb996be895b4726f4dc3d632765b` | 377 | | TOOLS.BSH | `6a86d18d07224bcf6b248d148609f191aba15e3296ac271fa0cadeb8d72d6d9a` | 378 | 379 | Dutch: 380 | 381 | | Name | SHA-256 | 382 | |------|---------| 383 | | EDITOR.BSH | `701f2e4a24b42945eb1eae2a62c8b3352ca5880a822d6d49b3b95678116666b2` | 384 | | START.BSH | `e87020e4e1cd12ab812ac652d7b7dac3e8605dd56b7fe2e40d955b1698e963d1` | 385 | | TOOLS.BSH | `f549ca99ff0309bb154a0f16b664b8b666767257321e7f84c404c93784d879c3` | 386 | 387 | Polish: 388 | 389 | | Name | SHA-256 | 390 | |------|---------| 391 | | EDITOR.BSH | `324f90c8ae3d0a17b45c117d7435af86a32c5b01ea900dd19b944de7ad155b50` | 392 | | START.BSH | `886be80f7d6c56ece054b6b375b269850a658d2b59e420dbac29d4aa5a12907c` | 393 | | TOOLS.BSH | `d3428fd3e3087787868ef622012c0897f9c248fd25cc62ecbb077aadd5fb2e18` | 394 | | ZEI14A.ZEI | `ede0d6811689a427d75b1863d9841f76fcfcae0b1f8f9955689d308269f84a65` | 395 | | ZEI20V.ZEI | `fd20022767cc6d56ea9f19806cc854d7f4a742170f4c295bc13b3e494ef788d1` | 396 | | ZEI28V.ZEI | `b9f64817671add44d53244c600d50ea93969628ba9e0f72cd8e0bd07c08f6bd7` | 397 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution-NonCommercial-ShareAlike 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International 58 | Public License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-NonCommercial-ShareAlike 4.0 International Public License 63 | ("Public License"). To the extent this Public License may be 64 | interpreted as a contract, You are granted the Licensed Rights in 65 | consideration of Your acceptance of these terms and conditions, and the 66 | Licensor grants You such rights in consideration of benefits the 67 | Licensor receives from making the Licensed Material available under 68 | these terms and conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. BY-NC-SA Compatible License means a license listed at 88 | creativecommons.org/compatiblelicenses, approved by Creative 89 | Commons as essentially the equivalent of this Public License. 90 | 91 | d. Copyright and Similar Rights means copyright and/or similar rights 92 | closely related to copyright including, without limitation, 93 | performance, broadcast, sound recording, and Sui Generis Database 94 | Rights, without regard to how the rights are labeled or 95 | categorized. For purposes of this Public License, the rights 96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 97 | Rights. 98 | 99 | e. Effective Technological Measures means those measures that, in the 100 | absence of proper authority, may not be circumvented under laws 101 | fulfilling obligations under Article 11 of the WIPO Copyright 102 | Treaty adopted on December 20, 1996, and/or similar international 103 | agreements. 104 | 105 | f. Exceptions and Limitations means fair use, fair dealing, and/or 106 | any other exception or limitation to Copyright and Similar Rights 107 | that applies to Your use of the Licensed Material. 108 | 109 | g. License Elements means the license attributes listed in the name 110 | of a Creative Commons Public License. The License Elements of this 111 | Public License are Attribution, NonCommercial, and ShareAlike. 112 | 113 | h. Licensed Material means the artistic or literary work, database, 114 | or other material to which the Licensor applied this Public 115 | License. 116 | 117 | i. Licensed Rights means the rights granted to You subject to the 118 | terms and conditions of this Public License, which are limited to 119 | all Copyright and Similar Rights that apply to Your use of the 120 | Licensed Material and that the Licensor has authority to license. 121 | 122 | j. Licensor means the individual(s) or entity(ies) granting rights 123 | under this Public License. 124 | 125 | k. NonCommercial means not primarily intended for or directed towards 126 | commercial advantage or monetary compensation. For purposes of 127 | this Public License, the exchange of the Licensed Material for 128 | other material subject to Copyright and Similar Rights by digital 129 | file-sharing or similar means is NonCommercial provided there is 130 | no payment of monetary compensation in connection with the 131 | exchange. 132 | 133 | l. Share means to provide material to the public by any means or 134 | process that requires permission under the Licensed Rights, such 135 | as reproduction, public display, public performance, distribution, 136 | dissemination, communication, or importation, and to make material 137 | available to the public including in ways that members of the 138 | public may access the material from a place and at a time 139 | individually chosen by them. 140 | 141 | m. Sui Generis Database Rights means rights other than copyright 142 | resulting from Directive 96/9/EC of the European Parliament and of 143 | the Council of 11 March 1996 on the legal protection of databases, 144 | as amended and/or succeeded, as well as other essentially 145 | equivalent rights anywhere in the world. 146 | 147 | n. You means the individual or entity exercising the Licensed Rights 148 | under this Public License. Your has a corresponding meaning. 149 | 150 | 151 | Section 2 -- Scope. 152 | 153 | a. License grant. 154 | 155 | 1. Subject to the terms and conditions of this Public License, 156 | the Licensor hereby grants You a worldwide, royalty-free, 157 | non-sublicensable, non-exclusive, irrevocable license to 158 | exercise the Licensed Rights in the Licensed Material to: 159 | 160 | a. reproduce and Share the Licensed Material, in whole or 161 | in part, for NonCommercial purposes only; and 162 | 163 | b. produce, reproduce, and Share Adapted Material for 164 | NonCommercial purposes only. 165 | 166 | 2. Exceptions and Limitations. For the avoidance of doubt, where 167 | Exceptions and Limitations apply to Your use, this Public 168 | License does not apply, and You do not need to comply with 169 | its terms and conditions. 170 | 171 | 3. Term. The term of this Public License is specified in Section 172 | 6(a). 173 | 174 | 4. Media and formats; technical modifications allowed. The 175 | Licensor authorizes You to exercise the Licensed Rights in 176 | all media and formats whether now known or hereafter created, 177 | and to make technical modifications necessary to do so. The 178 | Licensor waives and/or agrees not to assert any right or 179 | authority to forbid You from making technical modifications 180 | necessary to exercise the Licensed Rights, including 181 | technical modifications necessary to circumvent Effective 182 | Technological Measures. For purposes of this Public License, 183 | simply making modifications authorized by this Section 2(a) 184 | (4) never produces Adapted Material. 185 | 186 | 5. Downstream recipients. 187 | 188 | a. Offer from the Licensor -- Licensed Material. Every 189 | recipient of the Licensed Material automatically 190 | receives an offer from the Licensor to exercise the 191 | Licensed Rights under the terms and conditions of this 192 | Public License. 193 | 194 | b. Additional offer from the Licensor -- Adapted Material. 195 | Every recipient of Adapted Material from You 196 | automatically receives an offer from the Licensor to 197 | exercise the Licensed Rights in the Adapted Material 198 | under the conditions of the Adapter's License You apply. 199 | 200 | c. No downstream restrictions. You may not offer or impose 201 | any additional or different terms or conditions on, or 202 | apply any Effective Technological Measures to, the 203 | Licensed Material if doing so restricts exercise of the 204 | Licensed Rights by any recipient of the Licensed 205 | Material. 206 | 207 | 6. No endorsement. Nothing in this Public License constitutes or 208 | may be construed as permission to assert or imply that You 209 | are, or that Your use of the Licensed Material is, connected 210 | with, or sponsored, endorsed, or granted official status by, 211 | the Licensor or others designated to receive attribution as 212 | provided in Section 3(a)(1)(A)(i). 213 | 214 | b. Other rights. 215 | 216 | 1. Moral rights, such as the right of integrity, are not 217 | licensed under this Public License, nor are publicity, 218 | privacy, and/or other similar personality rights; however, to 219 | the extent possible, the Licensor waives and/or agrees not to 220 | assert any such rights held by the Licensor to the limited 221 | extent necessary to allow You to exercise the Licensed 222 | Rights, but not otherwise. 223 | 224 | 2. Patent and trademark rights are not licensed under this 225 | Public License. 226 | 227 | 3. To the extent possible, the Licensor waives any right to 228 | collect royalties from You for the exercise of the Licensed 229 | Rights, whether directly or through a collecting society 230 | under any voluntary or waivable statutory or compulsory 231 | licensing scheme. In all other cases the Licensor expressly 232 | reserves any right to collect such royalties, including when 233 | the Licensed Material is used other than for NonCommercial 234 | purposes. 235 | 236 | 237 | Section 3 -- License Conditions. 238 | 239 | Your exercise of the Licensed Rights is expressly made subject to the 240 | following conditions. 241 | 242 | a. Attribution. 243 | 244 | 1. If You Share the Licensed Material (including in modified 245 | form), You must: 246 | 247 | a. retain the following if it is supplied by the Licensor 248 | with the Licensed Material: 249 | 250 | i. identification of the creator(s) of the Licensed 251 | Material and any others designated to receive 252 | attribution, in any reasonable manner requested by 253 | the Licensor (including by pseudonym if 254 | designated); 255 | 256 | ii. a copyright notice; 257 | 258 | iii. a notice that refers to this Public License; 259 | 260 | iv. a notice that refers to the disclaimer of 261 | warranties; 262 | 263 | v. a URI or hyperlink to the Licensed Material to the 264 | extent reasonably practicable; 265 | 266 | b. indicate if You modified the Licensed Material and 267 | retain an indication of any previous modifications; and 268 | 269 | c. indicate the Licensed Material is licensed under this 270 | Public License, and include the text of, or the URI or 271 | hyperlink to, this Public License. 272 | 273 | 2. You may satisfy the conditions in Section 3(a)(1) in any 274 | reasonable manner based on the medium, means, and context in 275 | which You Share the Licensed Material. For example, it may be 276 | reasonable to satisfy the conditions by providing a URI or 277 | hyperlink to a resource that includes the required 278 | information. 279 | 3. If requested by the Licensor, You must remove any of the 280 | information required by Section 3(a)(1)(A) to the extent 281 | reasonably practicable. 282 | 283 | b. ShareAlike. 284 | 285 | In addition to the conditions in Section 3(a), if You Share 286 | Adapted Material You produce, the following conditions also apply. 287 | 288 | 1. The Adapter's License You apply must be a Creative Commons 289 | license with the same License Elements, this version or 290 | later, or a BY-NC-SA Compatible License. 291 | 292 | 2. You must include the text of, or the URI or hyperlink to, the 293 | Adapter's License You apply. You may satisfy this condition 294 | in any reasonable manner based on the medium, means, and 295 | context in which You Share Adapted Material. 296 | 297 | 3. You may not offer or impose any additional or different terms 298 | or conditions on, or apply any Effective Technological 299 | Measures to, Adapted Material that restrict exercise of the 300 | rights granted under the Adapter's License You apply. 301 | 302 | 303 | Section 4 -- Sui Generis Database Rights. 304 | 305 | Where the Licensed Rights include Sui Generis Database Rights that 306 | apply to Your use of the Licensed Material: 307 | 308 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 309 | to extract, reuse, reproduce, and Share all or a substantial 310 | portion of the contents of the database for NonCommercial purposes 311 | only; 312 | 313 | b. if You include all or a substantial portion of the database 314 | contents in a database in which You have Sui Generis Database 315 | Rights, then the database in which You have Sui Generis Database 316 | Rights (but not its individual contents) is Adapted Material, 317 | including for purposes of Section 3(b); and 318 | 319 | c. You must comply with the conditions in Section 3(a) if You Share 320 | all or a substantial portion of the contents of the database. 321 | 322 | For the avoidance of doubt, this Section 4 supplements and does not 323 | replace Your obligations under this Public License where the Licensed 324 | Rights include other Copyright and Similar Rights. 325 | 326 | 327 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 328 | 329 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 330 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 331 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 332 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 333 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 334 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 335 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 336 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 337 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 338 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 339 | 340 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 341 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 342 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 343 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 344 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 345 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 346 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 347 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 348 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 349 | 350 | c. The disclaimer of warranties and limitation of liability provided 351 | above shall be interpreted in a manner that, to the extent 352 | possible, most closely approximates an absolute disclaimer and 353 | waiver of all liability. 354 | 355 | 356 | Section 6 -- Term and Termination. 357 | 358 | a. This Public License applies for the term of the Copyright and 359 | Similar Rights licensed here. However, if You fail to comply with 360 | this Public License, then Your rights under this Public License 361 | terminate automatically. 362 | 363 | b. Where Your right to use the Licensed Material has terminated under 364 | Section 6(a), it reinstates: 365 | 366 | 1. automatically as of the date the violation is cured, provided 367 | it is cured within 30 days of Your discovery of the 368 | violation; or 369 | 370 | 2. upon express reinstatement by the Licensor. 371 | 372 | For the avoidance of doubt, this Section 6(b) does not affect any 373 | right the Licensor may have to seek remedies for Your violations 374 | of this Public License. 375 | 376 | c. For the avoidance of doubt, the Licensor may also offer the 377 | Licensed Material under separate terms or conditions or stop 378 | distributing the Licensed Material at any time; however, doing so 379 | will not terminate this Public License. 380 | 381 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 382 | License. 383 | 384 | 385 | Section 7 -- Other Terms and Conditions. 386 | 387 | a. The Licensor shall not be bound by any additional or different 388 | terms or conditions communicated by You unless expressly agreed. 389 | 390 | b. Any arrangements, understandings, or agreements regarding the 391 | Licensed Material not stated herein are separate from and 392 | independent of the terms and conditions of this Public License. 393 | 394 | 395 | Section 8 -- Interpretation. 396 | 397 | a. For the avoidance of doubt, this Public License does not, and 398 | shall not be interpreted to, reduce, limit, restrict, or impose 399 | conditions on any use of the Licensed Material that could lawfully 400 | be made without permission under this Public License. 401 | 402 | b. To the extent possible, if any provision of this Public License is 403 | deemed unenforceable, it shall be automatically reformed to the 404 | minimum extent necessary to make it enforceable. If the provision 405 | cannot be reformed, it shall be severed from this Public License 406 | without affecting the enforceability of the remaining terms and 407 | conditions. 408 | 409 | c. No term or condition of this Public License will be waived and no 410 | failure to comply consented to unless expressly agreed to by the 411 | Licensor. 412 | 413 | d. Nothing in this Public License constitutes or may be interpreted 414 | as a limitation upon, or waiver of, any privileges and immunities 415 | that apply to the Licensor or You, including from the legal 416 | processes of any jurisdiction or authority. 417 | 418 | ======================================================================= 419 | 420 | Creative Commons is not a party to its public 421 | licenses. Notwithstanding, Creative Commons may elect to apply one of 422 | its public licenses to material it publishes and in those instances 423 | will be considered the “Licensor.” The text of the Creative Commons 424 | public licenses is dedicated to the public domain under the CC0 Public 425 | Domain Dedication. Except for the limited purpose of indicating that 426 | material is shared under a Creative Commons public license or as 427 | otherwise permitted by the Creative Commons policies published at 428 | creativecommons.org/policies, Creative Commons does not authorize the 429 | use of the trademark "Creative Commons" or any other trademark or logo 430 | of Creative Commons without its prior written consent including, 431 | without limitation, in connection with any unauthorized modifications 432 | to any of its public licenses or any other arrangements, 433 | understandings, or agreements concerning use of licensed material. For 434 | the avoidance of doubt, this paragraph does not form part of the 435 | public licenses. 436 | 437 | Creative Commons may be contacted at creativecommons.org. 438 | 439 | --------------------------------------------------------------------------------