• Welcome to SC4 Devotion Forum Archives.

What causes Prop Pox (and how to avoid it)

Started by bap, February 24, 2009, 08:37:13 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

RippleJet

#280
The unpoxed Helmstedt's prop subfile contains 187,896 prop records.
Out of these records, not a single one is marked as disabled or deleted.

This is the point at which the poxed Helmstedt's prop subfile becomes corrupted:



The last record that the savegame can read starts at offset 0xE87914.
The next record starts 0x58 bytes later, at offset 0xE8796C.

However, that record is severely truncated, as the next record starts only 4 bytes later, at 0xE87970.

All records that appear after this point are flagged as "disabled/deleted" (the encircled 04).
However, there are also no less than 2,160 records above this point that are marked "04".

In total, the poxed city's prop subfile contains 170,367 healthy prop records. Quite a reduction from 187,896.



EDIT:
Lord_Morpheus, unless you already have tested it...

Could you to test the unpoxed Helmstedt with an empty plugins folder (nothing from OWW2)?
Delete the beaches, and try to trigger the prop pox, in the same way as you did when triggering it including the OWW2.

wouanagaine

It is not just a matter of Peg to correct his file, which he will never do unfortunatly because that will lead to him recognize he was wrong, something he definitly can't stand with. Even if he and any one else had the knowledge to know it was wrong by the time it was done.

The matter is to teach any other custom content creator to not repeat the error of changing an already existing prop like Bap described without affecting it a new TGI.

The matter is also to find other props that cause the Prop Pox, as it was pointing a lot of time Peg 4 props are not the only cause of Prop pox.

It is pretty clear by now that people at Peg site don't care of the problem, even Lord_morpheus was called a BSC ( like it is obviously an insult to be BSC overthere ). I even didn't know Lord_morpheus 4 days ago.

So what can we expect from now ?
Just that no one else will release baddly modded props
That we ( I mean us the community ) find the others baddly modded props
That anyone who will get the prop pox in the future, will know who to blame if they have the 4 knowns props in their folder

New Horizons Productions
Berethor ♦ beskhu3epnm ♦ blade2k5 ♦ dmscopio ♦ dedgren ♦ emilin ♦ Ennedi ♦ Heblem ♦ jplumbley
M4346 ♦ moganite ♦ Papab2000 ♦ Shadow Assassin ♦ Tarkus ♦ wouanagaine
Divide wouanagaine by zero and you will in fact get one...one bad-ass that is - Alek King of SC4

Lord_Morpheus

Without OWW2 in my plugin folder I can bulldoze the beaches without any problems.

If I bulldoze enough buildings the city changes back to compressed network file without any problems. No Prop Pox! Retested several times  ;)

Pegasus statement is nonsense. He deleted my thread at the moment then there was a 100% sure proof that his OWW2 BDK file is a cause of prop pox. And my files were there so everybody could test it himself. Even Pegasus but instead he refused to do so and deleted the thread. I didn't blame him I just want to protect other players. He is talking about facts but he just deny and delete all facts and just write nonsense. He even stated a fully developed city savegame file on a large map won't be bigger then 5 MByte. As example he came up with the maxis big city tutorial. This file has only 4,6 Mbyte. But well it's on medium map  ;D
I would have lost all my big cities to this bug, if I don't read this thread here. This would have been very very frustrating. That's why I did all the testing. I want to ensure that this don't happen to anyone else!

RippleJet

Quote from: Lord_Morpheus on March 28, 2009, 12:43:41 PM
Without OWW2 in my plugin folder I can bulldoze the beaches without any problems.

If I bulldoze enough buildings the city changes back to compressed network file without any problems. No Prop Pox! Retested several times  ;)

Excellent, and final confirmation! ;)

Regarding the direction this thread is taking, I think we need to return to the topic of it.
We will probably have to clean out some off-topic content in a while... ::)

BarbyW

