Jump to content


Photo

Hacking The Ms Xboxdash (code Only)


  • Please log in to reply
119 replies to this topic

#1 HoRnEyDvL

HoRnEyDvL

    Nexgen Developer

  • Head Moderators
  • PipPipPipPip
  • 905 posts
  • Gender:Male
  • Location:Australia
  • Xbox Version:v1.0
  • 360 version:v1 (xenon)

Posted 19 July 2003 - 06:59 AM

Well as my other thread filled up with useless Post I Have started 2 new threads.

Hacking The Ms Xboxdash (Code Only) &

Hacking The Ms Xboxdash (HELP & FAQ)


Please post in the apropriate thread.

ALL USELESS UNAPROPRIATE POSTS WILL BE DELETED TAKE THIS AS YOUR FIRST & FINAL WARNING

Edited by HoRnEyDvL, 19 July 2003 - 07:00 AM.


#2 dlux

dlux

    X-S Young Member

  • Members
  • Pip
  • 43 posts

Posted 19 July 2003 - 10:49 AM

Here Is A new Tutorial for updating your memory menu to load games.
ADDED: It now searches for the folder and if it doesn't find it, it displays an error message(instead of locking up and forcing you to reboot our xbox)
It now allows you to load applications.

IN ADVANCE: thnx to dfunked for letting me know how to search files

NOTE: use an unedited memory3.xap
STEPS:
1.) extract default.xip
2.) open memory3.xap
3.) find:
CODE
var bSavedGameGridActivatePending;

(should be fourth or fifth line in file)
4.) under that line paste:
CODE
DEF theConfig Config

5.) find:
CODE
function InitMemoryMenuItems()

6.) replace that entire function with:
CODE
function InitMemoryMenuItems()
{
   var c = theFilesMenu.children[0].children[0];
   var nTitle = c.theSavedGameGrid.curTitle;
   var nSavedGame = c.theSavedGameGrid.curGridItem;

   if (nTitle < 0)
   {
       // we have the device menu
       if (theMemoryMonitor.curDevUnit == 8)
       {
           // TODO: Hard drive menu
           nFileMenuItemCount = 0;
       }
       else
       {
           c.MenuItemText1.text = theTranslator.Translate("PERSONALIZE");
           c.MenuItemText2.text = theTranslator.Translate("FORMAT");
           nFileMenuItemCount = 2;
       }
   }
   else if (nSavedGame < 0)
   {
       // we have the title/soundtrack menu
       c.MenuItemText1.text = theTranslator.Translate("LOAD");
       c.MenuItemText2.text = theTranslator.Translate("DELETE");
       nFileMenuItemCount = 2;
   }
   else
   {
       // we have the saved-game/song menu
       if (c.theSavedGameGrid.CanCopy())
       {
           c.MenuItemText1.text = theTranslator.Translate("COPY");
           c.MenuItemText2.text = theTranslator.Translate("DELETE");
           nFileMenuItemCount = 2;
       }
       else
       {
           c.MenuItemText1.text = theTranslator.Translate("DELETE");
           nFileMenuItemCount = 1;
       }
   }
}

6.) find:
CODE
function DoMemoryItemMenuCommand()

7.) replace that entire function with:
CODE
function DoMemoryItemMenuCommand()
{
   var c = theFilesMenu.children[0].children[0];
   var nTitle = c.theSavedGameGrid.curTitle;
   var nSavedGame = c.theSavedGameGrid.curGridItem;

   if (nTitle < 0)
   {
       // we have the device menu
       if (theMemoryMonitor.curDevUnit == 8)
       {
           // TODO: Hard drive menu
       }
       else
       {
           if (nCurFileMenuItem == 0)
               ShowKeyboard(theTranslator.Translate("PERSONALIZE"), theMemoryMonitor.FormatDeviceName(theMemoryMonitor.curDevUnit), "theMemoryInline.children[0].FinishPersonalize()", "");
           else if (nCurFileMenuItem == 1)
               AskQuestion(theTranslator.Translate("Really format"), "theMemoryInline.children[0].FinishFormat()", "", 1);
       }
   }
   else if (nSavedGame < 0)
   {
       // we have the title/soundtrack collection menu
       if (nCurFileMenuItem == 1)
           StartDelete();
       else if (nCurFileMenuItem == 0)
    Startload();
   }
   else
   {
       // we have the saved-game/soundtrack menu
       if (c.theSavedGameGrid.CanCopy())
       {
           if (nCurFileMenuItem == 0)
               StartCopy();
           else if (nCurFileMenuItem == 1)
               StartDelete();
       }
       else
       {
           StartDelete();
       }
   }
}

