[Projekt] Extracting Ace Combat

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

The project ain’t dead, I’m just still working on the giant GPU writeup.

I just learned that atmospheric scattering is the grilled cheese of terrain graphics: It makes anything look tasty as hell, no matter how bad or old it actually is. So enjoy Ace Combat 2’s Axel Bay! (PSX emulation for comparison.)
2017-06-09 Axel Bay coast zoom.png
2017-06-09 Axel Bay alpha blending artifacts.png

You may have noticed that many buildings are still missing – I already extracted their geometry, but I didn’t get around decoding the coordinates for placing them on the map. Meh.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
DragonSpikeXIII
Beiträge: 4
Registriert: 10.06.2017, 02:26

Re: [Projekt] Extracting Ace Combat

Beitrag von DragonSpikeXIII »

Mein deutsch ist nicht das beste aber ich möchte es ausprobieren. Ich habe diese topic mit Intersse schon verfolgt. Es gab jemand, der in meinem "AC3 text replacement" thread auf Romhacking.net nach Models fragte. Waren Sie es?

Ich finde das geil dass Sie haben alle diese alpha/beta/final Karten und informationen auf AC2 gefunden. Ich bin hier mehr weil ich würde eine Frage machen: könnte ich Ihre AC3 unpacker für meine AC3 Englisch fan-Übersetzung projekt benützen? Ihre program hat einige wichtige Vorteile, zum Beispiel einige neue menus und kleiner Grafische Elemente. Das ist besser als esperknight's AC3 toolkit und kann eine vollere Überstzung machen.

Entschuldigung für mein schlechtes Deutsch
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

Glad to finally meet you :) As a quick introduction to the other members: You’re the leader of the English translation project I mentioned earlier.
DragonSpikeXIII hat geschrieben:Es gab jemand, der in meinem "AC3 text replacement" thread auf Romhacking.net nach Models fragte. Waren Sie es?
No, it must have been someone else. However, when I first got the idea to extract AC3, your Romhacking thread was the first hit and the tools helped me a lot, so I’d like to say THANK YOU! here :)
Ich bin hier mehr weil ich würde eine Frage machen: könnte ich Ihre AC3 unpacker für meine AC3 Englisch fan-Übersetzung projekt benützen? Ihre program hat einige wichtige Vorteile, zum Beispiel einige neue menus und kleiner Grafische Elemente. Das ist besser als esperknight's AC3 toolkit und kann eine vollere Überstzung machen.
Of course; use it for whatever you like! That’s why I post it here, after all :) I can give you the source code if you need it, but be warned it’s a bit messy. I didn’t know it catches more files than the other tools, but I’m glad to hear that.
Entschuldigung für mein schlechtes Deutsch
Ist gar nicht schlecht. Wir können aber genau so gut auf Englisch sprechen, denn hier lesen noch andere nicht-deutsche Modder mit (z.B. Infrid) :)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
DragonSpikeXIII
Beiträge: 4
Registriert: 10.06.2017, 02:26

Re: [Projekt] Extracting Ace Combat

Beitrag von DragonSpikeXIII »

Krishty hat geschrieben:Glad to finally meet you :) As a quick introduction to the other members: You’re the leader of the English translation project I mentioned earlier.
Likewise :) and thank you for mentioning my fan-translation project to the German side of the Internet.
DragonSpikeXIII hat geschrieben:No, it must have been someone else. However, when I first got the idea to extract AC3, your Romhacking thread was the first hit and the tools helped me a lot, so I’d like to say THANK YOU! here :)
That's thanks to esperknight and gipphe then, responsible for understanding AC3's compression and file structure. They have since moved on to other things, but they would definitely appreciate the fact that people other than me and my team have gotten some use out of their data and tools, even improving on them.
Of course; use it for whatever you like! That’s why I post it here, after all :) I can give you the source code if you need it, but be warned it’s a bit messy. I didn’t know it catches more files than the other tools, but I’m glad to hear that.
HUGE thanks for this, more things can be translated now! :o I'm going to add this new development to the next progress report and I've already added your name to the credits. I've run some tests on the things I previously mentioned, such as the blue menus and the UPEO loading screen and they all work even without re-compression, which is very lucky because in AC3 some menus will break the game if the translated TIMs are too big/not re-compressed. And thank you for offering to share the source code, I would have accepted it if my team's programmers were still active but when it comes to me, I guess I'll just use your finished product. It works on every version and as far as I know, extracts and decompresses everything esperknight's program did plus a lot more, and all you have to do is drag and drop, great work!
Ist gar nicht schlecht. Wir können aber genau so gut auf Englisch sprechen, denn hier lesen noch andere nicht-deutsche Modder mit (z.B. Infrid) :)
Genau :) Ich bekomme nicht viele Chancen zu Deutsch sprechen. Das ist genug für mich, danke!