Keeping to the topic, I have tested Helmstedt today both with an without custom content. By custom content I mean a prop that I modded without changing the IID and the single umbrella prop from the BDK. Without any custom content and also with only the prop that I modded I was unable to produce a poxed city. I returned to the city and added the single umbrella prop from the BDK and the city poxed immediately.
I cannot explain why at this stage. I can only reconfirm Lord Morpheus' report that this is what happens.
Inside every old person is a young person wondering what happened. TP



Barbypedia: More alive than the original

wouanagaine

BarbyW, does the prop you modded already exists in that city in its original form ?

New Horizons Productions
Berethor ♦ beskhu3epnm ♦ blade2k5 ♦ dmscopio ♦ dedgren ♦ emilin ♦ Ennedi ♦ Heblem ♦ jplumbley
M4346 ♦ moganite ♦ Papab2000 ♦ Shadow Assassin ♦ Tarkus ♦ wouanagaine
Divide wouanagaine by zero and you will in fact get one...one bad-ass that is - Alek King of SC4

BarbyW

The one I modded did exist - it was the trampoline and appeared many times in the R$/R$$ res lots. I made a simple park lot with the trampoline. I went into the city and deleted some lots with the trampoline on. Saved and exited. No pox.
I plopped a couple of my parks and deleted some lots. Saved and exited - no pox.
I deleted the beaches. Saved and exited - no pox.
I removed my modded trampoline. Entered the city rezoned some small zones. Saved and exited - no pox.
I added the umbrella prop. Did some more rezoning. Saved and exited. Poxed.
Inside every old person is a young person wondering what happened. TP



Barbypedia: More alive than the original

RippleJet

#287
Now, while we're talking about the umbrellas...
let me post the findings we did on bap's city Riquelandia 6 a while ago.
It is a city which has only just started to show some signs of having the prop pox.

I am listing the prop subfile (as a hex dump) from the savegame, starting at offset 0xDCDA5D.
This is very close to the end of the file, offset byte Nº 14,473,821 in a file having a size of 14,488,551 bytes.


Offset      HEX DumpExplanation
DCDA5D58 00 00 00    Size of this prop record = 0x00000058 = 88 bytes
DCDA6144 E1 DE D2CheckSum
DCDA6554 5B 93 20Memory Address
DCDA6906 00 04 00Record Version Number
DCDA6D00 00 00 05Appearance Flag, 05 = normal, visible prop
DCDA711E 82 23 A8Identifies this record to be a prop record
DCDA7559 71 59 71Tract Coordinates
DCDA7902 00 02 00Tract Size, power of 2
DCDA7D00 00 00 00Count of SBPROP records = 0
DCDA8136 C5 77 C9Group ID = 0xC977C536
DCDA854A 28 6C 00Type ID, should be 4A 28 34 65
DCDA8900 00 AE F5Instance ID
DCDA8D3F 0A 1C 60Instance ID
DCDA91EC 0B 06 00Minimum X Coordinate
DCDA9504 00 00 00Minimum Y Coordinate
DCDA9900 04 1E 82Minimum Z Coordinate
DCDA9D23 A8 69 4BMaximum X Coordinate
DCDAA169 4B 02 00Maximum Y Coordinate
DCDAA502 00 01 00Maximum Z Coordinate
DCDAA900 00 6C C1Orientation, State, Start and Stop Hours
DCDAADA1 89 6C C1Date Timings, Random Chance, Lot Type
DCDAB1A1 89 00 00Object ID and Conditional Flag
DCDAB500 00 03 00Size of the next prop record, should be 0x00000058 = 88 bytes
DCDAB900 00 00 00CheckSum
DCDABD00 00 36 C5Memory Address
DCDAC177 C9 4A 28
DCDAC534 65 00 00
DCDAC900 29 00 00
DCDACD00 29 C2 84
DCDAD126 45 32 9F
DCDAD588 43 EB 7F
DCDAD93A 44 C2 A4
DCDADD26 45 32 9F
DCDAE189 43 EB 3F
DCDAE53B 44 02 00
DCDAE900 00 00 64
DCDAED02 D6 F9 99
DCDAF1CA 00 6C 00
DCDAF500 00 B0 83

