Leaderboard


Popular Content

Showing content with the highest reputation on 01/29/2021 in Posts

  1. 1 point
    I promised an update in two weeks... How about two days? The approach of using ranges has borne fruit. Consider the following code: int subroutine(int I, float F, vector V) { int i = 1; while(true) { if(i > 10) { //do stuff } else { return -1; } } return 0; } The reverse compiler needs to be able to find the return type and parameter types. To do this, it: Counts the number of local variables in Part 1 Counts the number of variables returned in Part 2 Destroys the local and returned variables in Part 3 Verifies the stack is empty, and assumes the count being destroyed is the number of input arguments in Part 4 Using the above code as an example, the method outlined in the post from two days ago effectively ignores everything inside the while loop. So: 1 local variable is counted, created by the RSADDI opcode 1 return variable is counted, created by the CPTOPSP opcode and copied by the CPDOWNSP opcode 1 local variable and 1 returned variable are destroyed by the MOVSP opcode 5 input arguments are destroyed by the MOVSP opcode (vectors are three floats) Here's the output of the KoTOR2 file k_contain_unlock.ncs: This is definitely a K2 file Subroutine 13, 21 JSR Subroutine 21, 995 JSR Subroutine 995, 1122 Return variables: 0 Local variables: 0 Parameters: 0 Subroutine 1122, 1766 Return variables: 0 Local variables: 0 Parameters: 3 Subroutine 1766, 2948 Return variables: 1 Local variables: 0 Parameters: 2 Subroutine 2948, 6915 JSR Subroutine 6915, 7116 Return variables: 1 Local variables: 0 Parameters: 1 A subroutine with the status "JSR" means it depends upon another subroutine to be reverse compiled first: Sub13 calls Sub21 Sub21 calls Sub995 Sub2948 calls Sub6915 Here's what the other status codes mean: Return variables: 0 - returns void; 1 - returns a single value, e.g. int, float, string or object; a value of 2 or more returns a struct or vector Local variables: 0 - should always be 0, because it's calculated after the stack is cleared; non-zero value means the analysis is flawed Parameters: 0 - there are no input parameters; 1 or more means there are input parameters So, what are the subroutines? Sub13 - void _start() - the hidden routine Sub21 - void _global() - the routine that creates global variables Sub995 - int main() Sub1122 - void PlaceTreasureDisposable(object oContainer = OBJECT_SELF, int numberOfItems = 1, int nItemType = 900) Sub1766 - string GetTreasureBundle (int nItemLevel, int nItemType = 0) Sub2948 - string GetBundlePrefix (int nItemLevel, int nItemType) Sub6915 - string SWTR_GetQuantity(int iCount) Still targeting an update in two weeks. Or earlier.
  2. 1 point
    Good thing it only took someone four years to notice. That might have caused problems.
  3. 1 point
    No everytjing was set to max at 3440x1440p. Yeah, here you go: all Steam settings to max: no other mods, reshade etc. installed BOTH Versions are set to 3440x1440p: (im using the Steam K2 Version from 2020 & Gog ver. from 2020) Steam floor completely dull: Gog shimmering floor as it should be: Steam Door: Gog Door - crisp, high resolution: Steam Door close-up, blurry: Gog Door close-up, crisp: Steam Medic room: Gog medic room: Steam Wall - dull, blurry: Gog Wall: Steam panel - look, how blurry the displays are - though much more obvious ingame: Gog Panel: even from further distance displays look crisp: As you see, the differences are huge! Even more obvious when ingame.
  4. 1 point
    Not an expert by any stretch of the imagination, but in my experience (and based on what several others have reported), the Steam version has many issues like this with graphical mods. In fact, mods that modify lightsaber models and textures do not work, and using the Holowan Duplisaber Beta will crash your game in some modules. Not only that, but the Steam version is generally unstable and plagued with performance bugs anyway, but using large mod-builds, even at it's most stable, causes constant loading and crashing errors, often seemingly out of nowhere. It also becomes more unstable the longer you play it. My most recent build, while fully functional up until an issue rose up with the Dustil Restoration and M4-78 that made Dustil never appear and then removed the dialog option with T3 that unlocks M4-78, the game would crash so often and with so little reason or warning that I started saving after almost every encounter and interaction, as well as restarting the game at least every hour. Even with only RCM installed, Steam has a funny habit of going for anywhere between 2-4 hours of gameplay before it skips over all voice lines in a dialog, and sometimes crashes. The Steam version is absolutely inferior, and I would recommend sticking with GoG, or even going to a Disk version (if you have one, can find one, or even use one). I recently purchased the GoG version, and I'm going to be switching over to it now after this latest experience. It simply is not worth the aneurysms it's bound to strat causing me if I continue to try and mess with it. The Steam version is responsible for having made it impossible for me to finish the game or even reach the Rebuilt Jedi Enclave scene for years, and this is my all-time favorite game. In the words of Darth Sion: I am glad to leave this place... at last.
  5. 1 point
    2. Because they're armed. Because broken men behave in particular ways. Simpering, avoiding eye contact with their master. Lack of confidence. No backtalk. No signs of harsh physical abuse that would be required for such strong-willed individuals to be broken. Scars, bruises, burns, sheered fingers. All the little cruelties that would be expected from a Dark Jedi intending to become a Sith. That sort of thing isn't required for non-force sensitives. 3a. Individual interest outweighs collective interest in Sith philosophy. Extra converts are not worth being overthown, and that's not how the recruitment process works in the academy anyway. They only pick one student in the end. I agree there are other reasons for Bastila not wanting to go on Korriban, but they're not the primary reason. In that regard for risk of temptation, Juhani shouldn't be there either. 3b. There is no way to anticipate that ahead of time. There is no justification for the PC to take that risk when infiltration is the goal. 4. Related to point 2. Murder is fine among the Sith, however, each of them is desperately trying not to be murdered. Uthar's goal is to remain master. His secondary goal is to replace Yuthura because she's too ambitious. His third is to train new Sith. Yuthura wants to bring in a hopeful with Force Sensitive slaves? Cool, he can leave them in his locker until school's out. 5. I'd have just confined all three to the ship. There's a risk of high ranking Sith being present in Dreshdae and I'd want as few questions coming my way as possible. One unknown fallen Jedi coming to Korriban is nothing out of the ordinary, three travelling together at once stands out like a sore thumb. Calo would not have necessarily divulged info of the Ebon Hawk to Malak. He's a famous bounty hunter with a reputation to uphold so he would not want the Sith beating him to the punch. It was also personal matter to him at that point. No one had ever escaped him before. The Ebon Hawk is recognized in Dreshdae only by Czerka employees and smugglers, not the Sith.
  6. 1 point
    Because they are obviously not slaves. I didn't say anything about alignment. The deception was too weak to be believable in all three cases. Were I the Master of a Sith academy I would not consider a person with two Force Sensitive "slaves" as impressive or desirable. I would consider it a threat of potential subterfuge or espionage especially during wartime. There can be only one master in the academy. Having individuals present with ultimate loyalty to a would-be subordinate is foolish. I won't to entertain the "Sith Arrogance" counter-argument either. As for the Governor not recognizing Bastila, it's part of the same issue so I'd have no problem with them correcting it. Either all of them should, or none of them. The Ebon Hawk is a different matter. We have no idea whether the Sith patrols are just picketing their zones for unmarked craft (pirates) or actively searching for it specifically. Some are random encounters, others were sent specifically to intercept. Depends on the circumstances. Freighters were coming and going from Korriban all the time. Czerka ran the outpost there and the Sith themselves were contracting ships to ferry out artifacts from the valley. 3 out of 4 times it would be fine, unless you make Korriban the final planet. Personally, I've always thought it made the most sense narrative-wise to run into the Leviathan leaving Korriban rather than anywhere else, so I usually make it second to last.