Jump to content
23-down

Huge C&C1 Singleplayer mappack

Recommended Posts

Could you make one list with all the missions downloads so far? They're getting quite spread out over the posts...

 

Maybe you should make a new topic for it, too, so you can keep the top post updated.

 

 

ok, I'll do that.

Let me organize the format of the topic first and then I'll list everything in every aspect.

 

/edit

First doubt: Do I post it here @ Command & Conquer Patch 1.06 forum

or

should I post it @ Classic C&C Related Maps & Modding forum?

Edited by Solo

Share this post


Link to post

Hmm, yeah, might be better to post this in the Classic Maps forums.

Share this post


Link to post
eh, .diz? Those are just readme files. Open them in notepad :P

 

Another note, there's a pack of German missions somewhere that I already organized and translated; it can be found here:

http://nyerguds.arsaneus-design.com/cncstu...ons/kohlrus.zip

I've made it use the 1.06b translation system to make sure the original German briefings are still shown if the player has put the game language to German.

 

btw, solo, sorting out maps and ini files is one thing, but do you know how to handle missions packed in mix files?

jesus, im searching for this mappack since i played it in the dos version of cnc in 1996. the floppy with the missions went missing and i never found them again until today. i cant believe it, you even made it compatible with your patch. man, i LOVE you! :)

you just gave a meaning to 15 years of search :D

Edited by Oedi

Share this post


Link to post

Well, to be fair, I've done 15 years of searching to collect tons of this stuff ;)

 

That mission pack was one of the first experiments I've done with the translation pack. If I remember correctly, I even released it that way before the patch which had the translation system was even released. The system works in such a way that an unpatched C&C would just ignore the extra language data anyway :)

Share this post


Link to post

Well, most of the things that have savegame-only releases were indeed only released as savegames as kind of "protection", so I personally doubt we'll recover many of those :(

Share this post


Link to post
... only released as savegames as kind of "protection" ...

 

Hmm, I wasn't aware about that.

So, we'll have to play them ^_^

Share this post


Link to post

you know, it'd be neat if I could somehow get the game to write triggers, teamtypes and maps back to ini format... it's entirely possible that it could be forced to do that (I know a bunch of the ini writing functions exist anyway). Unfortunately, it won't help this at all, since it'll still only be for Win95 savegames -_-

Share this post


Link to post

Ini stays ini.. Shouldn't matter if it was DOS based or win95 based. If you can create a tool that reads the savegames and creates an ini + bin file again it would be awesome. I guess there were only minor changes between the DOS ini structure and win95 ini structure.

 

I also wouldn't call it a protection necessarily. Back then there wasn't the Covert Ops AddOn released at that time. Or not everyone had it and therefore they simply released their missions as savegames so that everyone can play them. Who knows.

 

Basically you need a batch. file or so which reads the specific savegames and executes a code which decompiles the savegame and put it in typical c&c ini. structure back to an ini.

Edited by 23-down

Share this post


Link to post
... Basically you need a batch ...

 

Well, I'm still praying for someone to step ahead and do something like this, because the savegames i've seen are awesome, or it looks like. I had to open around 80 savegames. And after that I've found more that I didn't open yet.

 

And also, I can't help much. I know nyerguds is just a step away, but I think that would be too much because there is a lot more goin'on and also at stake.

So if you're willing to try it 23-down, you should do it.Why don't you create a thread about that and let's see who else come along.

You don't have to commit yourself because there ain't no risk of loosing anything. This way we could broad up our "CnC95 recover portfolio".

If things turn out to be more complex, we will find a way. And if it is about "heavy labour", let's talk and find a way too.

 

In cnc-comm, White and Allen almost paired up to make C&C Cold War Mod getting the advantage of the experience of Red Dawn's Allen and it's been quite an interesting thread about how the things are developing. Since this is "not" (just a point of view, of course) a creative effort, it is suitable to the idea of a community.

Share this post


Link to post
Ini stays ini.. Shouldn't matter if it was DOS based or win95 based. If you can create a tool that reads the savegames and creates an ini + bin file again it would be awesome.

No dude, I mean the SAVEGAMES. Ini may stay ini, but the DOS and win95 savegame formats are different. It might be possible to make C&C95 save ini data from a game in progress, but that won't help at all to get information from the DOS savegames, since C&C95 can't LOAD them. <_<

 

I guess there were only minor changes between the DOS ini structure and win95 ini structure.

There are no differences whatsoever, besides my own v1.06 upgrades. And those only add extra options, they don't change any existing ones.

 

I also wouldn't call it a protection necessarily. Back then there wasn't the Covert Ops AddOn released at that time. Or not everyone had it and therefore they simply released their missions as savegames so that everyone can play them. Who knows.

