Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Beenox - Streams.dat
- math wii = 0 # set this to 1 for the Wii version of ANY beenox game
- get streams_dat_sign long
- if streams_dat_sign == 0xbadf1ea5
- endian little
- elif streams_dat_sign == 0xa51edfba
- endian big
- endif
- get streams_dat_mode long
- get streams_dat_sound_entries long
- get streams_dat_language_entries long
- for i1 = 0 < streams_dat_language_entries
- get language_number long
- next i1
- if streams_dat_mode == 2
- xmath streams_dat_additional_pos_01 "(streams_dat_sound_entries * 4) + (streams_dat_language_entries * 4) + 0x10"
- endif
- get is_new_version_01 long
- get is_new_version_02 long
- if is_new_version_01 != 0xc0c0c0c0
- if is_new_version_02 != 0xc0c0c0c0
- goto -8 0 SEEK_CUR
- endif
- endif
- if streams_dat_mode == 0xb
- get entries_01 long
- get entries_02 long
- get entries_03 long
- for i1 = 0 < entries_01
- get entries_02_01 long
- get entries_02_02 long
- get entries_02_03 long
- get entries_02_04 long
- get entries_02_05 long
- next i1
- endif
- for i2 = 0 < streams_dat_language_entries
- for j1 = 0 < streams_dat_sound_entries
- if streams_dat_mode == 2
- get sound_entry_number long
- savepos streams_dat_tmp_01
- goto streams_dat_additional_pos_01
- get sound_entry_info_offset long
- goto sound_entry_info_offset
- get codec short
- get channels short
- get sample_rate_frequency long
- get average_bytes_per_second long
- get bits_per_sample short
- get block_size short
- get streams_dat_entry_06 long
- get raw_pcm_size long
- goto streams_dat_tmp_01
- math streams_dat_additional_pos_01 + 4
- elif streams_dat_mode == 3
- if is_new_version_01 == 0xc0c0c0c0 && is_new_version_02 == 0xc0c0c0c0
- get pre_01 long
- get pre_02 short
- get pre_03 short
- get pre_04 long
- get pre_05 long
- endif
- get sound_entry_number long
- get sound_entry_offset long
- if sound_entry_number == 0xffffffff
- if sound_entry_offset == 0xffffffff
- for
- get dummy_data long
- if dummy_data != 0xbabebabe && dummy_data != 0xbebabeba
- goto -4 0 SEEK_CUR
- break
- endif
- next
- endif
- else
- get sound_entry_codec_type long
- xmath is_xma "sound_entry_codec_type & 0xff000000"
- xmath is_ima "sound_entry_codec_type & 0x0000ffff"
- if sound_entry_codec_type >= 0x00000001 && sound_entry_codec_type <= 0x00000006
- math channels == sound_entry_codec_type
- # no other way to guess it
- if wii = 0
- get aaaa_01 long
- get sample_rate_frequency long
- elif wii = 1
- for k = 0 < 3
- get aaaa_01 long
- next k
- get sample_rate_frequency long
- get aaaa_03 long
- get aaaa_04 long
- get aaaa_05 long
- get aaaa_06 long
- getdstring dsp_info 0xa8
- endif
- elif sound_entry_codec_type == 0x53325350
- get raw_vag_size long
- get streams_dat_entry_05 long # 0xeb3
- get channels short
- get sample_rate_frequency short
- get streams_dat_entry_07 long
- else
- if is_xma == 0x04000000
- xmath xma_entries "((sound_entry_codec_type & 0x00ff0000) >> 16) & 0xff"
- get streams_dat_entry_04 long
- get streams_dat_entry_05 long
- get sample_rate_frequency long
- get encoder_options short
- get streams_dat_entry_08 short
- get streams_dat_entry_09 long
- get streams_dat_entry_10 long
- get streams_dat_entry_11 long
- get streams_dat_entry_12 long
- get streams_dat_entry_13 long
- for k = 0 < xma_entries
- get streams_dat_entry_13 long
- xmath xma_channels_per_language_entry "((streams_dat_entry_13 & 0xff000000) >> 24) & 0xff"
- next k
- get raw_xma_size long
- endif
- if is_ima == 0x00000011
- xmath ima_channels "((sound_entry_codec_type & 0xffff0000) >> 16) & 0xffff"
- get sample_rate_frequency long
- get average_bytes_per_second long
- get channels short
- get bits_per_sample short
- get aaaa_03 long
- get raw_ima_size long
- get aaaa_05 short
- get aaaa_06 short
- endif
- endif
- endif
- elif streams_dat_mode = 0x0b
- get sound_01 long
- get sound_entry_offset long
- # (Spider-Man Shattered Dimensions)
- # apparently this Streams.dat file can reference sound offsets from beyond what said file itself can handle(???)
- get sound_03 long
- get sound_04 long
- get sound_05 long
- get sound_06 long
- get sound_07 long
- get sound_08 long
- get sound_09 long
- get sound_10 long
- get sound_11 long
- get sound_12 long
- get sound_13 long
- get sound_14 long
- get codec short
- get channels short
- get sample_rate_frequency long
- get average_bytes_per_second long
- get block_size short
- get bits_per_sample short
- get sound_19 long
- get sound_20 long
- get sound_21 long
- get sound_22 long
- get sound_23 long
- get sound_24 long
- get sound_25 long
- get sound_26 long
- get sound_27 long
- get sound_28 long
- get sound_29 long
- get sound_30 long
- endif
- next j1
- next i2
Add Comment
Please, Sign In to add comment