One tiny thing that might help in your analysis: Nintendo accidentally included all the symbol names and locations on the Wind Waker disc in a file called "framework.map".
Doing some basic demangling on the CodeWarriors names gives you C++ classes and methods:
The "sea" animation is controlled by "daSea" -- "da" meaning "dynamic actor" in Nintendo's naming terminology.
It's extremely unlikely they used texture distortion for the sea effect, since the GPU they used didn't have fragment shaders -- the only method of texture warping is INDTEXMTX, which was only used for the heat effects in Dragon Roost Cavern.
They probably modified UVs directly on their triangular sea mesh.
Smoke effects and such use their in-house particle engine, "JPA".
Technically it is the case that the given fragment shader is doing the same thing as direct UV modification. It doesn't really change the fact that it's texture distortion, it's just that the fragment shader is capable of doing it on a per-pixel basi.
It's a common misconception that the Gamecube doesn't have fragment shaders. The GPU (called the TEV) is almost a straight implementation of DirectX's ps1.0, the same as a GeForce3, with a few extras added.
At my old company I wrote an assembler to read text source and assemble the instructions into TEV format.
My point was more that TEVs can't modify texture coordinates, since texcoordgen happens before the TEV stage. TEVs only specify how to blend vertex colors, texture samples, game-set registers and lighting results together using configurable formulas.
I was deeply into Nintendo games in the late 90s leading up to Wind Waker's release. I remember after it was announced that so many people were deeply disappointed in these "kiddy" graphics.
Remember that as far as the major releases go it was released in 2002 after Ocarina of Time in 1998 (and a sequel using the same engine in 2000).
People wanted a "real" Zelda game with "real" graphics, like what became Twilight Princess in 2006, whose graphics are a logical follow-up to Ocarina of Time.
It's funny how history turns out, now Wind Waker is widely lauded for its graphics, and it looks much better than the likes of Ocarina of Time or Twilight Princess.
It's a fantastic example of how Nintendo is still a company that dares to experiment, even with their most wildly successful game franchises. That hasn't always worked out, but we've gotten amazing innovative games like Wind Waker as a result.
It is, I think, my favourite Zelda game --- it looks superb, the characters work, the story's interesting (even Ganon actually comes across as a bit sympathetic!), fascinating dungeons, the world is endless fun to explore... I just kinda wish they'd finished it: they way the last part of the game devolves into a series of treasure hunts was disappointing. I gather they ran out of money and there was supposed to be another round of dungeons.
There are also some epic design failures: the biggest one, to me, is that the games give you the boat before it's ready to let you explore. Instead it walls off big chunks of the world to railroad you into going to Dragon Roost Mountain. As soon as I got the boat, of course, I headed straight for the nearest island to see what was there, hit a wall and was turned back. I found that showing me the open world and then not preventing me from going there, and in such a clumsy manner, was very disappointing. I think they'd have done better to have simply moved you to the island outside your control, and only let you take command of the boat once you pick up the baton.
A lot of what gives the game its character was the seamless loading between islands. Twighlight Princess, which was a perfectly decent game, seemed much smaller to me because of the endless constrained environments and loading screens.
Meanwhile, I still haven't finished Skyward Sword.
I remember the backlash, and it was bizarre, especially given this was the first Zelda game that gave us _some_ semblance of continuity. But I also do remember a Dolphin demo reel showing a more realistic Zelda that probably made people think that's where the next game was going, so people were naturally disappointed when their expectations were undermined.
> the first Zelda game that gave us _some_ semblance of continuity
What continuity is there in WW? Nothing jumps to mind, especially when the previous game (Majora's Mask) was essentially a direct sequel to OOT in comparison.
At one point you visit Hyrule Castle and there are allusions to Ocarina of Time. I don't really remember the details but it is made clear in-game that player Link is one in a series of Links.
Some of this is from memory, but it takes place on a timeline where Ganondorf was sealed. Then Hyrule was flooded to prevent him from ever being unsealed.
The main character is dressed as Link because children dress as the great hero once a year.
You couldn't be more right. I seem to recall people being really grumpy about Majora's Mask for being "weird" and not very Zelda-y, and now it frequently appears in "best game ever" lists.
Try the 3DS port. I ground through the N64 version when it was first released, due to a sense of "I paid for this, so I'm gonna darn well finish it," but the 3DS version adds hints/accessibility that make it a lot more enjoyable.
Yep, that's what happened to me the few times I tried to pick it up. I'm a huge Zelda fan but MM just feels like a chore. I really don't like the whole calendar-based thing, having to do the same things multiple times, having to revisit the same location over and over again. It kills the sense of progress that makes other Zelda games great. By far my least favorite...
I was strongly in the camp which loved the cell-shaded graphics. It's a shame that the complainers "won" because it clearly limited Nintendo's creativity for later games.
Nintendo are at their best when they're unconstrained.
Yoshi's Island, for me, is my favorite Nintendo game graphically, followed by, in no particular order, Metroid Prime, Paper Mario, and Wind Waker.
But it's also my favorite when it comes to gameplay and audio. I don't think I've played a platformer all the way through as often as I've played through Yoshi's Island, and its music still randomly pops into my head quite regularly.
The compensation of the sea motion reminds me of how Zelda Link's Awakening sea intro sequence was done on the Game Boy. It's suprising how two sea-themed games can make use of the same techniques accross vastly different hardware :)
Edit: after reading said post, it's a great explanation of the techniques used in Link's Awakening's intro. That game looked gorgeous on the B/W Gameboy, it's cool to actually understand how they managed to pull it out technically.
Good work. Wind Waker is a very beautiful game. I like that you discovered that using the boat as the origin point for the ocean/waves makes the rest of elevation computation that much easier.
One tiny thing that might help in your analysis: Nintendo accidentally included all the symbol names and locations on the Wind Waker disc in a file called "framework.map".
Doing some basic demangling on the CodeWarriors names gives you C++ classes and methods:
http://funny.computer/cloud/Random/zww_functions.txt
The "sea" animation is controlled by "daSea" -- "da" meaning "dynamic actor" in Nintendo's naming terminology.
It's extremely unlikely they used texture distortion for the sea effect, since the GPU they used didn't have fragment shaders -- the only method of texture warping is INDTEXMTX, which was only used for the heat effects in Dragon Roost Cavern.
They probably modified UVs directly on their triangular sea mesh.
Smoke effects and such use their in-house particle engine, "JPA".