Jump to content
FunkyFr3sh

Dune 2000 1.06p - Game patching (bug fixes, new features)

Recommended Posts

Download latest version here: dune2000.exe

 

Features: Features.txt

 

Optional Files:

Compatibility fix for all versions of Windows + Linux + macOS https://github.com/CnCNet/cnc-ddraw/releases

Dune 2000 Config tool: Dune2000Config.exe

Mission Launcher (95+ extra missions): MissionLauncher.zip

Improved Skirmish/LAN/Online lobby: cncnet5.exe

Multi-Language (English/German/French/Spanish) created by Morphosis: MultiLanguage.zip

rules.ini: rules.ini

 

Note: Extract the files to your game folder

 

Credits

  • FunkyFr3sh - 1.06p patch creator
  • hifi - Patching framework creator
  • Sonarpulse - Patching framework creator
  • mvi - Ported the sub-house patch
  • CCHyper - Provided symbols and made the sub-house patch
  • D2k Sardaukar - Created the automatic high res graphic generator for the high resolution patch
  • tomsons26 - New dune2000.exe icon
  • N.Kindt - Creator of the first working high res patch
Edited by FunkyFr3sh
  • Upvote 10

Share this post


Link to post
Share on other sites

Finally the new patching framework is ready for Dune2000 too!

What can we do with it? Well, it allows us to add as much new code to dune2000.dat as we want without space limitations!

Writing patches is now also possible in C, the github repo includes an example file (its the hotkey patch i been showing here some days ago converted to C)

Download here: https://github.com/cnc-patch/dune2k

It would be cool if we could get all patches together into that one repo

Does someone have any patches i could add? Someone got the source for the high-res patch?

-

Special thanks go to hifi and Sonarpulse, they both invented the new system

Wow, a new hotkey system (also waypoints :)) would help to keep the game fresh immensely.

Share this post


Link to post
Share on other sites

I got the source for the high resolution patch for a large part (in Python). The other part is written by N.Kindt which does the actual editing of the .dat file. I think most of the changes in the .dat file, if needed, can be figured out without the source code. There are some edits done by N.Kindt to prevent crashes that are more difficult to figure out.

 

The patching framework sounds very interesting. Currently don't have the time to get my head around it.

Share this post


Link to post
Share on other sites

Wow, a new hotkey system (also waypoints :)) would help to keep the game fresh immensely.

Anything is possible now :D My aim is to keep the game compatible to the original version (to avoid OOS, crashes), that adds some limitations but we are still able to do tons of cools things!

I got the source for the high resolution patch for a large part (in Python). The other part is written by N.Kindt which does the actual editing of the .dat file. I think most of the changes in the .dat file, if needed, can be figured out without the source code. There are some edits done by N.Kindt to prevent crashes that are more difficult to figure out.

The patching framework sounds very interesting. Currently don't have the time to get my head around it.

Yes it is possible to pull them from dune2000.dat, i didnt check yet how many changes the high res patch does, might do it tomorrow

Share this post


Link to post
Share on other sites

Just had a look through this, looks really great!

 

It would be good to see about documenting useful locations for inserting our own code.

Share this post


Link to post
Share on other sites