Well, part of it was that it took a surprisingly long time for them to find out that map files were called ".bin", which meant that the only way to get missions working was replacing an original mission inside the general.mix archive, with tools that couldn't even identify the filenames. There were lists of identified encoded IDs in the mix files, and they used those to replace files. Wasn't until the latest Mix Manager versions that the name encoding algorithm was cracked, and the mix editors automatically identified all standard-named mission files automatically (something even XCC doesn't do).

 

Another part is that pre-CO, to have a GDI tech level 10 mission, you HAD to replace GDI mission 10. Since the game ignores the "Buildlevel" setting in the campaign (something my patch fixes), you couldn't just replace mission 1. So providing a savegame was an obvious help with it. Still, even after the .bin thing was discovered, a lot of people had the annoying tendency to redistribute missions they found as only the included savegames, seeing the .ini and .bin as extra but useless files, since all they were really useful for was restarting the mission, which could just as well be done by reloading the savegame. Which, to me, feels a bit like getting rid of a program's source code just because you got a working exe file of it -_-

 

Basically you need a batch. file or so which reads the specific savegames and executes a code which decompiles the savegame and put it in typical c&c ini. structure back to an ini.

...batch files are command prompt scripts. They can't do advanced stuff like that. The only 'easy' way to recover game data, as I said, is use the old mission editor functions still present inside the game to make it save ini data from a game loaded into memory. Which isn't really that "easy", either -_-

Share this post


Link to post

Isn't it possible to load the games in DOS version decompile them with a dos specified tool and then convert them to c&c95 format? Not sure I mean in the ini you can basically edit anything? At least I wouldn't see any other possibility in theory..

 

And no solo I can't do that. I'm no coder I just posted about theoretically things which could be or could not be possible based on the intel Nyerguds provided. Even if I could do something like that I simply lack the time due to job stuff etc.

Share this post


Link to post

I can't do extensive hacking like that in DOS C&C (mostly due to lack of space; Hyper made C&C95's exe twice as big for me to add my own code into it), and there are little to no win95-savegame-only missions, so overall I don't think it's worth spending any time on this kind of project.

 

There's another thing you should know about savegames... they're simply a complete dump of all the internal lists of units, structures, terrain objects, etc. The fact DOS and Win95 savegames are incompatible, as far as I can see, is quite simply because they don't use their memory in the same way. There is no actual format to them, it's literally just a copy from "stuff in memory" to the file, without any checking or converting. This means reversing the DOS savegame data would mean figuring out the exact way the DOS game manages its memory, which, to be blunt, is madness. Everything DOS memory management related is pure madness.

 

And I don't even know exactly how C&C95 stores and accesses its current ingame stuff. In case you hadn't noticed, pretty much all of my edits to the game are related to data loading and global settings, not ingame behaviour.

Share this post


Link to post
The day we have a perfect one-click decompiler . . .

... Computer will be unsupported by games :P

Share this post


Link to post

Psh. one-click decompilers don't solve anything. You just end up with a bunch of code of which you got no idea what it does. IDA correctly disassembles more than 90% of the file on initial load, but it still doesn't mean it can magically recover the lost names of all classes, functions and variables.

Share this post


Link to post

Really? looking at the openDUNE project it seams like it took quite a long time to just get something that--messy, more-assembly-than-C, or not--would recompile into a working executable, though I guess they had all that DOS madness to deal with. How much "external" classes, functions can one get from the documented APIs that most programs use?

Share this post


Link to post

Yeah, I was talking about 32-bit Windows programs. DOS programs are held together by a duct tape mess of tricks to use more memory, need less memory, and cram extra code in where there's no space for it to exist. Dune II literally has pieces of its code that REWRITE THEMSELVES DURING GAMEPLAY.

 

TrueBrain had to write entirely new tools to capture all of that, and the only real way to do that was by playing dune II until that code got used by the game, and his debugger tool noticed and documented the changes. It's a small miracle, and testament to his perseverance, that he managed to even find a way to do that.

 

 

As for the functions automatically identified in the disassemby process... well there are 2 types:

 

-standard API: stuff like memory, string and number manipulations. Reserving memory, cleaning up memory of objects that are no longer used. Getting a string's length, copying a string to a new memory location, comparing strings, putting them in upper and lower case. Getting the maximum or minimum of two values. The code of these functions is actually inside the exe, and is identified by IDA because it's virtually the same in every program.

-external libraries: calls to functions in dll files, like ddraw (directX graphics), thipx32 (in C&C95; network), and user32 (basic file system manipulations and such, iirc). These functions' names are actually stored in the exe as text, and are linked to the external libraries accordingly. The code of these functions is not imported in the IDA database at all though, since it's not part of the exe.

Share this post


