This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Serge
Pages: 1 2 3 [4] 5 6 7 8 9 10 11 ... 103
61
« on: May 02, 2016, 08:17:02 AM »
Is there a different way to download it as my computer does not allow me at all to run the exe
The full version will be based of SergePatcher, so it should make it easier for people with aggressive antivirii (I guess that's what's blocking you). For now, all I can do is send you a link to a Zipped version, which might help. Sorry!
62
« on: May 02, 2016, 05:00:00 AM »
I'm now thinking of releasing the full thing on May 26th... when RA3 is due for release. Gives me some time to polish everything off, too.
EDIT: Updated the main post to reflect this.
63
« on: May 01, 2016, 03:09:28 PM »
So yes, I was able to also patch being able attach anything to anything... I could also patch being able to intersect components. Now I'm really not sure whether I should release this. I'm afraid RA2 will never be the same afterwards.  Elders of the community, what to do? EDIT: Decided to release this on the 26th. See original post.
64
« on: May 01, 2016, 02:45:24 PM »
Probably a false positive since I was able to run it just fine after disabling my AV, downloading it and then re-enabling the AV, but I thought I'd just let you know.
It's a Smart Feature (tm) by Avast that triggers when you download from a little known site (ie., mine). According to their forums: Hi, DomainRep is a new feature of Avast, so let me explain a bit. It blocks EXE files downloads if these conditions are *all* met: 1. The file is not prevalent enough, ie. not enough Avast users launched the file yet, 2. The domain is not prevalent enough, ie. not enough Avast users downloaded (any) EXE files from the domain yet, 3. The file is not signed or Avast does not trust the signature. Sorry about that. If someone from GTM packs this into a .zip and uploads it to the site downloads, I'll update links to point there instead.
65
« on: May 01, 2016, 02:24:51 PM »
Robot Arena 2: Component Freeedom I finally sat down and managed to remove the 7-component limit in an hour or so. Feels good. It took, what, only a couple of years? And I have a few other things brewing as well... v.2.0 - FinalStatus: Released! Features: - Removes 7 component chain limit
- Allows attachment of components to any type of attachment points (including slave points)
- Allows intersection with other components
- Removes mass limit
Download link: --> GTM Downloads Link <--To install, extract anywhere and read the included 'README (seriously!)'.txt file. You will be able to choose from a SergePatcher based version and a static .exe version. v.1.0 - TeaserStatus: Obsolete. Features: - Removes 7 component chain limit
- Removes robot mass limit
- No SergePatcher version

