Jump to content

EXE editing & programming issues


MrFlibble

Recommended Posts

not without a lot of messing about, the sidebar icon is chosen from the hardcoded unit data directly when needed, its never copied elsewhere. youd need to create a special fremen troop in the hardcoded area (which would need alot of mods elsewhere)

Link to comment
Share on other sites

Does anyone know if the special Fremen icons are implemented in the Amiga version? They are there in the Sega version, that's for sure.

if you'd like to find out, heres some Amiga save games

Atreides lvl4 - 8 and Harkonnen 2-5

http://www.mediafire.com/?mkm2khjojjl

Or an exception in the code that shows the display icon. Of the kind "if unit = trooper and house = fremen then show this icon"

we need to find someone who understands how these "overlays" work, so we can use a codecave, there just isnt enough space in the areas we need otherwise :(

Link to comment
Share on other sites

you freed up some space by changing that map choices thing into a loop... if you just make that function jump over the nop-space there you can use the space in between for other code, no?

Or does the 16-bit thing make it hard to do far jumps to free space like that?

Link to comment
Share on other sites

the segments which contain the code change everytime you load the game, so im not entirely sure about jumping into them... some of the game functions use int3 to jump into them (some type of protection i assume)

dos overlays ida calls it

Link to comment
Share on other sites

Hmm.... I have a curiosity myself. Is there any way to detect the "thing" that makes rocket turrets and turrets actually attack? :) I'm asking this because I had in mind for MrFlibble's project a "sonic turret" (transforming either the WOR or the Barracks in it).

Also, is there any way to "add" new graphics to the game (not modifying already existant ones)?

-Daelin

Link to comment
Share on other sites

Depends what kind of graphics you mean. Units and buildings are a completely different issue.

It should be perfectly possible to add new building graphics with the info we got right now (there are already more than 256 frames in the ICON.ICN, so the limit must be at least 2 bytes), but I don't really see the use, besides to make a building bigger than it was before.

I'm not sure if the current editor has support for adding frames though.

Link to comment
Share on other sites

Daelin, the respective editor is mentioned in the Dune 2 Modding Tools List It allows to add more frames, however, as I have understood, there is a separate data type that defines how the frames are grouped into sequences. I haven't figured out if the editor supports modification or addition of such sequences.

Hmm.... I have a curiosity myself. Is there any way to detect the "thing" that makes rocket turrets and turrets actually attack? :)

First, there's the data in BUILD.EMC, it defines turret behavior, yet there has to be a separate part in the EXE that is responsible for the projectile type fired by a turret. Even if this data is found, there's no telling whether it could be modified to add support for a new turret type.

Link to comment
Share on other sites

First, there's the data in BUILD.EMC, it defines turret behavior, yet there has to be a separate part in the EXE that is responsible for the projectile type fired by a turret. Even if this data is found, there's no telling whether it could be modified to add support for a new turret type.

The code your looking for is in the script function 'BuildingShootTarget', which (the juicy part) begins here

where it tests if its a rocket turret

seg007:1255 26 80 7F 02 10                    cmp     es:[bx+_buildingGame.TypeIndex], 10h ; rocket turret

seg007:125A 75 26                             jnz     short loc_18A32

seg007:125C BE 14 00                          mov     si, 14h           << UNIT: ROCKET

However, it does a distance test just below and if its less than 0x300 (not sure what this measurement is)

seg007:127D BE 17 00                          mov     si, 17h           << UNIT: Bullet

and if its not a rocket turret, it always uses a bullet

seg007:1282 BE 17 00                          mov     si, 17h

theres another check below, with something to do with the rate of fire based on which weapon it is... apart from that tho, should be right to modify those values

Link to comment
Share on other sites

OK, I think I've identified 'em all:

[pre]34 3C F0 32 C8 00 55 00 02 00 90 00 58 02 0A 00

            |     |     |     |     |     |

        Weakness LF   Decay Color Rechrg Frigate

48 00 01 00 06 00 03 00 18 00 3E 3C F0 32

|     |     |     |     |

|  Special Win  Lose  Mentat

Voice[/pre]

What exactly is that "Voice" thing used for? Is that only for the intro voice, or for many voices, or also for non-voice related things? In my editor it currently says "House letter", but I might be able to give a more fitting description, like "Voice prefix letter"...

Link to comment
Share on other sites

In my editor it currently says "House letter", but I might be able to give a more fitting description, like "Voice prefix letter"...

Yes, I think this one is more appropriate, since it defines what "Mentat speech" files to use. It does not affect anything else, e.g. it is not related to what key to press to pick a House on the side selection screen.

Link to comment
Share on other sites

I wonder if it is possible to make the AI take into account obstacles like units or structures when rebuilding its base in v1.07. The current state of affairs complicates the tactics of capturing enemy buildings, since the AI can very well build its own structures directly over the captured ones.

