Posts Tagged Saves

Python script to generate Xbox save signing keys

A while ago I discussed how save signing for the original Xbox works and the methodology to generate the correct key to resign a save.  Save Hacking is becoming something of a legacy these days and I’m keen to do what I can to enable others to continue to work on what I guess is called ‘retro’ these days.

With that in mind I’ve uploaded a quick and dirty Python script to generate Xbox save signing keys to GitHub.

Using xbox-save-sig is as simple as passing in the path to a default.xbe file:

python xboxsig.py -i /path/to/default.xbe

The output will be a text representation of the digital signature for save signing:

737E064C0236BA3E7140EC2B91D76766

The script can output the key in a selection of formats and being Python can run on many different systems.

The script is licensed under the MIT License, which is pretty permissive, so feel free to fork, improve and put it to good use!

Tags: , ,

What happened to 360gamesaves.com?

Whilst answering a query for someone I noticed that 360gamesaves.com was no longer up and running. I’ve done a bit of research but there doesn’t seem to be a definitive answer as to what’s happened. If anyone has some actual concrete information as to why the site is no longer available, drop me a line.

Tags: ,

Halo 3 Big Team Battle – Capture the Flag tip

Halo 3 logoHere’s a quick tip for Capture the Flag on Sandtrap: Don’t move your teams Elephant to the the other teams Elephant.

Yes, I know it sounds like a good idea, the two bases next to each other so you can kill the other team grab their flag and score within minutes. However, if you move your Elephant to the other side of the map and the other team kill you, then you start spawning on the far side of the map, a long way away from the action and your flag! All you do is allow the other team to get you flag very quickly and end the match in record time.

By all means move the Elephants next to each other, but bring the other team’s Elephant to your base 🙂

On an unrelated note, my Memor32 was delivered today. I’ll be putting it through it’s paces over the next few days and a comprehensive review will be posted over at PS2 Save Tools

Tags: , , , ,

Xbox 360 saves backup rises out of the ashes

Over the weekend I picked up a couple of Xbox 360 Memory Units with some hardware to connect them to my PC via USB and I’m starting work on my Xbox 360 game save transfering software again.

I had intended re-writing all of the existing code (saves listing on MU and PC, file copying, full MU backup and deleting and more) but looking back over the source it’s apparent that what I had written was complex and my time would be better spent refactoring the existing code instead of starting from scratch again.
I’m currently playing with adding USB driver support (I’m trying to figure out why the code is returning an error about the device being stalled) but I’ll start up on the main code again soon.

One thing is puzzling me though, I spent a day on this alone and I’m still not sure why this is happening;
Calculating the free space on the device always results in about 2 megs more free space on the card than the Xbox 360 shows. I’ve gone over my code countless times, tried different methods but I always end up with the same amount more. I’m speculating that the Xbox 360 takes into account that when deleting a save/file only the file is removed, the directory structure still remains. This takes up sectors and can potentially make a lot of sectors unavailable for file storage. I’ll have to run some tests and experiment.

I’ll post a video of the old beta and any progress I’ve made soon so you can see it in action for yourselves.

Tags: , ,

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: ,

AR Max save format details coming soon

Ar max packagingThanks to some sterling work by Ross Ridge, who has already completed work on two projects I was looking at starting, the details of the .max PS2 save format have now been uncovered.

I’m documenting the file structure and compression used and also preparing a DLL that will allow people to add .max support to their programs. As a taster here’s the .max header, part 1 of a 3 part system:

type
TMaxheader = record
   magic : array[0..11] of char; //Ps2PowerSave
   checksum : integer; //CRC32 of entire file with checksum area treated as all 0’s
   dirname : array[0..31] of char; //parent directory name
   iconSysName : array[0..31] of char; //icon.sys text
   compressedSize : integer; //size of compressed data
   fileNum: integer; //number of files
   length: integer; //size of uncompressed data
end;

What really suprised me is that the .max format has no provision for recording file attributes! Unlike the .psu format which maintains file system attributes, cruicial for accurate restoration of files back to a PS2 memory card, the .max format appears to restore files with a generic set of attributes. Luckily, or even by design, these attributes match those required by GTA saves but this runs the risk that a file is restored without the correct attributes and a different game will treat the save as corrupt.

On the same note, I’m concerned that the .max format does not support PSOne and Pocketstation files as these require a specific attribute to be set. More investigation is required for clarification.

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: , , ,

Xbox 360 saves backup and sharing, the way it should have been

By now anyone interested in Xbox 360 save backup and sharing will know about Xplorer360, it’s a functional tool but I hate the interface, it lacks grace and ease of use. Back when it was first released I wanted a superior and more familiar way of presenting save data to users rather than displaying the confusingly long folder names that had no relevance to the actual name of the save it contained.

Unfortunately the developers continued with their current look and feel for the app which was then later cloned by others. Not owning an Xbox 360 it mattered little to me but, as always, I had that nagging feeling that I could do a lot better….



What you are looking at are the first public images of an application I started well over a year ago, all without even seeing an Xbox 360 let alone having access to one.

The interface was inspired by the old Action Replay Xbox, in fact I flirted with calling the program XboxAR360 (as in Xboxer 360) in homage to the program that I helped shape and use at Datel.

As you can see on the left is the current memory unit contents, this can be an actual memory unit or a full card backup image file on your PC. On the right is the PC database which lists all the saves on your PC. Image 3 clearly shows the saves properties dialog, this is where you can add comments to your saves and list the region and so on. Saves are stored in a zip format and include an ascii based file detailing the saves properties, the plan was to open up the layout so that websites for sharing saves could extract all the data needed from this file on upload as well as the program itself using it.

So where is this amazing looking program now? Still on my hard drive in an incomplete state. You see when I said I didn’t have access to an Xbox 360 to aid in development that wasn’t a boast, it’s a sad fact that whilst the Xplorer 360 guys were able to buy Xbox 360’s with donations to make their program, I still do not have an Xbox 360 and cannot continue development without one.

Will I ever finish this program? Maybe, I need to get an Xbox 360 first and, until I can afford such a luxury, development has ceased. I’ve seen that Xplorer360 cannot access the new 512MB memory unit so who knows, sometime in the future you could be using my program to backup your saves and share with friends with full 512MB memory unit support 🙂

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: , , , , , ,