function Startload()
{
   var c = theFilesMenu.children[0].children[0];
   var blah1 = c.theSavedGameGrid.curTitle;
   var strblah;
   var fish = false;
   var fish2 = false;
   strblah = c.theSavedGameGrid.GetTitleName(blah1);
   
   fish = theConfig.NtFileExists( "\\Device\\Harddisk0\\partition6\\HDDLoader\\" + strblah + "\\default.xbe" );//change to where your games are

   PlaySoundA();

   if (fish)
   {
launch("default.xbe", "\\Device\\Harddisk0\\Partition6\\HDDLoader\\" + strblah);//change to where your games are
   }

   else
   {
       fish2 = theConfig.NtFileExists( "\\Device\\Harddisk0\\partition6\\Apps\\" + strblah + "\\default.xbe" );//change to where your apps are

       if (fish2)
       {
        launch("default.xbe", "\\Device\\Harddisk0\\Partition6\\Apps\\" + strblah);//change to where your apps are
}

       else if (strblah =="Oddworld: Munch's Oddysee")//you can do this for games with wierd names
       {
    launch("default.xbe", "\\Device\\Harddisk0\\Partition6\\HDDLoader\\Oddworld");// change to where this game is
       }

       else if (strblah =="Px HDD Loader")//you can do this for apps with wierd names
       {
    launch("default.xbe", "\\Device\\Harddisk0\\Partition6\\Apps\\HDDLoader");//change to where your Application is
       }
   }

       TellUser(theTranslator.Translate("COULD NOT FIND GAME OR APPLICATION"), "");  
}

8.)find:
CODE
function OnEnumeratingTitlesEnd()

9.) replace that entire function with:
CODE
function OnEnumeratingTitlesEnd()
{
   var c = theFilesMenu.children[0].children[0];
   var cheese = false;
   cheese = theConfig.NtFileExists( "\\Device\\Harddisk0\\partition6\\HDDLoader\\cheese\\default.xbe" );
   CloseMessage();
   EnterMemoryFiles();
}

10.) save, rebuild, resign, and transfer to xbox

NOTE: This still requires you to either rename the folder that the game is in, or ad an "else if" statement to load a game(same goes for applications)
NOTE2: After doing this when you first select your memory device, the "Searching for game saves" box will appear for a couple more seconds than usual. This is because theConfig that I added uses this time to initialize itself.


#3 dlux

dlux

    X-S Young Member

  • Members
  • Pip
  • 43 posts

Posted 19 July 2003 - 11:08 AM

one more thing, for games such as 007 NightFire that have trademark symbols, if you ftp to your xbox, go to the E drive, go to udata, and find the folder that corresponds to that game. You can open the TitleMeta.xbx in a TEXT editor, and remove the special characters. then save, and replace with the new file, and the name will be changed in the memory menu.

EXAMPLE: The Original 007 Nightfire TitleMeta.xbx looks like:
TitleName=007™: NightFire™

You can change it to look like this:
TitleName=007 NightFire

NOTE: If you're wondering why I'm posting this, it is to help with my tutorial above.


#4 flagg5889

flagg5889

    X-S Enthusiast

  • Members
  • 5 posts

Posted 19 July 2003 - 08:35 PM

Building once again on DLUX code, you can further enhance your game loading needs by providing a different way to launch the games. Leaving in everything that DLUX identified in his initial memory Launch mod, make the following change to allow you to launch a game by pushing the "Y" button while viewing the first level memory saves menu (the one where you push up or down to scroll through the various saves).


Look for:

