OpenLRR

From Research Realm
Revision as of 23:12, 17 October 2024 by Ringtail Raider (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
OpenLRR
Developer(s)trigger-segfault
Initial releaseFebruary 18, 2022; 2 years ago (2022-02-18)
Stable release
v0.0.0.7-hotfix1 / September 28, 2022; 2 years ago (2022-09-28)
Repositorygithub.com/trigger-segfault/OpenLRR
Written inC, C++
EngineGods98
Operating systemMicrosoft Windows
Platformx86
Available inEnglish
TypeReal-time strategy game
LicenseGPLv3 (OpenLRR code), MIT (decompiled code)[1]

OpenLRR is an open-source re-implementation and expansion of the 1999 real-time strategy game LEGO Rock Raiders. First released in 2022, the program is built on a decompilation of the original game's executable file and uses DLL injection to modify functions. The project is still in early development, though it is not currently active. Despite this, OpenLRR already greatly improves gameplay stability, fixes bugs, and adds many new features; using it to play LEGO Rock Raiders is highly recommended.

Features

As a re-implementation of LEGO Rock Raiders, OpenLRR requires a copy of the original game to already be installed on the computer, and its files must be placed in a working install folder.[2] The gameplay when running OpenLRR is largely unchanged from Rock Raiders; however, OpenLRR fixes numerous crashes, bugs, and issues found in the original game.[3] Most notably, OpenLRR adds a menu bar that allows for toggling numerous functions, including debug and cheat options.[4] Some of its changes include:

  • Easy menu toggling of options that otherwise would have to be edited in the Main Lego Config File.
  • Configurable keybinds, for both normal and debug keys.[5]
  • Configurable logging to a separate console window.
  • Adjustable graphics options, such as top-down fog, level of detail, and rendering quality (eg. enabling wireframe mode).
  • Higher-resolution scaling support, allowing the 3D world to be rendered at a higher internal resolution (while using nearest-neighbor scaling for the interface).[6]
  • True color support; previously the game was limited to 16-bit high color.[7]
  • Increased zooming range in the radar panel.[6]
  • Viewable routing paths.[7]
  • Allowing the player to directly control a selected unit in top-down view, including resources and enemies.[8]
  • Cheat options such as the "Super Tool Store" cheat which allows the Tool Store to teleport all land vehicles, power other buildings, and train any ability.[9]

Development

Multi-color crystals

Development of OpenLRR began in 2021 as a decompilation project by American programmer Robert "trigger-segfault" Jordan, who wanted to look through the LEGO Rock Raiders executable assembly to figure out how the game's config file syntax functioned.[10] Jordan used Ghidra to decompile, identify, and label code from the LEGO Rock Raiders executable. The decompilation focused on the September 27 English version of the game's executable (the "Masterpiece edition") as it was considered to be the most stable and widely-used version of the game.[11][note 1] Jordan started a forum thread to post his initial findings on the website Rock Raiders United on June 17, 2021.[10] Over the next few months he continued work on decompiling and identifying all the functions, global variables, symbols, and data types in the assembly. Jordan's work was made easier by the release of the source code for the Gods98 game engine, which LEGO Rock Raiders uses, after it was discovered on hard drives formerly owned by developer Data Design Interactive.[8]

External video
video icon OpenLRR Demos with Pre-recorded Input at YouTube

By September 3, Jordan had organized most of the game's code into a more navigable state. Using DLL injection, he was able to replace several functions in the game's executable, allowing for new functions such as controlling entities in top-down view, multi-colored crystals, and resource monitoring.[8] (Prior to this, he had released some assembly patches created in Python, including one to fix a bug with certain sounds not playing.)[12] Jordan planned to eventually build on this concept to create an open-source version of the LEGO Rock Raiders executable, similar to projects like OpenRCT2 (which Jordan had previously contributed to).[13][8] A GitHub repository for the project, now called OpenLRR, was created on September 9, 2021.[14] The first build version of OpenLRR was released on February 18, 2022.[4] A number of update builds were released during August and September 2022.[15][16] Further edits were made to its code through October 2023, though Visual Studio 2019 is required to compile these versions. The project has been on hiatus since then.

Version history

Controlling a selected Rock Monster in Top View
An example of a routing path
Debug tool tip and routing paths
Release history of OpenLRR
Version Release date Release type and highlights
0.0.0.1 February 18, 2022 First Release[4]
  • Menu bar
0.0.0.2 August 11, 2022 Random sound cue fix[15]
0.0.0.3 August 13, 2022 Multiple sound trigger and erosion debug tooltip fix[17]
0.0.0.4 August 25, 2022 Configurable keyboard shortcuts and cheats[5]
  • New key shortcuts
  • Configurable keybinds
  • Logging configuration
0.0.0.5 September 16, 2022 True color support and command line options[7]
  • True color support
  • Building placement arrow
  • Routing paths
  • New cheats
  • New command-line parameters
0.0.0.6 September 24, 2022 Increase 3D and Radar Map resolution when scaling[6]
  • Internal resolution scaling
  • Improved vector graphics drawing
  • Increased allowed range of radar map zooming
  • Debug options to disable 2D drawing modules
  • New command-line parameters
0.0.0.7 September 27, 2022 Optimisations, cursor clipping, mod support, and more![9]
  • Cursor Clipping
  • Super Tool Store cheat
  • New graphics options
  • New command-line parameters
  • New key shortcuts
  • Improved Lego.cfg error reporting

See also

Notes

  1. The English version of LEGO Rock Raiders has three known executable versions: a September 25 version, a September 27 version (commonly called the Masterpiece edition as it was the version used in LEGO Masterpiece-labeled released of the game), and an October 12 version (which includes SafeDisc protection).

References

  1. trigger-segfault (February 23, 2022). "License and copyright considerations". OpenLRR Issues (GitHub issue). Archived from the original on September 29, 2024 – via GitHub.
  2. Jordan, Robert (December 17, 2021). "Running OpenLRR". OpenLRR Wiki. Archived from the original on September 30, 2024 – via GitHub.
  3. Baraklava (13 February 2024). "A modern guide to experiencing LEGO Rock Raiders!". Reddit. Archived from the original on October 1, 2024.
  4. 4.0 4.1 4.2 trigger-segfault (February 18, 2022). "First Release". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.
  5. 5.0 5.1 trigger-segfault (August 25, 2022). "Configurable keyboard shortcuts and cheats". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.
  6. 6.0 6.1 6.2 trigger-segfault (September 24, 2022). "Increase 3D and Radar Map resolution when scaling". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.
  7. 7.0 7.1 7.2 trigger-segfault (September 16, 2022). "True color support and command line options". OpenLRR (GitHub release). Archived from the original on October 1, 2024 – via GitHub.
  8. 8.0 8.1 8.2 8.3 trigger_segfault (September 3, 2021). "Open Source Decompilation of Rock Raiders". Rock Raiders United. Archived from the original on September 29, 2024.
  9. 9.0 9.1 trigger-segfault (September 27, 2022). "Optimisations, cursor clipping, mod support, and more!". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.
  10. 10.0 10.1 trigger_segfault (June 17, 2021). "In-depth Look at the CFG Syntax". Rock Raiders United. Archived from the original on September 29, 2024.
  11. Jordan, Robert (December 17, 2021). "Decompiling LEGO Rock Raiders". OpenLRR Wiki. Archived from the original on July 1, 2024 – via GitHub.
  12. trigger_segfault (June 27, 2021). "Sounds good! I've actually already gotten an assembly patch working to fix this..." Rock Raiders United (comment on forum topic "In-depth Look at the CFG Syntax"). Archived from the original on September 30, 2024.
  13. Jordan, Robert (November 21, 2018). "OpenRCT2 Contributions". Trigger's Tools & Games. Archived from the original on September 30, 2024.
  14. trigger-segfault (September 9, 2021). "Initial commit". OpenLRR (GitHub commit). Archived from the original on September 29, 2024 – via GitHub.
  15. 15.0 15.1 trigger-segfault (August 11, 2022). "Random sound cue fix". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.
  16. trigger-segfault (September 28, 2022). "v0.0.0.7 - Hotfix 1". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.
  17. trigger-segfault (August 13, 2022). "Multiple sound trigger and erosion debug tooltip fix Pre-release". OpenLRR (GitHub release). Archived from the original on October 1, 2024 – via GitHub.