Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

.bnd file map

Junior Spellweaver
Joined
Mar 21, 2007
Messages
139
Reaction score
0
I just checked the .bnd files and I think I know how it's used already. I only mapped out a few of these values. .bnd files are just pixel position pointers and the values are in little-endian format.

I'll be using State_Playing.bnd to explain it. I haven't mapped the whole file so the first few bytes are ignored. Valuable data starts at 0x6(thanks to kishi).
Look at 0x96 to 0xa5, - you'll have b6 01 00 00 35 02 00 00 bb 01 00 00 4c 02 00 00
Now go take a press the Print Screen button when you're playing a song and open Paint. Select Edit - Paste. If you convert those little-endian hex into numbers(4 bytes each) you will get 438, 565, 443, 588. Now, you would've noticed that 35 02 00 00 and 4c 02 00 00 had repeated 23 times in the .bnd file. The EQ in the game also had 23 bars. if you map those pixels positions in this format: Left side, Top Side, Right Side, Bottom Side onto the screen-shot, you will get the left-most EQ bar. Continue the process until 0x0204 and you get all 23 EQ bars.

File format:
Header :
4 bytes - FF FF FF FF
2 bytes - No. of Entries(thanks to kishi)

Data :
16 bytes - Item window
- 4 bytes - Left Side
- 4 bytes - Top Side
- 4 bytes - Right Side
- 4 bytes - Bottom Side

Currently mapped items(items with "?" are guessed items):

State_Playing.bnd - 43 items
0x06 - 0x15 - Exit button focus position*
0x16 - 0x25 - ?Chat box
0x26 - 0x35 - ?Time bar(not text)
0x36 - 0x85 - Pills (up to down)
0x86 - 0x95 - Song Title
0x96 - 0x0205 - 23 Equalizer Bars(left to right)
0x0216 - 0x0225 - Power Ring
0x0226 - 0x0235 - Arrangement Ring
0x0236 - 0x0245 - Visual Ring
Last 7 items are unknown.
* The real image is bigger but it's focus is not triggered when you touch the image but the space defined in the .bnd file.

State_Avi.bnd - 1 item
0x06 - 0x15 - Screen (probably for fading effects*)
* When ran in Window Mode on WinE in Linux, the whole screen's brightness is affected.

State_Planet.bnd - 119 items
0x06 - 0x15 - Screen

-- Blinking Stars -- 9 in total --
0x36 - 0x45 - Blinking Star 1(below the '!' on message on the top)
0x46 - 0x55 - Blinking Star 2(below the chicken on the top left corner)
0x56 - 0x65 - Blinking Star 3(between Knowledge Planet and Corruption Planet)
0x66 - 0x75 - Blinking Star 4(between Corruption Planet and Channel List)
0x76 - 0x85 - Blinking Star 5(just under Knowledge Planet)
0x86 - 0x95 - Blinking Star 6(just under Aqua Planet)
0x95 - 0xa5 - Blinking Star 7(between Creativity Planet and Dragon Planet)
0xa6 - 0xb5 - Blinking Star 8(just under Creativity Planet)
0xb6 - 0xc5 - Blinking Star 9(just under green coloured planet)

-- Blinking Music Notes --
0xc6 - 0xd5 - Blinking Music Note 1 (beside brown coloured planet)

0x0596 - 0x06d5 - Channel List (1 to 20)
 
Last edited:
Newbie Spellweaver
Joined
Apr 4, 2004
Messages
92
Reaction score
0
Hm.. That seems quite close, except for a few byte shifts.

It's actually a 6 bytes header: 4 bytes I didn't bother interpreting, 2 bytes containing the number of entries in the file.

Data follows header: 4*4 bytes specifying positions, for each one of the entries.


edit:
Btw, I didn't bother interpreting the first 4 bytes because it looks like a file signature, being always FF FF FF FF.
It could be something else, but that's something I wouldn't care for now.
 
Junior Spellweaver
Joined
Mar 21, 2007
Messages
139
Reaction score
0
Thanks for the info kishi.
By the way, do they represent percentages? When I enlarged the game's screen resolution through debugging, the game's images are still mapped on the screen by its original pixel position so they all stayed in the 800*600 window clipped on to the top-left corner. The rest was blank. However, combo, judgement, note effects were all enlarged and stayed at the screen as if the whole game was enlarged. Is that the .bnd or the client?
Here's a SS of what I'm talking about. Circled pinky thing on the middle is the jam effect on the avatar. Big shiny thing on the uncovered BG is a note hit effect I think. The greyish backgorund on the bottom left is from the scrolling result screen.
 
Newbie Spellweaver
Joined
Apr 4, 2004
Messages
92
Reaction score
0
It's not that they represent percentages. But they are still related to the 800x600 resolution.. Therefore the game can still perform 'matching' rendering, even on other resolutions. Up to the algorithm there --which I wouldn't dare looking at XD

I don't know what method you used to scale the game --but the "problem" is surely on the client rendering, not on the .bnd file or whatsoever.
 
Junior Spellweaver
Joined
Mar 21, 2007
Messages
139
Reaction score
0
All I did was OllyDbg it. Search and replace every PUSH 320 and PUSH 258(800*600) to PUSH 500 and PUSH 400(1280*1024). There's about 9 of them. I'll take a look at it later and do some trial and errors.

EDIT: It seems like the relational positions are using the same variable used by DirectX. There's no way around it except to look that the items manually.
 
Last edited:
Back
Top