GithubHelp home page GithubHelp logo

arsunt / tr2main Goto Github PK

View Code? Open in Web Editor NEW
187.0 12.0 13.0 3.47 MB

Tomb Raider II Injector Dynamic Library

License: GNU General Public License v3.0

C++ 79.38% C 20.62%
tomb raider lara croft dagger psx pc source code decompile

tr2main's Introduction

TR2Main

This is an open source implementation of the classic Tomb Raider II game (1997), made by reverse engineering of the original game for PC and PS1. Right now it's a dynamic library injecting the original game EXE to allow step-by-step decompilation, fixing, and improvement, but someday it will become single EXE file.

The goal of the project is to make 1:1 clone of the original PC game, to fix all its bugs, and to add more features from non-PC official ports (for example from PS1). So TR2Main is some sort of unofficial modern PC port of Tomb Raider II.

Getting Started

You may download patched Tomb2.exe, TR2Main.dll from releases, put them in your game folder and just launch. Also you may build TR2Main.dll yourself and use it with patched Tomb2.exe from here.

The Golden Mask game is included into a release pack, since it's freeware. The original game level files must be officially obtained via Steam/GOG/CD/whatever.

Changelog

Learn about the latest improvements.

Built With

Authors

License

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

Acknowledgments

If you are inspired by my project and decided to borrow some of the ideas found in the code, do not forget provide a link to this project. It took me years to decompile and understand the details required for this project.

Copyright

(c) 2017-2023 Michael Chaban. All rights reserved. Original game is created by Core Design Ltd. in 1997. Lara Croft and Tomb Raider are trademarks of Embracer Group AB.

tr2main's People

Contributors

arsunt avatar gh0stblade avatar tokyosu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tr2main's Issues

Still having audio issues under Wine/Proton 8

Fixed the audio delay by installing quartz_feb2010 and d3dx9_43. Otherwise I am still dealing with the game's audio looping oddly after picking up a secret or otherwise changing the music loop length.

It also crashes after a while on Proton 7 Wine releases.

Originally posted by @Alyxx88 in #43 (comment)

windowed fmv

When setting a lower resolution (1280x720) than the desktop resolution (1920x1080), the game switches to the window in the upper left corner of the screen when playing fmv sequences. After the fmv ends, the game switches to fullscreen again

[Windows] Distorted music when playing on bluetooth device

Summary:
I have observed that when I run the game with Bluetooth headphones plugged in, whenever music plays ingame, it is heavily distorted and stuttering. This issue only occurs with bluetooth headphones plugged in. It does not occur when using laptop's speakers or headphones connected to jack output.

The issue didn't occure to me when using Vanilla TR2. When I installed TR2main it started occuring, but even if I run vanilla TR2 again after using tr2main, I get sound distortion anyway. Hard for me to say if it's releated to the tr2main then.

The issue seems to affect music only, it does not affect sound samples.

It is very much possible that it is either an issue caused by Windows 11 (which apparently changed how sound works) or Nahimic drivers (which are known to cause troubles, especially with bluetooth headphones). I have also noticed similar issue in a different game (Tomb Raider Legend) which might point that the issue is caused by something external and TR2Main is just suffering from it. Still decided to report this just to raise awareness.

Repro steps:

  1. Run Windows 11 machine and connect bluetooth headphones.
  2. Run TR2Main.
  3. Listen to the main menu music.

Observed issue:
Music stutters when using headphones.

Expected results:
Music is plays smooth using different sound devices.

Specs:
Lenovo Legion 15ACH6H
Windows 11 Home 22621
AMD Ryzen 5 5600H with Raden GPU (12 CPUs) ~3.3.GHz
NVIDIA GeForce RTX 3060 GPU
Realtek HD Audio with audio driver 4.7.2 + Nahimic 1.9.17

Attachments:

beautifulmusic.mp4

Inv_RingRotateLeft/Right Wrong Name

I'm working on inventory.cpp
Inv_RingRotateLeft_425300 and Inv_RingRotateRight_425330 have name inversed or it's just me ?!
an example:

if (InputStatus & IN_RIGHT && ring.objCount > 1)
{
    Inv_RingRotateRight(&ring);
    PlaySoundEffect(0x6Cu, 0, SFX_ALWAYS);
    continue;
}

move to left !

if (InputStatus & IN_LEFT && ring.objCount > 1)
{
    Inv_RingRotateLeft(&ring);
    PlaySoundEffect(0x6Cu, 0, SFX_ALWAYS);
    continue;
}

move to right !

IN_RIGHT is for left and same for IN_LEFT that are right ?
in the database, Inv_RingRotateLeft is in IN_RIGHT and Right is in IN_LEFT !

PS: GFF_Unknown is GFF_HOME_ENABLED ;)

Secret bug in Catacombs of the Talion

I've been doing a run with all secrets and no medipacks and have made to near the end of the snow levels. I noticed once I got the orange dragon secret that it never gave the bonus items you normally get when you acquire all of the secret in a given level. I checked the statistics and the white dragon secret just disappears. I noticed it when I went back through and got the green dragon secret, the slot where the white one is supposed to be is indented out but empty. And it doesn't acknowledge it when you finish the level, it's just empty. So far this has been then only level to do this.

Updated release build?

There's lots of stuff in the changelog that's not in the current release. Any chance you could do a new release, please? Or alternatively provide instructions on how to build ourselves, as I have no clue how to do that :)

Game cannot start due to missing d3dx9_43.dll

This might be specific to Windows 11.

I downloaded the release and dragged the files across onto the game which I installed from Steam. Tomb2.exe and other files were replaced. When I try to run Tomb2.exe I get this error.

image

linux wine issue: no background sound

Hello,

