Fallout 2 mod FO2 Engine Tweaks (Sfall)

Discussion in 'Fallout General Modding' started by Dude101, Jul 30, 2007.

  1. Cubik2k

    Cubik2k Where'd That 6th Toe Come From?
    Modder

    470
    Nov 22, 2005
    I have problem with using multiple patches with sfall in FO2
    How to configure ddraw.ini to use few patches?

    I tryied much possibilities and it doesn't work (with names like patch000.dat patch001.dat patch0001.dat and other)

    I need some example.
    I have three files:
    mod.dat
    patch1.dat
    patch2.dat

    What names of files I have to use and how to config ddraw.ini for them?

    I use sfall 1.37 for WinXP
     
  2. Timeslip

    Timeslip Water Chip? Been There, Done That
    Modder

    921
    Aug 15, 2007
    You want fallout to load multiple patches at once? I don't think that's possible; if you can't do it with vanilla fallout then sfall wont help. It lets you change the name of the patch file, but nothing beyond that.

    The 000, 001, 002 thing is just because fallout checks multiple file names. You can't actually load a 000 and 001 patch at the same time afaik.
     
  3. Cubik2k

    Cubik2k Where'd That 6th Toe Come From?
    Modder

    470
    Nov 22, 2005
    Thanks Timeslip.

    I did not understand this comment from ddraw.ini so my question:

    I understand that I can use few patches at once with sfall ;) hehe.
    So my misunderstanding ;)
     
  4. Timeslip

    Timeslip Water Chip? Been There, Done That
    Modder

    921
    Aug 15, 2007
    Ah, that's worded a bit badly in sfall.ini. If patch000.dat exists, only that one will be loaded. If it doesn't, fallout will look for patch001.dat, and so on. The '%03d' bit is printf format.
     
  5. Helios

    Helios First time out of the vault

    41
    Apr 2, 2003
    I have make two more functions for sfall.
    The write_int () command and the call_offset () command.

    For write_int () you need 2 values, firstly, the offset in decimal, and secondly what value you put the offset wants.

    Here's an example:
    Code:
    write_int(5310788,8); //This command end the combat. 
    For call_offset () only the offset is needed.
    Example:
    Code:
    call_offset(4472692); //Opens Helpscreen
    In addition, I have written a header with some usefull functions ther use this commands. Macros for Goris animation, combat function, mouse input ect.
    I haven't enough time to put all into the header. Many engine functions are unknown at the moment. Ther are over 3600 functions. But I think for the most people it's easier to do this on script as direct in sfall. The most modder can't program C++ or Assembler. But everybody can use Cheat Engine or another memory tool to find out more. This is my opinion.

    In this pack are the modified sfall, the compiler and the header. http://www.file-upload.net/download-1395976/Pack.rar.html
     
  6. Mr.Wolna

    Mr.Wolna Vault Senior Citizen

    Nov 15, 2007
    this will became all my dreams come true! i hope modders with more programming expiriance as me will look at this, it amesome. thank you helios.
     
  7. Cubik2k

    Cubik2k Where'd That 6th Toe Come From?
    Modder

    470
    Nov 22, 2005
    Helios, your ddraw.dll file is not working on my computer with old AthlonXP 2500!

    I wrote about it to Timeslip several months ago, you can read it on earlier posts in this topic.
     
  8. Helios

    Helios First time out of the vault

    41
    Apr 2, 2003
    Cubik on my second PC (AthlonXP 2600 with XP) it work correct.
    I have forgot to tell that I have use the November 2008 SDK to compile sfall. That mean you must update the dx Version to 9.25. I hope this will help.
     
  9. Cubik2k

    Cubik2k Where'd That 6th Toe Come From?
    Modder

    470
    Nov 22, 2005
    Ok, thanks I will try DX Nov 2008 then :)
     
  10. Mr.Wolna

    Mr.Wolna Vault Senior Citizen

    Nov 15, 2007
    with this two new thinks you can ripp all you want in the fo engine.
     
  11. zenbitz

    zenbitz First time out of the vault

    84
    Dec 18, 2008
    I am no lawyer, but I don't think "rules" or "game mechanics" are copyrightable. They *might* be patentable, but I am pretty sure SPECIAL is not patented.

    You absolutley cannot steal the CODE. You cannot steal/repurpose the artwork (i.e, I don't think you can SELL a mod without licensing agreement). The license agreement you "agreed" to might have said something about not "reverse engineering" Fallout.

    But what about SPECIAL are they going to get you on? The name might be trademarked. The names of the stats are used in 100s of RPGs spanning 30 years. Ditto the skills. % skills, levels, xp, and even some for of perks have been around for dozens of years in RPGs. The DT/DR armor system system (and a couple of other mechanics) is ripped directly from GURPS.

    The combination of these things might be unique to SPECIAL, but there's nothing really "special" about them.

    That's assuming Beth would even bother to worry about you if you weren't publishing a retail competitor game (for a game that was released almost 11 years ago!).

    That being said... how do I mod the engine to use GURPS instead of SPECIAL? <grin>
     
  12. Timeslip

    Timeslip Water Chip? Been There, Done That
    Modder

    921
    Aug 15, 2007
    Did you want me to include those functions in the official version? You don't seem to have included the modified source code in that download...

    I did actually have reasoning behind not including generic memory write functions, even though I already have read functions; It's easy to cause problems by writing over something you shouldn't, and it moves the burden of bug fixing away from sfall to the mods themselves. If there are 3 mods using your 'write_int(5310788,8);' command to stop combat, and it turns out that under some conditions it doesn't work or crashes, then rather than me just having to fix a single stop_combat() function, all 3 mods will need to be fixed and re-released individually. On the other hand, since I'm not making regular updates any more I suppose a few write functions will let people do stuff that wouldn't be possible otherwise, and I have write_byte, write_short and write_int functions of my own in there already anyway.

    Edit: ok, 1.38 is out. Aside from 11 new functions for writing memory and calling offsets, there's one extra function to change the hp per level modifier. (i.e. the extra hp you get regardless of your endurance: 2 by default) and an option for disabling the compatibility mode check.
     
  13. Helios

    Helios First time out of the vault

    41
    Apr 2, 2003
    I thought yours focus would be Fallout 3. I was not sure if there are additional updates for sfall will come. Ok you wrote your own functions. Your call functions are better then my one, but I have't much time for this.

    Thanks for your work :)

    I hope that the other modders recognize the opportunities.
     
  14. Timeslip

    Timeslip Water Chip? Been There, Done That
    Modder

    921
    Aug 15, 2007
    I am mainly focusing on fallout 3, but I released a new version of fomm yesterday so I'm taking a little break while the next round of bug reports come in. :)

    Speaking of source code, I noticed on the german forum that you said you didn't have my modified sslc source code and had to add the rest of sfall's functions back in by hand. That was available here. (I've added a link to it on the normal sfall download page, so that it's a bit easier to find next time.)
     
  15. Jordan

    Jordan It Wandered In From the Wastes

    106
    May 8, 2008
    Timeslip

    Code:
    procedure map_enter_p_proc begin
    
    write_int(5358484, 1); - STRENGTH
    
    end
    
    When I use your ddraw and compile.exe (1.38a), it does not work.

    When I use ddraw and compile.exe Helios, it works.

    What is the problem?
     
  16. Timeslip

    Timeslip Water Chip? Been There, Done That
    Modder

    921
    Aug 15, 2007
    There's an ini option you need to set to turn on the read_xxx, write_xxx and call_xxx functions. Set AllowUnsafeScripting to 1.

    And I really really hope you were just doing that to check that it works. If people start using generic memory writing functions for things that can be accomplished by normal scripting you're just going to be causing more problems for yourself. (In that case, set_pc_base_stat(0, 1)' would have done exactly the same thing.)
     
  17. Glovz

    Glovz Vault Dweller
    Modder

    736
    Sep 16, 2005
    Any thoughts on this Timeslip?
     
  18. Timeslip

    Timeslip Water Chip? Been There, Done That
    Modder

    921
    Aug 15, 2007
    I'd need to find where the death animation is chosen, and then work out how fallout picks it. I'm not really sure how to find that. :(

    I'll keep an eye out though, and let you know if I have any ideas.

    Edit: 1.39 is up.
     
  19. Glovz

    Glovz Vault Dweller
    Modder

    736
    Sep 16, 2005
    Another one for you Timeslip. ;)
     
  20. Josan12

    Josan12 Vault Senior Citizen

    Oct 15, 2007
    Hey Timeslip: also - do you have any idea how to modify the body-part to-hit chance in the .exe?

    I would love to be able to make a tiny mod that makes the eyes much harder to hit (IMO the single greatest culprit for making FO2 too easy ....)

    What do you think?