xboxscene.org forums

Pages: [1] 2 3 ... 22

Author Topic: Hacking Xboxdash.xbe (and Relating Files)  (Read 2612 times)

Voltaic

  • Archived User
  • Jr. Member
  • *
  • Posts: 67
Hacking Xboxdash.xbe (and Relating Files)
« on: June 10, 2003, 09:11:00 AM »

If you look at some of the files included with the default MS Dashboard you can locate plain-text scripting sections (see below).

I'm wondering if anyone looked at modifying the existing dashboard to add our own shit?  Maybe make a Win32 editor that would generate the proper files to be copied to the Xbox. If not, I'll try to reverse engineer the file format... (but since I'm new to the Xbox scene, I don't want to re-invent the wheel.)

Script Snippet ( ** I hope it's ok to paste a little part of it... if not, plz nuke the snippet part ** ).

---- 8<   snippet   8<  ----
CODE

//
// Copyright © MS Corporation.  All rights reserved.
//

DEF theScreen Screen
{
   width 640
   height 480
//  width 854
//  height 480
}


DEF theAmbientSounds Group
{
   // 0 = main menu
   // 1 = memory area
   // 2 = music area
   // 3 = settings area

...

function EnableAmbientAudio()
{
   var n = Math.round(Math.random() * (theAmbientSounds.children.length() - 1));

   log("Picking ambient track " + (n + 1));

   for (var i = 0; i < theAmbientSounds.children.length(); i = i + 1)
       theAmbientSounds.children.isActive = false;

   theAmbientSounds.children[n].volume = 0.95;
   theAmbientSounds.children[n].isActive = true;

   for (i = 0; i < thePeriodicSounds.children.length(); i = i + 1)
       thePeriodicSounds.children.isActive = true;
}

function AmbientAudioOn(Area)
{
   var n = 0;

   if(Area == "MAIN MENU")
       n = 0;
   else if(Area == "MEMORY")
       n = 1;
   else if(Area == "MUSIC")
       n = 2;
   else if(Area == "SETTINGS")
       n = 3;
...

---- 8<   snippet   8<  ----

-Volt.  blink.gif
Logged

jsm

  • Archived User
  • Full Member
  • *
  • Posts: 162
Hacking Xboxdash.xbe (and Relating Files)
« Reply #1 on: June 10, 2003, 09:37:00 AM »

Just wanna ask what file is this?
Logged

Voltaic

  • Archived User
  • Jr. Member
  • *
  • Posts: 67
Hacking Xboxdash.xbe (and Relating Files)
« Reply #2 on: June 10, 2003, 09:43:00 AM »

*.XIP in root folder of C: if you use debug or, if you have retail, it'll be in xboxdashdata.xxxxxxxx (where xxxxxxxx might be a revision number of the xboxdash data).

-Volt.  blink.gif
Logged

Voltaic

  • Archived User
  • Jr. Member
  • *
  • Posts: 67
Hacking Xboxdash.xbe (and Relating Files)
« Reply #3 on: June 10, 2003, 10:13:00 AM »

Ok, after a quick test, it seems that the main loader data(nah, looks like only strings are in here) for the MS Dashboard program is embedded in the xboxdash.xbe file.  I changed the BACK="BACK" so that the string for global variable BACK would be "FUCK".

Now, when I navigate the menus, I see     FUCK ( B )   instead of   BACK ( B )  

Now, I know that the embeded data contains english and some other languages, we could nuke the other language in case our own embeded stuff is greater than the default data.

Edit: Ok, seems that we have a chunk of 36KB for each of the 9 languages. This is saved in Unicode at the end of the xboxdash.xbe file... so making an editor for that part would be a piece of cake.  The main purpose of this data is for all the strings that can be used throughout the dashboard (I don't know if they are process globals or just instance globals). Also, the Xbox Live Online thingy is spawned from the default.xip script... so it seems we'll be able to re-use this feature to spawn other processes.  Again, someone stop me if all this has been done before...

Also, the XIP files seems to be a combination of embeded files... I have yet to take a look at those in detail...

-Volt.   blink.gif
Logged

whoknew

  • Archived User
  • Jr. Member
  • *
  • Posts: 92
Hacking Xboxdash.xbe (and Relating Files)
« Reply #4 on: June 11, 2003, 09:36:00 AM »

nope, never been done before, and i think your onto something smile.gif
Logged

FUCKMICROSOFT

  • Archived User
  • Full Member
  • *
  • Posts: 130
Hacking Xboxdash.xbe (and Relating Files)
« Reply #5 on: June 11, 2003, 10:09:00 AM »

this sounds pritty fucking coool! keep us up to date dawg laugh.gif
Logged

XBOX War3z

  • Archived User
  • Hero Member
  • *
  • Posts: 587
Hacking Xboxdash.xbe (and Relating Files)
« Reply #6 on: June 12, 2003, 01:01:00 PM »

XIP files are the XBOX version of ZIP files I thougth, had an extarctor for those files somewhere

EDIT: yup use the tool dexip to extract the files from XIP files

xboxdash.xbe (live updated) contains idd alot

QUOTE
TGS%s%.4s.XBOXLIVE.COM  AS%s%.4s.XBOXLIVE.COM   MACS%s%.4s.XBOXLIVE.COM .   ??F:  DeviceHarddisk0Partition2   DeviceHarddisk0Partition1TDATA%08x$u%s   contentmeta.xbx y:XODashxonlinedash.xbe   y:xboxdash.xbe d:dashupdate.xbe   %s%s    DeviceCdrom0XODASH   DeviceCdrom0XODashxonlinedash.xbe   DeviceHarddisk0partition2XODash DeviceHarddisk0partition2XODashxonlinedash.xbe t:$u


This post has been edited by XBOX War3z on Jun 12 2003, 08:14 PM
Logged

baturkin17

  • Archived User
  • Sr. Member
  • *
  • Posts: 287
Hacking Xboxdash.xbe (and Relating Files)
« Reply #7 on: June 13, 2003, 04:12:00 PM »

what kind of program or hex editor or whatever are you using to see those snippets?

i tried a couple with no results
Logged

Scan-C

  • Archived User
  • Hero Member
  • *
  • Posts: 616
Hacking Xboxdash.xbe (and Relating Files)
« Reply #8 on: June 13, 2003, 06:00:00 PM »

notepad works good for this.i edited some lines and if i hit the exact same size the dash loads up.so where is the filesizecheck?looks to me like simplest c code but it's been a lifetime since i used c

This post has been edited by Scan-C on Jun 14 2003, 01:01 AM
Logged

Videogamebuyer14

  • Archived User
  • Hero Member
  • *
  • Posts: 724
Hacking Xboxdash.xbe (and Relating Files)
« Reply #9 on: June 14, 2003, 12:17:00 AM »

I believe if you try loading up xboxdash.xbe, with notepad, you get a crash error.
Logged

methadone_pretty

  • Archived User
  • Sr. Member
  • *
  • Posts: 284
Hacking Xboxdash.xbe (and Relating Files)
« Reply #10 on: June 14, 2003, 02:49:00 AM »

xip files wink.gif
Logged

Voltaic

  • Archived User
  • Jr. Member
  • *
  • Posts: 67
Hacking Xboxdash.xbe (and Relating Files)
« Reply #11 on: June 14, 2003, 07:12:00 AM »

Sorry for the lack of updates, I work on the week and I'm currently porting an old game I coded a few years back.

Here's what we'd need to do to make this thing work:

1) Hacking xboxdash.xbe
   - We would need to get a way to change the built-in scripting engine so that we could rename the call GoToXOnlineDash to something like LaunchXBE and be able to pass the relative path to that xbe file.
   - If we want to add extra functionality to the default xboxdash.xbe, we'll have to add some extra code to create another thread. In this thread, we could spawn an FTP Server Thread, and other shit...

2) Hacking the current XIP / XAP files
   - We need an extractor (already exists) and a repacker (I'll code one tonight, but there are some values that are still unknown in these XIP files).
   - We need an editor for those XAP file because damn, it'll take forever to test menus...

Loading order:

xboxdash.xbe loads up, finds the xboxdash.nnnnn folder (that's just depending on your version, older version has all the files on the root folder). Next, it extracts default.xap and starts parsing it.  From that script file, it'll load other archive files.

The mainmenu5.xip/default.xap contains all the vrml-type code to draw the main menu.  It is here that we would add 'Applications', 'Emulators', 'Games', etc. (but keep in mind that we can't load too many menus on the 1st page because it'll get crowded fast. I'll attempt to add a menu to that file tonight.  And, using the scripting feature, we would load or own 'applications.xip' file. At first we could just use a static menuing system... but as more ppl gets involved (with interest I hope), ppl would start to understand the language and could come up with our own models and animation for them.

Anyway, hopefully another update tonight...  maybe a screen shot...

-Volt.  blink.gif
Logged

Videogamebuyer14

  • Archived User
  • Hero Member
  • *
  • Posts: 724
Hacking Xboxdash.xbe (and Relating Files)
« Reply #12 on: June 14, 2003, 08:51:00 AM »

Bravo, Voltaic...
I hope this gets to a much more advanced stage.
Logged

Videogamebuyer14

  • Archived User
  • Hero Member
  • *
  • Posts: 724
Hacking Xboxdash.xbe (and Relating Files)
« Reply #13 on: June 14, 2003, 11:53:00 AM »

Call it a hunch, but the code listed here,

QUOTE

DEF ring Transform
{
    children
    [
        DEF theMenuItems Transform
  {
   fade 0.25

   children
   [ 
    DEF pod_rotate_structure Transform
    {
     children
     [
      DEF podsupport_3 Transform
      {
       children
       [
        Shape
        {
         appearance Appearance
         {
          material MaxMaterial


looks like it controls the background dash movements. The little pictures, or .XM files, look like they are encoded images or materials, that eventually build up the rotating background.

And these right here,

DEF memory_metapanel Transform, DEF memory_metapanel Transform, and DEF Main_memory_podshell_11 Transform are basically telling these so called ".XM" files to transform, according to the coordinates provided in the default .xip file. For Example, rotation -0.995000 0.069740 -0.070990 -1.586000, translation -47.220001 55.810001 -14.640000, is telling these .XM files to move in a certain pattern.

Next off, I think that there are centain files required for the menu item, say, if you wanted your new option in the menu to say, "PICTURES" as an example, youd have some files called, PICTURES_arm01-FACES.xm, PICTURES_arm02-FACES.xm, PICTURES_panel_support-FACES.xm, PICTURES_text_metapanel-FACES.xm, etc... There are certain files that will be required to build these new options, as well as editing this .XIP, so wel probably be needing a .XM editor, which may be a diffrent version of a .png or .xbx, or even a .tga, a .XAP unpacker, and finally, a .XIP repacker.

Not trying to steal the spotlight, Voltaic, just pointing out some things, that caught my attention. For all I know, my info could be wrong, but most of it makes sense to me. Anyhow, good luck, and perhaps we could be partners in on this.
        

This post has been edited by Videogamebuyer14 on Jun 14 2003, 07:12 PM
Logged

Voltaic

  • Archived User
  • Jr. Member
  • *
  • Posts: 67
Hacking Xboxdash.xbe (and Relating Files)
« Reply #14 on: June 14, 2003, 10:58:00 AM »

No problem, go right ahead...

Menu Text aren't textures, they are actual text.  If you look (at the script) closely, it uses the built-in translator in the script to get the string "MUSIC" associated to the proper language resource in xboxdash.xbe (my version has 9 langauges in it).

Adding a menu on the main screen would be done in mainmenu5.xip/default.xap.
CODE

DEF theMusicItem Transform {...}
DEF theMemoryItem Transform {...}
DEF theOnlineItem Transform {...}
DEF theSettingsItem Transform {...}

You would add :

DEF theHomemadeItem Transform {
  ...
  DEF homemade_text Transform {
     ...
     geometry Text { font "Heading" translate false text "Home Made" } // Note: I'm not using the built-in translator
     ...
  }
  ...
}



But, like I said, it's a bitch to position all that menu stuff, an editor would be ideal (of course, MS or REZN8 have these sort of tools).

As for the .XM (Xbox Material) it looks like they are just pointers to the .VB/.VI files (which are vertex buffers and vertex images that goes directly in the GPU.)  So, the XIP file only tells the engine where to locate the textures on the chip, they aren't actual files in the .XIP. At least, so it seems...

As for people helping, I'm all for it.  I'm also going to be in-active on this starting mid-next week since I'm off on vacation for 3 weeks... I doubt I'll spend time in front of a PC...  cool.gif  

What I suggest is, before anyone starts coding (which might be a waste of time), is to merge all our brains (yes, a nice brain soup) and pump out all the shit that we can gather on the subject.  Some stuff are easy to figure out while other isn't so. So, after a week or two, we have a good knowledge base so that we can start pumping tools out...

-Volt.  blink.gif
Logged
Pages: [1] 2 3 ... 22