xboxscene.org forums

Pages: [1] 2 3 ... 7

Author Topic: Virtual Xbox Cd Ripper  (Read 923 times)

BlueCELL

  • Archived User
  • Full Member
  • *
  • Posts: 203
Virtual Xbox Cd Ripper
« on: February 23, 2004, 02:16:00 PM »

Name:       Virtual Xbox CD Ripper
Developer:   BlueCELL
Created:                    Sunday, February 15, 2004, 2:52:10 PM
Release Date:   N/A
Update:      Feb 23, 2004


Purpose:
Virtual Xbox CD Ripper will be an Application which will allow you to Copy MP3 files from your PC to your Xbox without having to worry about converting the file to the proper format and messing with the ST.DB file.

Functions:
-CD Ripper
-MP3/Ogg/WAV Converter to WMA
-Xbox Sound Track Manger (Including File Uploading to Xbox)

*********************
Note: All these functions will be wrapped together in one nice interface doing all the converting automatically, so it will be a Drag N' Drop method.
*********************

Development Status (General):

CD Extraction Moudle     (62% Complete)
WMA Encoder       (100% Complete)
Xbox Sound Tack Manager   (2% Complete)    
UI (User Interface)                   (20% Complete)   

Development Status (Technical):

File System Module              (78% Non-Tested)   No. Line: 93
CD Reading Module             (100% Tested)      No. Line: 83
WMA Encoding Module          (100% Tested)      No. Line: 233
Sound Interface Module        (100% Tested)      No. Line: 926
Xbox Sound Track Manager   (2% Development)   No. Line: Researching!

You Want to Help?
If anyone is interesting in helping please read below:

[Sound Track Manager (ST.DB)]
I will mainly need some assistance with the St.DB (Xbox Sound Track Database) reading/writing to this file.  I do understand that there is a program out there that allows you to edit the Database but it isn’t Open Source and the Developer Wont reply to the Emails I've sent him. So if anyone knows about that please contact me.

[Testers]
I will need some people to test this application as it gets closer to being finished! I will need people that would be able to actually play with this program and if it crashes have them try to regenerate this Error.  I don’t want any bitching people because I have been on Xbox-Scene for a while and noticed that a lot of people are so called "Beta Testers" but do nothing but bitch around!

[Splash Contest]
I will need some cool looking splash for this project. I’m not sure how many people will be interested but if you’re good with graphics contact me!

*MORE Information will be released Soon!
Logged

XBOX War3z

  • Archived User
  • Hero Member
  • *
  • Posts: 587
Virtual Xbox Cd Ripper
« Reply #1 on: February 24, 2004, 12:45:00 AM »

wants to be a beta tester too smile.gif
dont have much time for coding but maybe I can look into the db file sometime smile.gif
Logged

XBOX War3z

  • Archived User
  • Hero Member
  • *
  • Posts: 587
Virtual Xbox Cd Ripper
« Reply #2 on: February 24, 2004, 01:04:00 AM »

k if any of you mods think this isnt allowed then please delete my post

I just did this to speed up this program wink.gif
he would have find it on his own too

some info from the xdk about soundtracks:
max soundtrack name is 32 characters
max song name is 32 characters
max soundtracks is 100
and each soundtrack can have a maximum of 500 songs

so if each st.db has the same size its gonna be alot easier wink.gif

about the soundtrack:
soundtrack data:
an unsigned integer (4 byte) containing the soundtrack id
an unsigned integer (4 byte) containing the soundtrack song count
another unsigned integer which represents the total soundtrack time in milliseconds
a null terminated string with the soundtrack name (max 32 characters)

[edit] about the names they are unicode so each character takes 2 bytes
so each song name is 64 byte
Logged

chilin_dude

  • Archived User
  • Hero Member
  • *
  • Posts: 3068
Virtual Xbox Cd Ripper
« Reply #3 on: February 24, 2004, 02:34:00 AM »

I'd be a willing beta tester and could help with some graphics for the UI?
Logged

BlueCELL

  • Archived User
  • Full Member
  • *
  • Posts: 203
Virtual Xbox Cd Ripper
« Reply #4 on: February 24, 2004, 11:29:00 AM »

Hello,

Thank for your interest!

XBOX War3z....Thank you for the information that you provided, it will help me alot.

Zanime, Yes you could Convert a WMA->MP3 but that wont help any because the Xbox uses the WMA format as its Audio Files.

chilin_dude, Im going to keep the UI pretty simple. All that I could use is maybe a splash for the loading part of the Application.  But other than that I should be fine. Thanks Away.

Soon I will release a ScreenShot of the Application to get you guys a idea of how it will look.

Regards,
BlueCELL

Logged

BlueCELL

  • Archived User
  • Full Member
  • *
  • Posts: 203
Virtual Xbox Cd Ripper
« Reply #5 on: February 24, 2004, 05:03:00 PM »

Hey,

