Taimon Posted September 16, 2009 Author Share Posted September 16, 2009 I'm trying to install your EXE hacks (mostly for the songlist "fix"), and it's not working. I have an otherwise ordinary ToB install, latest patch (26498), English language, and so forth. Ascension64's EXE patches work just fine, but none of yours will install ("Target bytes don't match"). And I mean literally none of them. Exactly which version of ToB are they designed for? ToB v26498 on Windows. This is the same executable for all languages. A64 does some scanning to find the correct place while I use fixed offsets. What is the md5sum of your officially patched executable? Link to comment
Guest Guest_Anonymous_* Posted September 16, 2009 Share Posted September 16, 2009 What is the md5sum of your officially patched executable? A little md5sum tool I found via Google returns, for my unmodified (backup) BGMain.exe, 064b6287db3be4d849dbc1d9c81ae323. Link to comment
Taimon Posted September 17, 2009 Author Share Posted September 17, 2009 Here is the data from my executable: md5sum: b519702eec18da69c846c3bdbebac438 sha1: 8c3ac2807fb36bb9446911062e695bb50c7d7f3d size: 7839790 Bytes file version: 2.5.0.2 private build: 26498 Not sure why yours is different. Is the file size the same? Link to comment
Guest Guest_Anonymous_* Posted September 17, 2009 Share Posted September 17, 2009 Not sure why yours is different. Is the file size the same? D'oh! Apparently I have 26499, not 26498. It's been in my ancient (5 years old, maybe?) clean install so long I forgot it was there. According to this it "fixes 26498 if slow load times appear." Must've sounded good at the time. Any chance you could be bothered to rewrite your patches to scan for the relevant code like A64's stuff? Or at worst write a separate version for 26499? If not, I can always reinstall and use 26498 instead. I'm sorry about the confusion/trouble. Link to comment
the bigg Posted September 17, 2009 Share Posted September 17, 2009 26499 is buggy, because it removes information from the save games to speed the load times. Use 26498 instead (you can simply install 26498 over 26499 to downgrade if you haven't installed any mods). Link to comment
Taimon Posted September 17, 2009 Author Share Posted September 17, 2009 Any chance you could be bothered to rewrite your patches to scan for the relevant code like A64's stuff? Nope. Some patches modify (and depend on) too many things. And some of them might need to be modified for different game versions. Or at worst write a separate version for 26499? I guess you don't have any idea on how much time reversing/creating patches takes. Sorry, not gonna happen. It's v26498 or nothing for me. Link to comment
the bigg Posted September 18, 2009 Share Posted September 18, 2009 Any chance you could publish/link to a tutorial and/or publish a list of useful effects and constants? There's an heap of those annoying race/class/whatever hardcoded restrictions that look like they might be broken with not too much effort... Link to comment
Taimon Posted September 20, 2009 Author Share Posted September 20, 2009 Sorry, I don't really understand what you are asking for. Can you rephrase? (A tutorial for reversing? The scope would be a bit too much for me. It's all about learning data structures and execution flow and giving names to addresses.) Link to comment
the bigg Posted September 20, 2009 Share Posted September 20, 2009 Well, I decided to try and make it so that non-fighters get the specialization attacks per round. I've downloaded a trainer creator and managed to hunt down the point in the executable where attacks per round are set; however, NOPping various jmp instructions right before that didn't work. So, I was wondering if there's a better way to understand the program flow than reading assembler (there's a couple of EXE->C code generators on the net, but all those I've tried are 16 bit only or can't translate bgmain.exe). Link to comment
cmorgan Posted September 20, 2009 Share Posted September 20, 2009 Have you guys thought of the whole JA 2 1.13 "externalize the .exe to xml libraries" thing? I realize that JA2 is an older game than BG2, but it also feels like Taimon has gotten where the JA2 folks did just before they decided to simply farm the whole thing out. I am not talking about rebuilding the whole set of game resources, just hooking existing calls to externalized libraries. (Like I even know what I am talking about. Heh.) Link to comment
the bigg Posted September 20, 2009 Share Posted September 20, 2009 Calls are externalized to dlls (there is such a mod for IWD2). XML libraries don't exist Link to comment
lynx Posted September 20, 2009 Share Posted September 20, 2009 cmorgan, you're forgetting a key thing there - ja2 was open sourced. Link to comment
Taimon Posted September 20, 2009 Author Share Posted September 20, 2009 So, I was wondering if there's a better way to understand the program flow than reading assembler I can only speak for me, but I actually read asm instructions. However, I'm using an interactive disassembler, that allows me to give names to things (local vars, addresses, etc.). It also does some structure decoding, if you provide the structure. (IDA Pro) That coupled with the debugger (hw breakpoints) and knowledge about the structures allows me to understand/trace what the exe is doing. The key point for me was getting familiar with the executable (building a DB of names and structures). Some parts now almost read like source code. I invested large amounts of time, though. (Also keep in mind that this is my first reversing project.) Link to comment
Taimon Posted September 20, 2009 Author Share Posted September 20, 2009 Have you guys thought of the whole JA 2 1.13 "externalize the .exe to xml libraries" thing? As lynx already said, JA2 was open sourced, they can recompile the executable - not an option for us. I'm trying to externalize things to 2DA whenever possible. However, my list is too large and I don't have much time right now. I've been thinking about moving some things to a LUA lib, to make investigating easier for other people. Still on the design boards, though. Link to comment
the bigg Posted September 20, 2009 Share Posted September 20, 2009 I can only speak for me, but I actually read asm instructions. However, I'm using an interactive disassembler, that allows me to give names to things (local vars, addresses, etc.). It also does some structure decoding, if you provide the structure. (IDA Pro) Thanks for giving a googlable name. Unfortunately the price is out of my $0~$0 acceptable range, and I mistrust torrenting stuff that costly, so I'll pass the opportunity Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.