Posts Tagged PS2

Unlocking the AR Max Save Format

Ar max packagingThe AR Max Save Format is one of the most popular formats used for save transferring to date. Since it’s release it has been widely accepted as the default save format at Game FAQS and was the format I was asked most about supporting.

Over the weekend I was able to steal enough time to write and release a DLL, ironically named maxDLL, that allows anyone to easily support AR Max saves in their program or application. It’s had a few downloads, more than I expected to be honest, and so far I’ve not had any complaints so I’m assuming it’s working alright for everyone. Looking back over my work in preparation to release a format document I noticed I left out one crucial ability; reading the Root/ID from an existing save. Without this command conversions to another format can be tricky.

I’m literally about to add this function to the DLL as soon as I’ve stopped writing. I’ll be looking at another weekend release to give people time to report bugs or ask for features, once maxDLL v2 is out I’ll be producing a document detailing the .max save format and as ever, publishing it PS2 Save Tools

I’m also considering releasing several DLL’s supporting various save formats with the ultimate goal being a single DLL that will handle all supported save types.

Tags: ,

PCSX2 memory card format revisited, again!

A while ago I took a couple of casual looks into the the format of the PS2 Memory Card images created by PCXS2. My initial thoughts were pretty basic and my follow up identified the basics of the format and also mentioned the ECC bytes I mistook for a regular checksum, thanks to alkarl and Matt for the corrections.

The other week I wrote out the code in Delphi to check and update the ECC sections and was set to delve into the format wholeheartedly. Until I found that Ross Ridge had been there and completed the work already!

Ross has put the information into the public domain, anyone interested should take a look at his excellent technical breakdown of the PlayStation 2 Memory Card File System and also give mymc, a tool for working with PCXS2 Memory Card images, a try.

Tags: ,

Microsoft puts halt to game save sharing

In the recent Xbox 360 update Microsoft took new measures to stop people sharing game saves and I think it’s a good idea…

I love being able to share save data, it means that if I get stuck or don’t have the time to complete 1001 inane side quests to see the secret ending in Kingdom Hearts 2 I can download the save of someone who has and see that oh-so-secret trailer for myself in perfect quality instead of grainy Youtube-o-vision. In other cases sharing a save with someone may be the only way they can progress in the game if they’re using a PS2 disc on a Playstation 3. Some people say “what’s the point in buying a game then using a save to complete it?” It’s my game, I paid the money for it and I’ll do what I like, I don’t sit behind you when you’re doing your tax return asking why you spent £10000 on speed boat when you live no where near water. Truth be told, I’ve never used a save to complete a game, I just like sharing and having the option open to me to experience things I might not get to see in my limited game time. Many years ago I even produced a save that unlocked a level in a game that the developers had removed and was inaccessible any other way, recent saves I have made unlock or add features that the game designers didn’t intend to be accessible to the public. Save sharing is good

Until the Xbox 360 arrived that is.

With Microsoft’s new console they added Gamerscores where you receive points for unlocking achievements in the game. Usually they add up to nothing but a score to compare with your friends but Microsoft have now started competitions where you can win real prizes for gaining so many points in a race against other gamers all over the world.
When I heard of Microsoft’s black listing of saves I quickly made a utility to see if a save is on the blacklist and therefore unusable on other consoles than the one it was made on and set out to learn a bit more about the Xbox 360 save sharing scene. I was disgusted to find that instead of the useful saves sharing scene there had been for many years, spanning many consoles, the Xbox 360 saves scene was full of people wanting nothing more than saves to unlock more gamerscore points. I even saw threads requesting saves for certain titles with the largest Gamerscores on them, no doubt very useful if you are trying to win yourself some prizes.

I’ve been on the save sharing scene for many years now, am the authority on PS2 saves and I wholly agree with the steps Microsoft have taken in this latest update. The use of shared game saves to artificially increase Gamerscore, especially when competitions are being run where these cheaters stand gain from it, is deplorable. In some ways I am glad I never released the Xbox 360 saves backup software I wrote as I would hate to be responsible for the dirty tactics I have seen used to cheat your way to the top.

