Difference between revisions of "Savegame"
sc4e>Whatevermind (added link to date subfile) |
|||
(32 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. | ||
+ | |||
+ | 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== | ||
− | + | 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 | ||
+ | |||
+ | * 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" | + | {|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 204: | Line 261: | ||
| | | | ||
|[[Lot Subfile]] | |[[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 294: | Line 366: | ||
| | | | ||
|[[Tutorial Subfile]] | |[[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: | ||
| | | | ||
| | | | ||
− | | | + | |[[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 738: | Line 891: | ||
| | | | ||
|[[Industry Subfile]] | |[[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 900: | Line 1,080: | ||
| | | | ||
|[[Date Subfile]] | |[[Date Subfile]] | ||
+ | |cSC4Simulator | ||
|Partially Decoded | |Partially Decoded | ||
|- | |- | ||
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,068: | Line 1,276: | ||
| | | | ||
|[[Item Index Subfile]] | |[[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
![]() |
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.
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
|