Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Wild Arms 3 (*.BIN)

Featured Replies

  • Author
  • Localization

DrifterThief127, posted Sun Jan 28, 2018 2:21 am (31986)


Hello there! It's been quite a while since I last dug into the files of this game in search of its models.

Anyways, last time I checked the BTLODT.BIN file, I managed to find some model data, as well as some pathway-like data that seems to be about the game's enemies when viewed in a hex editor like so.
There seems to be some sort of method on the storage these files, and I must ask - Is there any way that I can have some help with getting through the data for extraction?
  • Author
  • Localization

DJ Normality, posted Sun Aug 02, 2020 8:15 pm (57871)


Well I was able to use the script found hidden in the archives of the internet. Its called "WA3eememoryto3ds.bms"
I renamed it to "eeMemory.bms" I found that it in fact does pull the models from the save states.
Loaded my game then saved in the save state. Then read you just have to edit the extension from .p2s to .zip.
Image
Just drag out the eeMemory.bin. And run Quick BMS on the file.
Image
I was able to find the main characters but seems the script "join's" everything in the .3ds
I will try to look into that more. As well as trying out other games. I noticed that the information is all given.
Just need to find the algorithm :roll:
Image
But here is the files as they are now. No UV's, no split parts, no.. nothing really. But it is a start. And I thank anyone who is still here to help. And for those who left the archives up so I could get this far.
Script
https://drive.google.com/file/d/1M6xICP ... sp=sharing
  • Author
  • Localization

DrifterThief127, posted Mon Oct 26, 2020 7:45 pm (59229)


aluigi wrote:
have you already checked this topic?
http://forum.xentax.com/viewtopic.php?f=16&t=11486

Sorry for taking so long to reply.

I have checked the topic actually, since I am the one responsible for starting it over there. Progress on that has been extremely slow over the years, since I've been having a lot of difficulty figuring out how to extract the contents of the archives that have understandable text. I will say that it does have 3D data in it, as well as textures for certain models and visual effects. By searching in HxD for all hex value instances of "00 40 1E 31 12 04 00 00" (as was described to me by the admin of PS23dformat in his script), I was able to figure out that there were 2712 hits. As far as I know, he said there was some form of compression within BTLODT.BIN.

Furthermore, the archive contains text strings reminiscent of paths that have file names like "eff_012.mdl", "g025.mdl", and "e038.mdl" to name a few.

EDIT: Here's a link to BTLODT.BIN, for anyone willing to help out.
  • Author
  • Localization

DrifterThief127, posted Sat Oct 31, 2020 12:03 am (59862)


Again, any help would be greatly appreciated.
  • Author
  • Localization

DJ Normality, posted Sat Oct 31, 2020 4:42 am (59865)


I looked at it again tonight. I found this..
"00 00 00 00 40 1E 31 12 04 00 00 00 00"
Image
Image
Data Research
  • Author
  • Localization

DJ Normality, posted Sat Oct 31, 2020 7:52 am (59867)


Im able to get the models with this script and the eememory file. But no UV's. And the script joins all mesh into a .3DS file so its hard to split the individual parts. If we can find away to split the mesh rips that would help in rebuilding them. BTW this .BMS as the same header you mentioned. Using this script i been modifying you can get the 3D models. Im in process of editing the script for UV's.
https://drive.google.com/file/d/1sM2ix5 ... sp=sharing
  • Author
  • Localization

DJ Normality, posted Sat Oct 31, 2020 8:59 am (59868)


Just made this too..
Image
  • Author
  • Localization

DJ Normality, posted Sat Oct 31, 2020 11:40 am (59870)


Ok figured out the sub mesh problem. Now for the UV's. Here again is what I found.
Image
By inserting this "67 20 73 6D 30" you can separate the sub meshes. First you have to open the file and export to .OBJ.
Image
I was surprised to see it does work!
I was looking for archives on way back this is all I found.
Image
I saw @shakotay2 found a way to get the UV's. Said he edited the script. Man I hope he still around and has the programs / algorithms still.
He posted this along with all the main characters UV mapped.
Image
Here are the files.
https://drive.google.com/file/d/1svMz4L ... sp=sharing
And here is my research document as of now..
https://drive.google.com/file/d/1nbtj2Y ... sp=sharing
  • Author
  • Localization

