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

219
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). This is an open source implementation of the classic Tomb Raider I game. It was
The purpose of the library is to reimplement all the routines performed by the made by reverse engineering the TombATI / GLRage variant of the original game
game and enhance the gameplay with new options. and replacing proprietary audio/video libraries with open source variants.
See the [Tomb Raider Forums See the [Tomb Raider Forums
topic](https://www.tombraiderforums.com/showthread.php?p=8286101). topic](https://www.tombraiderforums.com/showthread.php?p=8286101).
This project is inspired by Arsunt's This project was inspired by Arsunt's
[TR2Main](https://github.com/Arsunt/TR2Main/) project. [TR2Main](https://github.com/Arsunt/TR2Main/) project and the legacy name,
"Tomb1Main", reflects that.
## Installing ## Installing
1. Get a copy of the latest Tomb1Main release from 1. Download the latest Tomb1Main release from the GitHub releases.
[here](https://github.com/rr-/Tomb1Main/releases). 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).
To play the Unfinished Business expansion pack, launch the game with `-gold` 2. Unpack the contents to your game directory.
command line switch: Make sure you choose to overwrite existing directories and files
(`Tomb1Main_config.json5` can remain).
1. Create a shortcut to `tombati.exe` 3. (**Steam users / music**) The Steam version of the game does not ship with the
2. Select the newly created shortcut, go to Properties music assets due to the publishers' negligence. If you have previously
3. At the end of the "target" field, append `-gold` so it looks something like installed TombATI, you don't need to do anything. Otherwise you can download
this: the music files from the link below.
``` https://mega.nz/file/f9llhQAY#y0RqaMhR4ghtQ-1IFAGbHep_FCmkV8Q66bzdMWVqtuY
(...)\tombati.exe -gold **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.
3. At the end of the "target" field, append `-gold` so it looks something like
this:
`(...)\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 ## 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 per-level customizable fog distance
- added adjustable in-game brightness - added adjustable in-game brightness
- added .jpeg/.png screenshots - 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 internal game memory limit from 3.5 MB to 16 MB
- changed moveable limit from 256 to 10240 - changed moveable limit from 256 to 10240
- changed maximum textures from 2048 to 8192 - 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...?** 4. **Can I play this on Mac, Linux, Android...?**
Currently only Windows version is available, but there is some ongoing work No promises here, but the game is now playable with wine (including sound
towards reducing the amount of Windows-only code. and music) and there is planned 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
## Current road map ## Current road map
Note: this section may be subject to change. Note: this section may be subject to change.
- [x] Reverse engineer the entire game - done! - [x] Reverse engineer the main game module
- [ ] Break off TombATI, ship our own .EXE rather than a .DLL - [x] Integrate the glrage patch
- [x] Integrate glrage with Tomb1Main - [x] Replace the proprietary music player with libavcodec and SDL
- [x] Replace the music player (`winmm.dll` / `libzplay.dll`) with libavcodec and SDL - [x] Replace the proprietary FMV player with libavcodec and SDL
- [x] Replace the FMV player (`Dec130.dll`, `Edec.dll`, `Winplay.dll`, `Winsdec.dll` and `Winstr.dll`) with libavcodec and SDL - [x] Break off TombATI, ship our own .EXE rather than a .DLL
- [ ] Test for performance and crash resilience
- [ ] 2.0
- [ ] Work on cross platform builds - [ ] 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 - [ ] Port DirectInput to SDL
- [ ] Replace wgl_ext.h with cross platform variant
- [ ] Remove HWND and HINSTANCE usages
- [ ] ... - [ ] ...
- [ ] Test for performance and crash resilience - [ ] Test for performance and crash resilience
- [ ] 3.0 - [ ] 3.0