CODE

       function OnBDown()
       {
           var c = theFilesMenu.children[0].children[0];
           if (c.Dummy01.moving)
               return;

           if (bInCopy)
           {
               PlaySoundB();
               c.MU_back_pod_HL2.children[0].appearance.material.param = 1;
               EndCopy();
           }
           else if (bDetailView)
           {
               PlaySoundB();
               ShowFileListView();
               c.MU_back_pod_HL2.children[0].appearance.material.param = 1;
           }
           else
           {
               PlaySoundB();
               c.MU_back_pod_HL.children[0].appearance.material.param = 1;
               // Turn enumeration off before changing levels.
               theMemoryMonitor.enumerationOn = false;
               if (bCleanupSpecifiedDrive)
                   theLauncherLevel.GoTo();
               else
                   theMemoryMenu.GoBackTo();

               theGamesSubMenuOut.Play();
           }
       }


and add this directly after that:

CODE

       function OnYDown()
       {
           PlaySoundA();
           Startload();
       }


Thanks again DLUX

Cheers

Edited by flagg5889, 19 July 2003 - 08:36 PM.


#5 JbOnE

JbOnE

    X-S Expert

  • Head Moderators
  • PipPipPip
  • 526 posts
  • Gender:Male
  • Xbox Version:v1.4
  • 360 version:unknown

Posted 01 August 2003 - 06:42 PM

after bugging the piss out of Xtech and myself i finally got the AskQuestion to work in the main menu (in this case for power off) if any of you have tried it ya know it would pop up the question box - but no matter what you chose it'd just close the box and do nothing. i guessed the prob was that we were using a function from one joy def in another so i added a couple of functions outside the joy def's and what'dya know - it works

change the function names and the launch path to suit your needs

in default.xip/default.xap - place these after the inline def's.....

////////////////////////////////////////////////////////////////////////////
function PowerOff()
{
AskQuestion(theTranslator.Translate("Power off Xbox ?"), "ShutDown()", "", 1);
}

function ShutDown()
{
launch("shutdown.xbe", "(correct path to your shutdown.xbe)");
}
////////////////////////////////////////////////////////////////////////////

and then this in the main menu joy functions - use whatever button def you want - except a of course wink.gif

////////////////////////////////////////////////////////////////////////////
function OnBDown()
{
theMainMenu.children[0].children[0].select_pod_HL.children[0].appearance.material.param = 1;
theGamesMenuIn.Play();// i just like this sound better than sound a hehe
PowerOff();
}
////////////////////////////////////////////////////////////////////////////

enjoy

pEAcE
JbOnE

#6 SniperKilla

SniperKilla

    X-S Freak

  • Members
  • PipPipPipPipPip
  • 1,519 posts
  • Location:Pittsburgh, PA
  • Xbox Version:v1.0
  • 360 version:v4.0 (jasper)

Posted 06 August 2003 - 04:28 AM

lame little code to prevent games on dvd from autolaunching when you stick the dvd in..

kill me if its been posted already

in default.xip -> default.xap

find
CODE
       else if (discType == "Title")
       {
           theLauncherLevel.GoTo();
       }


change to
CODE
       else if (discType == "Title")
       {
           return;
       }



And heres Code to make X launch the game in the drive

this was done using the files in the easymusicconfigv3 thing....

find

CODE
function OnYDown()
       {
TellUser("Dashboard brought to you by Voltiac, Dunny, Gcue, NikeJustDoItOk?, Vulgusprofanum, Dfunked, Dlux, and a little help from MS!", "");
       }


add below it

QUOTE
        function OnXDown()
        {
theDiscDrive.LaunchDisc();
        }



Edited by SniperKilla, 06 August 2003 - 04:41 AM.


#7 dlux

dlux

    X-S Young Member

  • Members
  • Pip
  • 43 posts

Posted 08 August 2003 - 09:55 AM

Here is an update for those people using my tutorial to load games from the memory menu (aka the save games menu), all this does is allow you to use X and Y to scroll through the menu faster.

1.) open memory3.xap inside default.xip
2.) find the first occurence of:
CODE
function OnMoveDown()