DrifterThief127, posted Sat Oct 31, 2020 9:32 pm (59877)


He actually stated this in the second page of that thread.
Quote:
Since the models are not of vast interest for me I don't think I'll dig deeper into this.

That's unfortunate, too, because I would have loved to see the models having their UV coordinates.
Also, I downloaded the script which you linked, and it gave me several .OBJ files. Though upon trying to open them in Blender, I got an error.
  • Author
  • Localization

DJ Normality, posted Sun Nov 01, 2020 7:43 am (59882)


I also found that by changing the script slightly Im able to pull out the environment too... :shock:
Image
Then another edit got me this...
Image
Still trying to figure all this out everyone. With help from the community I think we can finally put this title to rest.
  • Author
  • Localization

DrifterThief127, posted Mon Nov 02, 2020 12:40 am (59896)


That's truly impressive work with the scenery. Nicely done! :)

In regards to the script, I noticed that it outputs two file types for each mesh (.3ds and .wa respectively). I'm guessing that the .wa files hold the UVs while the .3ds files hold the mesh with no UVs intact. Is there currently any way to join the two, or is there still some work to be done for that?
  • Author
  • Localization

DJ Normality, posted Mon Nov 02, 2020 12:50 am (59897)


Thanks! New tool, with a few manual moves you can get the file with UV's there is a instruction sheet in the archive. Please read that in order to understand how it works. Very special thanks to shakotay2.
https://drive.google.com/file/d/1AyzxzZ ... sp=sharing

An yeah I was trying to modify the document myself. I had to reach out for help. I was so close yet so far away. I think we got it down now. .wa was my version so i can load it easily. It should be kept as a .bin. The script and the ripper are 100% working.
  • Author
  • Localization

DJ Normality, posted Mon Nov 02, 2020 12:22 pm (59908)


[New Instructions Manual]

Use the modified WildArms3eememoryto3ds.BMS on a eeMemory.bin file.

You should get some 3ds files AND uvs.bin files (Hit "r" for rename)

You will get uvs.bin, then uvs00000001.bin to uvs00000007.bin

Combine 1.3ds with uvs.bin, 2.3ds with uvs00000001.bin and so on.

Move new 1.3ds and uvs.bin to Wild Arms III tool folder

Drop and drag 1.3ds onto WA3_verts.cmd

Or from cmd "WA3_verts.cmd 1.3ds"

1.3ds.obj being created

Place 1.3ds.obj in Make_obj folder

Start Make_obj.exe

Load file/open uvs.bin

Makeobj_log.obj being created (contains vt lines)

Copy/paste the contents of Makeobj_log.obj into 1.3ds.obj before the face indices lines

Load obj into your preferred 3D rendering software


https://drive.google.com/file/d/1WQ7I8H ... sp=sharing
  • Author
  • Localization

DrifterThief127, posted Tue Nov 03, 2020 12:55 am (59925)


So I did every step as instructed, but upon loading the .obj in Blender and looking at the UV/Image Editor, I was able to see that the UVs are messed up, as seen in the image below.
Image
  • Author
  • Localization

DJ Normality, posted Tue Nov 03, 2020 4:33 am (59928)


Yeah unfortunately these are the same results I got aswell. Not sure as to why everything is done correctly. I will look into the script more. Might just be the way the UV's are pasted
  • Author
  • Localization

DrifterThief127, posted Mon Dec 07, 2020 10:15 pm (60787)


Hey there! Have there been any updates as of late?
  • Author
  • Localization

DJ Normality, posted Tue Jan 12, 2021 8:28 am (61619)


**UPDATE**

