xboxscene.org forums

OG Xbox Forums => Official MediaXMenu (MXM) Forum => Dashboard Forums => MXM WIP Beta forum => Topic started by: geniusalz on June 14, 2004, 03:07:00 PM

Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 14, 2004, 03:07:00 PM
I figured scripting has just about everything needed to make a gamesave manager, so I'm starting work on that.

Will need support for the following though:
Reporting what controller/port a memory card "drive" corresponds to.
An explanation of how memcard drive letters are formed.  If that's done already, please post a link smile.gif .


Displaying xbx images, and reading values from ini files can be done already, and that's about all that's needed for the manager.


And mastermind is almost playable now.

Edit: Finding the AS manual pretty helpful  pop.gif
Title: Gamesave Manager & "mastermind" Scripts
Post by: BenJeremy on June 14, 2004, 05:09:00 PM
Oh, that's a nasty question. Really. (Not your faults, though, it's M$' fault!!)

Drive letters for memory cards are fixed. I had to patch my libraries to make it work right, since the first two memory card slots are "F:" and "G:" (See my problem?) - so for MXM, the letters are bumped up by two. It's based strictly on position, and from a programming standpoint, there is no way to map device paths (like the partitions on the hard drive), so there's no obvious way to run apps from a memory card, either.

Simply moving a card from one slot to another, and refreshing the root drive list in FlashFXP while running MXM will give you a good idea of how they are mapped.




 <
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 14, 2004, 04:20:00 PM
I was thinking of trying it myself, but couldn't find my damn memory card.

As for the gamesave manager, I'm using the xml structure from filemanager; works very nicely, flattspott.

MXM had some trouble loading a few xbx images.  It waits a few seconds, then probably 'times out' and doesn't load the image.  This causes long loading times for the script.

If you want, I can post the 'misbehaving' images for you to look at. (that sentence sounds bad laugh.gif )

Edit: Alternately, for now, you could just reduce the 'timeout', so it wouldn't take that long to load.
Title: Gamesave Manager & "mastermind" Scripts
Post by: BenJeremy on June 14, 2004, 05:47:00 PM
Well, I'll revamp the routine altogether soon. It will use the Avalaunch method first, then fall back to the XBX search.  <
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 14, 2004, 06:15:00 PM
The "walking the xbe" method?

If so, I'm not talking about xbe's here, I'm talking about the TitleImage.xbx files found in E:\UData\*

Anyway, the ones that don't load are in "DDS" format, as opposed to "XPR0" (it says that in the beginning of the file, when viewed in a hex editor).  That might be the problem  <
Title: Gamesave Manager & "mastermind" Scripts
Post by: koldfuzion on June 14, 2004, 06:19:00 PM
MXM handles DDS though. (my preferred overlay format.)
 <
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 14, 2004, 07:22:00 PM
Yeah, I know.

It's probably just the way it's packed in the xbx, or that MXM doesn't look for DDS in xbx.

Anyway, some gamesaves don't contain a gameid.ini file, causing me insane amounts of grief.  Instead, they store the title in "TitleMeta.xbx", which is in unicode format.  

Being unicode, every other char is 0, which causes MXM to think the string terminated.  Therefore, only the first char of every line is read using the normal file read routines.

I managed to get the titles of a few games that have TitleName=whatever right at the beginning of the file (using buffers), but some other games have multiple languages defined in the xbx file, which requires more work *sigh*

BJ, can you add a simple AS command that reads a unicode file, converting it to ASCII, or write a custom routine to read the title from those TitleMeta.xbx files?

This post has been edited by geniusalz: Jun 15 2004, 02:28 AM <
Title: Gamesave Manager & "mastermind" Scripts
Post by: BenJeremy on June 14, 2004, 07:49:00 PM
I'll look into that.There's definitely a need to read/write unicode.  <
Title: Gamesave Manager & "mastermind" Scripts
Post by: flattspott on June 15, 2004, 09:48:00 PM
QUOTE
MXM had some trouble loading a few xbx images. It waits a few seconds, then probably 'times out' and doesn't load the image. This causes long loading times for the script.


