Jump to content

Things We Know About Modding LRR


Cirevam
 Share

Recommended Posts

I'm going to keep trying but here's something. My first chose decompiler decided it wasn't going to touch the code because it had been compiled with an "unknown" compiler. My second spat out something which I expect is completely useless. It's also way too short. I think the next step is to try and figure out WHAT language the game was written in, to be honest, much better results to be expected that way. 

 

Here's what I got: (spoiler'd out of consideration for it's length)

 

               _entry_:
L0048F000:     // Refs: 
 0008E400:  0x0048F000: 55                                push ebp
 0008E401:  0x0048F001: 8BEC                              mov ebp, esp
 0008E403:  0x0048F003: 6AFF                              push 0x000000FF
 0008E405:  0x0048F005: 6820EB4900                        push dword M0049EB20
 0008E40A:  0x0048F00A: 68D8674900                        push dword L004967D8
 0008E40F:  0x0048F00F: 64A100000000                      mov eax, [fs:0x00000000]
 0008E415:  0x0048F015: 50                                push eax
 0008E416:  0x0048F016: 64892500000000                    mov [fs:0x00000000], esp
 0008E41D:  0x0048F01D: 83C4A8                            add esp, byte 0x000000A8
 0008E420:  0x0048F020: 53                                push ebx
 0008E421:  0x0048F021: 56                                push esi
 0008E422:  0x0048F022: 57                                push edi
 0008E423:  0x0048F023: 8965E8                            mov [ebp-0x00000018], esp
 0008E426:  0x0048F026: FF154CE47600                      call dword near [M0076E44C  {__imp__GetVersion}]
 0008E42C:  0x0048F02C: 33D2                              xor edx, edx
 0008E42E:  0x0048F02E: 8AD4                              mov dl, ah
 0008E430:  0x0048F030: 8915E8905400                      mov [0x005490E8], edx
 0008E436:  0x0048F036: 8BC8                              mov ecx, eax
 0008E438:  0x0048F038: 81E1FF000000                      and ecx, 0x000000FF
 0008E43E:  0x0048F03E: 890DE4905400                      mov [0x005490E4], ecx
 0008E444:  0x0048F044: C1E108                            shl ecx, 0x00000008
 0008E447:  0x0048F047: 03CA                              add ecx, edx
 0008E449:  0x0048F049: 890DE0905400                      mov [0x005490E0], ecx
 0008E44F:  0x0048F04F: C1E810                            shr eax, 0x00000010
 0008E452:  0x0048F052: A3DC905400                        mov [0x005490DC], eax
 0008E457:  0x0048F057: E804250000                        call L00491560
 0008E45C:  0x0048F05C: 85C0                              test eax, eax
 0008E45E:  0x0048F05E: 750A                              jnz L0048F06A
L0048F060:     // Refs: 
 0008E460:  0x0048F060: 6A1C                              push 0x0000001C
 0008E462:  0x0048F062: E839010000                        call L0048F1A0
 0008E467:  0x0048F067: 83C404                            add esp, byte 0x00000004

Link to comment
Share on other sites

I'm going to keep trying but here's something. My first chose decompiler decided it wasn't going to touch the code because it had been compiled with an "unknown" compiler. My second spat out something which I expect is completely useless. It's also way too short. I think the next step is to try and figure out WHAT language the game was written in, to be honest, much better results to be expected that way.

Congratulations. You've discovered assembly. This is what a program is made of. These are the calls that the program makes at a very low level. Also known as not source code. This can be useful for debugging and reverse engineering in the hands of someone who knows ASM, but for us it's worthless.
Link to comment
Share on other sites

One does not simply learn ASM without one first knowing languages like c++. If you aren't already a knowledgeable programmer in one of these languages you are practically jumping into the deepest end of the pool. It is impossible to turn Assembly back to it's original source code and for good reason. Should you eventually be successful in changing a tiny thing, you will not be able to post your modified EXE here. This would be warez and RRU is not in the business of such activity.

 

These are some of the reasons we have not gone as far as disassembly and why we don't. Your time is better spent finding solutions to problems other ways, where possible.

Link to comment
Share on other sites

thedmbarlow

There was some slight sarcasm there, although learning to code in general is something I have been working on, Cyrem.

 

And as for the modified .EXE -- no. I would not be interested in posting THAT. That's basically promoting piracy, I can absolutely see the reasoning to not allow that.  However -- would posting a patch to allow the modders here to work deeper in the game also be considered warez? That was more along the line of what I was thinking, and has the benefit of not posting what amounts to the game itself. 

Link to comment
Share on other sites

  • 4 months later...

Pathfinding: Though you may want to prevent raiders from taking shortcuts over lava, there's no way to change how the game handles pathfinding.

We actually can prevent RRs from drowning themselves in lava by letting them run like most of the vehicles (except small digger which also drives like a drunk). The silly thing is that the RRs then only stand right in the middle of the ground parts and not anywhere on it. So if you have 20 RRs on that ground platform all 20 RRs stand at one position.

You can do this in the cfg where the RR is listed as Pilot:

   RouteAvoidance  TRUE

just add a ";" in the fron:

;   RouteAvoidance  TRUE
But I think you all already knew that? e342183.png

In-fact, I KNOW you do! so why am i telling you?

Link to comment
Share on other sites

In-fact, I KNOW you do! so why am i telling you?

Yeah, why are you telling him, and bumping a *dead* topic without anything important to say?
Link to comment
Share on other sites

  • 5 months later...

I'm going to keep trying but here's something. My first chose decompiler decided it wasn't going to touch the code because it had been compiled with an "unknown" compiler. My second spat out something which I expect is completely useless. It's also way too short. I think the next step is to try and figure out WHAT language the game was written in, to be honest, much better results to be expected that way. 

 

