docs: update

This commit is contained in:
rr- 2021-12-07 15:23:25 +01:00
parent dcf3b5b93b
commit e5c28d5e66
No known key found for this signature in database
GPG key ID: CC65E6FD28CAE42A

215
README.md
View file

@ -1,32 +1,185 @@
# Tomb1Main
# Tomb Raider I: Community Edition
This is a dynamic library for the classic Tomb Raider I game (TombATI version).
The purpose of the library is to reimplement all the routines performed by the
game and enhance the gameplay with new options.
This is an open source implementation of the classic Tomb Raider I game. It was
made by reverse engineering the TombATI / GLRage variant of the original game
and replacing proprietary audio/video libraries with open source variants.
See the [Tomb Raider Forums
topic](https://www.tombraiderforums.com/showthread.php?p=8286101).
This project is inspired by Arsunt's
[TR2Main](https://github.com/Arsunt/TR2Main/) project.
This project was inspired by Arsunt's
[TR2Main](https://github.com/Arsunt/TR2Main/) project and the legacy name,
"Tomb1Main", reflects that.
## Installing
1. Get a copy of the latest Tomb1Main release from
[here](https://github.com/rr-/Tomb1Main/releases).
2. Unpack the contents to your game directory. Make sure you overwrite existing
files (Tomb1Main_config.json5 can be left alone).
1. Download the latest Tomb1Main release from the GitHub releases.
https://github.com/rr-/Tomb1Main/releases
To play the Unfinished Business expansion pack, launch the game with `-gold`
command line switch:
2. Unpack the contents to your game directory.
Make sure you choose to overwrite existing directories and files
(`Tomb1Main_config.json5` can remain).
3. (**Steam users / music**) The Steam version of the game does not ship with the
music assets due to the publishers' negligence. If you have previously
installed TombATI, you don't need to do anything. Otherwise you can download
the music files from the link below.
https://mega.nz/file/f9llhQAY#y0RqaMhR4ghtQ-1IFAGbHep_FCmkV8Q66bzdMWVqtuY
**These assets are not a part of this project.** The legality of these is
disputable. The most legal way to get the music on PC is to rip the assets
yourself from a physical PlayStation disk. TombATI ships with this music by
default, which this project chooses not to do.
4. Launch `Tomb1Main.exe`.
### Unfinished Business
1. (**Steam users / Unfinished Business**) The Unfinished Business expansion
pack is freeware, however, the Steam version of the game does not ship with
it and you'll need to install it separately. If you have previously
installed TombATI, you don't need to do anything. Otherwise you can download
the expansion pack from the link below.
https://mega.nz/file/i8s0BAaD#wy3xyhuaHnco7aJKiKUV3zO6vCe86lLa3W7hWu249-M
2. Launch the game with `-gold` command line switch. A more detailed instruction:
1. Create a shortcut to `Tomb1Main.exe`.
2. Select the newly created shortcut, go to File Properties.
1. Create a shortcut to `tombati.exe`
2. Select the newly created shortcut, go to Properties
3. At the end of the "target" field, append `-gold` so it looks something like
this:
```
(...)\tombati.exe -gold
```
`(...)\Tomb1Main.exe -gold`
4. Launch the shortcut.
If you install everything correctly, your game directory should look more or
less like this (click to expand):
<details>
<pre>
.
├── cfg
│   ├── Tomb1Main_gameflow.json5
│   ├── Tomb1Main_gameflow_ub.json5
│   ├── Tomb1Main.json5
├── data
│   ├── cat.phd
│   ├── cred0.pcx
│   ├── cred1.pcx
│   ├── cred2.pcx
│   ├── cred3.pcx
│   ├── cut1.phd
│   ├── cut2.phd
│   ├── cut3.phd
│   ├── cut4.phd
│   ├── egypt.phd
│   ├── eidospc.pcx
│   ├── eidospc.png
│   ├── end2.phd
│   ├── end.pcx
│   ├── end.phd
│   ├── gym.phd
│   ├── install.pcx
│   ├── level10a.phd
│   ├── level10b.phd
│   ├── level10c.phd
│   ├── level1.phd
│   ├── level2.phd
│   ├── level3a.phd
│   ├── level3b.phd
│   ├── level4.phd
│   ├── level5.phd
│   ├── level6.phd
│   ├── level7a.phd
│   ├── level7b.phd
│   ├── level8a.phd
│   ├── level8b.phd
│   ├── level8c.phd
│   ├── titleh.pcx
│   ├── titleh.png
│   ├── titleh_ub.png
│   └── title.phd
├── fmv
│   ├── cafe.rpl
│   ├── canyon.rpl
│   ├── core.avi
│   ├── end.rpl
│   ├── escape.rpl
│   ├── lift.rpl
│   ├── mansion.rpl
│   ├── prison.rpl
│   ├── pyramid.rpl
│   ├── snow.rpl
│   └── vision.rpl
├── music
│   ├── track02.flac
│   ├── track03.flac
│   ├── track04.flac
│   ├── track05.flac
│   ├── track06.flac
│   ├── track07.flac
│   ├── track08.flac
│   ├── track09.flac
│   ├── track10.flac
│   ├── track11.flac
│   ├── track12.flac
│   ├── track13.flac
│   ├── track14.flac
│   ├── track15.flac
│   ├── track16.flac
│   ├── track17.flac
│   ├── track18.flac
│   ├── track19.flac
│   ├── track20.flac
│   ├── track21.flac
│   ├── track22.flac
│   ├── track23.flac
│   ├── track24.flac
│   ├── track25.flac
│   ├── track26.flac
│   ├── track27.flac
│   ├── track28.flac
│   ├── track29.flac
│   ├── track30.flac
│   ├── track31.flac
│   ├── track32.flac
│   ├── track33.flac
│   ├── track34.flac
│   ├── track35.flac
│   ├── track36.flac
│   ├── track37.flac
│   ├── track38.flac
│   ├── track39.flac
│   ├── track40.flac
│   ├── track41.flac
│   ├── track42.flac
│   ├── track43.flac
│   ├── track44.flac
│   ├── track45.flac
│   ├── track46.flac
│   ├── track47.flac
│   ├── track48.flac
│   ├── track49.flac
│   ├── track50.flac
│   ├── track51.flac
│   ├── track52.flac
│   ├── track53.flac
│   ├── track54.flac
│   ├── track55.flac
│   ├── track56.flac
│   ├── track57.flac
│   ├── track58.flac
│   ├── track59.flac
│   └── track60.flac
├── shaders
│   ├── 2d.fsh
│   ├── 2d.vsh
│   ├── 3d.fsh
│   └── 3d.vsh
├── Tomb1Main.exe
</pre>
</details>
## Configuring
@ -94,6 +247,8 @@ Not all options are turned on by default. Refer to `Tomb1Main.json5` for details
- added per-level customizable fog distance
- added adjustable in-game brightness
- added .jpeg/.png screenshots
- added support for HD FMVs
- added fanmade 16:9 menu backgrounds
- changed internal game memory limit from 3.5 MB to 16 MB
- changed moveable limit from 256 to 10240
- changed maximum textures from 2048 to 8192
@ -163,27 +318,25 @@ Not all options are turned on by default. Refer to `Tomb1Main.json5` for details
4. **Can I play this on Mac, Linux, Android...?**
Currently only Windows version is available, but there is some ongoing work
towards reducing the amount of Windows-only code.
5. **Do I really need to install this TombATI patch? Why not have just the .exe?**
We're currently on it! :D
No promises here, but the game is now playable with wine (including sound
and music) and there is planned work towards reducing the amount of
Windows-only code.
## Current road map
Note: this section may be subject to change.
- [x] Reverse engineer the entire game - done!
- [ ] Break off TombATI, ship our own .EXE rather than a .DLL
- [x] Integrate glrage with Tomb1Main
- [x] Replace the music player (`winmm.dll` / `libzplay.dll`) with libavcodec and SDL
- [x] Replace the FMV player (`Dec130.dll`, `Edec.dll`, `Winplay.dll`, `Winsdec.dll` and `Winstr.dll`) with libavcodec and SDL
- [ ] Test for performance and crash resilience
- [ ] 2.0
- [x] Reverse engineer the main game module
- [x] Integrate the glrage patch
- [x] Replace the proprietary music player with libavcodec and SDL
- [x] Replace the proprietary FMV player with libavcodec and SDL
- [x] Break off TombATI, ship our own .EXE rather than a .DLL
- [ ] Work on cross platform builds
- [x] Replace the sample player (DirectSound) with libavcodec and SDL
- [x] Port DirectSound to libavcodec and SDL
- [x] Port WinMM to libavcodec and SDL
- [ ] Port DirectInput to SDL
- [ ] Replace wgl_ext.h with cross platform variant
- [ ] Remove HWND and HINSTANCE usages
- [ ] ...
- [ ] Test for performance and crash resilience
- [ ] 3.0