Haven't posted anything for awhile, so I figured I'd give an update on what's been going on this past month.
After I finished my .OBJ loader, I decided to rewrite the code that loads the Chunk files. I believe the proper terminology for these files is "Spooler", or a "Spoolable Resource" - it's basically a type of memory streaming that allows the game to load only what it needs without loading the entire file at once and keeping it in memory. When I first wrote a basic loader for these Spoolers (which is what Antilli currently uses), I never took into account flexibility. Exporting was thrown together in a day or two, and only to the point where it juuuust barely worked. This hackish code created many problems for me, and also takes up a lot of memory.
A rewrite was inevitable, so I spent a week or two trying out different methods of loading the spoolers. I think the system I have now works pretty good - it doesn't take up a lot of memory, performance is good, and I now use temporary files to store all of the data. This does mean, however, that opening big files means the temporary directory will increase in size. I think DPL has the biggest file I've encountered thus far - "nyc_vehicles.sp", weighing in at a hefty 700MB+! As long as you have enough space on your hard drive, this shouldn't be a problem. I might be able to add a simple check to make sure my tool isn't going to blow up your computer
Another important thing I hadn't taken into consideration before was the alignment of the spoolable data. If you're interested in what it is, have a look
here. It is extremely important to determine what alignment the developers wanted for that particular spooler. If it's not aligned properly, the game might crash! I wrote some code that calculates the alignment of a spooler, which works out good for the most part. The developers weren't perfect in their work, so there's some inconsistencies for exporting files. I've done my best to work with these and have not had any crashes so far.
The reason things have been taking so long is because I don't want to limit myself to just Driv3r. That was the game that got me up and on my feet, but not everyone wants Driv3r. There's 2 other games just waiting to be modified, and right now I'm the only one who's capable of doing so. I don't have a team, but I do get a lot of help, especially from Klancnik. One thing I haven't done yet is include the long list of "Special Thanks" to everyone who has helped me this past year. If you're one of those people reading this, I haven't forgotten about you! Thank you for everything!
This past week or so, I've been messing around with reverse engineering Driv3r and DPL. Trying to figure out what makes them tick. I've done some pretty cool stuff - here, have some pictures!
The first few pictures show some hidden debugging features I found in Driv3r that might be useful in the future. The other ones show the result of me changing what I call the "Traffic Pool", which is just a list of car IDs that should spawn in traffic. Unfortunately, I later found out that the game actually doesn't load all of the vehicles at once, so if you replace a car that wouldn't normally show up, it won't spawn at all. I don't know if this is fixable or what controls it, but it's something.
In other news, I've also created my own IMG Unpacker. IMG is a format used on PS2 by Reflections. I found out how the Stuntman Unpacker works and managed to implement support for all IMG types - IMG2 (Stuntman NTSC), IMG3 (Stuntman PAL), and IMG4 (Driv3r/Driver Parallel Lines). I think IMG4 has the filenames hidden somewhere else, so for now there are no filenames. In the Driver: Parallel Lines demo,
I found the motherload! For someone like me, that file helps a lot - it helps me understand how the files are called by the game, I learned that the game engine is called "Hamster", and just lots of other cool stuff!
If there hasn't been a lot of Antilli progress lately, it's because I've been busy opening more cans of worms than I can handle. Just one thing after another - a new idea, a new project, lots of thinking, rewriting - it's very time consuming. One day, there will be either one large modding tool to cover all of your modding needs (like OpenIV), or a suite of modding tools with different purposes. Personally, I like to keep my eggs in one basket, so don't be surprised if Antilli becomes more than I anticipated it to be!
With all of this said, if anyone has any cool ideas they'd like me to try out, let me know! I'm always open to suggestions! I notice some of you here tend to drop by once in a while to see what's going on, and I'm always thinking of you guys - it's what keeps me motivated and gives me the drive to continue working. It'd be cool if we could all interact with each other more and share ideas - that's what this community is all about, and I participated in something similar back in the day when Driver was just first getting its modding tools. After seeing what Jeff did with his tools for Driver, it inspired me to make my own tools. Who knows what would've happened if Jeff never came around...maybe I wouldn't be a programmer today, maybe I would have.
As I always say, the best way to contact me is Skype. It's pretty rare to find me offline on Skype. Why not join the madness? I share tidbits of information occasionally on our Skype Channel - come join the fun!
To those of you who have been patiently waiting - it will all be very, very worth it. Thanks for your continued patience!