Difference between revisions of "Savegame"
sc4e>Jdenm8 (Adding newly found information from Speeder at SC4D: https://sc4devotion.com/forums/index.php?topic=17315.0) |
m (→Files Within Savegames: include Monorail) |
||
(23 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{MTS2}} | {{MTS2}} | ||
− | '''Savegame (.sc4)''' files are [[DBPF]] files, containing a number of files specific to the city. They can be opened with [[Reader]] and the [[ | + | '''Savegame (.sc4)''' files are [[DBPF]] files, containing a number of files specific to the city. They can be opened with [[Reader]] and the [[SC4 Savegame Explorer]]. |
+ | |||
+ | It was long thought that it was impossible to modify savegames because the files within it are protected with a CRC checksum. | ||
+ | The game refuses to load certain files if it detects the checksum of the file is invalid. This means that every modification to a file in the Savegame requires the checksum to be recalculated as well. | ||
+ | |||
+ | The algorithm used for the checksum was discovered by {{people|Simmaster07}} during his work on the Prop Pox Fix and was picked up by {{people|smf_16}} to build a proof of concept that Savegames could in fact be edited which led to an experimental fix for ploppable residentials. | ||
==Files Within Savegames== | ==Files Within Savegames== | ||
− | + | A file within a Savegame may consist of multiple ''records''. | |
+ | Almost every record in the Savegame files has the following structure: | ||
+ | |||
+ | <pre> | ||
+ | DWORD Size | ||
+ | DWORD CRC | ||
+ | DWORD Memory | ||
+ | BYTES All the rest | ||
+ | </pre> | ||
+ | where | ||
− | {|width="80%" border="1" cellpadding="1" cellspacing="1" | + | * Size is the length of the record in bytes |
+ | * CRC is the CRC Checksum of the record. This is calculated by running the entire record (with a maximum of 250,000 bytes) through the Checksum algorithm, ''except' for the first 8 bytes (which is the Size and the CRC itself). | ||
+ | * Memory is a unique identifier of the record. The game probably simply uses the numerical value of the pointer to the record for this. Never set this to 0x00000000 or you'll crash the game. Records are often referenced in other record using pointers. Those are always stored in the Subfiles as two conesecutive DWORDs: Address and TypeID. Hence, if you are decoding a subfile and find a seemingly random sequence of 4 bytes, check if the next 4 bytes (read as a 32 bit '''LE''' integer) correspond to a know Type ID. In that case, you're dealing with a pointer. | ||
+ | |||
+ | Below follows a list of all files that can appear within a Savegame. | ||
+ | Note that most can be identified by [[Type Id]] alone. | ||
+ | Not every file has been fully decoded yet, although the most important ones such as the [[Lot Subfile]] and the [[Building Subfile]] have been more or less fully decoded. | ||
+ | |||
+ | {|width="80%" border="1" cellpadding="1" cellspacing="1" class="wikitable sortable" | ||
|- | |- | ||
!Type ID | !Type ID | ||
Line 26: | Line 48: | ||
| | | | ||
|[[Advisor Subfiles#Environmental EAC937B4|Environmental Advisor/Fluffy News Advisor]] | |[[Advisor Subfiles#Environmental EAC937B4|Environmental Advisor/Fluffy News Advisor]] | ||
− | | | + | |cSC4Advisor |
| | | | ||
|- | |- | ||
Line 40: | Line 62: | ||
|ea3ff4f5 | |ea3ff4f5 | ||
|Separator File | |Separator File | ||
− | | | + | |SC4ReadAppLoadSaveVersion |
|Done | |Done | ||
|- | |- | ||
Line 61: | Line 83: | ||
| | | | ||
| | | | ||
− | | | + | |cSC4PipeConnectionOccupant |
| | | | ||
|- | |- | ||
Line 117: | Line 139: | ||
| | | | ||
| | | | ||
− | | | + | |cSTETerrain |
| | | | ||
|- | |- | ||
Line 124: | Line 146: | ||
|286b1f03 | |286b1f03 | ||
|[[DIR|Directory File]] | |[[DIR|Directory File]] | ||
− | | | + | |cGZDBSegmentPackedFile |
|Done | |Done | ||
|- | |- | ||
Line 131: | Line 153: | ||
| | | | ||
|[[Ordinance Subfiles|Pro-Reading Ordinance]] | |[[Ordinance Subfiles|Pro-Reading Ordinance]] | ||
− | | | + | |cSC4OrdinanceProReadingCampaign |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 138: | Line 160: | ||
| | | | ||
|[[Ordinance Subfiles|Nuclear-Free Ordinance]] | |[[Ordinance Subfiles|Nuclear-Free Ordinance]] | ||
− | | | + | |cSC4OrdinanceNuclearFreeZone |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 180: | Line 202: | ||
| | | | ||
| | | | ||
− | | | + | |cSC4SubwayConnectionOccupant |
| | | | ||
|- | |- | ||
Line 201: | Line 223: | ||
| | | | ||
|[[Region View Subfiles|Region View City Data]] | |[[Region View Subfiles|Region View City Data]] | ||
− | | | + | |SC4ReadRegionalCity |
|Partially Decoded | |Partially Decoded | ||
|- | |- | ||
Line 243: | Line 265: | ||
| | | | ||
| | | | ||
− | | | + | |cSTETerrainView3D |
| | | | ||
|- | |- | ||
Line 284: | Line 306: | ||
| | | | ||
| | | | ||
− | | | + | |[[Texture Subfile]] |
|cSC4LotBaseTextureOccupant | |cSC4LotBaseTextureOccupant | ||
− | | | + | |Mostly Decoded |
|- | |- | ||
|c2f6e81f | |c2f6e81f | ||
Line 292: | Line 314: | ||
| | | | ||
|[[Ordinance Subfiles|Tire Recycling Ordinance]] | |[[Ordinance Subfiles|Tire Recycling Ordinance]] | ||
− | | | + | |cSC4OrdinanceTireRecycling |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 299: | Line 321: | ||
| | | | ||
|[[Ordinance Subfiles|Auto Emission Ordinance]] | |[[Ordinance Subfiles|Auto Emission Ordinance]] | ||
− | | | + | |cSC4OrdinanceVehicleEmissionStandard |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 306: | Line 328: | ||
| | | | ||
|[[Ordinance Subfiles|Youth Curfew Ordinance]] | |[[Ordinance Subfiles|Youth Curfew Ordinance]] | ||
− | | | + | |cSC4OrdinanceYouthCurfew |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 334: | Line 356: | ||
| | | | ||
| | | | ||
− | | | + | |cSC4ParkManager |
| | | | ||
|- | |- | ||
Line 366: | Line 388: | ||
|- | |- | ||
|aa09dc28 | |aa09dc28 | ||
+ | | | ||
| | | | ||
| | | | ||
Line 375: | Line 398: | ||
|00000067 | |00000067 | ||
|Reconcile Map South Side | |Reconcile Map South Side | ||
− | | | + | |cSTETerrain::SaveEdgeAltitudes |
|Almost Complete | |Almost Complete | ||
|- | |- | ||
Line 382: | Line 405: | ||
|00000066 | |00000066 | ||
|Reconcile Map East Side | |Reconcile Map East Side | ||
− | | | + | |cSTETerrain::SaveEdgeAltitudes |
|Almost Complete | |Almost Complete | ||
|- | |- | ||
Line 389: | Line 412: | ||
|00000065 | |00000065 | ||
|Reconcile Map North Side | |Reconcile Map North Side | ||
− | | | + | |cSTETerrain::SaveEdgeAltitudes |
|Almost Complete | |Almost Complete | ||
|- | |- | ||
Line 396: | Line 419: | ||
|00000064 | |00000064 | ||
|Reconcile Map West Side | |Reconcile Map West Side | ||
− | | | + | |cSTETerrain::SaveEdgeAltitudes |
|Almost Complete | |Almost Complete | ||
|- | |- | ||
Line 403: | Line 426: | ||
|00000001 | |00000001 | ||
|Terrain Map | |Terrain Map | ||
− | | | + | |cSTETerrain::SaveAltitudes |
|Done | |Done | ||
|- | |- | ||
Line 410: | Line 433: | ||
|00000001 | |00000001 | ||
| | | | ||
+ | |cSC4View3DWin | ||
| | | | ||
− | |||
|- | |- | ||
|a9c741b3 | |a9c741b3 | ||
Line 417: | Line 440: | ||
| | | | ||
| | | | ||
− | | | + | |cSC4ModelMaker |
| | | | ||
|- | |- | ||
Line 458: | Line 481: | ||
| | | | ||
| | | | ||
− | | | + | |[[Lot Developer Subfile]] |
|cSC4LotDeveloper | |cSC4LotDeveloper | ||
− | | | + | |Done |
|- | |- | ||
|a990bd10 | |a990bd10 | ||
Line 501: | Line 524: | ||
| | | | ||
|[[Ordinance Subfiles|Clean Air Ordinance]] | |[[Ordinance Subfiles|Clean Air Ordinance]] | ||
− | | | + | |cSC4OrdinanceCleanAir |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 508: | Line 531: | ||
| | | | ||
|[[Ordinance Subfiles|Commuter Shuttle Ordinance]] | |[[Ordinance Subfiles|Commuter Shuttle Ordinance]] | ||
− | | | + | |cSC4OrdinanceShuttleService |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 515: | Line 538: | ||
| | | | ||
|[[Ordinance Subfiles|Carpool Ordinance]] | |[[Ordinance Subfiles|Carpool Ordinance]] | ||
− | | | + | |cSC4OrdinanceCarpoolIncentive |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 522: | Line 545: | ||
| | | | ||
|[[Ordinance Subfiles|Legal Gambling Ordinance]] | |[[Ordinance Subfiles|Legal Gambling Ordinance]] | ||
− | | | + | |cSC4OrdinanceLegalizeGambling |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 550: | Line 573: | ||
|00000003 | |00000003 | ||
| | | | ||
− | | | + | |cSTETerrain::SaveMiscTerrainData |
| | | | ||
|- | |- | ||
Line 557: | Line 580: | ||
|00000002 | |00000002 | ||
| | | | ||
+ | |cSTETerrain::SaveVertexProperties | ||
| | | | ||
− | |||
|- | |- | ||
|8a4bd52b | |8a4bd52b | ||
| | | | ||
| | | | ||
− | | | + | ||[[Network Subfiles#Network Tunnel Subfile (0x8a4bd52b)|Network Tunnel Subfile]] |
|cSC4NetworkTunnelOccupant | |cSC4NetworkTunnelOccupant | ||
| | | | ||
Line 578: | Line 601: | ||
|00000006 | |00000006 | ||
|[[PNG]] File | |[[PNG]] File | ||
− | | | + | |cSC4City::WriteRegionViewThumbnail |
|Done | |Done | ||
|- | |- | ||
Line 585: | Line 608: | ||
|00000004 | |00000004 | ||
|[[PNG]] File | |[[PNG]] File | ||
− | | | + | |cSC4City::WriteRegionViewThumbnail |
|Done | |Done | ||
|- | |- | ||
Line 592: | Line 615: | ||
|00000002 | |00000002 | ||
|[[PNG]] File | |[[PNG]] File | ||
− | | | + | |cSC4City::WriteRegionViewThumbnail |
|Done | |Done | ||
|- | |- | ||
Line 599: | Line 622: | ||
|00000000 | |00000000 | ||
|[[PNG]] File | |[[PNG]] File | ||
− | | | + | |cSC4City::WriteRegionViewThumbnail |
|Done | |Done | ||
|- | |- | ||
|8a22bebe | |8a22bebe | ||
− | |||
| | | | ||
| | | | ||
Line 628: | Line 650: | ||
| | | | ||
| | | | ||
− | | | + | |cSC4AutoSaveRecord |
− | | | + | |Stores cGZCheatCodeManager::GetCheatCodeSaveData |
|- | |- | ||
|89c49986 | |89c49986 | ||
Line 697: | Line 719: | ||
| | | | ||
| | | | ||
− | | | + | |[[Automata Subfiles#Vehicle Automata Subfile (0x896e714a)|Vehicle Automata]] |
|cSC4Vehicle | |cSC4Vehicle | ||
| | | | ||
Line 705: | Line 727: | ||
| | | | ||
|[[Ordinance Subfiles|Power Conservation Ordinance]] | |[[Ordinance Subfiles|Power Conservation Ordinance]] | ||
− | | | + | |cSC4OrdinancePowerConservation |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 712: | Line 734: | ||
| | | | ||
|[[Ordinance Subfiles|Junior Sports Ordinance]] | |[[Ordinance Subfiles|Junior Sports Ordinance]] | ||
− | | | + | |cSC4OrdinanceJuniorSportsLeague |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 796: | Line 818: | ||
| | | | ||
|[[Ordinance Subfiles|Tourism Ordinance]] | |[[Ordinance Subfiles|Tourism Ordinance]] | ||
− | | | + | |cSC4OrdinanceTouristPromotion |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 803: | Line 825: | ||
| | | | ||
|[[Ordinance Subfiles|Neighborhood Watch Ordinance]] | |[[Ordinance Subfiles|Neighborhood Watch Ordinance]] | ||
− | | | + | |cSC4OrdinanceNeighborhoodWatch |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 810: | Line 832: | ||
| | | | ||
|[[Ordinance Subfiles|Smoke Detector Ordinance]] | |[[Ordinance Subfiles|Smoke Detector Ordinance]] | ||
+ | |cSC4OrdinanceMandatorySmokeDetectors | ||
+ | |Mostly Decoded | ||
+ | |- | ||
+ | |4c22ae53 | ||
+ | | | ||
+ | | | ||
+ | |[[Automata Subfiles#Mass Transit Train Subfile (0x4c22ae53)|El Train and Monorail Automata]] | ||
+ | |cSC4MassTransitTrain | ||
| | | | ||
− | |||
|- | |- | ||
|4c0dd224 | |4c0dd224 | ||
Line 914: | Line 943: | ||
| | | | ||
| | | | ||
− | | | + | ||[[Network Subfiles#Prebuilt Network Subfile (0x49c1a034)|Prebuilt Network Subfile]] |
|cSC4NetworkOccupantWithPreBuiltModel | |cSC4NetworkOccupantWithPreBuiltModel | ||
− | | | + | |Mostly done |
|- | |- | ||
|49c05c9f | |49c05c9f | ||
Line 935: | Line 964: | ||
| | | | ||
| | | | ||
− | | | + | |[[Pipe Occupant Subfile]] |
|cSC4PipeOccupant | |cSC4PipeOccupant | ||
− | | | + | |Done |
|- | |- | ||
|49b9e60a | |49b9e60a | ||
| | | | ||
| | | | ||
− | | | + | |[[SimGrid]] |
− | | | + | |cSC4SimGridFloat32 |
− | | | + | |Mostly decoded |
|- | |- | ||
|49b9e606 | |49b9e606 | ||
| | | | ||
| | | | ||
− | | | + | |[[SimGrid]] |
− | | | + | |cSC4SimGridUint32 |
− | | | + | |Mostly decoded |
|- | |- | ||
|49b9e605 | |49b9e605 | ||
| | | | ||
| | | | ||
− | | | + | |[[SimGrid]] |
− | | | + | |cSC4SimGridSint16 |
− | | | + | |Mostly decoded |
|- | |- | ||
|49b9e604 | |49b9e604 | ||
| | | | ||
| | | | ||
− | | | + | |[[SimGrid]] |
− | | | + | |cSC4SimGridUint16 |
− | | | + | |Mostly decoded |
|- | |- | ||
|49b9e603 | |49b9e603 | ||
| | | | ||
| | | | ||
− | | | + | |[[SimGrid]] |
− | | | + | |cSC4SimGridSint8 |
− | | | + | |Mostly decoded |
|- | |- | ||
|49b9e602 | |49b9e602 | ||
| | | | ||
| | | | ||
− | | | + | |[[SimGrid]] |
− | | | + | |cSC4SimGridUint8 |
− | | | + | |Mostly decoded |
|- | |- | ||
|499b23fe | |499b23fe | ||
Line 985: | Line 1,014: | ||
| | | | ||
| | | | ||
− | | | + | |cSC4COMSerializer::SaveClassObjects |
| | | | ||
|- | |- | ||
Line 1,005: | Line 1,034: | ||
| | | | ||
| | | | ||
− | | | + | |[[Zone Developer Subfile]] |
|cSC4ZoneDeveloper | |cSC4ZoneDeveloper | ||
− | | | + | |Done |
|- | |- | ||
|42bf1e18 | |42bf1e18 | ||
Line 1,013: | Line 1,042: | ||
| | | | ||
|[[Ordinance Subfiles|Trash Presort Ordinance]] | |[[Ordinance Subfiles|Trash Presort Ordinance]] | ||
− | | | + | |cSC4OrdinanceTrashPresort |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 1,020: | Line 1,049: | ||
| | | | ||
|[[Ordinance Subfiles|Free Clinic Ordinance]] | |[[Ordinance Subfiles|Free Clinic Ordinance]] | ||
− | | | + | |cSC4OrdinanceFreeClinics |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 1,096: | Line 1,125: | ||
| | | | ||
| | | | ||
− | | | + | |[[Zone Manager]] |
|cSC4ZoneManager | |cSC4ZoneManager | ||
− | | | + | |Partially decoded |
|- | |- | ||
|2977aa49 | |2977aa49 | ||
Line 1,118: | Line 1,147: | ||
| | | | ||
|[[Ordinance Subfiles|Paper Waste Ordinance]] | |[[Ordinance Subfiles|Paper Waste Ordinance]] | ||
− | | | + | |cSC4OrdinancePaperReductionAct |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 1,125: | Line 1,154: | ||
| | | | ||
|[[Ordinance Subfiles|Landfill Gas Ordinance]] | |[[Ordinance Subfiles|Landfill Gas Ordinance]] | ||
− | | | + | |cSC4OrdinanceLandfillGasRecovery |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 1,132: | Line 1,161: | ||
|00000007 | |00000007 | ||
|Temp.[[PNG]] file | |Temp.[[PNG]] file | ||
− | | | + | |cSC4City::WriteRegionViewThumbnail |
|Done | |Done | ||
|- | |- | ||
Line 1,139: | Line 1,168: | ||
|00000005 | |00000005 | ||
|Temp.[[PNG]] file | |Temp.[[PNG]] file | ||
− | | | + | |cSC4City::WriteRegionViewThumbnail |
|Done | |Done | ||
|- | |- | ||
Line 1,146: | Line 1,175: | ||
|00000003 | |00000003 | ||
|Temp.[[PNG]] file | |Temp.[[PNG]] file | ||
− | | | + | |cSC4City::WriteRegionViewThumbnail |
|Done | |Done | ||
|- | |- | ||
Line 1,153: | Line 1,182: | ||
|00000001 | |00000001 | ||
|Temp.[[PNG]] file | |Temp.[[PNG]] file | ||
− | | | + | |cSC4City::WriteRegionViewThumbnail |
|Done | |Done | ||
|- | |- | ||
Line 1,222: | Line 1,251: | ||
| | | | ||
| | | | ||
− | | | + | |[[Plumbing Simulator]] |
|cSC4PlumbingSimulator | |cSC4PlumbingSimulator | ||
− | | | + | |Done |
|- | |- | ||
|0990c005 | |0990c005 | ||
Line 1,258: | Line 1,287: | ||
| | | | ||
|[[Ordinance Subfiles|Water Conservation Ordinance]] | |[[Ordinance Subfiles|Water Conservation Ordinance]] | ||
− | | | + | |cSC4OrdinanceWaterConservation |
|Mostly Decoded | |Mostly Decoded | ||
|- | |- | ||
Line 1,265: | Line 1,294: | ||
| | | | ||
|[[Ordinance Subfiles|Community CPR Ordinance]] | |[[Ordinance Subfiles|Community CPR Ordinance]] | ||
− | | | + | |cSC4OrdinanceCommunityCPRTraining |
|Mostly Decoded | |Mostly Decoded | ||
|} | |} | ||
+ | ==Source code== | ||
+ | |||
+ | Here's a link to the '''CRC algorithm on GitHub''', the algorithm used for the savegame file checksum. | ||
+ | It's useful to know that only the first 250,000 bytes need to run through the algorithm. | ||
+ | This is probably done to speed up the saving process. | ||
+ | ::'''<nowiki>https://github.com/sebamarynissen/SC4/blob/ee7bee8173ec46d155ceaa316eaab074404dff87/src/crc.cpp</nowiki>''' | ||
{{navbox/SUBFILE}} | {{navbox/SUBFILE}} |
Latest revision as of 13:14, 18 February 2023
The information in this article was copied from the SimsWiki and may be outdated. This article has not been reviewed for technical accuracy or updated knowledge on this topic. If you are knowledgeable enough on the topic to review the article, please do so and remove this label. (more info). |
Savegame (.sc4) files are DBPF files, containing a number of files specific to the city. They can be opened with Reader and the SC4 Savegame Explorer.
It was long thought that it was impossible to modify savegames because the files within it are protected with a CRC checksum. The game refuses to load certain files if it detects the checksum of the file is invalid. This means that every modification to a file in the Savegame requires the checksum to be recalculated as well.
The algorithm used for the checksum was discovered by Simmaster07 during his work on the Prop Pox Fix and was picked up by smf_16 to build a proof of concept that Savegames could in fact be edited which led to an experimental fix for ploppable residentials.
Files Within Savegames
A file within a Savegame may consist of multiple records. Almost every record in the Savegame files has the following structure:
DWORD Size DWORD CRC DWORD Memory BYTES All the rest
where
- Size is the length of the record in bytes
- CRC is the CRC Checksum of the record. This is calculated by running the entire record (with a maximum of 250,000 bytes) through the Checksum algorithm, except' for the first 8 bytes (which is the Size and the CRC itself).
- Memory is a unique identifier of the record. The game probably simply uses the numerical value of the pointer to the record for this. Never set this to 0x00000000 or you'll crash the game. Records are often referenced in other record using pointers. Those are always stored in the Subfiles as two conesecutive DWORDs: Address and TypeID. Hence, if you are decoding a subfile and find a seemingly random sequence of 4 bytes, check if the next 4 bytes (read as a 32 bit LE integer) correspond to a know Type ID. In that case, you're dealing with a pointer.
Below follows a list of all files that can appear within a Savegame. Note that most can be identified by Type Id alone. Not every file has been fully decoded yet, although the most important ones such as the Lot Subfile and the Building Subfile have been more or less fully decoded.
Type ID | Group ID | Instance ID | Name | C++ Class | Status |
---|---|---|---|---|---|
ead4ba36 | 299b2d1b | cSC4CityDetailManager | |||
eac937b4 | Environmental Advisor/Fluffy News Advisor | cSC4Advisor | |||
ea863423 | cSC4GetawayVan | ||||
ea3ff4f5 | ea3ff506 | ea3ff4f5 | Separator File | SC4ReadAppLoadSaveVersion | Done |
ea230a28 | cSC4SeaportDeveloper | ||||
ea19e825 | Public Safety Advisor | cSC4AdvisorSafety | |||
ea0a5acf | cSC4PipeConnectionOccupant | ||||
ea09d4ae | cSC4LandfillDeveloper | ||||
e9c622d8 | cSC43DRender | ||||
e9a6cd3b | cSC4NetworkLotManager | ||||
e990c18e | cSC4LandValueSimulator | ||||
e990c045 | cSC4FlammabilitySimulator | ||||
e990bffc | Budget Subfile | cSC4DepartmentBudget | Partially Decoded | ||
e990be01 | Budget Subfile | cSC4BudgetSimulator | Partially Decoded | ||
e98f9525 | cSTETerrain | ||||
e86b1eef | e86b1eef | 286b1f03 | Directory File | cGZDBSegmentPackedFile | Done |
e0d07233 | Pro-Reading Ordinance | cSC4OrdinanceProReadingCampaign | Mostly Decoded | ||
e0d0722e | Nuclear-Free Ordinance | cSC4OrdinanceNuclearFreeZone | Mostly Decoded | ||
cbeb4f62 | Advisor? | cSC4Airplane | |||
cbc14674 | cSC4MySimDispatch | ||||
cbb32b0a | cSC4CarjackedVehicle | ||||
ca2c2a2f | Utilities Advisor | cSC4AdvisorUtility | |||
ca16374f | Network Subfile 2 | cSC4SubwayOccupant | Done | ||
ca15ed6b | cSC4SubwayConnectionOccupant | ||||
ca14ca03 | cSC4AutomataControllerManager | ||||
ca09f543 | Advisor? (The template for the other advisors?) | cSC4AdvisorBase | |||
ca027edb | ca027ee1 | Region View City Data | SC4ReadRegionalCity | Partially Decoded | |
c9efb016 | cSC4PropOccupantBurntBuilding | ||||
c9c628ec | cSC4CameraControl | ||||
c9c05c6e | Network Subfile 1 | cSC4NetworkOccupant | Done | ||
c9c05c5d | cSC4PowerLineOccupant | ||||
c9bd5d4a | Lot Subfile | cSC4Lot | |||
c9b84e10 | cSTETerrainView3D | ||||
c990c0a4 | cSC4NeighborsSimulator | ||||
c990c034 | cSC4FloraSimulator | ||||
c990bd46 | cSC4NetworkManager | ||||
c98f9d4a | cSC4AircraftManager | ||||
c98f9d17 | cSC4PedestrianManager | ||||
c97f987c | Texture Subfile | cSC4LotBaseTextureOccupant | Mostly Decoded | ||
c2f6e81f | Tire Recycling Ordinance | cSC4OrdinanceTireRecycling | Mostly Decoded | ||
c2bf1e04 | Auto Emission Ordinance | cSC4OrdinanceVehicleEmissionStandard | Mostly Decoded | ||
c2bf1dc5 | Youth Curfew Ordinance | cSC4OrdinanceYouthCurfew | Mostly Decoded | ||
ab72fbb3 | Signs | cSC4SignpostOccupant | |||
aa9f4a3d | Automata | cSC4Bus | |||
aa5292d7 | Finance Advisor | cSC4AdvisorFinance | |||
aa3fe6bc | cSC4ParkManager | ||||
aa3836fb | Tutorial Subfile | cSC4TutorialSystem | |||
aa371c32 | Reward Advice Subfile | cSC4RewardAdvice | |||
aa313c9f | Budget Subfile | cSC4LineItem | Mostly Decoded | ||
aa2049a1 | cSC4AirportDeveloper | ||||
aa09dc28 | cSC4PedestrianOneShot | ||||
a9dd6ff4 | e98f9525 | 00000067 | Reconcile Map South Side | cSTETerrain::SaveEdgeAltitudes | Almost Complete |
a9dd6ff4 | e98f9525 | 00000066 | Reconcile Map East Side | cSTETerrain::SaveEdgeAltitudes | Almost Complete |
a9dd6ff4 | e98f9525 | 00000065 | Reconcile Map North Side | cSTETerrain::SaveEdgeAltitudes | Almost Complete |
a9dd6ff4 | e98f9525 | 00000064 | Reconcile Map West Side | cSTETerrain::SaveEdgeAltitudes | Almost Complete |
a9dd6ff4 | e98f9525 | 00000001 | Terrain Map | cSTETerrain::SaveAltitudes | Done |
a9c8647c | e9c8647e | 00000001 | cSC4View3DWin | ||
a9c741b3 | cSC4ModelMaker | ||||
a9c05c85 | Flora Subfile | cSC4FloraOccupant | |||
a9bd882d | Building Subfile | cSC4BuildingOccupant | Basic Overlay Done | ||
a9bc9ab6 | cSC4Occupant | ||||
a990c08e | cSC4OrdinanceSimulator | ||||
a990c022 | cSC4IndustrialSimulator | ||||
a990bfe0 | Lot Developer Subfile | cSC4LotDeveloper | Done | ||
a990bd10 | cSC4PropManager | ||||
a98f9d3b | cSC4VehicleManager | ||||
a98f9d28 | cSC4WatercraftManager | ||||
a97f909e | cSC4ConstructionOccupant | ||||
a7e7f929 | cSC424HourClock | ||||
a2bf1e43 | Clean Air Ordinance | cSC4OrdinanceCleanAir | Mostly Decoded | ||
a2bf1de5 | Commuter Shuttle Ordinance | cSC4OrdinanceShuttleService | Mostly Decoded | ||
a2bf1ddc | Carpool Ordinance | cSC4OrdinanceCarpoolIncentive | Mostly Decoded | ||
a0d07129 | Legal Gambling Ordinance | cSC4OrdinanceLegalizeGambling | Mostly Decoded | ||
8be3753b | City Situations Advice Subfile | cSC4CitySituationAdvice | |||
8ba98eda | cSC4Helicopter | ||||
8b79c707 | Painted Labels | cSC4TextDecalOccupant | |||
8a91e7e3 | e98f9525 | 00000003 | cSTETerrain::SaveMiscTerrainData | ||
8a91e7e0 | e98f9525 | 00000002 | cSTETerrain::SaveVertexProperties | ||
8a4bd52b | Network Tunnel Subfile | cSC4NetworkTunnelOccupant | |||
8a41625a | cSC4Train | ||||
8a2482b9 | 4a2492bb | 00000006 | PNG File | cSC4City::WriteRegionViewThumbnail | Done |
8a2482b9 | 4a2492bb | 00000004 | PNG File | cSC4City::WriteRegionViewThumbnail | Done |
8a2482b9 | 4a2492bb | 00000002 | PNG File | cSC4City::WriteRegionViewThumbnail | Done |
8a2482b9 | 4a2492bb | 00000000 | PNG File | cSC4City::WriteRegionViewThumbnail | Done |
8a22bebe | cSC4LandfillOccupant | ||||
8a09f5f4 | Advice Subfiles | cSC4Advice | |||
89efa536 | Historical Data of City/Graph Data | cSC4HistoryWarehouse | Mostly Decoded | ||
89d9b9ee | 69d9b9f1 | cSC4AutoSaveRecord | Stores cGZCheatCodeManager::GetCheatCodeSaveData | ||
89c49986 | cSC4WealthRequester | ||||
89c48f47 | cSC4PropDeveloper | ||||
8990c372 | Mayor View City Data | cSC4City | |||
8990c12d | cSC4Demand | ||||
8990c09a | cSC4CrimeSimulator | ||||
8990c080 | cSC4CommercialSimulator | ||||
8990c065 | Water Pollution | cSC4PollutionSimulator | |||
8990be7a | cSC4BuildingDevelopmentSimulator | ||||
896e75af | cSC4Pedestrian | ||||
896e714a | Vehicle Automata | cSC4Vehicle | |||
82b9999b | Power Conservation Ordinance | cSC4OrdinancePowerConservation | Mostly Decoded | ||
815b4cef | Junior Sports Ordinance | cSC4OrdinanceJuniorSportsLeague | Mostly Decoded | ||
6c1acde1 | cSC4Ambulance | ||||
6b70efad | cSC4MySimBalloonAdvice | ||||
6a9335de | MySim Advice Subfile | cSC4MySimAdvice | |||
6a5f8755 | Health & Education Advisor | cSC4AdvisorHQ | |||
6a3848db | Advice Subfiles | cSC4AdviceNeghborDeal | |||
6a26d049 | cSC4AdviceSubject | ||||
6a1628ba | cSC4AutomataAttractor | ||||
6a0f82b2 | Network Index Subfile | cSC4TrafficNetworkMap | Decoded | ||
6990c1aa | Sims to Jobs Match | cSC4TrafficSimulator | |||
6990c04f | cSC4PoliceSimulator | ||||
6534284a | Type 10 Exemplars | Decoded. | |||
62f6e7cf | Tourism Ordinance | cSC4OrdinanceTouristPromotion | Mostly Decoded | ||
62bf1db9 | Neighborhood Watch Ordinance | cSC4OrdinanceNeighborhoodWatch | Mostly Decoded | ||
62bf1daa | Smoke Detector Ordinance | cSC4OrdinanceMandatorySmokeDetectors | Mostly Decoded | ||
4c22ae53 | El Train and Monorail Automata | cSC4MassTransitTrain | |||
4c0dd224 | cSC4MayorLimo | ||||
4c0ae114 | cSC4FirePlaneDispatchSource | ||||
4be372cd | Situation Manager | cSC4AdvisorCitySituations | |||
4a5b69ed | Automata | cSC4TrailerVehicle | |||
4a416254 | Automata | cSC4TrainCar | |||
4a3ad3e1 | Transportation Advisor | cSC4AdvisorTraffic | |||
4a232da8 | Industry Subfile | cSC4BusinessUnit | |||
4a222b98 | Automata | cSC4PatrolCar | |||
4a1dbbbf | MySim Advisors | cSC4MySim | |||
4a1b664e | cSC4AutomataScriptSystem | ||||
4a1628c5 | Wildlife Generator | cSC4AutomataGenerator | |||
4a0dd616 | cSC4AdvisorSystem | ||||
49dd6f4c | 49dd6f4e | 00000001 | |||
49cc1bcd | cSC4NetworkBridgeOccupant | ||||
49c1a034 | Prebuilt Network Subfile | cSC4NetworkOccupantWithPreBuiltModel | Mostly done | ||
49c05c9f | Lot Retaining Walls | cSC4LotRetainingWallOccupant | |||
49c05c8f | Props | cSC4FoundationOccupant | |||
49c05b9f | Pipe Occupant Subfile | cSC4PipeOccupant | Done | ||
49b9e60a | SimGrid | cSC4SimGridFloat32 | Mostly decoded | ||
49b9e606 | SimGrid | cSC4SimGridUint32 | Mostly decoded | ||
49b9e605 | SimGrid | cSC4SimGridSint16 | Mostly decoded | ||
49b9e604 | SimGrid | cSC4SimGridUint16 | Mostly decoded | ||
49b9e603 | SimGrid | cSC4SimGridSint8 | Mostly decoded | ||
49b9e602 | SimGrid | cSC4SimGridUint8 | Mostly decoded | ||
499b23fe | cSC4COMSerializer::SaveClassObjects | ||||
4990c013 | cSC4ResidentialSimulator | ||||
4990bd93 | cSC4DispatchManager | ||||
498f9b01 | Zone Developer Subfile | cSC4ZoneDeveloper | Done | ||
42bf1e18 | Trash Presort Ordinance | cSC4OrdinanceTrashPresort | Mostly Decoded | ||
40d07236 | Free Clinic Ordinance | cSC4OrdinanceFreeClinics | Mostly Decoded | ||
2b689130 | Deals | ||||
2a5f877d | City Planner Advisor | cSC4AdvisorCityPlanning | |||
2a134f42 | cSC4NeighborDeal | ||||
2990c1e5 | Date Subfile | cSC4Simulator | Partially Decoded | ||
2990c1bc | Terrain Arrays | cSC4WeatherSimulator | Basic Overlay Completed | ||
2990c142 | cSC4TractDeveloper | ||||
2990c05a | cSC4FireProtectionSimulator | ||||
2990bff2 | cSC4DemandSimulator | ||||
299062c0 | cSC4LotConfigurationManager | ||||
2977aa48 | Prop Terrain Decal | cSC4PropOccupantTerrainDecal | |||
298f9b2d | Zone Manager | cSC4ZoneManager | Partially decoded | ||
2977aa49 | Prop Visual Effect | cSC4PropOccupantVisualEffect | |||
2977aa47 | Prop Subfile | cSC4PropOccupant | |||
22f6e81b | Paper Waste Ordinance | cSC4OrdinancePaperReductionAct | Mostly Decoded | ||
22f6e80c | Landfill Gas Ordinance | cSC4OrdinanceLandfillGasRecovery | Mostly Decoded | ||
2026960b | 4a2482bb | 00000007 | Temp.PNG file | cSC4City::WriteRegionViewThumbnail | Done |
2026960b | 4a2482bb | 00000005 | Temp.PNG file | cSC4City::WriteRegionViewThumbnail | Done |
2026960b | 4a2482bb | 00000003 | Temp.PNG file | cSC4City::WriteRegionViewThumbnail | Done |
2026960b | 4a2482bb | 00000001 | Temp.PNG file | cSC4City::WriteRegionViewThumbnail | Done |
0c0b06e8 | cSC4PoliceHelicopterDispatchSource | ||||
0bf606a5 | My Street Sim | cSC4MyStreetSim | |||
0bb14381 | cSC4CitySituationManager | ||||
0b7d45e0 | 0b7d45e1 | 0b7d45e2 | |||
0a413481 | Reward Requirements | cSC4CivicBuildingSimulator | |||
0a134f24 | cSC4NeighborConnection | ||||
09c05c6a | cSC4PowerPoleOccupant | ||||
0990c38a | cSC4Demolition | ||||
0990c138 | cSC4GrowthDeveloper | ||||
0990c075 | Plumbing Simulator | cSC4PlumbingSimulator | Done | ||
0990c005 | Power Simulator Subfile | cSC4PowerSimulator | Basic Overlay Completed | ||
0990bdd8 | cSC4AuraSimulator | ||||
098f964d | Item Index Subfile | cSC4OccupantManager | |||
096e75f5 | cSC4Watercraft | ||||
02bf1dfa | Water Conservation Ordinance | cSC4OrdinanceWaterConservation | Mostly Decoded | ||
00d0723d | Community CPR Ordinance | cSC4OrdinanceCommunityCPRTraining | Mostly Decoded |
Source code
Here's a link to the CRC algorithm on GitHub, the algorithm used for the savegame file checksum. It's useful to know that only the first 250,000 bytes need to run through the algorithm. This is probably done to speed up the saving process.
- https://github.com/sebamarynissen/SC4/blob/ee7bee8173ec46d155ceaa316eaab074404dff87/src/crc.cpp
|