I understand a new method to still share games saves is being tested, I for one hope that this cheating of others is laid to rest for good or that Microsoft finds a way to stop people cheating Gamerscores but still allows the sharing of saves, be it to show of your best character in Tony Hawks or to help someone past a difficult area in a game.

Tags: , , ,

Kingdom Hearts 2 exposes PS3 backwards compatibility flaw

Sony’s backwards compatibility took a hit when they removed the PS2 hardware from the European Playstation 3. Gamers and critics roared loudly and dismissed the move as a bad one but Sony responded by producing figures detailing compatible games and the dismay subsided.

Players of Square-Enix’s superb Kingdom Hearts 2 are now faced with an awkward dilemma, they are powerless to finish this game on European Playstation 3, as discussed over at the forum, despite it being listed on Sony’s own compatibility chart as having “No known issues to date”.

This video shows the problem first hand at the point where you face off against the Hostile Program in Tron’s world. Keep an eye on the top right energy bar, towards the end you’ll notice it stops decreasing despite numerous attacks making the enemy impossible to defeat.

Fortuantly for those Playstation 3 owners with access to a Playstation 2 are in luck as a workaround is at hand, as detailed at PS2 Save Tools but as yet there is no sign of an update from Sony to fix this show stopping bug.

Tags: ,

Should legacy formats still be secret?

Technology marches on at an outstanding rate, in a few weeks time the Playstation 3 hits Europe and gamers still clinging to their ‘retro’ consoles will slowly start on the migration to a newer and sleeker technology heaven. Many, like myself, will still keep their old and superseded hardware along with many of their favourite titles.

The console manufacturers want you to upgrade. The games publishers want you to upgrade. The third party software/hardware developers want you to upgrade. Your old games console is obsolete and you should be playing the latest and greatest on something that costs the about the same as 100 visits to the cinema or a feast fit for a king.

As time passes the old file formats get abandoned, superseded with newer formats for new software and machines.

I would like to see software developers and hardware producers open up these archaic file formats to the public. They’re not going to loose any money from it and it may even rekindle some interest in their particular device or software.
Many file formats are already cracked, but having the offical specifcations and internal structures would allow utility makers to polish their code, finish features and more.

Playstation 2 saves

Playstation 2 saves come in many different formats, most have been cracked by talented individuals such as Vector who created PS2 Save Builder. However some formats, notably .max and the newer Xploder save format, remain barely documented and to this day, people still cannot support these formats in their tools.

Releasing these specifications to the general public would allow those utility makers to support that format natively, instead they ultimately recommend alternative formats, which are now fully documented, such as the once barely known .psu save format. uLaunchELF has recently added .psu support to it’s feature list which has resulted in an upsurge of .psu format saves being used and new utilities to be released

Is it too early to release the file specifications for formats such as .max to the public? Probably. Would it affect sales? At this late stage it’s hard to tell.

One thing I do know is that my choice of products to purchase, and to recommend to others, is heavily influenced by the file format used, specifically if it is open or unencrypted. If it is encrypted or purposely protected in such a way as to stop people sharing, or creating utilities, I will look around for other products and recommend others do the same

Should legacy formats still be secret? I don’t think so and would like to see more developers giving the information to the communities built around their product rather than gathering digital dust on some developers long forgotten hard drive.

Tags: , , ,

GTA: SA Censor Remover Online AKA Conversion Hell

I often get requests for versions of my tools that will work on non-Windows operating systems, such as Linux and MacOSX.
Because I use delphi, which is primarily a Windows programming tool, this often isn’t practical or even possible.

A few months ago I set about thinking of ways I could provide the same tools and abilities to those who don’t run Windows or have restrictions set on what they can download. I eventually decided to recreate one of my more popular tools, GTA: SA Censor Remover, in an online edition.

