A dynamic library for enhancing Tomb Raider 1

Overview

Tomb1Main

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 project is inspired by Arsunt's TR2Main project.

Installing

Get a copy of the latest release from here and unpack the contents to your game directory. Make sure you overwrite existing files. Currently Tomb1Main requires you to have the TombATI patch installed to work.

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.

  • added proper UI scaling
  • added enemy health bar
  • added more control over when to show health bar and air bar
  • added ability to customize of health bar and air bar
  • added ability to set user-defined FOV
  • added selecting weapons / using items with numeric keys
  • 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
  • added braid (currently only works in Lost Valley)
  • added support for more than 3 pickup sprites
  • added a choice whether to play NG or NG+
  • added external game flow (no longer 2 different .exes for TR1 and TR1IB) For TRLE builders:
    • 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
  • added automatic calculation of secret numbers
  • 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 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)
  • fixed the sound of collecting a secret killing music

Decompilation progress

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.

Comments
  • option_passport: add level selection to the load game menu

    option_passport: add level selection to the load game menu

    Resolves #197.

    Checklist

    • [x] I have read the coding conventions
    • [x] I have added a changelog entry about what my pull request accomplishes

    Description

    Added level selection to the load game menu. Changes savegames to remove start info and only have current info. Adds an initial version to savegames. ...

    Latest test build: Tomb1Main-2.7-170-g97d060c_beta_v6.zip ...

    Testing Scenarios

    No saves

    • [x] Starting Gym should start with Compass
    • [x] Starting the game should start with Pistols and Compass
    • [x] Starting the game, picking up a Medpack, finishing the level should start the next level with Pistols, Compass and a Medpack
    • [x] Starting the game, picking up Golden Idol or other key item, finishing the level should remove such key items
    • [x] Starting the game, picking up Shotgun, finishing the level should keep the Shotgun
    • [x] Starting the game, playing all the way until Natla's Mines, starting Natla's Mines should remove all weapons
    • [x] Starting the game, picking up a Medpack, dying, restarting should start with Pistols and Compass and reset all the stats to 0
    • [x] Starting the game, picking up a Medpack, finishing the level, picking up another Medpack, dying, restarting should start with Pistols, Compass and one Medpack, with stats reset to stats from starting level 2
    • [x] Starting the game with the no healing mod, getting hit, dying, restarting should reset Lara's health to back to full
    • [x] Starting the game with the no healing mod, getting hit (Lara's health is X), finishing the level, getting hit again (Lara's health is Y), dying, restarting should reset Lara's health back to value X
    • [x] Starting the game in new game plus mode should start with all weapons.

    Legacy saves

    Here we use TombATI to save the game and 2.8 to load the game.

    • [x] Starting the game, saving, loading should start with Pistols, Compass and non-zero time stats
    • [x] Starting the game, picking up a Medpack, saving, loading should start with Pistols, Compass, Medpack and non-zero stats
    • [x] Starting the game, playing all the way until Lost Valley, picking up Shotgun, saving, reloading should keep Shotgun
    • [x] Starting the game, playing all the way until Natla's Mines, starting Natla's Mines, saving, reloading should keep weapons removed
    • [x] Starting the game, picking up a Medpack, finishing the level, picking up another Medpack, saving, reloading should start with Pistols, Compass and two Medpacks, with stats being kept from just before the save
    • [x] Playing all the way till Tihocan, killing Pierre, saving, reloading should respawn Pierre's drops
    • [x] The restart level passport page should be skipped since legacy saves do not support the feature.
    • [x] Select level should show an unsupported message if it's enabled in the settings, not shown at all otherwise.
    • [x] No healing mod can work however it wants, we don't care about it for legacy saves.

    2.6/2.7 saves

    Here we use 2.7 build to save the game and 2.8 to load the game.

    • [x] Starting the game, saving, loading should start with Pistols, Compass and non-zero time stats
    • [x] Starting the game, picking up a Medpack, saving, loading should start with Pistols, Compass, Medpack and non-zero stats
    • [x] Starting the game, playing all the way until Lost Valley, picking up Shotgun, saving, reloading should keep Shotgun
    • [x] Starting the game, playing all the way until Natla's Mines, starting Natla's Mines, saving, reloading should keep weapons removed
    • [x] Starting the game, picking up a Medpack, finishing the level, picking up another Medpack, saving, reloading should start with Pistols, Compass and two Medpacks, with stats being kept from just before the save
    • [x] Playing all the way till Tihocan, killing Pierre, saving, reloading should respawn Pierre's drops
    • [x] The restart level passport page should be available upon death.
    • [x] Starting the game, picking up a Medpack, saving, loading, dying, restarting should start with Pistols and Compass and reset all the stats to 0
    • [x] Starting the game, picking up a Medpack, finishing the level, picking up another Medpack, saving, loading, dying, restarting should start with Pistols, Compass and one Medpack, with stats reset to stats from starting level 2
    • [x] Select level should show an unsupported message even if a new save is made from a loaded 2.6/2.7 save.
    • [x] Starting the game with the no healing mod, getting hit, saving, loading, should keep Lara's health
    • [x] Starting the game with the no healing mod, getting hit (Lara's health is X), finishing the level, getting hit again (Lara's health is Y), saving, reloading should reset Lara's health back to value Y

    2.8+ saves

    Here we both save and load with the 2.8 build.

    • [x] Starting the game, saving, loading should start with Pistols, Compass and non-zero time stats
    • [x] Starting the game, picking up a Medpack, saving, loading should start with Pistols, Compass, Medpack and non-zero stats
    • [x] Starting the game, playing all the way until Lost Valley, picking up Shotgun, saving, reloading should keep Shotgun
    • [x] Starting the game, playing all the way until Natla's Mines, starting Natla's Mines, saving, reloading should keep weapons removed
    • [x] Starting the game, picking up a Medpack, finishing the level, picking up another Medpack, saving, reloading should start with Pistols, Compass and two Medpacks, with stats being kept from just before the save
    • [x] Playing all the way till Tihocan, killing Pierre, saving, reloading should respawn Pierre's drops
    • [x] The restart level passport page should be available upon death for any 2.8+ save (not started from a TombATI save).
    • [x] Starting the game, picking up a Medpack, saving, loading, dying, restarting should start with Pistols and Compass and reset all the stats to 0
    • [x] Starting the game, picking up a Medpack, finishing the level, picking up another Medpack, saving, loading, dying, restarting should start with Pistols, Compass and one Medpack, with stats reset to stats from starting level 2
    • [x] Select level should be available for unlocked levels if it's enabled in the settings, not shown at all otherwise. Lara should start with the items she began the level with.
    • [x] Starting the game, picking up a Medpack, finishing the level, picking up another Medpack, saving, restarting this save from Level 1 should start with Pistols and Compass with zero stats
    • [x] Starting the game, picking up a Medpack, finishing the level, picking up another Medpack, saving, restarting this save from Level 2 should start with Pistols and Compass, one Medpack and stats from starting the Level 1
    • [x] Starting the game with the no healing mod, getting hit, saving, loading, should keep Lara's health
    • [x] Starting the game with the no healing mod, getting hit (Lara's health is X), finishing the level, getting hit again (Lara's health is Y), saving, reloading should reset Lara's health back to value Y
    • [x] Select level for Natla's Mines should remove weapons.
    • [x] Selecting level from a new game plus save should put the game in new game plus mode.
    Feature 
    opened by walkawayy 71
  • compass: add total number of pickups and killables

    compass: add total number of pickups and killables

    Resolves #362.

    Prepared to get slammed, but as far as I know we have to manually define lists for objects that are killable and pickupable. Not sure if I missed any.

    For killables, I had to remove some enemies like the Mummy from Qualopec who can't be killed. But Atlantis has an issue where Lara can kill more than there are killables, but idk what I missed.

    For pickups, the different Scions behave differently. I excluded O_SCION_ITEM3 because that is the one you have to shoot.

    Feature 
    opened by walkawayy 37
  • Add a game installer

    Add a game installer

    Checklist

    • [X] I have read the coding conventions
    • [X] I have added a changelog entry about what my pull request accomplishes, or it is an internal change

    Description

    For now this branch only demonstrates we can build GUI apps with .NET Core with our Docker toolchain. The .exe is just 7 KB, but needs .NET Runtime 3.5 which hopefully majority of the players have installed on their computers.

    opened by rr- 35
  • s_clock: add a cheat to increase the game speed

    s_clock: add a cheat to increase the game speed

    Resolves #135.

    Checklist

    • [x] I have read the coding conventions
    • [x] I have added a changelog entry about what my pull request accomplishes

    Description

    Added a cheat (tab key) to increase the game speed. ...

    Feature 
    opened by walkawayy 25
  • Add new savegame format

    Add new savegame format

    Resolves #277

    The new format uses zlib-compressed BSON. The game always saves in the new format, which uses a new filename convention. In case a given save slot has files in both formats available, the game prioritizes the new format upon loading. Loading old saves is still possible. In theory saving in the legacy format is also possible, but I advise against bringing it back.

    Other things:

    • made the format resilient. No more crashes when trying to load saves in the new format made for a mod or a custom level, instead there is a log message and the game exits to title.
    • removed GAMEINFO.savegame_buffer which was frankly quite ugly. I still need info which save slot to load from upon game start, but it's a lot better as it decouples the game from the savegame structure by a great deal already.
    • refactored JSON routines.
    • refactored save and loading to cater for the new multi-format philosophy.
    • added a Python script that can inspect the new savegame files; it is located in scripts/inspect_save.

    One thing I'd like to investigate before we merge, provided everything is OK, is whether these snippets, copied from the legacy loader,

        size_t idx = (size_t)arm->frame_base - (size_t)g_AnimFrames;
    

    are dependent on the size of the g_AnimFrames structure, or retrieve the index.

    Feature Internal 
    opened by rr- 25
  • Feature Request: Add death count to level statistics

    Feature Request: Add death count to level statistics

    Would it be possible to add player death count to the level statistics? I think it would be interesting to see this information.

    I'm not sure if this should be added to #362 or be its own.

    Feature 
    opened by Rapora9 21
  • Add additional control schemes and refactor

    Add additional control schemes and refactor

    Checklist

    • [x] I have read the coding conventions
    • [X] I have added a changelog entry about what my pull request accomplishes, or it is an internal change

    Description

    Added 2 additional custom control schemes (default + 3 custom schemes total). Added customizable keybinds. Refactored option_control.c to support this feature and prepare for #564.

    • [X] Refactor option_control.c.
    • [X] Add custom keybinds for drawing each weapon, small medipack, large medipack, quick save, quick load, FPS, and bilinear filter.
    • [X] Add 2 additional custom control schemes for a total of 3 custom schemes.
    • [X] Remove the two column control menu and change to a scrolling list to fit all the new keybinds.
    • [x] Lock controls when navigating the controls option to prevent medipack usage, toggling the FPS, toggling bilinear filter, etc.
    • [x] Bind action and select to the same key.

    Future PRs:

    • Add the ability to unbind non essential keys (such as camera controls, FPS, etc).
    • Add a reset to defaults button for all keys in the current scheme.
    • Don't fallback to default keys (example, if user rebinds alt, the game shouldn't do the custom key and also still jump)
    • Test remapping a controller.

    ...

    Feature 
    opened by walkawayy 19
  • Refactor savegames to use start and current info

    Refactor savegames to use start and current info

    Checklist

    • [x] I have read the coding conventions
    • [x] I have added a changelog entry about what my pull request accomplishes

    Description

    ... I'm aware this is not done and does not solve legacy saving/loading. I just wanted to ask you to look over this to confirm this is the correct direction for the data types.

    GAME_STATS is now in RESUME_INFO. GAME_INFO now has RESUME_INFO *start and RESUME_INFO *end.

    Help wanted Feature Internal 
    opened by walkawayy 17
  • PS1 UI

    PS1 UI

    Checklist

    • [X] I have read the coding conventions
    • [X] I have added a changelog entry about what my pull request accomplishes, or it is an internal change

    Description

    Adds a vertical center gradient for text boxes that is used for all main menu options to add PS1 style purple backgrounds.

    Video: https://streamable.com/q7sl3y ...

    Feature 
    opened by walkawayy 16
  • Underwater currents sometimes stop working

    Underwater currents sometimes stop working

    When you start the level and fall into the stream, it sucks you down the waterfall as is expected. After you've picked up the three cogs in the level and make your way back to put them in, this happened:

    TombATI:

    https://user-images.githubusercontent.com/4934209/137548483-d09b6e1b-6e82-4d6e-8d83-ac0a3a5f127d.mp4

    TR1Main:

    https://user-images.githubusercontent.com/4934209/137548586-585ea41d-9256-4480-9f4c-4352a2d18885.mp4

    Tested the full scenario of selecting the cogs in both games and then falling into the stream. If the cogs are actually related or not I don't know of course. In TR1Main, if you save whilst you're swimming in the non-working stream, and load, it'll suddenly suck you down again, as if it was reset.

    OG bug 
    opened by Richard-L 16
  • Can't open file after download and extract

    Can't open file after download and extract

    Hi! I've followed the download and extract of Tomb1Main as per the instructions (download TOMBATI first, then extract and replace files with TOMB1Main. However, whereas TOMBATI opens before I replace it, it does not after I have replaced it with Tomb1Main files. Can you help please?

    opened by REF-2021 16
  • Crystals are supposed to be unique usage

    Crystals are supposed to be unique usage

    On original game (Saturn version but probably also PS1) the crystals were unique usage: once saved, the selected crystal is gone forever, forcing the player to wisely choose when to save.

    opened by byblo 0
  • [Feature] Config Tool/Installer Settings Presets

    [Feature] Config Tool/Installer Settings Presets

    There's a lot of little technical settings that Tomb1Main has to offer, but it would also be nice to have a sort of preset selector to change lots of settings more easily and conveniently. This could be implemented into both the installer and the configurator.

    The presets could be done as follows: PC (TombATI): Settings that match the behavior of the TombATI port as close as possible. PS1-like: Settings that closer Playstation version's behavior. Challenge: Enable settings that create a sort of extra-challenging mode (as few HUD elements as possible, stuff like that). Redux: Enables pretty much all enhancements (that don't conflict with each other). Custom: User-defined settings. Setting this in the installer immediately opens the config tool upon finishing the install for users to tweak to their liking.

    Feature 
    opened by OpenRift412 1
  • AMD Overlay not working

    AMD Overlay not working

    First, thanks for all the hard work, game works flawless, even with a controller.

    Only real issue I have, is that I can't record, use AMD's instant reply, or create instant Gif's due to AMD's Overlay simply not working. This is the first time it happens. When recording, the game is completely ignored and the software just records the desktop.

    I was going to try OSB, but since I can't minimize the game or go to Desktop while in-game, something tells me choosing a window to capture would also be impossible.

    Tried to run the game on Windowed mode but... Where exactly is Windowed mode, or how to select it?

    Thank you all again for the hard work, the game runs really well :)

    Help wanted 
    opened by TiagoRocha1989 3
  • Bonus level option

    Bonus level option

    Just like in TR2Gold/TR3, if player collects all secrets, the bonus level gets unlocked at the end of the game. Would be a really nice option for level builders.

    Feature 
    opened by BlackWolfTR 0
  • Launch issue

    Launch issue

    Hi! I've installed the latest Tomb1Main, however when I try and launch it, an error message comes up 'Shader compilation failed: ERROR: 0:4: 'layout': syntax error syntax error'. Thanks very much for your help!

    Help wanted 
    opened by REF-2021 2
