Help - Search - Members - Calendar
Full Version: Hacking The Ms Xboxdash (code Only)
Scenyx Entertainment Community > Xbox1 Forums > Dashboard Forums > Official Team UIX Forums > Archived Forum > Official Xboxdash.net (tHc dashboards) Forum
Pages: 1, 2, 3
HoRnEyDvL
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
dlux
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.
dlux
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.
flagg5889
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
JbOnE
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
SniperKilla
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();
        }


dlux
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.
Dunny
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?
saunderez
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!
gorgone
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", "");
//      }



fornorst
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.
mavmf
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
heydricas
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
QUIKSILVERMALE
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
Max75
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:)
JbOnE
it's already "interactive"
hold the right trigger and press b and that will toggle clock on/off screen tongue.gif
ahole09
who has the best tut for me to learn how to do all this?
Sonikku
Here's one that I came up with that was usefull for me.
I'm using THC's dash replacment. I reguarly burn CD's/DVD's with various media (DivX, XViD, MPEG, etc) and was annoyed that whenever I put these discs in, I would get the 'Unknown Disc' error (this disc may be dirty or damaged, press OK to continue, etc). And since the only time I have an 'unknown disc' in my XBox is for media (I don't use ROM cd's or anything) I decided that instead of the error message, I would rather just have XBox Media Center start automatically when the disc type was 'unknown'.

Here's how to do it.

in default.xip / default.xap find:
CODE

       else if (discType == "unknown")
       {
           TellUser("n Either your drive doesn't support this type of media or the disk may be dirty or damaged.","");
       }


and replace it with:

CODE
       
       else if (discType == "unknown")
       {
           launch( "default.xbe", "//Device//Harddisk0//Partition1//applications//XBMC" );
       }


(replace forward slashes with back slashes)

In my instance, I have XBox Media Center installed in F://applications//xbmc so you will have to change the path to whatever matches your setup.

- Sonikku
gnutellafan
Sonikku, does XBMC automatically launch the media then? IE, if I put a divx disc in will it just start playing the divx movie?
Sonikku
No, you would just end up at the main XBMC screen, which is fine for me, since typically i'll have several divx movies burned to one dvd-r, and I wouldnt want it to start randomly playing whichever one it wants wink.gif
Aron Parsons
Here is some code to add functionality to the MS remote for music playback (globally, the functions work in any menu). You can change songs, switch playback type, mute, stop, start, and switch soundtracks. It's pretty much just copy and paste, no modification of current code.

Skip+ --> next song
Skip- --> previous song
Pause --> mute/unmute
Stop --> stop
Play --> play
Forward --> next soundtrack
Reverse --> previous soundtrack
Title --> change between 'random' and 'continuous'

All code goes in default.xap --> default.xip

Add this one variable declaration at the top with all the other global variables
CODE

var BGMoldVol;


Find
CODE

DEF theBackgroundMusicPlayer AudioClip
{
  blah blah blah
}

