Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 12/21/21 in all areas

  1. Antillies

    A Lost Rock Raider Has Been Found!

    Some of you may remember my attempt in 2017 to capture the feeling of Rock Raiders through photos. I commented that though some of the pictures that time around were interesting, I wasn't able to achieve the exactness when it came to matching the aesthetic as I had hope. Well, I had some time and the will to again make another attempt these past two weeks when I again had access to my LEGO's. With a bit more forethought and planning, and gathering some more tools, I produced the below images. I feel this attempt did a significantly better job in capturing the aesthetic of the Rock Raider world - though the exact extent of which I will leave up to you all. The two things I would like to explore in the future, if I have time and the ability, would be to feature the electric fence (I had meant to but ran out of time) and include power paths. The lighting for power paths is a little more tricky but I'm sure I can find a way, if it doesn't end up looking too awkward. Hope there's some images here that everyone can enjoy. Image 1 Image 2 Image 3 Image 4 Image 5 Image 6 Image 7 Image 8 Image 9 Image 10 Image 11 Image 12 Image 13 Image 14 Image 15 Image 16 Image 17 Image 18 Image 19 Image 20 Image 21 Image 22 Image 23 Image 24 Image 25 Image 26 Image 27 Image 28 Image 29 Image 30 Image 31 Image 32 Image 33
    6 points
  2. baraklava

    LEGO Media / Rock Raiders booth at E3 1999

    Yesterday I got a reminded by someone that LEGO Rock Raiders was supposedly shown off at E3, so I poked around some E3 1999 videos and by pure chance the first or second video I clicked greeted me with this: Yep, that's someone donning the infamous "Chief costume" that you could win a Halloween party of: In the background you can see booths for Lego Racers, that we know were produced by Freudzon design: (Full archive pages of Lego material from Freudzon Design here, found by Jeremy/Brickome:) https://web.archive.org/web/20030315081237/http://www.freudzon.com/lego/kiosk.htm https://web.archive.org/web/20060901072746/http://3dpreview.com/exhibits.php?picture=lego_e3&num=1 And this very brief shot shows some kind of Rock Raiders display: Here is a timestamp link to the 20 seconds of footage that we got so you can see for yourself: There was also an article related to Lego at this E3: https://www.ign.com/articles/1999/05/12/lego-medias-e3-lineup Apparently you could win the PS1/N64 controller statues you see in the video, and the 4 games that were shown off were: Lego Rock Raiders, LEGOLAND, Lego Friends and Lego Racers. New footage of E3 1999 is being uploaded and re-uploaded all the time so more might appear, but I haven't found anything from scouring the rest of the videos I saw on YouTube!
    2 points
  3. Thanks, I had researched the program yesterday but didn't have time to try it out and learn how it works. However, I've finally figured out how to get everything working so I'll do a write up below for anyone else wanting to do this: UPDATED: 1. Install LEGO Racers 2 from the CD disc - if you get the 'Not enough memory' error from the installer, you can either put the disc's installer into compatibility mode for Windows XP SP2 or use le717's LEGO Racers 2 installer to get the data from the disc to install to your modern PC. (The reason for the 'Not enough memory' error is because the game was released in 2001 and older PCs back then didn't have as much memory as they do now, so I believe if your PC has over 1GB of RAM, the disc's installer will get confused and refuse to install). 2. Download kajeuter's cheat table from the RRU file database here OR... From the Mediafire link: https://www.mediafire.com/file/wr75wgd1i1d6zvg/Kajeuter%27s_LR2_Hacks.zip/file 3. Download and install Cheat Engine 5.4 or higher, I used Cheat Engine 7.2 ****BE CAREFUL WHERE YOU DOWNLOAD CHEAT ENGINE FROM! MANY DOWNLOADS CONTAIN A TROJAN VIRUS, EVEN ON CERTAIN DOWNLOAD LINKS ON THE OFFICIAL CHEATENGINE.ORG WEBSITE!**** I watched a YouTube video (link here) on how to download it from cheatengine.org as a clean install file, without any viruses or having to go through an installer. 4. Launch Cheat Engine and then start the LEGO Racers 2 game. Tab out of the game and go back to Cheat Engine, look for the computer monitor / screen icon at the top left of the program, it should say 'select a process to open' when you put your mouse arrow over the icon. Click the icon and here is where you will be selecting the game that you want Cheat Engine to apply cheats to. In this case, find LEGO Racers 2 and click on it to select it (should be highlighted blue) and then click the 'open' button. 5. Now that you've told Cheat Engine to apply cheats to LEGO Racers 2, you can now open kajeuter's cheats table into the program. To do this, again look towards the top left of the program and next to the monitor icon should be a folder icon with a green arrow which should read 'open a cheat table'... Select this and navigate to wherever you saved your kajeuter's cheat table download to and open it into Cheat Engine. 6. Now you have the cheat table loaded in, you will see all of the entries ranging from 1.1 all the way up to 10.0 you'll now want to refer to kajeuter's read-me file because it will tell you which entries you want to edit in order to edit the player's car and character. In this case, if you are wanting to play as Riegel's Mech or Berg, you will be looking at the 3.0 and 6.0 section in the read-me file. When kajeuter mentions 3.0 being for special cars, he is referring to all the entries that start with 3, you won't actually have a 3.0 entry in Cheat Engine. You will have 3.1, 3.2, 3.3 etc... all the way up to 3.8, the reason for this is most races in the game have 8 characters maximum racing at once, including the player. 'Car 1: Special' is always the player's car because your car always starts in position 1 in front of all the other racers at the lights. So from this you can work out that the 3.1 entry is the first of the 8 racers (always the player) and it is labelled 'Car 1: Special' (as mentioned, this is always the player's car). Whereas the 3.2 entry labelled 'Car 2: Special' would be the second of the 8 racers, which is one of the other 7 non-player controlled racers you drive against. 7. Now that I've made this more clear, you'll see in the read-me under the 3.0 section specifically for changing the cars, that the value for Riegel's Mech is '2' and the value for Berg is '4'. Look for the '3.1 Car 1: Special' entry in Cheat Engine and look for the number under the 'Value' category, you will see the default is 1. Double click on this number and you can change it to 2 for Riegel's Mech or 4 for Berg. MOST IMPORTANTLY now that you've changed the number, you will need to click in the box under the 'Active' category on the far left side of the 3.1 entry to check it, this will ensure the cheats stays activated. 8. I don't think it's necessary to change the player's character to use Riegel's Mech or Berg, however if you wanted to set your character to Riegel, look for the 6.0 section specifically for changing characters in the read-me file and you will see the value for Riegel is 46. All the same applies for any entries starting with 6, '6.1 Car 1: Character' will be the player's character, the other 6.2 - 6.8 will be the other 7 non-player controlled racers you drive against who's characters and vehicles can also be changed in the same way if you'd like. Look for the '6.1 Car 1: Character' entry in Cheat Engine and look for the number under the 'Value' category, double click on this number and change it to 46 for Riegel. Again, now that you've changed the number, you will need to click in the box under the 'Active' category on the far left side of the 6.1 entry to check it, this will ensure the cheats stays activated. After doing some more experimenting, it seems like changing the character in the 6.1 entry doesn't seem to have any effect on the player's character in Arcade or Adventure mode, however when going AFK in the main menu, the game plays a random race action replay which the player isn't seen in, but this seems to edit racer 1 for this AFK action replay... But this method will still successfully change the character of any of the other 7 non-player controlled characters that you change the value of, from 6.2 - 6.8. 9. Leave Cheat Engine open and now you can simply tab back into your game. I would recommend playing in Adventure mode, avoid Arcade mode if you can. Playing as Riegel's Mech or Berg in Arcade mode seems to be very glitchy and it likes to rubber-band the player back to random positions and get stuck under the map. It seems best to play Adventure mode, however there is a trick to doing this. Before you load into Adventure mode you must make sure the '3.1 Car 1: Special' entry has it's value set to '1'. This is because if you are in any of the world's hubs other than Sandy Bay (which is open free-roam), you will need to interact / talk with Sparky to choose EXPLORE to free-roam each world. If you load into Adventure with your value set at '2' or '4' playing as Riegel's Mech or Berg then you won't be able to interact or talk to Sparky to enter the Explore mode. This is why you must load into Adventure with the value set to '1' THEN BEFORE TALKING TO SPARKY, tab out and change the value to '2' or '4'. You can now talk to Sparky and enter the Explore mode on whichever world you are on and when it loads in you will be playing as Riegel's Mech or Berg. IF YOU WANT TO EXIT EXPLORE to change worlds then you must tab out before quitting Explore and change the value back to 1, or you cannot use any of the world hub's portals to return to Sandy Bay and go to another world. If you want to go to another world just leave the value on '1' and return to Sandy Bay through the portal, then go to the desired world fast travel and go there. Again, once you get inside the desired world hub, just tab out and change to your desired value before talking to Sparky and then enter Explore and you can play as Riegel's Mech or Berg on another world. If you want to free-roam on Sandy Bay, you will need to make sure you are in Sandy Bay in Adventure mode, save your game and exit to the main menu. Now tab out and change to your desired value and then continue game in Adventure mode and you will be Riegel's Mech or Berg in Sandy Bay free-roam. If you would still like to try Arcade mode, just make sure your desired values are set at the main menu and select Arcade mode. Pick whichever world, race and number of laps you'd like, it doesn't matter which name, character or car you pick, once you load in you will be playing as your desired car and character. Just remember, I experienced rubber banding and getting stuck under the map in Arcade races, but you can try and see if it will be any different for you. Enjoy!
    2 points
  4. kaitokid

    WIndows 10

    So i tried to run the game with the alternative installer, but when i try to actually start the game, i just get an error message telling me:"Missing or Invalid DSetup.DLL", which is probably because you need the DirectX 7.0a version. Edit: I fixed the problem in simly downloading the DirectX file. Just download the game as intented, but click no when he ask you to download the DirectX version. Then download "d3drm.dll" and put it into the C://Programms (86)/LEGO Media/LEGO Stunt Rally and it should work (dunno how it works without CD)
    1 point
  5. Antillies

    A Lost Rock Raider Has Been Found!

    Thanks, Jimbo. Image 18 is my favorite of the Power Station. I finally started to relax after I had taken it since my true objective with this project was to capture a decent shot of that building, and with that one it felt like I had done so. I definitely would have preferred walls that had a bit more variety in shape, but I was limited with the rocks I had on hand to work with. The rectangular blocks ended up being helpful in supporting the staging of other rocks so it worked out, I think. The lighting in some of the more complicated shots is a mixture of a few different sources. The more general lighting was provided by work clamp lights with colored gels shone either directly or bounced off of a white board-like object or the rocks themselves. The object lighting (the crystal storage tower on the Power Station and the eyes of the Rock Monsters) were small LED's that I also gel'ed and placed strategically (as best I could). On the shots where Sparks is drilling, I added a tad of reactive light in Photoshop since the drilling elements were added in after the fact. Let me know if I can answer any more questions for you. Happy to do so.
    1 point
  6. JimbobJeffers

    A Lost Rock Raider Has Been Found!

    Daaayum I love these so much, thank you for taking the time to share them! Image 18 is definitely my favourite, the colour grading and composition and setup and everything just perfectly captures LRR for me. I also like the choice of environment, the tall blocky walls kinda match the very grid-like nature of the game. How'd you get some elements to glow? Is there a directed light on them, or hidden LEDs in them, or Photoshop work, I can't figure it out.
    1 point
  7. Cirevam

    A Lost Rock Raider Has Been Found!

    So many of these are so good that it's hard to pick a favorite. Maybe #24? It's the iconic crystal. #5 is really good too. I love the atmosphere and composition. Really nice work all around.
    1 point
  8. Slimy Slug

    A Lost Rock Raider Has Been Found!

    These shots look absolutely amazing, very well done! Images 16 and 17 stand out with the gloomy lighting and sense of terror at the presence of a monster, action stations lighting blanketing the caverns. Image 17 in particular looks just so good with the glowing eyes, looming around the corner. I could go on but again, these are fantastic and I'm so glad you put this together. Looking forward to seeing Power Paths and Electric Fences in the future, should you do those as well.
    1 point
  9. Jappelsap

    Redesigned LEGO Racers cars

    Hello! A little while ago I finished redesigning most of the cars from LEGO Racers. I thought that people here might appreciate them as well. All cars: Rocket Racer: Captain Redbeard: King Kahuka: Basil the Batlord: Johnny Thunder: Baron von Barron: Gypsy Moth: Later addition: Veronica Voltage:
    1 point
  10. Sunchipp

    LEGO Racers Cars in Scrap Mechanic

    Didn't take long to do this (and I had a helping hand with at least three) but I have recreated all the boss cars from LEGO Racers into Scrap Mechanic. This is an old video though since Rocket Racers car got updated since then but let me know what you think
    1 point
  11. busyman

    How to not write a post

    THIS IS NOT A SPAM POST! Click the spoiler at your own risk. I am not responsible for immeasurable laughter.
    1 point
  12. DOM098652

    How to install / use a LR2 trainer to play as Riegel's Mech & Berg?

    Thank you! I tried to write it so a total beginner not knowing where to start, could do the same as I did. That's very handy to know so other's won't have to search online for an installer and can put the disc's installer into compatibility mode for XP SP2 or use le717's installer! Thanks for uploading kajeuter's cheat table to RRU, that should be really helpful as a preferred download alternative, especially in case the Mediafire link ever goes dead. I have updated my guide with your links to the RRU file database and le717's installer, alongside re-writing some areas with my updated findings.
    1 point
  13. Slimy Slug

    Unused LEGO Rock Raiders (PC) Assets

    I didn't. I used Process Monitor, created several filters, then started carefully rerunning tests and startup multiple times to check what gets read and what doesn't on initial load, followed by testing what it grabs when loading up a map. Went through several passes, then did some manual removals etc. to see if the game would care or not and/or if anything looked broken. Was tedious and took me a week to fully do, but in the process found some fascinating items hidden in here/located assets that weren't even being called. I could have sworn I had removed those prior to uploading So this is one of the cases where the textures in question are in fact searched for and loaded by the game as they are mapped but are never actually assigned to a block/tile as they lack the hardcoded entries there. They're weirdly mapped/called by one function but not used elsewhere. Or at least that's the simplest way (I think) to explain some of what @trigger_segfault found with the biome loading. That's for another topic perhaps, but the TL;DR is these are ultimately unused. I'll address the second point first: doesn't seem to matter the game version but you can remove textures from biomes without the game caring much; the result of missing textures is the game will try to grab the regular ground tile as a default. Otherwise it will show as a white square (like in your test) if it can't find the ground texture. As for Soil, those bmps are grabbed and loaded, but are unused ultimately as the game just replaces instances of this wall type with Dirt (or at least that's what is implied to be happening based on surf map data). So the long and short of it is yes, these can be removed without the game throwing a fit and Soil textures are indeed unused. For the slug holes in ice and lava biomes: in vanilla they're most definitely unused. It's weird that DDI didn't use slug holes outside of rock levels, if you don't count the original intended setup for Lava Laughter (which I'm planning on making a topic for). The game won't crash if you remove the slug hole textures in any biome, as it will default to the ground texture (as mentioned above). Then there's LavaSplit\Lava45.bmp, the water texture for the lava biome. This is in fact used, and appears in the tutorial missions 1. Moving Rock Raiders and 4. Moving Rock Raider Vehicles. Sadly water doesn't show up in any of the actual lava missions, but this texture is still used nonetheless. Yeah, Failcrys.wav is defined but it's not actually used. IIRC the only way to get it to play currently is via a debug key? I haven't really looked into this particular failure line much, but there's an argument both ways for it being considered used and unused. Sounds\Streamed\InGame, is a bit of a convoluted rabbit hole. I think I failed to properly cover these because the game grabs all of them by virtue of being called by the Levels\GameLevels\Level##\##.txt files. As a result I left them alone initially; I have a separate folder I had been working on and had apparently forgotten about at the time of uploading the unused asset tree. A perfect example of these audio clips being actually called and seemingly hooked up in the NERPs is A Breath Of Fresh Air. Every piece of audio pertains to the air supply and the NERPs for the map indicates the messages were supposed to play when the air supply hit certain thresholds. Two possibilities: the script for the maps was done improperly (looking at the nrm raises a few questions), or Sparks notifications are overriding the NERPs messages. If the latter it doesn't explain why Chief fails to come on-screen anyway, which is why I lean on the side of the NERPs being a bit screwed up for the map. The 1002.wav is probably one of the most interesting of the lot as it means Erode Works was changed in some fashion from the original plot, which evidently involved locating a Granite Grinder. This clip is very clearly unused. That 1901.wav clip is yet another example. Note that 1501 and 1701 are seemingly for Ice Spy and yet are different clips, which again raises some questions whether 1701 was meant for another ice map where Lava Laughter now is, or if it was just an extra recording they tossed in. I'm going to recheck all these and update the unused asset tree accordingly. This was something I left out at the time pondering if I should include them or not, but yeah, you're right. These definitely count as unused. As for if those files remain in English no matter the version... I'll check tomorrow and edit this post. The main thing I did when I first built this archive was going off of things specifically not called, then recheck the assets that are loaded but are likely not used (such as Ice07.bmp). What I uploaded was the raw, undisputed unused assets, which I will be updating with what you've pointed out and what I've outlined in this post. I really appreciate you taking the time to go through these assets and kind of prodding me back into doing something with them again in the process. Thanks again for everything you pointed out.
    1 point
  14. Arthuriel

    How to fix broken links of images hosted on RRU

    Over the years I have noticed many broken image links in older topics and they look like this (I took a working picture of mine and show you how it looked when it was broken): gallery_1586_213_7445.jpg And if you click on them you land on the RRU main site again. Well, how do you repair them then? Since this also affected my threads and posts I wanted to come up with a way to fix my own images at least. I don't know how I exactly came up with the solution, but at one point I have probably compared the working with the broken image links and noticed that you could turn this into a template. Here is the example from above, but in a form that actually works and the only reason why you don't see a picture is that I used the "Code" option in RRU's text editor to show you the actual link. https://www.rockraidersunited.com/uploads/gallery/album_213/gallery_1586_213_7445.jpg Basically the broken example is the URL end part for the new working example and here is an explanation, what those numbers actually mean (The numbers and file types obviously change from image to image): "1586" is the user number "213" is the album number "7445" is the image number "jpg" is the file type And to put this all together here is the template for working links: https://www.rockraidersunited.com/uploads/gallery/album_*album number*/gallery_*user number*_*album number*_*image number*.*file type* Now use the "Insert other media" option in the bottom right of the text editor, then click on "Insert image from URL" and insert the working image link: Hurray, a working picture! I have also reminded you of the "The (slightly disturbing) Running Man" thread again XD. Since the links go by the same pattern I wonder, if a script could be made to replace the broken ones with working ones in the entire forum. At least for the pictures hosted on RRU this could be a solution. If you repair image links in your own posts I recommend making a working image first and then delete the old broken one or otherwise you might delete your only hint to what image you have posted. You can also use the template to find out what images were used in posts besides your own ones by just putting it into an new browser tab and inserting the correct numbers.
    1 point
  15. manuelx981

    Lego Rock Raiders United

    I experienced a few crashes when restarting a custom mission, plus some already known problems written in the Readme (mostly random crashes), but other than that, it's fantastic. Also, I made an italian patch to use with it, it contains all the texts and voices, plus the United Lego.cfg with the italian strings copypasted in from my copy. Custom levels/enemies/etc. remain untouched. I used the latest english United patch as a base. Data ver.: https://drive.google.com/file/d/1Rg0I7sO-2WURa2KzTbpviCivtcmkBVoS/view?usp=sharing Cafeteria ver.: https://drive.google.com/file/d/1mBKXoOQqzN2fUEJ_w9bWF8gZhM0YvCou/view?usp=sharing
    1 point
  16. ArmitageShanks

    Master Chief

    That should be Lego Island 2: The Brickster's Revenge, my mistake. Lego Island was already a successful game when we at DDI got involved with the Lego group. They were happy with the game itself but employed us to put exciting intro and cut scenes together for the sequel, much as we had done with Lego Racers. Sorry for the confusion.
    1 point
  17. aidenpons

    Unused LEGO Rock Raiders (PC) Assets

    Woah, I somehow totally missed this topic! I have no idea how I didn't notice it, but hopefully my input over a year later is useful: In there that shouldn't be: Creatures\Scorpion folder, there's an empty New Text Document.txt which doesn't seem to exist in my LRR installation. What's up with that? Vehicles\WalkerLegs folder, there's another New Text Document.txt which also doesn't seem to exist in my LRR installation, although this one's not empty (just a file list) Missing, I think: WorldTextures\IceSplit contains Ice07.bmp, which has a lightning bolt drawn over the ground tile. I'm pretty sure this isn't used, and Rock07.bmp and Lava07.bmp don't exist. WorldTextures\LavaSplit contains Lava47.bmp which I'm pretty sure isn't used, given it has text on saying "Lava (Not Hot)" Are the Soil textures (Rock01.bmp, Rock21.bmp Rock31.bmp , Rock51.bmp, same for Lava and Ice) unused? I did a quick test and removed them from my test installation and LRRCE seemed to load fine, but you might know more about this than I do and if the game forcibly checks for them anyway Did a quick test where I removed the ground texture from RockSplit and loaded a rock level - LRRCE loaded fine with no crashes, but the ground was white. I have no idea if this is an LRRCE thing, but it seems you could take the soil textures out and the game wouldn't mind, which makes them unused in my books? Technically speaking, LavaSplit\Lava30.bmp and IceSplit\Ice30.bmp are unused - they're the textures for Lava and Ice slimy slug holes, which never appear in any LRR level, only when modded. You could make a case for LavaSplit\Lava45.bmp too, as it's the tile for water, which you never see. I took one out and LRRCE didn't crash when I loaded a level - does this make them count as unused (does LRR crash if you remove them?) Sounds\Streamed\Failure\Failcrys.wav is defined in the cfg as existing but never plays in-game, so it counts as unused, I think . Many files under Sounds\Streamed\InGame, eg: 1002.wav (Erode Works apparently had you find a Granite Grinder?) 1901.wav and many more. A lot (all?) of these are correctly hooked up under the Levels\GameLevels\Level##\##.txt files, but the NERPs never calls for them to play, so they're unused. Also: If you unpack LegoRR1.wad and LegoRR0.wad separately, you'll find under Levels\GameLevels\Level##\##.txt in both wads. These are the files that hold the NERPs messages (eg: "Well done, you found the Tool Store! Now collect five Energy Crystals") The game only uses the one in LegoRR1.wad . The one in LegoRR0.wad is unused/lower priority than the LegoRR1.wad one, and is (totally?) identical save for every message string being surrounded by \[ \] , which seems to have been their in-progress way of demarcating text strings (you can see this in the debug cfg and in Levels\GameLevels\Level16\config.txt ) , but none of this made it to the final build it seemed). I also suspect that the ones in LegoRR0.wad are not localized and remain in English no matter what installation you have, but I as I lack any non-English copy I have no way to test this. So this counts as unused, I think! Everything else seems to be on point! Very impressively done. I can't imagine the amount of effort it took to tediously sift through the chain of ae -> lws -> lwo and see which ones the game did and didn't use. That makes my brain hurt from just thinking about it Well done you! It's also cool to see how much of the data is just duplicates. For instance, all the Teleport Pad icons are duplicated with the other set belonging to an unused "mobile teleport." There's two identical pictures of the notification for "An energy crystal has been found" down the bottom. Even the overlay on the lock-unit scanner (the minimap's alternate, largely useless, functionality) has a duplicate sitting in another folder. Not to mention the entire Pilot folder being copied in World\Shared. And so on... Lastly, it's worth noting that nearly (?) all the unused data for this can be re-activated - for instance, a lot of the unused monster animations can just be swapped in the AE (Hop1Foot.lws is a good replacement for the massively long backflip that happens when you shoot a monster), the unused emerge and erosion maps can be plugged in (albeit some of them really don't match very well and you'll get garbage), and the unused sounds can be hooked up and told to play via NERPs.
    1 point
  18. trigger_segfault

    Chart of all editor ".blx"/".blk" icons used during LRR development

    The .blx and older .BLK map files are not an old .map format (as was originally speculated), but instead are a format that communicates between the level editor used by DDI and the output .map format used by the game. These files contain a set of 16x16 icons, and a pair of numbers that determine how the icons are grouped together in the level editor (such as separating CryOre Crystal/spawn counts from Ore/spawn counts.) None of these discoveries are particularly useful. But... Programmer art is beautiful! Extracted Icons All map type icon sets have been extracted into individual png 16x16 icons, and grids containing all icons (as shown above): The Slimy Slug predug icon is actually pretty great. It looks like a crossing sign.
    1 point
  19. No Username

    Rama Pack v1.0

    Don't change the head textures; if you change out the head models it will automatically pick the matching one. The textures for the car of Gear are in the files; it's the gearv2 one.
    1 point
  20. Jappelsap

    Redesigned LEGO Racers cars instructions

    1 point
  21. trigger_segfault

    NO WADS! or 10 Wads

    I can clarify a bit more on some of the loose ends like the CD priority, and expand on some information: File System Priorities: Data File Reading LegoRR9.WAD - LegoRR0.WAD Working Data folder (in current working directory, which should be your executable directory unless you want to have a bad time) CD-ROM Data folder (in first-located CD drive (`C-Z`) containing the file `CD:\Data\cd.key` (contents don't matter), this excludes Floppy-reserved drive letters `A,B`) Data File Streaming For AVI videos (needs more checking) and Streamed sounds (Sample properties defined with `@` path prefix). Working Data folder CD-ROM Data folder Data File Writing This is seen a few times in assembly, but I don't think any of it is reachable code. (There's some leftover code used to scan the Working Data directory and write a list of relative file names, which was likely used when preparing to build a WAD file) Working Data folder (only) Non-Game Data Priority Music, Saves, etc... TODO. Everything outside the data folder doesn't use LegoRR's built in File System manager, and technically streamed media doesn't either. (Rule of thumb is Working Data is checked before CD-ROM Data though) Misc CD-ROM drives will always be checked for on boot. As far as I can tell from the code, you can throw any data file in any different-numbered WAD file, as long as you're not relying on priority. Higher number WAD files can still be loaded even when lower numbered files don't exist. I have no clue about the machine-specific issue with the blaster though. WAD File Names: WAD file names are determined by the game executable name (without the extension). Renaming the executable to something else means it will no longer look for WAD files named `LegoRR#.wad`, but for `<exename>#.wad`. This is identical to how the root `Lego*` and `LegoRR` properties are handled in CFG-type files (Lego.cfg, *.ol, *.ptl, *.ae). Community Edition & Cafeteria LRR:CE supports WAD files just like the original, as long as they use the same executable name `LegoRRCE`. Cafeteria only outputs a WAD file named `LegoRR0.wad` when rebuilding mods, so this is why LRR:CE only functions when using the "Data method". WAD File Format: This info is entirely useless, but interesting none-the-less. There's one extra feature of WAD files that are never seen, but are supported by LegoRR (and LRR:CE). That being file compression. The WAD Entry metadata structure uint32 version -> flags // (1 = Store, 2 = Compressed) uint32 size -> packed_size // size in the WAD file uint32 size2 -> original_size // size of the file when decompressed uint32 offset In reality, version is a flags field, of which only the second bit (`0x2`) is ever checked. When set, the file is treated as RNC (Rob Northern Compression), not to be confused with the other RNC acronym: "Rob Northern Copylock". Following this, size is actually the packed_size (as present in the WAD file) while size2 is the unpacked original_size. When not compressed, these two sizes must be identical. Using the reversed tool rnc_propack, and creating WAD files with the output (while writing the appropriate metadata), the game still manages to read the game data files as expected... until it tries to read certain compressed .wav files and crashes mid-loading screen... All other file types seem to work fine, though. This means there's at least a few wav files that are read or used in unexpected ways... or the compression/decompression fails at some point. It's also not all wav files, since LegoRR1.WAD is fully converted and contains numerous interface SFX. I managed to get the 2 WAD file sizes down to nearly half their original size using compression. (74MB -> 40MB, and 3.6MB -> 1.9MB). And the game still loads a lot faster with compressed WAD data over using the Data directory method (which is the biggest benefit of WAD files: faster, more compact even without compression, and much less stress on the file system and Windows indexer).
    1 point
  22. trigger_segfault

    In-depth Look at the CFG Syntax

    I'm looking through the LegoRR.exe assembly for how exactly it reads Lego.cfg, and other cfg-like files (.ol Object Lists, .ptl Mission AI, etc.). The basic syntax already makes sense, but knowing the boundaries helps a lot with weird edge cases. There's already been some fun finds. Base CFG Syntax: Back to Extended Syntax Basics The most interesting aspect is that there seems to be almost no concept of lines. All whitespace characters (tabs, spaces, line feeds, carriage returns, and ';' comments) are treated the same, they all separate tokens (i.e. keys, values, block names, and block braces {}). There is one exception, and that is the newline character '\n', which is required to end ';' line comments. All properties (whether the beginning of a property block {}, or a property key value pair) consume exactly 2 tokens from the config file. A property block's "value" is actually the '{' character, while the '}' character is a special case that's consumed but not assigned anywhere. Because every property consumes 2 tokens, missing a property value/key/etc., or adding one too many can throw off the entire file. Double-slash `//` comments are NOT supported... yet they still appear in Lego.cfg if you search for `// ROCK FOG`. And look! This creates 3 tokens which would throw off the file... except it doesn't, because they appear in pairs every time when defining `FogColourRGB` and `HighFogColourRGB`. This essentially removes the `HighFogColourRGB` property, because the parser ends up treating it as a property value and not a key like so: { FogColourRGB = 110:110:155, // = ROCK, FOG = HighFogColourRGB, 155:155:110 = //, ROCK = FOG } Special Characters ';' - Comments, you see them everywhere. Not much more to add to this, other than the fact that these do not need to be separated by real whitespace. If a value has a ';' in it, it will immediately end (although this is never done in Lego.cfg). As an example, this would be 100% valid: `CreditsTextFile Credits.txt;comment`. '{' '}' - On the other hand, block open/close braces must be separated by whitespace, otherwise they will be considered part of the block name, property key, or property value. e.g. `BlockName{` will not count as an opening brace. A token can start with, end with, or have '{' '}' characters anywhere in the middle, as long as the token is at least 2 characters long, it will be treated like a name, and not as a block brace. '*' - The asterisk is used as a wildcard in block/property key names (at the root level only), and is used as a method for defining base information that can easily be overridden. Most notably, this is seen with the root `Lego* {}` block name. If you look at the bottom of Lego.cfg, you'll see the `LegoRR {}` block "; Settings for the final version", Rock Raiders uses the executable name (LegoRR.exe) -> `LegoRR::Block::Path::To::PropertyKey` when looking up configuration values. If you want to change the executable name, make sure the name starts with Lego, and then you can define custom config settings depending in the full name of the exe when launched. Which brings us to the next character(s): "::" - You'll see this syntax with Levels::LevelName, and Textures::Rock|Ice|Lava,. Internally, Lego Rock Raiders uses this to lookup any property or block key. It uses the same syntax as C++'s namespaces. I'm not quite sure how the usage of "::" is done with property keys, as is seen with `Stream_Objective_Levels::Level01 @Sounds\Streamed\Objectiv\MisObj01` and such, it's possible the handling for this is hardcoded. You cannot use double-quotes to include spaces in key names or values. Spaces can only be used for certain non-file-path text by inserting '_' underscore characters. Common Lego.cfg Syntaxes: Common Keywords and Literals Keywords: TRUE, FALSE, YES, NO, ON, OFF, NULL Integer: 25, -100, +32 Float: 0.1, -2.5, +1.0, 60.0f RGB: 255:0:13 (the `#.#f` float syntax is only seen with the 2 `PolyRange` properties. This is, again, a C/C++ syntax) Common Value Delimiters Very often, a single property key will require multiple points of information to fill in its value. There are 3 common characters used to separate this information, however these are only used for certain properties. Many will use multiple delimiters to signal different things. And many blocks will have comments stating how to format said property value. Delimiters: ':' ',' '|' Commen Key/Value Prefixes Three special prefix characters are seen on many property key and value names. These are as-always, used on a case-by-case basis: '@' (values) - Presumably specifies to stream a sound property value (rather than loading it in memory all at once). This prefix is also utilized in the ToolTips section to denote an image name instead of text (however this is never actually used in Lego.cfg, only commented on). '*' (values) - Seen on a handlful of Sounds\ path property values. Purpose is unknown. '!' (keys) - Seen on a handfull of SFX/SND/etc. property keys. Purpose isn't fully understood, but it seems this is used to denote that a property is an "expensive" resource, that can be ignored/excluded when using an appropriate `-reduceX` command line argument. Format Characters (sprintf) A few property values have dynamic information that needs to be replaced at runtime. These property values expect special "%_" format character patterns. More than anything else, messing up these property values can and will crash the game (immediately upon usage). This is because a program will pass in N values to replace N format characters, any difference in number will imbalance the program's execution stack, and immediately start causing all kinds of unexpected behavior until a crash is inevitable. See the printf reference for all existing format characters, however "%d" and "%%" are only ever seen in Lego.cfg. You can change up and replace "%d" with a different format specifier in-some-cases, but beware that it's a bit more complicated than just keeping the same number of format specifiers. "%%" - An escape to insert in a real '%' percent sign. This does not consume one of those N values passed by the program, it is simply the only way to specify a percent sign without causing formatting to occur. "%d" - Insert a signed integer (whole number that can be negative or positive). All Format Usages: Making Use of this Information: Syntax Highlighting for VSCode (WIP) This syntax highlighting is based on information that was only known before going into the assembly, a lot of the edge cases listed above aren't added in yet, but your average cfg file should be as readable as ever. The extension development is available on GitHub, (along with the rest of this research). It's not in any finished state, or on the VSCode Marketplace, but it can be installed by dropping the containing folder, vscode-lrr, into `C:\Users\<YOU>\.vscode\extensions\`. Fixing the ROCK FOG Comments Comparison of changing `HighFogColourRGB` to `255:0:0` without removing the `// ROCK FOG` comments, and with removing them: Changing the "LegoRR" Root Block Name As explained in the section describing '*' block name wildcard characters, the root namespace at the bottom of Lego.cfg is looked up based on the name of the game executable. When put into practice, here's an example of 3 game variations added to a single Lego.cfg file (ignore the fact that I created duplicate WAD files to match the exe names). The following executable-name-specific properties are defined: LegoRR::Main::PowerCrystalRGB 255:000:000 ; RED Energy Crystals for "LegoRR.exe" LegoSL::Main::PowerCrystalRGB 000:255:255 ; CYAN Energy Crystals for "LegoSL.exe" LegoSS::Main::PowerCrystalRGB 000:000:255 ; BLUE Energy Crystals for "LegoSS.exe"
    1 point
  23. trigger_segfault

    In-depth Look at the CFG Syntax

    Finally found the usages for the key and value prefixes (at least for sounds) Key Prefixes: Reduce Prefix: '!' This tells the game that the sound (and presumably any other resource) will be removed with `-reduce____` command-line arguments. This has been tested on sound effects using `-reducesamples`. This will eliminate a large number of tooltip and interface sounds we all known and love. !SurfaceSFX_Medium Sounds\Voices\Surfaces\looserock !SurfaceSFX_Rubble Sounds\Voices\Surfaces\rubble Other spotted uses of this prefix: Probably for `-reduceflics`: Flics { !Score Avi\Capt.flh|121|153|234|327 } Probably for `-reduceanimation`: !MenuWipe Interface\FrontEnd\Rock_Wipe\RockWipe Value Prefixes: I've only researched usages of this for sound at the moment. Though again, the config file states other areas where this should be supported. Multiple Instance Prefix: '*' States a sound can have multiple instances playing at once. If this prefix is not present, and a new sound needs to play, it will cut off any currently playing instance of the sound and start a new one. SFX_Drill *Sounds\drtdrillc Streamed Prefix: '@' Sound is streamed (and it will sound a bit louder). Cannot be used with '*' to play multiple instances at once. When this prefix is not specified. The sound file will be fully loaded in memory, supposedly on boot. Stream_Objective_Levels::Level01 @Sounds\Streamed\Objectiv\MisObj01 BUG: When defining a Sound Group (with ','), the Streamed flag will be applied to all future sounds in a group after the first-listed sound with '@'. (Note: It hasn't exactly been tested if Streaming functionality is even supported with Sound Groups) Reduce Volume Prefix: '#' Reduces the volume of a sound. This one follows a format: #number# Where number should be a whole number between -10000 and 0 (anything else is set to 0). The lowest number will make it silent, while the highest (0), will keep it at the original volume. (this prefix is never used) !SurfaceSFX_Immovable #-100#Sounds\Voices\Surfaces\solidrock Combinations with '#' This prefix can be combined with '*' or '@', however note that the order is important: The Multiple Instance prefix must come before the Reduced Volume prefix: !SurfaceSFX_Immovable *#-100#Sounds\Voices\Surfaces\solidrock Meanwhile the Steamed prefix must come *after* the Reduced Volume prefix: !SurfaceSFX_Immovable #-100#@Sounds\Voices\Surfaces\solidrock POSSIBLE BUG (technical): When parsing the this prefix, it seems the program doesn't properly terminate the number string, which can potentially allow for garbage data to be included in the number. Worst-case-scenario is the volume would be quieter, but it entirely depends on what data was previously in this location. Miscellaneous: Sound Group: ',' This is used a lot in the samples Block to define multiple sound effects that can randomly be selected from a single type of sound: !SFX_Drip Sounds\drip1,Sounds\drip2,Sounds\drip3,Sounds\dripsA,Sounds\dripsB,Sounds\dripsC Different Value Prefixes listed above should supposedly work with each individual sound (the prefixes are parsed individually for each sound in a group). LIMITATION: The game engine only has room for 200 total extra sounds defined in groups. (1 slot is used for each sound defined after the first comma ','). BUG: When defining a second sound (turning it into a group), the first sound's information is overwritten with that of the second sound (which also makes the second sound twice-as-likely to play when more than 2 sounds are listed. You may notice a lot of first-listed sounds that you've never heard before in-game. Listen to groan1.wav or slip1.wav for good examples: !SND_Slipup Sounds\Minifigure\slip1,Sounds\Minifigure\slip2 SND_Groan Sounds\Minifigure\groan1,Sounds\Minifigure\groan2
    1 point
  24. lol username

    Rock Raiders Toolkit - LWO and UV exporting in Unity

    https://github.com/Terrev/Rock-Raiders-Toolkit This is a Unity toolkit that exports models to .LWO, and optionally .UV as well. It means you can author Rock Raiders models free of LightWave, and use proper UV mapping for the first time since none of us have UView (and who'd want to use it these days anyway?). You'll probably just want to use planar textures most of the time though, as you'll see later... Why Unity? So I didn't have to do a bunch of model importer and UI work, and cause there's been success using Unity for these sorts of things before (The Legend of Mata Nui - I made a dumb level editor for it - and someone also made a level editor toolkit in it for Dark Souls). Also, I *might* eventually look into LWS animation support, which could use Unity's built-in animation tools. No promises if that'd even work though. We'll see. TUTORIAL, PART 1: SOLID COLORS + PLANAR TEXTURES First, download Unity. https://store.unity.com/download?ref=personal Then download the toolkit - here's a direct link to a zip of it: https://github.com/Terrev/Rock-Raiders-Toolkit/archive/master.zip Open the project folder in Unity, and off you go. (You'll probably have a newer version of Unity than the version last used for this project - that's fine, it'll automatically upgrade it.) Once it's open, load the scene called... uh... "Scene". This scene has some lighting settings that I find convenient for this, already set up. (Default scenes in Unity have yellowish directional lighting and blueish ambient lighting, etc, to mimic an outdoors environment. I prefer to work with plain white lighting for this.) The default Unity layout will look a bit different from this - I prefer the Tall layout (Window -> Layouts) so that's what you'll be seeing here. Oh, I also prefer a one-column project tab. Anyway. Let's import our custom model. Make a new folder for it in the Project tab (use the + icon), then click and drag it in. (Note that if your model has textures, they must be imported at the same time as or before the model for Unity to assign them properly. Otherwise you'll have to manually assign them later.) You'll also want to make a "Materials" folder inside your new folder (it can be named anything, really). Then, in the model's import settings, click "Extract Materials..." and select the Materials folder you made a moment ago. This will expose all the model's materials for you to edit. Select them all, and change the shader to Rock Raiders. You can also change the shader to Rock Raiders Transparent - there's no difference between the two when it comes to saving a LWO, it only affects how they're displayed in Unity. The transparent version of the shader will just display transparency in Unity, while the other one won't. Now click and drag your model into the scene. The position, rotation, and scale it's at in the scene will be applied to the final exported model, so if you drag it directly into the 3D scene view, make sure you set its position to 0, 0, 0. Most models in Rock Raiders have a basic 1x1 LEGO brick as 2.5 units wide, and a plate is 1 unit high. (Some things, like minifigures, are scaled differently in their LWOs, then brought into scale with the rest of the game by other means such as their animations, so you'll have to compare to vanilla models to get the right size.) The model I'm importing here - a custom Electric Fence - is originally built in LEGO Digital Designer and then converted/exported to OBJ. In LDD, a brick is 0.8 units wide, and a plate is 0.32 units high (it's based on real life measurements in millimeters). So to bring it into scale with Rock Raiders, we have to scale it up by precisely 3.125. Now, let's set up planar textures. This is by far the most common texturing method Rock Raiders uses. The idea is you'll project textures from either the X, Y, or Z direction, like a film projector on a screen, and you can adjust the size and position of it. These will apply per material, so that's why I gave the tiles we want to texture their own unique materials on front. Import the textures you want to use, if you haven't already - I'm just using ones present in the vanilla game. Also assign them to the materials if needed. Don't really worry about how they look in the editor; we'll be setting up their size/position in a moment. But what values do we want for Texture Center and Texture Size to make it look right? Go to the Rock Raiders menu up top, and click Add Planar Texture Helper. Also do Add Measuring Tape - we'll use both together. Select the things you just added in the hierarchy tab, and move them wherever. To use the measuring tape, select an end of it, then press and hold V to use vertex snapping. Grab it by the bottom vertex of the pyramid, and snap it to a vertex on your model. Repeat for the other side, and voila! You can measure how far it is from one vertex to the other. You can also look at the Measuring Tape script on each of the ends to see the distance in case it's hard to see in the scene view, or automatically align the ends on an axis. With a couple measuring tapes, we can see the area we want to align our texture to is 2.5 units high and 5 units across. If you remember the standard Rock Raiders scale mentioned earlier, you may not have even needed to measure it. So let's change the scale of our planar texture helper to 5 on x (width), and 2.5 on y (height), and vertex snap it to the tile. Then, drag the material you want to set to this size/position into the Material slot in the Planar Texture Helper script, and click "Apply to material". We'll also do this to the material for the tile on the other side - we don't even have to move the planar texture helper in this case, since they're aligned on the axis we'll be projecting from anyway (z). If you look at the materials now, you'll see the values we want have been copied over. You can also change the axis the texture is projected from here - tick the box for x, y, or z. (The first one checked will apply; if none are selected it defaults to z.) You won't see how the planar texture will truly look in-editor, but if you use the planar texture helper, you should know what to expect. You may also have to make rotated/flipped copies of textures sometimes to make them face the way you want, as the original developers did - that's just a limitation of planar textures. Let's do some finishing touches, making the neon green bits transparent and luminescent. Now let's save it as an LWO from the Rock Raiders menu! It will export an LWO of whatever object you have selected, and its children. (This means you can also combine models by making them the child of the selected object; click and drag one model into another.) If nothing happens, look at the log - chances are there's a material in the model that doesn't have a Rock Raiders shader, and it'll let you know there. The Rock Raiders shader is needed so materials can have all the info needed for the LWO. And here's the model in-game! TUTORIAL, PART 2: UV FILES You can also save a UV file along with your LWO. This lets you use the UV mapping from the model instead of planar textures - for example, here's Sparky's head from LEGO Racers 2 ported to Rock Raiders: This method comes with various restrictions, however. Which rolls into the next section. TUTORIAL, PART 3: THE FINE PRINT (WAIT THAT'S ALL FOR PART 2?) Yeah. So here's some quirks, limitations, and other bits of trivia you should know about: The color value is entirely overridden by the texture in-game, if the texture is present. In Unity the color will tint the texture, they'll be blended together - that's just because I'm not actually sure how to mimic the logic of how the game does it with shaders in Unity (if that's even possible lol). Be aware that the "diffuse" value simply darkens the surface as it approaches 0. This is different from a lot of other programs, where "diffuse" is what the color value is called. Go ask the LightWave folks why, I guess (though apparently they outright removed it in later versions of LightWave). Additive Transparency means transparency is determined by the brightness of the color, where black is entirely transparent. This is most commonly used with textures, for things like smoke particle effects - so only the lighter, colored portions of the texture are visible. It technically does work with solid colors/no texture though. The Transparency slider is only for use without textures - if combined with a texture, it won't look correct. There's another method of doing transparency in Rock Raiders, where a single specified color is treated as transparent and everything else is not - this isn't handled in the LWOs though, but instead, the texture names. "Texture is a sequence" is for use with, well, sequenced textures. It simply adds the " (sequence)" text at the end of the texture path. "Write relative texture paths" probably doesn't have any effect, but let me know if you find out that it does. It has an effect in LWS files regarding the shared folder, but I have yet to find an effect in LWO files - the game seems to check the local folder for the texture, then the shared folder, regardless. I'm including it just in case. Pixel Blending controls if the textures appear smoothed out, or pixelated (think Minecraft). See this topic again for examples. If a texture is specified, but the game cannot find it, it will treat it as though it's using a solid white texture. Using a UV file will make every material on the model use a texture. If you haven't specified a texture for a material, but use a UV file, the game will see it as a texture it cannot find, and that material will be white in-game. (This actually happens on one of the Lava Monster legs in the vanilla game - one of the texture paths is just "null". Look at their legs as they walk and you won't be able to unsee it!) This means if you want a simple solid color on a UV mapped model, it'll still have to use a texture. This also means you can't use the transparency slider properly with UV mapped models, since everything requires a texture. If a model has no defined UV coordinates, but a UV file exported, that geometry will be given default UV coordinates of 0, 0. Using a UV file will force pixel blending to off; all textures on the model will be pixelated. This seems like either an oversight, bug, or something they were just okay with (the only prominent models in the vanilla game to use UV mapping are the lowest poly Rock Raider, and the Lava Monster). Seams/splits in UV maps will cause hard edges in the shading wherever they lie. This only applies to UV files, not planar textures. It's a pain in the ass. See the screenshot below, and the second reply in this topic for an explanation of why this happens. There's probably other quirks and limitations that'll be found as people play around with it more. Have fuuuunnnnn~
    1 point
  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • 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.