Releases(2.11)
  • 2.11(Oct 19, 2022)

    • added a .NET-based configuration tool (#633)
    • added graphics effects, lava emitters, flame emitters, and waterfalls to the savegame so they now persist on load (#418)
    • added an option to turn off sound effect pitching (#625)
    • changed passport to highlight latest save at game start (#618)
    • fixed some sound effects playing in the inventory when disable_music_in_inventory is true (#486)
    • fixed underwater currents breaking in rare cases (#127)
    • fixed gameflow option remove_guns preventing weapon pickups in rare situations (#611)
    • fixed gameflow option remove_scions causing Lara to equip weapons even if she has none (#605)
    • added gameflow option remove_ammo to remove all shotgun, magnum and uzi ammo from the inventory on level start (#599)
    • added gameflow option remove_medipacks to remove all medi packs from the inventory on level start (#599)
    • improved the UI frame drawing, it will now look consistent across all resolutions and no longer have gaps between the lines
    • fixed bridge item in City of Khamoon being incorrectly raised (#627)
    • fixed Lara firing blanks indefinitely when she doesn't have pistols and is out of ammo on non-pistol weapons (#629)
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.11-Installer.exe(11.05 MB)
    Tomb1Main-2.11.zip(9.69 MB)
  • 2.10.3(Sep 15, 2022)

  • 2.10.2(Aug 3, 2022)

  • 2.10.1(Jul 26, 2022)

  • 2.10(Jul 25, 2022)

  • 2.9.1(Jun 3, 2022)

  • 2.9(Jun 1, 2022)

    Video preview:

    Video

    Changes:

    • added generic SDL-based controller support (#278)
    • added the ability to make freshly triggered (runaway) Pierre replace an already existing (runaway) Pierre (#532)
    • added a fade out when completing Lara's Home (#383)
    • added the config option to change the number of save slots (#170)
    • changed default save slot count to 25 (#170)
    • fixed Tihocan chain block sound (#433)
    • fixed passport menu with high UI scaling (#546, regression from 2.7)
    • fixed passport menu border being off by one pixel (#547)
    • fixed the new game and save game passport options using the wrong closing animation (#542, regression from 2.7)
    • fixed bridges at floor level appearing under the floor (#523)
    • fixed Lara's outfit in Lara's Home when replaying the level (#571, regression from 2.7)
    • fixed crash when dying in the gym level with no saves (#576, regression from 2.8)
    • fixed exiting select level menu causing deaths in a new game incremented in that slot (#575, regression from 2.8)
    • removed DInput-based XBox controller support
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.9.zip(8.26 MB)
  • 2.8.2(May 20, 2022)

  • 2.8.1(May 5, 2022)

  • 2.8(May 4, 2022)

    Video preview:

    Video

    Changes:

    • added the option to pause sound in the inventory screen (#309)
    • added level selection to the load game menu (#197)
    • added the ability to pick up multiple items at once with walk to items enabled (#505)
    • added the ability to skip pictures during fade animation (#510)
    • added a cheat to increase the game speed (#135)
    • added a matrix stack overflow error check and message if GetRoomBounds runs infinitely (#506)
    • added ability to turn off trex collision (#437)
    • changed the savegame dialog to remember the user's requested slot number (#514)
    • changed the new game dialog to always fall back to new game
    • fixed ghost margins during fade animation on HiDPI screens (#438)
    • fixed music rolling over to the main menu if main menu music disabled (#490)
    • fixed Unfinished Business gameflow not using basic / detailed stats strings (#497, regression from 2.7)
    • fixed picking up multiple underwater pickups with walk to items enabled (#500)
    • fixed incorrect Lara health when restarting a level
    • fixed pushables breaking with flipped rooms when loading a save (#496, regression from 2.6)
    • fixed pictures displayed before starting a level causing a black screen (custom levels only)
    • fixed underwater caustics animating at 2x speed (#109)
    • fixed new game plus infinite ammo carrying over to a loaded game (#535, regression from 2.6)
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.8.zip(8.25 MB)
  • 2.7(Mar 16, 2022)

    • added ability to automatically walk to pickups when nearby (#18)
    • added ability to automatically walk to switches when nearby (#222)
    • added ability to turn off detailed end of the level stats (#447)
    • added contextual arrows to passport navigation (#420)
    • added contextual arrows to sound option navigation (#459)
    • added contextual arrows to controls option navigation (#461)
    • added contextual arrows to graphics option navigation (#462)
    • added a final statistics screen (#385)
    • added music during the credits (#356)
    • added fade effects to displayed images (#476)
    • added unobtainable pickups and kills stats support in the gameflow (#470)
    • fixed exploded mutant pods sometimes appearing unhatched on reload (#423)
    • fixed sound effects playing rapidly in sound menu if input held down (#467)
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.7.zip(8.27 MB)
  • 2.6.4(Feb 20, 2022)

  • 2.6.3(Feb 18, 2022)

  • 2.6.2(Feb 17, 2022)

  • 2.6.1(Feb 16, 2022)

  • 2.6(Feb 16, 2022)

    • added deaths counter (#388, requires new saves)
    • added total pickups and kills per level to the compass and end level stats screens (#362)
    • added new, more resilient savegame format (#277)
    • added ability to give Lara various items in the gameflow file
    • added restart level to passport menu on death (#48)
    • changed Lara's starting health to be configurable; useful for no damage runs (#365)
    • changed saves to be put in the saves/ directory (#87)
    • changed fade animations to block the main menu inventory ring like in PS1 (#379)
    • changed fade animations to be FPS-independent
    • changed fade animations to run faster in the main menu
    • changed compass text order to be consistent with level stats (#415)
    • fixed detail levels text flashing with any option change (#380)
    • fixed main menu demo playing even when the passport is open (#410, regression from 2.1)
    • fixed broken poses at the end of cinematics (#390)
    • fixed libavcodec-related memory leaks (#389)
    • fixed crash in custom levels that call level_stats after playing an FMV (#393, regression from 2.5)
    • fixed calling level_stats for different levels (#336, requires new saves)
    • fixed sounds playing after demo mode ends when game is minimized (#399)
    • fixed glitched floor in the Natla cutscene (#405)
    • fixed gun pickups disappearing in rare circumstances on save load (#406)
    • fixed equipping gun after loading a legacy save (#427, regression from 2.4)
    • fixed empty mutant shells in Unfinished Business spawning Lara's hips (#250)
    • fixed rare audio distance glitch (#421)
    • fixed Lara not getting her pistols in Atlantis if the player finishes Natla's Mines without picking up any gun (#424)
    • fixed broken dart ricochet effect (#429)
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.6.zip(8.26 MB)
  • 2.5(Jan 31, 2022)

  • 2.4(Jan 19, 2022)

    • added ability to skip FMVs with the action key (#334)
    • changed shaders to use GLSL version 1.30 (#327)
    • changed savegames to consume less space
    • fixed ingame overlay (bars and ammo) being sometimes shown in the menus
    • fixed menu backgrounds not being shown on certain platforms (#324)
    • fixed Lara reverting back to pistols when finishing a level with another gun (#338)
    • fixed lava wedge not setting Lara on fire (#353, regression from 2.2)
    • fixed fallback game strings not working (#335, regression from 2.3)
    • fixed high DPI window scaling on Windows (#280)
    • fixed not all sounds being muted when minimizing the game (#349)
    • fixed ability to push movable blocks through doors (#46)
    • fixed showing inventory ring up/down arrows when uncalled for (#337)
    • fixed Tomb1Main.log to be placed in the game directory rather than the current working directory
    • fixed a crash when exiting the game (regression from 2.3)
    • fixed a crash when shader compilation fails
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.4.zip(8.24 MB)
  • 2.3(Jan 12, 2022)

    • added ability to hold down forward/back to move through saves faster (#171)
    • changed screenshots to be saved in its own folder and with more meaningful names (#255)
    • fixed audible clicks near the end of samples (#281)
    • fixed secret chime not playing if the secret sound fix is disabled, and nothing plays between consecutive secret pickups (#310)
    • fixed ambient noises not pausing on pause screen (#316)
    • fixed underwater sound effect playing only once (#305)
    • fixed UZI sound stopping near big mutant explosions
    • fixed switching inventory rings briefly displaying black frames (#75)
    • fixed top offscreen load game selection (#273, #304)
    • fixed Lara voiding through static objects (#299)
    • fixed step left controller input not working (#302, regression from 2.0)
    • fixed memory leaks
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.3.zip(8.25 MB)
  • 2.2.1(Jan 5, 2022)

  • 2.2(Jan 5, 2022)

    • added ability to control anisotropy filter strength
    • changed the engine look for HD FMVs by default for Unfinished Business
    • removed tiny screen resolutions (might require setting the resolution again)
    • fixed Lara getting set on fire on trapdoors over lava
    • fixed letterbox in main menu showing garbage data on certain machines
    • fixed save crystals saving before gym level
    • fixed black lines appearing on walls and floors
    • fixed hang bug for stacked rooms
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.2.zip(8.25 MB)
  • 2.1(Dec 21, 2021)

    • added ability to disable healthbar and airbar flashing
    • changed the engine look for HD FMVs by default
    • increased max active samples to 20 (should fix rare mute sounds issues)
    • fixed loading TombATI Atlantis saves
    • fixed shotgun shooting when target out of sight
    • fixed save selection being offscreen if the first savegame starts with high enough number
    • fixed alligators dealing no damage under certain circumstances
    • fixed grabbing bridges under certain circumstances
    • fixed crash if user presses a key during ring close animation
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.1.zip(8.25 MB)
  • 2.0.1(Dec 13, 2021)

  • 2.0(Dec 7, 2021)

    • Shipped our own .exe! :partying_face: Tomb1Main is now fully open source and no longer needs injecting itself to the game. It also no longer depends on any of the TombATI .dll files. You can have both versions installed in the same folder.
    • Added support for HD FMVs
    • Added support for .png and .jpg pictures
    • Added support for .png and .jpg screenshots
    • Added fanmade 16:9 menu backgrounds
    • Added wine support
    • Added ability to run the game from any directory (its CWD no longer needs to point to the game's directory)
    • Changed music player to SDL
    • Changed sample player to SDL
    • Changed FMV player to libavcodec and SDL
    • Changed Eidos logo and initial FMVs to be stored in the gameflow file
    • Changed Unfinished Business to no longer play cafe.rpl
    • Changed the game no longer switches resolution back and forth in windowed mode
    • Changed T1M no longer reads atiset.dat
    • Improved shaders readability (chroma key is now stored in the texture alpha channel)
    • Improved shader performance a bit when the bilinear filter is off
    • Improved 3D rendering performance a bit (no more C++ exception handling)
    • Fixed brightness not being saved
    • Fixed game exiting with "Fatal DirectInput error" when losing focus early
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-2.0.zip(8.21 MB)
  • 1.4.0(Nov 16, 2021)

    • added adjustable ingame brightness
    • added per-level fog settings
    • added control over fog density (in terms of tiles)
    • improved TR3 sidesteps
    • improved wording in readme
    • fixed lighting for 3D pickups
    • fixed a crash when drawing lightnings
    • fixed a crash when compiling the game on MSVC
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-1.4.0.zip(567.41 KB)
  • 1.3.0(Nov 6, 2021)

    • added version in the bottom right corner
    • added movable camera on W,A,S,D
    • 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
    • added rounded shadows (instead of the default octagon)
    • added per-level customizable water color (with customizable blue component)
    • added rendering of pickups on the ground as 3D meshes
    • added the ability to change resolution in-game
    • added optional fixes for the following original game glitches:
      • slope/wall bug ("bonk to ascend" bug)
      • breakable tiles bug ("sidestep to descend" bug)
      • qwop
    • changed maximum textures from 2048 to 8192
    • changed maximum texture pages from 32 to 128
    • changed default level skip cheat key from X to L
    • removed hard limit of 1024 rooms
    • fixed level skip working in inventory (it would apply only after closing the inventory)
    • fixed bats being positioned too high
    • fixed flashing conflicts when cheat buttons are disabled
    • fixed ability to rebind the pause button
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-1.3.0.zip(526.08 KB)
  • 1.2.2(Oct 17, 2021)

    • added ability to mute music in main menu
    • added pausing the music while in pause
    • added more screen resolutions
    • fixed demos playing oddly when the enhanced look option is enabled
    • fixed shadows rendering
    • fixed too big healthbar margins on low resolutions
    • fixed bilinear filter not working
    • fixed resolution width/height being ignored
    Source code(tar.gz)
    Source code(zip)
    Tomb1Main-1.2.2.zip(513.83 KB)
  • 1.2.1(Oct 16, 2021)

  • 1.2.0(Oct 14, 2021)

  • 1.1.5(Oct 13, 2021)

Owner
Marcin Kurczewski
Make code, not war
Marcin Kurczewski
STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.

memory The C++ STL allocator model has various flaws. For example, they are fixed to a certain type, because they are almost necessarily required to b

Jonathan Müller 1.2k Dec 2, 2022
MMCTX (Memory Management ConTeXualizer), is a tiny (< 300 lines), single header C99 library that allows for easier memory management by implementing contexts that remember allocations for you and provide freeall()-like functionality.

MMCTX (Memory Management ConTeXualizer), is a tiny (< 300 lines), single header C99 library that allows for easier memory management by implementing contexts that remember allocations for you and provide freeall()-like functionality.

A.P. Jo. 4 Oct 2, 2021
Modern C++ 32bit Windows Process Memory Library.

basil Simple 32-bit Windows Process Memory Library. Written in Modern C++. JavaScript bindings basil (wilL) be available as bindings for JavaScript. C

cristei 4 Jul 5, 2022
Cross-platform shared memory stream/buffer, header-only library for IPC in C/C++.

libsharedmemory libsharedmemory is a small C++11 header-only library for using shared memory on Windows, Linux and macOS. libsharedmemory makes it eas

Aron Homberg 9 Jul 31, 2022
STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.

STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.

Jonathan Müller 1k Dec 2, 2021
A C++ Class and Template Library for Performance Critical Applications

Spirick Tuning A C++ Class and Template Library for Performance Critical Applications Optimized for Performance The Spirick Tuning library provides a

Dietmar Deimling 3 Dec 6, 2021
A simple C++ library for creating and managing bitstreams in memory.

ezbitstream (v0.001) A simple C++ library for creating and managing bitstreams in memory. API & Implementation ezbitstream implements bitstreams with

Unsal Ozturk 2 Feb 4, 2022
Classic Tomb Raider open-source engine

Classic Tomb Raider open-source engine

Timur Gagiev 4k Dec 4, 2022
Tomb Raider III multiplayer modification.

Tomb Raider III Multiplayer Mod. Multiplayer Modification for Tomb Raider III. Website: https://tr3mp.net/ If you own the base source of \patch projec

Tony 3 Dec 25, 2021
FastDynamicCast - Fast dynamic cast in C++ for MSVC, outperforming the regular dynamic cast by up to 25 times

Fast dynamic cast This is a single header, dynamic cast implementation which outperforms the regular dynamic_cast by up to 25 times. Works on MSVC 201

tobspr 85 Oct 23, 2022
Simple Dynamic Strings library for C

Simple Dynamic Strings Notes about version 2: this is an updated version of SDS in an attempt to finally unify Redis, Disque, Hiredis, and the stand a

Salvatore Sanfilippo 4k Nov 28, 2022
🎮 Plants vs. Zombies multiplayer battle, developed via reverse engineering, inline hook and dynamic-link library injection. Two online players defend and attack as the plant side and zombie side respectively.

Plants vs. Zombies Online Battle This project has two original repositories: https://github.com/czs108/Plants-vs.-Zombies-Online-Battle https://github

Liugw 71 Oct 14, 2021
hb-libgd is a graphics library for the dynamic manipulation of images.

hb-libgd Harbour bindings for libGD 2.3.3, GD is an open source code library for the dynamic creation of images by programmers. GD has builtin support

Rafał Jopek 0 Dec 10, 2021
(C++) Integrity dynamic link library made in C++ that you can export to C#

C-Integrity-Library ✔ (C++) Integrity dynamic link library made in C++ that can export to C# C# Exports [DllImport("Exports.dll")] public static exter

null 1 Jan 20, 2022
The dynamic-link-library of DiscordCoreAPI.

The dynamic-link-library of DiscordCoreAPI.

RealTimeChris 3 Feb 8, 2022
C++ library to create dynamic structures in plain memory of shared-memory segments

Ищи описание на хабре @mrlolthe1st. #define _CRT_SECURE_NO_WARNINGS #include "shared_structures.h" #include <iostream> #include <fstream> #include <ca

Александр Новожилов 4 Mar 30, 2022
Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more

Apache MXNet (incubating) for Deep Learning Apache MXNet is a deep learning framework designed for both efficiency and flexibility. It allows you to m

The Apache Software Foundation 20.2k Nov 30, 2022