Difference between revisions of "User talk:Xusilak"

From UFOpaedia
Jump to navigation Jump to search
(nevermind)
Line 23: Line 23:
 
Any reason why IDA crashes when I load the .idc file? It says: Attempt to call a database related function without a database. Do I need a plugin? Using v5.2 [[User:J'ordos|J'ordos]] 17:23, 28 April 2010 (EDT)
 
Any reason why IDA crashes when I load the .idc file? It says: Attempt to call a database related function without a database. Do I need a plugin? Using v5.2 [[User:J'ordos|J'ordos]] 17:23, 28 April 2010 (EDT)
 
:never mind just realized I need to add this over the disassembled file, right? [[User:J'ordos|J'ordos]] 17:26, 28 April 2010 (EDT)
 
:never mind just realized I need to add this over the disassembled file, right? [[User:J'ordos|J'ordos]] 17:26, 28 April 2010 (EDT)
 +
::Yep. Disassemble the TFTD CE exe, then load the IDC on top of it. --[[User:Xusilak|Xusilak]] 19:09, 28 April 2010 (EDT)
  
 
== KeeperFX ==
 
== KeeperFX ==

Revision as of 23:09, 28 April 2010

Feel free to discuss anything related to my projects here! --Xusilak 15:42, 24 March 2010 (EDT)


I'm smiling for a reason.

TSIA ;) - Amphibious Tentaculat 18:45, 24 March 2010 (EDT)

Potential Projects

Good set of potential projects, I like! Spike 19:28, 24 March 2010 (EDT)

Especially looking forward to the TFTD patches! By the way, xcomutil already allows you to set the difficulty value to any number you wish. J'ordos 08:40, 2 April 2010 (EDT)

Interesting; I didn't know that. However, my experiments with high difficulty levels showed that exceeding the defaults will break certain aspects of the game, like spawning arbitrary numbers of aliens in missions. My primary goal there is to make those difficulty levels fully functional, with expected results for spawn numbers, capping overflows, and so on. My secondary goal is to make it easier to use those difficulty levels by adding the Advanced Difficulty configuration to the main difficulty screen. Thanks for the tip, though.
As for TFTD, I have a few usable patches implemented already, but I think I'll leave it up to Seb to compile and release it with his current patcher, if he wants to. Seb, if you happen to see this, let me know how you feel about the TFTD patches I'm working on. I'd prefer if you compile and release it alongside the X-COM patcher, to ensure compatibility, as I use VS2010 RC for developing right now. Either way, it'll be a while before that happens, as I'm working on testing and adding more functionality. Thanks! --Xusilak 13:18, 2 April 2010 (EDT)
I do not work on TFTD mainly for 2 reasons: first, I don't play it; second, redoing the same things all over again is not that much interesting to me. If you want to make it happen though, I'll gladly take the opportunity to make that available for everyone in the loader. Also if you need some help analysing some bits of asm don't hesitate to ask; I'll help if I can. Good luck and have fun! Seb76 15:46, 2 April 2010 (EDT)
OK, that's fine. I don't know how much work I'll get done on TFTD, but I do want to get it to the point where all of the basic UI upgrades are done. Since you're not interested in working on it, I may just release it independently as a separate project on my own user page here, if you don't mind. That way it won't interfere with your other work. I will credit you as the main developer of it, of course, and continue to contribute original X-COM patches to UFOExtender as I develop them. --Xusilak 17:33, 2 April 2010 (EDT)
Also, for clarity, I'll provide the source code for the TFTD patcher when I start releasing them. --Xusilak 17:38, 2 April 2010 (EDT)

TFTD Database

Maybe you could publish the TFTD patch database on this site, as it evolves. Initially it will have a lot of gaps, but if you publish the gaps people will know what to look for. You will probably get volunteers who will hunt down the patches for the things that they are particularly interested in. The work will go faster with collaboration. Spike 05:19, 3 April 2010 (EDT)

For now, I think it will go faster if I focus on it. I'm already about 40% done naming the variables and functions that are already known from X-COM, thanks to Seb. Once I've gotten that bit done (should be within a week or so) and gotten the patcher itself to a useful state, I'll go ahead and publish both the IDA database and the patcher source code here. --Xusilak 11:24, 3 April 2010 (EDT)

Any reason why IDA crashes when I load the .idc file? It says: Attempt to call a database related function without a database. Do I need a plugin? Using v5.2 J'ordos 17:23, 28 April 2010 (EDT)

never mind just realized I need to add this over the disassembled file, right? J'ordos 17:26, 28 April 2010 (EDT)
Yep. Disassemble the TFTD CE exe, then load the IDC on top of it. --Xusilak 19:09, 28 April 2010 (EDT)

KeeperFX