3.) above that line paste:
CODE
function OnYDown()
       {
           var c = theFilesMenu.children[0].children[0];

    var i=0;
    var Itemskipped=3; //change to however many menu items you want to skip

           if (c.Dummy01.moving)
               return;

           if (bInCopy)
           {
               c.theCopyDestination.selectUp();
           }
           else if (bDetailView)
           {
               if (nCurFileMenuItem > 0)
               {
                   PlaySoundMenuChange();
                   nCurFileMenuItem = nCurFileMenuItem - 1;
                   UpdateFileMenu();
               }
           }
           else
           {
 for(i=0; i < Itemskipped; i = i + 1)
 {
                   var oldCurTitle = c.theSavedGameGrid.curTitle;
                   var oldCurSave = c.theSavedGameGrid.curGridItem;

                   c.theSavedGameGrid.selectUp();
 }

               if (oldCurTitle != c.theSavedGameGrid.curTitle)
                   theMemoryTitleSelectSound.Play();
               else if (oldCurSave != c.theSavedGameGrid.curGridItem)
                   theMemorySaveSelectSound.Play();
           }
       }

       function OnXDown()
       {
           var c = theFilesMenu.children[0].children[0];

    var i=0;
    var Itemskipped=3; //change to however many menu items you want to skip

           if (c.Dummy01.moving)
               return;

           if (bInCopy)
           {
               c.theCopyDestination.selectDown();
           }
           else if (bDetailView)
           {
               if (nCurFileMenuItem < nFileMenuItemCount - 1)
               {
                   PlaySoundMenuChange();
                   nCurFileMenuItem = nCurFileMenuItem + 1;
                   UpdateFileMenu();
               }
           }
           else
           {
 for(i=0; i < Itemskipped; i = i + 1)
 {
                   var oldCurTitle = c.theSavedGameGrid.curTitle;
                   var oldCurSave = c.theSavedGameGrid.curGridItem;

                   c.theSavedGameGrid.selectDown();
 }

               if (oldCurTitle != c.theSavedGameGrid.curTitle)
                   theMemoryTitleSelectSound.Play();
               else if (oldCurSave != c.theSavedGameGrid.curGridItem)
                   theMemorySaveSelectSound.Play();
           }
       }

4.) change the value of Itemskipped to however many menu items you want to skip.
5.) save, insert, and resign.

#8 Dunny

Dunny

    X-S Expert

  • Members
  • PipPipPip
  • 638 posts

Posted 25 August 2003 - 07:20 PM

CODE
ex: function ShowKeyboard(strTitle, strEdit, strDoneFunction, strCancelFunction)


CODE

 function OnWhiteDown()
 {
 ShowKeyboard(theTranslator.Translate("Rename Item"), theTranslator.Translate("The Menu Var"), "GotoSaveFunction()", "");
 }


anyone got any further ideas?
which is currently the best submenu?

I wanted to try adding the keyboard into a menu so we can alter menu names from the xbox ... anyone tried this?

Edited by Dunny, 25 August 2003 - 07:41 PM.


#9 saunderez

saunderez

    X-S Young Member

  • Members
  • Pip
  • 48 posts

Posted 03 September 2003 - 01:34 PM

Ok here's the deal:

No Remote Hack (YOU STILL NEED A DONGLE!!!)

Just got into Xbox Dash Modding yesterday, read thru all the code snippets in here and I haven't found this little gem yet, sorry if its already been posted elsewhere or you think I'm a dumbass for stating the obvious...Changing one line can give you full controller access in the DVD player. Useful for people who frequently "misplace" their DVD Remote smile.gif

Change this line in dvd.xap:
QUOTE
theDVDJoystick.enableGamepad = false;


to this:
QUOTE
theDVDJoystick.enableGamepad = true;


Woah! It's huge! But...it works great!
Buttons are as followed (but are redefinable of course!)

