|
Members in Shoutbox
None.
Shoutbox Search
Shoutbox Commands
/w [name] > Whisper
/r > Reply to last whisper /me > Marks as action Shoutbox Information
Moderators may delete any and all shouts at will.
|
Global Shoutbox
Please log in to shout.
[2016-4-16. : 11:26 am] Clokr_ -- Good thing about editors is they use the game .mpq datafiles, so you are not really distributing any Blizzard propietary stuff.[2016-4-16. : 11:24 am] Neiv -- https://torrentfreak.com/blizzard-nukes-popular-html5-version-of-starcraft-game-151010/[2016-4-16. : 11:23 am] Neiv -- Even if that game's engine was created from scratch and a worse implementation than what our map editors have[2016-4-16. : 11:23 am] Clokr_ -- I knew about the HTML5 C&C which is still up somewhere. Very laggy though.[2016-4-16. : 11:23 am] Neiv -- But when that one "HTML5 starcraft" took their assets and advertised itself as a "recreation", that's something they'll care more about[2016-4-16. : 11:21 am] Neiv -- True, but I don't believe that they consider sprite animating to be that large part of the engine[2016-4-16. : 11:18 am] Clokr_ -- They don't need to know what iscript is, just check the editor has animations and that the source code is hosted for everyone to fork and build another SC engine. Of course at this point I only imagine Blizzard becoming aware of chkdraft if someone actually forks it to build a SC clone ![]() [2016-4-16. : 11:02 am] Neiv -- (Obviously they shouldn't be told about Chkdraft anyways, no reason to get attention from them)[2016-4-16. : 11:01 am] Neiv -- I doubt Blizzard has more than a single developer who knows what iscript is.. I doubt they care if their older games are reverse engineered in a way that doesn't cause them directly to lose sales.[2016-4-16. : 9:53 am] Clokr_ -- Also I'm pretty sure if Blizzard finds out there's an iscript-complete editor source code in github they will try to shut it down...[2016-4-16. : 9:52 am] Clokr_ -- But porting assembly is kind of boring IMO, it's more fun to make it your way[2016-4-16. : 9:51 am] Clokr_ -- I actually had to figure out what some iscript opcodes did, as all the iscript editing programs got them completely wrong[2016-4-16. : 9:50 am] Clokr_ -- Is he directly porting it from SC? Heh, a lot more is known since I wrote the SF:U iscript handler ![]() [2016-4-16. : 9:47 am] jjf28 -- all his: https://github.com/saintofidiocy/Chkdraft/blob/master/Chkdraft/src/Graphics2.cpp ; if he finishes it gives him like 1/5th authorship ![]() [2016-4-16. : 9:29 am] O)FaRTy1billion[MM] -- aw, my glasses broke. Now how am I supposed to see without my contacts? ![]() [2016-4-16. : 9:23 am] O)FaRTy1billion[MM] -- Clokr_Clokr_ shouted: Ah so good, SEN looks a lot younger with Farty back to coding I added stuff to ChkDraft ... I just never finished it ![]() ![]() [2016-4-16. : 9:23 am] O)FaRTy1billion[MM] -- fortunately all the ones that had a hardcoded offset were movzx edx,byte ptre ds:[eax*2 + thing] ![]() [2016-4-16. : 9:22 am] O)FaRTy1billion[MM] -- mov dl,xx / call whatever, and the function is movzx edx,dl / add edx,eax / movzx edx,word ptr ds:[edx*2 + offset] / retn[2016-4-16. : 9:20 am] O)FaRTy1billion[MM] -- NeivNeiv shouted: Buttonset ids would cause a issue, I think? And inconsistencies aren't good, bw has enough hardcoded things anyways D: I had to make one of these functions use mov DL,XX because of hardcoded ones so it's not 1 opcode then retn[2016-4-16. : 9:19 am] O)FaRTy1billion[MM] -- cool, flingy IDs in functions seem to be at least 16-bit too[2016-4-16. : 8:52 am] Clokr_ -- FaRTy1billionFaRTy1billion shouted: I don't know if it's better to just have a huge function with just tons of hardcoded *(int*)(stuff) = stuff, or to just have a bunch of hardcoded arrays of pointers and values Bear in mind a new patch is on the way, so use the option which is easiest to modify![]() [2016-4-16. : 8:51 am] Neiv -- Right, no need to cause additional headache by using the few weird onesO[2016-4-16. : 8:51 am] Clokr_ -- I guess, it is fine though if you can really use as many unit entries as you wish ![]() [2016-4-16. : 8:50 am] Neiv -- Buttonset ids would cause a issue, I think? And inconsistencies aren't good, bw has enough hardcoded things anyways D:[2016-4-16. : 8:49 am] Clokr_ -- You can probably use them just fine. They just won't be detected by triggers. But they might be perfectly fine as subunits, for example.[2016-4-16. : 8:49 am] O)FaRTy1billion[MM] -- I don't know if it's better to just have a huge function with just tons of hardcoded *(int*)(stuff) = stuff, or to just have a bunch of hardcoded arrays of pointers and values ![]() [2016-4-16. : 8:46 am] Neiv -- You could also just name the units 228 to 235-or-so "DO NOT USE", and let bw keep their special meaning ? ![]() [2016-4-16. : 8:45 am] Neiv -- Yea, unit ids are used a lot but they're 2 bytes everywhere I remember[2016-4-16. : 8:44 am] Neiv -- There's 358 units and bullets total, why would 256 flingies be acceptable D:[2016-4-16. : 8:43 am] O)FaRTy1billion[MM] -- Clokr_Clokr_ shouted: FaRTy1billion I was expecting this kind of problems to appear. Even if you had no space, you can in some situations remove previous instructions, replace them with some call and place them in a new function. It's only a problem because apparently 256 flingies isn't good enough. ![]() [2016-4-16. : 8:43 am] O)FaRTy1billion[MM] -- I'm replacing them with like mov eax,ecx / call func_AA, which contains only movzx eax,word ptr ds:[eax*2 + 6644F8] / retn[2016-4-16. : 8:42 am] Clokr_ -- FaRTy1billionFaRTy1billion shouted: I can do it in 3 really tiny functions. xD One that movs to eax, one that movs to ecx, and one that movs to edx. Then the 7 bytes can be replaced with the appropriate mov e_x,e_x and the 5 byte call to the function I was expecting this kind of problems to appear. Even if you had no space, you can in some situations remove previous instructions, replace them with some call and place them in a new function.[2016-4-16. : 8:42 am] O)FaRTy1billion[MM] -- It's fine, I just found some memory I can dump my 9-byte, 2-opcode functions in ![]() [2016-4-16. : 8:31 am] Neiv -- FaRTy1billionFaRTy1billion shouted: ya, movzx thing,word ptr [thing*2 + stuff] is a byte bigger than movzx thing, byte ptr [thing + stuff] Ah, I didn't realize that it had to be multiplied by 2 D:[2016-4-16. : 8:31 am] Clokr_ -- FaRTy1billionFaRTy1billion shouted: Clokr_ Images.dat has some other stuff to do but shouldn't be too hard ... the one that will be hard is units.dat I was talking about convincing you ![]() [2016-4-16. : 8:18 am] O)FaRTy1billion[MM] -- I can do it in 3 really tiny functions. xD One that movs to eax, one that movs to ecx, and one that movs to edx. Then the 7 bytes can be replaced with the appropriate mov e_x,e_x and the 5 byte call to the function[2016-4-16. : 7:50 am] O)FaRTy1billion[MM] -- that movzx is 7 bytes, a call is 5, and a mov thing,thing appears to be 2, so that seems the best solution[2016-4-16. : 7:48 am] O)FaRTy1billion[MM] -- lol I could replace them to a call to a function that just does MOVZX EDX,BYTE PTR DS:[EAX+6644F9] and returns[2016-4-16. : 7:45 am] O)FaRTy1billion[MM] -- and a couple of these are in a place where it might be tricky to just push the rest of the function down 1 byte[2016-4-16. : 7:42 am] O)FaRTy1billion[MM] -- ya, movzx thing,word ptr [thing*2 + stuff] is a byte bigger than movzx thing, byte ptr [thing + stuff][2016-4-16. : 7:40 am] O)FaRTy1billion[MM] -- NeivNeiv shouted: And changing byte to word with movzx seems to be the same size, though a regular mov with word requires an additional instruction byte D: I'm getting it a byte bigger[2016-4-16. : 7:33 am] O)FaRTy1billion[MM] -- Clokr_Clokr_ shouted: FaRTy1billion I knew it would work Images.dat has some other stuff to do but shouldn't be too hard ... the one that will be hard is units.dat![]() [2016-4-16. : 7:32 am] O)FaRTy1billion[MM] -- lil-Infernolil-Inferno shouted: REAL NIGGA HOURS WHO DA FUCC UP? I' mabout to go to bed ol[2016-4-16. : 7:11 am] Clokr_ -- FaRTy1billionFaRTy1billion shouted: Well thanks clokr_ for interesting me in this. I spent a whole day on it I knew it would work ![]() ![]() [2016-4-16. : 5:45 am] O)FaRTy1billion[MM] -- oh, GetCurrentProcess has all access, so that should work[2016-4-16. : 5:40 am] O)FaRTy1billion[MM] -- What would really be easy, though, is to reduce the number of entries. ![]() [2016-4-16. : 5:37 am] O)FaRTy1billion[MM] -- I got all the addresses for all the dat files, so it should be simple to apply this to any of them (units.dat has a ton of other stuff thatd need to be changed though)[2016-4-16. : 5:36 am] O)FaRTy1billion[MM] -- Well thanks clokr_ for interesting me in this. I spent a whole day on it ![]() |