1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-05 15:34:41 +00:00

[Audio 7/?] Extract sequences to assembly (#2119)

* [Audio 7/?] Extract sequences to assembly

Co-authored-by: MNGoldenEagle <17274702+MNGoldenEagle@users.noreply.github.com>
Co-authored-by: zelda2774 <69368340+zelda2774@users.noreply.github.com>

* Suggested changes, some extra sequence disassembler cleanup

* Remove unused multiprocessing import and regen assets/xml/audio/sequences

---------

Co-authored-by: MNGoldenEagle <17274702+MNGoldenEagle@users.noreply.github.com>
Co-authored-by: zelda2774 <69368340+zelda2774@users.noreply.github.com>
This commit is contained in:
Tharo 2024-09-04 18:55:04 +01:00 committed by GitHub
parent fab309ae08
commit f1911cd937
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
112 changed files with 1676 additions and 8 deletions

View file

@ -9,7 +9,8 @@ import argparse
import version_config
from audio.extraction.audio_extract import extract_audio_for_version, GameVersionInfo, MMLVersion
from audio.extraction.audio_extract import extract_audio_for_version, GameVersionInfo
from audio.extraction.disassemble_sequence import MMLVersion, SequenceTableSpec, SqSection
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="baserom audio asset extractor")
@ -153,6 +154,36 @@ if __name__ == '__main__':
# Some audiotable banks have a buffer clearing bug. Indicate which banks suffer from this.
audiotable_buffer_bugs = (0,)
# Tables have no clear start and end in a sequence. Mark the locations of all tables that appear in sequences.
seq_disas_tables = {
# sequence number : (spec, ...)
0 : (
SequenceTableSpec(0x00E1, 128, 0, SqSection.CHAN),
SequenceTableSpec(0x0EE3, 80, 0, SqSection.CHAN),
SequenceTableSpec(0x16D5, 248, 0, SqSection.CHAN),
SequenceTableSpec(0x315E, 499, 0, SqSection.CHAN),
SequenceTableSpec(0x5729, 72, 0, SqSection.CHAN),
SequenceTableSpec(0x5EE5, 8, 0, SqSection.CHAN),
SequenceTableSpec(0x5FF2, 128, 0, SqSection.CHAN),
),
1 : (
SequenceTableSpec(0x0192, 20, 0, SqSection.LAYER),
SequenceTableSpec(0x01BA, 20, 0, SqSection.LAYER),
SequenceTableSpec(0x01E2, 20, 0, SqSection.LAYER),
SequenceTableSpec(0x020A, 20, 0, SqSection.LAYER),
SequenceTableSpec(0x0232, 20, 1, SqSection.LAYER),
SequenceTableSpec(0x025A, 20, 1, SqSection.LAYER),
SequenceTableSpec(0x0282, 20, 1, SqSection.LAYER),
),
2 : (
SequenceTableSpec(0x00BC, 2, 0, SqSection.SEQ),
SequenceTableSpec(0x00C0, 2, 0, SqSection.ARRAY),
),
109 : (
SequenceTableSpec(0x0646, 16, 0, SqSection.CHAN),
),
}
version_info = GameVersionInfo(MMLVersion.OOT,
soundfont_table_code_offset,
seq_font_table_code_offset,
@ -161,6 +192,7 @@ if __name__ == '__main__':
seq_enum_names,
handwritten_sequences,
fake_banks,
audiotable_buffer_bugs)
audiotable_buffer_bugs,
seq_disas_tables)
extract_audio_for_version(version_info, args.extracted_dir, args.read_xml, args.write_xml)