Zanime, Yes I could allow it to Transfer the Songs Back to your PC and convert it back to MP3 Format.  But honestly the WMA files on your Xbox that you ripped through the Dashboard would be named like "Track 1.wma" So personally, I wouldnt even think about doing that because that would waste lots of time, I either rip it again with the PC or get the MP3 some other way wink.gif so that you'd have the "Artist - Title" format.  You know what Im saying?

Regards,
BlueCELL
Logged

Zanime

  • Archived User
  • Newbie
  • *
  • Posts: 26
Virtual Xbox Cd Ripper
« Reply #6 on: February 25, 2004, 04:44:00 PM »

QUOTE (ZX3Junglist @ Feb 26 2004, 02:41 AM)
QUOTE (XBOX War3z @ Feb 24 2004, 11:04 AM)
about the soundtrack:
soundtrack data:
an unsigned integer (4 byte) containing the soundtrack id
an unsigned integer (4 byte) containing the soundtrack song count
another unsigned integer which represents the total soundtrack time in milliseconds
a null terminated string with the soundtrack name (max 32 characters)

about the names they are unicode so each character takes 2 bytes
so each song name is 64 byte

is this format of the soundtrack within the file, or the structure of the soundtrack class within the XDK?

Gotcha, thanks - I actually took your advice and reripped them.  

smile.gif

Keep up the good work; I can't wait to see some pics.
Logged

XBOX War3z

  • Archived User
  • Hero Member
  • *
  • Posts: 587
Virtual Xbox Cd Ripper
« Reply #7 on: February 25, 2004, 05:03:00 PM »

QUOTE (ZX3Junglist @ Feb 26 2004, 03:41 AM)
QUOTE (XBOX War3z @ Feb 24 2004, 11:04 AM)
about the soundtrack:
soundtrack data:
an unsigned integer (4 byte) containing the soundtrack id
an unsigned integer (4 byte) containing the soundtrack song count
another unsigned integer which represents the total soundtrack time in milliseconds
a null terminated string with the soundtrack name (max 32 characters)

about the names they are unicode so each character takes 2 bytes
so each song name is 64 byte

is this format of the soundtrack within the file, or the structure of the soundtrack class within the XDK?

xdk but they will most likely just read the entire structure from a file so smile.gif
Logged

BlueCELL

  • Archived User
  • Full Member
  • *
  • Posts: 203
Virtual Xbox Cd Ripper
« Reply #8 on: February 26, 2004, 05:08:00 AM »

I am currently working on processing the ST.DB file.  Currently I have the design of this Application done.  The UI is all layed out the way I want it and the CD Ripper, MP3 converters are all ready.  As soon as I get the ST.DB Format figured out I will be able to release Beta Versions for yall to test.

Regards,
BlueCELL
Logged

BlueCELL

  • Archived User
  • Full Member
  • *
  • Posts: 203
Virtual Xbox Cd Ripper
« Reply #9 on: February 26, 2004, 08:41:00 AM »

Here is a problem which I need to over come:

°Lcarstenc
1 176° 76L 3 99c 97a 114r 115s 116t 101e 110n 99c

àêMS
1 1 224à 234ê 2 109m 105i 99c 114r 111o 115s 111o 102f 116t

M<gcode
1 2 77M 60< 6 103g 99c 111o 100d 101e

The First line is the Actual String Which I get from the ST.DB File.  Then the second line is the First string just it displays each chrs ascii.

Anyway I have been looking at this and Im not able to figure out how to use/remove it.  If anyone has an Idea about it please let me know.

BlueCELL
Logged

XBOX War3z

  • Archived User
  • Hero Member
  • *
  • Posts: 587
Virtual Xbox Cd Ripper
« Reply #10 on: February 26, 2004, 11:25:00 AM »

dunno what's there but found this

the 'header':
first we got a 4byte integer, was always 01 00 00 00 (1)
then the next one is the soundtrack count (int)
then we got an integer giving the next 'id' to use
then it gives soundtrack count times an integer giving the id
it preserved the space here so we have the 100 possible id's

then we get at offset 0x19C (400 + 3*4bytes in decimal) giving the last song number to use (it keeps counting, so if you delete some files it will just use the next numbers)

then we get at 0x200 starts our first soundtrack
got an integer 71 13 02 00 there (same for each soundteack)
then got an integer which is the sountrack folder (folders only uses 4 characters)
then got integer which is the soundtrack count
each soundtrack can have 500 songs, they divide it in sound groups of 6 songs
giving us a max of 84 groups (6*84=504)
so we have 84 integers there (336 bytes)
then we got an unknown integer there
and then the soundtrack name (64 bytes)
and then 96 bytes unused

this is reserved for 100 soundtracks

then the songs names groups start on 0xCA00
song names are grouped by 6 songs, if there are less songs it fills it up with empty songs there


about the 'header' before each songname group
we got an magic first I think, always 73 10 03 00
then an integer giving the id of the soundtrack its from
then we get an integer giving the group block
(so if we have 20 songs we gave 4 groups, 0 -> 3)
then we got another integer (was always 01 00 00 00)
then we got 6 integer giving the song filenames
then we have another 6 integers which is probably the filetime for each song smile.gif
[edit]forgot to mention, then we have 6 song title (64byte)