That's pretty much all I have to say but before I go, I think your discoveries would make for a pretty cool new post on my AC3 blog, I think I'll post about it soon and link to your thread here.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

DragonSpikeXIII just published a blog post about this thread: USEA Today: Introducing Krishty's model viewer

You can grab my model viewer there!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Extracting Ace Combat

Beitrag von marcgfx »

cool :D
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

Along with Ace Combat 3, Namco released a press kit with some promotional material for magazines.

It contains some screenshots. The look struck me, because they’re brighter than the final game … turns out, these are snapshots of the Expo City alpha version I decoded earlier:
presskit.png
If you look closely (snapshots of Expo City’s devolpment stages here), you can recognize the red buildings and the colorful textures which have been removed from the final version. There are more oddities:
  • time has run out in all of the screenshots (0:00 at the bottom left)
  • enemy planes are entirely white
  • no artificial horizon or compass
  • HUD symbols are different from the final version
I’d love to get my hands on an alpha or beta version, but sadly, there are almost no leaks of PSX games.

The autumn winter collection ’99 press cd 3 contains some of the same snapshots.

Edit: The white F/A-18 from the screenshots can also be seen in this beta trailer from the Ridge Racer Hi-Spec Demo:
[youtube]Dw8GU4CbKSw[/youtube]
There seems to be an even earlier version of Expo City as well, all green.

I’m desperately trying to find Japanese promo disks. There have been vast amounts of unique AC3 promo material (e.g. VHS videos from the final version), but most of it seems to be lost now.
Zuletzt geändert von Krishty am 05.07.2017, 22:23, insgesamt 2-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

Texturing a Plane

Let’s continue where we left off last time.

If you just wrap the texture over the mesh using the UV coordinates we extracted, you will be pretty diappointed:

Bild

What happened to our beautiful F/A-18I? Well, Remember that a single texture can have multiple palettes:

Bild

We just picked the correct palette for the wings, which happens to be the wrong palette for anything else. The correct palette for a polygon can be read from the word between the first and second UV coordinates:

  paletteIndex = (unknown_word >> 6) & 7;

Finding this was a lot of trouble – I picked polygons from every palette region in a texture and compared their bits. Even more important, this is wrong and will not work with anything beyond planes. However, The Right Approach™ requires detailed knowledge of the PSX GPU, and I’ll dedicate a future article to it.

We got the UV coordinates. We got the textures. We got a palette index for each polygon. How do we wrap that up? There’s two possible ways:
  1. Using the seven palettes in a plane texture, create seven textures. Every polygon picks the right texture.
  2. Project individual polygons back to their textures and apply the according palette to the projected pixels.
The second approach sounds overly complicated. You probably won’t get what it’s doing until the next GIF. So why the hell should we do that?

Because 1. won’t work with other data for the same reasons as the palette index trick won’t work with anything but plane meshes. Been there, done that. You need to trust me on this one.

This is what we’ll do:
  1. Project polygons back onto the texture using their UV coordinates …
  2. … rasterize them using their selected color palette …
  3. … and save the projected result.
Bild

It’s not as difficult as it sounds. Rasterizing polygons may be a hard topic, but we don’t care about performance here. Just iterate all pixels in a triangle’s bounding box, do a simple three-plane test do determine whether the pixel is inside of the triangle, and – if so – copy the “real” color to our output texture. It’s even easier if you consider that all UV coordinates are in pixels, not floating-point numbers in [0, 1] range. This code handles it all:

