:THE LONGING:

:THE LONGING:

Not enough ratings
Easy "Birthday" achievement FOR NERDS ONLY
By AchievementMemes
FOR NERDS ONLY

Easy way to get the "Birthday" achievement (or really any other time-gated achievement with a little thought)
   
Award
Favorite
Favorited
Unfavorite
Nerd Crap
Yes, shockingly enough I am aware that SAM can do this with a button press. I don't use SAM.

The developer of The Longing at some point decided that he'd be cheeky and add a time check to prevent you from simply changing your system time to speed up the game. You "could" tediously figure out how to decode the save file, however there's a much simpler solution.

The game is calling out to pool.ntp.org on startup (I verified this via Wireshark) to get the current time, and then comparing it against your local time.
  • If the application cannot get time from the internet, it will stop with an error.
  • If the time on your gaming pc is wildly different from the internet, it will stop with an error.
  • They probably do something if you change the time while the application's running, but I'm lazy and didn't bother to test that.

Under windows, you can edit c:\Windows\System32\drivers\hosts and set any ip address/dns name mapping you want (You should already know this if you're tinkering with this guide. If you don't, then don't stop running this guide dummy). You have two options to override the developer's nonsense:

  • Install some sort of windows based ntpd software on your gaming pc, override dns for pool.ntp.org to 127.0.0.1 in the hosts file, and then set the time to whatever you want. If you're more comfortable in windows land this is the easier option.
  • Stand up an Ubuntu virtual machine, replace systemd-timesyncd with openntpd, edit ntp.conf to both expose time AND not sync from any pools, then set the time to match whatever you want your gaming pc time to be. Then override dns on your gaming pc to set pool.ntp.org to your Ubuntu virtual machine.

Tinkering with anything Windows makes me want to die, so I chose option 2. My ntp.conf and network bindings look like this:

root@ubuntu:/home/user# cat /etc/openntpd/ntpd.conf | grep -v '#' | grep -v ^$
listen on *
root@ubuntu:/home/user# netstat -pan | grep ntp | head -1
udp 0 0 192.168.1.10:123 0.0.0.0:* 618/ntpd: ntp engin

Set the time on your ntpd source and gaming pc to slightly under 365 days *from the start of your game*, start it up (if you get the devs error you're missing something), then wait for time to click over to 35days, 0 hours, 0 minutes, 0 seconds. Once it's setup this took about 30 seconds. Make sure to revert your hosts file changes once you're done.

If you can't follow the above, just use SAM, up your nerd game, or do the achievement legitimately.