Steem SSE Windows Developer's Information

A place to discuss current and future developments for STeem

Moderators: Mug UK, Steem Authors, Moderator Team

User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Steem SSE Windows Developer's Information

Post by DrCoolZic »

Hello Mr Steven 8)

As you prefer that we do not interfere with development questions in your other threads I create this one so we can ask you questions on the Steem SSE source code :roll:

As you know I build using Visual Studio C++ 2012 and I have request for very minimum change in the source (2 lines :mrgreen: )

In mymisc.cpp line 64: Can you change pow(16,n) to pow(16.0,n)
The first argument has to be a double and the compiler chuck on this one

In SSEFloppy.cpp line 1316 can you change TCaps::Init() to int TCaps::Init()
This is so it matches the definition in line 287 of SSEFloppy.h (C++ ISO force return value declaration for functions - could be void)

By modifying this plus the solution/project files I can compile. Therefore many thanks as it used to be much more work to compile :)
Note that I have done minimum tests so far but the "Release" version seems to work fine.

One side note I have partially tested IPF support and results are pretty close to definition 8)
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

With the above modifications the code compiled correctly with revision 28

I just updated to revision 35 and now I am getting 92 errors (on top of the 461 warnings)

all related to m68k_jump_get_...something in SSECpu.h For example:
Error 319 error C2065: 'm68k_jump_get_dest_b' : undeclared identifier U:\Jean\Documents\Visual Studio 2012\Projects\Steem 3.5.1\steem\code\SSE\SSECpu.h 263 1 Steem
Missing an include? seems to come from cpu.cpp?
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

DrCoolZic wrote:Hello Mr Steven 8)

As you prefer that we do not interfere with development questions in your other threads I create this one so we can ask you questions on the Steem SSE source code :roll:
It's the way to go.
As you know I build using Visual Studio C++ 2012 and I have request for very minimum change in the source (2 lines :mrgreen: )

In mymisc.cpp line 64: Can you change pow(16,n) to pow(16.0,n)
The first argument has to be a double and the compiler chuck on this one

In SSEFloppy.cpp line 1316 can you change TCaps::Init() to int TCaps::Init()
This is so it matches the definition in line 287 of SSEFloppy.h (C++ ISO force return value declaration for functions - could be void)
It's because VC6 is so smart, it assumes int. BCC too. I detected other cases because GCC refuses them in the Unix build, but as there's no IPF support in XSteem...
By modifying this plus the solution/project files I can compile. Therefore many thanks as it used to be much more work to compile :)
Note that I have done minimum tests so far but the "Release" version seems to work fine.

One side note I have partially tested IPF support and results are pretty close to definition 8)
IPF support is as good as the emu in capsimg.dll.
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

DrCoolZic wrote:With the above modifications the code compiled correctly with revision 28

I just updated to revision 35 and now I am getting 92 errors (on top of the 461 warnings)

all related to m68k_jump_get_...something in SSECpu.h For example:
Error 319 error C2065: 'm68k_jump_get_dest_b' : undeclared identifier U:\Jean\Documents\Visual Studio 2012\Projects\Steem 3.5.1\steem\code\SSE\SSECpu.h 263 1 Steem
Missing an include? seems to come from cpu.cpp?
Thx for reporting it. Again, one updated file was missing: emu.cpp.
I precisely did those uploads to show how h/cpp separation will be made, so it's better if it works.
Corrected (+ VC2012 fixes) in R36
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

Steven Seagal wrote:IPF support is as good as the emu in capsimg.dll.
Yes I understand and I already found something I do not like (as not beeing equal to original) but I reported the problem to SSP people because it comes from their Lib.
It is too soon to discuss this but I think that the timing might be slightly improved but I need to further experiment.
I will try your new release tomorow
Thanks
Jean
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

I have updated to revision 36
Now it compiles but the DEBUG version breaks on ASSERT(!NextIrFetched); //strong line 501 of SSECPU.h
if forced to continue under the debugger the program seems to run fine after?

The Release build seems to work fine except a copy command not working during build.
However instead of displaying Steem SSE 3.5.1 at strartup it diplays Steem SSE BETA ??? A flag not set correctly?
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

DrCoolZic wrote:I have updated to revision 36
Now it compiles but the DEBUG version breaks on ASSERT(!NextIrFetched); //strong line 501 of SSECPU.h
if forced to continue under the debugger the program seems to run fine after?

