OpenLRR: Difference between revisions
No edit summary |
No edit summary |
||
Line 25: | Line 25: | ||
== Gameplay and features == | == Gameplay and features == | ||
{{See also|LEGO Rock Raiders (video game)#Gameplay}} | {{See also|LEGO Rock Raiders (video game)#Gameplay}} | ||
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.<ref name="wiki running"/> The gameplay when running OpenLRR is largely unchanged from ''Rock Raiders''; however, OpenLRR fixes numerous crashes, bugs, and issues found in the original game.<ref name="reddit guide"/> Most notably, OpenLRR adds a [[Wikipedia:Menu bar|menu bar]] that allows for toggling numerous functions, including ones not possible in the original game.<ref name="OpenLRR release 0001"/> | |||
<!--* Numerous graphical adjustments, such as disabling interface, [[Wikipedia:Level of detail (computer graphics)|level of detail]], and changing the rendering quality (eg. enabling [[Wikipedia:Wire-frame model|wireframe]] mode)--> | |||
== Development == | == Development == | ||
Development of OpenLRR began in 2021 as a [[Wikipedia:Decompilation|decompilation]] project by programmer Robert "trigger-segfault" Jordan, who wanted to look through the ''LEGO Rock Raiders'' [[Wikipedia:Executable|executable]] [[Wikipedia:Assembly language|assembly]] to figure out how the game's [[Main Lego Config File|config file]] syntax functioned.<ref name="rru syntax"/> Jordan used [[Wikipedia:Ghidra|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.<ref name="wiki decompiling"/>{{efn|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 Collection|LEGO Masterpiece]]''-labeled released of the game), and an October 12 version (which includes ''[[Wikipedia:SafeDisc|SafeDisc]]'' protection).}} Jordan started a forum thread to post his initial findings on the website [[Rock Raiders United]] on June 17, 2021.<ref name="rru syntax"/> 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 [[Wikipedia:Game engine|game engine]], which ''LEGO Rock Raiders'' uses, after it was discovered on [[DDI Dump|hard drives formerly owned by]] developer [[Data Design Interactive]].<ref name="rru decomp"/> | Development of OpenLRR began in 2021 as a [[Wikipedia:Decompilation|decompilation]] project by programmer Robert "trigger-segfault" Jordan, who wanted to look through the ''LEGO Rock Raiders'' [[Wikipedia:Executable|executable]] [[Wikipedia:Assembly language|assembly]] to figure out how the game's [[Main Lego Config File|config file]] syntax functioned.<ref name="rru syntax"/> Jordan used [[Wikipedia:Ghidra|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.<ref name="wiki decompiling"/>{{efn|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 Collection|LEGO Masterpiece]]''-labeled released of the game), and an October 12 version (which includes ''[[Wikipedia:SafeDisc|SafeDisc]]'' protection).}} Jordan started a forum thread to post his initial findings on the website [[Rock Raiders United]] on June 17, 2021.<ref name="rru syntax"/> 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 [[Wikipedia:Game engine|game engine]], which ''LEGO Rock Raiders'' uses, after it was discovered on [[DDI Dump|hard drives formerly owned by]] developer [[Data Design Interactive]].<ref name="rru decomp"/> | ||
By September 3, Jordan had organized most of the game's code into a more navigable state. Using [[Wikipedia:DLL injection|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.<ref name="rru decomp"/> (Prior to this, he had released some assembly patches created in [[Wikipedia:Python (programming language)|Python]], including one to fix a bug with certain sounds not playing.)<ref name="rru patch"/> Jordan planned to eventually build on this concept to create an open-source version of the ''LEGO Rock Raiders'' executable, similar to projects like [[Wikipedia:OpenRCT2|OpenRCT2]] (which Jordan had previously contributed to).<ref name="OpenRCT2"/><ref name="rru decomp"/> | By September 3, Jordan had organized most of the game's code into a more navigable state. Using [[Wikipedia:DLL injection|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.<ref name="rru decomp"/> (Prior to this, he had released some assembly patches created in [[Wikipedia:Python (programming language)|Python]], including one to fix a bug with certain sounds not playing.)<ref name="rru patch"/> Jordan planned to eventually build on this concept to create an open-source version of the ''LEGO Rock Raiders'' executable, similar to projects like [[Wikipedia:OpenRCT2|OpenRCT2]] (which Jordan had previously contributed to).<ref name="OpenRCT2"/><ref name="rru decomp"/> A [[Wikipedia:GitHub|GitHub]] repository for the project, now called OpenLRR, was created on September 9, 2021.<ref name="OpenLRR commit initial"/> The first build version of OpenLRR was released on February 18, 2022.<ref name="OpenLRR release 0001"/> New builds were released during August and September 2022.<ref name="OpenLRR release 0002"/><ref name="OpenLRR release 0007b"/> Further updates were made to its code through October 2023, though [[Wikipedia:Visual Studio|Visual Studio 2019]] is required to compile these versions. The project is currently on hiatus, though future updates are planned. | ||
A [[Wikipedia:GitHub|GitHub]] repository for the project, now called OpenLRR, was created on September 9, 2021.<ref name="OpenLRR commit initial"/> The first build version of OpenLRR was released on February 18, 2022.<ref name="OpenLRR release 0001"/> New builds were released during August and September 2022.<ref name="OpenLRR release 0002"/><ref name="OpenLRR release 0007b"/> Further updates were made to its code through October 2023, though | |||
== Version history == | == Version history == | ||
Line 73: | Line 74: | ||
<ref name="OpenRCT2">{{cite web |url=https://trigger-segfault.github.io/games/openrct2/ |title=OpenRCT2 Contributions |first=Robert |last=Jordan |date=November 21, 2018 |website=Trigger's Tools & Games |archive-url=https://web.archive.org/web/20240930035615/https://trigger-segfault.github.io/games/openrct2/ |archive-date=September 30, 2024 |url-status=live}}</ref> | <ref name="OpenRCT2">{{cite web |url=https://trigger-segfault.github.io/games/openrct2/ |title=OpenRCT2 Contributions |first=Robert |last=Jordan |date=November 21, 2018 |website=Trigger's Tools & Games |archive-url=https://web.archive.org/web/20240930035615/https://trigger-segfault.github.io/games/openrct2/ |archive-date=September 30, 2024 |url-status=live}}</ref> | ||
<ref name="reddit guide">{{cite web |url=https://old.reddit.com/r/Rockraiders/comments/1apx9js/a_modern_guide_to_experiencing_lego_rock_raiders/ |title=A modern guide to experiencing LEGO Rock Raiders! |author=Baraklava |date=13 February 2024 |website=[[Wikipedia:Reddit|Reddit]] |archive-url=https://web.archive.org/web/20241001052056/https://old.reddit.com/r/Rockraiders/comments/1apx9js/a_modern_guide_to_experiencing_lego_rock_raiders/ |archive-date=October 1, 2024}}</ref> | |||
<ref name="rru decomp">{{cite web |url=https://rockraidersunited.com/topic/9089-open-source-decompilation-of-rock-raiders/ |title= Open Source Decompilation of Rock Raiders |author=trigger_segfault |date=September 3, 2021 |website=[[Rock Raiders United]] |archive-url=https://web.archive.org/web/20240929122937/https://rockraidersunited.com/topic/9089-open-source-decompilation-of-rock-raiders/ |archive-date=September 29, 2024 |url-status=live}}</ref> | <ref name="rru decomp">{{cite web |url=https://rockraidersunited.com/topic/9089-open-source-decompilation-of-rock-raiders/ |title= Open Source Decompilation of Rock Raiders |author=trigger_segfault |date=September 3, 2021 |website=[[Rock Raiders United]] |archive-url=https://web.archive.org/web/20240929122937/https://rockraidersunited.com/topic/9089-open-source-decompilation-of-rock-raiders/ |archive-date=September 29, 2024 |url-status=live}}</ref> | ||
Line 80: | Line 83: | ||
<ref name="rru syntax">{{cite web |url=https://rockraidersunited.com/topic/9048-in-depth-look-at-the-cfg-syntax/ |title=In-depth Look at the CFG Syntax |author=trigger_segfault |date=June 17, 2021 |website=[[Rock Raiders United]] |archive-url=https://web.archive.org/web/20240929123003/https://rockraidersunited.com/topic/9048-in-depth-look-at-the-cfg-syntax/ |archive-date=September 29, 2024 |url-status=live}}</ref> | <ref name="rru syntax">{{cite web |url=https://rockraidersunited.com/topic/9048-in-depth-look-at-the-cfg-syntax/ |title=In-depth Look at the CFG Syntax |author=trigger_segfault |date=June 17, 2021 |website=[[Rock Raiders United]] |archive-url=https://web.archive.org/web/20240929123003/https://rockraidersunited.com/topic/9048-in-depth-look-at-the-cfg-syntax/ |archive-date=September 29, 2024 |url-status=live}}</ref> | ||
<ref name="wiki decompiling">{{cite web |url=https://github.com/trigger-segfault/OpenLRR/wiki/Decompiling-LEGO-Rock-Raiders | <ref name="wiki decompiling">{{cite web |url=https://github.com/trigger-segfault/OpenLRR/wiki/Decompiling-LEGO-Rock-Raiders |last=Jordan |first=Robert |date=December 17, 2021 |title=Decompiling LEGO Rock Raiders |website=OpenLRR Wiki |via=[[Wikipedia:GitHub|GitHub]] |archive-url=https://web.archive.org/web/20240701034732/https://github.com/trigger-segfault/OpenLRR/wiki/Decompiling-LEGO-Rock-Raiders#decompiling-lego-rock-raiders |archive-date=July 1, 2024 |url-status=live}}</ref> | ||
<ref name="wiki running">{{cite web |url=https://github.com/trigger-segfault/OpenLRR/wiki/Running-OpenLRR |last=Jordan |first=Robert |date=December 17, 2021 |title=Running OpenLRR |website=OpenLRR Wiki |via=[[Wikipedia:GitHub|GitHub]] |archive-url=https://web.archive.org/web/20240930041200/https://github.com/trigger-segfault/OpenLRR/wiki/Running-OpenLRR |archive-date=September 30, 2024 |url-status=live}}</ref> | |||
}} | }} | ||
Revision as of 06:51, 1 October 2024
Developer(s) | trigger-segfault |
---|---|
Initial release | February 18, 2022 |
Stable release | v0.0.0.7-hotfix1
/ September 28, 2022 |
Repository | github |
Written in | C, C++ |
Engine | Gods98 |
Operating system | Microsoft Windows |
Platform | x86 |
Available in | English |
Type | Real-time strategy game |
License | GPLv3 (OpenLRR code), MIT (decompiled code)[1] |
OpenLRR is an open-source re-implementation of the 1999 real-time strategy game LEGO Rock Raiders.
Gameplay and 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 ones not possible in the original game.[4]
Development
Development of OpenLRR began in 2021 as a decompilation project by 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.[5] 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.[6][note 1] Jordan started a forum thread to post his initial findings on the website Rock Raiders United on June 17, 2021.[5] 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.[7]
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.[7] (Prior to this, he had released some assembly patches created in Python, including one to fix a bug with certain sounds not playing.)[8] 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).[9][7] A GitHub repository for the project, now called OpenLRR, was created on September 9, 2021.[10] The first build version of OpenLRR was released on February 18, 2022.[4] New builds were released during August and September 2022.[11][12] Further updates were made to its code through October 2023, though Visual Studio 2019 is required to compile these versions. The project is currently on hiatus, though future updates are planned.
Version history
Version | Release date | Release info |
---|---|---|
0.0.0.1 | February 18, 2022 | First Release |
0.0.0.2 | August 11, 2022 | Random sound cue fix |
0.0.0.3 | August 13, 2022 | Multiple sound trigger and erosion debug tooltip fix |
0.0.0.4 | August 25, 2022 | Configurable keyboard shortcuts and cheats |
0.0.0.5 | September 16, 2022 | True color support and command line options |
0.0.0.6 | September 24, 2022 | Increase 3D and Radar Map resolution when scaling |
0.0.0.7 | September 27, 2022 | Optimisations, cursor clipping, mod support, and more! |
See also
Notes
- ↑ 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
- ↑ trigger-segfault (February 23, 2022). "License and copyright considerations". OpenLRR Issues (GitHub issue). Archived from the original on September 29, 2024 – via GitHub.
- ↑ Jordan, Robert (December 17, 2021). "Running OpenLRR". OpenLRR Wiki. Archived from the original on September 30, 2024 – via GitHub.
- ↑ Baraklava (13 February 2024). "A modern guide to experiencing LEGO Rock Raiders!". Reddit. Archived from the original on October 1, 2024.
- ↑ 4.0 4.1 trigger-segfault (February 18, 2022). "First Release". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.
- ↑ 5.0 5.1 trigger_segfault (June 17, 2021). "In-depth Look at the CFG Syntax". Rock Raiders United. Archived from the original on September 29, 2024.
- ↑ Jordan, Robert (December 17, 2021). "Decompiling LEGO Rock Raiders". OpenLRR Wiki. Archived from the original on July 1, 2024 – via GitHub.
- ↑ 7.0 7.1 7.2 trigger_segfault (September 3, 2021). "Open Source Decompilation of Rock Raiders". Rock Raiders United. Archived from the original on September 29, 2024.
- ↑ 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.
- ↑ Jordan, Robert (November 21, 2018). "OpenRCT2 Contributions". Trigger's Tools & Games. Archived from the original on September 30, 2024.
- ↑ trigger-segfault (September 9, 2021). "Initial commit". OpenLRR (GitHub commit). Archived from the original on September 29, 2024 – via GitHub.
- ↑ trigger-segfault (August 11, 2022). "Random sound cue fix". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.
- ↑ trigger-segfault (September 28, 2022). "v0.0.0.7 - Hotfix 1". OpenLRR (GitHub release). Archived from the original on September 30, 2024 – via GitHub.