OpenLRR: Difference between revisions
No edit summary |
No edit summary |
||
Line 27: | Line 27: | ||
== 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).}} | 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"/> | ||
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 | |||
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 these require [[Wikipedia:Visual Studio|Visual Studio 2019]] to be compiled. The project is currently on hiatus, though future updates are planned. | |||
== Version history == | == Version history == | ||
Line 67: | Line 67: | ||
<ref name="OpenLRR release 0001">{{cite web |url=https://github.com/trigger-segfault/OpenLRR/releases/tag/v0.0.0.1 |title=First Release |date=February 18, 2022 |author=trigger-segfault |website=OpenLRR |type=GitHub release |via=[[Wikipedia:GitHub|GitHub]] |archive-url=https://web.archive.org/web/20240930043626/https://github.com/trigger-segfault/OpenLRR/releases/tag/v0.0.0.1 |archive-date=September 30, 2024 |url-status=live}}</ref> | <ref name="OpenLRR release 0001">{{cite web |url=https://github.com/trigger-segfault/OpenLRR/releases/tag/v0.0.0.1 |title=First Release |date=February 18, 2022 |author=trigger-segfault |website=OpenLRR |type=GitHub release |via=[[Wikipedia:GitHub|GitHub]] |archive-url=https://web.archive.org/web/20240930043626/https://github.com/trigger-segfault/OpenLRR/releases/tag/v0.0.0.1 |archive-date=September 30, 2024 |url-status=live}}</ref> | ||
<ref name="OpenLRR release 0002">{{cite web |url=https://github.com/trigger-segfault/OpenLRR/releases/tag/v0.0.0.2 |title=Random sound cue fix |date=August 11, 2022 |author=trigger-segfault |website=OpenLRR |type=GitHub release |via=[[Wikipedia:GitHub|GitHub]] |archive-url=https://web.archive.org/web/20240930171744/https://github.com/trigger-segfault/OpenLRR/releases/tag/v0.0.0.2 |archive-date=September 30, 2024 |url-status=live}}</ref> | |||
<ref name="OpenLRR release 0007b">{{cite web |url=https://github.com/trigger-segfault/OpenLRR/releases/tag/v0.0.0.7-hotfix1 |title=v0.0.0.7 - Hotfix 1 |date=September 28, 2022 |author=trigger-segfault |website=OpenLRR |type=GitHub release |via=[[Wikipedia:GitHub|GitHub]] |archive-url=https://web.archive.org/web/20240930185328/https://github.com/trigger-segfault/OpenLRR/releases/tag/v0.0.0.7-hotfix1 |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="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> | ||
<ref name="rru patch">{{cite web |url=https://rockraidersunited.com/topic/9048-in-depth-look-at-the-cfg-syntax/?do=findComment&comment=141124 |title=Sounds good! I've actually already gotten an assembly patch working to fix this... |type=comment on forum topic "In-depth Look at the CFG Syntax" |author=trigger_segfault |date=June 27, 2021 |website=Rock Raiders United |archive-url=http://web.archive.org/web/20240930044226/https://rockraidersunited.com/topic/9048-in-depth-look-at-the-cfg-syntax/#comment-141124 |archive-date=September 30, 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="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> |
Revision as of 06:02, 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
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.[2] 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.[3][note 1] Jordan started a forum thread to post his initial findings on the website Rock Raiders United on June 17, 2021.[2] 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.[4]
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.[4] (Prior to this, he had released some assembly patches created in Python, including one to fix a bug with certain sounds not playing.)[5] 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).[6][4]
A GitHub repository for the project, now called OpenLRR, was created on September 9, 2021.[7] The first build version of OpenLRR was released on February 18, 2022.[8] New builds were released during August and September 2022.[9][10] Further updates were made to its code through October 2023, though these require Visual Studio 2019 to be compiled. 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.
- ↑ 2.0 2.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.
- ↑ 4.0 4.1 4.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 (February 18, 2022). "First Release". OpenLRR (GitHub release). Archived from the original on September 30, 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.