Player (109)
Joined: 7/14/2012
Posts: 22
So I.Q Final has been a long term project of mine. I have done Any% speedruns of it in the past, but there has been another objective that has been of interest to me which is doing a high I.Q ending speedrun. In short, when you clear the Final Stage with an I.Q of 500, this triggers the Tectonics mode to occur which can then be cleared to achieve the high I.Q ending. In theory, I can calculate my I.Q as the run progresses by entering pertinent data into a spreadsheet and use that to tabulate my current progress as well as determine the minimum required score from the last level to ensure that I achieve the 500 I.Q objective. The reason I am posting on here is to see if anyone in the TAS community could assist me with this, specifically, determining the equation for I.Q. I will now proceed with detailing what information I have determined about the equation for I.Q to summarize the results of my current investigation and show how my current knowledge incomplete. The first thing to know is that the equation for I.Q is not the same in I.Q Final as it is in the original Intelligent Qube. The original I.Q equation from Intelligent Qube is documented here: http://blog.airesoft.co.uk/2015/08/how-to-be-a-genius-intelligent-qubes-iq-algorithm/ To summarize his findings: Stage 1 IQ = 0.06% of multiplied stage score Stage 2 IQ = 0.055% of multiplied stage score Stage 3 IQ = 0.05% of multiplied stage score Stage 4 IQ = 0.045% of multiplied stage score Stage 5 IQ = 0.04% of multiplied stage score Stage 6 IQ = 0.035% of multiplied stage score Stage 7 IQ = 0.03% of multiplied stage score Stage 8 IQ = 0.025% of multiplied stage score Final Stage IQ = 0.02% of multiplied stage score The sum of each Stage IQ produces the final IQ value in the original Intelligent Qube game. There is a rounding error in the math that makes the fringe cases inconsistently round up/down, but this is sufficiently accurate for most purposes. Here is an example of this in a practical use setting: Link to video It should be noted the person who put that information together gave up on determining the equation of I.Q in I.Q Final. For I.Q Final, I gathered a large volume of data to analyze and attempt to experimentally determine I.Q. Initially, I did this for just Stage 1, but once I determined a fitting model for calculating I.Q. I did this for each stage independently. This is achievable because in I.Q Final you can choose your starting stage so each stage could be tested independently in the exact same format. This initially was started on console, but moved onto BizHawk monitoring the Ram in order to monitor parameters live as well as ensure accuracy. That research produced the following equation: IQ = Dx(A+B(y+z)) D = Difficulty Factor [Normal = 1.0, Ultra Hard = 1.2] (Didn't solve for Hard or Super Hard) x = Stage Score A = Stage Point Value (Converts points to I.Q similar to seen above for the original I.Q) B = Stage Perfect Value (A new factor similar to the Stage Point Value but gives additional IQ for Perfects* & Excellents**) y = # of Perfects* z = # of Excellents** *A perfect is when you solve a puzzle matching the estimated # of rolls required. **An Excellent is when you solve a puzzle under the estimated # of rolls required, aka. a super optimal solution. The values for A & B were experimentally determined for each stage to be the following : A B (Notes) 1 0.0005 0.00003 Stage 1 2 0.00048 0.0000288 3 0.00025 0.000015 4 0.000235 0.0000141 5 0.00022 0.0000132 6 0.000205 0.0000184 7 0.000185 0.0000111 8 0.000165 0.0000149 Stage 8 F 0.000155 0.0000069 Final Phase T 0.00016 0.00001 Tectonics Phase (Not particularly relevant to the stated objective) This equation produces accurate calculations for I.Q on a per stage basis with exception of some fringe cases which were assumed to be comparable to the rounding errors noted to be present in the original Intelligent Qube I.Q calculations. The issue is, when you do a run with multiple stages done in succession, the I.Q from the game no longer matches the predictions. That is to say, the first stage matches the prediction, but the stages after the first stage have been observed to have substantial error. Let me provide two independent runs that show this: St Sc Gr Pe Ex To IQ Difficulty Prediction Delta %Error 1 119400 0 4 4 9 88 Normal 88.4 0.4 0% 2 24000 0 4 4 9 14 Normal 17.0 3.0 18% 2 133500 0 3 5 8 98 Normal 94.8 -3.2 -3% 3 189800 0 5 4 9 74 Normal 73.1 -0.9 -1% 4 200200 2 0 7 9 64 Normal 66.8 2.8 4% 5 161800 1 4 1 9 44 Normal 46.3 2.3 5% 6 150500 0 4 2 6 48 Normal 47.5 -0.5 -1% 7 225800 1 4 4 9 61 Normal 61.8 0.8 1% 8 138800 2 2 1 6 30 Normal 29.1 -0.9 -3% F 148600 1 0 4 6 29 Normal 27.1 -1.9 -7% T 254200 1 1 4 15 46 Normal 53.4 7.4 14% 1 138700 1 1 7 9 102 Normal 102.6 0.6 1% 2 170500 0 4 5 9 126 Normal 126.0 0.0 0% 3 204300 0 2 7 9 79 Normal 78.7 -0.3 0% 4 201900 0 1 7 9 70 Normal 70.2 0.2 0% 5 187100 0 4 3 9 59 Normal 58.5 -0.5 -1% 6 136400 0 1 3 6 35 Normal 38.0 3.0 8% 7 220500 1 2 6 9 61 Normal 60.4 -0.6 -1% 8 168600 0 3 2 6 41 Normal 40.4 -0.6 -2% F 141800 0 2 2 6 28 Normal 25.9 -2.1 -8% As you can see, there is an error of up to 7.4 I.Q points in the provided runs with the deviations not exclusively in the same stages. After reaching this point, I asked Nitrofski for help, and he had me open I.Q Final through ghidra in order to attempt to reverse engineer the equation but I failed to produce meaningful results through this method. tl;dr: I am posting here to document my findings to this point as well as seek help in potentially solving this problem. This may not be directly for a TAS project, but would be useful for expanding the community knowledge as well as helping me create what I think would be a very cool run to watch. It does overlap with TASing in the tools being used thus far.