This wasn’t as easy a task as I had first assumed, my PHP skills were a little rusty from years of neglect in favour of Windows application development and PHP is an inherently poor language for working with binary files. I could have deviated from my original intention and written the online version in Perl, but I’m not that much of a masochist and I’m much more familiar with PHP.
After a few hours I was able to knock up a basic version that worked fine with PS2 and PC saves, even with PHP’s poor file handling routines, but came against a huge stumbling block with the Xbox saves.

Xbox saves are protected by a digital signature, change even one byte and the signature is invalidated and the save will not load. Of course I know how to fix this signature but this is where PHP let me down immensly.

PHP is a loosely type language, this means it’s great for beginners but sometimes you need to be able to control the language and it’s variables precisely, which is exactly what I needed to do. For reference, Delphi is a strongly typed language and is much better for it in my opinion. I can also access raw memory directly with Delphi which makes creating digital signatures a breeze.

I spent hours trying different ways of representing the binary data I needed to fix the digital signature in the save, I trawled the PHP manual for hints and comments. I even asked an experienced PHP programmer who writes scripts for a living daily and he was unable to help me or offer anything I hadn’t tried already.
Eventually I gave up, I’d chosen the wrong tool for the job and had paid bitterly for it.

Last night I was intrigued to see that the makers of Delphi, Codegear, are planning a “Delphi for PHP” and this rekindled my interest in PHP. Looking for a project to start I remembered about the work I had done on GTA: SA Censor Remover Online and how I had left it to rot on my dev machine.
I decided that I couldn’t let this go to waste and was a perfect challenge to get my PHP skills back on track, after all if I couldn’t find the answer from the manual and experienced users of PHP than I’d have to find it myself.
Eventually after a few tests, all producing the wrong digital signature, I commented out all the existing code and returned to the basic task: Create a binary representation of a series of bytes and pipe this along with the raw file data to the required function.

It was a matter of minutes before I had a working function. I spent a few hours tweaking the code and making sure it worked properly, again having to fight PHP’s poor file handling tooth and nail, until the final product was ready for release.

It’s been a hellish struggle and at times I wondered if the task was even possible given the poor performance of PHP in this area and lack of information out there, even from PHP experts. I won’t be retro-fitting any of my other tools at this time but if the need arises, or another prgram is created that would bendfit from an online version, I’ve got a solid groundwork to enable access to my software to everyone, regardless of what operating system they use.

Tags: , , , , , ,

New save sharing communities arise, how do they fare?

With the advent of the Playstation 3 and the Nintendo Wii there’s been a couple of new sites pop up to support the save trading community.
I’ve been checking on two sites in particular and have the following opinions.

First up there’s

Missing out on the elusive .com domain hasn’t deterred these guys one bit and they’ve started to make decent inroads into building a community for sharing Playstation 3 and Playstation 2 saves, in the suitable PS3 format of course.
The site has a blossoming community forum and whilst there doesn’t appear to be much technical talk there’s a good vibe and a decent amount of trading going on with helpful users.

Unfortunately I can’t be as kind about the main site. The design and content smack of “my first website”. I’m sorry to be harsh guys but the site looks poor and the content is sparse and not organised efficiently. Top marks for putting a forum up to encourage the community but please, enlist the services of a designer and sort your main site out. At worst use a portal system to keep the site tidy and organised.
I also had some difficulty finding the site in Google as it doesn’t rank well for Playstation 3 game saves, something that should be worked upon if possible. But not all is lost as it ranks quite well for PS3 game saves.

Overall the site has a lot of potential, the forum is something that will keep the users coming back but the main site needs some serious work and was off-putting on my first visit.

Next up we have Wii Save.

In contrast to PS3 saves, Wiisave has a beautiful front end and ranks well for the obvious search query. I’ve not come across the RW::Download script before but it does it’s job perfectly here. Having the content on the front page makes it easy for users to see new additions and keeps the site looking fresh and alive.
Information seems easy to reach but I’m not a fan of the javascript drop-down menu for each system supported by the Wii. It appears that for each save on the site there is a corresponding entry in the menu for the game. Once more saves are uploaded this is going to become unworkable, can you imagine a menu with 200+ entries on it?

