Difference between revisions of "Savegame"

From SC4D Encyclopaedia
Jump to navigation Jump to search
sc4e>Whatevermind
m (Link updates)
 
(35 intermediate revisions by 7 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 [[SC4Savegame Explorer]]. However, as critical parts of the file encoding have not been discovered, there is no editing program capable of successfully modifying these files except for [[SimCity 4]] itself. Some of the files have at least had their purpose identified and been named, while even fewer have been partially or fully decoded.
+
'''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.
 +
 
 +
A JavaScript library is available with implementations of various subfiles on GitHub: '''<nowiki>https://github.com/sebamarynissen/sc4</nowiki>'''
 +
It automatically recalculates the checksums upon saving, so it can be used to modify savegames.
  
 
==Files Within Savegames==
 
==Files Within Savegames==
Note that within Savegame files, most objects can be identified by [[Type ID]] alone.
+
A file within a Savegame may consist of multiple ''records''.
 +
Almost every record in the Savegame files has the following structure:
  
{|width="80%" border="1" cellpadding="1" cellspacing="1"
+
<pre>
 +
DWORD Size
 +
DWORD CRC
 +
DWORD Memory
 +
BYTES  All the rest
 +
</pre>
 +
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.
 +
 
 +
{|width="80%" border="1" cellpadding="1" cellspacing="1" class="wikitable sortable"
 
|-
 
|-
 
!Type ID
 
!Type ID
Line 12: Line 37:
 
!Instance ID
 
!Instance ID
 
!Name
 
!Name
 +
!C++ Class
 
!Status
 
!Status
 
|-
 
|-
Line 18: Line 44:
 
|
 
|
 
|
 
|
 +
|cSC4CityDetailManager
 
|
 
|
 
|-
 
|-
Line 24: Line 51:
 
|
 
|
 
|[[Advisor Subfiles#Environmental EAC937B4|Environmental Advisor/Fluffy News Advisor]]
 
|[[Advisor Subfiles#Environmental EAC937B4|Environmental Advisor/Fluffy News Advisor]]
|
+
|cSC4Advisor
 +
|
 
|-
 
|-
 
|ea863423
 
|ea863423
Line 30: Line 58:
 
|
 
|
 
|
 
|
 +
|cSC4GetawayVan
 
|
 
|
 
|-
 
|-
Line 36: Line 65:
 
|ea3ff4f5
 
|ea3ff4f5
 
|Separator File
 
|Separator File
 +
|SC4ReadAppLoadSaveVersion
 
|Done
 
|Done
 
|-
 
|-
Line 42: Line 72:
 
|
 
|
 
|
 
|
 +
|cSC4SeaportDeveloper
 
|
 
|
 
|-
 
|-
Line 48: Line 79:
 
|
 
|
 
|[[Advisor Subfiles#Public Safety EA19E825|Public Safety Advisor]]
 
|[[Advisor Subfiles#Public Safety EA19E825|Public Safety Advisor]]
 +
|cSC4AdvisorSafety
 
|
 
|
 
|-
 
|-
Line 54: Line 86:
 
|
 
|
 
|
 
|
 +
|cSC4PipeConnectionOccupant
 
|
 
|
 
|-
 
|-
Line 60: Line 93:
 
|
 
|
 
|
 
|
 +
|cSC4LandfillDeveloper
 
|
 
|
 
|-
 
|-
Line 66: Line 100:
 
|
 
|
 
|
 
|
 +
|cSC43DRender
 
|
 
|
 
|-
 
|-
Line 72: Line 107:
 
|
 
|
 
|
 
|
 +
|cSC4NetworkLotManager
 
|
 
|
 
|-
 
|-
Line 78: Line 114:
 
|
 
|
 
|
 
|
 +
|cSC4LandValueSimulator
 
|
 
|
 
|-
 
|-
Line 84: Line 121:
 
|
 
|
 
|
 
|
 +
|cSC4FlammabilitySimulator
 
|
 
|
 
|-
 
|-
Line 90: Line 128:
 
|
 
|
 
|[[Budget Subfile]]
 
|[[Budget Subfile]]
 +
|cSC4DepartmentBudget
 
|Partially Decoded
 
|Partially Decoded
 
|-
 
|-
Line 96: Line 135:
 
|
 
|
 
|[[Budget Subfile]]
 
|[[Budget Subfile]]
 +
|cSC4BudgetSimulator
 
|Partially Decoded
 
|Partially Decoded
 
|-
 
|-
Line 101: Line 141:
 
|
 
|
 
|
 
|
|
+
|[[Terrain subfiles]]
 +
|cSTETerrain
 
|
 
|
 
|-
 
|-
Line 108: Line 149:
 
|286b1f03
 
|286b1f03
 
|[[DIR|Directory File]]
 
|[[DIR|Directory File]]
 +
|cGZDBSegmentPackedFile
 
|Done
 
|Done
 
|-
 
|-
Line 114: Line 156:
 
|
 
|
 
|[[Ordinance Subfiles|Pro-Reading Ordinance]]
 
|[[Ordinance Subfiles|Pro-Reading Ordinance]]
 +
|cSC4OrdinanceProReadingCampaign
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 120: Line 163:
 
|
 
|
 
|[[Ordinance Subfiles|Nuclear-Free Ordinance]]
 
|[[Ordinance Subfiles|Nuclear-Free Ordinance]]
 +
|cSC4OrdinanceNuclearFreeZone
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 126: Line 170:
 
|
 
|
 
|Advisor?
 
|Advisor?
 +
|cSC4Airplane
 
|
 
|
 
|-
 
|-
Line 132: Line 177:
 
|
 
|
 
|
 
|
 +
|cSC4MySimDispatch
 
|
 
|
 
|-
 
|-
Line 138: Line 184:
 
|
 
|
 
|
 
|
 +
|cSC4CarjackedVehicle
 
|
 
|
 
|-
 
|-
Line 144: Line 191:
 
|
 
|
 
|[[Advisor Subfiles#Utilities CA2C2A2F|Utilities Advisor]]
 
|[[Advisor Subfiles#Utilities CA2C2A2F|Utilities Advisor]]
 +
|cSC4AdvisorUtility
 
|
 
|
 
|-
 
|-
Line 150: Line 198:
 
|
 
|
 
|[[Network Subfiles#Network Subfile 2 (CA16374F)|Network Subfile 2]]
 
|[[Network Subfiles#Network Subfile 2 (CA16374F)|Network Subfile 2]]
 +
|cSC4SubwayOccupant
 
|Done
 
|Done
 
|-
 
|-
Line 156: Line 205:
 
|
 
|
 
|
 
|
 +
|cSC4SubwayConnectionOccupant
 
|
 
|
 
|-
 
|-
Line 162: Line 212:
 
|
 
|
 
|
 
|
 +
|cSC4AutomataControllerManager
 
|
 
|
 
|-
 
|-
Line 167: Line 218:
 
|
 
|
 
|
 
|
|Advisor?
+
|Advisor? (The template for the other advisors?)
 +
|cSC4AdvisorBase
 
|
 
|
 
|-
 
|-
Line 174: Line 226:
 
|
 
|
 
|[[Region View Subfiles|Region View City Data]]
 
|[[Region View Subfiles|Region View City Data]]
 +
|SC4ReadRegionalCity
 
|Partially Decoded
 
|Partially Decoded
 
|-
 
|-
Line 180: Line 233:
 
|
 
|
 
|
 
|
 +
|cSC4PropOccupantBurntBuilding
 
|
 
|
 
|-
 
|-
Line 186: Line 240:
 
|
 
|
 
|
 
|
 +
|cSC4CameraControl
 
|
 
|
 
|-
 
|-
Line 192: Line 247:
 
|
 
|
 
|[[Network Subfiles#Network Subfile 1 (C9C05C6E)|Network Subfile 1]]
 
|[[Network Subfiles#Network Subfile 1 (C9C05C6E)|Network Subfile 1]]
 +
|cSC4NetworkOccupant
 
|Done
 
|Done
 
|-
 
|-
Line 198: Line 254:
 
|
 
|
 
|
 
|
 +
|cSC4PowerLineOccupant
 
|
 
|
 
|-
 
|-
Line 203: Line 260:
 
|
 
|
 
|
 
|
|Building Occupancy & Desirability
+
|[[Lot Subfile]]
 +
|cSC4Lot
 
|
 
|
 
|-
 
|-
Line 209: Line 267:
 
|
 
|
 
|
 
|
|
+
|[[Terrain subfiles]]
 +
|cSTETerrainView3D
 
|
 
|
 
|-
 
|-
Line 216: Line 275:
 
|
 
|
 
|
 
|
 +
|cSC4NeighborsSimulator
 
|
 
|
 
|-
 
|-
Line 222: Line 282:
 
|
 
|
 
|
 
|
 +
|cSC4FloraSimulator
 
|
 
|
 
|-
 
|-
Line 227: Line 288:
 
|
 
|
 
|
 
|
|
+
||[[Network Subfiles#Network Manager Subfile (0xc990bd46)|Network Manager Subfile]]
|
+
|cSC4NetworkManager
 +
|Fully decoded
 
|-
 
|-
 
|c98f9d4a
 
|c98f9d4a
Line 234: Line 296:
 
|
 
|
 
|
 
|
 +
|cSC4AircraftManager
 
|
 
|
 
|-
 
|-
Line 240: Line 303:
 
|
 
|
 
|
 
|
 +
|cSC4PedestrianManager
 
|
 
|
 
|-
 
|-
Line 245: Line 309:
 
|
 
|
 
|
 
|
|
+
|[[Texture Subfile]]
|
+
|cSC4LotBaseTextureOccupant
 +
|Mostly Decoded
 
|-
 
|-
 
|c2f6e81f
 
|c2f6e81f
Line 252: Line 317:
 
|
 
|
 
|[[Ordinance Subfiles|Tire Recycling Ordinance]]
 
|[[Ordinance Subfiles|Tire Recycling Ordinance]]
 +
|cSC4OrdinanceTireRecycling
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 258: Line 324:
 
|
 
|
 
|[[Ordinance Subfiles|Auto Emission Ordinance]]
 
|[[Ordinance Subfiles|Auto Emission Ordinance]]
 +
|cSC4OrdinanceVehicleEmissionStandard
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 264: Line 331:
 
|
 
|
 
|[[Ordinance Subfiles|Youth Curfew Ordinance]]
 
|[[Ordinance Subfiles|Youth Curfew Ordinance]]
 +
|cSC4OrdinanceYouthCurfew
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 270: Line 338:
 
|
 
|
 
|Signs
 
|Signs
 +
|cSC4SignpostOccupant
 
|
 
|
 
|-
 
|-
Line 276: Line 345:
 
|
 
|
 
|Automata
 
|Automata
 +
|cSC4Bus
 
|
 
|
 
|-
 
|-
Line 282: Line 352:
 
|
 
|
 
|[[Advisor Subfiles#Finances AA5292D7|Finance Advisor]]
 
|[[Advisor Subfiles#Finances AA5292D7|Finance Advisor]]
 +
|cSC4AdvisorFinance
 
|
 
|
 
|-
 
|-
Line 288: Line 359:
 
|
 
|
 
|
 
|
 +
|cSC4ParkManager
 
|
 
|
 
|-
 
|-
Line 293: Line 365:
 
|
 
|
 
|
 
|
|
+
|[[Tutorial Subfile]]
 +
|cSC4TutorialSystem
 
|
 
|
 
|-
 
|-
Line 299: Line 372:
 
|
 
|
 
|
 
|
|[[Advice Subfiles]]
+
|[[Advice Subfiles#Reward aa371c32|Reward Advice Subfile]]
 +
|cSC4RewardAdvice
 
|
 
|
 
|-
 
|-
Line 306: Line 380:
 
|
 
|
 
|[[Budget Subfile]]
 
|[[Budget Subfile]]
 +
|cSC4LineItem
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 312: Line 387:
 
|
 
|
 
|
 
|
 +
|cSC4AirportDeveloper
 
|
 
|
 
|-
 
|-
Line 318: Line 394:
 
|
 
|
 
|
 
|
 +
|cSC4PedestrianOneShot
 
|
 
|
 
|-
 
|-
Line 324: Line 401:
 
|00000067
 
|00000067
 
|Reconcile Map South Side
 
|Reconcile Map South Side
 +
|cSTETerrain::SaveEdgeAltitudes
 
|Almost Complete
 
|Almost Complete
 
|-
 
|-
Line 330: Line 408:
 
|00000066
 
|00000066
 
|Reconcile Map East Side
 
|Reconcile Map East Side
 +
|cSTETerrain::SaveEdgeAltitudes
 
|Almost Complete
 
|Almost Complete
 
|-
 
|-
Line 336: Line 415:
 
|00000065
 
|00000065
 
|Reconcile Map North Side
 
|Reconcile Map North Side
 +
|cSTETerrain::SaveEdgeAltitudes
 
|Almost Complete
 
|Almost Complete
 
|-
 
|-
Line 342: Line 422:
 
|00000064
 
|00000064
 
|Reconcile Map West Side
 
|Reconcile Map West Side
 +
|cSTETerrain::SaveEdgeAltitudes
 
|Almost Complete
 
|Almost Complete
 
|-
 
|-
Line 347: Line 428:
 
|e98f9525
 
|e98f9525
 
|00000001
 
|00000001
|Terrain Map
+
|[[Terrain subfiles|Terrain Map]]
 +
|cSTETerrain::SaveAltitudes
 
|Done
 
|Done
 
|-
 
|-
Line 354: Line 436:
 
|00000001
 
|00000001
 
|
 
|
|
+
|cSC4View3DWin
 +
|
 
|-
 
|-
 
|a9c741b3
 
|a9c741b3
Line 360: Line 443:
 
|
 
|
 
|
 
|
 +
|cSC4ModelMaker
 
|
 
|
 
|-
 
|-
Line 366: Line 450:
 
|
 
|
 
|[[Flora Subfile]]
 
|[[Flora Subfile]]
 +
|cSC4FloraOccupant
 
|
 
|
 
|-
 
|-
Line 372: Line 457:
 
|
 
|
 
|[[Building Subfile]]
 
|[[Building Subfile]]
 +
|cSC4BuildingOccupant
 
|Basic Overlay Done
 
|Basic Overlay Done
 
|-
 
|-
Line 378: Line 464:
 
|
 
|
 
|
 
|
 +
|cSC4Occupant
 
|
 
|
 
|-
 
|-
Line 384: Line 471:
 
|
 
|
 
|
 
|
 +
|cSC4OrdinanceSimulator
 
|
 
|
 
|-
 
|-
Line 390: Line 478:
 
|
 
|
 
|
 
|
 +
|cSC4IndustrialSimulator
 
|
 
|
 
|-
 
|-
Line 395: Line 484:
 
|
 
|
 
|
 
|
|
+
|[[Lot Developer Subfile]]
|
+
|cSC4LotDeveloper
 +
|Done
 
|-
 
|-
 
|a990bd10
 
|a990bd10
Line 402: Line 492:
 
|
 
|
 
|
 
|
 +
|cSC4PropManager
 
|
 
|
 
|-
 
|-
Line 408: Line 499:
 
|
 
|
 
|
 
|
 +
|cSC4VehicleManager
 
|
 
|
 
|-
 
|-
Line 414: Line 506:
 
|
 
|
 
|
 
|
 +
|cSC4WatercraftManager
 
|
 
|
 
|-
 
|-
Line 420: Line 513:
 
|
 
|
 
|
 
|
 +
|cSC4ConstructionOccupant
 
|
 
|
 
|-
 
|-
Line 426: Line 520:
 
|
 
|
 
|
 
|
 +
|cSC424HourClock
 
|
 
|
 
|-
 
|-
Line 432: Line 527:
 
|
 
|
 
|[[Ordinance Subfiles|Clean Air Ordinance]]
 
|[[Ordinance Subfiles|Clean Air Ordinance]]
 +
|cSC4OrdinanceCleanAir
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 438: Line 534:
 
|
 
|
 
|[[Ordinance Subfiles|Commuter Shuttle Ordinance]]
 
|[[Ordinance Subfiles|Commuter Shuttle Ordinance]]
 +
|cSC4OrdinanceShuttleService
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 444: Line 541:
 
|
 
|
 
|[[Ordinance Subfiles|Carpool Ordinance]]
 
|[[Ordinance Subfiles|Carpool Ordinance]]
 +
|cSC4OrdinanceCarpoolIncentive
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 450: Line 548:
 
|
 
|
 
|[[Ordinance Subfiles|Legal Gambling Ordinance]]
 
|[[Ordinance Subfiles|Legal Gambling Ordinance]]
 +
|cSC4OrdinanceLegalizeGambling
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 455: Line 554:
 
|
 
|
 
|
 
|
|
+
|[[Advice Subfiles#City Situations 8be3753b|City Situations Advice Subfile]]
 +
|cSC4CitySituationAdvice
 
|
 
|
 
|-
 
|-
Line 462: Line 562:
 
|
 
|
 
|
 
|
 +
|cSC4Helicopter
 
|
 
|
 
|-
 
|-
Line 468: Line 569:
 
|
 
|
 
|Painted Labels
 
|Painted Labels
 +
|cSC4TextDecalOccupant
 
|
 
|
 
|-
 
|-
Line 473: Line 575:
 
|e98f9525
 
|e98f9525
 
|00000003
 
|00000003
|
+
|[[Terrain subfiles#Terrain Bounding Box (0x8a91e7e3)|Terrain Subfiles]]
 +
|cSTETerrain::SaveMiscTerrainData
 
|
 
|
 
|-
 
|-
Line 479: Line 582:
 
|e98f9525
 
|e98f9525
 
|00000002
 
|00000002
 +
|[[Terrain subfiles#Terrain Flags (0x8a91e7e0)|Terrain Subfiles]]
 +
|cSTETerrain::SaveVertexProperties
 
|
 
|
|
 
 
|-
 
|-
 
|8a4bd52b
 
|8a4bd52b
 
|
 
|
 
|
 
|
|
+
||[[Network Subfiles#Network Tunnel Subfile (0x8a4bd52b)|Network Tunnel Subfile]]
 +
|cSC4NetworkTunnelOccupant
 
|
 
|
 
|-
 
|-
Line 492: Line 597:
 
|
 
|
 
|
 
|
 +
|cSC4Train
 
|
 
|
 
|-
 
|-
Line 497: Line 603:
 
|4a2492bb
 
|4a2492bb
 
|00000006
 
|00000006
|PNG File
+
|[[PNG]] File
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 503: Line 610:
 
|4a2492bb
 
|4a2492bb
 
|00000004
 
|00000004
|PNG File
+
|[[PNG]] File
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 509: Line 617:
 
|4a2492bb
 
|4a2492bb
 
|00000002
 
|00000002
|PNG File
+
|[[PNG]] File
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 515: Line 624:
 
|4a2492bb
 
|4a2492bb
 
|00000000
 
|00000000
|PNG File
+
|[[PNG]] File
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 522: Line 632:
 
|
 
|
 
|
 
|
 +
|cSC4LandfillOccupant
 
|
 
|
 
|-
 
|-
Line 528: Line 639:
 
|
 
|
 
|[[Advice Subfiles]]
 
|[[Advice Subfiles]]
 +
|cSC4Advice
 
|
 
|
 
|-
 
|-
Line 534: Line 646:
 
|
 
|
 
|[[Historical Graphs Subfiles|Historical Data of City/Graph Data]]
 
|[[Historical Graphs Subfiles|Historical Data of City/Graph Data]]
 +
|cSC4HistoryWarehouse
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 540: Line 653:
 
|
 
|
 
|
 
|
|
+
|cSC4AutoSaveRecord
 +
|Stores cGZCheatCodeManager::GetCheatCodeSaveData
 
|-
 
|-
 
|89c49986
 
|89c49986
Line 546: Line 660:
 
|
 
|
 
|
 
|
 +
|cSC4WealthRequester
 
|
 
|
 
|-
 
|-
Line 552: Line 667:
 
|
 
|
 
|
 
|
 +
|cSC4PropDeveloper
 
|
 
|
 
|-
 
|-
Line 558: Line 674:
 
|
 
|
 
|Mayor View City Data
 
|Mayor View City Data
 +
|cSC4City
 
|
 
|
 
|-
 
|-
Line 564: Line 681:
 
|
 
|
 
|
 
|
 +
|cSC4Demand
 
|
 
|
 
|-
 
|-
Line 570: Line 688:
 
|
 
|
 
|
 
|
 +
|cSC4CrimeSimulator
 
|
 
|
 
|-
 
|-
Line 576: Line 695:
 
|
 
|
 
|
 
|
 +
|cSC4CommercialSimulator
 
|
 
|
 
|-
 
|-
Line 582: Line 702:
 
|
 
|
 
|Water Pollution
 
|Water Pollution
 +
|cSC4PollutionSimulator
 
|
 
|
 
|-
 
|-
Line 588: Line 709:
 
|
 
|
 
|
 
|
 +
|cSC4BuildingDevelopmentSimulator
 
|
 
|
 
|-
 
|-
Line 594: Line 716:
 
|
 
|
 
|
 
|
 +
|cSC4Pedestrian
 
|
 
|
 
|-
 
|-
Line 599: Line 722:
 
|
 
|
 
|
 
|
|Road Construction Automata
+
|[[Automata Subfiles#Vehicle Automata Subfile (0x896e714a)|Vehicle Automata]]
 +
|cSC4Vehicle
 
|
 
|
 
|-
 
|-
Line 606: Line 730:
 
|
 
|
 
|[[Ordinance Subfiles|Power Conservation Ordinance]]
 
|[[Ordinance Subfiles|Power Conservation Ordinance]]
 +
|cSC4OrdinancePowerConservation
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 612: Line 737:
 
|
 
|
 
|[[Ordinance Subfiles|Junior Sports Ordinance]]
 
|[[Ordinance Subfiles|Junior Sports Ordinance]]
 +
|cSC4OrdinanceJuniorSportsLeague
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 618: Line 744:
 
|
 
|
 
|
 
|
 +
|cSC4Ambulance
 
|
 
|
 
|-
 
|-
Line 624: Line 751:
 
|
 
|
 
|
 
|
 +
|cSC4MySimBalloonAdvice
 
|
 
|
 
|-
 
|-
Line 629: Line 757:
 
|
 
|
 
|
 
|
|[[Advice Subfiles]]
+
|[[Advice Subfiles#MySim 6a9335de|MySim Advice Subfile]]
 +
|cSC4MySimAdvice
 
|
 
|
 
|-
 
|-
Line 636: Line 765:
 
|
 
|
 
|[[Advisor Subfiles#Health and Education 6A5F8755|Health & Education Advisor]]
 
|[[Advisor Subfiles#Health and Education 6A5F8755|Health & Education Advisor]]
 +
|cSC4AdvisorHQ
 
|
 
|
 
|-
 
|-
Line 642: Line 772:
 
|
 
|
 
|[[Advice Subfiles]]
 
|[[Advice Subfiles]]
 +
|cSC4AdviceNeghborDeal
 
|
 
|
 
|-
 
|-
Line 648: Line 779:
 
|
 
|
 
|
 
|
 +
|cSC4AdviceSubject
 
|
 
|
 
|-
 
|-
Line 654: Line 786:
 
|
 
|
 
|
 
|
 +
|cSC4AutomataAttractor
 
|
 
|
 
|-
 
|-
Line 660: Line 793:
 
|
 
|
 
|[[Network Subfiles#Network Index Subfile (6A0F82B2)|Network Index Subfile]]
 
|[[Network Subfiles#Network Index Subfile (6A0F82B2)|Network Index Subfile]]
 +
|cSC4TrafficNetworkMap
 
|Decoded
 
|Decoded
 
|-
 
|-
Line 666: Line 800:
 
|
 
|
 
|Sims to Jobs Match
 
|Sims to Jobs Match
 +
|cSC4TrafficSimulator
 
|
 
|
 
|-
 
|-
Line 672: Line 807:
 
|
 
|
 
|
 
|
 +
|cSC4PoliceSimulator
 
|
 
|
 
|-
 
|-
Line 678: Line 814:
 
|
 
|
 
|[[Exemplar|Type 10 Exemplars]]
 
|[[Exemplar|Type 10 Exemplars]]
 +
|
 
|Decoded.
 
|Decoded.
 
|-
 
|-
Line 684: Line 821:
 
|
 
|
 
|[[Ordinance Subfiles|Tourism Ordinance]]
 
|[[Ordinance Subfiles|Tourism Ordinance]]
 +
|cSC4OrdinanceTouristPromotion
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 690: Line 828:
 
|
 
|
 
|[[Ordinance Subfiles|Neighborhood Watch Ordinance]]
 
|[[Ordinance Subfiles|Neighborhood Watch Ordinance]]
 +
|cSC4OrdinanceNeighborhoodWatch
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 696: Line 835:
 
|
 
|
 
|[[Ordinance Subfiles|Smoke Detector Ordinance]]
 
|[[Ordinance Subfiles|Smoke Detector Ordinance]]
 +
|cSC4OrdinanceMandatorySmokeDetectors
 
|Mostly Decoded
 
|Mostly Decoded
 +
|-
 +
|4c22ae53
 +
|
 +
|
 +
|[[Automata Subfiles#Mass Transit Train Subfile (0x4c22ae53)|El Train and Monorail Automata]]
 +
|cSC4MassTransitTrain
 +
|
 
|-
 
|-
 
|4c0dd224
 
|4c0dd224
Line 702: Line 849:
 
|
 
|
 
|
 
|
 +
|cSC4MayorLimo
 
|
 
|
 
|-
 
|-
Line 708: Line 856:
 
|
 
|
 
|
 
|
 +
|cSC4FirePlaneDispatchSource
 
|
 
|
 
|-
 
|-
Line 714: Line 863:
 
|
 
|
 
|[[Advisor Subfiles#City Situations 4BE372CD|Situation Manager]]
 
|[[Advisor Subfiles#City Situations 4BE372CD|Situation Manager]]
 +
|cSC4AdvisorCitySituations
 
|
 
|
 
|-
 
|-
Line 720: Line 870:
 
|
 
|
 
|Automata
 
|Automata
 +
|cSC4TrailerVehicle
 
|
 
|
 
|-
 
|-
Line 726: Line 877:
 
|
 
|
 
|Automata
 
|Automata
 +
|cSC4TrainCar
 
|
 
|
 
|-
 
|-
Line 732: Line 884:
 
|
 
|
 
|[[Advisor Subfiles#Transportation 4A3AD3E1|Transportation Advisor]]
 
|[[Advisor Subfiles#Transportation 4A3AD3E1|Transportation Advisor]]
 +
|cSC4AdvisorTraffic
 
|
 
|
 
|-
 
|-
Line 737: Line 890:
 
|
 
|
 
|
 
|
|
+
|[[Industry Subfile]]
 +
|cSC4BusinessUnit
 
|
 
|
 
|-
 
|-
Line 744: Line 898:
 
|
 
|
 
|Automata
 
|Automata
 +
|cSC4PatrolCar
 
|
 
|
 
|-
 
|-
Line 750: Line 905:
 
|
 
|
 
|[[Advisor Subfiles#MySim 4A1DBBBF|MySim Advisors]]
 
|[[Advisor Subfiles#MySim 4A1DBBBF|MySim Advisors]]
 +
|cSC4MySim
 
|
 
|
 
|-
 
|-
Line 756: Line 912:
 
|
 
|
 
|
 
|
 +
|cSC4AutomataScriptSystem
 
|
 
|
 
|-
 
|-
Line 762: Line 919:
 
|
 
|
 
|Wildlife Generator
 
|Wildlife Generator
 +
|cSC4AutomataGenerator
 
|
 
|
 
|-
 
|-
Line 768: Line 926:
 
|
 
|
 
|
 
|
 +
|cSC4AdvisorSystem
 
|
 
|
 
|-
 
|-
Line 773: Line 932:
 
|49dd6f4e
 
|49dd6f4e
 
|00000001
 
|00000001
 +
|[[City Pointer]]
 
|
 
|
|
+
|Contains a single pointer to the cSC4City
 
|-
 
|-
 
|49cc1bcd
 
|49cc1bcd
 
|
 
|
 
|
 
|
|
+
||[[Network Subfiles#Network Bridge Subfile (0x49cc1bcd)|Network Bridge Subfile]]
 +
|cSC4NetworkBridgeOccupant
 
|
 
|
 
|-
 
|-
Line 785: Line 946:
 
|
 
|
 
|
 
|
|
+
||[[Network Subfiles#Prebuilt Network Subfile (0x49c1a034)|Prebuilt Network Subfile]]
|
+
|cSC4NetworkOccupantWithPreBuiltModel
 +
|Mostly done
 
|-
 
|-
 
|49c05c9f
 
|49c05c9f
Line 792: Line 954:
 
|
 
|
 
|Lot Retaining Walls
 
|Lot Retaining Walls
 +
|cSC4LotRetainingWallOccupant
 
|
 
|
 
|-
 
|-
Line 798: Line 961:
 
|
 
|
 
|Props
 
|Props
 +
|cSC4FoundationOccupant
 
|
 
|
 
|-
 
|-
Line 803: Line 967:
 
|
 
|
 
|
 
|
|
+
|[[Pipe Occupant Subfile]]
|
+
|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 846: Line 1,017:
 
|
 
|
 
|
 
|
 +
|cSC4COMSerializer::SaveClassObjects
 
|
 
|
 
|-
 
|-
Line 852: Line 1,024:
 
|
 
|
 
|
 
|
 +
|cSC4ResidentialSimulator
 
|
 
|
 
|-
 
|-
Line 858: Line 1,031:
 
|
 
|
 
|
 
|
 +
|cSC4DispatchManager
 
|
 
|
 
|-
 
|-
Line 863: Line 1,037:
 
|
 
|
 
|
 
|
|
+
|[[Zone Developer Subfile]]
|
+
|cSC4ZoneDeveloper
 +
|Done
 
|-
 
|-
 
|42bf1e18
 
|42bf1e18
Line 870: Line 1,045:
 
|
 
|
 
|[[Ordinance Subfiles|Trash Presort Ordinance]]
 
|[[Ordinance Subfiles|Trash Presort Ordinance]]
 +
|cSC4OrdinanceTrashPresort
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 876: Line 1,052:
 
|
 
|
 
|[[Ordinance Subfiles|Free Clinic Ordinance]]
 
|[[Ordinance Subfiles|Free Clinic Ordinance]]
 +
|cSC4OrdinanceFreeClinics
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 882: Line 1,059:
 
|
 
|
 
|Deals
 
|Deals
 +
|
 
|
 
|
 
|-
 
|-
Line 888: Line 1,066:
 
|
 
|
 
|[[Advisor Subfiles#City Planner 2A5F877D|City Planner Advisor]]
 
|[[Advisor Subfiles#City Planner 2A5F877D|City Planner Advisor]]
 +
|cSC4AdvisorCityPlanning
 
|
 
|
 
|-
 
|-
Line 894: Line 1,073:
 
|
 
|
 
|
 
|
 +
|cSC4NeighborDeal
 
|
 
|
 
|-
 
|-
Line 899: Line 1,079:
 
|
 
|
 
|
 
|
|
+
|[[Date Subfile]]
|
+
|cSC4Simulator
 +
|Partially Decoded
 
|-
 
|-
 
|2990c1bc
 
|2990c1bc
Line 906: Line 1,087:
 
|
 
|
 
|Terrain Arrays
 
|Terrain Arrays
 +
|cSC4WeatherSimulator
 
|Basic Overlay Completed
 
|Basic Overlay Completed
 
|-
 
|-
Line 912: Line 1,094:
 
|
 
|
 
|
 
|
 +
|cSC4TractDeveloper
 
|
 
|
 
|-
 
|-
Line 918: Line 1,101:
 
|
 
|
 
|
 
|
 +
|cSC4FireProtectionSimulator
 
|
 
|
 
|-
 
|-
Line 924: Line 1,108:
 
|
 
|
 
|
 
|
 +
|cSC4DemandSimulator
 
|
 
|
 
|-
 
|-
Line 930: Line 1,115:
 
|
 
|
 
|
 
|
 +
|cSC4LotConfigurationManager
 
|
 
|
 
|-
 
|-
Line 935: Line 1,121:
 
|
 
|
 
|
 
|
|
+
|Prop Terrain Decal
 +
|cSC4PropOccupantTerrainDecal
 
|
 
|
 
|-
 
|-
Line 941: Line 1,128:
 
|
 
|
 
|
 
|
|
+
|[[Zone Manager]]
|
+
|cSC4ZoneManager
 +
|Partially decoded
 
|-
 
|-
 
|2977aa49
 
|2977aa49
 
|
 
|
 
|
 
|
|
+
|Prop Visual Effect
 +
|cSC4PropOccupantVisualEffect
 
|
 
|
 
|-
 
|-
Line 954: Line 1,143:
 
|
 
|
 
|[[Prop Subfile]]
 
|[[Prop Subfile]]
 +
|cSC4PropOccupant
 
|
 
|
 
|-
 
|-
Line 960: Line 1,150:
 
|
 
|
 
|[[Ordinance Subfiles|Paper Waste Ordinance]]
 
|[[Ordinance Subfiles|Paper Waste Ordinance]]
 +
|cSC4OrdinancePaperReductionAct
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 966: Line 1,157:
 
|
 
|
 
|[[Ordinance Subfiles|Landfill Gas Ordinance]]
 
|[[Ordinance Subfiles|Landfill Gas Ordinance]]
 +
|cSC4OrdinanceLandfillGasRecovery
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 971: Line 1,163:
 
|4a2482bb
 
|4a2482bb
 
|00000007
 
|00000007
|Temp.PNG file
+
|Temp.[[PNG]] file
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 977: Line 1,170:
 
|4a2482bb
 
|4a2482bb
 
|00000005
 
|00000005
|Temp.PNG file
+
|Temp.[[PNG]] file
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 983: Line 1,177:
 
|4a2482bb
 
|4a2482bb
 
|00000003
 
|00000003
|Temp.PNG file
+
|Temp.[[PNG]] file
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 989: Line 1,184:
 
|4a2482bb
 
|4a2482bb
 
|00000001
 
|00000001
|Temp.PNG file
+
|Temp.[[PNG]] file
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 996: Line 1,192:
 
|
 
|
 
|
 
|
 +
|cSC4PoliceHelicopterDispatchSource
 
|
 
|
 
|-
 
|-
Line 1,002: Line 1,199:
 
|
 
|
 
|[[Advisor Subfiles#My Street Sim 0bf606a5|My Street Sim]]
 
|[[Advisor Subfiles#My Street Sim 0bf606a5|My Street Sim]]
 +
|cSC4MyStreetSim
 
|
 
|
 
|-
 
|-
Line 1,008: Line 1,206:
 
|
 
|
 
|
 
|
 +
|cSC4CitySituationManager
 
|
 
|
 
|-
 
|-
Line 1,013: Line 1,212:
 
|0b7d45e1
 
|0b7d45e1
 
|0b7d45e2
 
|0b7d45e2
 +
|
 
|
 
|
 
|
 
|
Line 1,020: Line 1,220:
 
|
 
|
 
|Reward Requirements
 
|Reward Requirements
 +
|cSC4CivicBuildingSimulator
 
|
 
|
 
|-
 
|-
Line 1,026: Line 1,227:
 
|
 
|
 
|
 
|
 +
|cSC4NeighborConnection
 
|
 
|
 
|-
 
|-
Line 1,032: Line 1,234:
 
|
 
|
 
|
 
|
 +
|cSC4PowerPoleOccupant
 
|
 
|
 
|-
 
|-
Line 1,038: Line 1,241:
 
|
 
|
 
|
 
|
 +
|cSC4Demolition
 
|
 
|
 
|-
 
|-
Line 1,044: Line 1,248:
 
|
 
|
 
|
 
|
 +
|cSC4GrowthDeveloper
 
|
 
|
 
|-
 
|-
Line 1,049: Line 1,254:
 
|
 
|
 
|
 
|
|
+
|[[Plumbing Simulator]]
|
+
|cSC4PlumbingSimulator
 +
|Done
 
|-
 
|-
 
|0990c005
 
|0990c005
Line 1,056: Line 1,262:
 
|
 
|
 
|[[Power Simulator Subfile]]
 
|[[Power Simulator Subfile]]
 +
|cSC4PowerSimulator
 
|Basic Overlay Completed
 
|Basic Overlay Completed
 
|-
 
|-
Line 1,062: Line 1,269:
 
|
 
|
 
|
 
|
 +
|cSC4AuraSimulator
 
|
 
|
 
|-
 
|-
Line 1,067: Line 1,275:
 
|
 
|
 
|
 
|
|
+
|[[Item Index Subfile]]
 +
|cSC4OccupantManager
 
|
 
|
 
|-
 
|-
Line 1,074: Line 1,283:
 
|
 
|
 
|
 
|
 +
|cSC4Watercraft
 
|
 
|
 
|-
 
|-
Line 1,080: Line 1,290:
 
|
 
|
 
|[[Ordinance Subfiles|Water Conservation Ordinance]]
 
|[[Ordinance Subfiles|Water Conservation Ordinance]]
 +
|cSC4OrdinanceWaterConservation
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 1,086: Line 1,297:
 
|
 
|
 
|[[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 10:50, 13 January 2025


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.

A JavaScript library is available with implementations of various subfiles on GitHub: https://github.com/sebamarynissen/sc4 It automatically recalculates the checksums upon saving, so it can be used to modify 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:

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 Terrain subfiles 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 Terrain subfiles cSTETerrainView3D
c990c0a4 cSC4NeighborsSimulator
c990c034 cSC4FloraSimulator
c990bd46 Network Manager Subfile cSC4NetworkManager Fully decoded
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 Terrain Subfiles cSTETerrain::SaveMiscTerrainData
8a91e7e0 e98f9525 00000002 Terrain Subfiles 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 City Pointer Contains a single pointer to the cSC4City
49cc1bcd Network Bridge Subfile 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