notes on remaining compat work for Heroes
This commit is contained in:
parent
7310755a79
commit
ab8f6a3056
|
@ -12,6 +12,15 @@ const SIZE_OF_ENTRY: u32 = 3 * size_of::<u32>() as u32;
|
||||||
const SIZE_OF_FILENAME: usize = 0x40;
|
const SIZE_OF_FILENAME: usize = 0x40;
|
||||||
const TYPICAL_STRING_TABLE_COUNT: usize = 0x100;
|
const TYPICAL_STRING_TABLE_COUNT: usize = 0x100;
|
||||||
|
|
||||||
|
// stats on version
|
||||||
|
// $ find . -name \*.one -exec bash -c "onear tf "{}" > "{}".txt" \;
|
||||||
|
// $ fd one.txt | xargs cat | grep '^HerOne{' | sort | uniq -c
|
||||||
|
// 3 HerOne{version: 0x1003ffff, ..}
|
||||||
|
// 725 HerOne{version: 0x1400ffff, ..}
|
||||||
|
|
||||||
|
// FIXME: coverOpen*_gc.one are missing the first entry (they start with the string table entry)
|
||||||
|
// solve this by factoring out a struct that's just { id, size, version } and Option<> it
|
||||||
|
|
||||||
#[derive(BinRead, BinWrite)]
|
#[derive(BinRead, BinWrite)]
|
||||||
#[br(little, assert(
|
#[br(little, assert(
|
||||||
entries.iter().enumerate().all(|(i, ent)| ent.id as usize == i + 2 && ent.version == version) &&
|
entries.iter().enumerate().all(|(i, ent)| ent.id as usize == i + 2 && ent.version == version) &&
|
||||||
|
@ -27,7 +36,7 @@ pub struct HerOne {
|
||||||
id_archive: u32,
|
id_archive: u32,
|
||||||
/// the size of the archive, not counting the "first entry" of these first three u32's
|
/// the size of the archive, not counting the "first entry" of these first three u32's
|
||||||
archive_size_minus_12: u32,
|
archive_size_minus_12: u32,
|
||||||
/// presumably the archiver version. known values: 0x1400ffff from GCN version
|
/// presumably the archiver version. known values: 0x1400ffff and 0x1003ffff from GCN version
|
||||||
version: u32,
|
version: u32,
|
||||||
#[br(assert(id_string_table == 1))]
|
#[br(assert(id_string_table == 1))]
|
||||||
/// 1. conceptually the ID of the (uncompressed) array of filenames, indexed by ID.
|
/// 1. conceptually the ID of the (uncompressed) array of filenames, indexed by ID.
|
||||||
|
|
Loading…
Reference in New Issue