Code: Alles auswählen

// Ensure that the triangle is counterclockwise on the texture!
// You may want to use a distance field to improve results on overlapping surfaces!

static int const BORDER_SIZE = 3;

// A copy of the texture, entirely resolved with a palette:
RGBA pixels[256 * 256];
resolve(indices, pixels, polygon.paletteIndex);

// Three vertices on the texture correspond to the three UV coordinates:
auto a = polygon.uv[0];
auto b = polygon.uv[1];
auto c = polygon.uv[2];
// Compute three planes:
auto a2b = b - a;
auto b2c = c - b;
auto c2a = a - c;
auto normal1 = a2b.perpendicular().normalized();
auto normal2 = b2c.perpendicular().normalized();
auto normal3 = c2a.perpendicular().normalized();
auto d1 = normal1.dot(a);
auto d2 = normal2.dot(b);
auto d3 = normal3.dot(c);

// Compute the triangle’s bounding rectangle; catch overruns:
auto minU = maximumOf(  0, minimumOf(polygon.uv[0].u, polygon.uv[1].u, polygon.uv[2].u) - BORDER_SIZE);
auto minV = maximumOf(  0, minimumOf(polygon.uv[0].v, polygon.uv[1].v, polygon.uv[2].v) - BORDER_SIZE);
auto maxU = minimumOf(255, maximumOf(polygon.uv[0].u, polygon.uv[1].u, polygon.uv[2].u) + BORDER_SIZE);
auto maxV = minimumOf(255, maximumOf(polygon.uv[0].v, polygon.uv[1].v, polygon.uv[2].v) + BORDER_SIZE);

// For each texel in the bounding rectangle …
for(auto v = minV; v <= maxV; ++v) {
	for(auto u = minU; u <= maxU; ++u) {

		// Compute the texel’s distance from the three edges:
		auto uv = UV(u, v);
		auto distanceFromPlane1 = normal1.dot(uv) - d1;
		auto distanceFromPlane2 = normal2.dot(uv) - d2;
		auto distanceFromPlane3 = normal3.dot(uv) - d3;
		// Is it inside the (padded) triangle?
		if(distanceFromPlane1 >= -BORDER_SIZE && distanceFromPlane2 >= -BORDER_SIZE && distanceFromPlane3 >= -BORDER_SIZE) {
			r.resolved.texels[v * 256 + u] = pixels[v * 256 + u];
		}
	}
}
Consider that I added a BORDER_SIZE parameter to grow triangles by three pixels. Otherwise, you’ll get jagged texture edges like these:

Bild

On the other hand, that’s a clear sign that the algorithm works well :)

All playable planes can be textured using this approach. You can grab the archive at USEA Today (thanks to DragonSpikeXIII for that)!
ac3 playable planes.png
However, texturing the terrain is a little more complicated … I’ll dedicate another article to that.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

How PlayStation Video RAM works

If you are younger than 35 years (and also a graphics programmer), you’re probably used to the way memory is managed in modern graphics APIs. But memory management on the PSX is vastly different from that, and so in a surprisingly visual way!

Let’s see how OpenGL/Direct3D/allotherapis.jpg handle texture management:
  1. You create a texture object and, in return, get a handle to it.
  2. Using this handle, you fill the texture object – typically by passing an array of pixels.
  3. When drawing, you pass the texture object handle to the API and it is applied to the new triangles in the back buffer.
This process is entirely transparent. You have no control whatsoever about where specifically in video memory (VRAM) your texture is placed. You cannot access VRAM directly. You don’t even know a single VRAM address!

I don’t want to go into discussions about whether this is a good thing, but on consoles, full hardware control is typically what developers want (and that’s where new APIs like Vulkan are heading as well). This means … addresses. Pointers. Bit twiddling.

Or does it?


Bild
phyiscal memory layout – sorry, I will only discuss the logical layout here


The PSX VRAM is 1 MiB large, but that’s not important here. The important thing is: It’s not an array of bytes, it’s an array of pixels. A two-dimensional array of pixels!

