oziphantom / Tomb1Main

A decompilation project of Tomb Raider 1 (1996), along with additional enhancements and bugfixes
GNU General Public License v3.0
1 stars 0 forks source link

Tomb Raider I: Community Edition

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.

This project was inspired by Arsunt's TR2Main project and the legacy name, "Tomb1Main", reflects that.

Installing

  1. Download the latest Tomb1Main release from the GitHub releases.
    https://github.com/rr-/Tomb1Main/releases

  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.

    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):

.
├── 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

Configuring

To configure Tomb1Main, edit the Tomb1Main.json5 file in your text editor such as Notepad. All the configuration is explained in that file.

Improvements over original game

Not all options are turned on by default. Refer to Tomb1Main.json5 for details.

Showcase

Mode selection

Braid

Fly cheat

Door open cheat

Enemy health bars

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?

    Eventually, probably yes. Please see the road map to have a general idea what is currently being worked on.

  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...?

    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.

Level kills and pickup notes

The game can show the total number of pickups and kills in a level by checking the compass in the inventory or at the end of level stats screen. Due to some of the levels' design, some of these kills and pickups are not obtainable. See the table below for the discrepancies. Unreachable items are in parentheses.

Tomb Raider 1: Level Kills Pickups Secrets
Caves 14 7 3
City of Vilcabamba 29 13 3
Lost Valley 13 16 5
Tomb of Qualopec 8 8 3
St. Francis' Folly 23 19 4
Colosseum 26 14 3
Palace Midas 43 23 (+1 medipack) 3
Cistern 34 28 3
Tomb of Tihocan 17 26 2
City of Khamoon 14 24 3
Obelisk of Khamoon 16 38 3
Sanctuary of the Scion 15 29 1
Natla's Mines 3 30 3
Atlantis 32 53 (+2 medipacks, +1 uzi ammo) 3
The Great Pyramid 6 31 3
Unfinished Business: Level Kills Pickups Secrets
Return to Egypt 42 (+1 panther) 53 3
Temple of the Cat 44 64 (+1 magnum ammo) 4
Atlanetean Stronghold 32 (+1 Centaur) 63 2
The Hive 41 60 1

Current road map

Note: this section may be subject to change.

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.

License

This project is licensed under the GNU General Public License - see the COPYING.md file for details.

Copyright

(c) 2021 Marcin Kurczewski. All rights reserved. Original game is created by Core Design Ltd. in 1996. Lara Croft and Tomb Raider are trademarks of Square Enix Ltd. Title image by Kidd Bowyer.