The Release build seems to work fine except a copy command not working during build.
However instead of displaying Steem SSE 3.5.1 at strartup it diplays Steem SSE BETA ??? A flag not set correctly?
The ASSERT isn't important if it occurs only once at startup, it's something I haven't figured out yet. Just continue.
The copy command is specific for my system, it copies from dev folder to steem bin folder. I didn't edit it out for upload.
Released Steem SSE 3.5.1 is R27, R36 is current development, so Steem SSE BETA is correct!
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

For people interested attached are the configfiles for visual studio 2012
Unzip the file in the windows-build directory it will create a vs2012 directory.
Go in this directory double click vc.sln and in VS2012 build ;)
That's all folks it should build correctly.
much easier than 3.2 ;) Thanks Steven
Not fully tested but seems ok
You do not have the required permissions to view the files attached to this post.
User avatar
Cyprian
10 GOTO 10
10 GOTO 10
Posts: 2898
Joined: Fri Oct 04, 2002 11:23 am
Location: Warsaw, Poland

Re: Steem SSE Windows Developer's Information

Post by Cyprian »

DrCoolZic does it works wit Visual Studio Express 2012 ?
Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
Hatari / Steem SSE / Aranym / Saint
http://260ste.atari.org
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

Yes it should
I am using professional but express should work
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

When building you may get an error because dinput8.lib and/or dxguid.lib are not found
I have them on my system because I have installed a special kit ...
So if you do not have them here they are
You do not have the required permissions to view the files attached to this post.
ecureuil
Atari maniac
Atari maniac
Posts: 94
Joined: Sat Jul 17, 2004 3:19 pm

Re: Steem SSE Windows Developer's Information

Post by ecureuil »

Hello,

Sorry for post crossing. :/

So if I understand, DrCoolZic use VS2012 (so i assume on Win8), Steven Seagal, you VC6 (and DirectX version ?), BCC works or it's deprecated ?
What's the requirements for third parties tools ?
It's will be great to have a pined subject to explain briefly the minimal configuration to build Steem SSE by OS.
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

ecureuil wrote:Hello,

Sorry for post crossing. :/

So if I understand, DrCoolZic use VS2012 (so i assume on Win8), Steven Seagal, you VC6 (and DirectX version ?), BCC works or it's deprecated ?
What's the requirements for third parties tools ?
It's will be great to have a pined subject to explain briefly the minimal configuration to build Steem SSE by OS.
Yes I use VS2012 on Windows 8 but it can also be used on Windows 7/Vista

The procedure / tools I use to build original Steem 3.2 is described on this page http://info-coach.fr/atari/software/projects/steem.php

The information needs to be updated but I cannot do it before 2 weeks because I am currently "on the road". However this should provide you enough information to build.
ecureuil
Atari maniac
Atari maniac
Posts: 94
Joined: Sat Jul 17, 2004 3:19 pm

Re: Steem SSE Windows Developer's Information

Post by ecureuil »

DrCoolZic wrote:
ecureuil wrote:Hello,

Sorry for post crossing. :/

So if I understand, DrCoolZic use VS2012 (so i assume on Win8), Steven Seagal, you VC6 (and DirectX version ?), BCC works or it's deprecated ?
What's the requirements for third parties tools ?
It's will be great to have a pined subject to explain briefly the minimal configuration to build Steem SSE by OS.
Yes I use VS2012 on Windows 8 but it can also be used on Windows 7/Vista

The procedure / tools I use to build original Steem 3.2 is described on this page http://info-coach.fr/atari/software/projects/steem.php

The information needs to be updated but I cannot do it before 2 weeks because I am currently "on the road". However this should provide you enough information to build.
Thank you for your answer and your link.
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

The following is copied from SSE.H, it gives some info on structure and compilers:

Added some files to the project.
- acia.h in 'steem\code'.
-In folder 'steem\code\SSE', several files starting with 'SSE', including
this one.
-In folder 'steem\doc\SSE', some doc files (done by me)
-A folder '6301' in '3rdparty' for true emulation of the IKBD
-A folder 'avi' in '3rdparty' for recording video to AVI support
-A folder 'caps' in '3rdparty' for IPF disk image format support
-A folder 'caps_linux' in '3rdparty' for future IPF disk image format support
-A folder 'doc' in '3rdparty' for some doc files (done by others)
-A folder 'dsp' in '3rdparty' for Microwire emulation
-A file 'div68kCycleAccurate.c' in '3rdparty\pasti', to use the correct DIV
timings found by ijor (also author of Pasti).
-A folder 'SDL-WIN' for future SDL support
-A folder 'unRARDLL' in '3rdparty' for unrar support