Also, I once observed the AI "capture" its own Barracks: an AI-controlled infantry soldier stepped into a cell previously occupied by AI's Barracks, and milliseconds after the rebuilt Barracks popped out of the ground over that soldier. After that, the game just froze - I guess it perceived the entire event as some kind of illegal operation. Be it that rare, such possibilities should be also taken into account.

Link to comment
Share on other sites

I just thought that the AI in v1.07 is "encouraged" to rebuild by removing all restrictions (e.g. if the restrictions were present, the AI would not have been able to rebuild if the building site's "link" to other AI's buildings via concrete blocks were severed). If that were the case, perhaps it would be possible to bring back some of the restrictions for the AI while keeping others turned off.

Link to comment
Share on other sites

I wonder if it is possible to make the AI take into account obstacles like units or structures when rebuilding its base in v1.07. The current state of affairs complicates the tactics of capturing enemy buildings, since the AI can very well build its own structures directly over the captured ones.

What? I've never ever seen this happen, neither in my US 1.07 or the HitSquad version - I always capture enemy structures to prevent them from rebuilding. May have to test this...

Link to comment
Share on other sites

If you capture an enemy building, the AI's rebuilt one might not be visible, but sometimes when you click on your building, it will transform into the enemy one. The worst thing is that when you destroy that enemy structure, yours gets destroyed too :(

~~~~

Q3. How do I stop the computer from rebuilding the rocket turrets that I

just destroyed ?

~~~~

A3. First destroy enough space on the same rock section as the enemy to

build a Construction Yard.  Then use that yard to place concrete up to

the enemy turret, and use your vehicles to destroy the turret.  As soon as

it is destroyed, build a turret of your own and place it in the exact same

square as the enemy one was.  The computer never seems to have any

originality to build the turret elsewhere.  This is also useful as the

turret immediately targets enemy units as they are produced.  The problem

with this method is the fact that sometimes the turret will change sides

and become the computer's.  Beware of this :-(

(source)

The turret in this case does not actually "change sides": the AI simply rebuilds the captured turret, causing two turrets occupy the same place. In this condition, the turret that is "on top" is active, the other one is ignored for the time being. By clicking this "stack" of structures, you can change the one that is currently "on top". I've observed such behavior with other structures as well.

Link to comment
Share on other sites

I thought this discussion would be more relevant here:

On a related note, someone should REALLY make some Dune II exes (for all 1.07 versions) with ALL these things fixed... announcements, merc deviation, the vanishing houses and concrete bugs, the new sides mentats (or can't that be done? I just mean makling the correctly-working duplicates)... just, all updates we got, even if they're normally not used.

Just wanna ask, what's the reason for making those EXEs? If you want to use those fixes to play normal Dune II, only the Mercenary announcements and the "vanishing house" fix will suffice. It's not possibly, unfortunately, to make the EXE universal in the way it will allow to normally play both the original sides and the new sides, as in SD2. Making the new sides playable will require to abandon some things: the BG female from the intro will have to be converted to IBM.PAL to avoid palette screw-ups, and the House voice-overs at the House selection screen will have to be replaced by the House names from the in-game announcements (otherwise the in-game announcements for the Mercenaries will not work or work incorrectly), among other things. To sum up, it is more reasonable to have a separate EXE for the new sides.

What did you mean by "merc deviation"? If that's the ability to convert units to the Mercenary side with the use of Deviators, it has not been fixed, as I'm not sure how to do that. segra posted some code references, but I haven't tried them:

I'm not sure so sure this can be fixed, i have located a variable in the unit struct which when set will cause the unit to become ordos... i think this variable is set to the owner of the deviator unit, but in multiple places, you see this

seg006:0B2A C4 5E DE                          les    bx, [bp+unitGamePtr]

seg006:0B2D 26 80 7F 59 00                    cmp    es:[bx+_unitGame.HouseTemp], 0

seg006:0B32 74 05                            jz      short loc_16909

seg006:0B34 B8 02 00                          mov    ax, 2

one function in particular, which is named "UnitHouseIDGet"

seg031:363A                  loc_2B99A:                              ; CODE XREF: unitGameHouseIDGet+9j

seg031:363A C4 5E 06                          les    bx, [bp+unitGamePtr]

seg031:363D 26 80 7F 59 00                    cmp    es:[bx+_unitGame.HouseTemp], 0

seg031:3642 74 05                            jz      short returnHouseID

seg031:3644 B8 02 00                          mov    ax, 2          ; Ordos

seg031:3647 EB EF                            jmp    short Done_1

The top one, when changing it.. will affect the units color on the field.. wonder why they did it this way

Link to comment
Share on other sites

not sure what type of fix you could pull off, but if u search the ida db for the "housetemp" variable, most locations will have the ordos houseid somewhere nearby (2).

the housetemp variable is actually the countdown timer until unit is returned to original house

Link to comment
Share on other sites

What did you mean by "merc deviation"? If that's the ability to convert units to the Mercenary side with the use of Deviators, it has not been fixed, as I'm not sure how to do that.

Um, no, I just meant the fact that the % chance of deviation for the Mercenary house is set to 0.

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...