TRX/README.md

213 lines
7.7 KiB
Markdown
Raw Normal View History

2021-02-18 16:40:32 +01:00
# Tomb1Main
2021-02-07 23:29:49 +01:00
2021-02-08 14:24:50 +01:00
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.
2021-02-07 23:29:49 +01:00
2021-03-17 10:29:29 +01:00
See the [Tomb Raider Forums
topic](https://www.tombraiderforums.com/showthread.php?p=8286101).
2021-02-11 16:47:07 +01:00
This project is inspired by Arsunt's
[TR2Main](https://github.com/Arsunt/TR2Main/) project.
2021-02-07 23:29:49 +01:00
2021-02-11 16:47:07 +01:00
## Installing
2021-02-07 23:29:49 +01:00
2021-11-19 14:19:15 +01:00
1. Get a copy of the latest Tomb1Main release from
2021-03-21 18:38:45 +01:00
[here](https://github.com/rr-/Tomb1Main/releases).
2021-11-19 14:19:15 +01:00
2. Unpack the contents to your game directory. Make sure you overwrite existing
2021-03-21 18:38:45 +01:00
files (Tomb1Main_config.json5 can be left alone).
2021-02-07 23:29:49 +01:00
2021-03-21 18:39:52 +01:00
To play the Unfinished Business expansion pack, launch the game with `-gold`
command line switch:
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
```
2021-02-08 14:22:36 +01:00
## Configuring
To configure Tomb1Main, edit the `Tomb1Main.json5` file in your text editor
such as Notepad. All the configuration is explained in that file.
2021-02-08 14:22:36 +01:00
2021-03-14 15:52:54 +01:00
## Improvements over original game
Not all options are turned on by default. Refer to `Tomb1Main.json5` for details.
2021-11-16 12:06:35 +01:00
- added proper UI and bar scaling
2021-03-14 15:52:54 +01:00
- added enemy health bar
- added more control over when to show health bar and air bar
2021-11-16 12:06:35 +01:00
- added customizability to health bar and air bar
2021-03-14 15:52:54 +01:00
- added ability to set user-defined FOV
2021-11-16 12:06:35 +01:00
- added ability to select weapons / using items with numeric keys
2021-03-14 15:52:54 +01:00
- added ability to look around while running
- added TR3-like sidesteps
- added shotgun flash sprites
- added a fly cheat
- added a level skip cheat
- added a door open cheat (while in fly mode)
- added ability to disable all medpacks
- added ability to disable Magnums
- added ability to disable UZIs
- added ability to disable shotgun
- added ability to disable main menu demos
- added ability to disable FMVs
- added ability to disable cutscenes
- added ability to disable healing between levels
2021-11-01 22:41:43 +01:00
- added rendering of pickups on the ground as 3D meshes
2021-03-14 15:52:54 +01:00
- added braid (currently only works in Lost Valley)
2021-11-16 12:06:35 +01:00
- added support for displaying more than 3 pickup sprites
2021-03-14 15:52:54 +01:00
- added a choice whether to play NG or NG+
2021-03-17 02:12:10 +01:00
- added Japanese mode (guns deal twice the damage); available for both NG and NG+
2021-11-16 12:06:35 +01:00
- added external game flow (no longer 2 different .exes for TR1 and TR1UB). For TRLE builders:
2021-03-14 15:52:54 +01:00
- the levels can be reordered
- the levels can be renamed
- all the strings can be translated, including keys and items
- you no longer are constrained to 4 or 21 levels only
- you can offer a custom Gym level
2021-11-20 01:42:23 +01:00
- you can change the main menu backdrop
2021-03-14 15:52:54 +01:00
- added automatic calculation of secret numbers
2021-03-17 13:56:05 +01:00
- added compass level stats
- added ability to keep timer on in inventory
2021-03-20 00:10:46 +01:00
- added save game crystals game mode (enabled via gameflow)
2021-03-21 18:38:45 +01:00
- added pause screen
2021-10-23 01:41:41 +11:00
- added movable camera on W,A,S,D
2021-10-25 20:13:16 +11:00
- added Xbox One Controller support
- Per Axis Dead Zone
- Left Stick = movement
- A = Jump/Select
- B = Roll/Deselect
- X = Action/Select
- Y = Look/Select
- LB = Walk
- RB = Draw Weapons
- Dpad Up = Draw Weapons
- Back = Option
- Start = Pause
- Right Stick = Camera Movement
- R3 = Reset Camera
2021-10-27 20:37:43 +02:00
- added rounded shadows (instead of the default octagon)
2021-10-28 17:07:15 +02:00
- added per-level customizable water color (with customizable blue component)
2021-11-12 20:05:58 +01:00
- added per-level customizable fog distance
2021-11-12 00:03:46 +01:00
- added adjustable in-game brightness
2021-12-04 19:03:55 +01:00
- added .jpeg/.png screenshots
2021-03-20 00:10:46 +01:00
- changed internal game memory limit from 3.5 MB to 16 MB
- changed moveable limit from 256 to 10240
2021-11-04 00:28:58 +01:00
- changed maximum textures from 2048 to 8192
- changed maximum texture pages from 32 to 128
- changed input method to DirectInput
- fixed inability to switch Control keys during shimmy
2021-03-14 15:52:54 +01:00
- fixed skipping FMVs triggering inventory
- fixed skipping credits working too fast
- fixed setting user keys being very difficult
- fixed keys and items not working when drawing guns immediately after using them
- fixed not being able to close level stats with Escape
2021-03-14 15:52:54 +01:00
- fixed freeze when holding action key during end of level
- fixed reading user settings not restoring the volume
- fixed Tomb of Tihocan playing secret sound
- fixed The Great Pyramid secret
- fixed running out of ammo forcing Lara to equip pistols even if she doesn't carry them
- fixed a crash when Lara is on fire and goes too far away from where she caught fire
- fixed settings not being saved when exiting the game with Alt+F4
- fixed settings not persisting chosen layout (default vs. user keys)
2021-11-16 12:06:35 +01:00
- fixed the sound of collecting a secret killing the music
- fixed the infamous Tihocan crocodile bug (integer overflow causing creatures to deal damage across the entire level)
2021-03-30 21:38:44 +02:00
- fixed Lara jumping forever when alt+tabbing out of the game
- fixed Lara voiding if a badly placed timed door closes on her (doesn't occur in OG levels)
- fixed bats being positioned too high
2021-03-14 15:52:54 +01:00
2021-03-17 02:28:40 +01:00
## Showcase
#### Mode selection
![](docs/showcase1.jpg)
#### Braid
![](docs/showcase2.jpg)
#### Fly cheat
![](docs/showcase3.jpg)
#### Door open cheat
![](docs/showcase4.jpg)
#### Enemy health bars
![](docs/showcase5.jpg)
2021-03-21 18:39:26 +01:00
## Q&A
1. **Is the game fully playable from beginning to the end?**
Yes. If you encounter a bug, please file a ticket.
2. **Can we get HD textures? Reflections? Other graphical updates?**
2021-11-29 03:32:17 +01:00
Eventually, probably yes. Please see the road map to have a general idea
what is currently being worked on.
2021-03-21 18:39:26 +01:00
3. **Can we get braid in every level? Skyboxes? Flyby cameras? New animations? etc.**
Not sure at this moment; this requires meddling with the original game
level files. It's one thing fixing a faulty trigger bit in The Great
Pyramid for the final secret, and another to insert a completely new
animation, a textured mesh or a sound file and pretend it's always been a
part of the original game. So far we haven't found a good way that'll keep
the code maintainable.
4. **Can I play this on Mac, Linux, Android...?**
2021-11-29 03:32:17 +01:00
Currently only Windows version is available, but there is some ongoing work
towards reducing the amount of Windows-only code.
2021-03-21 18:39:26 +01:00
5. **Do I really need to install this TombATI patch? Why not have just the .exe?**
2021-11-29 03:32:17 +01:00
We're currently on it! :D
2021-03-21 18:39:26 +01:00
2021-11-29 03:26:15 +01:00
## Current road map
2021-11-29 03:32:17 +01:00
Note: this section may be subject to change.
2021-11-29 03:26:15 +01:00
- [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
- [ ] Work on cross platform builds
2021-11-30 18:11:51 +01:00
- [x] Replace the sample player (DirectSound) with libavcodec and SDL
2021-11-29 03:26:15 +01:00
- [ ] Port DirectInput to SDL
- [ ] ...
2021-11-30 18:11:51 +01:00
- [ ] Test for performance and crash resilience
2021-11-29 03:26:15 +01:00
- [ ] 3.0
- [ ] Beautify the code
2021-12-05 22:06:23 +01:00
- [x] Refactor GLRage to no longer emulate DDraw
- [ ] Refactor GLRage to no longer emulate ATI3DCIF
2021-11-29 03:26:15 +01:00
- [ ] Apply rigid name conventions to function names
- [ ] Refactor specific/ away
- [ ] ...
- [ ] Work on data injection and other features?
2021-02-11 00:26:17 +01:00
2021-10-19 20:35:34 +02:00
## Importing data to IDA
This option requires IDAPython and a recent version of IDA. Install Python 3.8+
and IDA 7.5+, then hit alt+f7, then choose `scripts/ida_import.py`.
2021-02-07 23:29:49 +01:00
## License
2021-02-08 14:24:50 +01:00
This project is licensed under the GNU General Public License - see the
[COPYING.md](COPYING.md) file for details.
2021-02-07 23:29:49 +01:00
## Copyright
2021-02-11 18:22:17 +01:00
(c) 2021 Marcin Kurczewski. All rights reserved. Original game is created by
2021-02-08 14:24:50 +01:00
Core Design Ltd. in 1996. Lara Croft and Tomb Raider are trademarks of Square
Enix Ltd. Title image by Kidd Bowyer.