I'm really tired of this. Between the trolling that's gotten out of hand and the entitlement issues some of you have it's gotten pretty ugly. It was fun at first but this whole thing has shamed just about everyone involved. I'd really rather not do anything to benefit those whining about not having the method because they didn't even try. Tyler might've tried but with shit like this
he doesn't rate that high either. Some of the spamming has gone too far and since we've been releasing maps left and right I have little inhibition anymore. I'd have preferred to just leave it at tutorial.map since I don't have any problems with the copyright issues related to that map. It's basically a freebie anyways. I wish I was giving this information out to advance the collective knowledge that people would take and learn from but from what I've seen that's not going to happen. So I'll also give you guys the application that was developed in addition to the information. The program is refined enough that you probably wouldn't have been able to figure out the process from it's results anyways. That and a couple of glitches in the working version we used added some unnecessary data that would've thrown the enterprising reverse engineers off track. I know this can be used to not only rip CE maps to demo but it'll also work to convert full maps. I can't really do anything about it. Once something like this is discovered it's either pretend it doesn't exist or release it. Eventually these things do get released. Information can either be kept secret or given away completely. There's no way of containing that information in such a way so that only responsible people can have it. There's no way to revoke that information if someone abuses it. Obviously we haven't chosen to bury it or you wouldn't know we existed.
So the method is really simple. It's just a three part process to get it to work, and a bit extra to get it perfect. Part one is obvious, change the header to demo. If you actually know how to do these things correctly and not just copy and paste the 0x800 bytes from the beginning of bloodgulch.map. Parts two and three have been the source of a few puns by us guests. The reason is magic. Part two is to change the index or primary magic from full to demo. In every full and CE map the magic value is 0x40440028. Check the header where it points to the index. The first 4 bytes of the index are the primary magic and are always the same. The map magic is just the primary magic modified by the size of the map. Anyways, the demo magic is always 0x4BF10028. A difference of exactly 0xBAD0000. Of course with the magic changed it's necessary to update all of the reflexives. Trial HMT works on the same principle. It rebuilds maps using the demo magic as opposed to HMT which always builds maps using the full version magic. Neither of them check the existing map to see what magic it originally had. Part three is similar. If you had to change the magic that relates to all of the tags, then it would make sense to modify the magic for the BSP. Every BSP has a unique magic value that along with size and location are stored in the scnr tag. That magic is used for the many reflexives in the BSP section. It's slightly less obvious how to fix the BSP magic since there's no universal value stored in the map. But once you realize that the difference in magic between different BSPs is related to the difference in size of those BSPs it becomes simple to figure out. For full and CE the BSP magic that is always 0x41B40000 - BSP size in bytes. For demo it's always 0x4D610000 - BSP size in bytes. Again a difference of 0xBAD0000. Again all of the reflexives in the BSP have to be updated to use the new magic. It's really that simple and boring. Doing that will have a horrible sounds, corrupted bitmap but fully playable map for demo. Yes this same process works for full to demo as well.
The program obviously does more than that. It replaces as many bitmap and sound tags as it can (that are not internalized) with demo versions. Any left over bitmaps and sounds that are not already internalized are first replaced with full version tags so that the bitmap and sound data can be used. It then goes into the sounds.map and bitmaps.map files and internalizes that data into the map. Properly I might add, sticking it in between the BSP data, and the raw model data. As you can probably guess it requires full version maps to do the conversion. It handles protected maps and doesn't break any dependencies in the process but those conversions don't work anyways. Might be because it doesn't use the data for the encrypted strings and deletes that or it might be for some other reason. I'm really not interested enough to find out and fix it.
Download: http://rapidshare.com/files/135144488/Q ... e.zip.html