Read that again. The entire video memory is an image. An image of 1024×512 pixels, with a top-left corner of (0, 0) and a bottom-right corner of (1023, 511).

An image is displayed by drawing into these pixels and then selecting an area of your choice. This area is sent to the TV screen. (There are some limits on resolution and position here, but games generally use a rectangle in the top-left area.)

Bild


It gets weirder when textures come into play. In order to use textures – i.e. write textured pixels to the screen area of VRAM – these must be in VRAM in the first place! So there are at least three steps involved:
  1. copy a texture from CD-ROM to VRAM (You better do this once during a loading screen!)
  2. use the texture to draw textured polygons to the screen area (your usual frame business)
  3. select the area you’ve just drawn as the screen (end of your frame)
Did we have a GIF yet?

Here’s the animated VRAM content for a shooter. Textures are streamed from the CD-ROM drive to VRAM during loading. The first frame uses two textures on textured triangles before the frame is sent to the TV screen – without pointers or addresses, just via 2D coordinates.

Bild
  • Two changes for clarity:
    • PSX games wouldn’t use textured triangles for sprites; the PSX GPU has a hardware blitting device for sprite rendering. My 1337 MSPaint skillz are just not sufficient to draw real perspective polygons.
    • Front buffer omitted.
  • Triangles can also be rendered into the off-screen area – Render-to-Texture – and the on-screen area can be used as a texture, respectively. This can be used to generate impostors, draw fancy particles, or to simulate haze.
  • If the triangles exceed the display area (e.g. if they’re off the right screen edge), one must be careful not to overwrite the textures! The PSX maintains a hardware flag to mask off drawing to the display area or to off-screen space.
  • Very few games used the 640×480 resolution from my sample. PSX games usually chose a significantly lower resolution in order to have more room for textures and intermediate values.
  • You can use tools like PSX-vram to inspect the VRAM of games during gameplay.
Since the VRAM is addressed in pixels (16-bit color depth – R5G5B5A1), we’re left with a big problem – paletted textures. I’ll explain that next time.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4831
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Schrompf »

Wow, thanks for that explanation. This is indeed a surprisingly manual management of VRAM. I wonder how they dealt with potential self-overwriting of drawing actions.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

You mean, with Z order?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4831
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Schrompf »

No, more like: I draw a triangle at the "screen" border and it draws over a part of the texture I use right now.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

I wrote about it way down at the bottom:
Krishty hat geschrieben:
  • If the triangles exceed the display area (e.g. if they’re off the right screen edge), one must be careful not to overwrite the textures! The PSX maintains a hardware flag to mask off drawing to the display area or to off-screen space.
However, checking the specification, it’s more complicated … GPU TexPage drawing attribute, Bit 10 (we will analyze these flags in a future article):
http://problemkaputt.de/psx-spx.htm#gpurenderingattributes hat geschrieben:Drawing to display area (0=Prohibited, 1=Allowed) ;GPUSTAT.10
GP0(E5h) - Set Drawing Offset (X,Y)
Sets the drawing area corners. The Render commands GP0(20h..7Fh) are automatically clipping any pixels that are outside of this region.
In order to render to the screen, you
  1. specifiy drawing area = display area
  2. pass the GPUSTAT.10 = 1 flag in each draw call (anything can be written to the display area)
  3. the hardware automatically clips triangles on the edges of your display area (because that’s your drawing area)
Render-to-texture would be:
  1. specifiy a drawing area = your texture
  2. pass the GPUSTAT.10 = 0 flag in each draw call (nothing is written to the display area)
  3. the hardware automatically clips triangles on the edges of your texture (nothing is written to neighboring textures because they’re outside of the drawing area)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

Amazing sidenote: I just had a look at Arthur Richards acanalysis tool.

This tool was made for Ace Combat 4 (2001), Ace Combat 5 (2005), and Ace Combat Zero (2006) – all of which were developed for the PlayStation 2, probably with the same game engine. The tool works barely with Ace Combat 5 – the UI shows a list of data items, but I can’t expand or read a single one of them. I can’t see airplanes like the screenshots promise.

However, when I extracted a data item, it started with … Ulz. That’s the Ace Combat 3 compression method I mentioned earlier on, which I discussed with Infrid.