I have greyed out the part of this prop record where something goes very much wrong.
After 42 bytes, the remaining 46 bytes are screwed up...

I've highlighted the DWORD where the next record starts (in the middle of the grey part).
As you can see, the size of that record is now erroneously read as 0x00300000 = 196,608 bytes.


Now, let us lift out that part that has been greyed, starting at offset DCDA87:


Offset      HEX DumpExplanation
DCDA876C 00 00 00    Size of this prop record = 0x0000006C = 108 bytes
DCDA8BAE F5 3F 0ACheckSum
DCDA8F1C 60 EC 0BMemory Address
DCDA9306 00 04 00Record Version Number
DCDA9700 00 00 04Appearance Flag, 04 = deleted, disabled prop
DCDA9B1E 82 23 A8Identifies this record to be a prop record
DCDA9F69 4B 69 4BTract Coordinates
DCDAA302 00 02 00Tract Size, power of 2
DCDAA701 00 00 00Count of SBPROP records = 1
DCDAAB6C C1 A1 89Property Name Value = 0x89A1C16C
DCDAAF6C C1 A1 89Property Name Value = 0x89A1C16C
DCDAB300 00 00 00Always 0
DCDAB703 00 00 00Data Type = UInt32, Rep Count = 0
DCDABB00 00 00 00Property Value = 0
DCDABF36 C5 77 C9Group ID = 0xC977C536
DCDAC34A 28 34 65Type ID = 0x6534284A
DCDAC700 00 00 29Instance ID = 0x29000000
DCDACB00 00 00 29Instance ID = 0x29000000
DCDACFC2 84 26 45Minimum X Coordinate = 2664.2974
DCDAD332 9F 88 43Minimum Y Coordinate =   273.2437
DCDAD7EB 7F 3A 44Minimum Z Coordinate =   745.9987
DCDADBC2 A4 26 45Maximum X Coordinate = 2666.2974
DCDADF32 9F 89 43Maximum Y Coordinate =   275.2437
DCDAE3EB 3F 3B 44Maximum Z Coordinate =   748.9987
DCDAE702 00 00 00Orientation = South, State = 0, Start Hour = 0, Stop Hour = 0
DCDAEB00 64 02 D6Date Timings = 0, Random Chance = 100%, Lot Type = Ordinary Lot
DCDAEFF9 99 CA 00ObjectID = 0xCA99F9D6, Conditional Flag = 0
DCDAF36C 00 00 00Size of the next prop record = 0x0000006C = 108 bytes

I have indicated some important things in red here...

First of all, the Instance ID of this prop record, which has been written at the wrong offset, is 0x29000000.
That is the Beach Umbrella, modded by Pegasus in his Beach Development Kit.

Secondly, you can also see that it has one SGPROP (Save Game Property), 0x89A1C16C.
We still don't know the meaning of this property, but it may have some significance to the cause of the prop pox, as it increases the record size by 20 bytes.


Finally, the last line (at offset DCDAF3) in my HEX dump above shows the first line of the next record.
That is another similar record. In fact, the last 136 records in this prop subfile, all look alike:

The record size is 0x6C (108 bytes)
They all have one SGPROP block, with the property 0x89A1C16C set to 0.
They all have the appearance flag set to 04, indicated they would all have been deleted.
And they all have the Instance ID set to 0x29000000.

The fact that these records in the end are all flagged as disabled/deleted very much corresponds with the way Lord_Morpheus triggered the prop pox, by deleting the beaches. We are pretty sure bap did not delete any lots while testing though.

RippleJet

#288
In another test Barby played the unpoxed Riquelandia 4, with only two of Peg's props in place.
As soon as the prop pox hit, she sent me her savegame.
Once again we find a truncated record, starting at offset DD3895:


