91
Mod Releases / Re: New Moves For Jimmy
« Last post by faithfulvibesyt on February 01, 2024, 05:14:52 PM »when i installed the mod my game started crashing everytime i tried playing it (its a good mod tho)
News: Welcome back to Bullworth! If you haven't already, you will need to reset your password..
// Bully Scholarship Edition PS2 ss2 extrctor
// Extract ss2 file or files from bin using this script
// use quickbms PS2bin2ss2.bms <<Dir>>.bin to extract ss2 files
open FDDE bin 0
open FDDE lst 1
get Dir BASENAME
idstring "Hash"
get FILES long
log MEMORY_FILE 0 0
log MEMORY_FILE2 0 0
for i = 0 < FILES
//file data
get FILEHASH long
get OFFSET long
get DataSIZE long
//read filename from lst file
get NAME line 1
string NAME - 4
string NAME P "%DIR%/%NAME%.ss2"
//rstm header
log MEMORY_FILE OFFSET 0x800
math OFFSET + 0x800
math DATASIZE - 0x800
//PS ADPCM data
log MEMORY_FILE2 OFFSET DataSIZE
//audio settings from header
set Format long 0x10 // 0x01 PCM 0x10 4bit PS ADPCM (OKI ADPCM?)
set BitsPerSample long 16
GetVarChr SampleRate MEMORY_FILE 0x08 long
GetVarChr nChannels MEMORY_FILE 0xC long
//create ss2 header instead of rstm for MFAudio
set MEMORY_FILE binary "\x53\x53\x68\x64\x18\x00\x00\x00\x10\x00\x00\x00\x22\x56\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x53\x53\x62\x64\xC0\xB9\x17\x00"
putvarchr MEMORY_FILE 0x08 Format long
putvarchr MEMORY_FILE 0x0C SampleRate long
putvarchr MEMORY_FILE 0x10 nChannels long
putvarchr MEMORY_FILE 0x14 BitsPerSample long
putvarchr MEMORY_FILE 0x24 DataSIZE long
append
log MEMORY_FILE 0 DATASIZE MEMORY_FILE2
append
get DATASIZE asize MEMORY_FILE
log NAME 0 DATASIZE MEMORY_FILE
next i
MFAudio.exe /II10 /OTWAVU "Speech\Algie_CHATTER_v2.ss2" "Speech\Algie_CHATTER_v2.wav"
MFAudio.exe /OTRAWC "Speech\Algie_CHATTER_v2.wav" "import\Algie_CHATTER_v2.dat
As a result we got our moded wavs PSADPCM encoded in import\ folder ready to be imported in .binquickbms -r -w PS2bin2dat.bms Speech.bin
// Bully Scholarship Edition PS2 sound dat extractor
// Extract dat file or files from bin using this script
// use quickbms PS2bin2dat.bms <<Dir>>.bin to extract dat files
// Mainly used for importing sound back to .bin
// Usage: quickbms -r -w PS2bin2dat.bms <<Dir>>.bin
open FDDE bin 0
open FDDE lst 1
get Dir BASENAME
idstring "Hash"
get FILES long
for i = 0 < FILES
//file data
get FILEHASH long
get OFFSET long
get DataSIZE long
math OFFSET + 0x800
math DataSIZE - 0x7E0 // 0x800 - 0x20 fix for MFAudio raw import (+0x20 footer)
//read filename from lst file
get NAME line 1
string NAME - 4
string NAME P "import/%NAME%.dat"
log NAME OFFSET DataSIZE
next i
to import back sound dat file(s) from import folder to .bin (Speech.bin in example above)// Bully Scholarship Edition PC wav extrctor
// Extract wav file or files from bin using this script
// use quickbms bin2wav.bms <<Dir>>.bin to extract wav files
// Edit wav. Keep same duration or shorter. Save as wav s16 pcm (Speech - mono, Cuts - stereo)
get Dir BASENAME
idstring "Hash"
get FILES long
// extract one file by name
//comment this block if you need all files
/* set Query string "3-R05A"
Findloc OFFSET string Query
goto OFFSET */
//------------------------------
for i = 0 < FILES
//move
Findloc OFFSET string "WBND"
set DataOFFSET long OFFSET
math OFFSET + 0x2c
goto OFFSET
//read info from header
get BankOFFSET long //0x800
get DataSIZE long
get Unk1 long //flags?
get WaveCount long
get FNAME string
math OFFSET + 0x6c
goto OFFSET
get AudioFormat long // binary32: BitsPerSample(1) BlockAlign(8) SampleRate(18) Channels(3) FormatTag(2)
// 0001 1000 0000 1010 1100 0100 0110 1010
// ||>>>>>>>> |>>>>>>>>>>>>>>>>>>>>>|>>>|format
// B|Align |SampleRate |channels
// format: 0-PCM; 1-XMA; 2-ADPCM; 3-WMA
//xmath Format "AudioFormat & 3" // 11 mask (2)
xmath numChannels "AudioFormat >> 2 & 7" // 111 mask (3)
xmath SampleRate "AudioFormat >> 5 & 262143" // 11 1111 1111 1111 1111 mask (18)
//xmath blockAlign "AudioFormat >> 23 & 255" // 1111 1111 mask (8)
xmath BitsPerSample "AudioFormat >> 31 & 1" // 1 mask (1)
xmath BitsPerSample "8 * BitsPerSample + 8" // BitsPerSample(PCM only): 0-8bit; 1-16bit
//print "AudioFormat=%AudioFormat|hex% %FNAME%\nnumChannels=%numChannels% SampleRate=%SampleRate% blockAlign=%blockAlign% BitsPerSample=%BitsPerSample%"
if WaveCount > 1
print "Multiwave Bank %FNAME%"
Break
endif
math DataOFFSET += BankOFFSET //+0x800
//write to wav file
callfunction WavHeader
// extract one file by name
if FNAME = Query
Break
endif
next i
startfunction WavHeader
log MEMORY_FILE1 0 0
log MEMORY_FILE2 0 0
//create wav header in memory
set MEMORY_FILE2 binary "\x52\x49\x46\x46\x72\x21\x1E\x00\x57\x41\x56\x45\x66\x6D\x74\x20\x32\x00\x00\x00\x02\x00\x02\x00\x22\x56\x00\x00\x10\x5E\x00\x00\x8C\x00\x04\x00\x20\x00\x80\x00\x07\x00\x00\x01\x00\x00\x00\x02\x00\xFF\x00\x00\x00\x00\xC0\x00\x40\x00\xF0\x00\x00\x00\xCC\x01\x30\xFF\x88\x01\x18\xFF\x64\x61\x74\x61\x20\x21\x1E\x00"
//audio settings
if numChannels = 2
set blockAlign short 140 //blockAlign 70(mono) or 140(stereo)
else
set blockAlign short 70
endif
//write settings to header
xmath WAVESIZE "DataSIZE + 0x46"
putvarchr MEMORY_FILE2 0x04 WAVESIZE long
putvarchr MEMORY_FILE2 0x16 numChannels short // mono-stereo
putvarchr MEMORY_FILE2 0x18 SampleRate long
xmath BYTERATE "(SampleRate * BitsPerSample * numChannels) / 8"
putvarchr MEMORY_FILE2 0x1c BYTERATE long // (Sample Rate * BitsPerSample * Channels)/8
putvarchr MEMORY_FILE2 0x20 blockAlign short
putvarchr MEMORY_FILE2 0x4a DataSIZE long
//append audio data
log MEMORY_FILE1 DataOFFSET DataSIZE
append
log MEMORY_FILE2 0 DataSIZE MEMORY_FILE1
append
//write to wav file
get MF2Size asize MEMORY_FILE2
string WavName P "%Dir%/%FName%.wav"
log WAVName 0 MF2Size MEMORY_FILE2
endfunction
AdpcmEncode.exe Speech\Algie_CHATTER_v2.wav import\Algie_CHATTER_v2.wav
Speech\Algie_CHATTER_v2.wav is s16 pcm wav// MSADPCM wav header cutter quickbms script
idstring "RIFF"
goto 0x14
get FORMAT short
if FORMAT != 2
print "not a Microsoft ADPCM"
print "REMOVE ALL UNMODIFIED WAVS BEFORE IMPORT. IMPORTED WAVS MUST BE S16 PCM"
exit
endif
get FNAME BASENAME
string FName P "import/%FName%.dat"
Findloc DataOFFSET string "data"
goto DataOFFSET
get data long
get DataSIZE long
SavePos DataOFFSET
math DataSIZE - 0x80 //cut tail just in case
log FNAME DataOFFSET DataSIZE
sound dat is ready to be imported in .binquickbms -r -w bin2dat.bms Cuts.bin
// Bully Scholarship Edition PC audio dat extrctor (wav without header)
// Extract dat file or files from bin using this script
// use quickbms bin2dat.bms <<Dir>>.bin to extract dat files
// use quickbms -r -w bin2dat.bms <<Dir>>.bin to import dat files from "import" folder back to bin
get Dir BASENAME
idstring "Hash"
get FILES long
// extract one file by name. works on import too
//comment this block if you need all files
/* set Query string "1-04"
Findloc OFFSET string Query
goto OFFSET */
//------------------------------
for i = 0 < FILES
//move
Findloc OFFSET string "WBND"
set DataOFFSET long OFFSET
math OFFSET + 0x2c
goto OFFSET
//read info from header
get BankOFFSET long //0x800
get DataSIZE long
get Unk1 long //flags?
get WaveCount long
get FNAME string
if WaveCount > 1
print "Multiwave Bank %FNAME%"
Break
endif
math DataOFFSET += BankOFFSET //+0x800
string Name P "import/%FName%.dat"
//write to dat file
log Name DataOFFSET DataSIZE
// extract one file by name
if FNAME = Query
Break
endif
next i
to import back sound dat file(s) from import folder to .bin (Cuts.bin in example above)