My decompressor works with that specific data item. It even identifies the directory layout from Ace Combat 2 and Ace Combat 3 in the extracted data.

I didn’t even plan to extract the PS2 games, and it’ll be a huge amount of work. But what overwhelms me is Namco using the same compression method for CD-ROM data on the PSX’s 32-MHz CPU and for DVD-ROM data on the PS2’s 299-MHz CPU, and our extraction code working with two generations of game consoles. Namco even ported their 1997 data layouts to the 2005 game! Compatibility ftw!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von xq »

*lurk* just wanted to tell you that i really like this thread! keep it going, it's interesting !
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

I will! Thank you!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
RythusOmega
Beiträge: 23
Registriert: 17.07.2017, 09:29

Re: [Projekt] Extracting Ace Combat

Beitrag von RythusOmega »

Hello Krishty, i was looking this thread every day, and im glad to see someone dedicating time to decompressing the PSX era models of Ace Combat. I really liked to see that it´s possible to get access to these models, and i have been looking the models on your tool which DragonSpike released on USEAtoday. also it´s interesting to read the posts about how to decompress the models, how the PSX VRAM works, and how to fix UV maps and converting the VRAM models into a readable format like .WRL (even for me, a noob when it comes to hex and various types of coding).

Including the AC3 models that come with Lean´s Viewer build, i see you managed to get the AC2 ones too (the Axel Bay, Comona and Anchorhead map screenshots), and i would like to know about it, how far you manage to extract the polygons of the maps, and if you already manage to extract the aircraft models? That´s all i have to say for now, also keep going on continue this thread and with the updates about the models, it´s hard to find someone with such dedication and knowledge on decompressing PSX models. Also thanks for extracting the AC3 models, my dream of seeing those models from 360º view become a reality thanks to you.
scheichs
Establishment
Beiträge: 845
Registriert: 28.07.2010, 20:18

Re: [Projekt] Extracting Ace Combat

Beitrag von scheichs »

Once again a wonderful article! Thank you for investing the time, Krishty.
P.S.: I love Krishtyvision! :D
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

scheichs hat geschrieben:Once again a wonderful article! Thank you for investing the time, Krishty.
Once again, you’re welcome! I’m happy if that knowledge doesn’t get lost :)
RythusOmega hat geschrieben:Hello Krishty, i was looking this thread every day, and im glad to see someone dedicating time to decompressing the PSX era models of Ace Combat. I really liked to see that it´s possible to get access to these models, and i have been looking the models on your tool which DragonSpike released on USEAtoday. also it´s interesting to read the posts about how to decompress the models, how the PSX VRAM works, and how to fix UV maps and converting the VRAM models into a readable format like .WRL (even for me, a noob when it comes to hex and various types of coding). […] That´s all i have to say for now, also keep going on continue this thread and with the updates about the models, it´s hard to find someone with such dedication and knowledge on decompressing PSX models. Also thanks for extracting the AC3 models, my dream of seeing those models from 360º view become a reality thanks to you.
Thank you for your kind words! I’m glad you enjoy the articles and feedback like yours really keeps me going (I read your comment on USEA Today as well)!
RythusOmega hat geschrieben:Including the AC3 models that come with Lean´s Viewer build, i see you managed to get the AC2 ones too (the Axel Bay, Comona and Anchorhead map screenshots), and i would like to know about it, how far you manage to extract the polygons of the maps, and if you already manage to extract the aircraft models?
First of all, please excuse the silence over the last weeks. I’ve been busy with work, and on weekends, I’ve been helping the guys at Driver Madness with extracting Driver cities, some stuff I had promised them in spring.
  1. I can extract basic terrain features of all Ace Combat 2 levels, for better or worse. E.g. the bridge at Anchorhead is missing and so are some carriers and buildings. It all has a common cause – the way Namco placed the objects is vastly different from Ace Combat 3, and it’ll take some time to decode the correct placement.
    2017-07-22 Ace Combat 2 objects.png
  2. Furthermore, Port Edwards at Night has some serious transparency issues; probably caused by animated signal lights from skyscrapers. Figuring this out is quite painful.
    2017-07-22 Ace Combat 2 Port Edwards night glitches.png