Whilst I really like the clarity of the front page and the easy access to information, the site isn’t without problems.
The only way to communicate with other users of the site appears to be via a comments system which allows you to add comments to each save uploaded.
This simply isn’t enough to foster a community and eventually the users will move elsewhere. At the very least the admin should install a free message board such as phpBB and hack/edit it to accept the current user base and make future signups exist on both the main site and the forum.
I’ve also noticed the use of images directly next to Google ads, this is against the Ad-Sense Terms and Conditions and a shady technique at best.

In conclusion, the content of the site and it’s simple layout are a winner here but the lack of community features will result in the site loosing out long term.

Tags: , , , ,

Fragmented usernames, gamertags and profiles

I love online gaming.

I don’t get enough time to participate these days, nor do I own any of the “next gen” consoles, which is where I am led to believe the most enjoyable online experience can be found, particularly if you are like me and use your PC for work and your consoles for fun.

Earlier this week Sony opened up a service that allowed you to pre-book your online username/gamertag/persona (call it what you will) if the Playstation 3 hasn’t reached your country yet or you just don’t fancy paying the eBay prices for their latest toy.
I’m all for these services and decided to see if such a service was offered by Xbox Live. Apparently it is, so I duly entered my details only to find that my gamertag was already taken…

I’ve been using the online persona gothi since the 90’s, I’m pretty fortunate in that it’s an usual word (although at the time I was not aware of it’s religious connotations). I’ve made a name for myself by posting, and administrating, on many forums, creating websites, I’ve released hundreds of Xbox & PS2 saves, played in online tournaments, beta tested online PS2 games, written several widely used software programs and it’s even got to the point where some people think entering my username into a game makes you invincible. It doesn’t by the way, however using the cheat save I made for the Xbox version of XIII, which features my profile name, does.

I like to think I made myself known, I even own and the fact I cannot use my username, the one I have used for about a decade, on Xbox Live frustrates me.
I like how Xbox Live operates, one username for all games, but what do you do when your username is taken? Do I have any right to ask that the user of this name gives it up? I appear twice in the top 10 google results for gothi (not bad considering my username is a religous term), does all that give me enough leverage to say that “this is my online persona”?

As it stands both Microsoft’s and now Sony’s approach is reasonable but limited. You choose one name, but it is only unique to that system, and when a new system is released it can be mad scramble to get your name registered. In this case I clearly lost out on Xbox Live. To make matters worse, some games companies, seeing that users want one name across the systems, have created their own private database of usernames that allow you to have one name across their collection of games. Rather than improving matters this makes them worse as now there are even more private areas to register for and more chances to lose possession of your name. Without your name, and the reputation that follows it, who are you?

What I propose is a universal system where users can choose one name for all systems and games, regardless of publisher, designer or manufacturer.
By use of an open API games designers can verify ownership of a gamertag and other information, such as game specific data, can be stored on their own databases.

Is it too late for such a system? Maybe. I truly hope it isn’t and that some order can be brought to the chaos that is forming.

I’d like to know what others think of the fragmentation issue we’re in and how you see it in 5 years time…

Tags: , , , ,

The end of save hacking?

Save hacking is exactly what the name implies, the manipulation of the raw data of the file a game uses to store such things as ammo counts, collected items, unlocked levels and more. It’s been a solid and reliable way to alter many games, be it the number of lives you have all the way up to unlocking removed levels and cheats that the game designers never wanted you to see.

I’ve been interested in save hacking for many years, I was once employed to do this very task, but a worrying trend has appeared recently, particularly in console saves.

Let’s take a (short) trip into the past.

Over the years developers and even the console makers have been finding different ways to make save hacking as difficult as possible. Saves started to use checksums to verify data integrity but these were easily bypassed. Next saves were encrypted by the game, although this too was bypassed by skilled people able to determine the methods used by the game and reverse the procedure. All was still good in the land of save hacking.

Fast forward to 2001 and the advent of the original Xbox console. Saves for this system used a digital signature as standard as well as other methods such as checksums and encryption, altering even one byte rendered the save invalid and the game would not load it.

