Jump to content

Rewriting Cryo's Dune 1 : it seems possible !!!


Monsieur OUXX

Recommended Posts

I think you guys have spent several times longer reverse engineering this game than Cryo did building it  :D

Yes, but having a full source code (instead of simply run the game inside DosBox) could allow... A full revamp... Adding characters... Adding a story editor... Enhancing the AI of the strategy part... *Shhhh, don't tell anyone*

Link to comment
Share on other sites

No wonder, they had to figure out all the knowledge the dev team already had when building the game :)

No, development usually doesn't work like that. It's more like "hmm, we need to make this thing show in something resembling 3D... let's see how we can do that!"

Link to comment
Share on other sites

Some questions.

>I think you guys have spent several times longer reverse engineering this game than Cryo did building it

Please tell me where I can found results? I must start dissassembly from scratch.

>Yes, but having a full source code (instead of simply run the game inside DosBox) could allow...

I need test assembled code if it works as expected. I'm doing it under dosbox. No disassembler produces perfect code

which get build directly and work. Dissassembled code needs many fixes to get build and debuging to work properly.

I mean my target is not dosbox. After that I will be able to convert it to higher level programming language.

>No, development usually doesn't work like that.

I don't plan developement. I simply wont to PORT/BUILD game for my embedded device, to be able to play the game.

>It's more like "hmm, we need to make this thing show in something resembling 3D... let's see how we can do that!"

Hnm player logo.exe is good start to try dissassembly. Its not to long. As I expected it shows most of knowledge related to graphics

sprites/palettes. Now I see that it's posible to disassembly all the game. logo is using extraction similar to rlew, unhsq or direct copy,

all varriants with or without color keying. All optimized for fast direct scrren videoram access. I garantee You can't figure out

in other way which method to apply, whan apply and how apply without disassembly.

Without disassembly no 1 would be able use or extract any data from original game, even write new one which using that! How can

you do it without data extractor??? Oh, sorry. You may wont to play all the game and printscreen all pics. Or record music and sounds

on microphone :-)

Actualy I'm able to build new game completely from assembly sources (working and tested under dosbox!). But its over 20000 lines

of pure machine code. It's realy very-very hard work to convert it to C or found code related to audio and video data storage formats.

Most of graphics work (decompression, decoding) is proccessed in video drivers dune386 and dunevga. So finaly all game binaries and executables

have to be dissassembled and understood how works together.

You wont see results?

I partialy converted logo to C, but still not complete.

I coded hsq, unlzexe, disassembler, and binary convertors tools I nedded.

I suppose assembly code is nonsharable, because of author rights. If you aren't perfect in assembly, it will end your life.

I'm very busy now, I have no free time. But realy want to continue and success ... later.

Link to comment
Share on other sites

No, development usually doesn't work like that. It's more like "hmm, we need to make this thing show in something resembling 3D... let's see how we can do that!"

I'm afraid you misunderstood my post, the main point of which was that creating a game and deciphering its engine are two different things, thenceforth there's no reason to compare the time it takes to reverse engineer a game to the time it took the developers to build it.

Link to comment
Share on other sites

Sorry my english is not so good as yours.

I had no choice I must study russian. But I'm trying to the best of my ability.

I would like to ask your forum for your opinions. You all commonly tolking about game enhancements. I thing expansion of dialogs/story or remake to 3D would be nice idea.

1. What 3D engine do you plan to use for new dune?

I'm thinking about unreal engine, but its comercial or licensed. OGRE is open source, free.

2. How can you create 3D graphics and animations?

This job requires software 3D Studio Max or similar. But this software is comercial and is expensive (for me is very expensive).

3. Audio would be easy inough. Emulator for adlib/adlib gold OPL2/OPL3 exists in MAME project and source is free. This files are fmopl.c and ymf262.c.

Music can be played original or do you want to remake music to?

Thanks

Link to comment
Share on other sites

3. More about music.

I like Jescola Buzz Machine composer for electronic music. FSM Infector would be able accept parameters from adlib insdruments.

These generated sounds can be proccesed in more advanced effects than adlib can do and you get better sound. Finaly music is exported to WAV.

I'm mostly using OGG vorbis codec insted of WAV or MP3.

Link to comment
Share on other sites

I think enhancements to the game should be a step later. If I didn't misunderstood, the main focus of this project is first to get the original game running on modern OSes without using emulators such as DOSBox. Initially it was proposed by Monsieur OUXX to build a virtual machine in Java to run the game, but, seeing the direction the project has taken, I think it is best to continue at low-level, with C and assembly just like you are doing. Also, another nice side-application would be a game-resources extractor (and this, if we put together all the tools published in the previous pages of this thread, is almost done).

Obviously, if we could go further than this, and do a 3D remake of the game using open source engines like OGRE, it would be great :)

Rymoah

Link to comment
Share on other sites

Sorry my english is not so good as yours.

I had no choice I must study russian. But I'm trying to the best of my ability.

Aw, sorry for the misunderstanding! I was actually replying to Nyerguds, whose post I quoted :) it was never my intention to question your linguistic skills!

Link to comment
Share on other sites

What the heck....?

I was just referring to the rotating globe in Dune. This is all about remaking a game, only rewriting the core engine and making it use the game's original files. Blender has no relation whatsoever with that.

Link to comment
Share on other sites

Don't worry.