I’m planning to release an archive with the WRL levels once these issues are fixed. I’ll start extracting the planes then.

You may remember my discovery of the ULZ compression in Ace Combat 5. I was also having a look at Air Combat, and amazingly, it shares some data structures and sound formats with the other games. Namco used many identical file structures in all their games, and I try to keep my tools as compatible as possible, so I can hopefully extract all Ace Combat games in the future.

Oh look, there are pieces of an unused F-4 skin in Air Combat:
2017-07-22 Air Combat F-4 skin.png
2017-07-22 Air Combat F-4 skin.png (4.84 KiB) 27718 mal betrachtet
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

DragonSpikeXIII ist noch lange nicht fertig mit seiner Ace Combat 3-Übersetzung. Drüben auf USEA Today schreibt er im Detail, wie es weitergehen wird – und das klingt fantastisch!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Infrid
Beiträge: 16
Registriert: 04.11.2016, 14:20
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Infrid »

wow, so many discovers, glad you found the way how models works and how they are stored in the game!

I have a good news, I made an Ulz compressor for ace combat 3, I'll release it soon and I am starting to look to other tools for creating a suite capable of editing the game without break anything.

Krishty, could you release the source code of your unpacker? I'd like to take a look inside and make a tool for packing the BPB without problems, also I'd like to compile it under gnu/linux, so I can use it in my workflow. Don't worry if your code is not perfect, mine is messy too :)

Thanks!

Infrid
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

Of course, just let me gather the pieces. Did you see DragenSpike’s collection @ http://www.romhacking.net/forum/index.p ... #msg340734 ? Yes you did, just checked your Wiki!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

I’ve uploaded for source code for unpack_AC2 and unpack_AC3 to my original post. I’ll upload more stuff (terrain extraction etc.) when that’s finished and the tutorials are written.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Infrid
Beiträge: 16
Registriert: 04.11.2016, 14:20
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Infrid »

Thanks so much, I'll take a look to your files!

When I have some spare time I'll finish the compressor and post some results :)
Benutzeravatar
Infrid
Beiträge: 16
Registriert: 04.11.2016, 14:20
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Infrid »

Here we are, I finished the compressor and it's available at https://github.com/Infrid/ac3es-tools

You need at least python 3.6 and can compress ulz v0 and v2, it analyse the files too and tells what parameter use for recompress the original files.

You can get information form iso and BPB files too, thanks to orientalcomputer_01 for that :)

The tool has been tested against my decompressor, because we didn't had time do test and debug on the game on an emulator, if you test it, please give us feedback!

Lz77 was used for compress files, but I have to optimize it, is still not efficient as the original namco's tool.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

DeviantArt user RauuruKun used my extracted Ace Combat 3 models for very cool wallpapers. Must-have for fans!


Furthermore, RythusOmega (who also posted here earlier) reconstructed a beta skin on his Twitter. I guess I can now just admit that
  • … I spent the year searching for betas, bootlegs and press kits to get my hands on the skin – but without any luck
  • … I’m really jealous because it looks so good :)

I’m glad my model viewer helped AC3 fans, and I hope I can resume working on the project soon …
Zuletzt geändert von Krishty am 15.12.2017, 19:18, insgesamt 1-mal geändert.
Grund: translated from German to English
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
RythusOmega
Beiträge: 23
Registriert: 17.07.2017, 09:29

Re: [Projekt] Extracting Ace Combat

Beitrag von RythusOmega »

