Re: [Projekt] Extracting Ace Combat
Verfasst: 19.11.2016, 09:54
Wow, cool.
Die deutsche Spieleentwickler-Community (seit 1999).
https://zfx.info/
Da geht’s um die Positionierungszeit des CD-Lesekopfes. Die sich wiederholenden Modelle sind je 2–10 KiB groß, aber dafür sind nun alle Modelle eines Levels auf einem Haufen (im selben oder in benachbarten Sektoren).marcgfx hat geschrieben:ist noch interessant, ein paar modelle scheinen sich zu wiederholen. so sparsam waren sie wohl doch nicht :)
Code: Alles auswählen
struct Mesh_0003_Header {
UInt4B_LE unknown;
UInt4B_LE vertexOffsets[3];
UInt4B_LE zero;
UInt4B_LE offsetOfTriangles;
UInt4B_LE offsetOfQuads;
};
// 32-B wide triangle structure.
// • maps directly to bytes in a file
// • can be found in mission/0003.ulz files
// • Gouraud-shaded
struct Mesh_Triangle_32 {
UInt2B_LE unk[2];
UInt1B indices[3];
UInt1B zero;
UInt4B_LE colors[3];
UInt1B unk2[6];
UInt2B_LE unk3;
UInt1B unk4[2];
UInt2B_LE zero2;
};
// 36-B wide quad structure.
// • maps directly to bytes in a file
// • can be found in mission/0003.ulz files
// • Gouraud-shaded
struct Mesh_Quad_36 {
UInt2B_LE unk[2];
UInt1B indices[4];
UInt4B_LE colors[4];
UInt1B unk2[6];
UInt2B_LE unk3;
UInt1B unk4[4];
};
Damit kann jeder, der eine ISO der japanischen Originalversion hat, diese nun auch auf Englisch spielen, statt sich mit der stark zusammengekürzten Version abzumühen.
- English subtitles for all 52 missions from both discs;
- the subs from last year's Disc 1 patch have been revised;
- localization work by Guest Localizer Agness Kaku on M01;
- translations for Armory, Search and Archive menus.
Code: Alles auswählen
struct Header {
// Always “ULZ\x1A”.
UInt4B_LE id;
// • bits 0–23: extracted size
// • bits 24–31: compression type (“0” or “2”)
UInt4B_LE typeAndSize;
// • bits 0–23: offset of symbol table from beginning of archive
// • bits 24–31: log2 of sliding window
UInt4B_LE u_pos;
// Offset of lookups from beginning of archive.
UInt4B_LE c_pos;
UInt4B_LE flags[];
};
// Checks whether the given bytes mark the beginning of an ULZ stream.
// • pass at least 20 bytes
bool isULZ(Byte const * toData, USize const dataSize) {
return 20 < dataSize && *reinterpret_cast<UInt4B_LE const *>(toData) == bigEndian(0x556C7A1Au);
}
// Returns the size of the extracted data. ULZ supports file sizes up to 24 MiB.
USize extractedSizeOf(Header const & header) {
return littleEndian(header.typeAndSize) & 0xFFFFFF;
}
// Extracts the given ULZ to the given address.
// • returns “no” on failure
// • requires sufficient space – use “extractedSizeOf()”
bool extract(Byte * toOutput, Byte const * const toInput, USize const compressedSize) {
if(no == isULZ(toInput, compressedSize)) {
__debugbreak();
return no;
}
auto & header = *reinterpret_cast<Header const *>(toInput);
auto const type = littleEndian(header.typeAndSize) >> 24;
auto const offsetBits = littleEndian(header.u_pos) >> 24u;
auto const offsetMask = (1u << offsetBits) - 1;
{
// The sliding window cannot be larger than 2^15 B (because offset-length pairs are 16-bit integers):
if(offsetBits > 15) {
__debugbreak(); // TODO: error: bad window
return no;
}
// All tables must be located within the file.
// TODO
}
// There is one stream of new symbols:
auto toUncompressedData = toInput + (littleEndian(header.u_pos) & 0xFFFFFF);
// There is one stream of lookups (offset + length) into already-decompressed data:
auto toCompressedData = reinterpret_cast<UInt2B const *>(toInput + littleEndian(header.c_pos));
// There is one stream of 32-bit flags, where each bit determines whether the next symbol is known (offset + length):
auto toFlags = header.flags;
auto bytesLeft = extractedSizeOf(header);
if(0 == bytesLeft) {
return yes; // nothing to do (never happens with real files)
}
// Both type 0 and type 2 consume bits (starting at the most significant position), but type 1 skips every 32nd bit:
UInt4B flagMaskIfConsumed;
switch(type) {
case 0: flagMaskIfConsumed = 1; break;
case 2: flagMaskIfConsumed = 0; break;
default: __debugbreak(); return no; // TODO: error: bad type
}
UInt4B flags;
UInt4B flagMask = flagMaskIfConsumed; // force refill on first iteration
do {
if(flagMaskIfConsumed == flagMask) { // All flags consumed?
flags = littleEndian(*toFlags++);
flagMask = 0x80000000u;
}
if(flags & flagMask) {
// Copy an uncompressed byte:
*toOutput++ = *toUncompressedData++;
--bytesLeft;
} else {
// Duplicate “length” bytes starting backwards at “offset” in the result.
auto const offsetAndLength = UInt4B(littleEndian(*toCompressedData++));
auto const offset = offsetAndLength & offsetMask;
auto const length = 3 + (offsetAndLength >> offsetBits);
if(length > bytesLeft) {
__debugbreak(); // TODO: error: overrun
return no;
}
movsb(toOutput, toOutput - 1 - offset, length);
toOutput += length;
bytesLeft -= length;
}
flagMask >>= 1;
} while(bytesLeft);
return yes;
}
Code: Alles auswählen
.
├── [ 4096] BPB/
│ ├── [ 4096] 0005/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0006/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0007/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0008/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 245180] 0011.bin
│ │ ├── [ 76100] 0012.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0009/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 4828] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0010/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 788] 0013.bin
│ │ └── [ 22764] 0014.bin
│ ├── [ 4096] 0011/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 25168] 0012.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0012/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0013/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0014/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0015/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0016/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 18776] 0006.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0017/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 25232] 0012.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0018/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 16844] 0012.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0019/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0020/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 788] 0013.bin
│ │ └── [ 17580] 0014.bin
│ ├── [ 4096] 0021/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 2680] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0022/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0023/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0024/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 2684] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0025/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 6800] 0007.bin
│ │ ├── [ 788] 0013.bin
│ │ └── [ 22764] 0014.bin
│ ├── [ 4096] 0026/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 3784] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0027/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0028/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0029/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0030/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 4456] 0007.bin
│ │ ├── [ 572] 0010.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0031/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0032/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 18776] 0006.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0033/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0034/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0035/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0036/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0037/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0038/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 50524] 0012.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0039/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0040/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0041/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0042/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 4544] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0043/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0044/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0045/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0046/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0048/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0049/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 5680] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0050/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 4948] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0051/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0052/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 16876] 0012.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0053/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0054/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 1016] 0007.bin
│ ├── [ 4096] 0055/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0056/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0057/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0058/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 1664] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0059/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0060/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 297748] 0002.bin
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 2504] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0061/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 17184] 0006.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0062/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 980] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0063/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 3616] 0004.tim
│ │ ├── [ 952] 0007.bin
│ │ └── [ 788] 0013.bin
│ ├── [ 4096] 0064/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 18872] 0003.bin
│ │ └── [ 8360] 0012.bin
│ ├── [ 4096] 0065/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 18872] 0003.bin
│ │ ├── [ 1016] 0007.bin
│ │ └── [ 8360] 0012.bin
│ ├── [ 4096] 0071/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 33868] 0002.bin
│ ├── [ 4096] 0074/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 33868] 0002.bin
│ ├── [ 4096] 0075/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 33868] 0002.bin
│ ├── [ 4096] 0089/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 33868] 0002.bin
│ ├── [ 4096] 0094/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 33868] 0002.bin
│ ├── [ 4096] 0102/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 33868] 0002.bin
│ ├── [ 4096] 0112/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 329344] 0004.bin
│ │ └── [ 8100] 0007.bin
│ ├── [ 4096] 0113/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 8100] 0000.bin
│ │ └── [ 16048] 0003.bin
│ ├── [ 4096] 0114/
│ │ └── [ 4096] 0004/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 15940] 0001.tim
│ ├── [ 4096] 0116/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] 0006/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 11208] 0001.bin
│ ├── [ 4096] 0118/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] 0007/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 15772] 0000.bin
│ ├── [ 4096] 0119/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 10920] 0001.bin
│ ├── [ 4096] 0121/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 5248] 0000.tim
│ │ ├── [ 5248] 0001.tim
│ │ ├── [ 5248] 0002.tim
│ │ ├── [ 5248] 0003.tim
│ │ ├── [ 5248] 0004.tim
│ │ ├── [ 5248] 0008.tim
│ │ ├── [ 5248] 0009.tim
│ │ ├── [ 5248] 0011.tim
│ │ ├── [ 5248] 0013.tim
│ │ ├── [ 5248] 0014.tim
│ │ ├── [ 5248] 0017.tim
│ │ ├── [ 5248] 0019.tim
│ │ ├── [ 5248] 0020.tim
│ │ ├── [ 5248] 0021.tim
│ │ ├── [ 5248] 0022.tim
│ │ ├── [ 5248] 0026.tim
│ │ ├── [ 5248] 0027.tim
│ │ ├── [ 5248] 0028.tim
│ │ ├── [ 5248] 0033.tim
│ │ ├── [ 5248] 0034.tim
│ │ ├── [ 5248] 0035.tim
│ │ ├── [ 5248] 0036.tim
│ │ ├── [ 5248] 0037.tim
│ │ ├── [ 5248] 0038.tim
│ │ ├── [ 5248] 0041.tim
│ │ ├── [ 5248] 0045.tim
│ │ ├── [ 5248] 0057.tim
│ │ └── [ 5248] 0059.tim
│ ├── [ 4096] 0122/
│ │ └── [ 4096] 0002/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 5248] 0009.tim
│ ├── [ 4096] 0123/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 5248] 0000.tim
│ │ ├── [ 5248] 0001.tim
│ │ ├── [ 5248] 0003.tim
│ │ ├── [ 5248] 0010.tim
│ │ ├── [ 5248] 0011.tim
│ │ ├── [ 5248] 0016.tim
│ │ ├── [ 5248] 0019.tim
│ │ ├── [ 5248] 0021.tim
│ │ ├── [ 5248] 0033.tim
│ │ ├── [ 5248] 0036.tim
│ │ ├── [ 5248] 0038.tim
│ │ ├── [ 5248] 0042.tim
│ │ ├── [ 5248] 0043.tim
│ │ ├── [ 5248] 0044.tim
│ │ ├── [ 5248] 0048.tim
│ │ ├── [ 5248] 0049.tim
│ │ ├── [ 5248] 0052.tim
│ │ ├── [ 5248] 0056.tim
│ │ └── [ 5248] 0059.tim
│ ├── [ 4096] 0124/
│ │ ├── [ 4096] 0000/
│ │ │ └── [ 4096] ulz_data/
│ │ │ ├── [ 5248] 0001.tim
│ │ │ └── [ 5248] 0002.tim
│ │ └── [ 4096] ulz_data/
│ │ └── [ 33316] 0001.bin
│ ├── [ 4096] 0125/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ ├── [ 5248] 0000.tim
│ │ └── [ 5248] 0013.tim
│ ├── [ 4096] 0131/
│ │ └── [ 4096] 0003/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 32864] 0000.tim
│ ├── [ 4096] 0142/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 29352] 0007.bin
│ ├── [ 4096] 0159/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 29352] 0007.bin
│ ├── [ 4096] 0160/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 39176] 0007.bin
│ ├── [ 4096] 0164/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 29096] 0007.bin
│ ├── [ 4096] 0166/
│ │ └── [ 4096] 0003/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 32864] 0000.tim
│ ├── [ 4096] 0168/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 39176] 0007.bin
│ ├── [ 4096] 0174/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 29352] 0007.bin
│ ├── [ 4096] 0175/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 29352] 0007.bin
│ ├── [ 4096] 0178/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 39176] 0007.bin
│ ├── [ 4096] 0188/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 33968] 0000.bin
│ ├── [ 4096] 0215/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 19612] 0000.bin
│ ├── [ 4096] 0226/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 19612] 0000.bin
│ ├── [ 4096] 0227/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 19612] 0000.bin
│ ├── [ 4096] 0252/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 32864] 0000.tim
│ ├── [ 4096] 0269/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 32864] 0000.tim
│ ├── [ 4096] 0270/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 8460] 0002.bin
│ ├── [ 4096] 0304/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 32864] 0001.tim
│ ├── [ 4096] 0305/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 32864] 0000.tim
│ ├── [ 4096] 0331/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 8460] 0002.bin
│ ├── [ 4096] 0349/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 4232] 0002.bin
│ ├── [ 4096] 0355/
│ │ └── [ 4096] 0001/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 32864] 0001.tim
│ ├── [ 4096] 0424/
│ │ └── [ 4096] 0000/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 11208] 0001.bin
│ ├── [ 4096] 0429/
│ │ └── [ 4096] 0000/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 40252] 0000.bin
│ ├── [ 4096] 0443/
│ │ └── [ 4096] 0000/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 40284] 0000.bin
│ ├── [ 4096] 0458/
│ │ └── [ 4096] 0000/
│ │ └── [ 4096] ulz_data/
│ │ └── [ 15772] 0000.bin
│ └── [ 4096] 0460/
│ └── [ 4096] 0000/
│ └── [ 4096] ulz_data/
│ └── [ 10920] 0001.bin
├── [ 16947] report_simple.txt
└── [ 0] report_size.txt
234 directories, 244 files
Code: Alles auswählen
.
├── BPB/
│ ├── 0005/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0006/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0007/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0008/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0011.bin
│ │ ├── 0012.bin
│ │ └── 0013.bin
│ ├── 0009/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0010/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0013.bin
│ │ └── 0014.bin
│ ├── 0011/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0012.bin
│ │ └── 0013.bin
│ ├── 0012/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0013/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0014/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0015/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0016/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0006.bin
│ │ └── 0013.bin
│ ├── 0017/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0012.bin
│ │ └── 0013.bin
│ ├── 0018/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0012.bin
│ │ └── 0013.bin
│ ├── 0019/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0020/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0013.bin
│ │ └── 0014.bin
│ ├── 0021/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0022/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0023/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0024/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0025/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ ├── 0013.bin
│ │ └── 0014.bin
│ ├── 0026/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0027/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0028/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0029/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0030/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ ├── 0010.bin
│ │ └── 0013.bin
│ ├── 0031/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0032/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0006.bin
│ │ └── 0013.bin
│ ├── 0033/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0034/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0035/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0036/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0037/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0038/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0012.bin
│ │ └── 0013.bin
│ ├── 0039/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0040/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0041/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0042/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0043/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0044/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0045/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0046/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0048/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0049/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0050/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0051/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0052/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0012.bin
│ │ └── 0013.bin
│ ├── 0053/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0054/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0055/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0056/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0057/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0058/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0059/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ └── 0013.bin
│ ├── 0060/
│ │ └── ulz_data/
│ │ ├── 0002.bin
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0061/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0006.bin
│ │ └── 0013.bin
│ ├── 0062/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0063/
│ │ └── ulz_data/
│ │ ├── 0004.tim
│ │ ├── 0007.bin
│ │ └── 0013.bin
│ ├── 0064/
│ │ └── ulz_data/
│ │ ├── 0003.bin
│ │ └── 0012.bin
│ ├── 0065/
│ │ └── ulz_data/
│ │ ├── 0003.bin
│ │ ├── 0007.bin
│ │ └── 0012.bin
│ ├── 0071/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0074/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0075/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0089/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0094/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0102/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0112/
│ │ └── ulz_data/
│ │ ├── 0004.bin
│ │ └── 0007.bin
│ ├── 0113/
│ │ └── ulz_data/
│ │ ├── 0000.bin
│ │ └── 0003.bin
│ ├── 0114/
│ │ └── 0004/
│ │ └── ulz_data/
│ │ └── 0001.tim
│ ├── 0116/
│ │ └── 0001/
│ │ └── 0006/
│ │ └── ulz_data/
│ │ └── 0001.bin
│ ├── 0118/
│ │ └── 0001/
│ │ └── 0007/
│ │ └── ulz_data/
│ │ └── 0000.bin
│ ├── 0119/
│ │ └── 0001/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ └── 0001.bin
│ ├── 0121/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ ├── 0000.tim
│ │ ├── 0001.tim
│ │ ├── 0002.tim
│ │ ├── 0003.tim
│ │ ├── 0004.tim
│ │ ├── 0008.tim
│ │ ├── 0009.tim
│ │ ├── 0011.tim
│ │ ├── 0013.tim
│ │ ├── 0014.tim
│ │ ├── 0017.tim
│ │ ├── 0019.tim
│ │ ├── 0020.tim
│ │ ├── 0021.tim
│ │ ├── 0022.tim
│ │ ├── 0026.tim
│ │ ├── 0027.tim
│ │ ├── 0028.tim
│ │ ├── 0033.tim
│ │ ├── 0034.tim
│ │ ├── 0035.tim
│ │ ├── 0036.tim
│ │ ├── 0037.tim
│ │ ├── 0038.tim
│ │ ├── 0041.tim
│ │ ├── 0045.tim
│ │ ├── 0057.tim
│ │ └── 0059.tim
│ ├── 0122/
│ │ └── 0002/
│ │ └── ulz_data/
│ │ └── 0009.tim
│ ├── 0123/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ ├── 0000.tim
│ │ ├── 0001.tim
│ │ ├── 0003.tim
│ │ ├── 0010.tim
│ │ ├── 0011.tim
│ │ ├── 0016.tim
│ │ ├── 0019.tim
│ │ ├── 0021.tim
│ │ ├── 0033.tim
│ │ ├── 0036.tim
│ │ ├── 0038.tim
│ │ ├── 0042.tim
│ │ ├── 0043.tim
│ │ ├── 0044.tim
│ │ ├── 0048.tim
│ │ ├── 0049.tim
│ │ ├── 0052.tim
│ │ ├── 0056.tim
│ │ └── 0059.tim
│ ├── 0124/
│ │ ├── 0000/
│ │ │ └── ulz_data/
│ │ │ ├── 0001.tim
│ │ │ └── 0002.tim
│ │ └── ulz_data/
│ │ └── 0001.bin
│ ├── 0125/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ ├── 0000.tim
│ │ └── 0013.tim
│ ├── 0131/
│ │ └── 0003/
│ │ └── ulz_data/
│ │ └── 0000.tim
│ ├── 0142/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0159/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0160/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0164/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0166/
│ │ └── 0003/
│ │ └── ulz_data/
│ │ └── 0000.tim
│ ├── 0168/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0174/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0175/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0178/
│ │ └── ulz_data/
│ │ └── 0007.bin
│ ├── 0188/
│ │ └── ulz_data/
│ │ └── 0000.bin
│ ├── 0215/
│ │ └── ulz_data/
│ │ └── 0000.bin
│ ├── 0226/
│ │ └── ulz_data/
│ │ └── 0000.bin
│ ├── 0227/
│ │ └── ulz_data/
│ │ └── 0000.bin
│ ├── 0252/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ └── 0000.tim
│ ├── 0269/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ └── 0000.tim
│ ├── 0270/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0304/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ └── 0001.tim
│ ├── 0305/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ └── 0000.tim
│ ├── 0331/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0349/
│ │ └── ulz_data/
│ │ └── 0002.bin
│ ├── 0355/
│ │ └── 0001/
│ │ └── ulz_data/
│ │ └── 0001.tim
│ ├── 0424/
│ │ └── 0000/
│ │ └── ulz_data/
│ │ └── 0001.bin
│ ├── 0429/
│ │ └── 0000/
│ │ └── ulz_data/
│ │ └── 0000.bin
│ ├── 0443/
│ │ └── 0000/
│ │ └── ulz_data/
│ │ └── 0000.bin
│ ├── 0458/
│ │ └── 0000/
│ │ └── ulz_data/
│ │ └── 0000.bin
│ └── 0460/
│ └── 0000/
│ └── ulz_data/
│ └── 0001.bin
└── report_simple.txt
234 directories, 243 files
Freut mich, wenn es unterhält :)marcgfx hat geschrieben:Sieht wieder mal gut aus Krishty! Bin schön gespannt wie dein Endprodukt dann ausschaut, bin weiterhin gebannt am lesen :)
One of the next write-ups will dive deep into the GPU memory management of the PSX, and this will be really impressive for anybody who’s into low-level stuff. It just takes me a lot of time to illustrate what’s going on. Stay tuned :)scheichs hat geschrieben:Alsways impressive how much NAMCO got out from a system like PS One and what tricks they used to accomplish that. Thanks for sharing your reengineering work with us guys!