Help us keep the site up! Got some change to spare? Why not donate a few bits and buy us a coffee. Image

Yager, otherwise known as Aerial Strike: The Yager Missions

Post questions about game models here, or help out others!
urammar
ultra-n00b
Posts: 9
Joined: Wed Jan 12, 2022 2:09 am
Has thanked: 3 times

Yager, otherwise known as Aerial Strike: The Yager Missions

Post by urammar » Sun Jun 19, 2022 1:25 pm

Has anyone ever had any success extracting anything from this apparently very obscure game? I can get some audio and almost all textures out, but they use their own file format and im really a newb at this stuff, I dont really know what im doing.

I'll attach some files from a single mission, which is legal under fair use for research and education, dont @ me mods haha.

Everything comes from a YRF file, which there is an unpacker floating around here already. They are just in a big list in the data folder, separated by mission(map).

Inside the file are YODS, which I think are the 3d models, YWMs which I think have all the contents of a game map? The textures come out as DDS which is more obscure but actually readable format, bunch of apps can read those.

https://drive.google.com/file/d/1-imCzX ... sp=sharing

Anyone thats got more neurons than me wanna have a crack?
You do not have the required permissions to view the files attached to this post.

User avatar
Durik256
mega-veteran
mega-veteran
Posts: 252
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 25 times
Been thanked: 185 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by Durik256 » Sun Jun 19, 2022 4:08 pm

urammar wrote:
Sun Jun 19, 2022 1:25 pm
file are YODS
i made plugin for *.YOD
Image
(perhaps I will add support for materials)
You do not have the required permissions to view the files attached to this post.

urammar
ultra-n00b
Posts: 9
Joined: Wed Jan 12, 2022 2:09 am
Has thanked: 3 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by urammar » Sun Jun 19, 2022 4:37 pm

Durik256 wrote:
Sun Jun 19, 2022 4:08 pm
Woah....

Are you some manner of mythical beast? I thought maybe, at best, people might be looking at hex code or something and pointing me to tutorials.

In less than just a couple of hours you just have a noesis plugin ready to respond with?

Woah.

Amazing I cant thank you enough! This is incredible!

Hey look, just to push my luck, if you could do materials that would just be, I wouldn't know what to do with myself. I think its just basic textures, nothing fancy. Pretty old game.

But the only other thing im really gonna ask for is that the levels are heightmaps. Theres a shadowmap for the level, but no height information. Im guessing thats in the level file under map->Mission00_159 whatever .ylm

I just dont know where else it could be. It doesnt seem to be stored in the alpha channel of any of the map relevant textures either.

But even what you've done, thank you sir! I dont see how I could ever have got these open, and to just be handed it, im speechless

User avatar
Durik256
mega-veteran
mega-veteran
Posts: 252
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 25 times
Been thanked: 185 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by Durik256 » Sun Jun 19, 2022 5:01 pm

urammar wrote:
Sun Jun 19, 2022 4:37 pm
materials
perhaps when unpacking, '.[***...]' is added to the file name.
so you have to look for a texture by name among the rest.

textures should be one directory up in the "texture" folder.
example:
path models >> "C:\Users\Admin\Desktop\Extract\yod"
path textures >> "C:\Users\Admin\Desktop\Extract\texture"

Image
urammar wrote:
Sun Jun 19, 2022 4:37 pm
.ylm
I can't promise anything. I'll look :D

update: fix materials
Image
You do not have the required permissions to view the files attached to this post.
Last edited by Durik256 on Mon Jun 20, 2022 1:22 am, edited 2 times in total.

urammar
ultra-n00b
Posts: 9
Joined: Wed Jan 12, 2022 2:09 am
Has thanked: 3 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by urammar » Sun Jun 19, 2022 5:26 pm

Durik256 wrote:
Sun Jun 19, 2022 5:01 pm
I can't promise anything. I'll look :D
Can I buy you a beer or something man?

Oh also, I dunno if this is a bug in your plugin or just how the game works (there might be scripts that place stuff? Dunno) but the models meshes all get placed at world origin so they just kinda collapse inward, stuff isnt being offset to their correct locations.

