AmanoJyaku

Members
  • Content Count

    243
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by AmanoJyaku

  1. Loot is randomly generated upon entry to a module, and based on your character's level. You can obtain (Dark) Jedi Knight robes as early as the Harbinger. If you haven't obtained (Dark) Jedi Master robes until Sion, you're just unlucky. In my most recent play through, I obtained 5 Freedon Nadd's Blasters (the "ultimate" blaster), and only one Mandalorian Disintegrator (obtainable two character levels earlier than Freedon Nadd's). Freedon Nadd's Blaster was useless as I played light side, and by the time I obtained the Disintegrator, I had completed all the solo battles and had no one who could use it. Randomized loot rewards the lucky, and punishes almost everyone else. Personally, I don't think the (Dark) Jedi robes are all that useful on an easy region like Peragus. And by the time you leave Telos, you're much better off with the Ossus Keeper, Nomi's, or Aleema Keto's Robes. You can get the Ossus Keeper Robe relatively early, even from a random container on your first planet. But if you really want a robe that badly, just cheat using the in-game console or the KoTOR Save Editor.
  2. I've encountered a few bugs in TSLRCM and M4-78, and I'm trying to figure out where to post bug reports: DeadlyStream or Steam? After faithfully following advice to "never" use Steam mods, I encountered two M4-78 quests the can't be completed ("Fixing Droids" and "Data Transfer") in the version downloaded here at DeadlyStream. This is supposedly the result of reintroducing bugs into newer versions of M4-78, and the solution is to roll back to an earlier version that's only available on Steam. So it looks like M4-78 has been abandoned here? The second issue I've encountered occurred after Kreia's lesson of listening. I spoke to Atton to learn to play Pazaak, and both my equipped weapons were lost. I checked my inventory and NPCs, they're gone. Instead, I was left with a Pazaak deck (w_pazaak_01). I can fix this with KSE, but I imagine this should be fixed.
  3. Supposedly, the two quests were fixed in an earlier version of M4-78, but newer versions reintroduced the problems. The reported solution is to get TSLRCM/M4-78 from Steam, which has the older, fixed version.
  4. It's been a while, but I figured I'd drop a quick note about the NCS reverse compiler. I have, in fact, been working on it and documenting it. I needed a distraction from all that's happened over the last year and a half, which I won't get into as I don't want to spoil a day of celebration. I have some personal things that need to be done by July, so I won't have any time in May and June.

    The good news is I expect to finish soon after. I've solved the problems other people have been stuck on, like recursive functions and finding structures. I need to perform extensive testing, and each test requires documentation, a review of the documentation, and identifying potential tests to perform. Additionally, as I've discovered errors in NCS files (not sure if vanilla or from mods), I also need to write a reverse compiler that can handle those errors to determine if it can produce usable output.

    Long story short, I'm targeting a release date in September.

    May the 4th be with you, always.

    1. DarthParametric

      DarthParametric

      Glad to hear you are still chipping away. In your absence, @JCarter426 and I have taken a more brute force approach to things. JC hacked DeNCS to allow it to batch process both games and bypass certain common problems. We then manually reconstructed those that couldn't be decompiled by looking at the bytecode. We have decompiled almost all of K1's scripts in this manner, with only about a dozen or so remaining now (I've attached them if you are interested). The results are up on Github:

      https://github.com/KOTORCommunityPatches/Vanilla_KOTOR_Script_Source

      Most are just the straight output from DeNCS, but it also includes those that were manually cleaned up in the course of working on the Community Patches and other mods.

      Things have stalled a little lately, so TSL is still somewhat incomplete. Although it didn't have quite as many issues as K1 did.

      There were some interesting stats to come out of the process. Perhaps the most interesting tidbit was that - for K1 at least - seemingly all the reports of a bytecode mismatch were due to Bioware apparently using an older version of ActionStartConversation with one less variable.

       

      K1 NCS Non-Decompilable.7z

  5. Very excited to try this out at when I get some free time. I've found bugs in the NCS files of my TSLRCM install, so I was considering writing a replacement. Now I don't have to.
  6. I told you as soon as I realized I likely wouldn't be working on the project for a while. The last update was January, my hiatus was May. I had no reason to explain my personal life, I wasn't looking for sympathy. I explained why because I was forced to remind someone this is a hobby, which takes a backseat to real life. I don't owe you, or anyone, an apology. Like other modders, I work on this because I want to, when I am able. I am currently unable, and anyone who cannot accept that is being unreasonable. If earning your acceptance means begging for your forgiveness and subjecting myself to your insults, then I don't want it. You also forget your place: it is you who rely upon me to provide this work. I don't have to do anything, and I honestly wish someone else would continue the work. That's why I've documented my progress in this thread. But no one has, so it continues to fall to me to do what I can. Not for you specifically, because quite frankly you don't deserve it. It's for everyone else who, despite their disappointment, anger, etc... refrained from attacking me even though they didn't get what they want when they wanted it. If you're so set on getting this done, feel free to start a GoFundMe or Patreon. In the meantime, life beckons.
  7. I appreciate the kind words, this is a silly argument that never should have gone beyond my first explanation. Like DrMcCoy, I have to feed the capitalist machine. And like many, I have real life concerns. I'm havinng to dealing with the aftermath of two deaths and two attempted suicides, so I'm not amused when someone has a meltdown over a video game.
  8. I suggest you take a breath and actually read what I wrote: I made it very clear I have nothing to give. Complain all you want, that isn't going to make code that doesn't exist magically appear. This is what I mean when I say you understand NCS. The halting probem has nothing to do with handling recursion in NCS. I've given hints in various posts as to why this is the case, but a formal document would better explain this. You're making this more difficult than it needs to be, which is exactly what I was doing for two years. And my document will explain why. This line of reasoning is why I wouldn't release source code without documentation. The reason browsers accept invalid HTML is because they're designed to. They have a defined specification they know how to work around. That code snippet comes directly from the HTML specification document, and because I know the HTML spec I can write invalid HTML that parses just fine and produces identical output as valid HTML. No such specification exists for NCS, at least nothing we've been able to recover. And you already have an example of NCS documentation without source code: Skywing's NCS bytecode reference. There isn't a single line of code there. This is not up for discussion. In order to write the source code you want I have to finalize the documentation. I've tried to avoid documentation, only to be forced to write it. End of story.
  9. That doesn't work, and there are whole books explaining the importance of documentation. The "why" is far more important that the "how", because why we do something tends to be fixed. How we achieve that thing can take many forms. The only reason I understood your GIT tree is because it resembled the thought processes and code I had written independently in the first two years. However, perusing the comments in your GIT made it clear there's a lot of trial-and-error that's lacking a methodology. I'm documenting the methodology, and in the process discovering things none of us anticipated that has hindered our progress. Fair enough, but disassembly of NCS is trivial because it's a 1-to-1 conversion and can't be compared to reverse compiling back to NWScript. I can't speak for that project, but I can speak for NCS. You've said things that make it clear you don't understand NCS. Structs don't disappear, recursive functions are easy to handle, and you're wasting your time recreating basic blocks and control-flow graphs. But to understand why you need documentation, and I'm not alone in this. Read any specification and you rarely see example code, and certainly not code you can use in production. Regardless, my position on this will not change. I'll release code when I have code to release, which will take longer than assembling the documentation I have. I think it's better if I give an example in a language most people have encountered: HTML. Let's say you're new to HTML and I gave you the following: <!DOCTYPE html> <html lang="en"> <head> <title>Sample page</title> </head> <body> <h1>Sample page</h1> <p>This is a <a href="demo.html">simple</a> sample.</p> <!-- this is a comment --> </body> </html> You might look at every tag and think I made a mistake with the <!DOCTYPE> because it doesn't have an end tag like the rest. But, how would you know? And what if I modified the example to include a break? <!DOCTYPE html> <html lang="en"> <head> <title>Sample page</title> </head> <body> <h1>Sample page</h1> <p>This is a <a href="demo.html">simple</a> sample.</p> <!-- this is a comment --> <br> <p>This is another paragraph.</p> </body> </html> </!DOCTYPE html> Should the <BR> tag be terminated with an end tag?
  10. This is why I'm not releasing the current source, because it doesn't run in the manner you're expecting. A reverse compiler is not like your typical program. Let's say we're collaborating to write a web browser, I'm an expert in image decoding and you're an expert in network transmission. The two pieces are independent of each other, if you inform me you can no longer work on the networking component that does not impact my ability to complete the image decoder. Anyone can pick up where you left off, or scrap your work and start from the beginning. That's not how a reverse compiler works. A reverse compiler works in stages, and each stage requires a formatted input. Without a properly formatted input subsequent stages will fail, which is what's happening now. The documentation I'm writing details what I understand of that format, and that understanding has changed as recently as December. Consequently, the source code has changed. In the last year alone I've rewritten the program from the ground up four times, along with dozens of minor modifications. If I released sources you'd have to toss them in the trash after you realized they don't work. This is also true for your source code. After reviewing your GIT I see you made the same mistakes I did, and that's why you've been struggling to progress. tl;dr This is not about ideology, it's about pragmatism. There's nothing special in the 1,500 lines of code I've written I feel I need to hide. I just know much of that is going to get replaced again. You're better off with a document detailing the format so if I can't figure out the remaining pieces someone else can. And the source will practically write itself.
  11. I'm not saying a reverse compiler isn't useful. But I'd like to know how the remake will change things. If the mod community moves from NWScript/NCS to something new in the remake, a reverse compiler for NCS won't be useful for much beyond historical reasons. And we have no idea if TSL will get a remake, so the reverse compiler may be necessary regardless of the KoTOR remake. So for the moment assume this is on hold rather than canceled. So far I've only seen rumors, no definitive proof beyond switching the game engine to UE. And I don't see why NWScript/NCS can't coexist with UE? I'm not giving up, just busy. And the code isn't important. What's important is the documentation I've compiled explaining how, to my knowledge, NCS works. What I've been documenting is a step-by-step model that takes individual NCS opcodes and recreates higher-level operations, which often lead to higher-level operations of their own. It's rarely a 1-to-1 reversal like "CONSTI 1, CONSTI 1, ADDII" (which is "1 + 1" in NWScipt), and often requires examining operations in various contexts. For example, the JMP opcode shows up in four types of statements: Expression statements Jump statements Iteration statements Selection statements And there are three jump statements and two selection statements. That's a total of seven contexts to examine (1 + 3 + 1 + 2). And I've identified an actual error in at least one NCS compiler. I need to figure out if the reverse compiler should try to reverse those broken files, or just quit and complain.
  12. Life's been hectic, it's been a while since I've worked on this. This is on hold indefinitely unless I get some free time. Also, I'm waiting for the KoTOR remake. It would be silly to find out the remake either includes a reverse compiler or replaces NCS scripts with something else.
  13. Where is this "Earth"? In the Unknown Regions?
  14. I would replace Mission with Yuthura, Yuthura is much cooler. 🤭 There's a hole in the admiral's head, and Juhani's neck is broken. The force really does work in mysterious ways.
  15. Maybe one of these? 601DAN_Winners 602DAN_Winners
  16. A degenerate has no ethics or morals. 😁 It means there's a problem with the geometry: Edges with no length. Faces with no areas (faces on a point or thin faces). Face corners with no area. https://docs.blender.org/manual/en/latest/modeling/meshes/editing/mesh/cleanup.html
  17. May the Fool be with you, always

    1. Malkior

      Malkior

      Happy Atton Day!

  18. Since you mentioned swkotor2.ini I assume that means TSL. The console is not visible in TSL, but it does work.
  19. Start from an earlier save, the game doesn't give second chances.
  20. WordPress? I'd rather kiss a rancor...

  21. As a general rule, tests of equality should place the constant first as assignment will prevent compilation. So: //Incorrect, and compiles if (nPersuade = 0){} //Incorrect, but won't compile if (0 = nPersuade){} //Correct, and always compiles if (0 == nPersuade){} Get in the habit of placing constants on the left, regardless of the operation. Also, thinking about it some more Jolee should have skill bonuses. His revelation of what makes him a grey Jedi is important, perhaps the most important backstory in the game. It helps us understand Revan, Exile, and Kreia.
  22. That weird feeling when you're getting tons of paying work, but you really just want to finish your mod...

    1. DarthParametric

      DarthParametric

      Time to sub-contract!

    2. AmanoJyaku

      AmanoJyaku

      I've exactly 0 dollars for that, not if I don't want to feel like a Czerka slaver

    3. LDR

      LDR

      I feel this in my soul.

  23. AFAIK, a trigger is just a defined area where a script can fire upon entry and another can fire upon exit. The trigger areas are already defined in the GIT files (unless you plan to move them), so you only need to modify or replace the scripts to be fired upon entry and/or exit. The rest I think can be done completely in the scripts, you may not even need new global variables. As an example: TSL's Nar Shaddaa airspeeder sidequest is to help avoid the trigger that sends you to Goto.