Jump to content

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


FunkyFr3sh

Recommended Posts

I updated dune2000.exe, it supports now movie folders for all languages

I also changed the code so it checks first if the multi langauge files/folders exist, and if not it will just use the default folder, this way you can have german text while using english voices (in case you don't have a GAMESFXGer folder for example)

That was...fast! How do I have to the name the folders and where do I have to put them?

Link to comment
Share on other sites

You're the man! It works. Thanks!

 

EDIT: I just finished the Harkonnen campaign. Eveyrthing went smoothly with the exception of the end credits. The background image is centered but the credits itself are not. They are in the upper left screen and produce a nice white "something" which stays there even after returning to the main menu. I could provide a savegame just before victory...

Link to comment
Share on other sites

Oh, didn't see your message :P

 

Yes, a savegame would be nice!

 

 

-

 

Dune2000.exe updated:

 

32. Cannot Place Building Fix - Sometimes when you try to place a building the sidebar will ignore your click and you are unable to place it, this fix solves this problem
 

  • Upvote 1
Link to comment
Share on other sites

I would like to write about another little bug in Dune 2000. Music volume. Perhaps it is possible to fix this.

I prefer play without music. If to make music volume to 0 and switch to Windows (Alt-Tab) for a long time (more than a minute, I suppose), then (if I back to Dune2000) music becomes loud.

 

So I must again to go to menu and to change slider position. The slider position of music volume stays the same (minimal). So I must first increase volume and after decrease it to 0 again.

 

I don't know exactly, how much of time must spent when volume changes.

Link to comment
Share on other sites

I would like to write about another little bug in Dune 2000. Music volume. Perhaps it is possible to fix this.

I prefer play without music. If to make music volume to 0 and switch to Windows (Alt-Tab) for a long time (more than a minute, I suppose), then (if I back to Dune2000) music becomes loud.

 

So I must again to go to menu and to change slider position. The slider position of music volume stays the same (minimal). So I must first increase volume and after decrease it to 0 again.

 

I don't know exactly, how much of time must spent when volume changes.

 

I noticed this before, but totally forgot about it. Gonna check it out soon

I now have a savegame just before I win the Atreides campaign. If you look at the credits screen, you'll see the centered BG image but the font on the top left of the screen. Music, by the way, is missing as well.

 

https://www.dropbox.com/s/y9vc2kunp14xq2w/S0.7z?dl=0

Thanks, will take a look into it

Link to comment
Share on other sites

Someone of you guys already knew the MissionDebugMode? Here is what it does:

 

1. It adds 2 buttons to the mission select screen - Prev and Next

2. It adds a New Missions button to the main menu which opens the mission select debug menu

3. It adds 2 new hotkeys "W" for Win and "L" for lose

4. It replaced the Multiplayer button with a Practice button in the main menu

 

It seems to do some other things too, not sure yet what
D2kMissionDebug.png

  • Upvote 1
Link to comment
Share on other sites

 

dune2000.exe updated, credits text is now aligned in high res mode

 

 

Tested and confirmed. Damn, are you fast!

 

How about some credits music? Neither game nor movie should end with credits without music  :D You could assign the whole soundtrack, if possible.

Link to comment
Share on other sites

Someone of you guys already knew the MissionDebugMode?

It is interesting!

I remember, I saw description of some unknown keys in text.uib. May be the keys used in the MissionDebugMode?

For example, keys:

S - Toggle Stealth Mode on selected Unit

F2 - Toggle Shroud on/off

F3 - Show Tile Info & Grid

Captions: "Grid On", "Grid Off" and so on.

  • Upvote 1
Link to comment
Share on other sites

Would you like to explain me, how to use new feature InfiniteSpice?

 

I write in file rules.ini

InfiniteSpice=Yes
 

Is this not enough? Because it does not work.

In previous version, when I must place 3 on map for infinite spice, it works well!

Link to comment
Share on other sites

 

 

 

Tested and confirmed. Damn, are you fast!

 

How about some credits music? Neither game nor movie should end with credits without music  :D You could assign the whole soundtrack, if possible.

 

Good idea Silver83.

 

And how about adding some EBFD : Atriedes Soundtracks that fits with Dune2k atmosphere?

 

Adding a new song for this might be an option, need to see if it is able to play music there

 

It is interesting!

I remember, I saw description of some unknown keys in text.uib. May be the keys used in the MissionDebugMode?

For example, keys:

S - Toggle Stealth Mode on selected Unit

F2 - Toggle Shroud on/off

F3 - Show Tile Info & Grid

Captions: "Grid On", "Grid Off" and so on.

 

Here this is for you:

D2kHelpMenu.png

 

Would you like to explain me, how to use new feature InfiniteSpice?

 

I write in file rules.ini

InfiniteSpice=Yes

 

Is this not enough? Because it does not work.

In previous version, when I must place 3 on map for infinite spice, it works well!

 

for cncnet skirmish you need to modify rules-spawn.ini and for normal skirmish rules.ini

  • Upvote 1
Link to comment
Share on other sites

Hi FunkyFr3sh, I have something for you.

Dune 2000 features 20 event types, but some of them were never used in any mission. Furthermore, some events are not supported at all (if I use them, I get "Unknown event type" error). Inside Dune2000.exe there are the names of all events (along with names of AI properties, which you once posted here). So the unsupported events for which I get the error are: 3 - LEAVE, 5 - PLAYSOUND, 12 - BLOXFILE, 13 - ATTRIBFILE.

The other unused events actually work (like Set Tech, Show Timer), but this one does not do anything: 8 - SETCASH. I was playing around with it and tried to set all possible bytes of the event, but with no success. Then finally I tried to look inside code and luckily found the part where event-calling code is:

post-12183-0-26663800-1436902944_thumb.p

As you can see, both Set Tech and Set Cash just write value somewhere into memory, no additional code is called. Tech levels are located at 0x6B87C8 and money is at 0x6B87D0, just after tech levels. What is interesting, tech levels and money are stored in same way as inside .mis file. But writing any value at 0x6B87D0 does not have any effect on your in-game cash, so it seems that this place only serves for storing initial money loaded from .mis file and the actual in-game cash is stored elsewhere. Maybe it has anything to do with anti-trainer modifications made in later D2k versions? My question is whether you could fix it and make this event work.

 

Also, there is a possibility to make some unsupported events work or give them a new function which would be useful in custom missions.

For example 3 - LEAVE: this event could make the player "leave the game" - all buildings and units will explode and disappear immediately. Exactly like when you give up in multiplayer game.

Or 5 - PLAYSOUND: I can't imagine playing a sound could be useful, but changing music could be. If you are able to change music during gameplay with a scripted event you could make a Dune2-like feeling - enemy attacks you and music changes to battle-theme one.

Any other ideas?

  • Upvote 1
Link to comment
Share on other sites

Here this is for you

Well. Here that keys are! Finally I know where they used. Thank you.

I asked about them in this forum some time ago.

 

About InfiniteSpice.

I try to use it in mission A6V1.

May be it works only for Multiplayer Game? I mean rules.ini. "3 on map" worked with mission maps normally.

 

Or may be I make something wrong...

Could somebody test InfiniteSpice with any mission?

Link to comment
Share on other sites

As you can see, both Set Tech and Set Cash just write value somewhere into memory, no additional code is called. Tech levels are located at 0x6B87C8 and money is at 0x6B87D0, just after tech levels. What is interesting, tech levels and money are stored in same way as inside .mis file. But writing any value at 0x6B87D0 does not have any effect on your in-game cash, so it seems that this place only serves for storing initial money loaded from .mis file and the actual in-game cash is stored elsewhere.

Cash is stored in .SAV files.

 

At least, when we load saved game, then game load the data from definite addresses of SAV file. There are harvested spice (it needs Silos) and ... (how to call it?) not-harvested spice. Not-harvested spice is initial money, from the start of game, and, I suppose, from crates in Multiplayer. Not-harvested spice does not need Silos.

 

We can see total sum on top of game window: harvested spice + not-harvested spice.

So we can change this sum, if to open SAV file in hex editor and to find these addresses.

Link to comment
Share on other sites

Hi FunkyFr3sh, I have something for you.

Dune 2000 features 20 event types, but some of them were never used in any mission. Furthermore, some events are not supported at all (if I use them, I get "Unknown event type" error). Inside Dune2000.exe there are the names of all events (along with names of AI properties, which you once posted here). So the unsupported events for which I get the error are: 3 - LEAVE, 5 - PLAYSOUND, 12 - BLOXFILE, 13 - ATTRIBFILE.

The other unused events actually work (like Set Tech, Show Timer), but this one does not do anything: 8 - SETCASH. I was playing around with it and tried to set all possible bytes of the event, but with no success. Then finally I tried to look inside code and luckily found the part where event-calling code is:

attachicon.gifevents4.png

As you can see, both Set Tech and Set Cash just write value somewhere into memory, no additional code is called. Tech levels are located at 0x6B87C8 and money is at 0x6B87D0, just after tech levels. What is interesting, tech levels and money are stored in same way as inside .mis file. But writing any value at 0x6B87D0 does not have any effect on your in-game cash, so it seems that this place only serves for storing initial money loaded from .mis file and the actual in-game cash is stored elsewhere. Maybe it has anything to do with anti-trainer modifications made in later D2k versions? My question is whether you could fix it and make this event work.

 

Also, there is a possibility to make some unsupported events work or give them a new function which would be useful in custom missions.

For example 3 - LEAVE: this event could make the player "leave the game" - all buildings and units will explode and disappear immediately. Exactly like when you give up in multiplayer game.

Or 5 - PLAYSOUND: I can't imagine playing a sound could be useful, but changing music could be. If you are able to change music during gameplay with a scripted event you could make a Dune2-like feeling - enemy attacks you and music changes to battle-theme one.

Any other ideas?

 

This should have a working SetCash:

http://funkyfr3sh.cncnet.org/files/d2k/dune2000-test.exe

 

I didn't had a map to test it though

Note: There are 2 cash vars, the other one is for the silo cash I think, so even you call SetCash 5000 you might not have 5000 since the silo cash is not affected by this change.

 

Here is a test file where I set the silo cash to 0 when the event triggers:

http://funkyfr3sh.cncnet.org/files/d2k/dune2000-test2.exe

 

I will add LEAVE tomorrow, that's pretty easy to do

What information can you pass in the PLAYSOUND event? Is there space to store a string with the filename in the .mis file?

 

Well. Here that keys are! Finally I know where they used. Thank you.

I asked about them in this forum some time ago.

 

About InfiniteSpice.

I try to use it in mission A6V1.

May be it works only for Multiplayer Game? I mean rules.ini. "3 on map" worked with mission maps normally.

 

Or may be I make something wrong...

Could somebody test InfiniteSpice with any mission?

Yes it was broken, it was only loading it from map .ini files but not from rules.ini :D I updated dune2000.exe and it works now

Link to comment
Share on other sites

This should have a working SetCash:

http://funkyfr3sh.cncnet.org/files/d2k/dune2000-test.exe

 

I didn't had a map to test it though

Note: There are 2 cash vars, the other one is for the silo cash I think, so even you call SetCash 5000 you might not have 5000 since the silo cash is not affected by this change.

 

Here is a test file where I set the silo cash to 0 when the event triggers:

http://funkyfr3sh.cncnet.org/files/d2k/dune2000-test2.exe

 

I will add LEAVE tomorrow, that's pretty easy to do

What information can you pass in the PLAYSOUND event? Is there space to store a string with the filename in the .mis file?

Wow, you're so fast. It's pretty easy to create a minimal testing map with Set Cash event: Create new map, place one worm spawner anywhere, and then add just one Set Cash event and one Timer condition. Then test map and voila.

The event structure is 72 bytes long, so there is pretty enough place to store string inside it. For detailed event structure you can refer to https://github.com/jkoncick/D2kEditor/blob/master/_mission.pasline 135. It is possible to store the string within Unit list: it's 21 bytes long (or 25 as you can utilize the following 4 bytes for message index) so it could be enough. It's stored at offset 47.

Link to comment
Share on other sites

Yea, gonna create some test maps soon, just wanted to get the other events done first today.

 

Got a new test file ready with LEAVE PLAYSOUND and a new one PLAYMUSIC (21) http://funkyfr3sh.cncnet.org/files/d2k/dune2000-test.exe

 

PlaySound is using the id numbers, I think those are saved in sample.uib

PlayMusic is using good ol .ini files, [MusicEvents] 0=123.aud

Link to comment
Share on other sites

Could I get some help with the dune.exe. I am currently using the version 9 which works, but as i try to run the game with the latest one I get this message: "This video card does not support the required modes."

Link to comment
Share on other sites

 

Yea, gonna create some test maps soon, just wanted to get the other events done first today.

 

Got a new test file ready with LEAVE PLAYSOUND and a new one PLAYMUSIC (21) http://funkyfr3sh.cncnet.org/files/d2k/dune2000-test3.exe

 

PlaySound is using the id numbers, I think those are saved in sample.uib

PlayMusic is using good ol .ini files, [MusicEvents] 0=123.aud 

Hmm, is it needed to check player for MySideId in sound/music event? I think that these are rather global, or player-neutral events (like Mission win, Mission fail, Reveal map etc. which don't take player number either). Or does it have anything to do with network game?

Also, why you decided to store music files in .ini files instead of the event itself as you originally wanted? Wouldn't it be simplier like this? (at least for me, it is, from the point of the editor)

Link to comment
Share on other sites

Yes, MySideId checks are for multiplayer missions. Thought it might be cool to have if one of the players completed one of his objectives while the others are still behind. I can remove it or we use a special value to have it globally for all players.

 

I used .ini files cause 21 was too short, but we can actually use both, I can check the 21bytes first and if those are 0 then check the .ini afterwards

Link to comment
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...