Digtal Control Pad (Arrows)
A (Select Button)
Y (Menu)
X (Display)
B (Haven't figured it out. Sumbit findings plz!)
R-Trigger (Chapter Forward)
L-Trigger (Chapter Back)
White (Pause, press again to unpause)
Black (Stop..However can't figure out how to resume!)

Tested in 4920 only

Hope some1 finds this useful!
Keep up the hacking!

Edited by saunderez, 03 September 2003 - 01:35 PM.


#10 gorgone

gorgone

    X-S Enthusiast

  • Members
  • 17 posts

Posted 12 September 2003 - 11:34 AM

simple autostart DVDPLAYER and remove the unknown disk nag screen for mp3 disks or other unknownd datadisks

in default.xip / default.xap

CODE


       else if (discType == "Video")
       {
       launch("default.xbe", "\Device\Harddisk0\Partition6\apps\DVDPlayer");  //path to the dvdplayer and xbe
       }
       else if (discType == "Title")
       {
           theLauncherLevel.GoTo();
       }
//        else if (discType == "unknown")
// {
//          TellUser("ERROR MESSAGE 1", "");
//      }




Edited by gorgone, 12 September 2003 - 11:39 AM.


#11 fornorst

fornorst

    X-S Enthusiast

  • Members
  • 29 posts
  • Xbox Version:v1.1

Posted 20 September 2003 - 04:22 PM

Post edit : It works correctly now

Special Thanks to karnax from the http://www.gueux.net forum for his help ! This code allow to change randomly the skin.

Here is the code to include in default.xap :

Cut this DEF :

CODE

DEF theBackground Background
{
  skyColor 0 0 0
  backdrop ImageTexture { url nomBackground[i-1] }
}


and paste that :

CODE

DEF myBackgroundList Group
{

  children
  [
      DEF background0 Background{ skyColor 0 0 0 backdrop ImageTexture { url "xboxbg.xbx" }}
      DEF background1 Background{ skyColor 0 0 0 backdrop ImageTexture { url "xboxbg2.xbx" }}
  ]
}

function loadBackground() {
var n = Math.round(Math.random() * (myBackgroundList.children.length() - 1));
myBackgroundList.children[n].isBound = true;  
}


Add this var : var BeginUpdate;
just after this : var dvdx2path;


then remplace the UpdateMainMenu() function with that :

CODE

function setBeginUpdate()
{  
 BeginUpdate = 1;
}

function UpdateMainMenu()
{      
   if (BeginUpdate == 1 )
   {
       loadBackground();
       BeginUpdate = 0;                
   }
   
   // Adjust for a 4 or 5 button menu
   if( use5ButtonMainMenu == true )
   {
       // Update our 5 button menu with the online button
       Update5ButtonMainMenu();
   }
   else
   {
       // Update our 4 button menu without the online button
       Update4ButtonMainMenu();
   }
}


In the control DEF theMainJoystick Joystick, add this code :

CODE

function OnRightThumbDown() {        
    setBeginUpdate();
    UpdateMainMenu();        
}


Here is the code to include in config.xap :

At the beginning ( just after "use5ButtonMainMenu = true;" ), add this line :

CODE

BeginUpdate = 1; // 1 = update xboxbg.xbg at beginning; 0 = do not.


Don't forget to add xboxbg2.xbx in the default.xip.


How to use :

* Set BeginUpdate to 0 in the config.xap to launch with xboxbg.xbx all the time. If you set beginUpdate to 1, it will randomly change the background.
* Moreover ( in the 2 cases ), you could change the background by pressing the Right Thumb.
* You could add more backGround than just 2 ! Name then how you want, include them in the default.xip and change the "DEF myBackgroundList Group"

Have Fun and, please, excuse me for my bad english.

#12 mavmf

mavmf

    X-S Young Member

  • Members
  • Pip
  • 33 posts

Posted 03 October 2003 - 05:44 PM

This mod is for the 10027100 dash with the XboxDash-Hacked 10027100 v1.1-THC.rar patch applied, it may work on others, but you might find code in slightly different places.

I have added a message box popup for when you insert a game. This will ask if you want to turn your modchip off to play on xbox live. It's designed for matrix owners with their chip in mode 3. If you say yes it will reboot & your chip will be off. If you say no your xbox will boot the game with the chip on. If you press B then it will take you back to the dashboard.
Used in conjunction with a mod bios that doesn't boot d:default.xbe this would be a complete solution to not being able to boot accidently into a game with the modchip on.

In deafult.xap in default.xip search for
else if (discType == "Title")

then change the code for that else if to
CODE

else if (discType == "Title")
{  
  AskQuestion(theTranslator.Translate("\n"+"          Play on Xbox Live?"), "rebootnow()", "launchdisc()", 1);
}


then paste the following above the line
DEF theTranslator Translator

CODE

function launchdisc()
{
  if(enablelaunchanim == true)
  {
  launchitempath = "\Device\CDROM0";
  theMusicMenuIn.Play();
  theLaunchItem.GoTo();
  }
  else
  {
  theDiscDrive.LaunchDisc();
                         }
}
function rebootnow()
{
  launch("reboot.xbe", "\Device\Harddisk0\Partition6");
}


NB You will need the reboot.xbe on your harddrive, point it to the partition it is on (F = partition6 here)

Then search for DEF theMessageJoystick Joystick

and replace the function OnBDown() with

CODE

function OnBDown()
   {
       if (nMessageButtonCount == 1)
       {
           // Just an OK button; B is the same as A
           OnADown();
           return;
       }

       if (nCurMessageButton != -1)
       {
           PlaySoundB();
    CloseMessage();
           // nCurMessageButton = 1;
           // UpdateMessageButtonHighlight();
           // OnQuestionNo();
       }
   }


This will make button B act as a return to dash, rather than an answer No to the questions.

You should then be done.

PS - double slashes where you see 1 slash in the pathnames as always dry.gif

Edited by mavmf, 03 October 2003 - 05:49 PM.


#13 heydricas

heydricas

    X-S Member

  • Members
  • Pip
  • 69 posts
  • Xbox Version:v1.0
  • 360 version:v1 (xenon)

Posted 29 October 2003 - 07:38 AM

dry.gif Since I got sick and tired of getting up, just to turn off the console when I finish watching a DVD movie, I worked this little code to mod the default.xip/dvd.xap

Search for OnInfo and change from this:

CODE

function OnInfo()
       {
           if(theDVDPlayer.domain != 3) // TT_DOM
           {
               OperationProhibited();
               return;
           }

           theOSD.visible = 1 - theOSD.visible;
           if (theOSD.visible == false)
               SetStatusText("");
       }


To this:

CODE

function OnInfo()  
       {
           if (theDVDPlayer.playbackMode == 0) // DPM_STOP
           {
              launch("power.xbe", ""the path where your power.xbe is located");
           }
           
           if(theDVDPlayer.domain != 3) // TT_DOM
           {
               OperationProhibited();
               return;
           }

           theOSD.visible = 1 - theOSD.visible;
           if (theOSD.visible == false)
               SetStatusText("");
       }


To turn off the console, you MUST press the STOP button, then the INFO button, and that’s it. jester.gif

Enjoy

heydricas

Edited by heydricas, 30 October 2003 - 06:35 AM.


#14 QUIKSILVERMALE

QUIKSILVERMALE

    X-S Member

  • Members
  • Pip
  • 114 posts
  • Xbox Version:v1.0

Posted 05 January 2004 - 03:17 AM

ok well this might already be posted but im to lazy to read so check this out

CODE
function OnBlackDown()
{
 ShowClock();

}
function OnWhiteDown()
{
 HideClock();
}


what this does is either hides the clock or shows it obviously
black button shows it
white button hides it

note: i just added those to the black and white buttons because they werent doing anything at the moment so make sure they are empty

#15 Max75

Max75

    X-S Enthusiast

  • Members
  • 3 posts

Posted 18 January 2004 - 06:36 PM

This is a really good idea QUIKSILVERMALE to make the clock visibility "interactive"
This code only use 1 button on your controller ;)


CODE


function OnWhiteDown()
{
if(bClockVisable == false)
 {
  ShowClock();
 }
else if(bClockVisable == true)
  {
   HideClock();
  }
}


My first line of code on XBox:)

Edited by Max75, 18 January 2004 - 06:41 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users