Did you know? Xentax started the Unepic SID Channel, that brings the latest music composed for the SID chip! Support us by listening and subscribing! Over 50.000 songs already there!

Edelweiss - Astebreed, Ether Vapor, Freesia

Post questions about game models here, or help out others!
Post Reply
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 300 times

Edelweiss - Astebreed, Ether Vapor, Freesia

Post by finale00 » Mon Mar 12, 2012 11:01 pm

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.
Last edited by finale00 on Tue Mar 13, 2012 8:01 am, edited 1 time in total.

finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 300 times

Re: Edelweiss - Astebreed

Post by finale00 » Tue Mar 13, 2012 4:41 am

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
Last edited by finale00 on Fri Mar 16, 2012 8:45 pm, edited 1 time in total.

finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 300 times

Re: Edelweiss - Astebreed

Post by finale00 » Tue Mar 13, 2012 7:58 am

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)
			}
...

RandomRipper
n00b
Posts: 10
Joined: Sat Jul 16, 2011 9:24 am

Re: Edelweiss - Astebreed, Ether Vapor, Freesia

Post by RandomRipper » Fri Mar 16, 2012 8:50 am

There's already a Freesia thread here.
viewtopic.php?f=16&t=7523

finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 300 times

Re: Edelweiss - Astebreed, Ether Vapor, Freesia

Post by finale00 » Fri Mar 16, 2012 2:48 pm

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.

How Horrifying
ultra-n00b
Posts: 1
Joined: Sat Jan 18, 2014 11:39 am

Re: Edelweiss - Astebreed, Ether Vapor, Freesia

Post by How Horrifying » Sun Jan 19, 2014 10:12 am

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
You do not have the required permissions to view the files attached to this post.

destrator
beginner
Posts: 28
Joined: Tue Aug 30, 2011 4:25 am
Has thanked: 3 times
Been thanked: 4 times

Re: Edelweiss - Astebreed, Ether Vapor, Freesia

Post by destrator » Wed Jul 09, 2014 10:17 am

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.

User avatar
GMMan
veteran
Posts: 139
Joined: Fri Nov 05, 2010 10:14 pm
Been thanked: 55 times

Re: Edelweiss - Astebreed, Ether Vapor, Freesia

Post by GMMan » Thu Jun 18, 2015 6:26 am

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.
Currently researching: Alpha Prime scripting (AI and mods)
Queued: EE .cache repacking, CustomPak repacking, Gameloft Scrambled Zip multitool, GRAF Extractor Skeleton repacking, Gun Metal filenames CRC

S0UZ
beginner
Posts: 37
Joined: Tue Apr 05, 2011 11:46 am
Has thanked: 7 times
Been thanked: 1 time

Re: Edelweiss - Astebreed, Ether Vapor, Freesia

Post by S0UZ » Tue Feb 16, 2016 1:41 pm

Any hopes in this??? This is a dead thread??? So sad!!! Still want those model though

Post Reply