(image embeds removed due to Imgur's recent ToS changes about inactive photos)

Wow, i was checking ZFX everyday for seeing future news about it, then those days i decided to check out and i have been suprised to see you have seen my EC-17U Model/Skin modification on my twitter during i was making the 5-view showcase of AC3 models, i just have to say, wow i very suprised to be noticed even with long time ago not talking here.

Well i gonna get a little long on this post, but considering the tutorial lengths i think it don´t mind.

About the EC-17U model i have worked, yeah, the idea have came when i was everyday looking into the AC3 models, i have used the PAL Press-Kit pictures(that ones which you have posted long time ago) from the "Beta" and the Ridge Racer Type 4 teaser(that video you have also posted along about Expo City Beta/Alpha) as references for making it. the model aside of the texture i have made some vertex tweaks with "some methods", which you can notice by EC originaly his fuselage section it´s more curvy than F/A-18I, due by because EC-17U it´s somewhat based of YF-17 Cobra(F/A-18 first prototype). also this image shows better the differences.

Also since you liked the skin work i made, this was just only half of my work, i also have made some magic things with AC3 himself with my skins works thanks by founding Umod and a EPSXE plugin called Next3D, if you are interresed i can even talk about it.

Ok, now getting into EC-17U about him from the game himself, yeah, trying to digging a beta from a game which it´s sometimes underground is hard. the only pictures of the beta we have now are the PAL Press-kit and about demos for now we only have the same various ones from US/EU which showcase the Mission Code mission(the one which also makes part of that replay of Su-37 of US/EU Version´s Music Player). about bootlegs the only AC3 bootleg CD i know it was a PS1 Collection which the AC3 of it, was the Japanese version however the hackers tried to make a hybrid of CD 1 and CD 2 in one, but the union gone wrong due by some communication interrupted warning(like Fates Interwinded, Dillema and Utopian Dreams) makes the game freezes on that screen, making you to reset it. aside of that, some music and dialog was also missing, but yeah, thanks to that disc it´s was my first contact with japanese version of AC3 from that time.

Now about the Beta of AC3, the only clues i have found about it, the first one, on the AC3 title menu textures, you can notice a Tokyo Game Show 99 title which probably was planned to be used on a AC3 demo, at least, the TGS 99 demo which was featured on TGS 99 event on japan. however the only images i have seen of the event, and considering it was already on the year which AC3 was planned to be released, the TGS 99 demo i think it don´t have some drastic differences and maybe it was more next to the final game. but i think founding a AC3 beta it´s still a possible thing in the future, like some people of the arcade game scenario managed to found very rare betas and cancelled games with their boards, which they managed to get in some junk shops or even entering in contact the a employer of the company to get a copy of it(by money).

Also, another thing which have a little connection to the tutorials and AC3 resources, i managed to found a alternative easy way to decompress PS1 ADPCM using PSsound, which if you don´t mind i can share if possible here?, for now i managed to get already some of AC3 audios, fixing their KHz bitrate and found some interresing things. but for some reason sometimes i feeling that it missing something(like some SFX, example : some missle sounds, OSL fire sound) i don´t know why, the sounds you already managed to extract was all from the game, or they are still some missing files which needs to be decompressed?


Well, thats for all i have to said, once more again i would like to thank you very much for dedicating to extracting PS1 Ace Combat resources, which with the knowledge of it can lead to extracting other namco games with the same code but some modifications(like Rage Racer, Time Crisis) and even the other Ace Combat games resources by the extensions and file structures. also if you are interresed, i can help a little if you want, i managed to get already the file containers of Ace Combat X, Ace Combat X2/Joint Assault(the PSP ones), Ace Combat Xi(the X spinoff for Iphone) and Ace Combat 3D Cross Rumble/Assault Horizon Legacy(the remake of AC2 for 3DS). i can send the files on your PM inbox for you give a look when you have some free-time, because the PS2 era games they can been a little hard like you said, but i don´t know if the PSP/3DS era games can been easy or hard to decompress. well that´s all i have to say for now, i will be on the wait for more updates, and also take your time, people need to dedicate to their jobs first most importantly. : )
Zuletzt geändert von RythusOmega am 22.04.2023, 10:15, insgesamt 1-mal geändert.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

First of all, sorry for falling back to German in my post above. It was late in the evening :)

RythusOmega hat geschrieben:i just have to say, wow i very suprised to be noticed even with long time ago not talking here.
I’m always looking for cool Ace Combat content :)

RythusOmega hat geschrieben:Well i gonna get a little long on this post, but considering the tutorial lengths i think it don´t mind.
thanks by founding Umod and a EPSXE plugin called Next3D, if you are interresed i can even talk about it.
i managed to found a alternative easy way to decompress PS1 ADPCM using PSsound, which if you don´t mind i can share if possible here?
All links are welcome (unless it’s piracy), and we’re always glad to have interesting posts here. So go ahead and post/link whatever you like!


