Jump to content

Dune 2 Remake Development


NA9x2000

Recommended Posts

Well, if you open source it right away, you'll get the benefit of others being able to review your stuff and providing

feedback. Getting things done right, better, cooler, slicker+++ to begin with will save you a lot of time,

it kinda sucks when you figure out only after you've put in shitload of time implementing something only to

find out afterwards that it could/should be done in some totally different/better fashion later on, especially

if it's about fundamental design decissions.. :P

Link to comment
Share on other sites

Please do not post any more requests for the game or the source i'm a fan of open source but i'm sorry i'll not change it

i think its a good thing to develop an app however whos using it and as i see there are a lot of people interrested in the game and would like help developing thats really fine and everybody will be happy to see what it was for but when the most is done let you suprise and if you like to see whats the status of the project send me an im

PLEASE WAIT FOR THE RELEASE CANDIDATE

i hope u will support me in future like in the past

Link to comment
Share on other sites

do somebody have a clue where i can find some details like e.g. health/damage/buildtime about units and structures?

now its going to be interresting the game is already partially like a game

done:

harvesters are harvesting

building units and structures works

(stupid) moving is also done

to do:

new moving & collision detection

attack ranges and attack moving

startport buylist

and more

if i can hold this speed the 3rd project is done in september

we will see

greetz NA9x2000

Link to comment
Share on other sites

addition question

i've extracted all files from intro.pak and finale.pak the most files were correctly extracted from wsa format

but there still some wsa files they looks like a xmod version based on the wsa file before could it be?

examples:

intro7a0026.pngintro7b0003.png

hfinalb0037.pnghfinalc0004.png

i've tried to fix it with different filters (multiply/difference)

has somebody an idea how to fix it?

Link to comment
Share on other sites

here is an actual screenshot  :P  other colors are also available (red,green,blue,pink,brown)

screenrci.png

the build interface is shown centered with animated building/unit thumbnails (mouse wheel is supported)

i don't use seed maps it's a simple ascii map ::) is there an editor that supports something simmilar for export?

otherwise i'll implement that feature later :D

Link to comment
Share on other sites

do somebody have a clue where i can find some details like e.g. health/damage/buildtime about units and structures?

done:

harvesters are harvesting

building units and structures works

(stupid) moving is also done

to do:

new moving & collision detection

attack ranges and attack moving

startport buylist

and more

greetz NA9x2000

lol, your joking right?  you can find most of it using Nyer's editor,

http://forum.dune2k.com/index.php?topic=20456.0

btw, are you using the original game scripts or are you going to recode it all?

just for fun, heres the structures including the runtime ones...

Building/Unit Data:

file locations are from one of the hitsquad releases and slightly change from exe to exe...

Buildings: seg129:0000  (file loc: 0x2f580)

Units: seg130:0000  (file loc: 0x2fcb0)

00000000 _unitData      struc ; (sizeof=0x5A)

00000000 stringID        dw ?

00000002 Name            dd ?                                        ; offset (00043420)

00000006 stringLongID    dw ?

00000008 Picture        dd ?                                        ; offset (00043420)

0000000C optsWocaTuro    dw ?

0000000E field_E        dw ?

00000010 HitPoints      dw ?

00000012 Sight          dw ?

00000014 sidebarIconID  dw ?

00000016 Cost            dw ?

00000018 buildTime      dw ?

0000001A TechLevel      dw ?

0000001C PreReqs        dd ?

00000020 field_20        db ?

00000021 UpgradesNeeded  db ?

00000022 sidebarCommand1 dw ?

00000024 sidebarCommand2 dw ?

00000026 sidebarCommand3 dw ?

00000028 sidebarCommand4 dw ?

0000002A field_2A        db ?

0000002B field_2B        dw ?

0000002D field_2D        dw ?

0000002F Aggressivity    dw ?

00000031 Owner          db ?

00000032 indexMin        dw ?

00000034 indexMax        dw ?

00000036 optsFitW        dw ?

00000038 field_38        db ?

00000039 field_39        db ?

0000003A field_3A        dw ?

0000003C MovementType    dw ?

0000003E field_3E        dw ?

00000040 Speed          dw ?

00000042 turningSpeed    dw ?

00000044 UnitGfxID      dw ?

00000046 turretGfxID    dw ?

00000048 field_48        dw ?

0000004A field_4A        dw ?

0000004C deathAnim      dw ?

0000004E weaponRateFire  dw ?

00000050 weaponRange    dw ?

00000052 weaponDamage    dw ?

00000054 field_54        dw ?

