Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Test Subject
Original Poster
#1 Old 15th Sep 2008 at 7:34 PM
Default A tool for bundling package files into one package
Hi! Has anyone come up with a tool yet which can combine download files into one package file? Been looking for something like this forever & hopefully someone will have a helpful answer to this!

Thanks!
Advertisement
#2 Old 15th Sep 2008 at 7:55 PM
Haven`t seen one. I`ve been thinking myself that this would be nice to have.
Warrior Gryphon
site owner
#3 Old 15th Sep 2008 at 9:58 PM
This is a very very bad idea - the most obvious reason is that if anybody deletes the item from the game, the entire thing is lost - so if you delete a recolour then the mesh is gone too which breaks every other recolour too.

Yes, it's technically possible, but there is a reason people puyt recolours in seperate package files.

There really isn't any advantage in doing it that way anyway.

Story books are full of fairy tales, of Kings and Queens, and the bluest skies.
#4 Old 16th Sep 2008 at 2:37 AM
Quote: Originally posted by Delphy
This is a very very bad idea - the most obvious reason is that if anybody deletes the item from the game, the entire thing is lost - so if you delete a recolour then the mesh is gone too which breaks every other recolour too.
Ah, I didn`t know this. Interesting. Very important when deleting items. Not relavent, though, when you are NOT going to delete the items in question. What other reasons? [Really, I do want to know!]
Quote: Originally posted by Delphy
Yes, it's technically possible, but there is a reason people puyt recolours in seperate package files.
That`s nice to know.
Quote: Originally posted by Delphy
There really isn't any advantage in doing it that way anyway.
Disk-space savings! Less wasted space in the end-of-file clusters, when there are fewer end-of-file clusters.
One horse disagreer of the Apocalypse
#5 Old 16th Sep 2008 at 7:46 AM
Manasteel and I had this discussion on the SimPE forums. His argument was that he'd test the objects out as single packages until he was sure each one worked before bundling them into one file *for personal use*, keeping the original seperate packages in case further troubleshooting was needed. The benefit is supposed to be faster loading time. If such a tool is made, it needs to be an end-user level one with clear advice on its disadvantages, rather than something creators use to bundle their downloads prior to distribution.

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
#6 Old 16th Sep 2008 at 8:10 AM
Inge, exactly my thoughts, regarding how such a tool would be used. Would this be a suitable function for my unnamed multitool?
One horse disagreer of the Apocalypse
#7 Old 16th Sep 2008 at 9:35 AM
Is there a way of testing that the supposed advantages are real? Do we know for sure that bundling downloads into one file really does speed up loading?

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Warrior Gryphon
site owner
#8 Old 16th Sep 2008 at 9:47 AM
Does it acually make the game load faster though? Basically all you save is a couple of IO calls to check the header - after that you are then iterating through the index lists, and going through 10 x 10 chunks is only slightly slower than 1 x 100.

Yes, you'd save filespace (but not much! - the headers aren't that big) but in these days that wouldn't equate to much with the size of disks.

Think about it for a second - the game loads the chunks from within the package files - if thats 100 package files or 10, it still has to load the same data. It's basically like trying to load a 1gb objects.package - not fun.

I just dont see that the development time for doing this is worth the payoff (even though to actually develop it would take less than a day for a somebody competant in package files)

Story books are full of fairy tales, of Kings and Queens, and the bluest skies.
#9 Old 16th Sep 2008 at 5:38 PM
Quote: Originally posted by Delphy
Does it acually make the game load faster though? Basically all you save is a couple of IO calls to check the header - after that you are then iterating through the index lists, and going through 10 x 10 chunks is only slightly slower than 1 x 100.