[BTL]
BTLANM.BIN - Animations (118)
BTLMED.BIN - Animations (111)
BTMEP.BIN - ?
BTLOD.BIN - Textures (128), Animations (33)
BTMON.BIN - Models (362), Textures (827), Animations (5973)
BTLOVR.BIN - ?
BTLSE.BIN ?

[STG]
BTLKAR.BIN - ?
OUTANM.BIN - Animations (32)
STGANM.VIN - Animations (178)
STGEVTD.BIN - Textures (266)
STGEVTP.BIN - ?
STGMAP.BIN - ?
STGOBJ.BIN - Animations (15)
STGOUT.BIN - Animations (247)
STGSE.BIN - ?

[Strings Used]
53536864FFFFFFFF (.tex)
82BE82DD (.model)
0A414E4D (.amn)

After getting some help from Reh over at Zenhax he showed me my .tex are actually readable.
Image

Offset is usually 2196 and the palette is at 1170-1174. I noticed a few times it was 1172 and 1174 so just have to check. But once you do that save a .bmp. This will make it nice to get the textures from all area's without playing the game.
Or you can do it the old way from PCSX2 and manually saving them.
Image
Either way textures aren't too bad. Its the models that have been a struggle. I looked at the raw information and its hard for me to decrypt. I found that I cant get anything by the raw data. Not yet at least.
As for the save states. That's a different story. shakotay2 helped me with the script a few months ago but we still weren't able to get a proper extractor.
Image
The results of the output were not proper uv channels. I don't know where the error is I've looked at the script for about 2 months now. I cant seem to find it. If I shift the bytes x04 i get the world.
Image
Then I think if I shift -0x04 bytes I get this..
Image
Which appears to be the missing faces from the 1st image. Not sure what's going on there. I noticed that this was the post from some years ago. Which included a .blend file. Which i think is the key to all this.
Image
Because in this tutorial of the extractor all the uv's look correct and he supplied all 4 main characters uv mapped.
Image
Here is the extractor he made for the eememeory
https://drive.google.com/file/d/195iKgJ ... sp=sharing
If anyone could help with this game that would be extremely helpful! Its been quite some time. Id like to just unpack the game instead of going through the save states. Thanks in advance :mrgreen:
  • Author
  • Localization

chrrox, posted Wed Feb 03, 2021 4:11 pm (61984)


quickbms script to decompress files.
Needs to add support for extracting sub archives (align data to 0x800 after last file and start over again)
Run this first for now.

Code:
getdstring DIV 4
goto 0
for
findloc OFFSET string DIV
print "%OFFSET%"
getdstring TMP 0x20
findloc SIZE string DIV
goto SIZE
math SIZE - OFFSET
log "" OFFSET SIZE
next

then you can do this
Quote:
quickbms.exe -d -F "*.dat" "C:\Users\Downloads\Wild Arms 3 (USA)\Wild Arms 3 (USA)\STG\test.txt" "C:\Users\Downloads\Wild Arms 3 (USA)\Wild Arms 3 (USA)\BTL\1" "C:\Users\Downloads\Wild Arms 3 (USA)\Wild Arms 3 (USA)\BTL\2"

Code:
comtype LZSS0
savepos BASE
findloc FILES string "\x00\x00\x00\x00"
math FILES / 4
print "%FILES%"
for i = 0 < FILES
get OFFSET long
math OFFSET - 0x1D00000
putarray 0 i OFFSET
next i
math FILES - 1
for i = 0 < FILES
set j i
math j 1
getarray OFFSET 0 i
getarray SIZE 0 j
math SIZE - OFFSET
if SIZE > 0
math OFFSET BASE
log MEMORY_FILE OFFSET SIZE
get TSIZE long MEMORY_FILE
get SIZE asize MEMORY_FILE
print "%TSIZE%"
if TSIZE > 0x1FFFFF || TSIZE < 0
log "" 0 SIZE MEMORY_FILE
else
math SIZE - 4
clog "" 4 SIZE TSIZE MEMORY_FILE
endif
endif
next i
  • Author
  • Localization

chrrox, posted Wed Feb 03, 2021 4:28 pm (61985)


This bat file was in there interesting