00000056 weaponType      dw ?

00000058 weaponSound    dw ?

0000005A _unitData      ends

00000000 _buildingData  struc ; (sizeof=0x60)

00000000 idShort        dw ?

00000002 Name            dd ?                                        ; offset (00043420)

00000006 idLong          dw ?

00000008 Picture        dd ?                                        ; offset (00043420)

0000000C buildOpts      dw ?

0000000E field_E        dw ?

00000010 HitPoints      dw ?

00000012 Sight          dw ?

00000014 sidebarIconID  dw ?

00000016 Cost            dw ?

00000018 BuildTime      dw ?

0000001A Techlevel      dw ?

0000001C PreReqs        dd ?

00000020 buildOrder      db ?

00000021 CYUpgradesNeeded db ?

00000022 field_22        db ?

00000023 field_23        db ?

00000024 field_24        db ?

00000025 field_25        db ?

00000026 field_26        db ?

00000027 field_27        db ?

00000028 field_28        db ?

00000029 field_29        db ?

0000002A field_2A        db ?

0000002B structureID    dw ?

0000002D weaponDamage    dw ?

0000002F weaponDamageAdd? dw ?

00000031 Owner          db ?

00000032 RepairFacility  dw ?

00000034 UnitsCanEnter  dw ?

00000036 SpiceStorage    dw ?

00000038 PowerUsage      dw ?

0000003A FoundationSize  dw ?

0000003C structureGfxID  dw ?

0000003E field_3E        dw ?

00000040 field_40        dw ?

00000042 field_42        dw ?

00000044 field_44        dw ?

00000046 field_46        dw ?

00000048 field_48        dw ?

0000004A constructOpt1  dw ?

0000004C constructOpt2  dw ?

0000004E constructOpt3  dw ?

00000050 constructOpt4  dw ?

00000052 constructOpt5  dw ?

00000054 constructOpt6  dw ?

00000056 constructOpt7  dw ?

00000058 constructOpt8  dw ?

0000005A techUpgrade1    dw ?

0000005C techUpgrade2    dw ?

0000005E techUpgrade3    dw ?

00000060 _buildingData  ends

Runtime Game structs:

00000000 _buildingGame  struc ; (sizeof=0x58)

00000000 buildingIndex  dw ?

00000002 TypeIndex      db ?

00000003 HoldingUnitIndex db ?

00000004 unitState      dw ?

00000006 unitState2      dw ?

00000008 houseID        db ?

00000009 housesRevealed  db ?

0000000A positionX      dw ?

0000000C positionY      dw ?

0000000E HitPoints      dw ?

00000010 field_10        dw ?

00000012 scriptPtr      dd ?

00000016 emcDataPtr      dd ?

0000001A returnValue    dw ?

0000001C field_1C        db ?

0000001D stackCount      db ?

0000001E Register0      dw ?

00000020 Register1      dw ?

00000022 Register2      dw ?

00000024 Register3      dw ?

00000026 Register4      dw ?                                        ; In a harvester, this is set to the carryall we're waiting for pickup from

00000028 stack0          dw ?

0000002A stack1          dw ?

0000002C stack2          dw ?

0000002E stack3          dw ?

00000030 stack4          dw ?

00000032 stack5          dw ?

00000034 stack6          dw ?

00000036 stack7          dw ?

00000038 stack8          dw ?

0000003A stack9          dw ?

0000003C stackA          dw ?

0000003E stackB          dw ?

00000040 stackC          dw ?

00000042 stackD          dw ?

00000044 stackE          dw ?

00000046 stackF          dw ?

00000048 field_48        dw ?

0000004A field_4A        dw ?

0000004C buildingItemIndex dw ?

0000004E techLevel      db ?

0000004F field_4F        db ?

00000050 objectBuildRemaining dw ?

00000052 field_52        db ?

00000053 field_53        db ?

00000054 frame?          dw ?

00000056 HitPointsMax    dw ?

00000058 _buildingGame  ends

00000000 _unitGame      struc ; (sizeof=0x80)

00000000 unitIndex      dw ?

00000002 typeIndex      db ?

00000003 HoldingUnitIndex db ?                                      ; Index in UnitsGamePtrs of a unit we're holding

00000004 unitState      dw ?

00000006 unitState2      dw ?

00000008 houseID        db ?

00000009 field_9        db ?

0000000A positionX      dw ?

0000000C positionY      dw ?

0000000E HitPoints      dw ?

00000010 scriptSkipCount dw ?

00000012 scriptPtr      dd ?

00000016 emcDataPtr      dd ?