damn I just mapped out almost the whole st.db file biggrin.gif

hopes it's helpfull
Logged

XBOX War3z

  • Archived User
  • Hero Member
  • *
  • Posts: 587
Virtual Xbox Cd Ripper
« Reply #11 on: February 26, 2004, 11:55:00 AM »

you didnt mention in what you are writing this

but this is the c++ stuff I got

CODE
#define MAX_SOUNDTRACK_COUNT 100
#define MAX_SOUNDTRACK_NAME 32
#define MAX_SONG_NAME 32

#define SOUNDTRACK_MAGIC 0x00021371
#define SONGGROUP_MAGIC 0x00031073

struct SoundTrack
{
   unsigned int magic; //always SOUNDTRACK_MAGIC
   unsigned int id;
   unsigned int songcount;
   unsigned int groupid[84]; //total of max 84*6 = 504 songs
   unsigned int unknown;
   WCHAR name[MAX_SOUNDTRACK_NAME];
   unsigned char filler[0x60];
};

struct SoundTrack_Header
{
   unsigned int unknown; //always 1
   unsigned int count;
   unsigned int nextid;
   unsigned int id[MAX_SOUNDTRACK_COUNT];
   unsigned int nextsongid;
   unsigned char filler[0x60];
   SoundTrack soundtracks[MAX_SOUNDTRACK_COUNT];
};

struct SongGroup
{
   unsigned int magic; //always SONGGROUP_MAGIC
   unsigned int soundtrackid;
   unsigned int groupid;
   unsigned int unknown; //always 1
   unsigned int filename[6]; //use sprintf(somechar, "%08X.wma", filename
  • );
       unsigned int unknown2[6]; //probably song time
       WCHAR songname[6][MAX_SONG_NAME];
    };


you open the file
read in the SoundTrack_Header structure
and then keep getting SongGroup's until you reach the end
or you could check the header to calculate how many times you should need to read it
Logged

BlueCELL

  • Archived User
  • Full Member
  • *
  • Posts: 203
Virtual Xbox Cd Ripper
« Reply #12 on: February 26, 2004, 12:02:00 PM »

Iam able to read the SoundTracks Now, Look at the preview!

user posted image

I'le see if I can add the other parts tonight.

Regards,
BlueCELL
Logged

XBOX War3z

  • Archived User
  • Hero Member
  • *
  • Posts: 587
Virtual Xbox Cd Ripper
« Reply #13 on: February 26, 2004, 01:39:00 PM »

smile.gif
forgot a filler in SongGroup, fixed now smile.gif
so we only have 2 unknowns (they are always just 1)

build a little commandline based st.db viewer to test it

source available here
binairy here

it lists all the songs, with there filename, xbox filepath and songtime
shows the groups, and all the soundtracks

one bug, last group is added twice

output:
QUOTE

SoundTrack Viewer

SoundTrack Count: 6
  Soundtrack: XBOX
   - Id/Folder: 0005
   - Count: 46
   - Magic: OK
   - Total Time: 2h:31m:25.065s
   -> Group 0
    -> Song Title: Blink182 - Adam's Song
       Song Filename: 00050021.wma
                      /E/TDATA/fffe0000/music/0005/00050021.wma
       Song Time: 04m:13.573s
...
   -> Group 3
    -> Song Title: Linkin Park - By Myself
       Song Filename: 0005001C.wma
                      /E/TDATA/fffe0000/music/0005/0005001c.wma
       Song Time: 03m:11.853s
...
  Soundtrack: Soundtrack 3
   - Id/Folder: 0009
   - Count: 1
   - Magic: OK
   - Total Time: 0h:04m:13.573s
   -> Group 0
    -> Song Title: Blink182 - Adam's Song
       Song Filename: 00090043.wma
                      /E/TDATA/fffe0000/music/0009/00090043.wma
       Song Time: 04m:13.573s
  Soundtrack: Soundtrack 4
   - Id/Folder: 000a
   - Count: 1
   - Magic: OK
   - Total Time: 0h:04m:13.573s
   -> Group 0
    -> Song Title: Blink182 - Adam's Song
       Song Filename: 000A0044.wma
                      /E/TDATA/fffe0000/music/000a/000a0044.wma
       Song Time: 04m:13.573s


as you can see, I was just testing tongue.gif
just to remind you, complete format is mapped out now smile.gif
Logged

BlueCELL

  • Archived User
  • Full Member
  • *
  • Posts: 203
Virtual Xbox Cd Ripper
« Reply #14 on: February 26, 2004, 04:58:00 PM »

Hey,

I just want to say thanks to everyone who helped out with this project and a Major Thanks to XBOX War3z for helping out with the ST.DB File. Thanks Alot, be expecting Virtual Xbox CD Ripper soon!

Regards,
BlueCELL
Logged
Pages: [1] 2 3 ... 7