Other mods are in Steem code, inside blocks where STEVEN_SEAGAL is defined.
Many other defines are used to segment code. This is heavy but it makes
debugging a lot easier (real life-savers when something is broken).
To enjoy the new features, you must define STEVEN_SEAGAL!
If not, you should get the last 3.2 build that compiles in VC6 (only
thing changed is no update attempt).

My inane comments outside of defined blocks generally are marked by 'SS:'
They don't mean that I did something cool, only that I comment the source.

I removed nothing from the original source code or comments.

VC6 is used as IDE, but also Notepad and the free (and discontinued)
Borland C++ 5.5 compiler, like the original Steem.
Compatibility with those compilers is a requirement of this build.
It must also compile in Linux (gcc) for the Unix build XSteem (there's a
working build since v3.4).
The VC6 build should be linked with the C++ library, don't count on system
DLL or it will crash in Windows Vista & 7.
The best build should be the M$ one. They're greedy but they know their
business!

SSE.h is supposed to mainly be a collection of compiling switches (defines).
It should include nothing and can be included everywhere.
Normally switches are optional, but they also are useful just to mark
code changes.

SS_DEBUG, if needed, should be defined in the project/makefile.
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
ecureuil
Atari maniac
Atari maniac
Posts: 94
Joined: Sat Jul 17, 2004 3:19 pm

Re: Steem SSE Windows Developer's Information

Post by ecureuil »

Thanks you Steven Seagal for the additional information !
This afternoon, I updated in the windows_build directory, the mingw Makefile but It's not perfected because some mistake like EasyStr are not compiled due to some problems with the last C/C++ normalization and/or deprecated functions. These problems aren't returned on VS compilers but I will work on it soon. I think, it's a good stuff to santize some stuff for the linux compilation for a long term.
Are you interested, despite it's a "work in progress" I can send patch ?

Thanks for all,

ecureuil
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

ecureuil wrote:Thanks you Steven Seagal for the additional information !
This afternoon, I updated in the windows_build directory, the mingw Makefile but It's not perfected because some mistake like EasyStr are not compiled due to some problems with the last C/C++ normalization and/or deprecated functions. These problems aren't returned on VS compilers but I will work on it soon. I think, it's a good stuff to santize some stuff for the linux compilation for a long term.
Are you interested, despite it's a "work in progress" I can send patch ?

Thanks for all,

ecureuil
Sure, anything you can contribute is welcome, especially linux build.
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
ecureuil
Atari maniac
Atari maniac
Posts: 94
Joined: Sat Jul 17, 2004 3:19 pm

Re: Steem SSE Windows Developer's Information

Post by ecureuil »

Steven Seagal wrote:
ecureuil wrote:Thanks you Steven Seagal for the additional information !
This afternoon, I updated in the windows_build directory, the mingw Makefile but It's not perfected because some mistake like EasyStr are not compiled due to some problems with the last C/C++ normalization and/or deprecated functions. These problems aren't returned on VS compilers but I will work on it soon. I think, it's a good stuff to santize some stuff for the linux compilation for a long term.
Are you interested, despite it's a "work in progress" I can send patch ?

Thanks for all,

ecureuil
Sure, anything you can contribute is welcome, especially linux build.
Hello,

You will find my patch at this url [1]. The ugly part is path settings. I used absolute but it's quick and dirty methods. (ie : STEEMDIR, MINGWDIR, 3RDDIR, INCDIR).
I had remove some stuff which not works like -Dparameter=1. In a future, like said simonsunnyboy, I hope use, CMake BUT the main gold will be to compile as good as possible like Visual C. :)

The nomenclature for this patch is :

Code: Select all

DateOfPatch_message_svn-rXX.patch
svn-rXX will be the version which used for the patch.
Have a nice day,

ecureuil

[1] http://bit.ly/12V2tcZ

NB:
For this path I used a Ubuntu 12.10 with mingw32 packages (mingw32, mingw32-binutils, mingw32-runtime)
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

ecureuil wrote: You will find my patch at this url [1]

[1] http://bit.ly/12V2tcZ
No :)
ERREUR 404 - Document non trouvé
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
ecureuil
Atari maniac
Atari maniac
Posts: 94
Joined: Sat Jul 17, 2004 3:19 pm

Re: Steem SSE Windows Developer's Information

Post by ecureuil »

Steven Seagal wrote:
ecureuil wrote: You will find my patch at this url [1]

[1] http://bit.ly/12V2tcZ
No :)
ERREUR 404 - Document non trouvé
Now, it's fixed. Sorry :P
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

