Tomb Raider (OpenLara)Link


A new work-in-progress Tomb Raider game engine ported to libretro.

The nice thing about OpenLara is that, while staying true to the original look and feel of the original, it also adds some graphical enhancements to it that manages to make the boxy old-school Tomb Raider games look a bit less archaic. Some examples include :

  • Self-shadowing on Lara, enemies, etc.
  • New water effects which replaces the simple vertex manipulation of the water surface on the PSX. The Saturn version actually was the only version that tried to do something a bit more sophisticated with the water. If you dislike these very nice graphical enhancements, I inserted a core option so you can turn these off (‘Enable water effects’ in Quick Menu -> options).
  • Shading effects – after Lara gets out of the water, her skin has a slightly wet shading effect.
  • A first-person mode that is more convincing and fun than what you’d expect. It behaves a bit like Mirror’s Edge in that the camera bobs up and down, and you can see Lara’s hands move in front of you. If you try to do a somersault – the camera will rotate along with it as well. What makes the firstperson mode a bit more convincing is the new self-shadowing effects that have been added.


This core requires that you use OpenGL as the video driver. Go to Settings -> Driver. If ‘video driver’ is set to ‘vulkan’, switch it back to ‘gl’, and then restart.


There is currently no ‘working’ macOS version available due to the OpenGL requirement.

Also, the OpenLara core requires that you turn on ‘Enable Shared Hardware Context’, otherwise you will only see a single texture being displayed onscreen instead of the game screen.

  1. First, you need to ensure that ‘Show Advanced Settings’ is turned on. Go to Settings -> User Interface and turn ‘Show Advanced Settings’ on.

  1. Now, go back, and go to Settings -> Core.

  1. Once inside the ‘Core’ settings, set ‘Enable Shared Hardware Context’ to ON.

How to start the OpenLara core:Link

Right now, OpenLara is more of a tech demo. You have to load separate levels into the program in order to play them.

Be aware that certain gameplay elements are simply not implemented as of yet, such as health bars, taking damage, etc. You can ‘complete’ the stage technically but you also cannot die or continue to the next level.

We hope that it will book major progress so that one day we can replay the old Tomb Raider games entirely with these enhanced graphics and enhanced framerates. To this end, we intend to support the project.

For demonstration purposes, we provide you with the Tomb Raider 1 demo levels so that you can test it out. It is also possible to use levels from the PC/PSX version and load this into the game engine core, so try that out at your own discretion.

  • To try the demo level, you need to obtain its data files. You can do this by going to RetroArch's main menu screen and selecting 'Online Updater'. From there, select 'Content Downloader'.

  • Select 'Tomb Raider', then select ''. This should download and extract this file to RetroArch's Downloads directory.

  • Go back to RetroArch's main menu screen. Select 'Load Content', then 'Downloads'.

  • Select the 'Tomb Raider' directory, then select 'LEVEL2.PSX'.

  • If you are asked which core to select, choose 'Tomb Raider (OpenLara)'.

The content should now start running!


The OpenLara core has been authored by

  • XProger

The OpenLara core is licensed under

A summary of the licenses behind RetroArch and its cores have found here.


Content that can be loaded by the OpenLara core have the following file extensions:

  • .psx


RetroArch database(s) that are associated with the OpenLara core:


Frontend-level settings or features that the OpenLara core respects.

Feature Supported
Core Options
RetroArch Cheats
Native Cheats
Disk Control
Crop Overscan


The OpenLara core's internal core name is 'OpenLara'

The OpenLara core saves/loads to/from these directories.

Frontend's System directory

  • openlara-'character-string'.xsh (???)

Geometry and timingLink

  • The OpenLara core's core provided FPS is dependent on the 'Framerate' core option.
  • The OpenLara core's core provided sample rate is 44100 Hz
  • The OpenLara core's core provided aspect ratio is 4/3

Core optionsLink

The OpenLara core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.

Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch.

  • Framerate (restart) [openlara_framerate] (60fps|90fps|120fps|144fps|30fps)


  • Internal resolution (restart) [openlara_resolution] (320x240|360x480|480x272|512x384|512x512|640x240|640x448|640x480|720x576|800x600|960x720|1024x768|1024x1024|1280x720|1280x960|1600x1200|1920x1080|1920x1440|1920x1600|2048x2048|2560x1440|3840x2160|7680x4320|15360x8640|16000x9000)


Internal resolution - 320x240

Internal resolution - 1920x1080

  • Texture filtering (restart) [openlara_texture_filtering] (Bilinear filtering|Nearest)


Texture filtering - Bilinear

Texture filtering - Nearest

  • Water effects (restart) [openlara_water_effects] (enabled|disabled)


Water effects - On

Water effects - Off


The OpenLara core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):

User 1 device typesLink

  • None - Doesn't disable input. There's no reason to switch to this.
  • RetroPad - Joypad - Stay on this.
  • RetroPad w/Analog - Joypad - Same as RetroPad. There's no reason to switch to this.

Controller tablesLink


User 1 Remap descriptors RetroPad Inputs
Action (Shoot/grab)
View toggle
Draw weapon
Walk (when holding)
Sidestep left
Sidestep right