Difference between revisions of "Savegame"

From SC4D Encyclopaedia
Jump to navigation Jump to search
sc4e>Jdenm8
m (→‎Files Within Savegames: include Monorail)
 
(32 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.
  
 
==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 34:
 
!Instance ID
 
!Instance ID
 
!Name
 
!Name
 +
!C++ Class
 
!Status
 
!Status
 
|-
 
|-
Line 18: Line 41:
 
|
 
|
 
|
 
|
 +
|cSC4CityDetailManager
 
|
 
|
 
|-
 
|-
Line 23: Line 47:
 
|
 
|
 
|
 
|
|[[Advisors|Environmental Advisor/Fluffy News Advisor]]
+
|[[Advisor Subfiles#Environmental EAC937B4|Environmental Advisor/Fluffy News Advisor]]
|
+
|cSC4Advisor
 +
|
 
|-
 
|-
 
|ea863423
 
|ea863423
Line 30: Line 55:
 
|
 
|
 
|
 
|
 +
|cSC4GetawayVan
 
|
 
|
 
|-
 
|-
Line 36: Line 62:
 
|ea3ff4f5
 
|ea3ff4f5
 
|Separator File
 
|Separator File
 +
|SC4ReadAppLoadSaveVersion
 
|Done
 
|Done
 
|-
 
|-
Line 42: Line 69:
 
|
 
|
 
|
 
|
 +
|cSC4SeaportDeveloper
 
|
 
|
 
|-
 
|-
Line 47: Line 75:
 
|
 
|
 
|
 
|
|[[Advisors|Public Safety Advisor]]
+
|[[Advisor Subfiles#Public Safety EA19E825|Public Safety Advisor]]
 +
|cSC4AdvisorSafety
 
|
 
|
 
|-
 
|-
Line 54: Line 83:
 
|
 
|
 
|
 
|
 +
|cSC4PipeConnectionOccupant
 
|
 
|
 
|-
 
|-
Line 60: Line 90:
 
|
 
|
 
|
 
|
 +
|cSC4LandfillDeveloper
 
|
 
|
 
|-
 
|-
Line 66: Line 97:
 
|
 
|
 
|
 
|
 +
|cSC43DRender
 
|
 
|
 
|-
 
|-
Line 72: Line 104:
 
|
 
|
 
|
 
|
 +
|cSC4NetworkLotManager
 
|
 
|
 
|-
 
|-
Line 78: Line 111:
 
|
 
|
 
|
 
|
 +
|cSC4LandValueSimulator
 
|
 
|
 
|-
 
|-
Line 84: Line 118:
 
|
 
|
 
|
 
|
 +
|cSC4FlammabilitySimulator
 
|
 
|
 
|-
 
|-
Line 89: Line 124:
 
|
 
|
 
|
 
|
|[[Budget File|Taxes]]
+
|[[Budget Subfile]]
 +
|cSC4DepartmentBudget
 
|Partially Decoded
 
|Partially Decoded
 
|-
 
|-
Line 95: Line 131:
 
|
 
|
 
|
 
|
|[[Budget File|Taxes and City Money]]
+
|[[Budget Subfile]]
 +
|cSC4BudgetSimulator
 
|Partially Decoded
 
|Partially Decoded
 
|-
 
|-
Line 102: Line 139:
 
|
 
|
 
|
 
|
 +
|cSTETerrain
 
|
 
|
 
|-
 
|-
Line 108: Line 146:
 
|286b1f03
 
|286b1f03
 
|[[DIR|Directory File]]
 
|[[DIR|Directory File]]
 +
|cGZDBSegmentPackedFile
 
|Done
 
|Done
 
|-
 
|-
Line 113: Line 152:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Pro-Reading Ordinance]]
+
|[[Ordinance Subfiles|Pro-Reading Ordinance]]
 +
|cSC4OrdinanceProReadingCampaign
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 119: Line 159:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Nuclear-Free Ordinance]]
+
|[[Ordinance Subfiles|Nuclear-Free Ordinance]]
 +
|cSC4OrdinanceNuclearFreeZone
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 126: Line 167:
 
|
 
|
 
|Advisor?
 
|Advisor?
 +
|cSC4Airplane
 
|
 
|
 
|-
 
|-
Line 132: Line 174:
 
|
 
|
 
|
 
|
 +
|cSC4MySimDispatch
 
|
 
|
 
|-
 
|-
Line 138: Line 181:
 
|
 
|
 
|
 
|
 +
|cSC4CarjackedVehicle
 
|
 
|
 
|-
 
|-
Line 143: Line 187:
 
|
 
|
 
|
 
|
|[[Advisors|Utilities Advisor]]
+
|[[Advisor Subfiles#Utilities CA2C2A2F|Utilities Advisor]]
 +
|cSC4AdvisorUtility
 
|
 
|
 
|-
 
|-
Line 150: Line 195:
 
|
 
|
 
|[[Network Subfiles#Network Subfile 2 (CA16374F)|Network Subfile 2]]
 
|[[Network Subfiles#Network Subfile 2 (CA16374F)|Network Subfile 2]]
 +
|cSC4SubwayOccupant
 
|Done
 
|Done
 
|-
 
|-
Line 156: Line 202:
 
|
 
|
 
|
 
|
 +
|cSC4SubwayConnectionOccupant
 
|
 
|
 
|-
 
|-
Line 162: Line 209:
 
|
 
|
 
|
 
|
 +
|cSC4AutomataControllerManager
 
|
 
|
 
|-
 
|-
Line 167: Line 215:
 
|
 
|
 
|
 
|
|Advisor?
+
|Advisor? (The template for the other advisors?)
 +
|cSC4AdvisorBase
 
|
 
|
 
|-
 
|-
Line 173: Line 222:
 
|ca027ee1
 
|ca027ee1
 
|
 
|
|[[Region View (Savegame)|Region View City Data]]
+
|[[Region View Subfiles|Region View City Data]]
 +
|SC4ReadRegionalCity
 
|Partially Decoded
 
|Partially Decoded
 
|-
 
|-
Line 180: Line 230:
 
|
 
|
 
|
 
|
 +
|cSC4PropOccupantBurntBuilding
 
|
 
|
 
|-
 
|-
Line 186: Line 237:
 
|
 
|
 
|
 
|
 +
|cSC4CameraControl
 
|
 
|
 
|-
 
|-
Line 192: Line 244:
 
|
 
|
 
|[[Network Subfiles#Network Subfile 1 (C9C05C6E)|Network Subfile 1]]
 
|[[Network Subfiles#Network Subfile 1 (C9C05C6E)|Network Subfile 1]]
 +
|cSC4NetworkOccupant
 
|Done
 
|Done
 
|-
 
|-
Line 198: Line 251:
 
|
 
|
 
|
 
|
 +
|cSC4PowerLineOccupant
 
|
 
|
 
|-
 
|-
Line 203: Line 257:
 
|
 
|
 
|
 
|
|Building Occupancy & Desirability
+
|[[Lot Subfile]]
 +
|cSC4Lot
 
|
 
|
 
|-
 
|-
Line 210: Line 265:
 
|
 
|
 
|
 
|
 +
|cSTETerrainView3D
 
|
 
|
 
|-
 
|-
Line 216: Line 272:
 
|
 
|
 
|
 
|
 +
|cSC4NeighborsSimulator
 
|
 
|
 
|-
 
|-
Line 222: Line 279:
 
|
 
|
 
|
 
|
 +
|cSC4FloraSimulator
 
|
 
|
 
|-
 
|-
Line 228: Line 286:
 
|
 
|
 
|
 
|
 +
|cSC4NetworkManager
 
|
 
|
 
|-
 
|-
Line 234: Line 293:
 
|
 
|
 
|
 
|
 +
|cSC4AircraftManager
 
|
 
|
 
|-
 
|-
Line 240: Line 300:
 
|
 
|
 
|
 
|
 +
|cSC4PedestrianManager
 
|
 
|
 
|-
 
|-
Line 245: Line 306:
 
|
 
|
 
|
 
|
|
+
|[[Texture Subfile]]
|
+
|cSC4LotBaseTextureOccupant
 +
|Mostly Decoded
 
|-
 
|-
 
|c2f6e81f
 
|c2f6e81f
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Tire Recycling Ordinance]]
+
|[[Ordinance Subfiles|Tire Recycling Ordinance]]
 +
|cSC4OrdinanceTireRecycling
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 257: Line 320:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Auto Emission Ordinance]]
+
|[[Ordinance Subfiles|Auto Emission Ordinance]]
 +
|cSC4OrdinanceVehicleEmissionStandard
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 263: Line 327:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Youth Curfew Ordinance]]
+
|[[Ordinance Subfiles|Youth Curfew Ordinance]]
 +
|cSC4OrdinanceYouthCurfew
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 270: Line 335:
 
|
 
|
 
|Signs
 
|Signs
 +
|cSC4SignpostOccupant
 
|
 
|
 
|-
 
|-
Line 276: Line 342:
 
|
 
|
 
|Automata
 
|Automata
 +
|cSC4Bus
 
|
 
|
 
|-
 
|-
Line 281: Line 348:
 
|
 
|
 
|
 
|
|[[Advisors|Finance Advisor]]
+
|[[Advisor Subfiles#Finances AA5292D7|Finance Advisor]]
 +
|cSC4AdvisorFinance
 
|
 
|
 
|-
 
|-
Line 288: Line 356:
 
|
 
|
 
|
 
|
 +
|cSC4ParkManager
 
|
 
|
 
|-
 
|-
Line 293: Line 362:
 
|
 
|
 
|
 
|
|
+
|[[Tutorial Subfile]]
 +
|cSC4TutorialSystem
 
|
 
|
 
|-
 
|-
Line 299: Line 369:
 
|
 
|
 
|
 
|
|[[Advice]]
+
|[[Advice Subfiles#Reward aa371c32|Reward Advice Subfile]]
 +
|cSC4RewardAdvice
 
|
 
|
 
|-
 
|-
Line 305: Line 376:
 
|
 
|
 
|
 
|
|[[Budget File|Taxes]]
+
|[[Budget Subfile]]
 +
|cSC4LineItem
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 312: Line 384:
 
|
 
|
 
|
 
|
 +
|cSC4AirportDeveloper
 
|
 
|
 
|-
 
|-
Line 318: Line 391:
 
|
 
|
 
|
 
|
 +
|cSC4PedestrianOneShot
 
|
 
|
 
|-
 
|-
Line 324: Line 398:
 
|00000067
 
|00000067
 
|Reconcile Map South Side
 
|Reconcile Map South Side
 +
|cSTETerrain::SaveEdgeAltitudes
 
|Almost Complete
 
|Almost Complete
 
|-
 
|-
Line 330: Line 405:
 
|00000066
 
|00000066
 
|Reconcile Map East Side
 
|Reconcile Map East Side
 +
|cSTETerrain::SaveEdgeAltitudes
 
|Almost Complete
 
|Almost Complete
 
|-
 
|-
Line 336: Line 412:
 
|00000065
 
|00000065
 
|Reconcile Map North Side
 
|Reconcile Map North Side
 +
|cSTETerrain::SaveEdgeAltitudes
 
|Almost Complete
 
|Almost Complete
 
|-
 
|-
Line 342: Line 419:
 
|00000064
 
|00000064
 
|Reconcile Map West Side
 
|Reconcile Map West Side
 +
|cSTETerrain::SaveEdgeAltitudes
 
|Almost Complete
 
|Almost Complete
 
|-
 
|-
Line 348: Line 426:
 
|00000001
 
|00000001
 
|Terrain Map
 
|Terrain Map
 +
|cSTETerrain::SaveAltitudes
 
|Done
 
|Done
 
|-
 
|-
Line 354: Line 433:
 
|00000001
 
|00000001
 
|
 
|
|
+
|cSC4View3DWin
 +
|
 
|-
 
|-
 
|a9c741b3
 
|a9c741b3
Line 360: Line 440:
 
|
 
|
 
|
 
|
 +
|cSC4ModelMaker
 
|
 
|
 
|-
 
|-
Line 365: Line 446:
 
|
 
|
 
|
 
|
|[[Trees File (Savegame)|Trees]]
+
|[[Flora Subfile]]
 +
|cSC4FloraOccupant
 
|
 
|
 
|-
 
|-
Line 371: Line 453:
 
|
 
|
 
|
 
|
|[[Building File|Buildings]]
+
|[[Building Subfile]]
 +
|cSC4BuildingOccupant
 
|Basic Overlay Done
 
|Basic Overlay Done
 
|-
 
|-
Line 378: Line 461:
 
|
 
|
 
|
 
|
 +
|cSC4Occupant
 
|
 
|
 
|-
 
|-
Line 384: Line 468:
 
|
 
|
 
|
 
|
 +
|cSC4OrdinanceSimulator
 
|
 
|
 
|-
 
|-
Line 390: Line 475:
 
|
 
|
 
|
 
|
 +
|cSC4IndustrialSimulator
 
|
 
|
 
|-
 
|-
Line 395: Line 481:
 
|
 
|
 
|
 
|
|
+
|[[Lot Developer Subfile]]
|
+
|cSC4LotDeveloper
 +
|Done
 
|-
 
|-
 
|a990bd10
 
|a990bd10
Line 402: Line 489:
 
|
 
|
 
|
 
|
 +
|cSC4PropManager
 
|
 
|
 
|-
 
|-
Line 408: Line 496:
 
|
 
|
 
|
 
|
 +
|cSC4VehicleManager
 
|
 
|
 
|-
 
|-
Line 414: Line 503:
 
|
 
|
 
|
 
|
 +
|cSC4WatercraftManager
 
|
 
|
 
|-
 
|-
Line 420: Line 510:
 
|
 
|
 
|
 
|
 +
|cSC4ConstructionOccupant
 
|
 
|
 
|-
 
|-
Line 426: Line 517:
 
|
 
|
 
|
 
|
 +
|cSC424HourClock
 
|
 
|
 
|-
 
|-
Line 431: Line 523:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Clean Air Ordinance]]
+
|[[Ordinance Subfiles|Clean Air Ordinance]]
 +
|cSC4OrdinanceCleanAir
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 437: Line 530:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Commuter Shuttle Ordinance]]
+
|[[Ordinance Subfiles|Commuter Shuttle Ordinance]]
 +
|cSC4OrdinanceShuttleService
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 443: Line 537:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Carpool Ordinance]]
+
|[[Ordinance Subfiles|Carpool Ordinance]]
 +
|cSC4OrdinanceCarpoolIncentive
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 449: Line 544:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Legal Gambling Ordinance]]
+
|[[Ordinance Subfiles|Legal Gambling Ordinance]]
 +
|cSC4OrdinanceLegalizeGambling
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 455: Line 551:
 
|
 
|
 
|
 
|
|
+
|[[Advice Subfiles#City Situations 8be3753b|City Situations Advice Subfile]]
 +
|cSC4CitySituationAdvice
 
|
 
|
 
|-
 
|-
Line 462: Line 559:
 
|
 
|
 
|
 
|
 +
|cSC4Helicopter
 
|
 
|
 
|-
 
|-
Line 468: Line 566:
 
|
 
|
 
|Painted Labels
 
|Painted Labels
 +
|cSC4TextDecalOccupant
 
|
 
|
 
|-
 
|-
Line 474: Line 573:
 
|00000003
 
|00000003
 
|
 
|
 +
|cSTETerrain::SaveMiscTerrainData
 
|
 
|
 
|-
 
|-
Line 480: Line 580:
 
|00000002
 
|00000002
 
|
 
|
|
+
|cSTETerrain::SaveVertexProperties
 +
|
 
|-
 
|-
 
|8a4bd52b
 
|8a4bd52b
 
|
 
|
 
|
 
|
|
+
||[[Network Subfiles#Network Tunnel Subfile (0x8a4bd52b)|Network Tunnel Subfile]]
 +
|cSC4NetworkTunnelOccupant
 
|
 
|
 
|-
 
|-
Line 492: Line 594:
 
|
 
|
 
|
 
|
 +
|cSC4Train
 
|
 
|
 
|-
 
|-
Line 497: Line 600:
 
|4a2492bb
 
|4a2492bb
 
|00000006
 
|00000006
|PNG File
+
|[[PNG]] File
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 503: Line 607:
 
|4a2492bb
 
|4a2492bb
 
|00000004
 
|00000004
|PNG File
+
|[[PNG]] File
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 509: Line 614:
 
|4a2492bb
 
|4a2492bb
 
|00000002
 
|00000002
|PNG File
+
|[[PNG]] File
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 515: Line 621:
 
|4a2492bb
 
|4a2492bb
 
|00000000
 
|00000000
|PNG File
+
|[[PNG]] File
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 522: Line 629:
 
|
 
|
 
|
 
|
 +
|cSC4LandfillOccupant
 
|
 
|
 
|-
 
|-
Line 527: Line 635:
 
|
 
|
 
|
 
|
|[[Advice]]
+
|[[Advice Subfiles]]
 +
|cSC4Advice
 
|
 
|
 
|-
 
|-
Line 533: Line 642:
 
|
 
|
 
|
 
|
|[[Historical Graphs|Historical Data of City/Graph Data]]
+
|[[Historical Graphs Subfiles|Historical Data of City/Graph Data]]
 +
|cSC4HistoryWarehouse
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 540: Line 650:
 
|
 
|
 
|
 
|
|
+
|cSC4AutoSaveRecord
 +
|Stores cGZCheatCodeManager::GetCheatCodeSaveData
 
|-
 
|-
 
|89c49986
 
|89c49986
Line 546: Line 657:
 
|
 
|
 
|
 
|
 +
|cSC4WealthRequester
 
|
 
|
 
|-
 
|-
Line 552: Line 664:
 
|
 
|
 
|
 
|
 +
|cSC4PropDeveloper
 
|
 
|
 
|-
 
|-
Line 558: Line 671:
 
|
 
|
 
|Mayor View City Data
 
|Mayor View City Data
 +
|cSC4City
 
|
 
|
 
|-
 
|-
Line 564: Line 678:
 
|
 
|
 
|
 
|
 +
|cSC4Demand
 
|
 
|
 
|-
 
|-
Line 570: Line 685:
 
|
 
|
 
|
 
|
 +
|cSC4CrimeSimulator
 
|
 
|
 
|-
 
|-
Line 576: Line 692:
 
|
 
|
 
|
 
|
 +
|cSC4CommercialSimulator
 
|
 
|
 
|-
 
|-
Line 582: Line 699:
 
|
 
|
 
|Water Pollution
 
|Water Pollution
 +
|cSC4PollutionSimulator
 
|
 
|
 
|-
 
|-
Line 588: Line 706:
 
|
 
|
 
|
 
|
 +
|cSC4BuildingDevelopmentSimulator
 
|
 
|
 
|-
 
|-
Line 594: Line 713:
 
|
 
|
 
|
 
|
 +
|cSC4Pedestrian
 
|
 
|
 
|-
 
|-
Line 599: Line 719:
 
|
 
|
 
|
 
|
|Road Construction Automata
+
|[[Automata Subfiles#Vehicle Automata Subfile (0x896e714a)|Vehicle Automata]]
 +
|cSC4Vehicle
 
|
 
|
 
|-
 
|-
Line 605: Line 726:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Power Conservation Ordinance]]
+
|[[Ordinance Subfiles|Power Conservation Ordinance]]
 +
|cSC4OrdinancePowerConservation
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 611: Line 733:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Junior Sports Ordinance]]
+
|[[Ordinance Subfiles|Junior Sports Ordinance]]
 +
|cSC4OrdinanceJuniorSportsLeague
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 618: Line 741:
 
|
 
|
 
|
 
|
 +
|cSC4Ambulance
 
|
 
|
 
|-
 
|-
Line 624: Line 748:
 
|
 
|
 
|
 
|
 +
|cSC4MySimBalloonAdvice
 
|
 
|
 
|-
 
|-
Line 629: Line 754:
 
|
 
|
 
|
 
|
|[[Advice]]
+
|[[Advice Subfiles#MySim 6a9335de|MySim Advice Subfile]]
 +
|cSC4MySimAdvice
 
|
 
|
 
|-
 
|-
Line 635: Line 761:
 
|
 
|
 
|
 
|
|[[Advisors|Health & Education Advisor]]
+
|[[Advisor Subfiles#Health and Education 6A5F8755|Health & Education Advisor]]
 +
|cSC4AdvisorHQ
 
|
 
|
 
|-
 
|-
Line 641: Line 768:
 
|
 
|
 
|
 
|
|[[Advice]]
+
|[[Advice Subfiles]]
 +
|cSC4AdviceNeghborDeal
 
|
 
|
 
|-
 
|-
Line 648: Line 776:
 
|
 
|
 
|
 
|
 +
|cSC4AdviceSubject
 
|
 
|
 
|-
 
|-
Line 654: Line 783:
 
|
 
|
 
|
 
|
 +
|cSC4AutomataAttractor
 
|
 
|
 
|-
 
|-
Line 660: Line 790:
 
|
 
|
 
|[[Network Subfiles#Network Index Subfile (6A0F82B2)|Network Index Subfile]]
 
|[[Network Subfiles#Network Index Subfile (6A0F82B2)|Network Index Subfile]]
 +
|cSC4TrafficNetworkMap
 
|Decoded
 
|Decoded
 
|-
 
|-
Line 666: Line 797:
 
|
 
|
 
|Sims to Jobs Match
 
|Sims to Jobs Match
 +
|cSC4TrafficSimulator
 
|
 
|
 
|-
 
|-
Line 672: Line 804:
 
|
 
|
 
|
 
|
 +
|cSC4PoliceSimulator
 +
|
 +
|-
 +
|6534284a
 +
|
 +
|
 +
|[[Exemplar|Type 10 Exemplars]]
 
|
 
|
 +
|Decoded.
 
|-
 
|-
 
|62f6e7cf
 
|62f6e7cf
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Tourism Ordinance]]
+
|[[Ordinance Subfiles|Tourism Ordinance]]
 +
|cSC4OrdinanceTouristPromotion
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 683: Line 824:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Neighborhood Watch Ordinance]]
+
|[[Ordinance Subfiles|Neighborhood Watch Ordinance]]
 +
|cSC4OrdinanceNeighborhoodWatch
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 689: Line 831:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|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 696: Line 846:
 
|
 
|
 
|
 
|
 +
|cSC4MayorLimo
 
|
 
|
 
|-
 
|-
Line 702: Line 853:
 
|
 
|
 
|
 
|
 +
|cSC4FirePlaneDispatchSource
 
|
 
|
 
|-
 
|-
Line 707: Line 859:
 
|
 
|
 
|
 
|
|Situation Manager
+
|[[Advisor Subfiles#City Situations 4BE372CD|Situation Manager]]
 +
|cSC4AdvisorCitySituations
 
|
 
|
 
|-
 
|-
Line 714: Line 867:
 
|
 
|
 
|Automata
 
|Automata
 +
|cSC4TrailerVehicle
 
|
 
|
 
|-
 
|-
Line 720: Line 874:
 
|
 
|
 
|Automata
 
|Automata
 +
|cSC4TrainCar
 
|
 
|
 
|-
 
|-
Line 725: Line 880:
 
|
 
|
 
|
 
|
|[[Advisors|Transportation Advisor]]
+
|[[Advisor Subfiles#Transportation 4A3AD3E1|Transportation Advisor]]
 +
|cSC4AdvisorTraffic
 
|
 
|
 
|-
 
|-
Line 731: Line 887:
 
|
 
|
 
|
 
|
|
+
|[[Industry Subfile]]
 +
|cSC4BusinessUnit
 
|
 
|
 
|-
 
|-
Line 738: Line 895:
 
|
 
|
 
|Automata
 
|Automata
 +
|cSC4PatrolCar
 
|
 
|
 
|-
 
|-
Line 743: Line 901:
 
|
 
|
 
|
 
|
|MySim
+
|[[Advisor Subfiles#MySim 4A1DBBBF|MySim Advisors]]
 +
|cSC4MySim
 
|
 
|
 
|-
 
|-
Line 750: Line 909:
 
|
 
|
 
|
 
|
 +
|cSC4AutomataScriptSystem
 
|
 
|
 
|-
 
|-
Line 756: Line 916:
 
|
 
|
 
|Wildlife Generator
 
|Wildlife Generator
 +
|cSC4AutomataGenerator
 
|
 
|
 
|-
 
|-
Line 762: Line 923:
 
|
 
|
 
|
 
|
 +
|cSC4AdvisorSystem
 
|
 
|
 
|-
 
|-
Line 767: Line 929:
 
|49dd6f4e
 
|49dd6f4e
 
|00000001
 
|00000001
 +
|
 
|
 
|
 
|
 
|
Line 774: Line 937:
 
|
 
|
 
|
 
|
 +
|cSC4NetworkBridgeOccupant
 
|
 
|
 
|-
 
|-
Line 779: Line 943:
 
|
 
|
 
|
 
|
|
+
||[[Network Subfiles#Prebuilt Network Subfile (0x49c1a034)|Prebuilt Network Subfile]]
|
+
|cSC4NetworkOccupantWithPreBuiltModel
 +
|Mostly done
 
|-
 
|-
 
|49c05c9f
 
|49c05c9f
Line 786: Line 951:
 
|
 
|
 
|Lot Retaining Walls
 
|Lot Retaining Walls
 +
|cSC4LotRetainingWallOccupant
 
|
 
|
 
|-
 
|-
Line 792: Line 958:
 
|
 
|
 
|Props
 
|Props
 +
|cSC4FoundationOccupant
 
|
 
|
 
|-
 
|-
Line 797: Line 964:
 
|
 
|
 
|
 
|
|
+
|[[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 840: Line 1,014:
 
|
 
|
 
|
 
|
 +
|cSC4COMSerializer::SaveClassObjects
 
|
 
|
 
|-
 
|-
Line 846: Line 1,021:
 
|
 
|
 
|
 
|
 +
|cSC4ResidentialSimulator
 
|
 
|
 
|-
 
|-
Line 852: Line 1,028:
 
|
 
|
 
|
 
|
 +
|cSC4DispatchManager
 
|
 
|
 
|-
 
|-
Line 857: Line 1,034:
 
|
 
|
 
|
 
|
|
+
|[[Zone Developer Subfile]]
|
+
|cSC4ZoneDeveloper
 +
|Done
 
|-
 
|-
 
|42bf1e18
 
|42bf1e18
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Trash Presort Ordinance]]
+
|[[Ordinance Subfiles|Trash Presort Ordinance]]
 +
|cSC4OrdinanceTrashPresort
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 869: Line 1,048:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Free Clinic Ordinance]]
+
|[[Ordinance Subfiles|Free Clinic Ordinance]]
 +
|cSC4OrdinanceFreeClinics
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 876: Line 1,056:
 
|
 
|
 
|Deals
 
|Deals
 +
|
 
|
 
|
 
|-
 
|-
Line 881: Line 1,062:
 
|
 
|
 
|
 
|
|[[Advisors|City Planner Advisor]]
+
|[[Advisor Subfiles#City Planner 2A5F877D|City Planner Advisor]]
 +
|cSC4AdvisorCityPlanning
 
|
 
|
 
|-
 
|-
Line 888: Line 1,070:
 
|
 
|
 
|
 
|
 +
|cSC4NeighborDeal
 
|
 
|
 
|-
 
|-
Line 893: Line 1,076:
 
|
 
|
 
|
 
|
|
+
|[[Date Subfile]]
|
+
|cSC4Simulator
 +
|Partially Decoded
 
|-
 
|-
 
|2990c1bc
 
|2990c1bc
Line 900: Line 1,084:
 
|
 
|
 
|Terrain Arrays
 
|Terrain Arrays
 +
|cSC4WeatherSimulator
 
|Basic Overlay Completed
 
|Basic Overlay Completed
 
|-
 
|-
Line 906: Line 1,091:
 
|
 
|
 
|
 
|
 +
|cSC4TractDeveloper
 
|
 
|
 
|-
 
|-
Line 912: Line 1,098:
 
|
 
|
 
|
 
|
 +
|cSC4FireProtectionSimulator
 
|
 
|
 
|-
 
|-
Line 918: Line 1,105:
 
|
 
|
 
|
 
|
 +
|cSC4DemandSimulator
 
|
 
|
 
|-
 
|-
Line 924: Line 1,112:
 
|
 
|
 
|
 
|
 +
|cSC4LotConfigurationManager
 
|
 
|
 
|-
 
|-
Line 929: Line 1,118:
 
|
 
|
 
|
 
|
|
+
|Prop Terrain Decal
 +
|cSC4PropOccupantTerrainDecal
 
|
 
|
 
|-
 
|-
Line 935: Line 1,125:
 
|
 
|
 
|
 
|
|
+
|[[Zone Manager]]
|
+
|cSC4ZoneManager
 +
|Partially decoded
 
|-
 
|-
 
|2977aa49
 
|2977aa49
 
|
 
|
 
|
 
|
|
+
|Prop Visual Effect
 +
|cSC4PropOccupantVisualEffect
 
|
 
|
 
|-
 
|-
Line 947: Line 1,139:
 
|
 
|
 
|
 
|
|Network Props
+
|[[Prop Subfile]]
 +
|cSC4PropOccupant
 
|
 
|
 
|-
 
|-
Line 953: Line 1,146:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Paper Waste Ordinance]]
+
|[[Ordinance Subfiles|Paper Waste Ordinance]]
 +
|cSC4OrdinancePaperReductionAct
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 959: Line 1,153:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Landfill Gas Ordinance]]
+
|[[Ordinance Subfiles|Landfill Gas Ordinance]]
 +
|cSC4OrdinanceLandfillGasRecovery
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 965: Line 1,160:
 
|4a2482bb
 
|4a2482bb
 
|00000007
 
|00000007
|Temp.PNG file
+
|Temp.[[PNG]] file
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 971: Line 1,167:
 
|4a2482bb
 
|4a2482bb
 
|00000005
 
|00000005
|Temp.PNG file
+
|Temp.[[PNG]] file
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 977: Line 1,174:
 
|4a2482bb
 
|4a2482bb
 
|00000003
 
|00000003
|Temp.PNG file
+
|Temp.[[PNG]] file
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 983: Line 1,181:
 
|4a2482bb
 
|4a2482bb
 
|00000001
 
|00000001
|Temp.PNG file
+
|Temp.[[PNG]] file
 +
|cSC4City::WriteRegionViewThumbnail
 
|Done
 
|Done
 
|-
 
|-
Line 990: Line 1,189:
 
|
 
|
 
|
 
|
 +
|cSC4PoliceHelicopterDispatchSource
 
|
 
|
 
|-
 
|-
Line 995: Line 1,195:
 
|
 
|
 
|
 
|
|My Street Sim
+
|[[Advisor Subfiles#My Street Sim 0bf606a5|My Street Sim]]
 +
|cSC4MyStreetSim
 
|
 
|
 
|-
 
|-
Line 1,002: Line 1,203:
 
|
 
|
 
|
 
|
 +
|cSC4CitySituationManager
 
|
 
|
 
|-
 
|-
Line 1,007: Line 1,209:
 
|0b7d45e1
 
|0b7d45e1
 
|0b7d45e2
 
|0b7d45e2
 +
|
 
|
 
|
 
|
 
|
Line 1,014: Line 1,217:
 
|
 
|
 
|Reward Requirements
 
|Reward Requirements
 +
|cSC4CivicBuildingSimulator
 
|
 
|
 
|-
 
|-
Line 1,020: Line 1,224:
 
|
 
|
 
|
 
|
 +
|cSC4NeighborConnection
 
|
 
|
 
|-
 
|-
Line 1,026: Line 1,231:
 
|
 
|
 
|
 
|
 +
|cSC4PowerPoleOccupant
 
|
 
|
 
|-
 
|-
Line 1,032: Line 1,238:
 
|
 
|
 
|
 
|
 +
|cSC4Demolition
 
|
 
|
 
|-
 
|-
Line 1,038: Line 1,245:
 
|
 
|
 
|
 
|
 +
|cSC4GrowthDeveloper
 
|
 
|
 
|-
 
|-
Line 1,043: Line 1,251:
 
|
 
|
 
|
 
|
|
+
|[[Plumbing Simulator]]
|
+
|cSC4PlumbingSimulator
 +
|Done
 
|-
 
|-
 
|0990c005
 
|0990c005
 
|
 
|
 
|
 
|
|[[Power Simulator]]
+
|[[Power Simulator Subfile]]
 +
|cSC4PowerSimulator
 
|Basic Overlay Completed
 
|Basic Overlay Completed
 
|-
 
|-
Line 1,056: Line 1,266:
 
|
 
|
 
|
 
|
 +
|cSC4AuraSimulator
 
|
 
|
 
|-
 
|-
Line 1,061: Line 1,272:
 
|
 
|
 
|
 
|
|
+
|[[Item Index Subfile]]
 +
|cSC4OccupantManager
 
|
 
|
 
|-
 
|-
Line 1,068: Line 1,280:
 
|
 
|
 
|
 
|
 +
|cSC4Watercraft
 
|
 
|
 
|-
 
|-
Line 1,073: Line 1,286:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|Water Conservation Ordinance]]
+
|[[Ordinance Subfiles|Water Conservation Ordinance]]
 +
|cSC4OrdinanceWaterConservation
 
|Mostly Decoded
 
|Mostly Decoded
 
|-
 
|-
Line 1,079: Line 1,293:
 
|
 
|
 
|
 
|
|[[Ordinance Format (Savegame)|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


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