Sadly you still need to know some asm to find the locations even if its now possible to write the patches in C :(

Once you have found the location you just insert a call to your C function and do all the magic in there

Share this post


Link to post
Share on other sites

Well hopefully we can compile a public list of locations as we find them.

 

I've started using the patching system, it seems very easy to use and I've already got some interesting things working!

Share this post


Link to post
Share on other sites

Not sure if this is been posted before, I think CCHyper and D2k Sardaukar have looked into it before. But I've just written a quick patch to try out the patching system, which allows you to toggle the debug mode on and off using the Q key:

 

bPAufza.png

 

 

  • Upvote 4

Share this post


Link to post
Share on other sites

Well hopefully we can compile a public list of locations as we find them.

I've started using the patching system, it seems very easy to use and I've already got some interesting things working!

Sonarpulse just added some goodies the other day, those include some new macros like @HACK and @REPLACE

 

Not sure if this is been posted before, I think CCHyper and D2k Sardaukar have looked into it before. But I've just written a quick patch to try out the patching system, which allows you to toggle the debug mode on and off using the Q key:

bPAufza.png

Thats pretty neat, i think i have seen this debug mode on a screenshot before but have never seen it myself live :D good job

Share this post


Link to post
Share on other sites

Wow guys, this is amazing!

 

Does this mean we can add stuff like multiplayer co-op and working multiplayer mission-type maps like in C&C 95/RA?

  • Upvote 1

Share this post


Link to post
Share on other sites

Sonarpulse just added some goodies the other day, those include some new macros like @HACK and @REPLACE and also this:

https://github.com/cnc-patch/dune2k/blob/master/sym.asm

https://github.com/cnc-patch/dune2k/blob/master/callsites.asm

That's cool, perhaps you could add a brief outline of what the macros do and how to use them :)

 

I've started putting together a list of useful variable locations and functions. The sym.asm file looks like a good idea, but it doesn't mention data types (or size) or function signatures which is what I've been putting in my list. Maybe it could be extended or used with a C file, so that we can build up a list of variable and function pointers.

Share this post


Link to post
Share on other sites

Wow guys, this is amazing!

Does this mean we can add stuff like multiplayer co-op and working multiplayer mission-type maps like in C&C 95/RA?

probably, at least everything is now much easier :D mvi was already doing some very interesting things

That's cool, perhaps you could add a brief outline of what the macros do and how to use them :)

I've started putting together a list of useful variable locations and functions. The sym.asm file looks like a good idea, but it doesn't mention data types (or size) or function signatures which is what I've been putting in my list. Maybe it could be extended or used with a C file, so that we can build up a list of variable and function pointers.

I guess i dont need to answer to this since we been talking on irc about it, but for everyone else who is interested in this -> check out our repo on github, we will add more stuff the next days to show how we are going to do this :D

Share this post


Link to post
Share on other sites

Not sure if this is been posted before, I think CCHyper and D2k Sardaukar have looked into it before. But I've just written a quick patch to try out the patching system, which allows you to toggle the debug mode on and off using the Q key:

 

bPAufza.png

Funny, that was already easily possible with my d2kx program. The program also contains lots of memory locations which we might be able to use for this patching framework. For quick hotkey adding d2kx is nice, but for real code injection this framework (with being able to inject C code) looks way better. Making it opensource is also nice.

 

Edit:

Lets say I want to inject code when a sound is played. There is a certain function (don't which one at the moment) in the code that is always called when a sound needs to be played. How do I apply this framework? Where do I make the inject? I guess I need to know the location where the function starts and inject from there or should I change the jmp everywhere it's being used to a new location? A small tutorial would be nice.

Edited by D2k Sardaukar

Share this post


Link to post
Share on other sites

As a suggestion, I'd say a priority would be making missions work in practice/multiplayer, so please guys have a look for that :D Being able to improve AI wouldn't hurt either, but idk if the AI is gonna be an easy thing.

Share this post


Link to post
Share on other sites

Does this mean we can add stuff like multiplayer co-op and working multiplayer mission-type maps like in C&C 95/RA?

For C&C95, that would require finding the auto-hunt bug, though, and find out why the AI in multiplayer keeps mindlessly churning out units. AI in multiplayer C&C1 seems severely... lobotomized.

Share this post


Link to post
Share on other sites

For C&C95, that would require finding the auto-hunt bug, though, and find out why the AI in multiplayer keeps mindlessly churning out units. AI in multiplayer C&C1 seems severely... lobotomized.

I was referring to the ability to have buildings, units and triggers in online.

Share this post


Link to post
Share on other sites

Umm. That already works? With all the limitations of single player AI, mind you. No one's ever going to bother writing a completely new base planning and AI in assembler language.

As for what these limitations are, here's an article I wrote on that:

http://www.moddb.com/mods/command-conquer-unofficial-patch-106/features/base-building-in-cnc95-skirmish

Share this post


Link to post
Share on other sites

Umm. That already works? With all the limitations of single player AI, mind you. No one's ever going to bother writing a completely new base planning and AI in assembler language.

As for what these limitations are, here's an article I wrote on that:

http://www.moddb.com/mods/command-conquer-unofficial-patch-106/features/base-building-in-cnc95-skirmish

Man you do realise we're talking about Dune 2000 here right? :)

Share this post


Link to post
Share on other sites

You said "like in C&C 95/RA". I was just showing that C&C95 has no such thing, and will never have it either.

Share this post


Link to post
Share on other sites

You said "like in C&C 95/RA". I was just showing that C&C95 has no such thing, and will never have it either.

It has, you can start with buildings and triggers do work right?

Share this post


Link to post
Share on other sites

It has, you can start with buildings and triggers do work right?

Yes, but AI units don't. They blindly attack the most northern target on the map from the moment they are produced. As for triggers, most of those are activated by specific houses, or give stuff specifically to "the player house", so not sure how well most of them would work.

Share this post


Link to post
Share on other sites

Yes, but AI units don't. They blindly attack the most northern target on the map from the moment they are produced. As for triggers, most of those are activated by specific houses, or give stuff specifically to "the player house", so not sure how well most of them would work.

Dune 2000 works the same for the most part (at least concerning events), several events only affect the player. That said there are still references to the planned co-op mode in the game, but as said before by others we have no idea what stage the idea was at before it was scrapped (likely at an early stage). It is unlikely that a working co-op mode could be added. 

Share this post


Link to post
Share on other sites

From now on i am going to post all new features inside of this thread, else it is getting out of control if i create 100million threads :D

 

High res patch is now included in my patch, you can change the resolution via dune2000.ini "GameWidth=" and "GameHeight="

  • Upvote 4

Share this post


Link to post
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...