Compile win_ds1edit.exe on Windows 10 (VC++2010)
Moderator: Paul Siramy
Compile win_ds1edit.exe on Windows 10 (VC++2010)
Compile win_ds1edit.exe on Win 10
==================================
This is an updated guide for anyone else having problems getting old VisualC++2010Express to work.
There's not really much new information for experienced programmers (that know VC++2010 by heart) but newcomers might welcome it.
This is mostly just my writeup of what I did. There might be far easier ways to do it, so feel free to add ideas/suggestions
1. Downloads & Installs
=======================
As a side note VC++2010 peacefully coexists beside my VisualStudio 2019 Community Edition Installation.
win_ds1edit source files
---------------------------
Source code is provided for free by the author Paul Siramys (huge thanks!) on his site:
http://paul.siramy.free.fr/_divers/ds1/dl_ds1edit.html
Microsoft Visual C++ 2010
---------------------------
WinDS1 is compiled with Microsoft Visual C++ 2010. [1]
Download the iso from
https://web.archive.org/web/20130811055 ... press1.iso
Installation: - extract the VS2010Express1.iso with 7zip and start \VCExpress\setup.exe
- disable both options: Silverlight & Microsoft SQL Server 2008 SP1 and finish the install [2]
Allegro Library
---------------------------
win_ds1edit uses the Allegro Library. Go to http://www.allegro.cc/files/?v=4.4
and get the "MSVC 10" windows binary ( allegro-4.4.2-msvc-10.0.zip /.7z )
Extract the files.
2. VC++: Setup & Configs
=======================
Setup a project
---------------------------
To compile win_ds1edit.exe you need to make a new project with all .c and all .h,
and link the Allegro library.
- start "MS Visual Studio C++ 2010 Express"
- on the start page click "New Project..."
- select template "Win32" / "Win32 Console Application"
- enter a name & click OK
Win32 Application Wizard
---------------------------
- click "next"
- Application Settings: At "Additional options" select "Empty Project" & click "Finish"
- Your new project opens. Notice "Header Files" and "Source Files" folders within the "Solution Explorer" window.
Add win_ds1edit Files to the project
--------------------------
- Switch to windows explorer and open the win_ds1edit-source directory
- select all .h files and drag&drop them to your projects "Header Files"
- select all .c files and drag&drop them to your projects "Source Files"
-- also repeat this for all files in "mpq" subdir.
Link Allegro library [3]
---------------------------
In your "Solution Explorer" CLICK on 'YourProjectName'! It's the subelement of "Solution 'YourProjectName' (1 project)"! (This. is. important!)
Open menu "Project" / "Properties": In the left column open "Configuration Properties"
(next steps will always assume we are under Configuration Properties)
- In C/C++ -> "General" in "Additional Include Directories" add the path to your allegro.h file: "<PathToExtracted_Allegro>\include\"
- In Linker -> "General" in "Additional Library Directories" add the path to static library allegro-4.4.2-monolith-md.lib: "<PathToExtracted_Allegro>\lib\"
- In Linker -> "Input" in "Additional Dependencies" add the allegro library by clicking the dropdown button and click <Edit...>. Write "allegro-4.4.2-monolith-md.lib" in the input field and click ok.
3. Let's compile!
=======================
Now everything should be setup correctly. Open menu "Build" / "Build Solution" start compiling.
You shouldn't have any warnings or errors:
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
You'll usually find the new .exe file in your debug dir.
source:
WinDS1 source-readme by tool author Paul Siramys
https://stackoverflow.com/questions/366 ... ss-project
credits:
Paul Siramy - Author of this awesome tool!
Tom Amigo "The mpq\ directory is my modification of the 'Sample Console App source code'
at http://www.angelfire.com/sc/mpq/ Big thanks to Tom Amigo to have released
these sources. It's a really usefull piece of code." -Paul Siramy
[1] - I did most of it out of curiosity if VC++2010 worked on Win10
- I also quickly gave up on newer versions of VS as they don't seem to provide necessary dependencies.
- The VC++2010 webinstaller did not work (failed to download a module and cancled setup...).
-- There's also no network installer available - therefor: .iso.
[2] Thankfully we don't need any additional service packs or updates. (they seem to be incompatible with Win10...)
[3] MS has restructured dependency management quite a bit for VC++2010. The old guide from source-readme was probably based on an earlier version of VC++.
==================================
This is an updated guide for anyone else having problems getting old VisualC++2010Express to work.
There's not really much new information for experienced programmers (that know VC++2010 by heart) but newcomers might welcome it.
This is mostly just my writeup of what I did. There might be far easier ways to do it, so feel free to add ideas/suggestions
1. Downloads & Installs
=======================
As a side note VC++2010 peacefully coexists beside my VisualStudio 2019 Community Edition Installation.
win_ds1edit source files
---------------------------
Source code is provided for free by the author Paul Siramys (huge thanks!) on his site:
http://paul.siramy.free.fr/_divers/ds1/dl_ds1edit.html
Microsoft Visual C++ 2010
---------------------------
WinDS1 is compiled with Microsoft Visual C++ 2010. [1]
Download the iso from
https://web.archive.org/web/20130811055 ... press1.iso
Installation: - extract the VS2010Express1.iso with 7zip and start \VCExpress\setup.exe
- disable both options: Silverlight & Microsoft SQL Server 2008 SP1 and finish the install [2]
Allegro Library
---------------------------
win_ds1edit uses the Allegro Library. Go to http://www.allegro.cc/files/?v=4.4
and get the "MSVC 10" windows binary ( allegro-4.4.2-msvc-10.0.zip /.7z )
Extract the files.
2. VC++: Setup & Configs
=======================
Setup a project
---------------------------
To compile win_ds1edit.exe you need to make a new project with all .c and all .h,
and link the Allegro library.
- start "MS Visual Studio C++ 2010 Express"
- on the start page click "New Project..."
- select template "Win32" / "Win32 Console Application"
- enter a name & click OK
Win32 Application Wizard
---------------------------
- click "next"
- Application Settings: At "Additional options" select "Empty Project" & click "Finish"
- Your new project opens. Notice "Header Files" and "Source Files" folders within the "Solution Explorer" window.
Add win_ds1edit Files to the project
--------------------------
- Switch to windows explorer and open the win_ds1edit-source directory
- select all .h files and drag&drop them to your projects "Header Files"
- select all .c files and drag&drop them to your projects "Source Files"
-- also repeat this for all files in "mpq" subdir.
Link Allegro library [3]
---------------------------
In your "Solution Explorer" CLICK on 'YourProjectName'! It's the subelement of "Solution 'YourProjectName' (1 project)"! (This. is. important!)
Open menu "Project" / "Properties": In the left column open "Configuration Properties"
(next steps will always assume we are under Configuration Properties)
- In C/C++ -> "General" in "Additional Include Directories" add the path to your allegro.h file: "<PathToExtracted_Allegro>\include\"
- In Linker -> "General" in "Additional Library Directories" add the path to static library allegro-4.4.2-monolith-md.lib: "<PathToExtracted_Allegro>\lib\"
- In Linker -> "Input" in "Additional Dependencies" add the allegro library by clicking the dropdown button and click <Edit...>. Write "allegro-4.4.2-monolith-md.lib" in the input field and click ok.
3. Let's compile!
=======================
Now everything should be setup correctly. Open menu "Build" / "Build Solution" start compiling.
You shouldn't have any warnings or errors:
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
You'll usually find the new .exe file in your debug dir.
source:
WinDS1 source-readme by tool author Paul Siramys
https://stackoverflow.com/questions/366 ... ss-project
credits:
Paul Siramy - Author of this awesome tool!
Tom Amigo "The mpq\ directory is my modification of the 'Sample Console App source code'
at http://www.angelfire.com/sc/mpq/ Big thanks to Tom Amigo to have released
these sources. It's a really usefull piece of code." -Paul Siramy
[1] - I did most of it out of curiosity if VC++2010 worked on Win10
- I also quickly gave up on newer versions of VS as they don't seem to provide necessary dependencies.
- The VC++2010 webinstaller did not work (failed to download a module and cancled setup...).
-- There's also no network installer available - therefor: .iso.
[2] Thankfully we don't need any additional service packs or updates. (they seem to be incompatible with Win10...)
[3] MS has restructured dependency management quite a bit for VC++2010. The old guide from source-readme was probably based on an earlier version of VC++.
Re: Compile win_ds1edit.exe on Windows 10 (VC++2010)
why would you compile it from source if it is already available with an editor GUI in the keep discord, in #cain-commands when you type .tools?
I've stayed quite a while and heard what you have to say. Now it is time for the real Kain to emerge.
Re: Compile win_ds1edit.exe on Windows 10 (VC++2010)
afaik: Paul Siramy has stopped working on the editor. It's the most advanced DS1-Map Editor and with D2R there might be interest in new features.
With a working build environment it's also much easier to test and reimplement some of the features for other tools.
Of course all of this might change once we get a full featured level editor from Blizzard... but I have doubts that one will arrive anytime soon ;-)
With a working build environment it's also much easier to test and reimplement some of the features for other tools.
Of course all of this might change once we get a full featured level editor from Blizzard... but I have doubts that one will arrive anytime soon ;-)
-
- Posts: 2
- Joined: Wed Dec 15, 2021 5:10 am
Re: Compile win_ds1edit.exe on Windows 10 (VC++2010)
i'm is compiling ds1edit to eclipse ide parallel-2021-12 according to the instructions https://www.allegro.cc/forums/thread/616828 to allegro-4.4.2 https://github.com/liballeg/allegro5/releases/tag/4.4.2
i configured eclipse ide i configured eclipse ide to the instruction https://www.devdungeon.com/content/how- ... evelopment
mu eclipse ide setting
These settings turned out to be working, but eclipse ide no searching allegro.h
This was solved by adding paths in the project setting, in the file .cproject
As a result, the number of errors was reduced to two:
And both errors point to file dccinfo.c
but the definitions themselves are in dc6info.h:
This was resolved by postponing
from dccinfo.h to dccinfo.c
After the changes made, ds1edit compilation went without errors
i configured eclipse ide i configured eclipse ide to the instruction https://www.devdungeon.com/content/how- ... evelopment
mu eclipse ide setting
Code: Select all
MINGW_HOME = ${MSYS_HOME}\mingw64;
//msys2 directories
MSYS_HOME = E:\msys64;
PATH =
${MINGW_HOME}\bin;
${MINGW_HOME}\bin\include;
${MINGW_HOME}\bin\include\c++\11.2.0;
${MSYS_HOME}\usr\bin;
${MSYS_HOME}\usr\include;
This was solved by adding paths in the project setting, in the file .cproject
Code: Select all
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.debug.31072707">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.debug.31072707" moduleId="org.eclipse.cdt.core.settings" name="Debug">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.PE64" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.debug.31072707" name="Debug" parent="cdt.managedbuild.config.gnu.mingw.exe.debug">
<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.debug.31072707." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.mingw.exe.debug.1956745657" name="MinGW GCC" superClass="cdt.managedbuild.toolchain.gnu.mingw.exe.debug">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.mingw.exe.debug.937712099" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.mingw.exe.debug"/>
<builder buildPath="${workspace_loc:/zxvxcvxczvcxzvzxv}/Debug" id="cdt.managedbuild.tool.gnu.builder.mingw.base.46321100" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="cdt.managedbuild.tool.gnu.builder.mingw.base"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.2104737812" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.mingw.exe.debug">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.122750808" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.archiver.mingw.base.1785789162" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.mingw.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.1222735283" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug">
<option id="gnu.cpp.compiler.mingw.exe.debug.option.optimization.level.2041791050" name="Optimization Level" superClass="gnu.cpp.compiler.mingw.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.mingw.exe.debug.option.debugging.level.772138552" name="Debug Level" superClass="gnu.cpp.compiler.mingw.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.dialect.std.1137310010" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.1011127334" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value=""D:\files\new_folder\allegro\include""/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.530901275" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.896228219" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug">
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.mingw.exe.debug.option.optimization.level.1981803481" name="Optimization Level" superClass="gnu.c.compiler.mingw.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
<option defaultValue="gnu.c.debugging.level.max" id="gnu.c.compiler.mingw.exe.debug.option.debugging.level.1396676117" name="Debug Level" superClass="gnu.c.compiler.mingw.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/>
<option id="gnu.c.compiler.option.dialect.std.94439907" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.default" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.380600844" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.871519053" name="MinGW C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1909538101" name="MinGW C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug">
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1583396276" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.release.668298769">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.release.668298769" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.PE64" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.release.668298769" name="Release" parent="cdt.managedbuild.config.gnu.mingw.exe.release">
<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.release.668298769." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.mingw.exe.release.1146435758" name="MinGW GCC" superClass="cdt.managedbuild.toolchain.gnu.mingw.exe.release">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.mingw.exe.release.1400956573" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.mingw.exe.release"/>
<builder buildPath="${workspace_loc:/zxvxcvxczvcxzvzxv}/Release" id="cdt.managedbuild.tool.gnu.builder.mingw.base.649053525" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="cdt.managedbuild.tool.gnu.builder.mingw.base"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.mingw.exe.release.359668948" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.mingw.exe.release">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.334869740" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.archiver.mingw.base.1172935107" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.mingw.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.1685404865" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release">
<option id="gnu.cpp.compiler.mingw.exe.release.option.optimization.level.44482005" name="Optimization Level" superClass="gnu.cpp.compiler.mingw.exe.release.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option defaultValue="gnu.cpp.compiler.debugging.level.none" id="gnu.cpp.compiler.mingw.exe.release.option.debugging.level.206772555" name="Debug Level" superClass="gnu.cpp.compiler.mingw.exe.release.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.238470841" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.341352366" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.mingw.exe.release.option.optimization.level.1925720056" name="Optimization Level" superClass="gnu.c.compiler.mingw.exe.release.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
<option defaultValue="gnu.c.debugging.level.none" id="gnu.c.compiler.mingw.exe.release.option.debugging.level.926533854" name="Debug Level" superClass="gnu.c.compiler.mingw.exe.release.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.700745547" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value=""D:\files\new_folder\allegro\include""/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1525413347" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.release.482471731" name="MinGW C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release.1974274103" name="MinGW C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.link.option.paths.1474296167" superClass="gnu.cpp.link.option.paths" useByScannerDiscovery="false" valueType="libPaths">
<listOptionValue builtIn="false" value=""D:\files\new_folder\allegro\lib""/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.link.option.libs.1585175429" superClass="gnu.cpp.link.option.libs" useByScannerDiscovery="false" valueType="libs">
<listOptionValue builtIn="false" value="alleg44"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.764631646" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="zxvxcvxczvcxzvzxv.cdt.managedbuild.target.gnu.mingw.exe.389048682" name="Executable" projectType="cdt.managedbuild.target.gnu.mingw.exe"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.31072707;cdt.managedbuild.config.gnu.mingw.exe.debug.31072707.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.1222735283;cdt.managedbuild.tool.gnu.cpp.compiler.input.530901275">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.668298769;cdt.managedbuild.config.gnu.mingw.exe.release.668298769.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.341352366;cdt.managedbuild.tool.gnu.c.compiler.input.1525413347">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.668298769;cdt.managedbuild.config.gnu.mingw.exe.release.668298769.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.1685404865;cdt.managedbuild.tool.gnu.cpp.compiler.input.238470841">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.31072707;cdt.managedbuild.config.gnu.mingw.exe.debug.31072707.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.896228219;cdt.managedbuild.tool.gnu.c.compiler.input.380600844">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="refreshScope"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cproject>
Code: Select all
01:51:40 **** Incremental Build of configuration Release for project dfgdfgdf ****
Info: Internal Builder is used for build
g++ "-LD:\\allegro\\lib" -o dfgdfgdf "src\\anim.o" "src\\animdata.o" "src\\dc6info.o" "src\\dccinfo.o" "src\\ds1misc.o" "src\\ds1save.o" "src\\dt1_draw.o" "src\\dt1misc.o" "src\\editobj.o" "src\\editpath.o" "src\\edittile.o" "src\\error.o" "src\\gfx_custom.o" "src\\inicreat.o" "src\\iniread.o" "src\\interfac.o" "src\\main.o" "src\\misc.o" "src\\mpq\\Dcl_tbl.o" "src\\mpq\\Explode.o" "src\\mpq\\MpqView.o" "src\\mpq\\Wav_unp.o" "src\\msg_quit.o" "src\\msg_save.o" "src\\txtread.o" "src\\undo.o" "src\\wBits.o" "src\\wEdit.o" "src\\wMsg.o" "src\\wPreview.o" -lalleg44
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src\dccinfo.o:dccinfo.c.bss+0x40): multiple definition of `dcc_error'; src\anim.o:anim.c.bss+0x40): first defined here
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src\dccinfo.o:dccinfo.c.bss+0x0): multiple definition of `dcc_bits_width_table'; src\anim.o:anim.c.bss+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Code: Select all
dccinfo.c.bss+0x40): multiple definition of `dcc_error'; src\anim.o:anim.c.bss+0x40): first defined here
dccinfo.c.bss+0x0): multiple definition of `dcc_bits_width_table'; src\anim.o:anim.c.bss+0x0): first defined here
Code: Select all
#ifndef _DCC_INFO_H_
#define _DCC_INFO_H_
#define DCC_MAX_DIR 32
#define DCC_MAX_FRAME 256
#define DCC_MAX_PB_ENTRY 85000
char dcc_error[512]; /* if an error is found while using a function of this
// dcc "library", this variable contain a string that
// explain what happened. You should display it somewhere
// to inform the user*/
int dcc_bits_width_table[16]; // will be initialized by dcc_decode()
...
Code: Select all
int dcc_bits_width_table[16];
char dcc_error[512];
After the changes made, ds1edit compilation went without errors
-
- Posts: 2
- Joined: Wed Dec 15, 2021 5:10 am
Re: Compile win_ds1edit.exe on Windows 10 (VC++2010)
ds1edit is not just a map editor, it is almost a ready-made game engine for diabolo 2 & d2lod !!!
-
- Posts: 5
- Joined: Thu Feb 17, 2022 6:52 am
Re: Compile win_ds1edit.exe on Windows 10 (VC++2010)
check it out Ghost Squishmallow | Grace SquishmallowMilesTeg wrote: ↑Fri Nov 12, 2021 3:56 pmCompile win_ds1edit.exe on Win 10.
==================================
This is an updated guide for anyone else having problems getting old VisualC++2010Express to work.
There's not really much new information for experienced programmers (that know VC++2010 by heart) but newcomers might welcome it.
This is mostly just my writeup of what I did. There might be far easier ways to do it, so feel free to add ideas/suggestions
1. Downloads & Installs
=======================
As a side note VC++2010 peacefully coexists beside my VisualStudio 2019 Community Edition Installation.
win_ds1edit source files
---------------------------
Source code is provided for free by the author Paul Siramys (huge thanks!) on his site:
http://paul.siramy.free.fr/_divers/ds1/dl_ds1edit.html
Microsoft Visual C++ 2010
---------------------------
WinDS1 is compiled with Microsoft Visual C++ 2010. [1]
Download the iso from
https://web.archive.org/web/20130811055 ... press1.iso
Installation: - extract the VS2010Express1.iso with 7zip and start \VCExpress\setup.exe
- disable both options: Silverlight & Microsoft SQL Server 2008 SP1 and finish the install [2]
Allegro Library
---------------------------
win_ds1edit uses the Allegro Library. Go to http://www.allegro.cc/files/?v=4.4
and get the "MSVC 10" windows binary ( allegro-4.4.2-msvc-10.0.zip /.7z )
Extract the files.
2. VC++: Setup & Configs
=======================
Setup a project
---------------------------
To compile win_ds1edit.exe you need to make a new project with all .c and all .h,
and link the Allegro library.
- start "MS Visual Studio C++ 2010 Express"
- on the start page click "New Project..."
- select template "Win32" / "Win32 Console Application"
- enter a name & click OK
Win32 Application Wizard
---------------------------
- click "next"
- Application Settings: At "Additional options" select "Empty Project" & click "Finish"
- Your new project opens. Notice "Header Files" and "Source Files" folders within the "Solution Explorer" window.
Add win_ds1edit Files to the project
--------------------------
- Switch to windows explorer and open the win_ds1edit-source directory
- select all .h files and drag&drop them to your projects "Header Files"
- select all .c files and drag&drop them to your projects "Source Files"
-- also repeat this for all files in "mpq" subdir.
Link Allegro library [3]
---------------------------
In your "Solution Explorer" CLICK on 'YourProjectName'! It's the subelement of "Solution 'YourProjectName' (1 project)"! (This. is. important!)
Open menu "Project" / "Properties": In the left column open "Configuration Properties"
(next steps will always assume we are under Configuration Properties)
- In C/C++ -> "General" in "Additional Include Directories" add the path to your allegro.h file: "<PathToExtracted_Allegro>\include\"
- In Linker -> "General" in "Additional Library Directories" add the path to static library allegro-4.4.2-monolith-md.lib: "<PathToExtracted_Allegro>\lib\"
- In Linker -> "Input" in "Additional Dependencies" add the allegro library by clicking the dropdown button and click <Edit...>. Write "allegro-4.4.2-monolith-md.lib" in the input field and click ok.
3. Let's compile!
=======================
Now everything should be setup correctly. Open menu "Build" / "Build Solution" start compiling.
You shouldn't have any warnings or errors:
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
You'll usually find the new .exe file in your debug dir.
source:
WinDS1 source-readme by tool author Paul Siramys
https://stackoverflow.com/questions/366 ... ss-project
credits:
Paul Siramy - Author of this awesome tool!
Tom Amigo "The mpq\ directory is my modification of the 'Sample Console App source code'
at http://www.angelfire.com/sc/mpq/ Big thanks to Tom Amigo to have released
these sources. It's a really usefull piece of code." -Paul Siramy
[1] - I did most of it out of curiosity if VC++2010 worked on Win10
- I also quickly gave up on newer versions of VS as they don't seem to provide necessary dependencies.
- The VC++2010 webinstaller did not work (failed to download a module and cancled setup...).
-- There's also no network installer available - therefor: .iso.
[2] Thankfully we don't need any additional service packs or updates. (they seem to be incompatible with Win10...)
[3] MS has restructured dependency management quite a bit for VC++2010. The old guide from source-readme was probably based on an earlier version of VC++.