I just want to ask which kind of enhancemets you are planning to make. I have only ideas what should be discuss. I'm new in 3d. I wont to know more about yours opinions. First task to solve is just rewriting game to C from assembly and make sources portable to be system independent. If some one wants to be helpfull and knows assembly/C language I may send him some pieces of code try to translate them. But it will take long time, so please wait.

I have about 10% rewriten now, but not debugged even not tested.

Link to comment
Share on other sites

Hi,

When this remake is released, will it be open-source?

I'm learning objective-C so I can program on Iphone, and I don't have any time to contribute to the project yet, but I would like to port it to Iphone/Ipod Touch when it's done.

The idea literally came to me in a dream.

Also, I have an interesting idea: If you can manage to extract the flight video (flying over the dunes) could someone please upload it? I'd like to try it as a desktop background in Dreamscene for Vista Ultimate.

Anyway, this sounds like it's getting along a bit.

Link to comment
Share on other sites

Also, I have an interesting idea: If you can manage to extract the flight video (flying over the dunes) could someone please upload it? I'd like to try it as a desktop background in Dreamscene for Vista Ultimate.

Anyway, this sounds like it's getting along a bit.

I think it would be best if you record it directly from DOSBox... Actually we don't have a working player/converter for the videos, but only a frame dumper.

Rymoah

Link to comment
Share on other sites

Sorry, I misunderstood about the frame dumper working. Somehow I thought UnHSQ was supposed to do the job. Now I've reread it, I understand.

Mental Note: do not attempt to read forum posts at quarter to two in the morning.

If I knew enough about C, I would join in. Unfortunately, I don't. So I'll just cheer as much as is possible through text. (trust me. It's better than me singing David Bowie) ;)

Link to comment
Share on other sites

  • 5 months later...

Hello

Several months passed.

I think I solved mysteries around hsq. I discovered more info about compression on wiki

[url=http://en.wikipedia.org/wiki/LZ77]

http://en.wikipedia.org/wiki/LZ77

Our hsq is a kind of old well publishded Lampel Ziv algorithm. Methods like this are known as a dictionary coders.

I found same algos in unlzexe for dos, I have to suspect it would be lampel ziv, to save work with compressor/encoder.

Advanced encoders use KMP algorithm for pattern matching to work faster. I think, LZ77 encoding was very polular at end of past century.

Hsq compressor already posted is using simple intuitive match-comparison method, which is slower than KMP.

I hope I get some free time during christmass holiday. I would like to continue rewriting disassembled duneprg to C.

Do you know that zip is improvement of this algorithm? (zip stores dictionary in huffman tree)

Do you know that excelent lzma (7 zip) from Igor Pavlov is latest improvement of this type of compression?

From time to time some body learned about this algo and wrote new one improved (most of them was/are popular and famous)

Link to comment
Share on other sites

  • 4 weeks later...

Good news everyone!

After big's, Ryomah's and Honza.c's dumpers, here is a brand new little toy released by my friend Pierre Clément.

DOWNLOAD :

- Option 1: Attachment to this post DuneReloaded 1.3.zip

- Option 2: External mirror: http://shutupload.com/dl/bd2109a435e2/

DESCRIPTION :

Dune Reloaded

=============

1. Credits

2. What is Dune Reloaded?

3. Installation instructions

Credits

=======

Author of the program: PIERRE CLEMENT

Possibly includes (not verified) some source code from :

- "big" 's HSQ file format dumper

- "Ryomah" 's HNM file format dumper

- "honza.c" 's LZ compressed files extractor

All nicknames and programs above refer to the thread "Rewriting Cryo's Dune 1 : it seems possible !!! " on the Dune2k.com website.

Direct URL : http://forum.dune2k.com/index.php?/topic/17217-rewriting-cryos-dune-1-it-seems-possible/

What is Dune Reloaded?

======================

This is not a finished game. This is only a tiny tech demo meant to show the extraction and rendering process of Cryo's Dune original game files.

Please note, however, that the dunes landscape rendered in the middle of the screen has nothing to do with the original technology. It's an independant Voxel engine (eye candy!).

Installation instructions

=========================

- You need to own the original Dune game *

- Copy the game files directly into /Data/Dune

- Run /Data/DuneR.exe

If the Dune's files are missing in /Data/Dune, you'll get a runtime error

You might also get an error if you're missing some Visual Studio files (not tested). They can potentially be found there : http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

* Some people consider that getting the game from Abandonware websites is not a copyright infringement, and that such practices are tolerated by major companies regarding very old programs that are not distributed anymore. This is not true, and that's not the case for Dune. Dune has been property of Virgin Interactive, and is now property of Electronic Arts. You may not use this program if you are not a legal owner of the original Dune videogame.

Compilation instructions

========================

- The code for extracting original game files has no dependencies

- The on-screen rendering part of this tech demo relies on SDL

Link to comment
Share on other sites

I can do it.

I'm working on duneadl and duneagd drivers now.

I would like to write music player/wave dumper.

I'm using emulators for adlib (2-operator fm synth) and adlibgold (4-operator) chips from mame project (fmopl.c and ymf262.c)

Audio rendering will be direct sound/wav writer.

Stay tuned it will take more time.

Link to comment
Share on other sites

I'm using emulators for adlib (2-operator fm synth) and adlibgold (4-operator) chips from mame project (fmopl.c and ymf262.c)

Audio rendering will be direct sound/wav writer.

Do as you please, but keep in mind that the ideal solution would eb to use the ScummVM chips emulators instead, and, more generally, the more standard the components, the better (use existing libraries as much as you can, for everything).

Thanks Honza!!!

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