Think about it for a second - the game loads the chunks from within the package files - if thats 100 package files or 10, it still has to load the same data. It's basically like trying to load a 1gb objects.package - not fun.
I tend to agree with your reasoning here, but you`ve ignored the issue of scanning through many directory entries in the filesystem. Granted, this would not save much per file, but this is the only place I can see any speed savings.
Quote: Originally posted by Delphy
Yes, you'd save filespace (but not much! - the headers aren't that big) but in these days that wouldn't equate to much with the size of disks.
You miss my point entirely, Delphy. It isn`t the headers that are wasting space. It is unused space in the last cluster at the end of the file. This is especially bad in this age of large disk partitions. If you have a one-byte file on a disk with 4K clusters, you waste 4095 bytes. A 4097-byte file on the same disk also wastes 4095 bytes. Take 100 random-sized files, and you`re wasting 200K on average. People who have very little free space in the partition where their documents directory is could reap significant advantage from consolidating this wasted space into usable space.
Quote: Originally posted by Delphy
I just dont see that the development time for doing this is worth the payoff (even though to actually develop it would take less than a day for a somebody competant in package files)
I can see it. Please, TEACH ME to be sufficiently competant in package files.
The ModFather
retired moderator
#10 Old 16th Sep 2008 at 6:13 PM
If we are talking of grouping one mesh with its recolours, or grouping multiple recolours, then I confess I did it in the past (now I regret...). Still today, I do it for personal testing purposes, in a very simple way:
- Open an instance of SimPE (without loading any package);
- Open (in Windows) the folder containing the mesh and the recolours;
- Select all the packages that should be merged and Drag&Drop them into the Resource list of SimPE (the blank area in the upper-right side of SimPE window).
This creates a merged package that can easily be saved with a custom name.

BUT this applies only to recolours! If you intend to merge into one package two different objects, with BHAVs and other resources, then you can't do it, because the TGI (type, group, instance) will collide and conflict.
EAxis can do it because they use a unique GroupID for each object, but we modder must use only the 0xFFFFFFFF group, and you can't have two BHAVs with same group and instance in the same package.

I've finally started my Journal. Information only, no questions.

My latest activity: CEP 9.2.0! - AnyGameStarter 2.1.1 (UPD) - Scriptorium v.2.2f - Photo & Plaques hide with walls - Magazine Rack (UPD) - Animated Windows Hack (UPD) - Custom Instrument Hack (UPD) - Drivable Cars Without Nightlife (UPD) - Courtesy Lights (FIX) - Custom Fence-Arches - Painting-TV - Smarter Lights (UPD)


I *DON'T* accept requests, sorry.
One horse disagreer of the Apocalypse
#11 Old 16th Sep 2008 at 6:46 PM
Numenor, is it compulsory to only use FFFFFFFF or is it just that EA told us we *could* safely use that because they would leave it free for us? Is it possible now that we're near the end of The Sims 2 we can start to use other unused group numbers?

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
#12 Old 16th Sep 2008 at 6:57 PM
I`m not looking for "how to use tool X to do this"; I`m looking for "how does tool X do this". How does SimPE go about doing this?
Warrior Gryphon
site owner
#13 Old 16th Sep 2008 at 9:46 PM
Inge, I recall some discussion a long time ago when MaxoidTom was around that the GroupID of FFFFFFFF was a special case one - I daresay though if we know which group IDs aren't used we could try some experiment.

Also, GeneralOperationsDirector... it's actually kind of obvious *how* you put multiple packages together... if you actually know how package files are constructed. It's really not that hard.

Story books are full of fairy tales, of Kings and Queens, and the bluest skies.
#14 Old 17th Sep 2008 at 2:12 AM
Quote: Originally posted by Delphy
Also, GeneralOperationsDirector... it's actually kind of obvious *how* you put multiple packages together... if you actually know how package files are constructed. It's really not that hard.
I`m learning! I`m learning! ...just not fast enough...

Let`s see, if it is that easy/obvious, then it has to be:

* Write the header.
* Write the records/"files" from both source files.
* Write the index records from both files, suitably altered to point at the correct locations of the data being indexed.

I just was reluctant to believe that it was that easy! Numenor seems to confirm that it is not, due to several gotchas. However, I now believe that it is that easy, provided that one has a list of the gotchas.

Does anyone know where to find a list of the relavent gotchas?
Warrior Gryphon
site owner
#15 Old 17th Sep 2008 at 9:12 AM
He already said what the gotcha was: You can't have multiple chunks sharing the same TGI.

Story books are full of fairy tales, of Kings and Queens, and the bluest skies.
The ModFather
retired moderator
#16 Old 17th Sep 2008 at 10:20 AM
Inge - I believe that the group 0xFFFFFFFF is the only one that - when a package is loaded - is assigned to a unique groupID on-the-fly; I've never tried myself, but if I would, I'd first try with group oxFFFFFFFE -

GeneralOperationsDirector - From a logical point of view, the package is similar to a zip archive: it contains several smaller resources, packed into one file.
If you are interested in the internal structure of the .package files, the Sims2Wiki contains quite a lot of info.

I've finally started my Journal. Information only, no questions.

My latest activity: CEP 9.2.0! - AnyGameStarter 2.1.1 (UPD) - Scriptorium v.2.2f - Photo & Plaques hide with walls - Magazine Rack (UPD) - Animated Windows Hack (UPD) - Custom Instrument Hack (UPD) - Drivable Cars Without Nightlife (UPD) - Courtesy Lights (FIX) - Custom Fence-Arches - Painting-TV - Smarter Lights (UPD)


