Patent number 2019-503013, a mechanism related to backward compatibility of video game machines was patented by Sony Interactive Entertainment Japan this morning. The patent covers a mechanism that allows the CPU of video game machines to interpret as a previous generation CPU to support backward compatibility of games. The patent first appeared on J-PlatPat, Japan’s platform for patent information.
Due to lack of translation facilities at the time of writing, we converted J-PlatPat, Hokanko-Alt and HobbyConsolas’s pages on Google Translate to add context to the story. As detailed on Hokanko-Alt’s blog, the title of the invention is “Impersonating CPUID for backward compatibility”, a rough translation of the Japanese 後方互換性のためのなりすましＣＰＵＩＤ. The infobox mentions Mark Cerny, Lead System Architect of the PS4 and Simon Pilgrim, Principal Programmer at Sony Computer Entertainment Europe as the inventors of the patent.
With the increasing demand and necessity of backward compatibility in newer consoles, the machines are desired to run previous-gen games without any synchronisation errors, processing incapabilities and other issues. Cerny and Pilgrim’s patent claims to have fixed these problems.
“In order to deal with problems arising from differences in the behaviour of CPUs to legacy devices, new devices may mimic the specific capabilities of legacy device CPUs when executing legacy applications”, the patent page included. “An important function of the ability to mimic legacy devices is to trick legacy applications to behave as if legacy applications are running on legacy devices. As many applications are designed to run on different processors, modern processors often implement opcodes or registers that allow software applications to discover processor details. To facilitate backwards compatibility, the processor on the new device can execute the opcode in such a way that the information of the different processors is returned in response to the call from the legacy application, or the register value can be provided. Different information is referred to herein as “spoofing processor ID”. The spoofing processor ID selectively identifies the particular capabilities of the new device either differently than actually supported or not at all when it is actually supported.”
The text in the patent page is accompanied by three flow-charts with proper explanations. As aforementioned, we didn’t have sources to refer at the time of writing. We’ve attached the flow diagrams here with the possible translation. Once we have the proper translation, we’ll update the article with the same.
ROUGH TRANSLATION: Method 100, illustrated in the flow diagram shown in FIG. 1, shows an example of how this is done. Specifically, as indicated at 102, the requesting application 101 running on the device requests the processor ID from the processor executing the application. At 104, the processor determines whether the requesting application 101 is a legacy application, i.e., whether it was originally written for a previous version of the device. There are many ways in which the processor can determine whether the application was written for a new device or for a legacy device. One way is whether all the applications written for the new device will report to the processor the information that the application identified as being written for the new device as it was loaded. The fact that such information is reported identifies the application as written for the new device and not reporting such information identifies the application as a legacy application.
ROUGH TRANSLATION: Returning spoofing processor capability information can prevent backward compatibility by preventing applications from using features that may cause timing problems if legacy applications attempt to use them, It is easy to solve the problem.
In the sense that it does not cause timing problems, it seems to play a role of arbitrating between the CPU and the legacy application in a certain sense.
It will be troubled even if it is told that strict compatibility around CPU is said to be said, but it can be a problem even between Xbox One (old generation version) and Xbox One X.
It is written many times that it does not restrict the architecture and the implementation form separately, but since characters like “x86” appear multiple times in the text, this was invented assuming for the PlayStation 5.
Although it is also shown in Figure 2, it seems that customization has been done at the level of PS 4 or higher in PS 5, assuming that this spoofing function will be implemented before the L2 cache.
We’ve contacted Sony, Mark and Simon regarding the patent and we’ll notify you when there’s an update from their ends.
Make sure you subscribe to our push-notifications and never miss an update on PlayStation-related news. Until next time, Happy Gaming!