Introduction
This Project is now abandoned
This page is dedicated to the Steem Emulator developed by Anthony & Russell Hayward.
Steem in now a Freeware under GNU GPL V3 license available from Google Code.
Here I publish works that I have done on the Steem source.
For questions & feedback please use this Atari-Forum thread or this one
I think that the original source code has three problems:
- The sources do not compile using Microsoft Visual C++ 2008/2010/2012/2013
- The organization of the source is extremely unusual: all the detailed .h and .cpp files are included into three main .cpp files. This render the sources tree totally unfriendly to modern IDE and hard to debug.
- There is almost no documentation in the code to help developers.
Recommended Tools to Build Steem on Windows
C++ Compiler
My recommendation for the C++ compiler on Widows is Visual Studio from Microsoft. It includes a long list of features: powerful text editor with syntax coloring, browser for functions/variables, on-line C function help, etc. The intellisense technology automatically displays function and structure parameters (calltips) as you type and it provides auto-completion… and of course it provides a powerful debugging environment. It is available for free.
Note: Some people are still people using the compilers VC6 from Microsoft and BCC5 from Borland to build Steem!
This is really not a good choice! VC6 and BCC5 were released in the past millennium before final definition of ANSI/ISO C++ and are no more available/maintained. Therefore compared to modern C++ compilers they are not only missing features and checking, but more importantly they do not generate optimized code for recent processors architecture. This is the reason why I am using the freely available Visual C++ 2012 .
I provide Visual Studio solution files for all my releases. Therefore after installing Visual Studio you just need to double click the provided solution file (for example Steem32B.sln) to open the Steem solution. You are now ready to build the solution for example by using the F6 key.
Back to the topNASM Intel x86 Assembler
Steem scan-line drawing routines are duplicated in x86 assembler for greater speed. This macro-heavy code compiles with the Netwide Assembler, NASM. The Netwide Assembler, NASM, is an 80x86 and x86−64 assembler designed for portability and modularity. It supports a range of object file formats, including Linux and *BSD a.out, ELF, COFF, Mach−O, Microsoft 16−bit OBJ, Win32 and Win64. It will also output plain binary files. Its syntax is designed to be simple and easy to understand, similar to Intel’s but less complex. It supports all currently known x86 architectural extensions, and has strong support for macros. Documentation can be found here
Back to the topVersion Control System
It is always a good practice to keep track of the modifications you do on a project. So you can reverse to previous version of a project. Many open source repositories are using Apache Subversion (SVN). This is the case for the Original Steem code on Google code as well as for Steven Seagal version on Soundforge. Therefore on Windows I recommend to install the TurtoiseSVN client which is the de-facto standard for SVN. TustoiseSVN is fully integrated in Windows Explorer and this is all you need to manage revision of the Steem project. However if you are using any of the retail versions of Visual Studio (i.e. not one the free version) I recommend that you also use VisualSVN Visual Studio plug-in. With this plug-in you can perform all the Subversion operations directly within Visual Studio and it is free for personal usage.
You may also need to create a Subversion server on your machine if you want to create personal versions of Steem. Installing a Subversion server used to be relatively complex but now you can use the free VirtualSVN server to easily setup an Apache Subversion server.
Back to the topProject Documentation
For documentation of the project and the documentation of the code I use the fabulous and free Doxygen. Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#... It produces a very complete set of HTML documents. Doxygen can also produce a .hpp command file that allows to process the HTML files by the free HTML Help workshop from Microsoft in order to produce one compiled and compressed HTML file (.chm) that is easy to transmit and read under windows.
The installation of Doxygen is easy. You also have to install the Doxygen GUI frontend. All my Doxygen command file have the extension .dcf (Doxygen command files) so I can directly start Doxygen GUI just by double clicking any of them.
The project documentation is also done under Doxygen. For that matter the text documentation of the project uses Doxygen commands to produce nice HTML documentation. The files used for documentation uses the .dox extension (so it is easy to recognize them). I also have .css (HTML style sheet) files to better control the look of the output.
Back to the topDrCoolZic Releases: Steem-DCZ
Note : I have limited knowledge about emulation techniques and so it is difficult for me to understand the Steem code. Therefore I have created “cleaned-up” versions of the code. This includes a clean separation of the code in .h .cpp files and removal of obscure code like ONEGAME which are totally useless. The ultimate cleanup also remove all Unix code for which I am not interested. At this stage these releases are only of interest for developers as no new features are introduced. As Steem is an open sources under GNU GPL3 the source code modified by myself is available for download along with Windows executable.
See the following documents:
- The document Building Steem 32A-32B on Windows explains how to build Steem on Windows using VC++ and my source tree.
- The Steem Source Code Reorganization describes the principles used to reorganized the Steem source code.
3.2B-DCZ
This is a major release where my 3.2A source code has been completely reorganized in cleanly separated .h and .cpp file. This was a huge work but the result is nice especially for debug under Visual C++.
Hopefully the 3.2B source tree is now organized as it should have been in the first place. The .h files only contain the declarations for the corresponding .cpp files that only contain the implementation. I have also started to add some Doxygen documentation and GNU GPL information.
- Details of changes (see also Steem Source Code Reorganization)
- Steem documentation: It contains the original documentation from Anthony Hayward as well as the documentation of the code generated by Doxygen (file information, module and classes description ...). This is still a preliminary document but yet very useful to find your way in the code. You have to unrar the file and open index.htm in your Internet Browser.
- Source tree - also contains all the required dll and per-assembled .obj files
- Standard Build executable
- Build with disassembler window
3.2A-DCZ
This release is based on the official 3.2 version that I have downloaded in December 2011 from Google Code. In this release I have made as little modifications as possible to the source so that Steem compiles successfully with Microsoft VC++ 2010. The tree contains an extra directory called VC2010 that contains the VC++ 2010 project files.
- Detail of changes
- Source tree - also contains all the required dll and per-assembled .obj files
- Standard Build executable
- Build with disassembler window
Steven Seagal Realease: Steem-SSE
Steven Seagal has revived the Steem project as Steem SSE. This new version is released on a regular basis (V3.5.3 at time of this writing) and brings a lot of new features like for example support of IPF files. One of the problem is that the program could only be build on Windows using VC6 or BCC. I have modified the source code so that it now compiles using Visual Studio 2012 and I have created the VS2012 configurations files to build Steem. Steven Seagal has allowed me to modify his source tree so that anyone can build with VS2012. The modification have been placed in the source tree starting with revision 132 of the repository. I will try to update at any new official release.
The complete procedure to build Steam SSE is described in this document:
The source tree is kept in a subversion directory on Soundforge. It can be accessed at either:
- https://svn.code.sf.net/p/steemsse/code/trunk/steemsse
- svn://svn.code.sf.net/p/steemsse/code/trunk/steemsse
Personally I use TortoisSVN for getting the latest source code.
Back to the topSteem & Tools Related Links
- Steem Emulator The Freeware STE Emulator by by Anthony & Russell Hayward
- Steem Emulator open source project at Google Code
- Steem Emulator SVN repository
- Steven Seagal Steem Build site
- Steven Seagal Steem SVN repository
- Atari-forum dedicated discussion where you can talk about ideas for Steem further development
- Steem Clean Splited Tree for VC++ 2010 presentation on Atari-forum
- Microsoft Visual Studio Express 2012