Screenshots / Proof 7-component limit removal:  Attachment point type restriction removal:  Technical details Here was the procedure for finding the relevant 7-component-limit-code: - Get a working debugger (in my case, winedbg, because the game suddenly started working under wine)
- Do some basic static analysis off strings and shit to find sub_42c850 (I call it BotLab::ComponentCursorMoved)
- Bisect with a debugger the point at which breakpoints only trigger on placeable components, find that point to be the return value of sub_4dcd50 (I call it BotLab::CanPlaceComponent)
- Follow with a debugger (via vtable call) to sub_45e9d0, which I call Component::CanAttach, find comparison
- ????
- PATCH!
.text:0045E9D0 ; =============== S U B R O U T I N E ======================================= .text:0045E9D0 .text:0045E9D0 Component::CanAttach proc near ; .text:0045E9D0 .text:0045E9D0 sub esp, 38h .text:0045E9D3 push esi .text:0045E9D4 mov esi, ecx .text:0045E9D6 push edi .text:0045E9D7 mov edi, [esp+40h+arg_4] .text:0045E9DB mov eax, [esi] .text:0045E9DD push edi .text:0045E9DE call dword ptr [eax+40h] .text:0045E9E1 test al, al .text:0045E9E3 jz loc_45EB04 .text:0045E9E9 cmp dword ptr [esi+0E4h], 7 .text:0045E9F0 jge loc_45EB04 .text:0045E9F6 mov ecx, edi .text:0045E9F8 call sub_416930 .text:0045E9FD mov ecx, [esp+40h+arg_8] .text:0045EA01 push eax .text:0045EA02 lea edx, [esp+44h+var_28] The interesting comparison is, of course, at 0x0045E9E9. To remove the limit, I patched the following jge to 6x NOP, so: 0x5E9F0: 0F 8D 0E 01 00 00 -> 90 90 90 90 90 90 And, of course, to remove the mass limit we apply the old sergepatcher mod (see sergepatcher_mass.py), but statically: 0x2F7BA: 75 06 -> EB 06
66
« on: May 01, 2016, 01:20:02 PM »
I love it when Serge comes back occasionally.
I love it when I come back and see that people still use the crappy tools I cobbled together 10 (!) years ago. Seriously.
67
« on: May 01, 2016, 12:51:27 PM »
will try to hex edit some stuff in RA2 later on(like the weight limits)
That's actually pretty easy, as the game will shout at you when you try to exceed a weight limit, and you can trace back from there. Heck, you can get the actual patch offsets from my unlimited mass mod if you so wish. I'm looking into removing the 7-component limit (again!) I feel like I'm really close, sub_45e9d0 looks the entry point that decides whether a component will render as placed or not (and do some other stuff in between). This is now so much easier with a working debugger, I was way overambitious with trying to do this statically. Seriously, this is like a few hour job for someone on Windows with OllyDbg. Hopefully I'll get this done before RA3 gets released
68
« on: May 01, 2016, 12:13:07 PM »
Paste this in def __init__, making sure "import random" is at the very top of the py.
self.whichtrack = random.randint(1, 12) if self.whichtrack == 1: self.AddSound = plus.createSound("Sounds/track1.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 2: self.AddSound = plus.createSound("Sounds/track2.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 3: self.AddSound = plus.createSound("Sounds/track3.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 4: self.AddSound = plus.createSound("Sounds/track4.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 5: self.AddSound = plus.createSound("Sounds/track5.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 6: self.AddSound = plus.createSound("Sounds/track6.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 7: self.AddSound = plus.createSound("Sounds/track7.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 8: self.AddSound = plus.createSound("Sounds/track8.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 9: self.AddSound = plus.createSound("Sounds/track9.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 10: self.AddSound = plus.createSound("Sounds/track10.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 11: self.AddSound = plus.createSound("Sounds/track11.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound) elif self.whichtrack == 12: self.AddSound = plus.createSound("Sounds/track12.wav", False, (0, 0, 0)) plus.loopSound(self.AddSound)
You can make this a little bit less ugly like so (untested): sounds = ["Sounds/track1.wav", "Sounds/track2.wav", "Sounds/track3.wav"] # etc... self.AddSound = plus.CreateSound(random.choice(sounds), False, (0,0,0)) plus.loopSound(self.AddSound)
or: sounds = ["Sounds/track%i.wav" % i for i in range(1, 12+1)] self.AddSound = plus.CreateSound(random.choice(sounds), False, (0,0,0)) plus.loopSound(self.AddSound)
or even: sound = "Sounds/track%i.wav" % random.randint(1, 12) self.AddSound = plus.CreateSound(sound, False, (0,0,0)) plus.loopSound(self.AddSound)
(does AddSound even have to be a object variable? if not, just call it plus_sound or something...)
69
« on: May 01, 2016, 12:03:39 PM »
Interesting, while I don't know you I guess you were one of RA2's biggest and most important members in the past. I'm just a random dude with a disassembler (and now a debugger, too!). Also I guess this allows us to play RA2 "forever" even after Microsoft messed up windows reverse compatibility because they wanted more people to move over to new windows products.
It sounds like you're trying to push an anti-Microsoft agenda here
70
« on: May 01, 2016, 11:30:14 AM »
I am totally gravedigging a 3 year old thread. Just wanted to say, that as of Wine 1.9.5, RA2 seems to be fully working! Hooray, more old games on Linux.
71
« on: May 01, 2016, 10:34:53 AM »
Heh. From the EULA: Except as expressly permitted by applicable law, You may not decompile, modify, reverse engineer, disassemble or otherwise reproduce the Software. Not that this has ever stopped anyone, but it's yet another example how lawyers are the main reason why we can never have nice things.
72
« on: January 25, 2016, 05:49:53 PM »
If you're getting decent results with that setup then it means that you know what you're doing :). That conversion isn't bad at all. The Z motor moves the knee, and the quill is fixed, right?
Anyway, keep up the great work! I'm moving in a few days, so I'm abandoning my Hackerspace's machine shop and need to find something new. Maybe I'll build a combat robot as a test of the new workshop capabilities..? :D
73
« on: January 25, 2016, 05:39:26 PM »
Hey, it's 2016, but I think this is still a decent thread.
I've been brainstorming with a few clever friends on how to approach the problem of the .exe, especially how to get rid of the 7-component-limit.
As you might've heard, it's pretty complex, with tons of instantiated STL templates, C++ object vtables and whatnot. This more or less rules out static analysis. What I'd like to do some day (maybe 2018? :D) is to run a whole bunch of traces of the .exe, before and after hitting the 7-component-limit, and in that way pinpoint the codepath that actually implements the fail-branch of the check. I invite you all to try, the tooling is there (although not sure if for Windows), albeit a bit slow.
74
« on: January 25, 2016, 05:31:29 PM »
>.freeforums.net
Come on man, try harder!
75
« on: January 25, 2016, 05:29:54 PM »
Yeah, the sprocket was awful, but it does look better from there.
Come on, show us some pics of your setup, I'm a sucker for some behind the scenes footage. Been doing some lightweight machining recently (on a crapped out Bridgeport Series 1 MDI), and I need some inspiration :).
76
« on: January 25, 2016, 05:02:15 PM »
Hey man, show us some of that machining porn! What kind of mill are you using?
(also, yes, your finish is quite bad, well, depends how much you enjoy toolmarks :D)
77
« on: July 21, 2015, 12:22:00 AM »
We are back!
78
« on: July 21, 2015, 12:20:36 AM »
Technical difficulties! Please stand by.
79
« on: July 20, 2015, 09:03:08 PM »
Since we're streaming for the first time, we have no idea what the quality is like. Please let us know if we can be understood and heard.
80
« on: July 20, 2015, 08:50:19 PM »
So, this thing is happening right now for some reason. If you enjoy dry humor and bad robot builders, hop on in or whatever:
Pages: 1 2 3 [4] 5 6 7 8 9 10 11 ... 103
|