I *DON'T* accept requests, sorry.
#17 Old 17th Sep 2008 at 8:02 PM
Numenor: I already can read .pachage files without problem, except for compression issues. When I have reason to write them, the code to do so will exceedingly simple to write. I have been reading that information in the MTS2 Wiki. Unfortunately, the information, while invaluable and interesting, is not organized in a manner that is personaly convenient for my current needs. C`est La Vie.

Delphy: are there any other gotchas?
Test Subject
Original Poster
#18 Old 18th Sep 2008 at 7:26 AM
Quote: Originally posted by Delphy
This is a very very bad idea - the most obvious reason is that if anybody deletes the item from the game, the entire thing is lost - so if you delete a recolour then the mesh is gone too which breaks every other recolour too.

Yes, it's technically possible, but there is a reason people puyt recolours in seperate package files.

There really isn't any advantage in doing it that way anyway.



It all depends on perspective, I myself don't delete items from my game as it is, so this would not be a problem for me... Also I would always make sure to bundle the files, but also make a backup folder where I would put all the individual files into that backup folder. So even if I wanted to delete an item I would replace the bundled files with the backed up individual files, start game & delete. Re bundle, etc. Same if there' an error with a particular file! I think it's a simple remedy! As I said I don't really delete files anyway so packaging files into a single package would be convenient for me. A program like this may not be for everyone, but I'm sure there are many Sims gamers who would absolutely look forward to having something like this...
Test Subject
Original Poster
#19 Old 18th Sep 2008 at 7:37 AM
Quote: Originally posted by Inge Jones
Is there a way of testing that the supposed advantages are real? Do we know for sure that bundling downloads into one file really does speed up loading?


Well let's put it this way, when I had the Sims 1, bundling far files was an option... I believe they were called "far" files if I remember correctly which they are very similar to what we know as package files for the Sims 2. Anyway just like sims 2 we could download many objects & so forth, but there was a tool which had the ability to bundle the far files into a single package. When I did that it significantly sped up the time it takes to load to the game! I don't mean by a marginal difference either, but a noticeable & major difference! I figure if that was possible with the Sims, it should be the same deal with the Sims 2.
Test Subject
Original Poster
#20 Old 18th Sep 2008 at 7:49 AM
Quote: Originally posted by GeneralOperationsDirector
Numenor: I already can read .pachage files without problem, except for compression issues. When I have reason to write them, the code to do so will exceedingly simple to write. I have been reading that information in the MTS2 Wiki. Unfortunately, the information, while invaluable and interesting, is not organized in a manner that is personaly convenient for my current needs. C`est La Vie.

Delphy: are there any other gotchas?



All this stuff is waaaay too technical for me, lol! I just hope one of you guys, or someone reading this can come up with a bundling tool as requested. If not a tool, then maybe someone can tutor me on a way to bundle these files into a single package. If there isn't a viable way, then that's just too bad.

Thanks!
Test Subject
Original Poster
#21 Old 18th Sep 2008 at 8:11 AM
Alternatively if there's a program, or a way I would be able to detect all "custom objects", "bodyshop items" & so forth that's being used in all homes throughout a neighborhood, that would be a great option. I could then only keep these items (which I have personally placed in these homes) in the downloads folder, then move the other files not being used (in any particular home) into a backup folder. If I want to buy items at any point in time I would then place all the objects back into the downloads folder before loading up the game!

If there is such a tool which can be created it would be nice if within this program one would have the ability to have all custom items (which were placed in homes) show up on a screen, but also show all other custom objects (which hasn't been placed in any homes) come up on another screen, or a window. We could then move the unused items into a backup folder & only put those same unused items back into the downloads folder if we intend on buying anything the next time we play the game. I hope you guys will consider this to be a great idea! Especially if my initial request is not doable... Personally I know my GF would love something like this!
Warrior Gryphon
site owner
#22 Old 18th Sep 2008 at 9:05 AM
I don't believe we can get lists of which objects are in use by which Sim / Lot - somebody please correct me if I am wrong.

Story books are full of fairy tales, of Kings and Queens, and the bluest skies.
#23 Old 18th Sep 2008 at 9:09 AM
If you add "with current knowlege", I`d agree with you 100%, Delphy, yet I`m convinced that this is in principle possible, and desireable.

Manasteel, your original request would be far easier, but could cause problems if misused.

Both: I`m thinking of trying this [the package bundler].
One horse disagreer of the Apocalypse
#24 Old 18th Sep 2008 at 9:31 AM
Yes, the info about which content is on which lot is available in various lot records, as we discovered while analysing files for the Lot Adjuster.

I guess somewhere is a record of what hair and clothes sims are wearing too. I have often wished for a tool that would show whether something is in use before I decide whether to delete the file

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Warrior Gryphon
site owner
#25 Old 18th Sep 2008 at 11:25 AM
Thanks for the correction Inge - unlike some people I dont have time to read through the multi-thousand post Lot discussion thread.

But yes, with current knowledge there are some things we dont know - but if you have the time and inclination you can always figure things out.

Story books are full of fairy tales, of Kings and Queens, and the bluest skies.
Page 1 of 2
Back to top