About a year ago I was looking at Crash Bandicoot timer systems and I found that Crash 3 has a constantly incrementing int32. It only resets if you die. Left for 2.26 years, it will overflow. When it does finally overflow, we get "minus" time and the game breaks in funny ways. I did a video about it: https://youtu.be/f7ZzoyVLu58
There's a weapon in Final Fantasy 9 which can only be obtained by reaching a lategame area in less than 12 hours of play time, or 10 hours on the PAL version due to an oversight. Alternatively you can just leave the game running for two years until the timer wraps around. Slow and steady wins the race. https://finalfantasy.fandom.com/wiki/Excalibur_II_(Final_Fan...
Doom crash after 2.5 years of real-world runtime confirmed on real hardware
91–100 of 221 posts
Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#92Earlier quoted context omitted.
Incorrect. I’m looking at the source code. It’s not perfect but it’s not just “slowed down to 50hz” like people claim.
When you say looking at the source code, what do you mean here? AFAIK the source for FF9 PSX (and all the PSX ff games) has been lost as Square just used short term archives Also, FF9 does not run at a constant framerate. Like all the PSX FF games it runs at various rates, sometimes multiple at a time (example: model animations are 15fps vs 30 for the UI) In terms of timers, the bios does grant you access to root tim…
Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#93Does that hardware traps overflows or something? I had read an article about how DOOMs engine works and noticed how a variable for tracking the demo kept being incremented even after the next demo started. This variable was compared with a second one storing its previous value Doesn't sound like something that would crash, I wonder what was the actual crash
Signed overflow is undefined behavior in C, so pretty much anything could happen. Though this crash seems to be deterministic between platforms and compilers, so probably not about that. TFA says the variable is being compared to its previous value, and that comparison presumably assumes new < old cannot happen. And when it does, it could easily lead to eg. stack corruption. C after all happily goes to UB land if, fo…
Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#94Earlier quoted context omitted.
There's a weapon in Final Fantasy 9 which can only be obtained by reaching a lategame area in less than 12 hours of play time, or 10 hours on the PAL version due to an oversight. Alternatively you can just leave the game running for two years until the timer wraps around. Slow and steady wins the race. https://finalfantasy.fandom.com/wiki/Excalibur_II_(Final_Fan...
Am reminded by this quote from Ferdinand Porsche: "The perfect racing car crosses the finish line first and subsequently falls into its component parts." Games fit this philosophy, compared to many other pieces of software that are expected to be long-lived and receiving a lot of maintenance and changes and evolve.
But plenty of people will find complaints when they try to drive their car beyond its design specs and more or less everything starts failing at once.
Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#95Earlier quoted context omitted.
Incorrect. I’m looking at the source code. It’s not perfect but it’s not just “slowed down to 50hz” like people claim.
When you say looking at the source code, what do you mean here? AFAIK the source for FF9 PSX (and all the PSX ff games) has been lost as Square just used short term archives Also, FF9 does not run at a constant framerate. Like all the PSX FF games it runs at various rates, sometimes multiple at a time (example: model animations are 15fps vs 30 for the UI) In terms of timers, the bios does grant you access to root tim…
Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#96Earlier quoted context omitted.
When you say looking at the source code, what do you mean here? AFAIK the source for FF9 PSX (and all the PSX ff games) has been lost as Square just used short term archives Also, FF9 does not run at a constant framerate. Like all the PSX FF games it runs at various rates, sometimes multiple at a time (example: model animations are 15fps vs 30 for the UI) In terms of timers, the bios does grant you access to root tim…
It’s definitely not lost…
FFIX for PSX would have been written in C (or possibly C++) with PSY-Q. It will not be one program - those games were composed of multiple overlays that are banked in / out over the PlayStation's limited memory.
From what I know the PC release was a port to a new framework, which supports the same script engines, but otherwise is fresh code. This is how it can support mobile, widescreen, Steam achievements etc.
Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#97Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#98Earlier quoted context omitted.
Am reminded by this quote from Ferdinand Porsche: "The perfect racing car crosses the finish line first and subsequently falls into its component parts." Games fit this philosophy, compared to many other pieces of software that are expected to be long-lived and receiving a lot of maintenance and changes and evolve.
The Porsche quote reflects a wider design philosophy that says "Ideally, all components of a system lasts as long as the design life of the entire system and there should be no component that lives significantly longer. If there is such a component, it has been overengineered and thus the system will be more expensive to the end consumer than it needs to be.". It kinda skips over maintenance, but overall most people…
Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#99Earlier quoted context omitted.
Signed overflow is undefined behavior in C, so pretty much anything could happen. Though this crash seems to be deterministic between platforms and compilers, so probably not about that. TFA says the variable is being compared to its previous value, and that comparison presumably assumes new < old cannot happen. And when it does, it could easily lead to eg. stack corruption. C after all happily goes to UB land if, fo…
That doesn't make sense. If new < old cant happen there is no need to make a comparison. Stack corruption? Nah, its a counter not an index or pointer or it would fail sooner. But then what is the failure? IDK
Re: Doom crash after 2.5 years of real-world runtime confirmed on real hardware
#100Earlier quoted context omitted.
Am reminded by this quote from Ferdinand Porsche: "The perfect racing car crosses the finish line first and subsequently falls into its component parts." Games fit this philosophy, compared to many other pieces of software that are expected to be long-lived and receiving a lot of maintenance and changes and evolve.
The Porsche quote reflects a wider design philosophy that says "Ideally, all components of a system lasts as long as the design life of the entire system and there should be no component that lives significantly longer. If there is such a component, it has been overengineered and thus the system will be more expensive to the end consumer than it needs to be.". It kinda skips over maintenance, but overall most people…