Post by kion on Jun 29, 2019 10:44:02 GMT -5
While I'm still working through how Megaman Legends 1 manages terrain, I think I'm far enough along to where I can start poking at MAoTB to see what how the files are defined. And on first inspection I am somewhat encouraged. The main change seems to be with how the archive .BIN format is packed. But otherwise the structure seems to borrow a lot from MML1, and if we're lucky the file formats used should be either the same as MML1, or maybe potentially similar to MML2 if they were working on that game in parallel. So first observation is the layout of the files on the disk. We have
- DAT
- KAIWA (dialog)
- STR
- TRON.EXE
- XA
Since we don't care about the other formats, it looks like we can jump right into DAT. As for the files in DAT, it looks like they did a pretty good job at the naming conventions to keep similar types of data listed together all together we have:
Block 1 - Demo Block
CLEAR.BIN
DEMO01A.BIN
DEMO01B.BIN
GAMEOVER.BIN
GEZ_BGM1.BIN
GEZ_BGM2.BIN
GEZ_BGM3.BIN
GEZ_COM.BIN
INIT_DAT.BIN
M1MAP.BIN
M1_MDL00.BIN
M1_MDL01.BIN
M1_MDL02.BIN
M1_MDL03.BIN
M1_MDL04.BIN
PDA_A.BIN
PDA_B.BIN
Block 2 - Player Block
PL000000.BIN
PL000001.BIN
PL000100.BIN
PL000200.BIN
PL000300.BIN
PL000400.BIN
PL000500.BIN
PL000600.BIN
PL050000.BIN
PL050001.BIN
PL050100.BIN
PL050200.BIN
PL050300.BIN
PL050400.BIN
PL050500.BIN
PL050600.BIN
PL060000.BIN
PL060001.BIN
PL060100.BIN
PL060200.BIN
PL060300.BIN
PL060400.BIN
PL060500.BIN
PL060600.BIN
Block 3 - Stage Block
SEL_MISS.BIN
ST00.BIN
ST00_01.BIN
ST00_02.BIN
ST08.BIN
ST080001.BIN
ST080002.BIN
ST080003.BIN
ST09.BIN
ST090001.BIN
ST090002.BIN
ST09_00.BIN
ST09_01.BIN
ST09_02.BIN
ST09_03.BIN
ST0A.BIN
ST0A0001.BIN
ST0A_01.BIN
ST0A_02.BIN
ST10.BIN
ST10_01.BIN
ST10_02.BIN
ST10_03.BIN
ST10_04.BIN
ST11.BIN
ST11_01.BIN
ST11_02.BIN
ST12.BIN
ST12_01.BIN
ST12_02.BIN
ST18.BIN
ST18MSG0.BIN
ST18MSG1.BIN
ST18MSG2.BIN
ST18_01.BIN
ST18_02.BIN
ST19.BIN
ST19MSG0.BIN
ST19MSG1.BIN
ST19MSG2.BIN
ST19MSG3.BIN
ST19_01.BIN
ST1A.BIN
ST1AMSG0.BIN
ST1AMSG1.BIN
ST1AMSG2.BIN
ST1AMSG3.BIN
ST1A_01.BIN
ST20.BIN
ST200000.BIN
ST200001.BIN
ST21.BIN
ST21_01.BIN
ST21_02.BIN
ST22.BIN
ST28.BIN
ST280100.BIN
ST280101.BIN
ST280102.BIN
ST280103.BIN
ST280104.BIN
ST280105.BIN
ST28_00.BIN
ST28_01.BIN
ST28_02.BIN
ST30.BIN
ST30_01.BIN
ST30_02.BIN
ST31.BIN
ST31_01.BIN
ST31_02.BIN
ST32.BIN
ST32_01.BIN
ST32_02.BIN
ST38.BIN
ST380001.BIN
ST380002.BIN
ST380003.BIN
ST38_01.BIN
ST38_02.BIN
ST39.BIN
ST390001.BIN
ST390002.BIN
ST39_01.BIN
ST80A.BIN
ST80B.BIN
ST80C.BIN
ST80D.BIN
ST80E.BIN
ST80F.BIN
ST80_00.BIN
ST81A.BIN
ST81B.BIN
ST81_00.BIN
ST82A.BIN
ST82_00.BIN
ST82_01.BIN
ST83A.BIN
ST83_00.BIN
ST84A.BIN
ST84B.BIN
ST84C.BIN
ST84D.BIN
ST84_00.BIN
ST84_01.BIN
ST84_02.BIN
ST84_03.BIN
ST85A.BIN
ST85_00.BIN
ST85_01.BIN
ST85_02.BIN
ST86A.BIN
ST86AB.BIN
ST86_00.BIN
ST86_01.BIN
ST86_02.BIN
ST86_03.BIN
ST87A.BIN
ST87_00.BIN
ST87_01.BIN
ST88A.BIN
ST88_00.BIN
ST88_01.BIN
ST88_02.BIN
ST89AA.BIN
ST89AB.BIN
ST89B.BIN
ST89C.BIN
ST89D.BIN
ST89E.BIN
ST89F.BIN
ST89G.BIN
ST8AA.BIN
ST8A_00.BIN
ST8BA.BIN
ST8BA_00.BIN
ST8BA_01.BIN
ST8BA_02.BIN
ST8BB.BIN
ST8B_00.BIN
ST8CA.BIN
ST8CB.BIN
ST8C_00.BIN
ST8C_01.BIN
ST8C_02.BIN
ST8C_03.BIN
ST8C_04.BIN
ST8DA.BIN
ST8DB.BIN
ST8D_00.BIN
ST8D_01.BIN
ST8EA.BIN
ST8E_00.BIN
ST8FA.BIN
ST90A.BIN
ST90B.BIN
ST90B2.BIN
ST90C.BIN
ST90D.BIN
ST90E.BIN
ST90F.BIN
ST90G.BIN
ST90H.BIN
ST90I.BIN
ST90J.BIN
STAFF.BIN
Block 4 - Menu Block
SUBSCRN0.BIN
SUBSCRN1.BIN
SUBSCRN2.BIN
SUBSCRN3.BIN
SUBSCRN4.BIN
SUBSCRNR.BIN
TITLE.BIN
T_FONT.BIN
So I've loosely grouped the files into blocks. At the top of the list we have the demo block which includes:
Block 1 - Demo Block
DEMO01B.BIN
GAMEOVER.BIN
GEZ_BGM2.BIN
GEZ_BGM3.BIN
GEZ_COM.BIN
INIT_DAT.BIN
M1MAP.BIN
M1_MDL00.BIN
M1_MDL01.BIN
M1_MDL02.BIN
M1_MDL03.BIN
M1_MDL04.BIN
PDA_A.BIN
PDA_B.BIN
So I've crossed out some of the files that I'm not that interested in. Gameover is probably going to hold the TIM for the gameover screen, the map files are probably going to have a 256 TIM for the map. INIT_DAT.BIN in MML1 is used to init the player character and has a few assets for the menu screen. And then it looks like we have the MDT tile data files for the different maps. And PDA_A is something new, so we can't decide if that's useful or not yet.
Block 2 - Player Block
PL000000.BIN
PL000001.BIN
PL000100.BIN
PL000200.BIN
For the player block it looks like a list of PBD files. The Megaman player model character in MML1 was a group of meshes that were defined individually. So that could be the case here.
Block 3 - Stage Block
SEL_MISS.BIN
ST00.BIN
ST00_01.BIN
ST00_02.BIN
ST08.BIN
ST080001.BIN
ST080002.BIN
ST080003.BIN
ST09.BIN
I'm going to guess SEL_MISS.BIN is the select mission screen. Probably a bunch of TIM files thrown in there or something. Otherwise for the stages it looks like they follow a similar file layout to MML1, so maybe the stage tiles will be in the ST00.BIN files while the EBD entity files are stored in ST00_01.BIN
b]Block 4 - Menu Block[/b]
SUBSCRN0.BIN
SUBSCRN1.BIN
SUBSCRN2.BIN
SUBSCRN3.BIN
SUBSCRN4.BIN
SUBSCRNR.BIN
TITLE.BIN
T_FONT.BIN
And lastly we have a bunch of sub-screen archives and the title bin, so probably more TIM files here as well. So the next step is to start poking at the archives. I don't know how luck I can get with the game actually having TIM files packed with the models that use them. So I'm tempted to jump right into the save state and start matching files to their offsets, but we might look at the archive format and see if there's anything that sticks out in there.