0000001A returnValue    dw ?                                        ; base 2

0000001C field_1C        db ?

0000001D stackCount      db ?

0000001E Register0      dw ?

00000020 Register1      dw ?

00000022 Register2      dw ?

00000024 Register3      dw ?                                        ; Constantly set to humanhouseid

00000026 Register4      dw ?

00000028 stack0          dw ?

0000002A stack1          dw ?

0000002C stack2          dw ?

0000002E stack3          dw ?

00000030 stack4          dw ?

00000032 stack5          dw ?

00000034 stack6          dw ?

00000036 stack7          dw ?

00000038 stack8          dw ?

0000003A stack9          dw ?

0000003C stackA          dw ?

0000003E stackB          dw ?

00000040 stackC          dw ?

00000042 stackD          dw ?

00000044 stackE          dw ?

00000046 stackF          dw ?

00000048 field_48        db ?

00000049 moveDestX      dw ?

0000004B moveDestY      dw ?

0000004D objectBuildingTypeIndex dw ?                                ; Building that holds us

0000004F actionCurrent  db ?

00000050 actionNext      db ?

00000051 weaponCooldownTimer db ?

00000052 field_52        dw ?

00000054 attackTargetObjectIndexType dw ?

00000056 objectTypeIndexHolding dw ?                                ; object we hold

00000058 HarvesterSpiceCapacity db ?

00000059 HouseTemp      db ?                                       

0000005A startPosX?      dw ?

0000005C startPosY?      dw ?

0000005E startPosX2?    dw ?

00000060 startPosY2?    dw ?

00000062 field_62        db ?

00000063 field_63        db ?

00000064 field_64        db ?

00000065 field_65        db ?

00000066 turret??        db ?

00000067 turret?        db ?

00000068 speed2          db ?

00000069 speed1          db ?

0000006A unitPlacement?  db ?

0000006B field_6B        db ?

0000006C mapRockSeed?    db ?

0000006D TilesTravelled? db ?

0000006E FlashRemainCount db ?

0000006F field_6F        db ?

00000070 frame??        dw ?

00000072 field_72        db ?

00000073 field_73        db ?

00000074 field_74        db ?

00000075 field_75        db ?

00000076 field_76        dd ?

0000007A field_7A        dd ?

0000007E field_7E        dw ?

00000080 _unitGame      ends

Link to comment
Share on other sites

ok ...  ;)

lol, your joking right?  you can find most of it using Nyer's editor,

it wasn't a joke because i never modified dune 2  ::)

i never used that tool but it seems to be famous ...  ::)

btw, are you using the original game scripts or are you going to recode it all?

no i'm currently using only graphics from dune 2

i started playing dune 2 1998 on my old 80386 thats the time i dream of code dune 2

the project should be like dune not an exact clone  :P

but i would also include an optional support for other ressources except graphics

but for original scripts and values i need more information about the intervals in dune 2

e.g. whats the time the buildings, units or objects are refreshed

and if there are so many informations about the code why nobody creates a source from it?

sure it would take a lot of time but then it would be open source like OpenTransportTycoonDeluxe

perhaps dune 2 becomes like that *dream* MULTIPLAYAAAAAA!  ;D

thx

Link to comment
Share on other sites

uhm, tons of remakes already have multiplay features... there's one that's multiplayer-only, even... :P

i've tried to fix it with different filters (multiply/difference)

has somebody an idea how to fix it?

You could try taking screenshots of the second part from the original game in DOSBox and try to find a pattern...

Link to comment
Share on other sites

uhm, tons of remakes already have multiplay features... there's one that's multiplayer-only, even... :P

that's right but is there one that's like dune 2? - i don't know i tested a lot of remakes before i began

and there's no one that's really good in my opinion if u know one tell me :D

and one more question is somebody playing those remakes?  ::)

You could try taking screenshots of the second part from the original game in DOSBox and try to find a pattern...

good idea :D i thought that's  a known problem ... and it could be solved with some settings in xcc mixer  ;)

Link to comment
Share on other sites

I think it is very personal what you like or dislike about a remake. And also, if you just want to create your own remake, then you probably don't care about other remakes as much as a 'player' does ;)

But, if I might ask, could you explain what you dislike/liked about the remakes you have played? I don't mind if you disliked my own remake (D2TM), but if you did, you might have some feedback I can use.

Btw, screenshot looks very nice! Reminds me of my very very very very very first attempt remaking dune 2 :D

Link to comment
Share on other sites

:O it's a honor to hear from you in person never thought ...

your remake is really impressing and one of the best! in my opinion really

