Leaderboard
Popular Content
Showing content with the highest reputation on 07/20/2014 in all areas
-
Dr. Kilroy
Rock Monster and 2 others reacted to BadDream for a topic
These are 100% custom. This overwrites smile head with orange hair, white racing helmet, blue jacket with star and red legs (don't put PLAYER FIVE LEGS.MIP if you don't want 2 green legs pair in your character builder). PLAYER FIVE FACEs goes to: characters/heads/textures. PLAYER5.MD2 goes to: characters/heads/models. PLAYER FIVE LEGS.MIP and PLAYER FIVE TORSO.MIP goes to: characters/bodies/textures. Remember to backup your files! Download3 points -
DO YOU NEED SOME HELP
The Ace Railgun and 2 others reacted to Shadowblaze for a topic
https://www.youtube.com/watch?v=Kq4XlauEwfE3 points -
Unreadable BMP files
Andrey Mashinistov and 2 others reacted to shinyquagsire23 for a topic
Well, it seems I've forgotten about this place once again. Sorry for the random disappearance, this was literally just a small one-day project idea which I had and I kinda forgot about it. Although coming back to it, I really want to figure out how this stuff is compressed and stored, as well as the sounds since they seem to use compression as well. I might work on it tomorrow if I can and get to the bottom of this format. If I can get some sort of idea of how this format works by comparing the bitmaps I extracted vs the compressed versions, I might get somewhere. EDIT: Some things I'm noticing after getting a more fresh view on things: The first value in the header seems to be a 32 bit unsigned value, denoting something in terms of length (ie uncompressed size/decoded size). Depending on the file, this value gets marginally larger or smaller (ie the train carts and sounds have much larger values than things like houses and whatnot which only have one frame or many smaller frames) The table at 0x408 seems to be a sort of lookup table, with each value being 32 bits long (4 bytes). The amount of entries in this table from 0x408-0x808 come out to 256 entries, or multiplied by 4, 0x400 bytes. As for what looks up entries in this table, I have a small feeling that the data at 0x808 is just a bunch of byte values referencing this table to make a set of data to be read. Don't have anything official yet, but I do believe that this is a very good hunch considering that while I was messing with the values everything was seemingly random despite the values only being messed with by a tiny bit. This could expain that. It also could explain how this format could be used for sounds as well since this area has been confirmed to not be a palette, but rather a sort of 'palette' of 32 bit values available to use. Again, not entirely sure at this point, but it seems to be a good hunch for now. Once the bitmaps are decompressed, it might be possible that there's another bit of fluff to go through to figure out what format the uncompressed data is in. I'm praying that it's just an uncompressed raw 8bpp bitmap, but with how things are going that might not be the case. I'd also like to test this against sounds as well since it might be easier to figure out the sounds vs the images since sounds are more likely to just be raw data. EDIT 2: I think the table might be in a slightly different format than I thought initially. I'm thinking it might actually be a sort of table which specifies bytes and the number of repetitions of that byte, perhaps in the format <byte> <repetitions> <byte> <repetitions> EDIT 3: I think I'm getting somewhere with this. I'm doing comparisons between the ripped version of house12.bmp I have vs the house12.bmp which is compressed, and it seems to be that I'm somewhat correct. I counted 305 transparent pixels before reaching actual data, and based on the number of 0x55 bytes present at the end of the file, if you counted them and multiplied by 4 you'd get 304. If you add in the other 05 prior to the 55 array it might equal the 305 we're looking for. Now, since each entry in the table is (gasp!) 4 bytes long, we might be able to assume that one of the two hypothesis I had are correct. I'm actually placing my bets on the byte + repetitions because it seems that it would make the most logical sense seeing that every other byte is usually less than 4. EDIT 4: This might be, once again, a little more complicated than I thought. I almost wonder if it's not even a compression format but just an encryption format or something, because this format is used on just about everything from bmp's to wav's even to a file called ee.ini. Honestly at the moment I think that this so called ee.ini might be my best bet on cracking the format since the wav's and bmp's could be under another layer of proprietary formatting, while an INI is a little more easy to guarantee what it will produce. I might actually be able to find a copy of the uncompressed version in RAM while the game runs, or find out how it's uncompressed and go from there. Since it's an INI file it's probably easier to track down than other files. The main issue I've run into is that the data at 0x808 can have values over the length of the table. The table obviously seems to have values used to create the uncompressed data, but I cannot figure out the exact relationship. EDIT 5: Apparently there's an uncompressed EE.ini. Might try to do some comparisons here... EDIT 6: The values used in the table at 0x404 consist only of the values used in the INI, albeit in a slightly different order. However, every value is there. EDIT 7: Not much real progress so far, but, I have found the file loading function in IDA. Apparently the weirdly formatted files are actually supposed to be handled through the resource file extractor. Oddly enough, it was mentioned once by Cyrem, the guy who made the extractor: Luckily I actually found the check for compressed and uncompressed files, so now it's just a matter of reverse engineering the function which decompresses the file. If anyone's curious, the file header is formatted as such: <32 bit word: amount of space to malloc, aka file size> <8 bit byte, something with decompression/compression> <8 bit byte, if 1 file is read as compressed> All compressed files are normal files underneath, with normal file headers and easy-to-edit stuffs. So once I can write a decompression program you can keep the files uncompressed for as long as you please. EDIT 8: This compression... I literally can't even. It's the weirdest compression I've ever seen in my entire life. It might be because I'm looking at in in assembly but I have no idea how I'm even going to attempt to recompress any of these files. Decompression maybe, but how in the world does this work... EDIT 9: Witchcraft. That is the only answer here. Pure witchcraft. EDIT 10: Success has been had. Documentation and a tool will be coming shortly... EDIT 11: While I'm still kinda messing with things, here's an image file I extracted of the launchpad in it's full frameset: This was actually one of the ones I was having difficulty ripping manually. I'm not sure if this is an error with me adding a header to the headerless bitmap, but one of the frames seems to be cut in half on each end for some reason.3 points -
RRU Quotes 2: Reckoning
Zephyria and one other reacted to Cirevam for a topic
[10:44:49 AM] Cyrem: I was hoping to amass car and landscape wallpapers which I usually get off there... seems I have just amassed boobs.2 points -
RRU Quotes 2: Reckoning
Quisoves Potoo and one other reacted to aidenpons for a topic
@ Ayliffe : (18 July 2014 - 09:55 PM) I have come up with a theory about Shadowblaze's country. @ Ayliffe : (18 July 2014 - 10:04 PM) (probably) @ Shadowblaze : (18 July 2014 - 10:08 PM) I'm listening. @ Ayliffe : (18 July 2014 - 10:29 PM) Whenever someone guesses his country correctly, he moves instantly to the country next door so we're always wrong @ Ayliffe : (18 July 2014 - 10:31 PM) And his house probably has robot legs on the bottom powered by dubstep2 points -
LEGO LOCO Decompression Tool
Jack Bluebeard reacted to shinyquagsire23 for a topic
Greets all, So it's been a while since my initial research on the "mysterious bitmaps" from LEGO LOCO, and after a small splurge of research and coding I finally figured out this mysterious format. First and foremost, the format used by the bitmaps is not bitmap specific at all, it's a compression format used by any and all files which appear to be 'unreadable'. The loading order of the game appears to be as such to detect the difference between the two types of files, compressed and uncompressed: Find requested file If it doesn't exist, return 0 If it does exist, request a file handle and copy it to RAM Check the value at 0x5. If it's 0x1, it's compressed. Otherwise, return RAM offset of already copied file Load 32 bit word at offset 0x0, malloc that amount of space Pass compressed file and malloc location to decompression function Now for the good stuff: The compression format and the entire file format demystified. The file is stored with an 8 byte large header and as large of an actual file space as allowed (limited to highest 32 bit value in this case). While the file is being decompressed, the file is considered to actually start at byte 0x8. The file is divided into two parts: The table and the data. The table is technically only 0x400 bytes large starting at offset 0x400 (0x408 with the initial header), but it can extend larger if needed. The data goes as large as needed. The data and table itself use a Huffman compression method, with the table being the Huffman tree and the data being the binary array. The word value at 0x4 in the header determines the seed position in the huffman tree. The seed position is multiplied by 4 to get the actual offset of the seed. This offset does not include the header. Once the seed is loaded, each 32 bit word is loaded from the data and is divided by 2. If the far-most right bit was a 1 before division by 2, the next tree offset is shifted by 0x2. The next offset is determined as such: (((seed * 2) + flag) * 2). A 16 bit value is then loaded from that offset and used as the next seed. If this seed value is less than 0x100, it is interpreted as a byte and the byte is written and the seed reset to the bottom of the tree. This processes is done continually until all bytes have been written. If that was a bit difficult to grasp, you might be able to tell it a little better by viewing the source code of the decompression tool. With that said and done, the compression tool. It's written in Java and is executed from the command line using java -jar locodecomp.jar <infile> <outfile>. You can download the precompiled version here or view the source code on my GitHub here. The source code is fairly straightforward so if anyone wants to port it to any other languages feel free to do so. As a note, I included a small bitmap fixer which can patch in a header for certain bitmaps. How it works is it takes a blank bitmap header and stitches certain pieces of the raw bitmap together to form a readable bitmap. Since the bitmaps are a bit inconsistent in terms of defining width and height in the raw file, it calculates it using the .dat file associated with it. The width and height can be adjusted in a hex editor. Since it uses .dat files to get width and height, it usually only works with buildings due to the buildings being the only bitmaps that define it's size inside the .dat file. For sounds I'm not sure what header information is missing, but I do know that most of the sounds can be played in Audacity by importing it as a raw file and changing the format to use unsigned 8bit PCM and a frequency of 22050. Questions, comments, concerns? Feel free to let me know. I'm pretty excited for this myself since if we can convert all the bitmaps to a normal format we could potentially open up more expansive modding between the bitmaps and the .dat files.1 point -
A TFOL's Response to Greenpeace's LEGO Petition
ticketstoloservile reacted to Brigs for a blog entry
A TFOL's Response to Greenpeace's LEGO Petition By Brigs Generally, I don’t waste my valuable time on petitions senseless as this one. Nevertheless, this fallacious pile of KRE-O has gained considerable circulation in the LEGO Community, and thus merits a well-articulated response. https://www.youtube.com/watch?v=qhbliUq0_r4 http://www.greenpeace.org/usa/en/ Let’s break this down piece by piece, starting with the video itself. When the video begins, you will notice the title and background music references the LEGO Movie and its incessant song, “Everything is Awesome.” This is an ironic choice for Greenpeace’s assertions, since the benevolent Octan Corporation, LEGO Town’s fictitious “Big Oil” company is portrayed in an antagonistic light in the film, and has certainly received more publicity than any Shell promotional polybag. As the video proceeds, you see the inviting Arctic animals, a fisherman, hockey players, and… Halo’s Master Chief. Following a panoramic view of the new wave of LEGO City Arctic sets, the video changes tone as the viewer first notices a Shell chemist, tanker, and finally, a menacing oil platform, recycled from a Cars 2 set, which notably had a rather preachy message about “Big Oil.” But the most infuriating and stereotypical elements of the film are yet to come. The “executive” Minifigure can be seen smoking a cigar (with a “no smoking” sticker visible behind him, no less.) At the bottom of the oil rig oozes a depressing black liquid. This “oil spill” slowly consumes the LEGO world and its inhabitants, including the distinguished Emmett and Wyldstyle, until only the Shell flag unscathed. Any objective AFOL will notice Greenpeace’s clear appeals to emotion, specifically fear for the vibrant LEGO world and anger directed at Shell and the LEGO Group’s “association.” We’re just getting started. The description contends to surpass the ludicrosity of the video itself. “We love LEGO. You love LEGO. Everyone loves LEGO. But when LEGO's halo effect is being used to sell propaganda to children, especially by an unethical corporation who are busy destroying the natural world our children will inherit, we have to do something.” Greenpeace apparently needs to check their definitions. Of course colorful plastic bricks and smiling Minifigures have a welcoming aesthetic. But these allegations of the LEGO Group propagandizing on behalf of Royal Dutch Shell plc are not only extreme, but absurd. Children playing with an oil tanker or gas station are not being brainwashed that “Big Oil” or environmental pollution is good. They are merely delivering the LEGO citizens with gas to power their trucks, spaceships, and racecars. These loaded accusations of propaganda are so laughably ironic one could easily mistake this as a work of satire; especially for a claim that can easily be thrust upon Greenpeace itself. “Children's imaginations are an unspoilt wilderness. Help us stop Shell polluting them by telling LEGO to stop selling Shell-branded bricks and kits today.” So what is the objective here? By the LEGO Group from discontinuing Shell gas stations and race cars, converting LEGO City into eco-utopia, will the Minifigures suddenly become enlightened and band together against a tyrannical CEO plotting to destroy their way of life? To quote Lord Business, “that’s just a bunch of hippy dippy baloney.” I am not here blatantly supporting Shell, or “Big Oil.” There are risks involved in any drilling operation, which can potentially be catastrophic on the ecosystem. LEGO Bricks themselves, composed of Acrylonitrile Butadiene Styrene, are partially derived from oil. The LEGO Group is renowned for its environmental awareness and responsibility, and by next decade will be completely sustained by renewable energy. The issue is not the LEGO Group, nor necessarily Shell, but Greenpeace’s exploitation of a responsible corporation and its politicization of a legitimate concern. Humans must be thoughtful stewards of the world, and potential threats to the environment merit the discussion. Of course businesses will try to make money, and in doing so may jeopardize the environment. Royal Dutch Shell has been endeavoring to create a drilling operation off of Alaska for a few years now, but has postponed until the safety of the operation is elucidated. This issue of drilling in the Arctic should be resolved between Shell and those concerned about environmental safety, but they should leave the LEGO Group out of this. If Greenpeace wants to preserve the “unspoilt” imaginations of children and leave a positive impact on our world, it can start by repudiating this political gobbledygook and withdrawing this petition on the front page of the Greenpeace website.1 point -
LR2 Fun Facts and Tips
BadDream reacted to Fluffy Cupcake for a topic
Fun Facts: There are skid sounds for different surface types, but only one is used globally, gravel. There is a unused fanfare called CARUP which sounds similar to the fanfare when you get a car bonus. (Unused feature anyone?) In Time Trial mode, your vehicle speed increased by the equivalent of 0.5 of a power upgrade. Those random curb bricks you find in the water, lava, and other random places were not accidents, they were intentional! You can glitch underwater in water bordered worlds by riding the Corkscrew Professor Voltage was planned to be in this game, but instead got replaced by Sparky. The Lighthouse Keeper who is only found in the bonus game still has dialouge for outside the bonus game, it is just unused! The game devs didn't care if this game was for kids, they used vulgar language in the comments of scripts! Tips: You can get a race startup boost by holding down the acceleration key/button starting from the last red countdown light. Having trouble beating The Berg? Just after the checkpoint in the first small cave, head up the exit slope and take a left over the curb, you can cut the track and get a lead on The Berg! The AI racers won't fix their vehicle if it is 50% damaged or more. Use this to your advantage and hit them with a weapon that can do 50% damage right after the area of the repair pit, they won't turn back! The Stealth weapon doesn't just allow you to dodge blood hounds and see what weapons other racers hold, you can steal the weapons too by having contact! You can shoot a Bloodhound that is following you with the Slizer Disc. As soon as you hit it, the missile explodes, but the disc will stay intact, allowing you to hit another target. Shooting a car that is just coming out from repair pit will lose some of their bricks that have already been placed down, and the other bricks that are still coming in will be placed in mid-air. On-foot racers can steal weapons from cars, but cars can't steal weapons from them. Have anything else to contribute? Then by all means tell me!1 point -
Batty
aidenpons reacted to Fluffy Cupcake for a topic
Because I was bored and had the song stuck in my head? Yeah, that sounds about right.1 point -
Use Any Track as the Test Track
JrMasterModelBuilder reacted to le717 for a topic
This tutorial assumes you already know how to >access and use modded versions of the LEGO Racers game files and have downloaded WillKirkby's >LR1 Binary File Editor. As the title suggests, it is possible to use any of the game's existing tracks as the Test track. Here's how to do that. Note: All line numbers refer are based on a clean, unmodded file. Load the Binary File Editor and open MENUDATALEGORACE.RCB Scroll all the way to the bottom of the file or press Ctrl + F and search for the word "test" (with or without quotes, both will work). You should end up at line 426. The Test track's location and strings are located in this small structure. k_27 // Track "test" { k_2B // Name Index (/MENUDATA/<lang>/CIRCUIT.SRF) 16 k_29 // Folder (/GAMEDATA/<this>/) "test" } As can been seen from the comments the tool adds, the string "test" (line 447) below the k_29 keyword (line 446) controls from what folder the Test track files should be loaded from. If we were to take a quick peek at the GAMEDATA folder, we would find there is a folder that has the same name. To use any of the available tracks as the Test track, we simply need to change the string to be the same as any of the track folder names. If wanted to practice on Rocket Racer Run for example, the same code would now read as so: k_27 // Track "test" { k_2B // Name Index (/MENUDATA/<lang>/CIRCUIT.SRF) 16 k_29 // Folder (/GAMEDATA/<this>/) "racec3r0" } You can also enter "RACEC3R0" (matching the case of the folder). I have tested both and either work. It comes down to personal preference, but I lowercased the name for consistency with the rest of the file. Be sure the folder name is surrounded in a single pair of double quotation marks! Single quotation marks will crash the Binary Editor, multiple pairs will not work at all, and omitting them all together will halt LEGO Racers with an error message. Save the file and load the game. If your edit went well, you should now be able to practice on your favorite "Test" track! Demonstration video coming soon!1 point -
A TFOL's Response to Greenpeace's LEGO Petition
noghiri reacted to McJobless for a blog entry
TLG actually did make Shell sets...about 20 years ago. My Dad (and by extension, I) own a LEGO Shell fuel station. They didn't last long though. Nowadays, the only mention they get is associated with Ferrari, and IIRC that's only in their F1 sets.1 point -
A TFOL's Response to Greenpeace's LEGO Petition
noghiri reacted to aidenpons for a blog entry
I'm not quite sure what has happened with the status of the video: when they first had Emmet and Wyldstyle in it, it was taken down by Warner Bros. for using a trademarked minifigure... or something. It was interesting to read the comments. a) There were hordes of them, and probably when I'd finished a page another would pop up. b) About 1% of the comments were "yes i must stop supporting lego they are ruining the arctic pls help," about 60% were 'This is absolute rubbish' (and about one quarter of that 60% made a long rant about how it was rubbish, and half of that quarter said 'Lego comes from petroleum. Imagine how much petroleum from the Arctic you'd need to make that video... hypocrites' ), 15% said 'You're right, Shell shouldn't be drilling in the Arctic, but why take it out on a toy company?' and the remaining 14% I have failed to allocate accurately. What even is Lego doing with Shell anyway? Last time I checked it was just a bunch of Ferrari sets - oh yes, that's what that 14% was - saying 'Lego isn't partnering with Shell - it's partnering with Ferrari. I recall having a long talk with Ayliffe and Ayliffe Arthuriel about this; I think Ayliffe completely smashed their argument on their blog or somewhere and I can bet you he'll find the link.1 point -
1 point
-
Colorful Raiders
STUDZ reacted to McJobless for a blog entry
https://www.youtube.com/watch?v=Qn977W9HjWM1 point -
Colorful Raiders
STUDZ reacted to Cyrem for a blog entry
and the ugliest color scheme award goes to....1 point -
RRU Quotes 2: Reckoning
dead_name reacted to McJobless for a topic
[5:47:21 PM] McJobless: Do you think there's a certain type of lamp you have to rub to make Kir(k)by or Addict appear? [5:48:48 PM] Alcom1: Kirkby's is a flourecent desk lamp with a USB cable. Addict's is actually a torch. [5:49:13 PM] McJobless: I may have just dump()'d.1 point -
1 point