Link to post
Yeah, I was talking about 32-bit Windows programs. DOS programs are held together by a duct tape mess of tricks to use more memory, need less memory, and cram extra code in where there's no space for it to exist. Dune II literally has pieces of its code that REWRITE THEMSELVES DURING GAMEPLAY.

 

TrueBrain had to write entirely new tools to capture all of that, and the only real way to do that was by playing dune II until that code got used by the game, and his debugger tool noticed and documented the changes. It's a small miracle, and testament to his perseverance, that he managed to even find a way to do that.

Aha, so that would be the Dynamic Decompilation he was talking about.

 

REWRITE THEMSELVES DURING GAMEPLAY

wut :o (sounds like AI dynamism^2 craziness)

 

As for the functions automatically identified in the disassemby process... well there are 2 types:

-external libraries: calls to functions in dll files, like ddraw (graphics), thipx32 (in C&C95; network), and user32 (basic file system manipulations and such, iirc). These functions' names are actually stored in the exe as text, and are linked to the external libraries accordingly. The code of these functions is not imported in the IDA database at all though, since it's not part of the exe.

Seeing that these external calls are crux of porting some code, could one port a game without really knowing what was going on internally?

Share this post


Link to post

External dlls are the least of the problem. External APIs are usually well documented, and can be replaced by functions that do the same thing on whatever platform you're porting to. After all, hifi's cnc-ddraw managed to perfectly port C&C95 to OpenGL by replacing the ddraw dll file.

 

...

 

I'm seriously considering making a thread of "all stuff SonarPulse derailed", and split it all in there, you know that? -_-

Share this post


Link to post
wut :o (sounds like AI dynamism^2 craziness)

 

it's (bug^bug^bug^bug^bug^bug^bug^nBugs) x LogBug BUG^nbugs

 

Do you know what is the result? WINDOWS!

 

---------------

 

The issues of the .dll is that it simple EXPORTS an function. What that function does is inside the dll, you will need to decompile that too. if you understeand something about C it's really easy to understead.

 

Yeah, we are some kind offtopic here... :P

Edited by pichorra

Share this post


Link to post

I think i get it. they "easy" parts of decompilation will typically give one not too much of an advantage over using a wrapper like cnc-ddraw. Sorry about my derailing. I guess it's too easy [for me, at least] to treat the few "active" threads in fairly quiet forums/sub-forums as kind of a slow-mo IRC, or a single meandering discussion maybe relevant to the (sub)forum but not to the thread.

Share this post


Link to post

um, external dlls ARE the easy part of decompilation. The external links to the dlls simply exist, there's nothing that decompiling will do in that aspect. And most dlls have their functions documented somewhere, meaning writing overrides isn't even hard, since you can just look up what data each function is supposed to receive and return, and what it's supposed to do with it.

 

As long as the functions in the external dll return the kind of values the game expects them to return, there is, to the game, no difference at all between the original dll or an override. CnC-DDraw could theoretically be configured to show absoluely nothing, but the game wouldn't even notice, and you'd still be able to play blind :P

Share this post


Link to post

Hi,

Could you take a look at SCB136EA (No Limits)? I've a feeling it's uncompletable or there's some hidden objective. I destroyed pretty much everything I could find in the map, but I'm still not completing it.

Share this post


Link to post

A first look shows that the BRIEFING is too generic to allow the completion of the mission.

This would be a better briefing, according to the triggers and teamtypes:

 

 

read below the final briefing and avoid this one...

[briefing]

1=There is an important road in a sector heavily controled by the

2=GDI. This road goes from our outpost to a pass located at NW. Once you clear out

3=and secure that road, an allied MCV will arrive and use this strategic pass to reach

4=the frontlines. Also, we've established a Bio-Lab to research tiberium. It must not

5=be destroyed.

 

Paralel to the use of this Briefing, I've changed the INI file.

Can you download the whole pack and try again? The "fix" is not a complete fix, but it should prevent any error that didn't allow the MCV to arrive or to go the last point.

If you don't want to download it, you should, paralel to the use of this Briefing, change these teamtypes inside the INI file:

- APC1, APC2, CONV, CHN1, CHN2

to LOOP:0

If it doesn't solve, I'll play/test it later.

But later on, I'll fix everything.

 

 

\edit

I'll also move the Bio out of the MCV path and will change the AI parameter from 7 to 20 (in the teamtype).

In a hour it'll be changed, I'll test it first.

\edit2

this is it, it's working

\edit3

[briefing]

1=There is an important road that heads to a passage in a sector heavily defended

2=by the GDI. Once you have cleared out and eliminated all possible threats in this

3=road, an allied MCV will arrive and use this strategic point to reach the frontlines.

4=Also, we have established a Bio-Lab to research tiberium. It must not be destroyed.

 

The other briefing was telling too much ...

Edited by Solo

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×