After some serious hacking of the console and its operating system a method to resign the digital signature on the saves was discovered but the details of how to do this were shrouded in secrecy. A few people, myself included, were able to (re)discover the methods used and create our own tools to assist in save hacking. The most useful of these was a tool that the public could use to resign saves, but only those allowed by those with the knowledge. This secrecy, usually a burden to endeavours like these was a necessary evil; Xbox Live had taken off a storm and, due to the information to resign the saves for Live compatible games being released, the cheaters started to appear. This wasn’t the only way to cheat on Xbox Live but it was one that could be hampered and almost stamped out, so an unofficial and unagreed stance was taken by the few; no-one was to provide information on the resigning process nor provide keys that could affect online play.

Now in 2006 we have the next generation of consoles and save hacking faces new challenges.

The Xbox360 saves contain a digital signature, the methods and keys to resign this signature are still not known, at least publicly. I’ve yet to see hard evidence of a save for this system being hacked, at least in the traditional method.
The PS3, Sony’s latest games console, uses a system based on its work with the PSP.
The virtual PS2 saves it uses, the format of which I have mapped over at PS2 Save Tools, uses a digital signature so again, even changing one byte makes the save useless.
As for the saves generated by PS3 games, these are similar to PSP saves and as such are a totally encrypted file. The only save tools available for the PSP must be run on the PSP to unencrypt the data, at this time it is not possible to unencrypt the PS3 save data on a PC.

Where does this leave us?

I had hoped that the Xbox360 would have been laid bare by now but the DVD drive firmware modification has meant that many of the people with the technical knowledge are focusing on breaking new protections Microsoft put in place. This appears to have slowed down, if not stopped completely, efforts to run unofficial software on the Xbox360, a definite step towards editing and resigning save files.
At this time we are unable to run unsigned code on either the Xbox360 or the PS3 (Linux does not come into this) and in the PS3’s case, this may be exactly what is needed as it is with the PSP.

It’s a grim future for save hacking, the security systems on both the Xbox and the PSP have been bypassed by clever manipulation of certain save files which has resulted in tighter and more complicated methods for protecting the data integrity and ensuring we cannot alter save files.
Will I still be save hacking in 3 years time? I hope so but the future’s very uncertain at this time and not looking good…

Tags: , , , ,

PCSX2 memory card format revisited

PCSX2 is a PS2 emulator, it features memory card support and produces .ps2 files which are a raw image of the memory card, here’s what I had to say about them last time:

  • The file is a raw image of a PS2 memory card.
  • I believe it’s a similar system to FAT12/16, it’s got a similar FAT usage from my quick scan.
  • Every 512 bytes is a 16 byte footer, I assume it’s some sort of checksum

Spurred on by an email I recieved earlier I decided to do some more digging, here’s some prelimerary findings:

(all addresses include the 16 byte footers)

  • .PS2 file always has Sony PS2 Memory Card Format as it’s header.
  • The FAT table starts at 0x2520 , uses word(tbc?) for each entry
  • Clusters start at: 0xA920
  • Clusters are 0x200 in size.
  • First cluster is file entry for . (2E in hex), an entry for .. also exists
  • A file/directory entry occupies an entire 0x200 byte cluster and is broken down as such:
    The first int is the file/folder attribute
    second int is the file size.
    I belive the datetime is next.
    I belive the fat entry (word or int?) to be located 0x10 bytes in.
    The filename is 0x40 bytes in and 0 terminated.
  • The first cluster I found containing the file data was always located at 0xB9A0 in the files I looked at.
  • As with other FAT implementations 0xFFFF appears to be used to indicate end of chain (EOC) in the FAT table

Using the above information it should be possible to construct a basic tool to extract files from the .ps2 file.

I’ve been thinking about the 16 byte footer and believe it may be the attributes of the preceeding sector rather than a checksum. a sector contain all 00’s and a sector containing all FF’s both have the same footer…

Please note all information above is based on a 10 minute poke around the file in a hex editor, corrections and updates are welcome!

Tags: ,