ddw3/README.md
Filipe Rodrigues e0c6d6d25f Added note on map stitch script.
Renamed `extract_all_maps.sh` to `stitch_all_maps.sh`
2023-10-14 04:40:28 +01:00

70 lines
5.3 KiB
Markdown

# ddw3
This is a full decompilation project of the PS1 video games "Digimon World 3" / "Digimon World 2003".
The name stands for "Decompilation - Digimon World 3/2003"
# Status
Currently the following is done:
- ✅: Done
- 🚧: In work
- 🛑: Not started
| Project | Status | Comments |
| ------------------ | ------ | --------------------------------------------------------------------------------------------------------------------- |
| Digimon world 3 | 🛑 | For now, 2003 is receiving the main focus. It should be easy to make it catch up to it, but it will require some time |
| Digimon world 2003 | 🚧 | See [this section](#2003) |
## 2003
| Project | Status | Comments |
| ------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Executable (and dylibs) | 🚧 | Fully disassembled in `asm/` and `rust/` (mostly data here). Some parts have been organized, but it's mostly still just machine-generated. |
| Images (`tim`s) | ✅ (🚧) | All found `tim`s have been fully converted to pngs with their `clut`s as separate png files in `tim/`. Further work should be done here to convert them to a single file |
| Localization files (lang files) | ✅ (🚧) | All found localization files are in `lang_file/`. Some escape codes are currently unknown and need to be documented |
| Video (`str`s) | 🛑 | They remain in their original `str` file format. In the future we would want to convert them to another file format that would support lossless conversion to `str`. |
| Other files | 🛑 | Many other files remain in `dw2003/` that are simply being copied over. These need to be reverse-engineered. |
| In-game digimon "current" stats | ✅ | See rust module `dw2003_exe_data::data::DIGIMON_CUR_STATS` |
| Digimon profiles (base stats / resistances / growths / moves) | ✅ | See rust crate `dw2003_exe_digimon_profiles` |
| Digimon evolutions | ✅ | See rust module `dw2003_pro_stfgtrep_data::data::STFGTREP_EVOS_{DIGIMON}` |
| Maps | ✅ | See `map/` and `map-part/`. Images are in `tim/dw2003/z_stage/<map>/<tile>.png`. You can stitch them all together using the script `tools/stitch_all_maps.sh` (or `tools/stitch-map.py` for a specific map) |
# Documentation
See [`docs/index.MD`](docs/index.md) for an introduction to the repository.
# Building
The project is built using [`zbuild`](https://github.com/Zenithsiz/zbuild). (zbuild 0.1.1).
You can run `zbuild` (without arguments) to build the game's bin/cue files. The result will be in `build/iso/`.
> **⚠ Warning**: You will need several licenses to build the game. Their checksum is included
> in the `checksums.sha256` (look for `licenses/*` entries).
>
> The following is a list
> of the licenses required (they should be placed in the `licenses/` directory):
>
> - `psexe-eu.dat` / `psexe-na.dat`: PS-EXE executable licenses for Europe / North America, respectively.
>
> These are just text files with the text `Sony Computer Entertainment Inc. for <AREA>` (no newline).
>
> - `psx-bin.dat`: ISO Sony license
>
> This is a binary file, of length 0x6d80, which `mkpsxiso` expects.
You can also use `zbuild compare` to build all game files and check their checksum.
> **ⓘ Note**: The final game bin/cue isn't built/checked yet by `zbuild compare`, as `mkpsxiso`,
> the tool we currently use to build the final bin/cue, isn't capable of a binary-perfect
> reconstruction of the original iso.
Finally, you can use `zbuild clean` to remove all built files.
## Dependencies
You can find in the `zbuild.yaml` manifest the version of all external
tools needed to build the game. Search for `"External tools"`.