:: Home :: Get Hosted :: PPM FAQ :: Forum FAQ :: Search :: Memberlist :: Usergroups :: Register :: Profile :: Log in to check your private messages :: Log in ::
Do you want to advertise at Project Perfect Mod. Find out how to do it HERE.

The time now is Sat Jul 22, 2017 2:49 am
All times are UTC + 0
 Forum index » Modding Central » Generals Editing Forum
Thyme, a generals ZH reimplementation project.
Moderators: Generals Moderators, Global Moderators
Post new topic   Reply to topic Page 1 of 1 [12 Posts] View previous topic :: View next topic
Author Message
Blade
Cyborg Commando


Joined: 23 Dec 2003

PostPosted: Wed Jan 11, 2017 3:04 pm    Post subject:   Thyme, a generals ZH reimplementation project. Reply with quote

I've just pushed the beginings of a Zero Hour reimplementation project to https://github.com/TheAssemblyArmada/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.

Back to top
View user's profile Send private message
temp
Rocket Infantry


Joined: 17 Oct 2015

PostPosted: Thu Jan 19, 2017 4:06 pm    Post subject: Reply with quote

so ,basically this is ares for  Zero hour.
good job!

Back to top
View user's profile Send private message
Blade
Cyborg Commando


Joined: 23 Dec 2003

PostPosted: Fri Jan 20, 2017 11:07 am    Post subject: Reply with quote

Essentially, yes, in that the two projects work in similar manners.

The difference is with goals though, Ares is focused (at least publicly) on implementing new features ASAP, reimplementing only what is necessary, whereas I want to focus on reimplementation and add new features only when the reimplementation progress makes it possible. The end goal for Thyme is also to totally replace the original binary, whereas that isn't a stated goal for Ares I don't believe.

Back to top
View user's profile Send private message
G-E
General


Joined: 09 Feb 2015

PostPosted: Fri Jan 20, 2017 11:24 am    Post subject: Reply with quote

What benefits do you see re-implementing everything?
_________________
http://www.moddb.com/mods/scorched-earth-ra2-mod-with-smart-ai

Back to top
View user's profile Send private message
Blade
Cyborg Commando


Joined: 23 Dec 2003

PostPosted: Fri Jan 20, 2017 12:45 pm    Post subject: Reply with quote

Portability mainly, Linux and Mac versions that can play Windows player for example should be possible. The possibility to recompile for more modern CPU's to take advantage of SSE for or replace the API used for graphics rendering would also be benefits.

Back to top
View user's profile Send private message
Graion Dilach
Defense Minister


Joined: 22 Nov 2010
Location: Iszkaszentgyörgy, Hungary

PostPosted: Sat Jan 21, 2017 5:35 pm    Post subject: Reply with quote

How do you intend to work around the copyright issues dds and mp3 involve?
_________________



AS Discord server: https://discord.gg/7aM7Hm2

Back to top
View user's profile Send private message MSN Messenger
Blade
Cyborg Commando


Joined: 23 Dec 2003

PostPosted: Sat Jan 21, 2017 10:02 pm    Post subject: Reply with quote

What copyright issues are you talking about?

I believe you are confused with patents, the last of which expires in April for MP3 and October for S3TC, the texture compression codec used in DirectX textures, after which I will be free to include compatably licensed libraries implementing them or write my own implementations.

Since I don't expect to have finished reimplementing everything in the game by October, it seems my "workaround" will simply be to wait the patents out.

Back to top
View user's profile Send private message
Blade
Cyborg Commando


Joined: 23 Dec 2003

PostPosted: Thu Mar 02, 2017 3:54 pm    Post subject: Reply with quote

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.

Back to top
View user's profile Send private message
Blade
Cyborg Commando


Joined: 23 Dec 2003

PostPosted: Thu Jul 06, 2017 9:52 am    Post subject: Reply with quote

A little update for those who don't obsessively click refresh on the github page. Filesystem handling is pretty much done, as is string file handling. Most of the guts of the INI parsing system are done, specific functions for parsing into specific types of file are being implemented as the classes they feed are.

The layouts for classes that get allocated during the game engines initialisation are slowly being worked out, right now I'm looking at the audio engine which is huge. Currently it links against something called Miles Sound System which is a commercial sound library but I'll want to implement an alternative around OpenAL instead since I can't use Miles in an open project.

There are several useful things that i could implement currently. I've already started adding debug logs for errors that occur when reading ini files, but even what I've added so far can be improved by logging file names and line numbers. I could also alter the way that .str files are treated so they could be utf-8 formatted rather than just plain ascii which the currently are. That way if you include extra strings with a map, you could use foreign symbols in it.

Largely I'm still just trying to focus on reimplementing logic rather than adding many improvements just yet though. I've also started to think about the possibility of building the incomplete stand alone binary so that its easier down the line to switch without a big refactor and to test cross platform building of the project to see where alternative functions need using/writing.

Back to top
View user's profile Send private message
Banshee
Supreme Banshee


Joined: 15 Aug 2002
Location: Brazil

PostPosted: Fri Jul 07, 2017 2:29 am    Post subject: Reply with quote

Very interesting. However, this conversion of Miles Sound System to OpenAL is something that seems to be a little bit complex to be done. Do you really need to touch the audio part, since Generals (and Renegade) uses Miles, according to its official site and such conversion might take a lot of time to be done. I don't know anything about Miles nor OpenAL, although I believe their design seems to be quite different, since OpenAL is inspired on OpenGL while Miles might have taken a completely different direction. Good luck with that anyway.

Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Blade
Cyborg Commando


Joined: 23 Dec 2003

PostPosted: Tue Jul 11, 2017 8:46 pm    Post subject: Reply with quote

The interface for the AudioManager is a virtual interface thankfully. This has two consequences. First, if we match the virtual table layout (which we've already done for the filesystem for example, so we know its possible), then we can easily call the original miles engine from our code. Second is that the use of miles is abstracted, so the acutal implementation under the hood can be completely different and the original code will still be able to use it so long as the results are the same.

At any rate, if thyme ever wants to run standalone and entirely replace the original binary, it will have to switch to a different audio library for the audio engine as miles doesn't provide any kind of free version that I'm aware of.

I'm more concerned about replacing the DirectX 8 rendering engine to be honest, lots of complicated floating point math to make sense of there.

Back to top
View user's profile Send private message
Blade
Cyborg Commando


Joined: 23 Dec 2003

PostPosted: Wed Jul 19, 2017 9:19 am    Post subject: Reply with quote

I've made the github wiki functionality available at https://github.com/TheAssemblyArmada/Thyme/wiki. Its a bit bare bones for the time being, but if anyone wants to contribute anything to it, I've made the wiki publicly editable. I'll be adding useful information to it as I uncover it in the engine.

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Page 1 of 1 [12 Posts] View previous topic :: View next topic
 Forum index » Modding Central » Generals Editing Forum
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © phpBB Group

Wildcard SSL Certificates
[ Time: 0.1115s ][ Queries: 12 (0.0052s) ][ Debug on ]