Qhimm.com Forums

Final Fantasy 7 => Troubleshooting => Topic started by: cloudiar on 2021-01-09 02:06:45

Title: 7hv have error (bug and overflow)
Post by: cloudiar on 2021-01-09 02:06:45
Excuse me, but I have already tried everything, I will try to explain it briefly, the problem is directly from 7hv and it occurs with my Triple Triad version of ff7, encoded mostly with makou.

Most of the main code, mechanics, optimization, menu, is very advanced, and it was time to load all of them in 7hv, but something very unexpected happened.

I try to load the 10 cards in game (first 5 yours, then rival), to choose between 100 possible ones, I ask in memory the ID and with that I load the corresponding card, to establish the correct order I use new .hrc written in makou reactor, and they will decide:

zaaa ---> letter 1
zaab ---> letter 2
zaac ---> letter 3
zaad ---> letter 4
zaae ---> letter 5
zaaf ---> letter 6
zaag ---> letter 7
zaah ---> letter 8
zaai ---> letter 9
zaaj ---> letter 10

In xml I ask for ten possible positions of the hundred cards, then I will know that ova_cart01 is ID of chosen card one, and corresponds to zaaa, the first card in the game, the same happens with 2,3,4 ... up to 10.

<Conditional Folder = "ova_cart_001 / zaaa">
    <RuntimeVar Var = "Cart01" Values ​​= "1" />

<Conditional Folder = "ova_cart_001 / zaab">
    <RuntimeVar Var = "Cart02" Values ​​= "1" />

(this until cart10, zaaj, and all this repeated until ova_cart_100)

Name of hrc is new to avoid conflict with any other existing model, but I am not sure if this causes some problems, although the created xml really works well in the game (triple triad field), I do not appreciate incompatibility. All cards load their own ID in memory, At the beginning there were +5000 lines in the xml, then the problem was the loading in the game, about 15 seconds to load is too much, but my surprise was that outside of there it continues trying to execute all the instructions of the xml, use other .hrc so that this does not happen, but it still happens even though none exists in any field.

There really isn't an instruction so that fulfilling condition allows to finish code? (like return)

It looks like a black hole to me, but that's not all.

Finally getting to reduce loading times in my version of Triple Triad, only about 5 seconds to load the game was incredible, but in other anywere site the loading time is exponential.

In field with 14 npc it may take about 40 seconds to load, and I don't understand why, the code is lost? The irony comes later, if I go back to Triple Triad it loads the xml, it takes the normal 5 seconds, and the same thing, you go to other sites the xml is executed again and the eternal load times.

I am doing something wrong?
Is it a 7hv limitation?

I understand that the code is huge, and I have optimized it, it still justifies the 5 seconds to load, but I don't understand why somewhere else without those .hrc it decides to load the xml like ten times, it's completely frustrating.

I cannot put conditions by field ID because I would have to put them in all, and they are a total of a thousand conditions (the ten possible positions of the hundred cards).

You can answer here and in private, any help would be great, thanks in advance.
Title: Re: 7hv bug?
Post by: cloudiar on 2021-01-10 20:46:05
I have been investigating my problem with 7hv more and finally it seems that this program has a serious problem, really, if you plan to make a large project that handles models dynamically, this memory when it is not executed will create a kind of buffer with overflow, it will take much more time (x10 or more) to load any model anywhere that does not meet the conditions (even if it does not exist in place).

This does not happen because of the number of lines, it happens when you load any .hrc model with the other files, .rsd, .p, .tex.

Probably the massive use of directories is the cause of the overflow, but I warn it seems a major feature flaw of 7hv, and should be fixed, so that anyone can create and play it.

In my opinion that 7hv does not have a feature (return to assign in condition to avoid unnecessary reading) to prevent xml from being stupid is an error, any xml meets the conditions or not executes all its lines in xml, this is completely unnecessary and deoptimizes load.