Page 1 of 1
Edelweiss - Astebreed, Ether Vapor, Freesia
Posted: Mon Mar 12, 2012 11:01 pm
by finale00
http://edelweiss.skr.jp/works/astebreed/index.html
Looks cool.
I've played their games before but I never actually paid attention to their game resources lol
Maybe I'll load up ether vapor again and see what it has.
Here's ether vapor:
http://edelweiss.skr.jp/works/ethervapor/re/index.html
EDIT: wow the remastered version looks so much better than the original lol
Freesia also looks good, though maybe the only 3D parts are actually just videos lol
http://www.youtube.com/watch?v=jbdzJGrO3OE
Ethervapor is just using direct3d txt .x files.
Re: Edelweiss - Astebreed
Posted: Tue Mar 13, 2012 4:41 am
by finale00
Well this unpacks the ethervapor archives
Code: Select all
#Edelweiss TGP unpacker
#Supports the following games
#Ether Vapor (remastered)
#Fairy Bloom Freesia
#Astebreed
idstring "TGP0"
get unk1 long
get null long
get FILES long
for i = 0 < FILES do
getdstring NAME 96
get OFFSET long
get flag long
get SIZE long
get unk2 long
log NAME OFFSET SIZE
next i
Re: Edelweiss - Astebreed
Posted: Tue Mar 13, 2012 7:58 am
by finale00
Freesia uses the same archives.
They used a different model format this time, but it's still a text file...
In fact it almost looks like they just took the .x format, changed things around, used "polygon" structs to define each triangle and wasting a whole bunch of space while they're at it, and then somehow ended up with a 3.5 MB file for a model with 3811 verts and 6783 faces. I mean, what's the difference between just all of the face indices line by line like the MQO format does? At least they don't waste space with braces and spaces and new-lines.
They even marked every 10 entries with like, a comment.
I went and compressed that file and it ended up being 200 KB.
Like wow...
Code: Select all
TGL Model Format Text Ver 0.8
#====================
# テクスチャリスト
#====================
TextureList 16
{
Texture "Sky_Morning_Tex"
{
type Standard
file "Sky_Morning.dds"
}
Texture "Far_Forest_Tex"
{
...
Code: Select all
#========================================
# メッシュ
#========================================
Mesh "MiniTree_F"
{
PolygonList 360
{
# No.0
Polygon 3
{
Material 1
{
11
}
Face 3 (2 1 3)
Color 3 (4288455609 4288587196 4288718782)
UV 3 (3 1 2)
}
# No.1
Polygon 3
{
Material 1
{
11
}
Face 3 (0 1 2)
Color 3 (4288324023 4288587196 4288455609)
UV 3 (0 1 3)
}
# No.2
Polygon 3
{
Material 1
{
11
}
Face 3 (6 5 7)
Color 3 (4286348684 4283783014 4283848807)
UV 3 (4 5 6)
}
# No.3
Polygon 3
{
Material 1
{
11
}
Face 3 (4 5 6)
Color 3 (4283849064 4283783014 4286348684)
UV 3 (7 5 4)
}
# No.4
Polygon 3
{
Material 1
{
11
}
Face 3 (10 9 11)
Color 3 (4285301127 4284840318 4285103491)
UV 3 (8 9 10)
}
...
Re: Edelweiss - Astebreed, Ether Vapor, Freesia
Posted: Fri Mar 16, 2012 8:50 am
by RandomRipper
There's already a Freesia thread here.
viewtopic.php?f=16&t=7523
Re: Edelweiss - Astebreed, Ether Vapor, Freesia
Posted: Fri Mar 16, 2012 2:48 pm
by finale00
Cool. This was mainly for astebreed, but then it probably made sense to just clump all their games together.
Astebreed uses the same format as Freesia, except now it seems like it doesn't define a material struct with every single face.
Now I'm wondering if I should parse all of the structs first before going back and retrieving the data.
Re: Edelweiss - Astebreed, Ether Vapor, Freesia
Posted: Sun Jan 19, 2014 10:12 am
by How Horrifying
I'm trying to see if translation of Astebreed is possible now that the full version has released from C85, but your script gives me a "MultiEx failed to process 17" error.
I am somewhat at a loss as to what to do at this point, since MexScript is a somewhat unintuitive beast.
Edit: Using this code gives me "No Errors" when checking it with MultiEx, but gives me "MultiEx 3 could not process, error 18" when I use it on the game archive.
Code: Select all
IDString 0 TGP0 ;
Get UNK Long 0 ;
Get null Long 0 ;
Get FILES Long 0 ;
For T = 0 To FILES ;
GetDString NAME 96 0 ;
SavePos OFFSETOFFSET 0 ;
Get OFFSET Long 0 ;
SavePos SIZEOFFSET 0 ;
Get SIZE Long 0 ;
Get flag Long 0 ;
Get UNKN Long 0 ;
log NAME OFFSET SIZE OFFSETOFFSET SIZEOFFSET ;
Next T ;
I wrote it based on what I could understand from the archive
Screenshot (7).jpg
Re: Edelweiss - Astebreed, Ether Vapor, Freesia
Posted: Wed Jul 09, 2014 10:17 am
by destrator
Code: Select all
char Signature[4];
DWORD Flags; // 0x00020000 is compressed;
DWORD NumFiles;
DWORD DecompessedDataSize;
struct File
{
char Name[96];
DWORD Offset;
DWORD Size;
DWORD Reserved[2];
};
File files[NumFiles];
BYTE Data[FileSize()-FTell()];
If Flags has 0x00020000 value, then data is compressed. 0x00088b1f value at the start of Data block indicates a compression using gzip.
Re: Edelweiss - Astebreed, Ether Vapor, Freesia
Posted: Thu Jun 18, 2015 6:26 am
by GMMan
Sorry for the necro, though I've been poking at Astebreed, which I just bought. The format above isn't quite correct. Here's a better one.
Code: Select all
char Signature[4];
WORD Version; // Only 2 is accepted
WORD Flags; // 0x0001 is encrypted, 0x0002 is compressed
DWORD NumFiles;
DWORD DecompessedDataSize;
struct File
{
char Name[96];
DWORD Offset;
DWORD Size;
DWORD Reserved[2];
};
File files[NumFiles];
BYTE Data[FileSize()-FTell()];
For archives with encryption flag set, only files with the extensions dds, png, bmp, tga, jpg, and jpeg (i.e. all textures) are encrypted. Encryption is simply XORing each byte with 0x46.
Re: Edelweiss - Astebreed, Ether Vapor, Freesia
Posted: Tue Feb 16, 2016 1:41 pm
by S0UZ
Any hopes in this??? This is a dead thread??? So sad!!! Still want those model though