Would it be possible for you (or for me?) to add a directory called VS2012 in Steem/windows-build than can be used by people that want to use Visual studio 2012
To be complete I would also need to add dinput8.lib and dxguid.lib to Steem/steem/lib directory?

Is this feasible?
I am registered as dr-cool-zic in soundforge and I am using TortoiseSVN as well as VisualSVN in Visual Studio 2012
I have not yet uploaded any project in sourceforge and I am not a TurtoiseSVN expert ;)

I can see that tuduri has been adding some code on the repository ?
I guess you need to setup some permission ?

Also I have build Steem Beta 3.5.3 with latest code rev 128
I have converted the dsp/dsw files to sln/vcxproj and compiled with Visual Studio 2012 after minor modification
Not sure if there is a problem in the conversion but it used to be that the project was build using a structure similar to the dirtectories in the tree. Now steem project is competely flat ?!?Is this on purpose?
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

I can't answer questions about VS2012, I don't use it. But I can understand it's more standard today.
Is it even possible that it would make a build more compatible with modern computers? Some people complain that Steem doesn't work well for them.
I added you in the Steem SSE project, so you can upload using any svn client, your username is all what's needed.
All I ask is that you don't break compatibility with VC6, BCC5 and Unix tools.
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
User avatar
DrCoolZic
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2268
Joined: Mon Oct 03, 2005 7:03 pm
Location: France
Contact:

Re: Steem SSE Windows Developer's Information

Post by DrCoolZic »

Hi Steven,

I have sent you an email on soundforge that you can ignore as I have been able to checkin the code for VS2012 correctly.
For some reason if I use the https protocol it works but if I use the svn+ssh protocol it fails?

You can look at the modifications there are all minors and should not impact the current build.
The modification in the source can be identified by JLG

Let me know if these modifications have created problem.
Jean

PS: I would be interested to know if someone can build Steem with VS2012 using my config files :)
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

DrCoolZic wrote: For some reason if I use the https protocol it works but if I use the svn+ssh protocol it fails?
Huh, I just answered by email, in this vein, I don't know the reason.

About the mods, I forgot to insist about something important to me:
every code modification (so in folder /code), even trivial, ought to be protected by #define switches, so that we can revert to the original source, which is sort of sanctified (removing no line of code, no single comment by Steem authors).
It's a life-saver in case something was broken, or in this case to leave the VC6/BCC builds totally unchanged.

Please set up a VS2012 zone in the SSE.H file and create switches like:

Code: Select all

#define SS_VS2012 //JLG - Visual Studio 2012 build
#if defined(SS_VS2012)
#define SS_VS2012_INIT
//etc.
#endif
And in the code:

Code: Select all

#if defined(STEVEN_SEAGAL) && defined(SS_VS2012_INIT)
      HCURSOR OldCur = 0;	// JLG VS2012 uninitialized
#else
     HCURSOR OldCur;
#endif
I know that's heavy and all to the glory of Steven Seagal!, but since that's the way until today, please let's continue.

By the way look at what you did in mymisc.cpp:

Code: Select all

#if defined(SS_VAR_REWRITE_VC_2012)
     if (n>0) val*=(unsigned long)pow(16.0,n);
 #else
-    if (n>0) val*=(unsigned long)pow(16,n);
+    if (n>0) val*=(unsigned long)pow(16.0,n);	// JLG VS2012
 #endif
What happens if we #undef SS_VAR_REWRITE_VC_2012?

This code should become:

Code: Select all

 #if defined(STEVEN_SEAGAL) && defined(SS_VS2012_POW)
     if (n>0) val*=(unsigned long)pow(16.0,n); // JLG VS2012
 #else
    if (n>0) val*=(unsigned long)pow(16,n);
 #endif
It would also be cool if you could keep a delay load capacity for DLL in VS2012, I know it isn't easy, but what happens if a DLL is missing?
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
User avatar
Steven Seagal
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2018
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Steem SSE Windows Developer's Information

Post by Steven Seagal »

I tested your mods, the VC6 build is still OK but the BCC build is broken by line 168 in SSE.h:

Code: Select all

#if WIN32 && (_MSC_VER == 1200)	// JLG VS2012 - only allowed in VC6
#define SS_DELAY_LOAD_DLL // can run without DLL
#endif
It's rather easy to set up a BCC environement for testing, look at the bat files in /bcc, you just need to point to the correct dir. I know it's old and all but for good reasons we still use it.
In the CIA we learned that ST ruled
Steem SSE: http://sourceforge.net/projects/steemsse
Post Reply

Return to “Development”