Eg the pilot of a ship is put in the middle of the ship, not in the cockpit, for instance, but some of these meshes have a ton of sub meshes. If I have to place them by hand thats... okay haha. But perhaps the offsets are in the file already?

I feel like such a jerk even bringing this up haha, its already far ahead of what I could possibly do on my own.

urammar
ultra-n00b
Posts: 9
Joined: Wed Jan 12, 2022 2:09 am
Has thanked: 3 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by urammar » Sun Jun 19, 2022 5:56 pm

Just to demonstrate the problem im talking about, this is the main ship from the game, the Saggiatius, as in your last screenshot.

You can see the engines out to the far left and right on struts, the laser guns just under them. The cockpit is also quite forward.

I guess these are actually separate meshes, and they are all getting placed at world origin, without their offsets is my guess.

Again its MAYBE possible to restore these things manually, but they dont keep their rotation either. It would be a big job, but if it has to be that way then so be it. Still, if thats possible to fix and you are up to the challenge, that would be perfection!
You do not have the required permissions to view the files attached to this post.

User avatar
Durik256
mega-veteran
mega-veteran
Posts: 252
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 25 times
Been thanked: 185 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by Durik256 » Sun Jun 19, 2022 10:54 pm

urammar wrote:
Sun Jun 19, 2022 5:26 pm
Can I buy you a beer or something man?
of course :D
urammar wrote:
Sun Jun 19, 2022 5:26 pm
Just to demonstrate the problem
I immediately understood what you were talking about.

so it is as you wrote: '(there might be scripts that place stuff?)'
i add support animation. (need parent)
Image
sample inside script 'player-sagittarius-0.[52a13cc4fa019c94ea35eca1].ysc':

Code: Select all

create csmesh player_mainframe
with player_mainframe
setpos 0.727441 0.702623 2.08256
setscale 1
setyod player-sagittarius-0_player_mainframe
do not load animation, comment out line 95 '#'
You do not have the required permissions to view the files attached to this post.

urammar
ultra-n00b
Posts: 9
Joined: Wed Jan 12, 2022 2:09 am
Has thanked: 3 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by urammar » Mon Jun 20, 2022 11:00 am

Oh god we are so close to perfect exports, though this is already totally workable.

I've noticed a bunch of the objects have bad animations. Picking on player_repair_point_pro.[b67956168ecc1c2db07b63f2].yod the arms for instance are totally broken.

https://youtu.be/AybuqMGE4hE?t=2271 Heres a timestamped youtube link to the use of one of these repair platforms.

I'm wondering if theres some kind of right handed/left handed coordinate shenanigans happening here. Perhaps some of the rotations need to be inverted? Negative rotations should actually be positive? Or offset by 90 degrees?

The sagittarius for instance, that very first animation the weapon pods should swing UNDER the ship, but they go over and through it, so im guessing its adding rotation where it should be subtracting.

Also some of the text on the ships is also inverted.

--------

Actually just looking further as I type this, looking at the Sagittarius the rocket launcher on the roof of the ship is actually on the wrong side of it, you can see that from the game screenshot, too.

I think thats exactly the problem, left handed -> right handed co-ordinate system. Actually just inverting that might fix a lot of the problems, the gun pods for instance, if on the other side of the ship and inverted, would rotate correctly.

Is that possible?

User avatar
Durik256
mega-veteran
mega-veteran
Posts: 252
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 25 times
Been thanked: 185 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by Durik256 » Mon Jun 20, 2022 4:09 pm

urammar wrote:
Mon Jun 20, 2022 11:00 am
Is that possible?
yesterday you were going to arrange everything manually,
and today you don’t like animation anymore. how fast requests are growing. :lol:

new .ysc parsing, add bone parents_ID, fix anim quat (rotations).
Image
(I'm too lazy to redo. upload as is) :]
You do not have the required permissions to view the files attached to this post.
Last edited by Durik256 on Mon Jun 20, 2022 7:05 pm, edited 1 time in total.

urammar
ultra-n00b
Posts: 9
Joined: Wed Jan 12, 2022 2:09 am
Has thanked: 3 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by urammar » Mon Jun 20, 2022 4:54 pm

Durik256 wrote:
Mon Jun 20, 2022 4:09 pm

yesterday you were going to arrange everything manually,
and today you don’t like animation anymore. how fast requests are growing. :lol:
I knoowwww :'(
I said I feel like such an arse even asking, I do! I really do! Its just.. I know that once this thread ends thats it, it goes back to being a totally forgotten game that like 5 people know about and 2 care about.

I literally called up YAGER, the studio that made the game yager, the first game they released and named their studio after, asking if they are doing anything with it and if they might licence it, and they didnt know what I was talking about. About a month later they added the game to their website in their list of games they made.

Yager studios doesnt even know what yager is.

I REALLY DO FEEL BAD! But every single little patch you make just gets so close to killer features its like... imagine if he just patched that one little thing.

Like, really, I didnt even think animations were possible, I was fully gonna re-create everything by hand rotation. And then youre like oh but maybe I could do materials with correct UV's and everything, and its like, yeah if thats not much effort that would be amazing! And then youre like yeah I did that and also placed everything properly, but also animations! And its like you are SO CLOSE, maybe even so close if you could just change like a few variables to correct a few rotations!

Im sorry, I know its asking so much I feel like a jerk. i promise I really am happy with even this! Its just nobody is coming to do the 2nd round so its you putting this effort in right now or nobody ever again!

Really, im so happy with what youve done its not right to push, if you wanna stop thats totally fine, you have already done way more than is expected of anyone, way more. WAY MORE.
Durik256 wrote:
Mon Jun 20, 2022 4:09 pm
new .ysc parsing, add bone parents_ID, fix anim quat (rotations).
I want to change the plugin completely. I will upload later.
You're an actual legend and im serious about that beer, do you have like a patreon or something?

Really, thank you so much for every second you have thrown into this. Every post you have made has blown me away one after the other, im not just saying that. Its probably one of the nicest things Ive ever seen anyone do.

User avatar
Durik256
mega-veteran
mega-veteran
Posts: 252
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 25 times
Been thanked: 185 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by Durik256 » Wed Jun 22, 2022 9:08 pm

terrain format *.yml

terrain separata on chunks 16x16 and maybe have info in rgb color. ?
but for some reason each chunk consists of 1156 bytes. not 1024.
if load chunks as rgba32 texture (17x17)

Image

structure YML:

Code: Select all

-header       4 BYTES (YML [59 4C 4D 20])
-file_size    INT 
-unk          INT 
-num_file     INT

for num_file:
	-header      4 BYTES (MAP [4D 41 50 20])
	-size        INT 
	-unk         INT have normals?
	-unk         INT have tx?
	-x_terrain   INT
	-y_terrain   INT 
	-x_chunk     INT (+1?)
	-y_chunk     INT (+1?)
	-uv_size     INT
	-height_map  INT
	
	-unk_info       ARRAY_BYTES[x_terrain*y_terrain] (4 tx? (x_terrain/2, y_terrain/2)(maybe index normals))
	-offset chunk   ARRAY_INT[x_terrain*y_terrain] (if -1 skip)
	-num_chunks     INT
	-chunk_data     ARRAY_BYTES[(x_chunk*y_chunk) *num_chunks] 
	
	normals block:
		-header    4 BYTES (NRML[4E 52 4D 4C])
		-size      INT
		-num_nrm   INT 
		
		for num_nrm:
			-norm       VEC3 (x-float, y-float, z-float)
			
         texture block:
		-header    4 BYTES (TEX [4D 41 50 20])
		-size      INT 
		-num_tx    INT	for num_tx:
		
		for num_tx    :
			name_tx    string (to the first zero)
You do not have the required permissions to view the files attached to this post.
Last edited by Durik256 on Sun Jun 26, 2022 11:26 am, edited 2 times in total.

urammar
ultra-n00b
Posts: 9
Joined: Wed Jan 12, 2022 2:09 am
Has thanked: 3 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by urammar » Thu Jun 23, 2022 12:35 am

Durik256 wrote:
Wed Jun 22, 2022 9:08 pm
terrain separata on chunks 16x16 and maybe have info in rgb color. ?
Yeah it 100% is. This is where I get to feel useful all of a sudden, haha!

Okay, so, from limited testing so far with this it looks like the height information is stored in the red channel.

I tessellated the planes and used the red values of the pixels for world height information, multiplied by a 3 vector, and got pretty reasonable results, im able to match locations from the game. Right now im picking on the tutorial island as theres quite a lot of footage of that and it saves me from loading up the game, I can just keep it on one of my other monitors.

Image

I will note that heights of certain tiles seem inconsistent with the heights of other tiles, especially when compared with in game footage, but when I overlay just the red as the base colour so I can see both the distortion and the height information it seems like the heightmap is nice, smooth and correct.

You can see here very clearly the holes for the drones that pop up you're instructed to shoot in level 2.

Image

The height problem, though, for instance the proteus base hangar is tiny compared to tutorial island when set to the same height values. Perhaps theres a multiplier stored per tile somewhere? Thats just me thinking out loud.

Also, the mesh is currently breaking its seams for some reason even though... there are actually no seams, this is a connected plane, so... Thats a bug to be fixed.

So, okay, the other channels I strongly suspect are colour masks for detail textures, although im still reverse engineering the exact method. I'm not 100% convinced because a lot of what im seeing looks straight up random. A good thought I had was I think they might be using them as UV offsets for the level texture found in the textures folder, which makes double sense because otherwise I have no idea how they are sampling that texture.

It makes a lot of sense to me, and i'll write the changes to the shader for it later on in the afternoon and test that theory.

I'm quite sure its not a direct texture paint like I initially thought, where you interpolate between the colours and draw the appropriate texture, although im not ignoring the fact that each island only has a max of 3 textures it would seem from a glance. They are using the alpha of the textures as an extra mask also, its not being used for transparency, it contains some kind of masking data they are making use of.

I'll attach some screenshots of my at a glance research and i'll update as I play with this more.
You do not have the required permissions to view the files attached to this post.

User avatar
Durik256
mega-veteran
mega-veteran
Posts: 252
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 25 times
Been thanked: 185 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by Durik256 » Thu Jun 23, 2022 9:05 am

last unk its height.
shadow_tx as texture..
Image
You do not have the required permissions to view the files attached to this post.

User avatar
Durik256
mega-veteran
mega-veteran
Posts: 252
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 25 times
Been thanked: 185 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by Durik256 » Sat Jun 25, 2022 12:11 am

chunk contains 4BYTE(RGBA) info for 289 vertices (17x17)
R - height (R/6) + (255/6*mul)
G - uv_Y step 8 = (G*8)/2048 the value is a multiple of 8, the remainder is the height multiplier.
(sample '241': mul = (241 - (241//8*8) = 1), height = R/6 + (255/6*mul))
B - first half byte rotate_uv, second half byte uv_X = (B[1]*64)/1024
rotate_uv:
Image
0 - default
2 - flip_Y
4 - flip_X
6 - rot_180 ->
8 - rot_90 ->
10 - rot_90 <- and flip_Y
12 - rot_90 -> and flip_Y
14 - rot_90 <-
A - normal_id
Image
plugin for test, if unpack all chunks as *.chunk
You do not have the required permissions to view the files attached to this post.

User avatar
Durik256
mega-veteran
mega-veteran
Posts: 252
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 25 times
Been thanked: 185 times

Re: Yager, otherwise known as Aerial Strike: The Yager Missions

Post by Durik256 » Mon Jun 27, 2022 11:41 pm

finalize

game archive *.yrf, unpacker (click on arrow):
Darkfox wrote:
Thu Jul 14, 2011 11:31 am
AerialStrike_Util_V1_00.rar
game 3d model *.yod, plugin for Noesis (click on arrow):
Durik256 wrote:
Mon Jun 20, 2022 4:09 pm
fmt_yod.py
game terrain *.yml plugin for Noesis:
(very slow work, one terrain contains ~800 000 vertices and ~400 000 tris)
Image
You do not have the required permissions to view the files attached to this post.

Post Reply