News/A Spooky New Years
Happy New Years everyone!
This year saw a lot of nice releases from all corners of the internet. From early prototypes of Pokemon Gold & Silver to unreleased games such as SegaSonic Bros and SimCity for the NES, it looks like 2018 was one of the best years for prototypes in a while! What will 2019 bring?
To start off the new year with something great, we decided to release four prototypes from the MediEvil series! Be sure to check out the articles for each prototype, as the articles will describe how to properly play them.
|MediEvil .31 prototype||MediEvil .35 prototype|
First up, we have two prototypes of the first MediEvil - one meant for review and another for preview. These prototypes are dated several months before the first retail release of the game. While the two prototypes are dated a few weeks apart, they both contain a considerable amount of differences. Unfinished levels, a programmers test level, different layouts, different textures, and more!
|MediEvil II .19 prototype||MediEvil II .51 prototype|
Next, we have two prototypes of MediEvil II as well! Again, one “preview” prototype and one “review” prototype. The differences between the final version and the earliest prototype are extreme. For instance, most of the FMV sequences in the December prototype are unfinished (only a rough “layout” was rendered for most scenes). Many stages that would be used in the final version are different here in various ways. The prototype contains a level that was cut from the game called “Parliament” which is playable from the cheats menu. The earliest prototype also includes a few test levels as well, much like the first game.
However, not everything went smoothly this time.
Issues occurred when attempting to backup these prototypes which made us question the integrity of the dumps we created. Besides the typical bad dump that can be remedied through trial and error on different burners with different read speeds, we were constantly presented with an issue where each game would just stop functioning after a certain point (usually during a level change). With no PS1 developer hardware to test with, we were unsure if the games were physically at fault for causing these issues, or if it was a sign of some form of copy protection.
MediEvil marked one of the earliest attempts to thwart pirates with the copy protection method known as “libcrypt”. With this method, unique non-Yellow Book data is stored in subchannels on the disc itself. Games with libcrypt issue special, undocumented firmware commands to perform reads from the subchannel data, and check if it contains the unique data. This was a relatively effective copy protection mechanism for its time, since most pirate releases (even today) do not include the subchannel data, which is not contained in a typical "bin/cue" dump.
It’s also difficult to perfectly extract subchannel data with common CD/DVD readers. Unlike data channels, which use extensive error correction algorithms, most of the subchannels are not error corrected, resulting in pretty much every dump being different (without error correction, reading raw data on CDs with a laser is very error prone!). Most burners also have a difficult time burning subchannel data back to CD-Rs as well. As an effect, at the time, the only way to bypass this copy protection was to debug the game and physically alter the game’s code through a patch to avoid these checks.
After we were sure that the data track (the .img) was being dumped consistently, we decided to debug the games with no$psx to figure out what was going on. To make a long story short, both of the MediEvil prototypes actually use a form of SCEx copy protection where the check is done at the software level rather than just at the BIOS level. This copy protection involves comparing the letters “SCEx” (where “x” is the region of the game or console) with what’s stored on the disc against what’s stored in the BIOS. This check occurs when loading into a new level or quitting the game.
MediEvil II on the other hand doesn’t seem to be using libcrypt. The February prototype seems to work fine and doesn’t seem to check between level changes. The December prototype seems to hang when loading levels even from the cheat menu. However, the prototype seems to work fine in PCSX while any other emulator hangs.
However, even with the correct conditions the game would still refuse to load into another level. Luckily, by disassembling the games, we found that each prototype can be unlocked to work as normal by inputting an “unlock” or “cheat” code combination while the game is paused, which you can see for yourself by checking out the articles for each prototype. While we still aren’t confident that we fully understand what’s going on, it’s possible that the developers intentionally “sabotaged” their builds of the game by disallowing anyone from playing the game on anything besides a developer console, which has the ability to mimic specific regions. It’s also possible that the copy protection is set to always hang to prevent people other than the intended parties from accessing the rest of the game’s contents without knowing how to activate the in game cheats.
Up until this point, we have dumped all CD/DVD based prototypes so far with CloneCD using both a Lite-On LH-20A1L and a HLDS GSA-U10N, drives that have historically low error rates. These particular dumps were created shortly before drx had to move overseas. The move has been a temporary set back since most of the stuff we intend to release is still in progress. The subchannel data will have to be redumped using different methods in order to ensure that the problems we were seeing aren’t caused by the dumps themselves. We consider the dumps okay for release, but we intend to redump everything in the future with a different standard so that we can ensure the best possible dumps. There is some promising software being developed, such as DiscImageCreator by the Redump project.
With that being said, we hope you enjoy this release and look forward to sharing more with you in the upcoming months.
Until next time!