After this definition (after it's closing bracket), add the rest of this code.

CODE

function OnPlay()
{
if(BGMon == false)
{
 BackgroundMusicOn();
}
}

function OnStop()
{
if(BGMon == true)
{
 BackgroundMusicOff();
}
}

function OnPause()
{
if(BGMon == true)
{
 if(theBackgroundMusicPlayer.volume > 0)
 {
  BGMoldVol = theBackgroundMusicPlayer.volume;
  theBackgroundMusicPlayer.volume = 0;
 }
 else if(theBackgroundMusicPlayer.volume == 0)
 {
  theBackgroundMusicPlayer.volume = BGMoldVol;
 }
}
}

function OnSkipForward()
{
if(BGMmode == "Random")
{
     BGMPlayerRandom();
 if((theDashSettings[51] == "true") & (temp != true))
 {
  var c = theMainMenu.children[0].children[0];
  c.theNowPlaying_text.text = vCurAlbum + "n" + vCurSong;
 }
     if(g_bAudioDisplayed == true)
 {
      var d = theMessageInline.children[0];
      d.theNowPlaying_text_01.text = vCurSong;
 }
}
else if(BGMmode == "Playlist")
{
 BGMPlayerPlaylistFFWD();
 if((theDashSettings[51] == "true") & (temp != true))
 {
  var c = theMainMenu.children[0].children[0];
  c.theNowPlaying_text.text = vCurAlbum + "n" + vCurSong;
 }
     if(g_bAudioDisplayed == true)
 {
      var d = theMessageInline.children[0];
      d.theNowPlaying_text_01.text = vCurSong;
 }
}
else if(BGMmode == "Continuous")
{
 BackgroundMusicFFWD();
 if((theDashSettings[51] == "true") & (temp != true))
 {
  var c = theMainMenu.children[0].children[0];
  c.theNowPlaying_text.text = vCurAlbum + "n" + vCurSong;
 }
     if(g_bAudioDisplayed == true)
 {
      var d = theMessageInline.children[0];
      d.theNowPlaying_text_01.text = vCurSong;
 }
}
}

function OnSkipBack()
{
if(BGMmode == "Random")
{
     BGMPlayerRandom();
 if((theDashSettings[51] == "true") & (temp != true))
 {
  var c = theMainMenu.children[0].children[0];
  c.theNowPlaying_text.text = vCurAlbum + "n" + vCurSong;
 }
     if(g_bAudioDisplayed == true)
 {
      var d = theMessageInline.children[0];
      d.theNowPlaying_text_01.text = vCurSong;
 }
}
else if(BGMmode == "Playlist")
{
 BGMPlayerPlaylistREW();
 if((theDashSettings[51] == "true") & (temp != true))
 {
  var c = theMainMenu.children[0].children[0];
  c.theNowPlaying_text.text = vCurAlbum + "n" + vCurSong;
 }
     if(g_bAudioDisplayed == true)
 {
      var d = theMessageInline.children[0];
      d.theNowPlaying_text_01.text = vCurSong;
 }
}
else if(BGMmode == "Continuous")
{
 BackgroundMusicREW();
 if((theDashSettings[51] == "true") & (temp != true))
 {
  var c = theMainMenu.children[0].children[0];
  c.theNowPlaying_text.text = vCurAlbum + "n" + vCurSong;
 }
     if(g_bAudioDisplayed == true)
 {
      var d = theMessageInline.children[0];
      d.theNowPlaying_text_01.text = vCurSong;
 }
}
}

function OnForward()
{
BackgroundMusicUpSDTRK();

if((theDashSettings[51] == "true") & (temp != true))
{
 var c = theMainMenu.children[0].children[0];
 c.theNowPlaying_text.text = vCurAlbum + "n" + vCurSong;
}
    if(g_bAudioDisplayed == true)
{
     var d = theMessageInline.children[0];
     d.theNowPlaying_text_01.text = vCurSong;
}
}

function OnReverse()
{
BackgroundMusicDwnSDTRK();

if((theDashSettings[51] == "true") & (temp != true))
{
 var c = theMainMenu.children[0].children[0];
 c.theNowPlaying_text.text = vCurAlbum + "n" + vCurSong;
}
    if(g_bAudioDisplayed == true)
{
     var d = theMessageInline.children[0];
     d.theNowPlaying_text_01.text = vCurSong;
}
}

function OnGuide()
{
if(BGMmode == "Random")
{
     BGMmode = "Continuous";
}
else if(BGMmode == "Continuous")
{
 BGMmode = "Random";
}
}


In the BackgroundMusicOn() function, fix this typo in tHc's release:
CODE
else if(BGMmode = "Continuous")

should be
CODE
else if(BGMmode == "Continuous")

You're just adding the double equals for equality instead of assigning the value.

Hope this helps some people out. Maybe something like this (or this code itself wink.gif ) will be included in the next release. It really makes it nice to just use the remote for the music.
kanaberra
waouh cool Aron !
tHank you, i will try this evening...

in the meantime, i gave a complete tut here and will post here soon which code to edit in which xap to remove the solid orbcellwall on 3 tHc final releases wink.gif
Krater
Hi
If you want rotating icons inside the orbs (for the tHc dash, prerelease and final) of the "music soundtrack style" , "music copy style", "music style with submenus 1" and "music style with submenus 2" menus, try this. You'll have to insert them as .xbx in default.xip, but it's the only way to have icons by now...
It's almost the same I posted here:
http://forums.xbox-scene.com/index.php?act...T&f=55&t=153030
but now the icons rotate tongue.gif

Edit: Updated to work with submenus.

Halo:
user posted image
Splinter Cell:
user posted image
Windows CE:
user posted image
Thank Frag Daddy for the screenshots.

Extract music2.xip/default2.xap. Look for
Waver
{
rpm 4
axis -2 0 0
field 0.002
children
[

And insert this just below it:
CODE

DEF cubo3 Transform
{
fade 0.5
scale 55 55 55
translation 43 65 -350
rotation 0 0 1 3.14
children
[
 Spinner
 {
  rpm 1
  axis 1 1 -1
  children
  [
 
   Shape
   {
     appearance Appearance
     {
     material Material
     {
     }
     texture ImageTexture
     {
      url "nada.tga"
      alpha true
     }
     }
     geometry Box
     {
     }
   }
 
  ]
 }  
 
]
}

Insert it back.
Extract music_copy3.xip/default2.xap. Look for

Waver
{
rpm 4
axis 0.2 0 0
field 0.0002
children
[

And insert this just below it:
CODE

DEF cubo2 Transform
{
scale 22 22 22
translation -24 73 -294
rotation 0 0 1 3.14
children
[
 Spinner
 {
  rpm 1
  axis 1 -1 1
  children
  [
 
   Shape
   {
     appearance Appearance
     {
     material Material
     {
     }
     texture ImageTexture
     {
      url "nada.tga"
      alpha true
     }
     }
     geometry Box
     {
     }
   }
 
  ]
 }  
 
]
}

Insert it back.

Extract Music_PlayEdit2.xip/default2.xap, look for:

Waver
{
rpm -1
axis 2 0 0
field 0.0002
children
[

And insert below:
CODE

DEF cubo4 Transform
{
fade 0.5
scale 0.75 0.75 0.75
translation -46.9 55.1 -205
rotation 0 0 1 3.14
children
[
Spinner
{
rpm 1
axis 1 1 -1
children
[

Shape
{
appearance Appearance
{
material Material
{
}
texture ImageTexture
{
url "nada.tga"
alpha true
}
}
geometry Box
{
}
}
]
}
]
}

And insert it back in its xip.

Extract Music_PlayEdit2.xip/default3.xap, look for:

Waver
{
rpm -1
axis 2 0 0
field 0.0002
children
[

And insert just below:

CODE

DEF cubo5 Transform
{
fade 0.5
scale 0.75 0.75 0.75
translation -46.9 55.1 -205
rotation 0 0 1 3.14
children
[
 Spinner
 {
  rpm 1
  axis 1 1 -1
  children
  [
 
   Shape
   {
     appearance Appearance
     {
     material Material
     {
     }
     texture ImageTexture
     {
      url "nada.tga"
           alpha true
     }
     }
     geometry Box
     {
     }
   }
 
  ]
 }  
 
]
}


Extract default.xip/submenu2.xap. In UpdateSubMenu2MetaData(), look for

c.TrackNum.text = theMenuGlobal[nSoundtrack];

and insert this just below it:
CODE

c.cubo3.children[0].children[0].appearance.texture.url=theMenuGlobal[nSoundtrack]+".tga";

Extract default.xip/submenu3.xap. In UpdateSubMenu3MetaData(), look for

c.destinationString.text = vMn + "\n" + theMenuGlobal[nSoundtrack];

and insert this just below it:
CODE

c.cubo2.children[0].children[0].appearance.texture.url=theMenuGlobal[nSoundtrack]+".tga";

Extract default.xip/submenu0.xap. In UpdateTrackList(), look for

c.TrackNumbers.children[i].children[0].appearance.name = "CellEgg/Partsz";

and insert below:
CODE

c.cubo4.children[0].children[0].appearance.texture.url=theMenuGlobal[n]+".tga";

In UpdateMusicsubMenu0(), look for

var c = theMusicsubMenu0.children[0].children[0];

And insert below:
CODE

c.cubo4.children[0].children[0].appearance.texture.url="nada.tga";


Extract default.xip/submenu1.xap. In UpdateTrackList(), look for

c.TrackNumbers.children[i].children[0].appearance.name = "CellEgg/Partsz";

and insert below:
CODE

c.cubo5.children[0].children[0].appearance.texture.url=theMenuGlobal[n]+".tga";

In UpdateMusicsubMenu(), look for

var c = theMusicsubMenu.children[0].children[0];

And insert below:
CODE

c.cubo5.children[0].children[0].appearance.texture.url="nada.tga";



Now you have to make the icons. Generate a .xbx for each game/app/emu/dash you want. The name must be the exactly same as the directory where it is, so if you make them with fast_xbx2dds2img, you will have to insert the spaces in the name after making it (if the directory has spaces).
You can also look for the xbx in the saves dir. Just locate the correct directory and rename TitleImage.xbx
Update: Thanks to ImOkRuOk and Cody Smile you can get icons from here:
http://xbx-repository.cjb.net/titleimage/xbx_menu.php
Insert back all the xaps in their xips and all the icons in default.xip. Save the xips, RESIGN and upload. That's it!!!
According to JbOnE, there is a limitation on xips. If you put in too many icons (or if they are too big, 128x128 is enough), you can get an error 21 on load or when you enter the menu, so be careful.
Regards,

Krater
gnutellafan
QUOTE (Sonikku @ Jan 20 2004, 08:49 PM)
No, you would just end up at the main XBMC screen, which is fine for me, since typically i'll have several divx movies burned to one dvd-r, and I wouldnt want it to start randomly playing whichever one it wants wink.gif

any way to get it to just launch the media?
evil clone
QUOTE (gnutellafan @ Jan 27 2004, 10:49 PM)
QUOTE (Sonikku @ Jan 20 2004, 08:49 PM)
No, you would just end up at the main XBMC screen, which is fine for me, since typically i'll have several divx movies burned to one dvd-r, and I wouldnt want it to start randomly playing whichever one it wants wink.gif

any way to get it to just launch the media?

no that would be a xbmc setings change or modd... theres nuthing in the xbox dash you could do to launch the media in xbmc
Musse
The following code brings upp the keyboard and allow user to launch a game or app by entering the folder name, witch the game/app is located in.

This is useful when running the memory menu hack, and when there is no saved game.

Put the following functions in default.xap and add a call the function QuickLaunch(); when pressing some button.


CODE

function LaunchTitle(title)
{
var strTitleName = title;
var GamePath = "\\Device\\Harddisk0\\Partition6\\Games\\";
var AppPath  = "\\Device\\Harddisk0\\Partition1\\Apps\\";
var PathToXBE;    
var XBExists = false;

PathToXBE = GamePath + "" + strTitleName + "\\";
XBExists = theConfig.NtFileExists( PathToXBE + "default.xbe" );

if(XBExists) {
 launch("default.xbe", PathToXBE);
} else {
 PathToXBE = AppPath + "" + strTitleName + "\\";
 XBExists = theConfig.NtFileExists( PathToXBE + "default.xbe" );

 if(XBExists) {
  launch("default.xbe", PathToXBE);
 } else {
  TellUser("Unable to find title:\n" + strTitleName + "\n", "QuickLaunch()");
 }
}
}



CODE

function QuickLaunch()
{
var title = "Enter Title";

ShowKeyboard("Quick Launch.", title, "LaunchTitle(strKeyboardEdit)", "");
}

-Gadget-
Krater... in the standard memory section
how/where does it get its image's from, to display the thumbnail??
as this could be worked in with your mod...

you would then have a auto icon
and no need for inserting a seperate image for each XBE etc...
truly a top mod !!

would this be possible ??
Mick ....
sega27
By modifying slightly what Sonikku said about launching XBMC when a disk is unknown, I just removed the error message so that I can put in a rom, video, or music disk and then launch the appropriate program to run the disk.

In default.xip --> default.xap find:
CODE
       else if (discType == "unknown")
       {
          TellUser("n Either your drive doesn't support this type of media or the disk may be dirty or damaged.","");
       }


Replace With:
CODE
       else if (discType == "unknown")
       {
           return;
       }

hard huh? cool.gif
sega27
QUOTE (-Gadget- @ Feb 16 2004, 12:29 AM)
Krater... in the standard memory section
how/where does it get its image's from, to display the thumbnail??
as this could be worked in with your mod...

you would then have a auto icon
and no need for inserting a seperate image for each XBE etc...
truly a top mod !!

would this be possible ??
Mick ....

thats a great idea
Krater
Hi
At the beginning of default.xip/memory3.xap:
CODE

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

   if (c.theSavedGameGrid.CanDetachIcon())
   {
       c.theSavedGameGrid.detachIcon = true;

       ResetDetailScreen();
       c.theSavedGameGrid.setSelImage();
...

But I don't know how to use it in another menu, anyone?
Regards,

Krater
dark_shadow
Disable the clock on startup

Edit default.xip/default.xap

Find

CODE
function onLoad()
           {
               var c = theMainMenu.children[0].children[0];
 BGMmode = "Random";
 c.theNowPlaying_text.visible = false;
 c.theOnScreenDisplay_Translation.visible = false;
 c.theOnScreenDisplay_Rotation.visible = false;
 c.Main_pod_backing03.children[0].appearance.texture = audioVisualizer;
 c.Main_pod_backing03.SetAlpha(0);
               c.Main_memory_ringpin_3.SetTranslation(62.779999, 13.892000, 102.000000);
               c.Main_memory_ringpin_2.SetTranslation(56.830002, 33.290001, 101.900002);
               c.Main_Online_ringpin.SetTranslation(62.779999, -6.092000, 102.000000);  
               c.Main_memory_ringpin_4.SetTranslation(57.430000, -24.379999, 101.500000);
  GetDashSettings();
 theBackgroundMusicPlayer.volume = BGMvol;
 if(theDashSettings[50] == "true")
 {
  BackgroundMusicOn();
  BGMmode = "Random";
 }
 else
 {
  BGMmode = "";
 }
 SetMainMenuButtonText();
 SetMainMenuOrb();
 theMenuGlobal = ReadValues(theDashSettings[66]);
 ShowClock();
               UpdateMainMenu();
               g_theMainMenuLoaded = true;
 var g = CheckSystemStatus();
 if(g == "1stboot")
  StartAutomatedConfig();
           }


and replace with

CODE
function onLoad()
           {
               var c = theMainMenu.children[0].children[0];
 BGMmode = "Random";
 c.theNowPlaying_text.visible = false;
 c.theOnScreenDisplay_Translation.visible = false;
 c.theOnScreenDisplay_Rotation.visible = false;
 c.Main_pod_backing03.children[0].appearance.texture = audioVisualizer;
 c.Main_pod_backing03.SetAlpha(0);
               c.Main_memory_ringpin_3.SetTranslation(62.779999, 13.892000, 102.000000);
               c.Main_memory_ringpin_2.SetTranslation(56.830002, 33.290001, 101.900002);
               c.Main_Online_ringpin.SetTranslation(62.779999, -6.092000, 102.000000);  
               c.Main_memory_ringpin_4.SetTranslation(57.430000, -24.379999, 101.500000);
  GetDashSettings();
 theBackgroundMusicPlayer.volume = BGMvol;
 if(theDashSettings[50] == "true")
 {
  BackgroundMusicOn();
  BGMmode = "Random";
 }
 else
 {
  BGMmode = "";
 }
 SetMainMenuButtonText();
 SetMainMenuOrb();
 theMenuGlobal = ReadValues(theDashSettings[66]);
 HideClock();
               UpdateMainMenu();
               g_theMainMenuLoaded = true;
 var g = CheckSystemStatus();
 if(g == "1stboot")
  StartAutomatedConfig();
           }


Now the clock is gone.
To show it again, press Right trigger + B

Greetz
Aron Parsons
Just comment out ShowClock().
CODE
//ShowClock()


No need to hide the clock before it appears wink.gif
Whatup1049
Krater-

Do all games need to have a preview .xbx file? We put them in the default.xip file correct? I just followed your tut step by step and when I click onto the games section it try's to go in it but just freezes? What could the problem be?
Krater
Hi
No, you don't need to place an icon for every menu item. If a game doesn't have an icon the cube simply won't show.
Yes, you have to put them in default.xip. Start by adding only one icon and seeing if it works. Your problem may be the size of the xbxs or the number of them (according to JbOnE there can be problems in xips with this). By now I have about 40 icons in my default.xip @ 128x128 and 10KB each and it works well.
Regards,

Krater
Whatup1049
Hey if you can send me the xbx's I can host them and maybe we can establish a database of more games? beerchug.gif
ImOkRuOk
I will contribute:) Have about 15 of my own so far.....
ImOkRuOk
Thanks to heydricas, fuckdb and ZogoCheif for your tut, patch and help:)

With fuckdb's PowerOff patch, and a twist on what heydricas posted about Power off after dvd stop:)

insert at very top of dvd.xap in default.xip

CODE
DEF mynewConfig Config


then in place of heydricas...
CODE
launch("power.xbe", ""the path where your power.xbe is located");

put...

CODE
mynewConfig.SetAutoOff(1);
gnutellafan
QUOTE (Whatup1049 @ Feb 25 2004, 06:18 PM)
Hey if you can send me the xbx's I can host them and maybe we can establish a database of more games? beerchug.gif

The easiest thing to do would be get them out of the saved games hosted by xbox-saves. I was going to do this but life has gotten in the way. It would be possible to build a database will all current games and distribute it via mirc - of course it would need someone to update constantly.
ImOkRuOk
QUOTE
The easiest thing to do would be get them out of the saved games hosted by xbox-saves. I was going to do this but life has gotten in the way. It would be possible to build a database will all current games and distribute it via mirc - of course it would need someone to update constantly


I'd be more than happy too:)
sega27
fuckdb released a cool new patch to get drive space.

QUOTE
This patch add the ability to "MemoryMonitor.GetTotalFreeBlocks" function to return the F & G drive space.

XAP Usage:
DriveSpace = yourMemoryMonitor.GetTotalFreeBlocks(X);
X = 8(E Drive) , 9(F Drive) , 10(G Drive)

PS: You can use GetFreeTotalRatio function to compute the full drive space.

EG:
FreeSpaceRatio = FreeSpace / TotalSpace
TotalSpace = FreeSpace / FreeSpaceRatio


Can someone come up or find some usefull code from this?
Cody Smile
i know if you change every were it says
CODE

MemoryMonitor.GetTotalFreeBlocks(8);


you can change the 8 to the diff drives
CODE

X = 8(E Drive) , 9(F Drive) , 10(G Drive)

i wish i could just make one button to push to change drives
BobMcGee
Has anyone figured out how to put a rotating cube in the main orb...if so please let me know where to find it...thanks

Bob
Krater
Hi Bob
In default.xip/default.xap, look for
function UpdateMainMenu()
{
Update4ButtonMainMenu();
}
And insert below it:
CODE

DEF cubo Transform
{
  scale 50 50 50
  translation -100 -100 0
  rotation 0 0 1 3.14
  children
  [
         
        Spinner
     {
         rpm 3
       axis 1 1 1
       children
       [
       
     Shape
     {
        appearance Appearance
        {
           material Material
           {
           }
           texture ImageTexture
           {
               url "YourImageHere.tga"
               alpha false
           }
        }
        geometry Box
        {
        }
     }
         
         ]
   }
   
  ]
}

It won't appear inside the orb, you'll have to change the coordinates in
translation -100 -100 0
Also, you'll have to insert YourImageHere.xbx in default.xip or change that to point to another image.
Regards,

Krater
Odb718
QUOTE
Hi
If you want rotating icons inside the orbs (for the tHc dash, prerelease and final) of the "music soundtrack style" , "music copy style" and "music style with submenus 2" menus, try this. You'll have to insert them as .xbx in default.xip, but it's the only way to have icons by now...

I seem to have messed up some where doing this....
The dash loads perfect, I can see the icons that match the games,emulators, and apps.
BUT my third tab is set up as an Aplications folder. It's a Music Style with SubMenus 2 style folder.
Originally when I'd press A it would bring up the applications folder with
BoXplorer
Halo cache editor
Disc copy
Dashboards
and Misc. Applications
Now when I press A it brings up the folder Applications but the folders are renamed to mimic the actual menu of the cd ripper. If I hit A it brings up the folder of what ever it was originally like boXplorer. if I hit down then A it brings me to Halo cache editor.
If I hit B to pull out the menu flips up and the previous menu come halfway on the screen. If I hit B again it only makes the sound. The weird part is it actually "stays" in the menu I pulled out of. Like if I hit A one more time BoXplorer would launch. blink.gif

Oh, I did edit the xbox saves to be able to launch the game through the Icon and had no problem with it, still dont. Do you guys think having both could cause some kind of problem? Any idea what I could have done wrong?
Krater
Hi Odb718
I didn't edit the saves menu, but I don't think that's the reason for it not to work.
I'd suggest you to get a clean Music_PlayEdit2/default2.xap and default.xip/submenu0.xap and redo these parts.
Regards,

Krater
BobMcGee
thanks krater...will try it out
vintster
This might be useful for those like me who wanted to create a playlist and have only that playlist play when the background music is turned on. I also included some code to randomize the playlist on start up. Now if you have more than one playlist I'm pretty sure it only plays songs from the first one but I'm not quite sure why. Maybe someone could shed some light on that. But anyways it works for the first playlist fine for me and I have 2 lists.

This is in Default.xip/Default.xap:

under DEF theBackgroundMusicPlayer AudioClip and "function BackgroundMusicOn()", replace this
CODE
else if(BGMmode == "Playlist")
{
 DisableAmbientAudio();
 BGMPlayerPlayList(plist[vPLPos],slist[vPLPos]);
}


with this
CODE
else if(BGMmode == "Playlist")
{
 DisableAmbientAudio();
 var w = Math.round(Math.random() * (ptotal - 1));
 BGMPlayerPlayList(plist[w],slist[w]);
}


Then under "function BGMPlayerPlayList(x,y)", replace this
CODE
if(beInPlist)
   {
     BGMst = x;
     BGMtr = y;
   }
   else
   {
     BGMst = plist[0];
     BGMtr = slist[0];
   }


with this
CODE
BGMst = x;
BGMtr = y;



Then under DEF theMainMenu Level and "function onLoad()", change both instances of
CODE
BGMmode = "Random";

to
CODE
BGMmode = "Playlist";


At this point, when the dash loads it should play a random song from your first playlist but after that song ends it will play them in order. If you want it to keep playing random songs from the list just goto DEF theBackgroundMusicPlayer AudioClip under "function OnEndOfAudio()" and change
CODE
else if(BGMmode == "Playlist")
{
 BGMPlayerPlaylistFFWD();

to this
CODE
else if(BGMmode == "Playlist")
{
 //BGMPlayerPlaylistFFWD();
 BackgroundMusicOn();


the only drawback is it won't ever play your list in order unless you change this back.

Well thats it. This work well enough for me but if anyone wants to improve on it great! Post your code if you do.

Let me know if it doesn't work.



AM-StYLe!
My Variation on the XBMC post by Sonikku,

in default.xip/default.xap find

CODE
else if (discType == "unknown")
      {
          TellUser("n Either your drive doesn't support this type of media or the disk may be dirty or damaged.","");
      }


and replace with
CODE
AskQuestion(theTranslator.Translate("Disk not regognised!\n\nDo you wish to launch XBMedia Centre?"), "StartXBMC()", "", 0);


Now above
CODE
function StartDVDPlayer()


paste the following
CODE

function StartXBMC()
{
var xbmce;
var xbmcf;
xbmce = theConfig.NtFileExists( "\\Device\\Harddisk0\\Partition1\\apps\\xbmc\\default.xbe");
if(xbmce == true)
   {
 launch( "default.xbe", "\\Device\\Harddisk0\\Partition1\\apps\\xbmc" );
   }
else
{
 xbmcf = theConfig.NtFileExists( "\\Device\\Harddisk0\\Partition6\\apps\\xbmc\\default.xbe" );
 if(xbmcf == true)
 {
  launch( "default.xbe", "\\Device\\Harddisk0\\Partition6\\apps\\xbmc" );
 }
 else
 {
  TellUser("\n \n Could not find XBMC - make sure default.xbe is in apps\\xbmc","");
 }
}
}


When an unrecognised disk in inserted it will now ask if you want to launch XBMC and run it if you do.

AM-StYLe!
A1patriot
QUOTE (Krater @ Mar 15 2004, 07:15 PM)
Hi Bob
In default.xip/default.xap, look for
function UpdateMainMenu()
{
    Update4ButtonMainMenu();
}
And insert below it:
CODE

DEF cubo Transform
{
  scale 25 25 25
  translation -190 -125 0
  rotation 0 0 1 3.14
  children
  [
         
        Spinner
     {
         rpm 3
       axis 1 1 1
       children
       [
       
     Shape
     {
        appearance Appearance
        {
           material Material
           {
           }
           texture ImageTexture
           {
               url "music_icon.xbx"
               alpha false
           }
        }
        geometry Box
        {
        }
     }
         
         ]
   }
   
  ]
}

It won't appear inside the orb, you'll have to change the coordinates in
translation -100 -100 0
Also, you'll have to insert YourImageHere.xbx in default.xip or change that to point to another image.
Regards,

    Krater

Nice one again Krater, I used this code to add a little revolving icon next to music info.

Sweet smile.gif

music_icon.xbx <-- if u want it.


UPDATE: Only trouble is it stays on screen when watching a dvd... laugh.gif laugh.gif

Can this be fixed?? smile.gif
DaBeast77
QUOTE
If you want rotating icons inside the orbs (for the tHc dash, prerelease and final) of the "music soundtrack style" , "music copy style", "music style with submenus 1" and "music style with submenus 2" menus, try this. You'll have to insert them as .xbx in default.xip, but it's the only way to have icons by now...
It's almost the same I posted here:
http://forums.xbox-scene.com/index.php?act...T&f=55&t=153030
but now the icons rotate 

Edit: Updated to work with submenus.


is there a way to make it look to a different spot(like a folder on your hard drive) for the xbx's? i have about 220 i want to keep on it, but it freezes when the default.xip is too big.

By the way i am going to upload all of my xbx's to the site soon.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.