1
Ромхакинг и программирование / Re: Извлечение мультимедиа (звук, видео, музыка) данных из игр CD/DVD приставок
« : 02 Февраль 2025, 00:33:48 »беда в том что этих блоков не один не два а 1-1,5к в отдельном файле, они могут чередоваться с блоками видео и меняется их размер
скрипт написать для меня проблематично, по сути нужно найти все блоки и извлечь без заголовков в общий raw, мне даже тяжело найти что то похожее для переделки под свои нужды не говоря о том чтобы написать скрипт с нуля.
скрипт извлечения звука из видео vds
vds2adp.bms
Код: [Выделить]
# Xilam DERF extract audio from video
# script for QuickBMS http://quickbms.aluigi.org
idstring "DERF"
get FileSize asize
get DataSize long
get Chunks short
get Width short
get height short
getDString Unk 22
log MEMORY_FILE 0 0
putDString "DERF" 4 MEMORY_FILE
put 2 long MEMORY_FILE // Channels
put 0 long MEMORY_FILE // Size
log MEMORY_FILE2 0 0
putDString "DERF" 4 MEMORY_FILE2
put 1 long MEMORY_FILE2 // Channels
put 0 long MEMORY_FILE2 // Size
for
savepos ChunkOffset
if ChunkOffset >= FileSize
break
endif
getDString ChunkID 2
get Unk1 short
get ChunkSize long
goto ChunkOffset
getDString Chunk ChunkSize
math ChunkOffset + 16
math ChunkSize - 16
if ChunkID = "CS"
set Stereo 1
append
log MEMORY_FILE ChunkOffset ChunkSize
append
elif ChunkID = "CM"
set Mono 1
append
log MEMORY_FILE2 ChunkOffset ChunkSize
append
endif
next
if Stereo = 1
get MFSize asize MEMORY_FILE
xmath AudioDataSize "MFSize - 12"
PutVarChr MEMORY_FILE 8 AudioDataSize long
get Name basename
string Name + "_s.adp"
log Name 0 MFSize MEMORY_FILE
endif
if Mono = 1
get MFSize asize MEMORY_FILE2
xmath AudioDataSize "MFSize - 12"
PutVarChr MEMORY_FILE2 8 AudioDataSize long
get Name basename
string Name + "_m.adp"
log Name 0 MFSize MEMORY_FILE2
endif
конвертировать adp звук в wav может vgmstream