Offset      HEX DumpDescription
DD389558 00 00 00    Size of this record
DD389978 4D C3 E8CheckSum
DD389D64 DF 0C 13Memory Address
DD38A106 00 04 00Record Version Number
DD38A500 00 00 05Appearance flag: 05 = normal, visible prop
DD38A91E 82 23 A8Identifies this record to be a prop record
DD38AD77 4C 77 4CTract Coordinates
DD38B102 00 02 00Tract Size, power of 2
DD38B500 00 00 00Count of SGPROPs
DD38B936 C5 77 C9Group ID
DD38BD4A 28 34 65Type ID
DD38C100 00 F1 28Instance ID
DD38C500 00 F1 28Instance ID  (Purple Flowers)
DD38C98F 71 5F 45Min X
DD38CD9B 09 87 43Min Y
DD38D1A0 5D 47 44Min Z
DD38D58F 91 5F 58Max X
DD38D900 00 00 2CMax Y
DD38D926 38 ED 9CMax Z

At offset DD38D8 this record has been overwritten with:


Offset      HEX DumpDescription
DD38D858 00 00 00    Size of this record
DD38DC2C 26 38 EDCheckSum
DD38E09C B3 0E 13Memory Address
DD38E406 00 04 00Record Version Number
DD38E800 00 00 04Appearance flag: 04 = deleted, disabled prop
DD38EC1E 82 23 A8Identifies this record to be a prop record
DD38F074 7B 74 7BTract Coordinates
DD38F402 00 02 00Tract Size, power of 2
DD38F800 00 00 00Count of SGPROPs
DD38FC36 C5 77 C9Group ID
DD39004A 28 34 65Type ID
DD390400 00 B2 29Instance ID
DD390800 00 B2 29Instance ID  (Beach Chair)
DD390CC4 17 50 45Min X
DD3910CE D8 88 43Min Y
DD3914E6 15 6F 45Min Z
DD3918C4 27 50 45Max X
DD391CCE D8 89 43Max Y
DD3920E6 25 6F 45Max Z
DD392400 01 5A B4Orientation: North, State: 1, Timed from 9:00 till 18:00
DD392800 64 02 4ADate Timed: No, Appearance Chance: 100%, Lot Type: Normal
DD392C19 A6 2A 0EObject ID: 0x2AA6194A, Conditional Flag: 0x0E
DD393058 00 00 00    Size of this record
DD393432 6B F2 3CCheckSum
DD393804 B4 0E 13Memory Address
DD393C06 00 04 00Record Version Number
DD394000 00 00 04Appearance flag: 04 = deleted, disabled prop
DD39441E 82 23 A8Identifies this record to be a prop record
DD394874 7B 74 7BTract Coordinates
DD394C02 00 02 00Tract Size, power of 2
DD395000 00 00 00Count of SGPROPs
DD395436 C5 77 C9Group ID
DD39584A 28 34 65Type ID
DD395C00 00 0D 29Instance ID
DD396000 00 0D 29Instance ID  (Patio Chair)
DD396490 13 50 45Min X
DD3968AF D8 88 43Min Y
DD396C36 43 6F 45Min Z
DD397090 23 50 45Max X
DD3974AF 58 8A 43Max Y
DD397836 53 6F 45Max Z
DD397C02 01 5A B4Orientation: South, State: 1, Timed from 9:00 till 18:00
DD398000 64 02 5EDate Timed: No, Appearance Chance: 100%, Lot Type: Normal
DD398419 A6 AA 0EObject ID: 0xAAA6195E, Conditional Flag: 0x0E
DD398858 00 00 00    Size of this record
DD398C03 81 44 2BCheckSum
DD39906C B4 0E 13Memory Address
DD399406 00 04 00Record Version Number
DD399800 00 00 04Appearance flag: 04 = deleted, disabled prop
DD399C1E 82 23 A8Identifies this record to be a prop record
DD39A074 7B 74 7BTract Coordinates
DD39A402 00 02 00Tract Size, power of 2
DD39A800 00 00 00Count of SGPROPs
DD39AC36 C5 77 C9Group ID
DD39B04A 28 34 65Type ID
DD39B400 00 B2 29Instance ID
DD39B800 00 B2 29Instance ID  (Beach Chair)
DD39BC3E 1F 50 45Min X
DD39C0AC CF 88 43Min Y
DD39C41A DA 6F 45Min Z
DD39C83E 2F 50 45Max X
DD39CCAC CF 89 43Max Y
DD39D01A EA 6F 45Max Z
DD39D400 01 5A B4Orientation: North, State: 1, Timed from 9:00 till 18:00
DD39D800 64 02 64Date Timed: No, Appearance Chance: 100%, Lot Type: Normal
DD39DC19 A6 CA 0EObject ID: 0xCAA61964, Conditional Flag: 0x0E

