redgraves Posted September 2 Share Posted September 2 (edited) Hi all, currently looking to rip from Galerians: Ash on the PS2. The files are in .bd1, .bd2 and .pss formats from what I can see. Does anyone know a tool or is Ninja Ripper my best bet? Edit: Sample files here, they were too big to attach to the main post. Edited September 2 by redgraves Link to comment Share on other sites More sharing options...
Engineer Rabatini Posted September 2 Engineer Share Posted September 2 samples. Link to comment Share on other sites More sharing options...
redgraves Posted September 2 Author Share Posted September 2 (edited) 1 hour ago, Rabatini said: samples. Right I forgot! I also forgot to mention that it's a PS2 game. That's what I get for making a post so early in the morning! Here you go! The files are too large to attach here, so it's a mega link. I think model.bd2 has the model files. There are other bd2 files like stage.bd2 in the iso as well. Edited September 2 by redgraves Link to comment Share on other sites More sharing options...
Engineer Solution Rabatini Posted September 3 Engineer Solution Share Posted September 3 try this in bd2 math i = 0 SET OFFSET = 0 do goto OFFSET get DUMMY long # Calcula o próximo OFFSET e avança 0x40 bytes math NEXT_OFFSET = OFFSET math NEXT_OFFSET += 0x40 goto NEXT_OFFSET # Obtém o nome com GETDSTRING getdstring NAME 0x03 # Verifica cada caractere individualmente set INVALID_CHAR 0 for j = 0 < 3 getvarchr CHAR_CODE NAME j if CHAR_CODE >= 65 && CHAR_CODE <= 90 # A-Z # Válido elif CHAR_CODE >= 48 && CHAR_CODE <= 57 # 0-9 # Válido elif CHAR_CODE == 95 || CHAR_CODE == 45 # _ ou - # Válido else set INVALID_CHAR 1 break endif next j if INVALID_CHAR != 0 set NAME string "unk" endif # Encontra o próximo "BD1" findloc NEXT_OFFSET string "BD1" "" 0 if NEXT_OFFSET == "" get FILESIZE asize math SIZE = FILESIZE else math SIZE = NEXT_OFFSET endif math SIZE -= OFFSET # Junta o número com `_` e depois o `NAME` string FULL_NAME p= i string FULL_NAME += "_" string FULL_NAME += NAME log FULL_NAME OFFSET SIZE math i += 1 math OFFSET = NEXT_OFFSET while NEXT_OFFSET != "" 1 Link to comment Share on other sites More sharing options...
Engineer roocker666 Posted September 3 Engineer Share Posted September 3 After using Rabatinis's script, I analyzed the file "1_PED" and found Vertices and Normals. I don't know about UVs, probably are at 0xFB0 Vertices count at 0x16320 Link to comment Share on other sites More sharing options...
Engineer Rabatini Posted September 3 Engineer Share Posted September 3 You can use this script to extract inside tex-PED-MOB extracted by the other script. because its a container inside another one idstring "BD1" GET FILE ASIZE GET ID BYTE GETDSTRING ZEROS 0X0C GET ENTRIES LONG FOR RIP = 1 TO ENTRIES GET OFFSET LONG GET CHECKSUM LONG SAVEPOS TEMP GET SIZE LONG IF SIZE == 0 MATH FILE - OFFSET LOG "" OFFSET FILE ELSE MATH SIZE - OFFSET LOG "" OFFSET SIZE GOTO TEMP ENDIF NEXT RIP 1 Link to comment Share on other sites More sharing options...
redgraves Posted September 5 Author Share Posted September 5 (edited) On 9/2/2024 at 9:04 PM, Rabatini said: try this in bd2 math i = 0 SET OFFSET = 0 do goto OFFSET get DUMMY long # Calcula o próximo OFFSET e avança 0x40 bytes math NEXT_OFFSET = OFFSET math NEXT_OFFSET += 0x40 goto NEXT_OFFSET # Obtém o nome com GETDSTRING getdstring NAME 0x03 # Verifica cada caractere individualmente set INVALID_CHAR 0 for j = 0 < 3 getvarchr CHAR_CODE NAME j if CHAR_CODE >= 65 && CHAR_CODE <= 90 # A-Z # Válido elif CHAR_CODE >= 48 && CHAR_CODE <= 57 # 0-9 # Válido elif CHAR_CODE == 95 || CHAR_CODE == 45 # _ ou - # Válido else set INVALID_CHAR 1 break endif next j if INVALID_CHAR != 0 set NAME string "unk" endif # Encontra o próximo "BD1" findloc NEXT_OFFSET string "BD1" "" 0 if NEXT_OFFSET == "" get FILESIZE asize math SIZE = FILESIZE else math SIZE = NEXT_OFFSET endif math SIZE -= OFFSET # Junta o número com `_` e depois o `NAME` string FULL_NAME p= i string FULL_NAME += "_" string FULL_NAME += NAME log FULL_NAME OFFSET SIZE math i += 1 math OFFSET = NEXT_OFFSET while NEXT_OFFSET != "" Thank you so much for this! I haven't had the free time to actually use it yet, but roocker666 seems to have gotten it working so I marked this as solved. I've never actually used model researcher before; do these models come out with the armature when exported? If not, that's fine. Edit: I have no idea how to use the script. I hate to be that guy but could someone point me where to start? All the tutorials I'm seeing are leaving me clueless as to how to find indicators of the models in the hex viewer too. I'm not new to hex, just new to it in this context. Edited September 5 by redgraves Link to comment Share on other sites More sharing options...
Sassarai Posted September 5 Share Posted September 5 (edited) You have to download quickbms tool from alluigi. Tem copy and paste , the script in a .txt file. Do two scripts, because have 2. And them use Quickbms. Choice script them file them folder. Thats it Edited September 5 by Sassarai Link to comment Share on other sites More sharing options...
redgraves Posted September 5 Author Share Posted September 5 10 hours ago, Sassarai said: You have to download quickbms tool from alluigi. Tem copy and paste , the script in a .txt file. Do two scripts, because have 2. And them use Quickbms. Choice script them file them folder. Thats it Ohh these are QuickBMS scripts, not something for Model Researcher! The posts weren't the most specific so I wasn't sure. Thanks. ❤️ Link to comment Share on other sites More sharing options...
redgraves Posted September 5 Author Share Posted September 5 Scripts work good; how does one open the files though? they don't have a file extension. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now