Author
Topic: [FF7PC] Post bug reports here (Read 18836 times)

Final Fantasy VII suffers from a very large number of bugs, across all modules. Some are small and insignificant; others can hang or crash the game. White Wind and I are attempting to log all known bugs with Final Fantasy VII PC (1.02 English with Aali's Driver/Steam English version) and then find a solution.

We can't possibly find and fix all the bugs, so if you see a bug that isn't in the database above (see the tabs at the bottom), or you think you can fix a bug, please don't hesitate to post here.

Field 14 is unlikely to be fixed by field script. I tried it. Field functions don't support a check for current HP or anything, so all you can do is take off an amount of HP (in this case, 10000 - then add 1). The only way I can see to fix it would be an entirely new function or something?

There are some issues that can be fixed by new code in exe though, like Menu #5.

The order of the database is subject to change, due to arrangement by alphabetical order. I guess that's not a good idea. I'll simply add new entries to the bottom from now on. I am still in the progress of adding The Reunion Database entries to this database also.

I think the function needs to be able to do that in other places though. To be able to revive or kill based on simple assignments to HP of a character. I'm not sure where else it's used. What was really needed was a function to set HP to an absolute number rather than "decrease" and "increase". They likely came up with the idea of "make HP 1 after being hit with the needles" later in development.

What I am doing for Weapon is simply making these needles and so on an instant death or other bad effect like decrease HP. If all 3 chars are 0 HP, then game over. The latter is already another bug (all 3 chars can be dead on field), which will need fixing.

#General - FF7 -exe - the coordination for the light sources are wrong (field and WM), which produce a different light on PC as on PSX (I would say its 90° clock-wise, it looks as if x and y are swapped[?]). The field could be fixed by changing the values in the model loader.

#Aali's driver - Broken effects in battle (see Aerith final limit - PSX: https://youtu.be/rGWUP6W5170?t=75PC: https://youtu.be/KKcNqosC_-Y?t=175) This probably belongs to the alpha blending issue. The issue is that the game can't display a dynamic transparency effect as the PSX could do. I don't think it's the fault of Aali's driver alone, might be that the engine itself can't mimic the PSX blending effect or wasn't programmed to do it, because they only tested the normal effects. Still, I think that Aali's solution in his previous driver was the right way. While it has broken the opacity level of some textures, these could have been corrected manually and with a better result.

I'll add these. Aali has already explained the alpha effect issue - that the game has 2 alpha values but does not specify which should be used. At the moment the driver gets it right most of the time, but not always. I guess it would mean manual work to flag exactly which effect to use where.

Quote

the whole alpha blending transparency issue which also affects the savepoints and other stuff. The issue is that the PC renderer has two different alpha values (vertex alpha, texture alpha) and the game doesn't specify which one to use (AFAIK), so sometimes the correct thing to do is to just use texture alpha, sometimes vertex alpha and sometimes the two should be combined to produce the correct result. The way it works now is correct most of the time but not always.

I also forgot to note there that the world map colour itself is broken compared to PSX. Also, something else Aali notes:

Quote

the world map is already completely broken (shadows follow the rotation of the camera instead of being fixed in the world)

I think the function needs to be able to do that in other places though. To be able to revive or kill based on simple assignments to HP of a character. I'm not sure where else it's used. What was really needed was a function to set HP to an absolute number rather than "decrease" and "increase". They likely came up with the idea of "make HP 1 after being hit with the needles" later in development.

What I am doing for Weapon is simply making these needles and so on an instant death or other bad effect like decrease HP. If all 3 chars are 0 HP, then game over. The latter is already another bug (all 3 chars can be dead on field), which will need fixing.

Then the fault is in the field script. I just checked it and it just removes 501 HP and restores 1. That will heal all dead characters.What needs to happen is the field script needs to be rewritten AND new codes need to be added. It needs to remove 500 and trigger the game over if all HP are 0. As you mentioned before there is no way for the field to check the HP of the party members. That needs to change. Codes 3C and 3D could be hijacked to return the HP and MP values of the party members.

It should be possible to change script to remove an HP amount and then trigger game over if all chars HP is 0 by checking char HP from main loop (which will also fix other issues where all 3 characters can be dead). It wouldn't be too difficult to fix. Field would be amended so that it doesn't ever restore any HP with the needles and so on. If all else fails, adding the HP MP retrieval could be added too.

There are a lot of places you could do it really... especially since I am now using my own dll. All it would require is me checking three vars and then calling the field game over function. Not sure where would be best to check, but even a check in the frame limiter I have added (30 times a second) would work. All the game over function does is set a few vars and call the music / terminate sound effects (well, it does now that I've fixed it). So yeah it would be a simple exe addition.

You should probably do it at the end of each field script. That way you can Game Over at a reasonable time. In the case like this, where you do damage then heal, it would kill at the appropriate time and not mid-dialog.

#General - FF7 -exe - the coordination for the light sources are wrong (field and WM), which produce a different light on PC as on PSX (I would say its 90° clock-wise, it looks as if x and y are swapped[?]). The field could be fixed by changing the values in the model loader.

To be fair I have to mention that on PC the models are illuminated in real time while on PSX the light is backed at the models at the start of every scene. However on PSX the light comes most times from above, while on PC it seems to come from the front. Maybe the game reads the light information in the wrong order.

Okay, this is harder to fix as I thought it would be. I still would call this a minor bug and on PC we could and should use the three lights more effectively. Still needs Makoureactor to have the preview function for it.

I can't believe I never noticed that before. The lighting on the PC version looks almost... inverted. It's not flipped on an axis. Rather, the areas that should be dark are light and the areas that should be light are dark. It's like a sign on a variable for light value got flipped somewhere.

I can't believe I never noticed that before. The lighting on the PC version looks almost... inverted. It's not flipped on an axis. Rather, the areas that should be dark are light and the areas that should be light are dark. It's like a sign on a variable for light value got flipped somewhere.

Sadly not. I played around with the light on field and even reverted it. Nothing results in a similar look. However as you said it, barely anyone does notice it, that's why I would give it a low priority.

I think that the whole shading engine is broken. As you have posted somewhere else the shine effect (KAWAI?) is also wrong. I think that on PSX the objects on the WM did have baked light on them. At first, I thought it's actually stupid to do so, but I guess they wanted to save memory on the disk this way.