reimplement: SHC_3BB0A8C1_0x0047BF20 97.5% | SHC_3BB0A8C1_0x0046BB60 100%#139
reimplement: SHC_3BB0A8C1_0x0047BF20 97.5% | SHC_3BB0A8C1_0x0046BB60 100%#139TheRedDaemon wants to merge 6 commits into
Conversation
| namespace MSS { | ||
|
|
||
| typedef uint SoundFlagsAndLoopCount; | ||
| typedef int SoundFlagsAndLoopCount; |
There was a problem hiding this comment.
Are you sure it is int? Some & operations naturally produce negative right-hand-sides if an int.
There was a problem hiding this comment.
It increased the matching and actually started producing the binary mask instead of just using a mov to a 16bit register.
But this function is another one of these annoying ones. A lot of branch optimization, gotos.
Always in the hope that there is a when: When we manage to match the function, I will try reverting this change and test around a bit.
If this goes through, all other methods need to be tested again, of course.
9cef918 to
fb16c10
Compare
fb16c10 to
0e8b248
Compare
|
Main issue: Still I would guess the complexity of the rest of the function might be responsible, but I was unable to find something that keeps the logic and does not break other stuff. It might actually be needed to break matching again in the search for the solution. |
|
I think if logic wise it is correct it is fine to merge. |
|
Yeah, I still do not have learned my lesson to not overdo it. Fun fact, I managed to push the body of the early return back by wrapping the condition in an Anyway, the type of the |
No description provided.