Thanks a lot for the EC-17U / F/A-18I overlay! I didn’t realize you modified the vertices, but it’s very clear now. I was having a similar idea and gathered some screenshots from said video, but I never had the time to realize it. Very good job! Same with the UMod skins!


Also, thank you for information on the beta. (I was asking a similar question on USEA Today, but it looks like DragonSpike lost the comments section, or like he’s rearranging it.) At this point, I don’t have much hope to ever find a AC3 beta/leak, which is pretty sad. PSX leaks are very rare. One last chance might be the Internet Archive – Jason Scott is currently ripping and scanning thousands of CDs that were sent to him, and there was also at least one rare press release of some classic game. I guess we should check the Internet Archive once or twice a year, maybe we’re lucky one day.

Did you ever get your hands on the Chinese AC3 version? I know there are people out there who have it (one or two users on ROMHacking), but I never found it in the wild.

A little off-topic: Acepedia states that Ace Combat 1, in very early versions, had a realistic setting where NATO & Co. were explicitly mentioned in the story. I downloaded every copy I could, even the Russian ones, but I never found one. Is there any proof it exists, or is it just fake news in the Acepedia?


@Tokyo Game show clues: I also found very minor differences between the official release and the PAL demo (which was released later):
  • the PAL demo, in its font, has the letter i at a slightly different position.
  • also, the plane selection screen has a slightly different resolution.
I’m always wondering whether there was a Japanese demo?


Considering the sounds: The ADPCM data I extracted is packed with some kind of dictionary. I have not yet decoded it. If PSound just performs a brute-force search over the data, some sounds could be lost in its heuristics. I’ll improve my sound processing some time later in hopes of extracting everything.


Send me all the Ace Combat resources you got. I’m very busy with my job now, but when I find time to get back to Ace Combat extraction, the data will very likely help me!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
DragonSpikeXIII
Beiträge: 4
Registriert: 10.06.2017, 02:26

Re: [Projekt] Extracting Ace Combat

Beitrag von DragonSpikeXIII »

Hey there Krishty,

to clear any lingering doubts, I don't have any clue about the Japanese press kit or pre-release versions of AC3E.

Regarding Ace Combat and NATO, it's only mentioned here https://i0.wp.com/game-rave.com/wp-cont ... ongbox.jpg Moreover, there's no mention of NATO anywhere on the Japanese side of things, not that I could find. I also played Air Combat on release, and don't remember seeing it getting mentioned in-game either. Maybe this information will help you rest easy now.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Extracting Ace Combat

Beitrag von Krishty »

Thank you for the clarification! One more problem in finding leaks: Even if Namco or some employee stored pre-release AC3 data on CDs, they are likely to rot after 20 and more years. Hard drives start to demagnetize after such a long time. The arcade leaks RythusOmega mentioned have often been found on floppy disks and I doubt anyone used them for long-time storage in 1999.

Since Air Combat was one of the first PSX games (SLUS-00001/SLES-00007?) I also assumed there could have been some revisions, but all ISOs I found were identical. I think we can safely assume there have not been any AC1 patches.

Sidenote: Another interesting quote from Acepedia is
A take-off/landing system was included just a week after the game had been submitted for approval, being in mostly working condition three weeks afterwards. As a result, copies with such sequences were available only to the programmer team.
I cannot find any proof of this in the referenced article because the article has been destroyed with a site update. The original quote can be found here and it is indeed true:
Are there any features you would like to have included, but couldn't because of time constraints?

We would have loved to include the replay and landing/take-off features. Actually, we finally got the replay feature working the week after we submitted the game for approval. The landing and take-off feature was up and running just three weeks after. (Even though, we got these features to work, we still needed time to perfect them.) We actually tried to implement both of these features in the game afterwards, but we didn’t make it before the launch. In the end, a copy of Air Combat with the replay and landing/take-off features was something only the development team had.
Now this would be a collectors item!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten