The title says it all. Endless hours spent combing every possible thread here, at ST and elsewhere in the SC4 fansite world has produced not even a hint as to how this might be done. There does not appear to be any cheat that works, or way to access this setting through a program such as the Reader. Yet it would appear to be a simple issue- somewhere in each instance of a game file there is probably a several byte location that contains a number that is nothing more than an incremental counter, and that the game .exe interprets as a date each time the game boots up the instance and to which a new counter number is written each time the instance is saved.
Where is this memory location, and is it possible to write a simply utility to change it at will?
Or are we just doomed slaves to the unremitting forward progress of time?
The floor is open for discussion!
David
I don't know anything about where that may be, try saving a copy of the city's DAT and then running the city, and then exiting and comparing the DATs. Also, I don't really see the need to do this, what use would it be? No-one includes the date in their MDs so I just don't see how it could be of any use. It would be nice to be able to though.
Fred
David,
I'm with ya buddy. I have done the same thing. I've searched for hours and tried everything to reset (more like set) the date. I can't figure it out either. I thought there was a cheat to do it but if there is I can't figure out how to get it to work.
---Gaston
Hi David
The time must be saved in the savegame of the city, unfortunatly it seems that the bits where this info is stored is not yet found.
It should be in the MayorView City data entry. We need more investigation on that entry
Take care
Has anyone ever created a map of the structure of the file? It would be vastly helpful to have a general idea where to look. I'm happy to do the "scut-work" of comparating two saved game files, but it would be great to have a point in the right direction as to where to start looking.
I presume the thing to do is take three small completely flat and undeveloped quads, stop the first on January 31, 01, the second on March 31, 01, and the last on May 31, 01, and just start comparing.
We'll see- thanks, Stephane (wouanagaine), for your feedback.
David
Quote from: dedgren on May 06, 2007, 02:52:00 PM
Has anyone ever created a map of the structure of the file? It would be vastly helpful to have a general idea where to look. I'm happy to do the "scut-work" of comparating two saved game files, but it would be great to have a point in the right direction as to where to start looking.
I presume the thing to do is take three small completely flat and undeveloped quads, stop the first on January 31, 01, the second on March 31, 01, and the last on May 31, 01, and just start comparing.
We'll see- thanks, Stephane (wouanagaine), for your feedback.
David
Karybdis and old timers have done such a job, thanks to them
it is available here http://www.sims2wiki.info/wiki.php?title=SAVEGAMES
Comparing 3 save games of the same tile with just the time changed will help finding where the time is set
I think it should be in some of the 'unknown' of http://www.sims2wiki.info/wiki.php?title=RegionView
Hi David
Using SC4extracheats.dll (can't remember where I got this ()sad()) and bring up the cheat menu gives you these options
(https://www.sc4devotion.com/forums/proxy.php?request=http%3A%2F%2Fimg179.imageshack.us%2Fimg179%2F7119%2F05072007120651ix8.jpg&hash=5d333875b45a1c579cea0474a9d1dc541a1069cb)
I have found that if you use Whattimeizit followed by a space then enter the time you want in 24hr format the game clock will change. Ie have day/night cycle running and during daylight hrs enter a time during the night and .....its nighttime and the clock coninues from there.
I have tried numerous variations using simdate but no luck. Maybe this might be of some use to anybody? But knowing a .dll works what else could the brainy people do with this?
Hope this was of some help
:satisfied:
TTC
Quote from TTC:
QuoteI have tried numerous variations using simdate but no luck.
Yup I have done the same. I wish I knew how to use this "cheat". It would come in handy.
---Gaston
A lot of games today don't use normal date formats like yy/mm/dd or similar, but Unix Time format, that is, for every second after the 1st of January 1970 increment it's equal to one unit.
You can read something about this in here (http://en.wikipedia.org/wiki/Unix_Time), and a online convertor so you can see how it looks and work, in here (http://www.onlineconversion.com/unix_time.htm).
Maybe looking for this kind of numbers, it could be found something interesting ;)
Maybe try searching for the number -2208988800? (negative sign's included) That's 0:00:00, on the 1st of January, 1900. Just a wild guess. :P
That's using Rayden's Unix time link (speaking of which, Unix time's expected to reset on the 19th of January, 2038 at a certain time, because of memory limitations :P)
QuoteUnix time's expected to reset on the 19th of January, 2038 at a certain time, because of memory limitations
Well, seeing as how I'd be 85 on that date, I'll probably have reset by then too based on other limitations.
David
I'll be 74. (If I make it that long. LOL) I'll most likely still be trying to figure out LE and all the other tools. I'll still have the same cities going. And I'll most likely still be on the same computer with the same dial up access. LMAO
---Gaston
Buggi made the cheat .dll
maybe contact him and ask how the simdate code works
Quote from: flame1396 on June 12, 2007, 07:36:38 AM
Buggi made the cheat .dll
No, Maxis made the DLL - it was used for beta-testing the game. Buggi obtained it from Maxis/EA, as it seems.
well... thats a dead ender... &mmm
it would be awesome if we could make more .dll files for the game. couldnt that allow us to add new network types??
Quote from: flame1396 on June 12, 2007, 06:46:11 PM
well... thats a dead ender... &mmm
it would be awesome if we could make more .dll files for the game. couldnt that allow us to add new network types??
"DLL" stands for Dynamic Linked Library. It's the data the game engine (the.exe itself) runs on. However, unless something within the game code links to the .dll information, it would not be used in the game.
At least, that's my understanding.
-ACE
Quote"DLL" stands for Dynamic Linked Library. It's the data the game engine (the.exe itself) runs on. However, unless something within the game code links to the .dll information, it would not be used in the game.
Yup. That's a sad fact.
I'm still working on this. If I can find where the savedfile the date is kept, I have a feeling it can be changed at will. It's just teee-deee-us to find, that's all.
David
Quote from: ACEfanatic02 on June 24, 2007, 02:37:13 AM
"DLL" stands for Dynamic Linked Library. It's the data the game engine (the.exe itself) runs on. However, unless something within the game code links to the .dll information, it would not be used in the game.
I read that the game will load em if they're in the plugins folder.
Yeah, my friend. But they have to be called once they're loaded.
David
called? you mean like parsed?
no he meant called. Dll contains code ( like exe ) that execute if called
so its a lot like a loaded text file being parsed?
When it comes down to the date I'll bet it's in Julian format. That's what the file that stores graph data uses for the date stamp.
Changing the date in the city would likely mess up some of the graph and trend data which is likely why there isn't a cheat that seems to be working. With Julian dates 2451545 comes out to Jan 1st 2000 12 Noon which I think is the time a new city starts.
Julian dates have a huge range compared to the UNIX timestamps but the resolution that the UNIX timestamps has is not needed for a date in a sim game.
Sawtooth,
Noon is indeed the base time that a new city starts. If you start a new city in a region, the beginning date is usually Jan 2nd 2000. If you start a city and then obliterate it, the start date reverts to Jan 1st 2000. This is just what I have noticed while playing lately with some test cities.
-Jan
Quote from: Swamper77 on June 30, 2007, 07:52:19 PM
If you start a new city in a region, the beginning date is usually Jan 2nd 2000.
I guess this is the case because the game doesn't start in pause mode. So right after loading the game, the date skips from Jan 1st to Jan 2nd.
Quote from: flame1396 on June 25, 2007, 07:30:22 PM
so its a lot like a loaded text file being parsed?
Not quite.
Within the game engine, there are blocks of code called functions. Functions take an input and yield an output. Basically, they're the part of the code that does stuff.
While a .dll will load in the game, unless there is a function to call it, the information will not be used. Buggi's cheat .dll enabled more options in the cheat box; this was possible because said functions already existed--they just could not be accessed from within the game.
Adding something like a transit network is impossible because we do not have the source code available to us. It's likely that the networks are hard-coded into the game. Even if they were not, we have no external files to take apart to find how to build new networks. (And de-compiling the code to find them is: A - difficult, and B - illegal.)
-ACE
The game clock is somewhat corelated with the system clock (the one in the bottom right corner of your screen), I think someone found this out last Christmas, when we were messing with the snow easter egg. We found out if you set your system clock to December 25th, no matter what the date is, snow will appear at areas of high elevation.
YES!!!
SIMDATE format:
keyword - space - month - space - day-of-month - space - year
"SIMDATE 12 31 1999" will set in-game date to "1/1/00", and
"SIMDATE 1 1 2000" will set in-game date to "1/2/00"
... someone/anyone - Please take it from here ...
-NetPCDoc
No detail is too small to be micromanaged.
P.S. screamingman12 - the game does have access to both the in-game clock and the Computer-System's-Clock.
SOLVED!
Our friend NetPCDoc has just made one post on SC4D, but what a post.QuoteSIMDATE format:
keyword - space - month - space - day-of-month - space - year
"SIMDATE 12 31 1999" will set in-game date to "1/1/00", and
"SIMDATE 1 1 2000" will set in-game date to "1/2/00"
So, folks, make sure you have buggi's Extra Cheats DLL [linkie] (http://host.simvision.net/SC4ExtraCheats.zip) installed in the top level of your plugins folder then, the next time you play SC4, punch up [ ctrl ][ x ] and, following the format described above, engage in a little time travel.
It works like a charm. Along with our thanks, three Karma points for our friend, and a warm round of applause.
David
1352
I know this is an old thread and no one has posted here in a long time, but I just wanted to say that newly started cities do not start on Jan.2, they start on Jan.1. The first day rolls over pretty quickly and as someone noted a new city doesn't start in Pause mode, but, if you are really quick with your mouse (or keyboard, whichever you prefer...I'm a mouse user myself), you can pause a new city before the first day rolls over from 1/1/00 to 1/2/00.
I know this is true because, like dedgren, I have a monster region of 256 large city tiles (16 to a side) and I started new cities in them one by one in only 3 (long) play sessions. You get pretty fast at hitting that Pause button after about the 20th city in a row!
Lora/LD
I also have significant evidence, if not proof that resetting the game date will confuse certain events in a city .. In the process of testing and probing the "set date" function, I found that the date could be set with no apparent ill... I THOUGHT!! however after that I did it for a city which I was playing.. for no real reason other than being bored one day I guess.. I subtracted some amount.. about 40 years as I recall.. from about 2082 to about 2045 for the year. I didn't notice any problem until a few years later I noted a building garbage problem in the city.. Well I sold some garbage to an adjacent city.. no effect.. the "graph" that should show the sale stayed dead flat where it was before.. So I added .. umm a modest amount of "garbage correction" stuff.. I didn't want to have the dreaded "wrap-around" instant garbage burial even.. :) So I plopped 2 or 3 recycle lots and another garbage "shipping lot" .. I may even have added a standard maxis "trash burner"... the garbage kept rising and I could not make a dent in the unrelented mounting garbage.. Anyways.. I kind of forgot about it, thinking I'd go back and look at it later (Link to "garbage assault" thread (http://sc4devotion.com/forums/index.php?topic=8509.msg265494#msg265494)) .. the city was saved from an ignominious fate of being buried in garbage, but even to this day that city has problems with the garbage graphs.. they just don't track the garbage properly in time.. instead they are off and/or delayed by some amount.. I haven't sought to precisely define it, but it doesn't SEEM to be the amount "shifted".. just some amount..
Anyways, you ask, "Why are you rambling on so?".. just to say.. alter the date of your game at your own peril if its a city you're actually playing.. :)
Quote from: ldvger on July 29, 2009, 08:03:35 PM
I know this is an old thread and no one has posted here in a long time, but I just wanted to say that newly started cities do not start on Jan.2, they start on Jan.1. The first day rolls over pretty quickly and as someone noted a new city doesn't start in Pause mode, but, if you are really quick with your mouse (or keyboard, whichever you prefer...I'm a mouse user myself), you can pause a new city before the first day rolls over from 1/1/00 to 1/2/00.
It helps if you use the arrow keys on the keyboard to stop time :).
I tried that and it had no effect. Im thinking maybe it effects what things cost at different stages of the game, but thats just a guess. It doesnt do anything to the turn year increment though.
Quote from: dedgren on June 24, 2007, 01:07:01 PM
I'm still working on this. If I can find where the savedfile the date is kept, I have a feeling it can be changed at will. It's just teee-deee-us to find, that's all.
David
Well, I'm not that fancy with techie stuff or anything like that, but I have a feeling it is buried within the city file.
If so, I'd bet we could edit that to our will.
I usually open files that don't have a program associated with it in Notepad, and no luck there. The only part that was written in english was the part that held the pollution radius. :P
But it's far beyond my knowledge to know if it is in there somewhere or not......
Quote from: joshriddle577 on November 18, 2010, 05:19:45 PM
Well, I'm not that fancy with techie stuff or anything like that, but I have a feeling it is buried within the city file.
If so, I'd bet we could edit that to our will.
Yes, today we do know where the date and time are saved... in subfile 0x2990C1E5.
However, just like all other decoded (or parly decoded) subfiles of the savegames,
this one also contains the CRC record, which so far nobody has managed to decipher.
The CRC is a checksum, which is changed every time anything within the subfile is changed.
If the CRC is not correct, then the whole subfile is discarded.
Thus, at the moment we cannot make any changes to any subfiles...
Below is the partly decoded structure of the Date Subfile (0x2990C1E5):
DWORD | Size (0x0000005B = 91 bytes) |
DWORD | CRC |
DWORD | Memory Address |
WORD | Version (0x0004) |
BYTE | Unknown (0x00) |
BYTE | Unknown (0x01) |
DWORD | Unknown (always 1 for me, seen 0 as well) |
DWORD | Unknown (always 0 for me, seen 1 and 2 as well) |
DWORD | Unknown (0x00000000) |
DWORD | Unknown (seen values between 15 and 32) |
DWORD | Unknown (0x00000000) |
BYTE | Unknown (0x00) |
DWORD | Unknown (0x00000000) |
BYTE | Unknown (0x00) |
DWORD | Unknown (0x00000000) |
BYTE | Unknown (0x00) |
DWORD | Hours per Day (always 24 for me) |
BYTE | Unknown (0x00) |
DWORD | Day of Year (between 1 and 366, 1 for new cities) |
BYTE | Unknown (0x00) |
DWORD | Week of Year (between 1 and 53, 1 for new cities) |
BYTE | Unknown (0x00) |
DWORD | Month of Year (between 1 and 12, 0 for new cities) |
BYTE | Unknown (0x00) |
DWORD | Year (starts at 2000, 0 for new cities) |
BYTE | Unknown (0x00) |
DWORD | Unknown (0x00000000) |
BYTE | Unknown (0x00) |
DWORD | Unknown (0x00000000) |
BYTE | Unknown (0x00) |
DWORD | Unknown (0x00000000) |
BYTE | Unknown (0x00) |
DWORD | Julian Date (starts at 0x00256858) |
All those bytes that are 0x00, may very well be Boolean (set to False).
Ok, as someone above said - old topic - but then this info may be better for being buried on an old topic...
Somewhere, Somewhen, while decoding a SimCity save file (for the dubious purpose of adding Simoleans) -
I found what I at first thought to be a CRC value; only to eventually realize
that what I was actually looking at was an 'address' in a link-list-entry!
i.e. [optional-foreward-list-address], [optional-reverse-list-address], [optional-id-for-this-link-in-list]
(not necesarily in this particular order and 'optional' is based on 'type' of link-list?)
A lot of RippleJet's 'unknown' values - I suspect - will prove to be 'data-type' information;
I.E. specifying things like binary-byte, binary-word, 16-bit-signed number, 32-bit-signed number, unsigned number, text-string, etc...
(at sometime - in the past - I used DatGen to compare raw data to information in exemplars to decode a lot of these 'data-type' codes)