Friday, July 9, 2010

FSD 2.0 Quick Video

*DO NOT POST THIS ON X-S, YOU CAN POST THE VIDEO, NOT THIS CRAPPY TEXT! :P *

Real quick video I made using xbmovie showing main menu and skin customisation features of FSD 2.0.

XBMovie is a real piece of crap... If I capture for longer than 20 seconds, the video cant get converted and sound is always off...
It also create some kinds of glitches in the video, dont worry its not an fsd issue!
Anyway, here they are



* update : Embedded video suck.. heres the link : http://www.youtube.com/watch?v=2tSHogNQZWc


Tuesday, July 6, 2010

FSD 2.0 7/6/2010 r870 !

*Please dont post this on X-S! this is totally not front page worthy ! this is only semi-technical explaination of some issue we encountered and fixed*

Huge progress day from my part. Fixed most major issue I could find :
there was a threading issue when opening up a game list : an image caching thread was started, when the gamelist was disposed, the thread never stopped.
I cleand a bit the status display. It used to display HTTP Downloader status always, and ftp / content indexing status when there were working. Now HTTP status is not displayed if http queue is empty.
There has been some issue with FTP folder delete for a while, i finally found it, some handled were not closed properly on a file search. I also added proper last modified date and attribute value to the list.
Recently some stability problem appeared with FTP server, seems like cutting a connection while transferring screwed the whole dash (gui still working but pretty much everything fails). Here's what happened
FTP Connection thread priority was set to highest. This was working fine while in Core 1 thread 1.
Recently, we cleaned threads to act like the real dash : FTP Server was moved to Core 2 Thread 1 (same as nxe http download). The problem that happened is that there's seems to be more standard priority thread in core 2 thread 1 going on than in core 1 thread 1, so our FTP Connection took over the whole thing while it was working.  Just setting it back go standard priority fixed stability issue and increased the transfer speed.
I also played a lot with ftp transfer buffer size trying to get the maximum ftp transfer speed...
You may have recently see in the svn log that we had issue with dvd or 360 games tabs appearing as blue randomly. Well the issue came back and is now finally resolved. Seems like tab details were added to a map using always the same pointer, therefore, any modification screwed previous tab. Whats strange is that it worked well for most of the tab...

Major issue left (There might be more, this is just those that I noticed earlier today) :
The DVD tab stopped working properly, Slot Art is not displaying and starting dvd launch first game of last opened game list.
Copy DVD skin need some work
About Us skin need some work
The file manager need to be revalidated, there was some copy/cut/paste issue but they may have been fixed with the ftp folder delete fix. I think JQE is working on a new GUI and a better copy/cut/paste implementation.

*NB : This is not TeamFSD's Alpha release Todo list, this is just what I noted from tonight's test and discussion.

Monday, July 5, 2010

FSD 2.0 7/5/2010

Testing is underway and things are looking amazing!! There's still some visual issue : A tab sometime appears blue, seems to be some threading issue with our skin xml loading... If your content list is pretty much empty issues is not seen....

Copy DVD is working fine, but skin needs some work.

In the profile tab, the gamertag is misaligned.