Hello, first of all, i would like to say that you guys (you and Seb) are doing great job :)

I've found some project for Dungeon Keeper, which can be considered similar to what you're doing, but it's done quite different way (i believe). If i understand correctly, you're somehow altering x-com code in memory after launching it? Author of keeperfx is doing it such way (qoute from website):

http://keeper.lubie.org/html/dk_keeperfx.php

Instead, I've learned binary formats of EXE and DLL files, and modified the Dungeon Keeper executable file to become a DLL. With my new DLL, I was able to create very simple executable file which may be used as complete code to run the game. Now I'm incrementally rewriting DK; functions which are not yet rewritten are called from the DLL, so the project functions like whole game, even tho it wasn't completely rewritten yet.

Here's instruction how to change exe to dll: http://keeper.lubie.org/other_docs/change_exe_to_dll.htm

I wonder if such way could be useful (and possible) for x-com (tftd) extender? Would it be easier to add new things? Would it allow to gradually rewrite whole game from scratch? What do you think? --Michal 13:11, 13 April 2010 (EDT)

Interesting idea. Thanks for mentioning that. What we're doing now is similar, but essentially the inverse of this. We're using DLL injection to replace X-COM functions and code at run-time. So, we have the game using its normal EXE and the patcher using a DLL. His method is focused specifically on rewriting the game, but in an incremental way that doesn't require him to go for years without seeing any results. That method would be very poor for doing the kind of patching we're doing now, because we'd have to rewrite all of the core loop code in X-COM before we could get to a point where we could start implementing our new functionality. This is because the replacement game EXE can't simply inject functions at certain points in the original game DLL's function calls, at least not without doing what we do now (patching memory directly). In the end, there's no particular benefit to doing small patches through that EXE-based method. It would be an advantage if we were trying to rewrite the game entirely, with an emphasis on rewriting the core code and working our way up, but that's not what we're doing; if we did want to do that, it could be done through the DLL injection method painlessly, and then converted to its own EXE once we finished rewriting the game. It is unlikely that we'll try to rewrite the game, however, because it would be an extremely lengthy and arduous task; if I were doing it alone, it would take years. Our current technique of simply extending X-COM's existing code produces much more immediate and beneficial results.
Thanks again for posting a link to this, though. It might be useful to me in the future. --Xusilak 19:33, 13 April 2010 (EDT)

X-COM bugs that TFTD inherits

Since I'm going to be translating patches from X-COM to TFTD now, I could use some information on which bugs need to be fixed in TFTD that existed in X-COM. If anyone has such information, I'd greatly appreciate it, as it would save me the effort of testing each bug. In particular, a list of which of Seb's bug-fix patches could still usefully apply to TFTD would be awesome. Note that I don't need information on TFTD-specific bugs, just bugs that TFTD inherits from X-COM. Thanks in advance! --Xusilak 20:20, 15 April 2010 (EDT)

Scroll speed in tactical mode is reduced. It is too fast for certain hardware configurations
Phantom radar bug fixed. Radar coverage is updated when facilities are destructed
Pay for dirt bug removed. The cause was a funny one ^_^
If you're tired of having to reselect your TU reserve mode at the begining of each turn, then the "Save Reserve Mode" patch is for you :)
Base disjoint bug
Radar stacking enabled. Credits go to Spike for I used something close to his formula.
Vertical waypoints blaster bomb bug
Garbled video output due to ignored pitch
Problem with last salvo during dogfights. The ship won't retreat when running out of ammo, allowing the last salvo to hit. Not the perfect solution, but you may still find this useful.
Armed state issues with proximity grenades when reloading a game. Should also fix "What just exploded?"
Experience issue with proximity grenades. The thrower now gets the experience, not the poor alien that blows up...
Refueling issue when transfered crafts arrive (enabled by default if you use the "Crafts Always Ready" mod)
Elerium fueled crafts bug when fuel level is 50%
Displayed Base Maintenance Cost Bug
Door jam
Robotic Manufacturing / Cybernetic Laboratories. You cannot get more than 255 engineers/scientists, buying more will just result in them being lost during transfer...
Funky fire fix: Fire/stun damage applied only at the end of the turn. Maximum fire damage increased from 5 to 10 to compensate
Hostile Civilians fix. Not really tested, may fix some mind control abuses.
Animations Speed: Reduce the animation speed of cursors and smoke/fire.
Almost all bugs were transferred over AFAIK :) can't remember if the game did remember the TU reserve mode though. J'ordos 10:22, 20 April 2010 (EDT)
Thanks! I really appreciate this list; it should save me a good deal of time. Hopefully I'll be able to get most of them fixed by the end of the month. --Xusilak 13:14, 20 April 2010 (EDT)