I just tested TR2main on Linux with Wine, replaced tomb2.exe and copy TR2main.dll to the TR2 main folder.
First issue: like many other tomb2.exe executable, it doesn't interact with winmm.dll, so it doesn't play soundtracks. I had the same issue with TR2 Gog edition, they changed the way TR2 play soundtracks, they doesn't seem to use winmm with music folder containing OGG/MP3 tracks. They now use an audio folder with two files: "cdaudio.dat" and "cdaudio.mp3". This new solution does not work with Wine.

I verified TR2main was active: I imported the animated background regedit file, it worked ok, very nice effect.
The widescreen and FOV looked nice and compatible with DGVoodoo2.

Thank you for your help.

Info

Hi Arsunt,
i'm working at CreatureFunction to help you,
but some info is missing like camera.flags id ?

FMV dont launch

Hello Arsunt,

FMV cant launch but in option the FMV option is unchecked.

Windowed mode is showing titlebar

Since DxWnd is not working with TR2Main (it crashes the game), I'm using the built-in windowed mode. But it renders a distracting Windows titlebar. It should be possible to have windowed fullscreen, i.e. hide both titlebar and possibly Windows taskbar.

Checking Decompiled Function before PR

I decompiled Display_Inventory and i'm intending to decompile all function in inventory.cpp,
i need some help about item text that dont update when inventory moving, and fix some think like variable with "vXX" (replace XX with number) before i send you a PR ;)

updated repo, new added branch develop: TokyoSU/TR2Main/DevelopBranch

Wine/Proton PaulD Audio Solution bugs

The PaulD Audio Solution audio is out of sync on Wine/Proton and often parts of another audio track will play together with the current one.

There is also a bug in the first level where picking up the statue will cause the background audio to loop.
Edit: Update on this bug - ANY music change will cause the length of any following CD audio to change. In the case of picking up a secret, it will cause the length of ALL following music to be really short, causing loop bugs and cutting off the tracks too early.

Any possible workarounds?

Not Working

Hey, my game doesn't seem to launch using TR2Main. I download the latest release, simply put everything into my steam TR2 folder, and when everything from 0.9.0 is put there... the game will flat-out not launch.
I cannot figure out what I'm misunderstanding, but I keep trying different things and none of them work.
(My TR2 is in D: drive if that matters?)
The setup is also not functional.

It's a fresh install of TR2.

D-pad/thumb stick don't work on 8BitDo Pro 2 Controller

Hello. I just installed the most recent version of the patch (0.9.0, on GOG Tomb 2), and using the 8BitDo Pro 2 controller all but the d-pad/thumb stick work. I tried messing with the configuration but did not manage to make it work. All other buttons/commands work (jump/menus/shooting/etc).
I tested other joypad (an generic one) and it worked fine.
I could use the other controller to play, but feels really bad to not be able to use this specific controller (is one of the best/feels really good to use).

Game rotated my Intel graphics card 180 degrees

I was playing normal on steam + steam gampad input and overlay with DS4Windows on windows 10.
screen went black for 1 second then everything was upside down :D
It happened at the map temple of xian
I was using developer build 20200902

Fly mode

Hello.
In tr2 main it's possible use fly mode?
If Yes whats the command?

development aborded ?

hello arsunt,
i love this project because tr2 is really bugged in pc,
the development is aborded or too long ?
praticaly sure that is school or life cause it but impossible to escape :x

some issues

heya, realy appreciate your mod!
weird thing is, it enables using custom FMVs in the mp4-format, but if you use certain reg-tweaks in the ExtraOptions-folder, no videos at all will play (even after removing the custom ones).
any idea?

also, I still don't get custom soundtracks to work on the GoG-version (it seems to want to use ogg-files from the "music"-folder, but doesn't do so. when you rename/delete the "audio"-folder, no music at all anymore).
tried to follow this forum-post. but no cigarino.

Software request: Level converter

There is considerable amount of prerelease, demo and regional versions of levels, including other platforms ones which currently can't be played with TR2Main project. OpenLara project by @XProger has implementations of some of the formats described above. After Discord discussion with @rr- we concluded that there would be better to create a separate level converter rather than expand TRXMain projects codebase with additional versions of levels reading. So I propose to create a converter for the levels from PS1, Demo and Prerelease formats to T2M PC ones.

As for demos, there should be an option to disable level end trigger to allow more exploration.

I created similar request for TR1-related levels on T1M project GH page so whoever decides to start such converter might consider to unite his efforts with other TRXMain developers to support their TR(1, 2 ,3, 4, 5) levels as well.

Some work been done towards it as far as I know

Arsunt

[Linux] Helicopter cinematic, black screen with audio

Hello,
I just tested TR2Main more recent version available here: https://www.tombraiderforums.com/showpost.php?p=8206492&postcount=7
I saw TR2Main now uses directx9 that is fully supported on Linux with Wine/DXVK.
I would like to know what did you change for playing cinematics cause with DXVK they do not play correctly: I obtain black screen and I can hear audio. I do not know if it is a DXVK bug. Do you have a more recent build so I can test if I can reproduce this issue with latest TR2Main code.
Thank you for your help.

TR2 Gold: black main menu

Hello Arsunt, I tried to launch the Golden mask extension with:
Tomb2.exe -gold
but I obtained a black screen instead of the main menu.

I copied all files and renamed them as you described:
TOMBPCg.DAT in main game golder
and the others in DATA folder.

I use TR2main 0.8.2 release may 2019
Thank you for your help.

new feature: GOLD - Howto?

Hello,
I saw in changelog you added a new feature: if I start the exe with "-gold" option, it could start the gold version. But how and where to add necessary files? Is it possible to have the two version in the same tree?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.