This might also have something to do with 5 second delay too. Maybe?  <
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 16, 2004, 07:40:00 AM
Yeah, probably, but other programs read images in that format just fine.  <
Title: Gamesave Manager & "mastermind" Scripts
Post by: pelago on June 16, 2004, 11:52:00 AM
Excuse me for jumping in here, as I'm not a WIP tester, but there are definitely titleimage.xbx files in the game save area from commercial games that MXM (0.9n6) cannot display, even though the MS dashboard and UnleashX (for example) can. Worms 3D is one, and I've come across at least one more which I can't remember right now. If you want me to email the non-working xbx files somewhere for testing, or hex dump them, or whatever, let me know.

EDIT: the other game is Hunter: The Reckoning.

This post has been edited by pelago: Jun 16 2004, 07:50 PM <
Title: Gamesave Manager & "mastermind" Scripts
Post by: pelago on June 16, 2004, 12:49:00 PM
QUOTE (geniusalz @ Jun 15 2004, 03:11 AM)
Anyway, some gamesaves don't contain a gameid.ini file, causing me insane amounts of grief.  Instead, they store the title in "TitleMeta.xbx", which is in unicode format.

Me again. I don't know if you're aware, but the gameid.ini files that you may have found on your hard disk are not put there by original Xbox games. They were generated by older versions of Xbox Saves Manager (http://www.xbox-saves.com/) as a descriptive text for the game title and save title. Newer versions of Xbox Saves Manager don't even make these ini files, presumably because they caused some problems. Anyway, the average user probably won't have any of these gameid.ini files.

Hope this helps.

This post has been edited by pelago: Jun 16 2004, 07:51 PM <
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 16, 2004, 12:23:00 PM
Silly me, not researching anything before jumping into development smile.gif
Thanks for the heads up.

And I noticed those non-loading images too.  Seems MXM recognizes xbx files with XPR0 images only.
Title: Gamesave Manager & "mastermind" Scripts
Post by: pelago on June 23, 2004, 02:20:00 AM
This gamesave manager sounds great. Is the idea that this will replace the MS dash equivalent? I.e. allow deleting of saves and copying of saves to memory cards? That will be cool and will save me going into MS dash for that.

Can I make a suggestion? Could your gamesave manager allow copying/moving of saves from the official gamesave area (i.e. UDATA/TDATA) to another part of the Xbox hard disk (user selectable), and back again? I realise that saves moved out of UDATA/TDATA wouldn't be visible to games, and that is in fact the point.

I would use such a feature for two things (both of which I've done recently via manual methods):

1, 'Backing up' saves prior to taking your box to a LAN party, or lending it to a friend (so if someone else mucks up your saves, you can restore them later from the 'hidden' part of the hard disk).

2, Using downloaded saves from the Internet (which involves moving out your existing save first, as usually the downloaded ones can't coexist with your own ones, which you might want to go back to).

I realise that some of this stuff can be done by buying Xbox memory cards to back up saves onto, but I don't have any cards and I have a 120GB HDD in my Xbox with plenty of space on it which it would be nice to use, and anyway some saves don't fit on a card! Also, I realise that this can be done with Xbox Saves Manager (the Windows program which connects to the Xbox via FTP and copies to and from UDATA/TDATA), but in my case my Xbox and PC aren't close together so FTP is a hassle, so I prefer to do all this kind of thing on the Xbox itself if possible.

As I say, I've done both of these things recently with manual methods, namely using the UnleashX file manager, but it's tricky as you need to find out the right folders for the saves. Regarding the downloaded saves, I burnt the downloaded ones on a CD and copied them to UDATA/TDATA, backing up my own saves first. It would be great if your gamesave manager had a feature to do this itself (maybe call it Export/Import) as it could do the looking up of HexIDs and so on itself.

Let me know if this isn't clear - I have a tendancy to waffle. ;-)

This post has been edited by pelago: Jun 23 2004, 09:22 AM <
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 23, 2004, 07:32:00 AM
I see what you mean.  Fortunately, that is possible with just a few lines of code.

i.e. When specifying memcards, and the HD save area, I can also define a HD 'backup' area.

E:\UDATA\ 'Normal' save area
H:\ - O:\ Memcards... (still need to look into those)
E:\Backup or F:\Backup 'Backup' area

Since you seem to know a little about saves, I have the following questions:
Is E:\TDATA ignored while copying gamesaves?  I understand that is where game settings are saved.

And while copying gamesaves to memcards and back, you simply copy the save folder, right?  <
Title: Gamesave Manager & "mastermind" Scripts
Post by: Yuyu on June 23, 2004, 06:52:00 AM
QUOTE
Is E:\TDATA ignored while copying gamesaves? I understand that is where game settings are saved.

Yes, only the settings are stored there, you do no need the TDATA stuff for the game save manager...

QUOTE
And while copying gamesaves to memcards and back, you simply copy the save folder, right?

If you ever look at a memory card through FTP after saving a game to it, either in-game or through MS Dash Save Manager, you will see that yes, all that is on there is the folder from E:\UDATA...

I actually just double checked it to make sure wink.gif
Title: Gamesave Manager & "mastermind" Scripts
Post by: pelago on June 23, 2004, 07:06:00 AM
That sounds good, treating the 'backup' area like another memory card. Could we define multiple numbers of these areas? E.g. I could have a 'My saves backed-up' area, and a 'Downloaded internet saves' area. Other ideas for multiple areas might be if different people wanted to share the same Xbox but the game itself didn't give enough save slots for this. The user could move saves around between their own named backup area and the live area.

These backup areas could be defined in an XML file, like in XBMP (when defining where it looks for movies etc.) or like in DVD2Xbox (when defining different folders it can dump games into).

I'm not really an expert on saves, other than what I've learnt just mucking about with them. I don't entirely understand the distinction between UDATA and TDATA, but I know that most of the downloaded saves from the Internet come as a zip folder which contains the contents of the relevant UDATA and TDATA folder, so it seems both are necessary.

Obviously there is some kind of distiction between a 'game' and a 'save', in that a single game can have multiple saves (visible in the user interface of MS Dash and Xbox Saves Manager), but I'm not entirely sure how you decode TDATA/UDATA to get all this stuff.

I assume the XDK documentation would tell you everything you needed to know, but I don't have that.
Title: Gamesave Manager & "mastermind" Scripts
Post by: Yuyu on June 23, 2004, 07:18:00 AM
Ok further info on game saves...

Each folder inside of E:\UDATA is for a seperate game. THen the folders inside of the games main save folder, are for seperate game saves...

Inside of the main Game Folder is TitleImage.xbx and TitileMeta.xbx. These are used for the MS Save Manager, to retrieve the Title of the game from TitleMeta.xbx and to retrieve the Large game save Image (the left hand side of MS dash save manager) from TitleImage.xbx.

Then inside the sperate save folders the same thing happens, but there is a file named after what the save is for (EX. Inside of my D&D Heroes Main Game folder is a few save folders, inside of one of them is my options save, which contains the following files: D&D Options, TitleMeta.xbx, and TitleImage.xbx) These files are used the same as the main folder. THe TitleMeta.xbx is used by the save manager for the individual save name, and the TitleImage.xbx is used for the smaller/individual save game pics...

Hops that clears up exactly how game saves work for you...
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 23, 2004, 01:31:00 PM
Yeah, I had figured out the E:\Udata\GameFolder\SaveFolder format, and the image/title xbx files.

Only concern was memory card (can't find mine to test) and whether it needed any special treatment.

Edit: Little progress report:

Lists all games with saves in UDATA (sorted, with pics).
Selecting any game lists all the saves for that game.

That's about it smile.gif

The rest of the stuff should be easy.  A command menu of sorts (Copy, Delete, etc) and associated commands.

And a 'device' selection screen (memcard, HD, backup folder)
Title: Gamesave Manager & "mastermind" Scripts
Post by: pelago on June 24, 2004, 06:34:00 AM
Thanks for the explanation of E:\UDATA, Yuyu. Can you explain E:\TDATA similarly?
Title: Gamesave Manager & "mastermind" Scripts
Post by: Yuyu on June 24, 2004, 07:18:00 AM
QUOTE (pelago @ Jun 24 2004, 10:27 AM)
Thanks for the explanation of E:\UDATA, Yuyu. Can you explain E:\TDATA similarly?

Sure...

E:\TDATA, has a folder created for each game just as E:\UDATA does but, TDATA is used to store settings for the game itself to remember, not individual options(The two can be easily confused). It also stores certain things the game might need to "remember"(recall what player last played the game, etc..) when you play it again... This is also where downloaded content is stored...

Take Ghost Recon:Island Thunder for Example...

In E:\UDATA there is the main save image and title file, then seperate folders for saved games...

In E:\TDATA there is a folder, inside that folder, is the following:
folder named c$ - this is where the downloaded content is stored
coop.but - file containing the options last used when playing coop
team.but - file containing the options last used when playing team
linkplay.but - file containing the options last used when playing linkplay
xboxoptions.dat - a file that saves info such as the last account used to play the game

Hope that clears up E:\TDATA for ya...



Title: Gamesave Manager & "mastermind" Scripts
Post by: pelago on June 25, 2004, 03:31:00 AM
I'm just wondering, does TDATA ever include things such as feature unlock status? In some games you can access bonus features and stuff from the main menu, before it's asked you to load a saved game, so it seems logical that this kind of stuff is stored in TDATA instead of UDATA. Certainly some of the saves on xbox-saves.com that let you unlock stuff and so on contain TDATA data.
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on June 25, 2004, 03:53:00 AM
QUOTE (pelago @ Jun 25 2004, 03:24 PM)
I'm just wondering, does TDATA ever include things such as feature unlock status? In some games you can access bonus features and stuff from the main menu, before it's asked you to load a saved game, so it seems logical that this kind of stuff is stored in TDATA instead of UDATA. Certainly some of the saves on xbox-saves.com that let you unlock stuff and so on contain TDATA data.

Interesting thought... real issue would be how to treat TDATA while using gamesave manager

Maybe have an option to 'backup/copy options', as opposed to copy saves
Title: Gamesave Manager & "mastermind" Scripts
Post by: Yuyu on June 25, 2004, 08:04:00 AM
QUOTE (pelago @ Jun 25 2004, 07:24 AM)
I'm just wondering, does TDATA ever include things such as feature unlock status? In some games you can access bonus features and stuff from the main menu, before it's asked you to load a saved game, so it seems logical that this kind of stuff is stored in TDATA instead of UDATA. Certainly some of the saves on xbox-saves.com that let you unlock stuff and so on contain TDATA data.

That is what I said isn't it... Sorry if I was not clear...
QUOTE
It also stores certain things the game might need to "remember"(recall what player last played the game, etc..) when you play it again...


Meaning, yes, it can/does, depending on the game, store unlock status in the form of a file that is read, when the game is starting up, stored in E:\TDATA... Basically anytime the game "remebers" something, and it is not in a saved game or saved options file, the game created its own file inside of E:\TDATA to "remember" these things...

EDIT ::: Some games, when you use xbox-saves game save manager, saves both the E:\UDATA and E:\TDATA as the save information... I guess it just checks to see if E:\TDATA exists for the game and copies it and all of its files, except if there is a c$ folder in E:\TDATA, since that is downloadable content that cannot be used on aonther Xbox...

SO I guess I am saying is that the Game Save Manager, geniusalz, should do the save thing. Check for E:\TDATA for the game, if it exists, you also need to copy/delete this as well... IF a peson chooses to delete a game completely, it should delete the main folder of the game in both E:\TDATA and E:UDATA, unless c$ exists, in which case you would maybe throw up a flag saying "Do you want to delete the downloabale content for this game also?" maybe?...

Ok I'm done rambling...

This post has been edited by Yuyu: Jun 25 2004, 03:19 PM
Title: Gamesave Manager & "mastermind" Scripts
Post by: chilin_dude on June 25, 2004, 08:09:00 AM
For example an easports bios
Title: Gamesave Manager & "mastermind" Scripts
Post by: pelago on June 26, 2004, 11:33:00 AM
QUOTE (Yuyu @ Jun 25 2004, 04:57 PM)
That is what I said isn't it... Sorry if I was not clear...

Sorry Yuyu, your post was very good about the sort of thing we might find in TDATA. I was just trying to make the point that we would definitely want to copy TDATA sometimes, as it's not just trivial options-type stuff which it doesn't matter if it gets lost.

What would be interesting to know would be does the MS dash ever copy TDATA stuff? In other words, is it possible to copy options and unlock status and so on from Xbox to Xbox via memory card? Maybe there's a difference between copying an individual save and the whole game in the MS dash? I don't have a mem card otherwise I'd check myself.

If the MS dash never copies TDATA stuff to mem card, then I guess the MXM equivalent should do the same, assuming we want the mem cards to be compatible with MS dash. But it would still be good to copy TDATA stuff when copying to the 'backup' area of hard disk, and for when copying downloaded saves from the Internet.
Title: Gamesave Manager & "mastermind" Scripts
Post by: chilin_dude on September 18, 2004, 03:10:00 AM
Sounds like 'sumdumguy' could use some of this info....
Title: Gamesave Manager & "mastermind" Scripts
Post by: SumDumGuy3 on September 18, 2004, 10:32:00 AM
chilin_dude,

Thanks for bumping this thread... I did a search but somehow it did not turn up this thread... very good information here... btw, I'm going to go search but just in case it does not turn up... does anyone know if this "game save manager script" complete or incomplete was ever posted? I would love to toy around with it...

Thanks Again,
SumDumGuy
Title: Gamesave Manager & "mastermind" Scripts
Post by: Yuyu on September 18, 2004, 04:51:00 PM
Just shoot a PM at geniusalz, I'm sure hw would be more than willing to give you a progress report on it, or let you play with it... (Just don't hurt him with that PM laugh.gif (I know, I'm lame))
Title: Gamesave Manager & "mastermind" Scripts
Post by: SumDumGuy3 on September 18, 2004, 07:42:00 PM
hehe, roger that... I may do that, not tonight though... got some work to finish up... thx...
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on September 21, 2004, 09:20:00 PM
Here's an unpolished/unfinished version.  I was looking at ways to get a drive selection listbox, but it doesn't want to work for me.  So if someone can look at the dialog.xml included, that would be great.

GameSave Manger

Title: Gamesave Manager & "mastermind" Scripts
Post by: BenJeremy on September 23, 2004, 08:46:00 PM
QUOTE (geniusalz @ Sep 22 2004, 12:23 AM)
Here's an unpolished/unfinished version.  I was looking at ways to get a drive selection listbox, but it doesn't want to work for me.  So if someone can look at the dialog.xml included, that would be great.

GameSave Manger

I'll try to look at it this weekend.

Just got Context Menu Plugins going.... I'll probably post something Friday night, as there is still some polish being applied.

There are a few nagging things I need to clean up... once the big pieces are in place, I plan on hitting them (dialogs, listboxes, internet connections and input mapping are things I can think of, off the top of my head)


ERm.... except the rar doesn't download.  huh.gif
Title: Gamesave Manager & "mastermind" Scripts
Post by: chilin_dude on September 24, 2004, 03:41:00 AM
Agreed... Brokensite.org appears to be having DNS probs  smile.gif
Title: Gamesave Manager & "mastermind" Scripts
Post by: geniusalz on September 24, 2004, 06:46:00 PM
That figures, it's broken biggrin.gif

This better work

Edit: SHOUTout to someone who can provide low-bandwidth low-storage long-term hosting
Title: Gamesave Manager & "mastermind" Scripts
Post by: chilin_dude on September 25, 2004, 10:34:00 AM
The link works... If you want me to host any mail me it:
[email protected]
Title: Gamesave Manager & "mastermind" Scripts
Post by: BenJeremy on September 25, 2004, 04:55:00 PM
I can provide hosting, too.... wink.gif