HTTP downloader is 100% stable, all of my content seems to get scanned fine ( i got lots of extracted games and xbla games. GOD and homebrew should list fine too, will test later.

Will post some screenshot later today.

About the SVN log not working anymore, it seems like there some issue with our website, just go to http://trac.teamfsd.com/log and you'll see whats going on.

Tuesday, June 29, 2010

Lets set some things clear

1 - Project is not a hoax. TeamFSD is alive and well, and FSD 2.0 exist, just have a look at svn log...
2 - Life is sometime a bitch, i'm pretty much out of free time these, cause I do have a full time job, a wife, a dog and a house to take care of! When I have 1 or 2 hours free i do need to get some sun!
Can you imagine how much time it takes to keep up with every change that happen in the project, analyse, develop and post every change here? Even thought I do not post a lot these days and dont contribute a lot in the svn, I'm still in almost every design discussion and help other coders with whatever they are working on.
3 - I expected to take last weekend to work a lot on FSD but my main server hard drive crashed and lost a full tb of data, some of my personnal data and some of work related data, and need I need to catch on what i lost!
4 - Building a stable alpha version is taking a bit more job than I first expected but the wait will be worth it! And from the SVN log I guess you can clearly see that work is going on. Last time I fully tested every was pretty much working great, except that there was some trouble with the XBLA game list and there was some cpu issue when scrolling the game list, but were almost there.
5 - here's my personnal take on jigga99's melodrama :
Lol this could be splitted on multiple points, but just a direct message to him :
If you want to release it, why arent you doing it?
And why arent you contributing you code fix with us if you think you did better than us? TeamFSD is pretty easy to reach.
Here's a bit of FSD history for those who could be interested :
axc97c started the project as a lone coder,
released v1.0 up to v1.09 with souce code bundled with files, annonced with l.09 that he dont have any more free time to work on project.
JQE took over the project, gathered some coders on irc and forums. TeamFSD was created!
TeamFSD then put FSD 1.09 source on Google Code (http://code.google.com/p/freestyledash/source/list?num=25&start=15, Created on March 2nd, by Workerbe, which is JQE) FSD 1.09 was released in febuary. Therefore you can see that TeamFSD did put the project on Google Code, not original creator.
We then released 1.10.
When building we received shit load of stupid flaming comments about the source not building on certain revision. Project was really active, some guys were making daily build, posting them all around and claiming credits for it. We were coping with this.
The whole 1.x source was some really spaghetti, still a great job for a lone coder, but almost lucky some part worked properly. We started to a major rewrite for 2.0 so it comply to standard development patterns and get a clean way for skinners to do almost whatever they want.
To ensured we did a good job, we pretty much started from scratch. On current svn (google code) there was lots of flamers sending hate mail when a single revision had a trouble, just thinking about the whole source being pretty much destroyed , we though it was a better idea to close the door a bit until we can get 2.0 out.
2.0 required a lot of research for some features that were still untested (http downloading,  fan speed management, led management), and we didnt wanted this untested code to go widespread as this could possibly cause damage to an xbox (i did screwed up 2 board of lights while testing).
Plans has always been to package source with every release and we never said we wont go back to a public svn!

So lets start with some of jigga99's explaination :

nope, I have absolutely nothing to do with teamfsd,
Indeed
I have last weeks source. like i said,
This post was made today, therefore he would have  source from > june 20th.
from what i see from thier ’secret’ source theyre working so hard on, its fulll of bugs and garbage code that barely works.
 Well if you think design patterns are garbage then I can see how much of a great coder you are!
i’ll give it one plus, it looks damn good visually, but functionality is a few steps back from 1.20
In which point is it a step back? 
Lets recap most of 1.20 features :
          -List games based on folder, manually entered for each category
          -FTP Server
          -NTP Client
          -Use PC software to download cover art and stuff
Thats pretty much it for the "Big" features.
Lets compare to actual status of 2.0 :
          -List games based on generic folder then autodetect type of the content, so you can just dump pretty much any folder.
         -FTP Server
         -NTP Client
         -Download cover art and stuff from HTTP without using PC software.
         -Extract game information from xex without having to download for non connected xbox.
         -RSS Client
         -Skin fully customisable
Where's the few steps back?
“why not to submit your fixes to the official project?”
there is no ‘official’ project in case u havnt noticed. what about this ‘team’ or this ‘project’ seems so ‘official’? its an open source project now all of a sudden closed source, and if you *think* they’ll be making it open source again, youre crazy….trust me.
Haha so you got super secret contact that know whats in every one's mind? Dont worry you'll all get official 2.0 source at the same time as the official 2.0 release. 
im just giving back what belongs to the people. think of me as robin hood with a computer
So i guess you are wearing thights while stealing some code? :P


Let me take the jigga99's post that is the most interesting :
dont worry guys, VERY SOON you will have a release, we changed things up a bit
working on my own stuff, these guys took free code and got selfish, but I’ll be fixing that verrry soon with our own custom release.
So trying to release a software as stable as possible is selfish? 
theres tons of bugs (thats the type of stuff that happens when u have a couple kids testing their own code behind closed doors…)
So you can make a whole dashboard without having any bugs WHILE STILL IN PRE-ALPHA STAGE?
but most of which will be worked out in a few days, and I’ll be releasing a working FSD by this upcoming sunday, along with source.
Great can't wait to see this! If you did fixed most of the issue that congrats, we'll integrate it and release a proper FSD 2.0!  
what we’ve done:
- dvd copy fixed and complete
 My last post was about dvd copy that might not make it into alpha release, I did pointed that the mecanism is there. Only the skin was missing. No fix was required as this was already working 100% using our debug commands mecanism. So unless he either did the skin for the module (which can be painfull if you dont fully understand whats going on and how we wanted to have this implemented)  or he redid the whole mecanism or simply used 1.20 code which was buggy as hell.
- avatars glitches fixed
LoL so what was those glitches?
- removed ’save game viewer’ crap
Some save game viewing feature were added in svn on june 27th, there was no trace of that before, so if is code is from last week, then he doesnt have this 
- faster/better FTP (faster and better than what theyre probably going to release)
 There's some usb writing issue that slow down ftp transfer, writing to the drive slowly dies on large file. Cant wait to see how he can have rewritten the xbox usb drivers. I might be totally wrong about this, but my conclusion comes from days of experimentation. If theres a way around the current issues, i'm pretty much hyped to see how they are fixed!
- fixed some graphic glitches
 Only graphical glitche there is, is some buffering issue with the image, but were pretty much fixed now, I dont think its what he's talking about.
Im gonna try and revert some of the crap these guys put on here. as of right now it looks all pretty and flashy, but ur literally better off with 1.20 (which is why im removing/fixing all these issues before i release) im gonna try my best to give the people what they want (based on viewing comments and such from everyone) and then just release the source from there.
already got an svn partially set up so this project can go back to the people! keep an eye on xbox-scene news, you’ll be seeing some updates soon
Cant wait till he release this hacked FSD 2.0!


Personnally i dont think he's real and I wouldnt get my hopes up for his planned next sunday release. If he do, I cant wait to see what changes he made. Which version was it built of.


I'm off now, i'm gonna test latest build on my retail xbox to see if were almost done nailing the minor issues that are left.









Saturday, June 19, 2010

FSD 2.0 19-06-10

Currently testing latest fsd build on my gaming xbox.
Seems like xex parsing stopped working properly. Anthony started cleaning up the xex code so we can add delta compressed xex support (xex recreated using 360 game hack tool) and it should also be using the internal fonction of the kernel to decompress the xex, instead of the function i wrote. But as I said, doesnt seems to be running fine.

HTTP indexing seems to works fine and stable. Didnt crashed while indexing my >300 games library + >300 xbla games. (Might be talking too fast as its still indexing but fill pretty confident its working fine).

Copy DVD is still not completed (a fixed core library is completed, only the gui is left) should this be in alpha or should it be left for later release?

Still didnt had time to code a lot, but it seems like my first post this week gave the whole team a little boost.

Thursday, June 17, 2010

Today's build

*I'm trying to get back to daily update about whats going on... i'll do my best so you guys know what to expect for next public build.

Its been a while since I last compiled FSD 2 and dont know every details about whats has changed and what are the plans on some module.

As the first loading screen is gone (it load straight to dash while loading stuff in background), if you opened the game list you would get an incomplete list. Without our debugger tool, there was no way to tell if content parsing is done, so I added a note in the status bar to say that content parsing is underway.

Also added ftp status to the status bar, it currently just tell if theres an ftp connection open. Speed would be nice, but should be done after alpha release.

At each restart of FSD I had some tab appering as blue without a logo, I dont know whats is the current tab manager/editor status, i thought it was already worked fine... Need to talk to MaesterRowen about this, might be just a minor bug. Disabled it for now.
*Update : this is a random bug, i'll fix it later today.

Seems like the gamelist doesnt reflect the selected game info anymore. I know there was some work done to split our game list module (ScnQuickGameView, which is responsible for displaying anything related to game : the dvd tab is an scnquickgameview, the favorite tab are scnquickgameview, and the gamelist is an scnquickgameview... It was just a mode setting in the skin xml that defined how it displayed games.)

The gamelist code now seems to all be in CGamesList with the OnNotifySelChanged code commented out...
If theres too much work left to get this working properly, i'll roll back scnquickgameview to a previous version.
*Update : Changing selected games with banner + screenshot + game icon + background was too slow. Code was disabled until preloading is completed.

Also, read some comments on forums and here some answers :
Media Player :
I dont know the current status, will have a look at it later. But this is not an mplayer port!! Its mostly a xmedia GUI. Therefore, dont expect mkv playing and samba support!

Wednesday, June 16, 2010

I'm still alive!

So sorry for lack of recent updates... As with every other members of team fsd, we've been busy as hell with our day life...

FSD 2.0 project is still alive even thought its been a while since it has not been updated. I'm currently starting cleanup work to get a fonctionnal version out.

I think this lack of updates was also due to some lack of communication between the team... Some weeks ago we were really near of an alpha release, like 2-3 days. Only some minor gui works was left to be done. Then we all started doing some need things we thought well be usefull and the whole thing started crumbling and seems like nobody wanted to take the time to fix it.

In the next few days, i'll try to get a clean, fully working build that you all can use.
This build will probably have every extra features off or non-fully fonctionnal but it will list games in a neat way and run them properly.

Regards,
HellDoc

Saturday, May 8, 2010

Update!

Sorry for the recent lack of update!
I didnt had lots of time to work on FSD these day!

Just to tell you that XDK is ordered and should hopefully be here by monday!

I did worked on some "non-visual" stuff...
1- Getting back to FSD from game : I did had a fonctionnal prototype but it was really hacky. Some better way will be released by other people/group soon. All I can tell is that if you dont have the latest freeboot with memory hack yet, it wont work!

2- Profile info : I did some experiments about the profile file. My goal was to be able to retrieve achivements status for one game for specific profile. Using XUserCreateAchievementEnumerator with a title id other than current doesnt work. SDK docs says : ID of a title in your family, or 0 for the current title.
I did search about the "title in your family"... What i figured out about this, is that when using ImageXEX, you can specify alternate title ids (max of 255) using "/ALTTITLEID: alternate title ID" but this doesnt work for the achivement enumerator, but it works for XEnumerateCrossTitle. If you add the title ID of a game to your xex alternate title ids, you'll be able to properly read the content created by this game (saved games, saved data..). I then tryed to get the data i need using another way.. The profile file is a standard CON file, therefore, it "SHOULD" be mountable, but there's some security on them. Simply using XamContentOpenFile on them doesnt work it return ERROR_ACCESS_DENIED. If you transfer the profile file, open in "Le Fluffy" and remove the security info, it gets mounted properly... So it might required a dash hack... I'm currently exploring other solution.

Regards,
HellDoc

Thursday, April 29, 2010

FSD 2.0 r658

Rss Reader is now in!
Current way to add feeds :
Add this to confix.xml (below )
<feeds>
      <rss>http://feeds.feedburner.com/XboxScene</rss>
      <rss>http://www.logic-sunrise.com/xml/news.xml</rss>
< /feeds>
Currently integrated in status bar, but will probably change in final release.












Equinox readded overscan feature!

Tuesday, April 27, 2010

FSD 2.0 r653

Added some nice stuff to FSD 2.0 today :
Internal indexer is now using the real marketplace data, not using that html parsing code anymore!
So indexer is now downloading : boxart, game backgrounds, screenshots, game preview video, game banner and game text info (description, genre, publisher, developer).
Also fixed most of the HTTP Downloader issue!
I added description, game genre an banner to gui. Banner was mostly hacked in and will be propered in later version.
Here how it look :






















No I didnt made that banner in mspaint :P Its really comming from market place! as well as the description!

Sunday, April 25, 2010

FSD 2.0 r643

I did finally figured out some stuff that been anoying us for a while yesterday!
There was a random freezing issue in the boot process and the game list was behaving really weird (games with no title...).
This being fixed will really change FSD 2.0 development to 2nd gear!

Another issue that i fixed yesterday is the string convertion problem : remember those gamelist screenshot with some square instead of special char?
This was caused by a bad string to wide string convertion. We were still using the code from original author, and while it work, it doesnt support special char.

Original code :
wstring strtowstr(string str)
{
     wstring s(str.begin(), str.end());
     s.assign(str.begin(),str.end());
     return s;
}

Working code :
WCHAR* strtowchar(string str)
{
     WCHAR* retVal;
     int Length = MultiByteToWideChar(CP_UTF8,0,str.c_str(),-1,retVal,0);
     retVal = new WCHAR[Length+1];
     MultiByteToWideChar(CP_UTF8,0,str.c_str(),-1,retVal,Length);
     return retVal;
}

By the way.. never call this 400 times per frame :P it will freeze the xbox! :P


Screenshot :
Cant remember if I explained this earlier : you'll notice that fps was locked at 60 mostly because at 500 we at tearing issues.


See those fancy chars? :P

Here the basic music player. Gui is in no way final. I think this is mostly a proof of concept. It does work great!


Video Player. Playing a 720p wmvhd in preview window.
 Video player playing 720p wmvhd full screen

 Playing wmvhd 1080p video. Playing works great without and issue except the fact the the ratio is messed...





Friday, April 23, 2010

Development on retail 360

Developping on a retail 360 is a real pain. The default behavior of the 360 on an unhandled exception is to freeze... just freeze... Need to cold reboot the xbox, rebuild a version that may be fixed, transfer using a stable software, test and if youre lucky your freeze is gone.

There's way to make this issue more bearable :
Define an unhandled exception filter :
LONG WINAPI UnHandleExceptionFilter(struct _EXCEPTION_POINTERS *lpExceptionInfo) {}

Then first line in you main fuction  :
SetUnhandledExceptionFilter(UnHandleExceptionFilter);

Now, instead of freezing, your UnHandleExceptionFilter method will be called, if the function return EXCEPTION_CONTINUE_EXECUTION then execution of software continue, but thread that crashed is still stopped, meaning that if your GUI thread throwed the exception , even if you ask to continue, you are pretty much screwed (can still have a network listener running). So exception are "No Continuable" : returning EXCEPTION_CONTINUE_EXECUTION on those will just rethrow another exception and may totally freeze the 360.

Our current solution is to have a XShowMessageBoxUI displayed in the filter method. The msg box have 3 options : Restart FSD, Go Back to NXE, Try to continue.
If no options are selected within 20 seconds, we restart FSD (most of the time, GUI Thread has crashed, then XShowMessageBoxUI  wont display anything).

So we dont have to reboot at every exception, but finding those are a real chore : we need to disables each module 1 by 1, trying to figure out which one cause the crash. When we found the module, we need to find what happened in the module.... makes the whole software a Debug Log Party!

One thing you can do to help pinpoint the exceptions : the struct you receive in the filter does contain an exception code (lpExceptionInfo->ExceptionRecord->ExceptionCode) but they sometime are really strange: been having a lot of EXCEPTION_BREAKPOINT... which obviously I didnt hit a breakpoint!

Those random crash are a real pain in the a** to fix... having an XDK would so much help!!

You can get our exeption handling code here :
http://tinypaste.com/260814

You'll then just need to add SetUnhandledExceptionFilter(UnHandleExceptionFilter); in your main and change the DebugMsg, Restart and BackToNxe methods!

Wednesday, April 21, 2010

XeXtractor v1.03

XeXtractor v1.03
-Added XACH and XITB support. (Now list achievements in every language possible and image file names are now the original filename) This can only be done when opening a XEX or XBDF file.
-Added XITB sample class.
-Added a file name level in xuiz extraction so not all xuiz extracted file ends up in the same folder.







































Download :
http://www.sendspace.com/file/x8t0p1

Tuesday, April 20, 2010

FSD 2.0 Current status / Release information

You guys keep asking about an eta : we have no ETA and probably wont have. Working on FSD is a hobby for all the team, so we never know much time we can put on it.

Current Status :
Its pretty hard to give an overall status... Media player is still not in there (JQE is working on this, but still not committed the code)
Recent games list still need to be totally redone. Some skin work need to be done to have a dynamic number of tabs. We still need to experiment and try to figure out how to get stock dash recently played list. If we cant do easily we'll probably just add a last time played datetime to each game and use this.
Favorites : Still need to be 100% rewritten.
Game type switching : Still need to be 100% rewritten
Copy DVD : Still need to adapt FSD 1.XX code and properly clean. Currently not working.
File Manager : Working but we want to change the way it behave (should be back to drive list instead of having to use shoulder button to switch drive)
Nand flasher : working great
About : Still need some work but will be quick.
Game List : Games are listed but not sorted. Everything still need to be plugged in (boxart, game description, preview). I think game renaming feature broke in some previous rev, will need to fix it.
Built-In Indexer : Need to add screenshots and preview movie with proper settings.
HTTP : Still having some freeze issue and need to tweakt it a bit, otherwise its working great. Need to add priorites to the download queue.
XeX extraction : Working great.
Skin Edit Mode : Working great.
Skin customisation : Working great.
RSS Reader : Still need some work.
Internal XML Reader : We're looking to change it to a SAX implementation, still need to be done.
Autoupdater : First tests are working great but still need some intensive testing.
Multilanguage : No work has been done on this yet.

Theres still lots of "Surprise" we have to experiment with and see what can be done than may imply changes in previous listed stuff.

FSD 2.0 r614

Sorry for not posting that much these days, i've been mostly working on "under the hood" features and fixing bug.

Biggest new feature i've accomplished these days is autoupdater. Current at each start, FSD will check online to see if a new version is available, download to cache, and prompt the user when download is completed. My goal is to have 2 "update channels" 1 for svn and one for final. Subscribing to the svn channel will update to every rev we post online (currently working on setting up an automatic daily svn builder).

Now, you guys saw the video... Here's some screenshot of skin customisation in r614 :

In the skin selection panel, open "Customize Skin"

It gets you to the skin customization screen. You can choose background, stage, turn off animations..

Hitting Y will get you into the skin "Edit Mode"
Hit A to Edit the current tab. First options is the tab background.
Change it to the color you prefer.
Next up is the icon color.
Then the Text and Reflection text color
And then, the reflection background color.
Changes are now applied to the current tab.
If you dont wont to customise every single tab, you can apply to current menu or to the complete dash with the push of a button
Or you can randomize every single tab!
Finally done! Saved changed and back to dash with your new tabs color!

Sunday, April 18, 2010

Team FSD official website / blog

http://www.teamfsd.com/

Official site is up and running!
SVN Log is in there as well as some official posting!

(Check out MaesterRo latest video! Pretty amazing!)

Friday, April 16, 2010

XeXtractor v1.02

XeXtractor v1.02

-Fixed with some xex (Halo 3 and Sherlock Holmes)
-Added some file type detection

Download :
http://www.sendspace.com/file/tfb41z

Thursday, April 15, 2010

XeXtractor v1.01

XeXtractor v1.01
-Fixed a know issue with some large compression window XEX (Dash.xex from 8955)
 
Download :
http://www.sendspace.com/file/eby202

XeXtractor v1.00b

*use 1.01 : http://helldoc.blogspot.com/2010/04/xextractor-v101.html*
XeXtractor v1.00b
-Fixed a small display issue with the info group


Download :
http://www.sendspace.com/file/ub2uhu

XeXtractor v1.00

XeXtractor is a generic XEX tool box. Drag a XEX in and extract the files!
*use 1.01 : http://helldoc.blogspot.com/2010/04/xextractor-v101.html*

Change log since v0.20 :
XeXtractor v1.00
-Added icons to treeview
-Allow file drag-in
-Allow "File Open With XeXtractor"
-Added info group in main view (File size, folder size, type of extraction, png preview, extract button)
-Threaded the extraction
-Included Source code for : XACH,XDBF,XEX2,XSRC,XSTR,XUI

XeXtractor v1.00 RC1 *Internal Only*:
-Added Right Click -> Extract All
-Added ability to open file on double click (will open from TEMP folder)

XeXtractor v1.00 beta *Internal Only*:
-Reworked the view (do not auto extract, display in treeview)
-Added XEX Support (Decryption/Decompression, Automatic recursion within the resources)




Browsing Gears of War 2 XEX














Browsing the Blades Dash's dash.xex













 Have fun!

Download Link :
http://www.sendspace.com/file/crzgbf

XeXtractor v1.00 RC1 Screenshots

XeXtractor v1.00 is almost ready for public! Lots of stuff added! Major feature is XEX decryption/decompression.
With a dashboard XEX file opened.

You can extract a file, a folder, or everthing! You can also double click to open the file.

With a game XEX file

Wednesday, April 14, 2010

XeXtractor v0.20

Already an update!
XeXtractor v0.20 :
-Extract XBDF files
-Convert XSTR to human readable txt file
-New sample class included : XSTR.cs XBDF.cs

XBDF :
XBDF files are ressources containers. Its basically the same as the xlast xml file but in binary format and including the images.
XSTR files are multilanguage strings map. The file name represent the language id : 1 is english, 3 is german, 4 is french...
The XeXtractor txt output of xstr convertion is just StringId - TheString

Bins folder from XBDF extraction :
Lots of file gets in there, heres the one that i currently know and what they are used for :
XACH : This is the achievement string mapping : it contain the title string id, description string id, unachived title string id, image id, gamer cred the achievment is worth and the type of achievement.
XCXT : Contextual string mapping
XPRP : Properties string mapping
XSCR : This is the xlast xml submission file (I'll include a XSCR decompression feature in future version)
XTHD : This is the game title id
XITB : This is the image name mapping, contain the image id + filename. Current XBDF extraction is not using this yet, but its using the id to figure out which kind of data it is.

Download :
http://www.sendspace.com/file/o019jr

XeXtractor v0.10

While doing the FSD2.0 XEX extraction lib, i made a pc software that do multiple operation on the xex. I think this is something that could be usefull to the 360 community as my app do more than XEXTool and code is a lot more simple. Only problem is that my software is not really user driven, therefore, i decided to clean it up, and release XeXtractor : a cleaner way to handle xex and its component. With each release I'll bundle some sample class file that describe bits of the xex struture.

XeXtractor v0.10 :
-First Release
-Extract XUIZ files
-Sample class included : XUIZ.cs
-XUIZ files are containers for visual data (xur, png...) included mostly in the dashboard xex files.

Download links :
http://www.sendspace.com/file/g1jp8h



V0.20  will have XBDF extraction and XSTR to Clean txt file

Monday, April 12, 2010

Freestyle Dash 2.0 R557

I  just fixed some annoying issue in the game list : some items were not displayed properly (ie totally missing)
I dont quite understand what was going it, just redesigned the whole thing 2-3 times and finally got it right.
As for the "font" issue. Seems like its a unicode to multibyte problem.I kindof fixed it but still need a bit of tweaking.
While texting with game title, i added a feature some of you may found useful, this will probably still be in final version :
When in a game list, if you it lb + rb you will be prompted to rename the game!
Things are starting to take shape! just some minor work required are were back to a fully functionnal state!

What I have in mind to do next :
Change the game picture way of rendering, instead of exporting texture to png and sending it to xuiimage, we should just draw it in the render loop.
I want to experiment with a way to buffer large image before drawing them...

Screenshots :













Game list view with box art.








Fight Night Round 3 before being renamed (Extracted XEX title is EA SPORTS FN 3)












Renamed it to Fight Night Round 3













XBLA view.













New debugger look : left colomn is updated file that needs to be deployed to 360. You can right click the view to deploy changes, deploy the xex or deploy the whole skin.  There is now log tabs. Each tab correspond to a run of the software, ie : if it crash and reboot, it will automatically create a new tab.

Saturday, April 10, 2010

FSD 2.0 R528 - XEX Extraction - Debugger Update - Skin Update

Wow! Rev number are really going up fast!!
XEX Parsing is mostly completely integrated!
Lots of stuff going on with the XEX  (this is the current status, may totally change in 2.0 release)
XEX ressource is extracted to \fsdata\{gameid}\xexress.bin
String ressources are extracted go \fsdata\{gameid}\strings\{languageid}.str
Achievement icons are extracted to \fsdata\{gameid}\achievement\achievement-{achievementid}.png
An achievement xml is created containing Achievement Name, Description, Unachieved name, gamer cred, and image path. Achievement name, description and unachived name are extracted from the string ressources file.
\fsdata\{gameid}\xml\xml.xsrc is the gzip compress xlast xml file. Didnt spent time to uncompress it on xbox as not all game have it (old games like amped 3 does not have it) and i wanted to have a way to get the most out of every game.
\fsdata\{gameid}\unused\* are know file format that are of no use currently. There is contextstringsmap.bin(XCXT) which is a string map to contextual string (mostly point to unused strings...). Imagefilename.bin (XITB) which is the filename of png files, we are not using this as we standardise the filename depending on the image id. propertiesstringsmap.bin (XPRP) which map to some string that are mostly blank (DEFAULT, Insert display string here...). TitleId.bin (XTHD) which is the game title id. The unknow parts are in \fsdata\{gameid}\unknowdata\*
Those are currently kept for development purpose.
\fsdata\{gameid}\gamerpic\* are available gamerpic for this game (included in the xex, not the downloadable one)

One thing i learned with doing the xex extraction code : pragma pack is used to changed to word alignment of struct. Dont use this on xbox! If you include a source file that declare pragma pack more than once, even if you #pragma once, xbox will throw EXCEPTION_BREAKPOINT which really makes you go berserk when trying to understand the problem!.

----------

Debugger is currently going in major redesign!
We now have a filtering feature, so can see only the commands we need! ie : only the modules you are working on
Skin deployment is syncing only the files that were modified
View is a datalistview instead of listview, which provide better performance.

------------

What probably interest you the most, skin update :

Game name + game icon extracted from xex.

Game list filled with game icon  + game name extracted from xex. Font does have trouble rendering special char.












Using game background downloaded from internet.













New about menu.


There's still some missing info.











Surprise! :) (This is still only really experimental!!)

Thursday, April 8, 2010

FSD 2.0 R499

Huge progress since yesterday :
Complete XEX file decryption and extraction is working!
Decrypting and extracting a 6mB xex file currently takes about 2sec.
This will allow us to have a lots of info about games without going online :
Game title, ESRB rating and game icon to name a few.
Extracting is not currently integrated in FSD, its still running as a Debug Command but it shouldnt be too long before it is!

Screenshots of the day  (Showing stage customisation):


Tuesday, April 6, 2010

Customisable Skin

TeamFSD's skinner, MaesterRowen, is currently working on getting customizable skin in fsd2.0

Looks at the feature presentation video :


 Be sure to checkout his youtube channel to see other FSD2.0 related video :

http://www.youtube.com/user/MaesterRowen

Transfert Speed Calculation

Whats the best way to calculate transfer speed?
Currently i made a byte transfered counter, which is resetted everytime its read by an external module. External module is responsible for calculating the time interval between each read, but if I want to use the speed in another module i'm screwed..
Also thought of having a map with ticks since started as key and packetsize as value. This way i could get every packet size that happened in the last X seconds and calculate current speed but I think that cleanup would require too much cpu...

FSD 2.0 r485

Made lots of change to my yesterday fix :
Now, you can call CreateContentItem with the folder of the game (not the executable path) and it will create the proper ContentItem or return NULL if its not a proper folder. This method also take care of validating if the item is already in the content list.
Every file parsing code was removed from ContentList.













Also added http downloader speed reporting and auto retry on Response code 500.

Currently, Downloader start as paused, you need to use the debugger software to start it. (Will make a post describing our debugger later)

Could somebody explain me all xex filesize is determined? Seems like it increment by chunk.. ~100 builds will have the same exact size, then it jump up about 50%.  Is there anyway  to remove the filler data?

Also, there's some weird stuff going on with memory allocation...
If we declare a struct : XEXInfo* xinf;
Some build will be able to write the struct while some other will freeze if we do not malloc it. It seems to happen when were about to hit the file size increment but might be totally unrelated. Anyway, not mallocating it is a bad pratice, but there were almost no malloc in original code so something we get an ususable build without knowing why.