Code:
BOVER   =$(BTL_PATH)\over\make

AARGS   =   /p /ows /oc /m /ol?      # /l <-> /p
MARGS   =   -x-

EFFIDX      =   $01D00000   # ADR address
EFFADR      =   $01D00100   # BIN address

.PATH.bin   =   bin
.PATH.bi2   =   bin
.PATH.s0   =   dat
.PATH.o0   =   tmp
.PATH.bmp   =   bmp;..\monster\bmp
.PATH.tim   =   bmp
.PATH.tx4   =   tmp
.PATH.twh   =   tmp
.PATH.mdl   =   mdl
.PATH.anm   =   anm
.PATH.fam   =   anm
.PATH.bne   =   bne
.PATH.msh   =   msh
.PATH.vu1   =   vu
.PATH.vu2   =   vu
.PATH.mt1   =   vu
.PATH.mth   =   vu
.PATH.mt2   =   vu
.PATH.v1p   =   tmp
.PATH.v2p   =   tmp
.PATH.bnp   =   tmp
.PATH.bx8   =   tmp
.PATH.pal   =   tmp
.PATH.anp   =   tmp
.PATH.bxp   =   tmp
.PATH.dmy   =   dmy
.PATH.anx   =   anx
.PATH.anz   =   tmp
.PATH.mss   =   dat
.PATH.msb   =   bin
.PATH.adm   =   adm
.PATH.bwh   =   tmp
.PATH.hd   =   ..\..\snd\btlse
.PATH.ton   =   bmp;..\monster\bmp

.bne.mt1:
   mkpkt $*.bne msh\$&.msh -Ovu\$&
   $(CV) -ptmp\$&.v1p vu\$&.vu1
.bne.mth:
   mkpkt $*.bne msh\$&.msh -Ovu\$& -H
   ren vu\$&.mt1 $&.mth
   $(CV) -ptmp\$&.v1p vu\$&.vu1
.bne.mt2:
   mkpkt $*.bne msh\$&.msh -D -Ovu\$&
   $(CV) -ptmp\$&.v2p vu\$&.vu2

.tim.tx4:
#   midb $*.tim tmp\$&.tx4 -O544
   @$(CV) -p$@ $(**:.tim=.tim/$220~$11800)
.tim.pal:
   setstp $*.tim -Otmp\$&.tip
   @$(CV) -t$@ tmp\$&.tip/$14~$200
.tim.twh:
   midb $*.tim tmp\$&.twh -O0 -S16

.bmp.bx8:
   @$(CV) -c$@ $(**:.bmp=.bmp/$436~$10000)
#   @$(CV) -p$@ $(**:.bmp=.bmp/$436~$10000)
.bmp.pal:
   @$(CV) -t$@ $(**:.bmp=.bmp/$36~$200)
.bmp.bwh:
   midb $*.bmp tmp\$&.bwh -O16 -S16

.s0.o0:
   @$(AS) $(AARGS) dat\$&.s0,$@

.anm.bxp:
#   anmbox bne\$&.bne msh\$&.msh anm\$&.anm -otmp\$&

.anx.anz:
   anx2anz $*.anx tmp\$&.anz

.mss.msb:
   msscv $*.mss bin\$&.msb

# Si-{?'?f?<
.adm.mdl:
   adm2mdl -x- -n -d:$(BTL_PATH)\over $*
   anmbox bne\$&.bne msh\$&.msh anm\$&.anm -otmp\$&

# adm'c'canp?f?[?^'??i'e(?A?j??'I'Y)
.adm.anm:
   adm2mdl -x- -n -d:$(BTL_PATH)\over $*.adm
   anmbox bne\$&.bne msh\$&.msh anm\$&.anm -otmp\$& -FB4 -FM4

.adm.fam:
   adm2mdl -x- -n -d:$(BTL_PATH)\over $*.adm
   anmbox bne\$&.bne msh\$&.msh anm\$&.anm -otmp\$&
   ren anm\$&.anm $&.fam



looks like the 3d models use ps2 vif tags.
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.