Blade Posted January 9, 2017 Report Share Posted January 9, 2017 I've just pushed the beginings of a Zero Hour reimplementation project to https://github.com/T...blyArmada/Thyme if anyone is interested in contributing to such a project.The project is using a similar approach to the one recently used successfully by the OpenRCT2 project. That is, the reimplementation is initially being implemented as a dll that is injected into the game run time that replaces the games functions with new implementations as they are written, allowing it to be reimplemented a bit at a time.I've already reimplemented the custom memory allocator the game uses as well as a couple of string classes. Its very early days for the project, but if anyone has some C++ knowledge and is interested in getting involved, drop by the #thyme channel on freenode.net IRC. When some significant progress has been made it should become possible to fix engine bugs and add additional features to the game. 2 Quote Link to comment Share on other sites More sharing options...
Raap Posted January 9, 2017 Report Share Posted January 9, 2017 I can't be of any assistance, but I wish you luck with it. How big is the Generals modding community these days anyhow? I confess to not having kept up with any of the C&C RTS projects. 0 Quote Link to comment Share on other sites More sharing options...
Einstein Posted January 10, 2017 Report Share Posted January 10, 2017 Hello Blade, and welcome to W3D Hub! I likely cant help either but also wish you good luck! It sounds like you're off to a good start. Do keep us updated on your project and maybe it will attract you some help. 0 Quote Link to comment Share on other sites More sharing options...
ChopBam Posted January 10, 2017 Report Share Posted January 10, 2017 I loved Zero Hour and its major mods, although the massive desync issues in MP games ended up pushing me away from the engine. Is that something you think is fixable with this project? 0 Quote Link to comment Share on other sites More sharing options...
Blade Posted January 10, 2017 Author Report Share Posted January 10, 2017 Until its further along, its hard to say exactly possible, but when we have an entire reimplementation there shouldn't be anything we can't change about the game. If nothing else, having a source reimplementation will allow tracking down the source of the desyncs more easily through the use of debug builds that log information about the game state. 0 Quote Link to comment Share on other sites More sharing options...
Eternity 6 Posted January 10, 2017 Report Share Posted January 10, 2017 (edited) Have you put this up in other places ? Such as the forums at SWR , CNCNZ , Project Perfect Mod , Revora , cncnet and perhaps the forms for openra . These are all of the main forums that I can think of that discuss C&C things so if your looking for help these would be where you should ask for it . Here are their addresses : http://forums.swr-productions.com/ http://forums.cncnz.com/ http://www.ppmforums.com/index.php https://forums.revora.net/ https://forums.cncnet.org/ http://www.sleipnirstuff.com/forum/viewforum.php?f=80 There was another project like this a year or two ago , I'll see if I can find some info on it . EDIT : Found it ! OpenSage : https://github.com/feliwir/openSage You may want to look up the two people who contributed to it they may be interested in helping . Feliwir : https://github.com/feliwir? Tarcontar : https://github.com/Tarcontar Edited January 10, 2017 by Eternity 6 3 Quote Link to comment Share on other sites More sharing options...
MPRA2 Posted January 11, 2017 Report Share Posted January 11, 2017 if it means i can finally play ZH and other mods on my Windows 8.1 with my overkill 980 (Generals seems to lag and run around 10-20fps no matter what I do) I'll bite...... please. 0 Quote Link to comment Share on other sites More sharing options...
Raap Posted January 11, 2017 Report Share Posted January 11, 2017 A lot of the older RTS games no longer function on modern operating systems and hardware. Try running Tiberian Sun or Red Alert 2 on Windows 10, it's not going to happen. 0 Quote Link to comment Share on other sites More sharing options...
Blade Posted January 11, 2017 Author Report Share Posted January 11, 2017 The issues with playing them on windows 10 are because the safedisk driver is blacklisted as I understand it. A no-cd crack should fix them, though I think they have issues running in true 32bit mode due to the way they blit the screen. Generals ZH also has an issue with the safedisk driver, but as with TS and probably RA2, the safedisk check is done in a launcher, the main binary is fine, it just looks for the launcher. I already reimplemented the functions that check the launcher. It now does something like bool isLauncherRunning() { return true; }. 2 Quote Link to comment Share on other sites More sharing options...
Isaac The Madd Posted January 11, 2017 Report Share Posted January 11, 2017 A lot of the older RTS games no longer function on modern operating systems and hardware. Try running Tiberian Sun or Red Alert 2 on Windows 10, it's not going to happen. I am going to take this moment to remind everyone that Ramapastring's TS client is a thing, also there is the current CNCnet TS client as well. (Both seem to work on Windows 10.) 0 Quote Link to comment Share on other sites More sharing options...
Einstein Posted January 11, 2017 Report Share Posted January 11, 2017 Yes, I think that it is worth mentioning that all of cncnet's things work on windows 10 just fine from what I can tell. Kudos to whoever is maintaining that stuff. So Blade, do you have any sort of time table in mind for your project? Milestones or things of that sort? Or will it just work like most things around here and just go as fast as you and your people have time to do it? EDIT: I meant to ask about the name. Where did the name "Thyme" come from? Seems like there's a cooking herb or something called that if I recall. 0 Quote Link to comment Share on other sites More sharing options...
Ulysses Posted January 12, 2017 Report Share Posted January 12, 2017 CNCNet has a Windows 10 patch for Tiberian Sun. I do believe that you would need to have the game already installed on your system, which you can get digitally through Origin, either the game itself (which I would recommend) or through the Ultimate Collection, which is horrible in all honesty because the games can't be modified due to the INI files not being present. 0 Quote Link to comment Share on other sites More sharing options...
Blade Posted January 12, 2017 Author Report Share Posted January 12, 2017 Its one of those "done when its done" things that I work on when I have chance I'm afraid. Its probably going to be quite slow until I get it to the point where its interesting enough to get more contributors, but we are probably talking years as the engine is quite large. Regarding the name, Sage (as in SAGE engine, the name of the engine Generals uses) and Thyme are both herbs and "Thyme" is pronounced the same as "time" which is a recurring focus of many of the C&C games. 2 Quote Link to comment Share on other sites More sharing options...
Voe Posted January 12, 2017 Report Share Posted January 12, 2017 Regarding the name, Sage (as in SAGE engine, the name of the engine Generals uses) and Thyme are both herbs and "Thyme" is pronounced the same as "time" which is a recurring focus of many of the C&C games. It didn't occur to me. Clever 0 Quote Link to comment Share on other sites More sharing options...
Raap Posted January 12, 2017 Report Share Posted January 12, 2017 (edited) Cheers for the Windows 10 patch tips, if I need a nostalgia fix I'll look them up. (Besides running those old games, I do wonder if anyone is looking to improve them performance-wise as well.) Edit: C&CNet seems popular. Why don't C&CNet and W3DHub cooperate? Both provide a similar service, access to fan-driven C&C content (fan-driven also including service operation for older games). And C&CNet doesn't support Renegade (W3D), so it's not like the games would compete. Edit2: Actually, who even runs the Renegade server listing service these days? I know W3D projects like APB and Reborn have disconnected from that service, but how about Renegade itself, does it even have players left playing it? Edited January 12, 2017 by Raap 0 Quote Link to comment Share on other sites More sharing options...
Blade Posted January 12, 2017 Author Report Share Posted January 12, 2017 Until recently I believe C&CNet did, but they recently divested themselves of it due to lack of man power IIRC in maintaining it. Not sure who took over managing it. 0 Quote Link to comment Share on other sites More sharing options...
Einstein Posted January 12, 2017 Report Share Posted January 12, 2017 To keep from junking up this thread, we should probably start another one on that because thats vastly different subject matter. Also, pretty sure (based on a dns trace) that cncnet still does run the GSA master server clone, though the listing thing on their site is down. Renlist seems to still be connecting there though. @Raap, yes dozens of people every day still play renegade Cool stuff about the name! I did not think of that either. You're a clever boy! 0 Quote Link to comment Share on other sites More sharing options...
OWA Posted January 20, 2017 Report Share Posted January 20, 2017 Edit2: Actually, who even runs the Renegade server listing service these days? I know W3D projects like APB and Reborn have disconnected from that service, but how about Renegade itself, does it even have players left playing it? Afaik XWIS still runs it. 0 Quote Link to comment Share on other sites More sharing options...
Raap Posted January 20, 2017 Report Share Posted January 20, 2017 (edited) Edit2: Actually, who even runs the Renegade server listing service these days? I know W3D projects like APB and Reborn have disconnected from that service, but how about Renegade itself, does it even have players left playing it? Afaik XWIS still runs it. It seems they no longer have a "proper" website, just a page with a few links and a forum, which has a few recent posts in it. Not to be the usual doom prophet, but consider approaching them with some consolidation in mind. What's left of the broader C&C community is too little to be kept fractured like it is. But then again, I've always been in favor of more actively attempting to move things around. Why is there even... 3? Different C&C match hosting services? Why does everyone always have to be so bloody stubborn and refuse project cooperation? Edited January 20, 2017 by Raap 0 Quote Link to comment Share on other sites More sharing options...
Omar007 Posted January 20, 2017 Report Share Posted January 20, 2017 Afaik XWIS is the one running Westwood Online. They do nothing GSA related. 0 Quote Link to comment Share on other sites More sharing options...
Einstein Posted January 23, 2017 Report Share Posted January 23, 2017 The Imperial Age mod breaks up some of that tug'o'war and tediousness, repetitiveness that you're talking about mak. I know you know, but others may not. 0 Quote Link to comment Share on other sites More sharing options...
Blade Posted February 8, 2017 Author Report Share Posted February 8, 2017 For anyone keeping track, I've pushed some work on the filesystem and hooked enough that I can call the original filesystem functions to handle files. Some parts of it I can't reimplement fully until later in the project as they pass around C++ STL objects and the binary interface for those changes between MSVC versions, so I need to reimplement everything that uses them at the same time. I've started looking at the ini file parsing now, and a lot of that should be replaceable though. 0 Quote Link to comment Share on other sites More sharing options...
Einstein Posted February 8, 2017 Report Share Posted February 8, 2017 Cool, thanks for the update! Sounds like things are going well! 0 Quote Link to comment Share on other sites More sharing options...
Blade Posted March 2, 2017 Author Report Share Posted March 2, 2017 Made an interesting discovery, it seems that the game was written against STLPort rather than the standard c++ library that comes with MSVC and we think we've identified the version they used so with a bit of massaging to get it compiling, we have an ABI compatible C++ library implementation making it much easier to implement and test functions one at a time, even those that rely on STL containers which we didn't think we could touch until later. 3 Quote Link to comment Share on other sites More sharing options...
Raap Posted March 3, 2017 Report Share Posted March 3, 2017 22 hours ago, Blade said: Made an interesting discovery, it seems that the game was written against STLPort rather than the standard c++ library that comes with MSVC and we think we've identified the version they used so with a bit of massaging to get it compiling, we have an ABI compatible C++ library implementation making it much easier to implement and test functions one at a time, even those that rely on STL containers which we didn't think we could touch until later. You may as well have spoken out a curse in some demonic language since I would understand both of these things at equal capacity, but sure thing mate, good work on what very likely translates into: progress! 2 Quote Link to comment Share on other sites More sharing options...
Einstein Posted March 3, 2017 Report Share Posted March 3, 2017 Haha, Translation: They've figured out more details about the sort of code they're working with here, much like how our scripts guys dissected and studied and subsequently were able to make their own implementations of the W3D engine code. And yes, I would think this probably qualifies as progress Good work Blade, and thanks for the update! 0 Quote Link to comment Share on other sites More sharing options...
Blade Posted March 4, 2017 Author Report Share Posted March 4, 2017 Part of the standard C++ is a library of data structures and algorithms such as std::vector or std::map, the behaviour of which is mandated by a standard. However the underlying implementation isn't defined so different compilers implement them differently. The implementation even changes between compiler versions. Provided your program is self contained and doesn't try and pass these data structures between dll's or anything the fact that the implementation can change over time doesn't matter though because the version your program uses is set in stone when you compile it. However when you are trying to hook into an older existing binary where some functions do pass them around and some of the data structures contain them, the differences basically mean things don't line up correctly when you try and re-implement them so functions that theoretically would match the original in behaviour don't match at a binary level, you need to use the same implementation as the original. Part of the reimplementation is working out the layout of the data structures for things like the INI file parser and the big file loader so they can interoperate with the original code and having the correct C++ implementation makes that much easier. 2 Quote Link to comment Share on other sites More sharing options...
Blade Posted March 29, 2017 Author Report Share Posted March 29, 2017 Thanks to the STLPort stuff I've been able to fully reimplement the filesystem code and the string file parser now. I've also mapped out most of the global options class, a few members are still unknown or uncertain, but all the user configurable options are mapped. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.