Here's what I got: (spoiler'd out of consideration for it's length)

 

 

Why don't you just ask wich compiler they used by asking the makers of LRR on RRU?

Or do some research of the type's of compilers that where out there in 1999?

 

(i know this post is a year old)

Link to comment
Share on other sites

I'm going to keep trying but here's something. My first chose decompiler decided it wasn't going to touch the code because it had been compiled with an "unknown" compiler. My second spat out something which I expect is completely useless. It's also way too short. I think the next step is to try and figure out WHAT language the game was written in, to be honest, much better results to be expected that way. 

 

Here's what I got: (spoiler'd out of consideration for it's length)

 

Why don't you just ask wich compiler they used by asking the makers of LRR on RRU?

Or do some research of the type's of compilers that where out there in 1999?

 

(i know this post is a year old)

Without the sauce-code, what good will that do?
Link to comment
Share on other sites

  • 1 month later...

I'm just new here and only derped around for a couple minutes (or maybe 1 hour?).

 

In another topic, someone mentioned, that a new Rock Raider game is being worked on? Is that true?

 

Otherwise:

 

Wouldn't it be a possibility to re-create Rock Raiders in one of the current-gen engines like Unity3D...or maybe a self-made engine, which reflects the RR Engine and requires certain original files in order to run the game. I mean, this game is more than 10 years old and not being supported. Technically, if I am right (and correct me if I am wrong), it is abandonware. People did the same with games like Syndicate (including Syndicate Wars).

 

The experienced C++ coders here could ask Lego for permission to work on a re-creation, which requires original data and is free of charge. Maybe Lego would allow that.

 

Just a thought.

 

Greetings,

 

Maxunit

Link to comment
Share on other sites

In another topic, someone mentioned, that a new Rock Raider game is being worked on? Is that true?

Derp around a little longer. There's topics in various parts of the site about it. The status of it being a new RR title is...questionable.

 

Wouldn't it be a possibility to re-create Rock Raiders in one of the current-gen engines like Unity3D...or maybe a self-made engine, which reflects the RR Engine and requires certain original files in order to run the game. I mean, this game is more than 10 years old and not being supported. Technically, if I am right (and correct me if I am wrong), it is abandonware. People did the same with games like Syndicate (including Syndicate Wars).

 

The experienced C++ coders here could ask Lego for permission to work on a re-creation, which requires original data and is free of charge. Maybe Lego would allow that.

Yeah, why not ask the 50 other people who have attempted it with various levels of experience, expertise and ideas.
Link to comment
Share on other sites

  • 3 months later...
TheSmartOne

 

1. Priorities and Properties: We cannot add new, original entries of either of these since their functions are hardcoded into the game. We're limited to what already exists.

2. Adding Wall Types: We can't add more wall types. We're limited to what was programmed into the game, and even then, some wall types can't be used because of changes made to the surf and dugg maps during development.

 

1. There were originally plans for 12 priorities (found by derping around in the interface image folders).

 

2. Gamzdude's Mod added a wall type (Dirt>Hard Dirt>Loose Rock>Hard Rock>Solid Rock. Also, there are seams).

Link to comment
Share on other sites

We already know about the unused priorities, and there has indeed been a mod created that reactivates them:

 

Adding Priorities and Properties: In the CFG file, we can mix and match different properties to change how objects and levels work, and even activate ones that are not used by the original game. Some are not interchangeable. Example: Add New Priorities

 

I'll admit that I haven't looked at Gamzdude's mods in much detail, but previous research with Lair indicated that rock types are hard coded and we can't change them without editing the EXE. I'd like to see how Gamzdude added another or if he used some workaround to fudge it.

Link to comment
Share on other sites

We already know about the unused priorities, and there has indeed been a mod created that reactivates them:

 

Adding Priorities and Properties: In the CFG file, we can mix and match different properties to change how objects and levels work, and even activate ones that are not used by the original game. Some are not interchangeable. Example: Add New Priorities

 

I'll admit that I haven't looked at Gamzdude's mods in much detail, but previous research with Lair indicated that rock types are hard coded and we can't change them without editing the EXE. I'd like to see how Gamzdude added another or if he used some workaround to fudge it.

This is how I did It. I just replaced the Ore seam texture with the hard rock one, and then just bumped up all of the drill-able wall type textures to the next wall type. The down side is that this makes hard rock loss its textures on corners in opened caverns,  and it is still an or seam, but that's how I did it :). Hope this explanation helped.  

Link to comment
Share on other sites

TheSmartOne

 

2. Gamzdude's Mod added a wall type (Dirt>Hard Dirt>Loose Rock>Hard Rock>Solid Rock. Also, there are seams).

http://www.rockraidersunited.org/wiki/index.php?title=Soil

In addition, a trick.

 

Aah, did not know that was still in the game.

 

We already know about the unused priorities, and there has indeed been a mod created that reactivates them:

 

Adding Priorities and Properties: In the CFG file, we can mix and match different properties to change how objects and levels work, and even activate ones that are not used by the original game. Some are not interchangeable. Example: Add New Priorities

 

I'll admit that I haven't looked at Gamzdude's mods in much detail, but previous research with Lair indicated that rock types are hard coded and we can't change them without editing the EXE. I'd like to see how Gamzdude added another or if he used some workaround to fudge it.

This is how I did It. I just replaced the Ore seam texture with the hard rock one, and then just bumped up all of the drill-able wall type textures to the next wall type. The down side is that this makes hard rock loss its textures on corners in opened caverns,  and it is still an or seam, but that's how I did it :). Hope this explanation helped.  

 

It does help. Thanks.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.