Difference between revisions of "Namco Museum Megamix"
(→File Formats) |
(→File Formats) |
||
Line 1: | Line 1: | ||
= File Formats = | = File Formats = | ||
− | + | .lzs: A compressed format using the lzss0 algorithm<br> | |
− | + | [https://github.com/gameCrackTools/quickBMS/blob/master/src/included/lzss.c A LZSS implementation in C]<br><br> | |
− | + | .arc: An uncompressed container format utilizing a table of offsets to file entries<br> | |
− | + | (Different from the Wii U8 .arc archive) | |
=== .lzs (compressed) === | === .lzs (compressed) === | ||
Line 11: | Line 11: | ||
A C-struct implementation | A C-struct implementation | ||
− | + | ''typedef struct arc_header { | |
− | struct | + | char magic[4]; // = "VCRA" |
− | + | int file_count; // how many stored files in archive | |
+ | int size; // size of the whole file | ||
+ | int zero; // = 0 | ||
+ | int unknown; // = "\x05\x02\x07\x20", 0x20070205 | ||
+ | char padding[44]; // 44 zeroes | ||
+ | } arc_header_t; | ||
+ | |||
+ | typedef struct arc_table { | ||
+ | int offset; // offset to file data | ||
+ | int size; // size of file data | ||
+ | char name[56]; // filename | ||
+ | } arc_table_t; | ||
+ | |||
+ | typedef struct arc_file { | ||
+ | arc_header_t header; | ||
+ | arc_table_t tables[header.file_count]; | ||
+ | char *data[header.file_count]; // raw file streams | ||
+ | } arc_file_t;'' | ||
=== Disc Structure === | === Disc Structure === |
Revision as of 20:28, 27 July 2023
File Formats
.lzs: A compressed format using the lzss0 algorithm
A LZSS implementation in C
.arc: An uncompressed container format utilizing a table of offsets to file entries
(Different from the Wii U8 .arc archive)
.lzs (compressed)
w.i.p.
.arc (container)
A C-struct implementation
typedef struct arc_header {
char magic[4]; // = "VCRA" int file_count; // how many stored files in archive int size; // size of the whole file int zero; // = 0 int unknown; // = "\x05\x02\x07\x20", 0x20070205 char padding[44]; // 44 zeroes
} arc_header_t;
typedef struct arc_table {
int offset; // offset to file data int size; // size of file data char name[56]; // filename
} arc_table_t;
typedef struct arc_file {
arc_header_t header; arc_table_t tables[header.file_count]; char *data[header.file_count]; // raw file streams
} arc_file_t;
Disc Structure
.
├── museum
│ ├── en
│ │ ├── boot.lzs
│ │ ├── g00_dummy
│ │ │ └── g00resident.lzs
│ │ ├── g01_galaga
│ │ │ ├── g01menu.lzs
│ │ │ ├── g01resident.lzs
│ │ │ ├── g01stage01.lzs
│ │ │ ├── g01stage02.lzs
│ │ │ ├── g01stage03.lzs
│ │ │ ├── g01stage04.lzs
│ │ │ ├── g01stage05.lzs
│ │ │ ├── g01stage06.lzs
│ │ │ ├── g01stage07.lzs
│ │ │ ├── g01stage08.lzs
│ │ │ ├── g01stage09.lzs
│ │ │ ├── g01stage10.lzs
│ │ │ ├── g01stagexx.lzs
│ │ │ ├── g01world01.lzs
│ │ │ ├── g01world02.lzs
│ │ │ └── g01world03.lzs
│ │ ├── g02_rallyx
│ │ │ ├── g02game.lzs
│ │ │ ├── g02menu.lzs
│ │ │ ├── g02resident.lzs
│ │ │ ├── g02w01s01.lzs
│ │ │ ├── g02w01s02.lzs
│ │ │ ├── g02w01s03.lzs
│ │ │ ├── g02w01s04.lzs
│ │ │ ├── g02w01s05.lzs
│ │ │ ├── g02w01s06.lzs
│ │ │ ├── g02w02s01.lzs
│ │ │ ├── g02w02s02.lzs
│ │ │ ├── g02w02s03.lzs
│ │ │ ├── g02w02s04.lzs
│ │ │ ├── g02w02s05.lzs
│ │ │ ├── g02w02s06.lzs
│ │ │ ├── g02w03s01.lzs
│ │ │ ├── g02w03s02.lzs
│ │ │ ├── g02w03s03.lzs
│ │ │ ├── g02w03s04.lzs
│ │ │ ├── g02w03s05.lzs
│ │ │ ├── g02w03s06.lzs
│ │ │ ├── g02w04s01.lzs
│ │ │ ├── g02w04s02.lzs
│ │ │ ├── g02w04s03.lzs
│ │ │ ├── g02w04s04.lzs
│ │ │ ├── g02w04s05.lzs
│ │ │ ├── g02w04s06.lzs
│ │ │ ├── g02w11s01.lzs
│ │ │ ├── g02w11s02.lzs
│ │ │ ├── g02w11s03.lzs
│ │ │ ├── g02w11s04.lzs
│ │ │ ├── g02w11sxx.lzs
│ │ │ └── g02wxxsxx.lzs
│ │ ├── g03_pacnroll
│ │ │ ├── g03menu.lzs
│ │ │ ├── g03resident.lzs
│ │ │ ├── g03w01s01.lzs
│ │ │ ├── g03w01s02.lzs
│ │ │ ├── g03w01s03.lzs
│ │ │ ├── g03w01s04.lzs
│ │ │ ├── g03w01s05.lzs
│ │ │ ├── g03w02s01.lzs
│ │ │ ├── g03w02s02.lzs
│ │ │ ├── g03w02s03.lzs
│ │ │ ├── g03w02s04.lzs
│ │ │ ├── g03w03s01.lzs
│ │ │ ├── g03w03s02.lzs
│ │ │ ├── g03w03s03.lzs
│ │ │ ├── g03w03s04.lzs
│ │ │ ├── g03w03s05.lzs
│ │ │ ├── g03w04s01.lzs
│ │ │ ├── g03w04s02.lzs
│ │ │ ├── g03w04s03.lzs
│ │ │ ├── g03w04s04.lzs
│ │ │ ├── g03w04s05.lzs
│ │ │ ├── g03w04s06.lzs
│ │ │ ├── g03w05s01.lzs
│ │ │ ├── g03w05s02.lzs
│ │ │ ├── g03w05s03.lzs
│ │ │ ├── g03w05s04.lzs
│ │ │ ├── g03w05s05.lzs
│ │ │ ├── g03w05s06.lzs
│ │ │ ├── g03wXXs01.lzs
│ │ │ ├── g03wXXs02.lzs
│ │ │ ├── g03wXXs03.lzs
│ │ │ └── g03wXXs04.lzs
│ │ ├── g04_waniwani
│ │ │ ├── g04resident2.lzs
│ │ │ ├── g04resident3.lzs
│ │ │ └── g04resident.lzs
│ │ ├── g07_motos
│ │ │ ├── g07enemy.lzs
│ │ │ ├── g07menu.lzs
│ │ │ ├── g07resident.lzs
│ │ │ ├── g07vs01.lzs
│ │ │ ├── g07vs02.lzs
│ │ │ ├── g07vs03.lzs
│ │ │ ├── g07vs04.lzs
│ │ │ ├── g07vs05.lzs
│ │ │ ├── g07vs06.lzs
│ │ │ ├── g07vs07.lzs
│ │ │ ├── g07vs08.lzs
│ │ │ ├── g07vs09.lzs
│ │ │ ├── g07vs10.lzs
│ │ │ ├── g07w01s01.lzs
│ │ │ ├── g07w01s02.lzs
│ │ │ ├── g07w01s03.lzs
│ │ │ ├── g07w01s04.lzs
│ │ │ ├── g07w01s05.lzs
│ │ │ ├── g07w01s06.lzs
│ │ │ ├── g07w01s07.lzs
│ │ │ ├── g07w02s01.lzs
│ │ │ ├── g07w02s02.lzs
│ │ │ ├── g07w02s03.lzs
│ │ │ ├── g07w02s04.lzs
│ │ │ ├── g07w02s05.lzs
│ │ │ ├── g07w02s06.lzs
│ │ │ ├── g07w02s07.lzs
│ │ │ ├── g07w03s01.lzs
│ │ │ ├── g07w03s02.lzs
│ │ │ ├── g07w03s03.lzs
│ │ │ ├── g07w03s04.lzs
│ │ │ ├── g07w03s05.lzs
│ │ │ ├── g07w03s06.lzs
│ │ │ ├── g07w03s07.lzs
│ │ │ ├── g07w04s01.lzs
│ │ │ ├── g07w04s02.lzs
│ │ │ ├── g07w04s03.lzs
│ │ │ ├── g07w04s04.lzs
│ │ │ ├── g07w04s05.lzs
│ │ │ ├── g07w04s06.lzs
│ │ │ ├── g07w04s07.lzs
│ │ │ ├── g07w05s01.lzs
│ │ │ ├── g07w05s02.lzs
│ │ │ ├── g07w05s03.lzs
│ │ │ ├── g07w05s04.lzs
│ │ │ ├── g07w05s05.lzs
│ │ │ ├── g07w05s06.lzs
│ │ │ ├── g07w05s07.lzs
│ │ │ └── g07wxxsxx.lzs
│ │ ├── g10_menu
│ │ │ ├── attract.thp
│ │ │ ├── g10menu.lzs
│ │ │ ├── g10resident.lzs
│ │ │ └── g10title.lzs
│ │ ├── rso_original
│ │ │ ├── nmwii.rso
│ │ │ └── nmwii.sel
│ │ ├── sound
│ │ │ ├── stream
│ │ │ │ ├── DAMMY.brstm
│ │ │ │ ├── m00bgm_Menu.brstm
│ │ │ │ ├── m00bgm_Title.brstm
│ │ │ │ ├── m01bgm_Boss1.brstm
│ │ │ │ ├── m01bgm_Select.brstm
│ │ │ │ ├── m01bgm_World1.brstm
│ │ │ │ ├── m01bgm_World2.brstm
│ │ │ │ ├── m01bgm_World3.brstm
│ │ │ │ ├── m02bgm_redcar.brstm
│ │ │ │ ├── m02bgm_select.brstm
│ │ │ │ ├── m02bgm_World1.brstm
│ │ │ │ ├── m02bgm_world2.brstm
│ │ │ │ ├── m02bgm_world3.brstm
│ │ │ │ ├── m02bgm_world4.brstm
│ │ │ │ ├── m03bgm_Boss1.brstm
│ │ │ │ ├── m03bgm_Boss2.brstm
│ │ │ │ ├── m03bgm_Ending.brstm
│ │ │ │ ├── m03bgm_Goal.brstm
│ │ │ │ ├── m03bgm_select.brstm
│ │ │ │ ├── m03bgm_World1.brstm
│ │ │ │ ├── m03bgm_World2.brstm
│ │ │ │ ├── m03bgm_World3_2.brstm
│ │ │ │ ├── m03bgm_World3.brstm
│ │ │ │ ├── m03bgm_World4.brstm
│ │ │ │ ├── m03bgm_world5.brstm
│ │ │ │ ├── m04bgm_Game1.brstm
│ │ │ │ ├── m04bgm_Game2.brstm
│ │ │ │ ├── m04bgm_Select.brstm
│ │ │ │ ├── m07bgm_Boss1.brstm
│ │ │ │ ├── m07bgm_Boss2.brstm
│ │ │ │ ├── m07bgm_Select.brstm
│ │ │ │ ├── m07bgm_World1.brstm
│ │ │ │ ├── m07bgm_World2.brstm
│ │ │ │ └── m07bgm_World5.brstm
│ │ │ └── Wii_Wander.brsar
│ │ └── staffroll.lzs
│ ├── resident.arc
│ └── resource.lzs
└── opening.bnr