it could be that ive tried an older version D2TM-DEM35-01.ZIP but it is already really great!

my goal is to let the game like it is only to expand with new functions/features (MouseWheel/Multiplayer/Shortcuts/Details)

e.g. i'm not a fan of C&C i like it but thats not dune thats the reason why i'm not happy with other remakes

it would be a pleasure to talk about your remake so if u are interrested to give me some advice send me an im

the demo i have has no multiplayer but if u have the know-how or interresting docs about tell me

Great Work!

i'm also thinking about to insert double sized sprites (optional) bcause in higher resolutions everything is a bit small

Link to comment
Share on other sites

I like what I've seen so far ;D I think it's a great idea to remake Dune II as close to the original as possible (kind of what C&C Gold was compared to DOS C&C), as most remakes add some new things that make them different from the original to a varying degree.

uhm, tons of remakes already have multiplay features... there's one that's multiplayer-only, even... :P

D2TSHA already has single player, but I haven't checked it out yet...

Link to comment
Share on other sites

D2TSHA already has single player, but I haven't checked it out yet...

Are you sure? I have tried this 'single player' thing, but it basically is a sort of skirmish thing. Basically you are the client + server. I was not sure if I did anything ok, until I figured the AI totally destroyed me.

After that, i threw it away ;)

Link to comment
Share on other sites

its ok i just figured you would of seen the thread thats all :P

and if there are so many informations about the code why nobody creates a source from it?

sure it would take a lot of time but then it would be open source like OpenTransportTycoonDeluxe

thx

yeah love OpenTTD, was started by the same guy as ScummVM. I do think mostly no-one can be bothered recreating it, Id be happy to be involved in such a project... however im not taking up the responsibility on my own.

from my IDA database most of the info can be found now, alot of the code can easily be followed when you know what your looking for... dont think anyone has actually looked tho :P

Link to comment
Share on other sites

addition question

i've extracted all files from intro.pak and finale.pak the most files were correctly extracted from wsa format

but there still some wsa files they looks like a xmod version based on the wsa file before could it be?

examples:

intro7a0026.pngintro7b0003.png

hfinalb0037.pnghfinalc0004.png

i've tried to fix it with different filters (multiply/difference)

has somebody an idea how to fix it?

Yupp, for some cutscenes, you need to xor the last frame of the previous scene with the first frame of the next.

This code should provide some hints:

http://bazaar.launchpad.net/~doonlunacy/doonlunacy/trunk/annotate/head%3A/src/states/CutSceneState2.cpp

http://bazaar.launchpad.net/~doonlunacy/doonlunacy/trunk/annotate/head%3A/python/cutscenes.py

:)

Link to comment
Share on other sites

it seems like nobody has a tool for that i gonna try it with allegro

i think it works also to xor the pallete indexes or must xor the color values?

Hm? I'm not sure what allegro has to do with it, but perhaps mentioning that I'm almost done separating SDL from libeastwood now,

as well as heavily cleaning up a lot of it's ugly code. This should make it more generic for usage with alternatives to SDL and of course easier to use.

I've also started on creating a simple libSDL_eastwood library for easy use with SDL, implementing the same for allegro should be trivial. :)

For xor'ing, wsa frames are just deltas of previous frames xor'ed together to form each frame, same goes for these cutscenes.

Link to comment
Share on other sites

Isnt it so that these xorred animations are laid on top of the last 'correct' image of the wsa? Afaik the XOR'ed images somehow add animation to the existing image. Like, with the launchers; they launch the rockets, but all you see is the smoke in the xorred images.

Perhaps it is meant to be added to the original image in order to get the 'complete' version?

Link to comment
Share on other sites

Isnt it so that these xorred animations are laid on top of the last 'correct' image of the wsa? Afaik the XOR'ed images somehow add animation to the existing image. Like, with the launchers; they launch the rockets, but all you see is the smoke in the xorred images.

Perhaps it is meant to be added to the original image in order to get the 'complete' version?

that's it what the tool above do :D i dont know why but loading the pcx images results in incorrect colors  ??? i dont know why. thats the reason why it works only with bitmaps if u have an idea how to fix it tell me it uses allegro 4.2.2

here u cann see it in action:

bmpxmod.jpg

Link to comment
Share on other sites

Nice. Do you also include the source with that tool?

I have no idea why PCX loading does not work, but perhaps you need to use set_palette first. If i am not mistaken, the PCX files are always 8 bit while BMP files are loaded into your default color depth.

Also, make sure the color conversion is set to MOST in your allegro setup routines.

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