That concluded this savegame. Nothing comes after these three disabled props.
Both the beach chair and patio chair are props that Peg has modified,
by making them timed to appear between 9 and 18, without changing the TGI.

In this case we know for sure that Barby did not delete any lots,
unless they became deleted by upgrading into higher stages
(which is quite possible as these props appear on low-stage residential lots).

It's also noteworthy that these have a record size of 0x58, and no SGPROPs.

Diggis

Just for those people who are unsure, Tage and Steph don't see SC4 like we do.  I have managed to get a screen shot of what they see:


RippleJet

Diggis, you're clearly poxed.
I can see at least 10 missing props, the first one at offset 0x14.

Ennedi

Quote from: RippleJet on March 30, 2009, 06:45:51 AM
Diggis, you're clearly poxed.
I can see at least 10 missing props, the first one at offset 0x14.

So... He will loose his parts at some moment?  %confuso
There are several very important props in the human body  ;)

New Horizons Productions
Berethor - beskhu3epnm - blade2k5 - dmscopio - dedgren - Emilin - Ennedi
jplumbley - moganite - M4346 - nichter85 - papab2000 - Shadow Assassin - Tarkus - wouanagaine

Diggis

Yes, I am avoiding saving me untill there is a cure for the Pox.  I have several very important props I don't want to lose.

wouanagaine

Well that is only because you're timed. If you were like me and not timed, you can save yourself anytime anywhere :p

New Horizons Productions
Berethor ♦ beskhu3epnm ♦ blade2k5 ♦ dmscopio ♦ dedgren ♦ emilin ♦ Ennedi ♦ Heblem ♦ jplumbley
M4346 ♦ moganite ♦ Papab2000 ♦ Shadow Assassin ♦ Tarkus ♦ wouanagaine
Divide wouanagaine by zero and you will in fact get one...one bad-ass that is - Alek King of SC4

JBSimio

Quote from: Diggis on March 30, 2009, 07:34:11 AM
Yes, I am avoiding saving me untill there is a cure for the Pox.  I have several very important props I don't want to lose.

Fortunately, I haven't bothered to save myself in quite some time... but I am still hoping that someone can find a way to replace the finger and left knee props which I lost to the pox back in 06.  :D


Never trust a god who grins all the time and wears a top hat, that's my motto.  -Terry Pratchett

It's from JBSimio.  Need we say more?  -BadgerBoy of SC4 Devotion

metarvo

I'm seeing "04" way too many times there, Diggis.  I'm afraid the others are right.  Maybe you had better get yourself checked out to see if there's anything that can be done.  $%Grinno$%  I can confidently say that you're in the best of hands right here, though.  Nice work, everyone.  :)
Find my power line BAT thread here.
Check out the Noro Cooperative.  What are you waiting for?  It even has electricity.
Want more? Try here.  For even more electrical goodies, look here.
Here are some rural power lines.

bap

Quote from: Diggis on March 30, 2009, 07:34:11 AM
Yes, I am avoiding saving me untill there is a cure for the Pox.  I have several very important props I don't want to lose.
Don't worry: some of your props will be missing, but your lot will still be functional.  $%Grinno$%

sithlrd98


XiahouDun

Sadly some of me is poxed as well. I seem to be losing props on the top of my head slowly.
Current project: Movies 14

You may have meant to search for Houdini. (result of searching for XiahouDun on SC4D)

Diggis

Quote from: bap on March 30, 2009, 08:00:55 AM
Don't worry: some of your props will be missing, but your lot will still be functional.  $%Grinno$%

:D :D :D