Steem SSE 4.2.0 has been released on 20 July 2025.
Windows builds: Windows 2000 not supported anymore, Windows XP or later required, this is because of DirectMusic support.
GUI changes:
⦁ Left click and right click have been reversed for hard disk icons. Left to switch on/off, right to open the settings.
⦁ Wrench icon for configurations removed from tool box, it was a mistake (configs still available in settings)
Linux builds: RtAudio and PortAudio not supported anymore, Steem SSE supports Pulse Audio.... read more
Some features were recently uploaded but they were developed some time ago, it's been a few months since I stopped messing for real with Steem. For the moment there's nothing more I want to do with it. Currently, the v4.2 beta doesn't offer any real emulation improvements, only features. That would be the first time for a major release...
Emulation improvements are different from features, they're far more interesting. For example, adding native support for STX disk images was interesting because there were some emulation issues to solve, but those improvements are already in v4.1.2. The Control Panel was still fun because it's a hybrid feature. DirectMusic and TCP/IP were frankly boring (probably buggy as hell too).... read more
Why is this guy smiling? Because native support for Pasti disk images is now available in beta builds of Steem SSE (Windows 64bit and Linux 64bit):
https://sourceforge.net/projects/steemsse/files/Steem%20SSE%20Beta/
"Native" means a plugin isn't necessary.
Steem SSE 4.1.2 has been released on 3 April 2022.
New keyboard mappings for French and German PC keyboards targeting serious software running in UK TOS ("what you type is what you get"), or menu disks and games (what counts is the key position, check Megaroids and Thrust).
6 setups instead of 3
Shortcut to select the setup, as an alternative to selection through Num Lock and Scroll Lock (laptops typically don't have those keys).
Steem SSE will save a screenshot together with the memory snapshot, and on load it will display that screenshot instead of trying to draw the video memory (didn't work with overscan and Spectrum 512-like pictures).
If the option Restore previous state isn't checked, a nice picture will be loaded at startup, provided you copied it in Steem's directory. You can of course customise this.
New option to write-protect the disk (the sliding tab on the floppy is up), this is now used instead of the Read Only file property in drive emulation. When you insert a disk, the option will be set if the file is read-only or an archive, then you can change it if you will.
Disk image format STW v2: handling fuzzy bits, timing variation and variable track length
New context option to convert SCP images to STW
New button to create a hdd image file. Enter the number of megabytes you wish (1MB=1,000,000 bytes). The file is filled with zeroes. It's up to you to make it a working hdd image. ICD Pro and other ST software may help. The feature isn't much but without it you need special utilities just to create the file.
New option Single pixels, it is like scanlines but vertical.
If option Show all settings isn't checked, there's only one slider for gamma control.
New option Slow fade for MicroWire emulation. The feature already existed but it was commanded by option Hacks before, now it is clearer. Use it If you want to avoid pops when the program changes the volume too fast.
Little redesign, by default the 2nd pane contains useful info, ROM and RAM info is moved to the 3rd pane. Click on panes to change the behaviour.
Save backup snapshot on reset
This was automatic, now it's optional (because saving is a file operation, it can cause a glitch).
Various features that were only available in Windows builds have been ported to Linux:
Ghost disks
MFM Emulation for standard disk images and conversion of image disks to STW
Option Count DMA cycles on disk operations
PRG/TOS support
Special adapters (dongles etc.)
YM -12db hack for STE
Freeboot
Joystick jump button
Closer to hardware for the NFSR flag
Some timing modifications to increase compatibility
Better timings on SCP images... read more
Steem SSE 4.1.1 has been released on 16 July 2021.
As of version 4.1.1, a 64bit build of Steem SSE is available for Linux.
Debug builds are now named SteemDebug...
VSync now also works with double frequencies (eg 100Hz).
Remark that VSync generally consumes more CPU on the 64bit builds.
Use precise hardware counters to time video rendering, if it's not checked milliseconds are used. Microseconds allow emulating the real video frequencies, which are fractional. Timing of display still depends on the hardware and OS (better with FreeSync).
This setting is ignored when VSync is engaged.
BFI stands for Black Frame Insertion. When the option is checked, Steem SSE will update the display at twice the ST rate, one frame will be black, one frame will be the emulated image. It results in less movement blur on LCD screens, but video gets dimmer and some flicker may be perceptible.
This option operates in windowed and fullscreen modes, with or without VSync, but better with VSync. The screen must be set at a high frequency or in FreeSync.
Steem SSE will start a hard polling loop so many milliseconds before the planned time of blit (video rendering). A higher setting means more CPU use. Generally 2ms seems to be a good compromise (1ms is the previously hardcoded setting).
However, if your PC is very busy, no matter how high the setting, Steem SSE may lag. The general option Make Steem high priority has a greater impact here.
This setting is ignored when VSync is engaged.
The normal border size now depends on the TOS language, fewer scanlines for a US TOS, to avoid the black bands.
For Linux too.
New shortcuts that simulate key presses on Num Lock or Scroll Lock for keyboards missing those keys (laptops...).
Yes, now it's an apart option!
Closer to a real MC68000 for BCD operations and for undefined flags.
Some ICD-protocol SCSI commands are now emulated ($25, $28, $2A, $2B), disk images larger than 1GB are handled.
Refill FIFO buffer as soon as it's empty when writing to device (no more hack for laser printing).
The 6301 uses an independent 1MHz quartz, not a fraction of the Shifter clock.
https://sourceforge.net/projects/steemsse/files/Steem%20SSE%204.1/v4.1.1/... read more
Steem SSE 4.1.0 has been released on 28 February 2021.
As of version 4.1.0, three full downloads (with doc and some plugins) are offered: Windows D3D 32bit and D3D 64bit, and Linux 32bit. All other builds, including the debugger builds, are in one separate archive.
Mouse capture behaviour has changed, please check the manual.
Some options have been moved around again. The advanced settings concept has changed. Now it's called all settings and should be checked only if you want those rarely used settings. The GUI is clearer if it's not checked (for instance the ST model option is a radio button control and not a menu).
Steem can now sport bigger icons and fonts. Useful for high DPI screens. It's a startup option, Steem doesn't adapt its GUI dynamically. Because of those bigger icons, the status bar has been moved to the bottom of the window, and its functionality extended. You even get the CAPS NUM SCRL info! Two "crisp" sizes have been added too: x3 and x4, also for those screens.
The SMM804 was an Epson-compatible dot matrix printer, the SLM804 was Atari's famous laser printer. Output is an RTF file for formatting (SMM804) or BPM files for graphics (both printers).
Three new cool options for more vivid colours and for monochrome, grey or green.
New ST Video option. It uses the SweetFX Shader Suite from Guru3D.com. Available on D3D builds only, highly customisable (manually), with this you can emulate cathodic screens in Steem. Guess it's even possible to add new effects.
Steem now features a disk swapper. It is smart because you don't need to create a list, Steem will look for disks in the current folder or archive. Accessible through shortcuts, the classic menu or the context menu. Optionally it can look for series with the same name and a different number or letter, or just load the next or previous disk images. If you so fancy, you can go through the full Automation set with just the disk swapper.
More portable, using relative paths for TOS and disk in A, B. Can customise ST model name.
Finally the last ST model is handled in Steem SSE. We emulate the essential : 16MHz CPU and cache, blitter timing differences, 1.44 MB floppy disks.
GEMDOS hard drive emulation has been refactored and improved. Now operation on TOS 1.00 and 1.02 is quite reliable (there was a little memory leak in all previous versions of Steem). Also, it is now possible to save and restore state snapshots with open HD files.
Still not perfect, but good enough to drive you crazy.
Your dream has come true, you can boot from the external drive.
More realistic input and output timings.
Note: this doesn't remove jitter, Steem still uses a real-time precision of about 1ms.
Computed relation between CPU clock and timer crystal instead of a random delay, different default crystal for STE (IMO the simple reason for some weird cases).
Pirate alert! An STX image of Dungeon Master is included in the Windows 32bit download. The boot sector has been altered so that the game runs at 16MHz on the newly emulated Mega STE, for better response.
https://sourceforge.net/projects/steemsse/files/Steem%20SSE%204.1/v4.1.0/... read more
When v4.0.0 was released I called it Steem 4, thinking it would be a nice simple name and considering that since there was no other branch of Steem around, Steem SSE had become the new Steem de facto. No confusion with the original Steem 3 was possible. I thought that it should be more about Steem and less about SSE (which originally stood for Steven Seagal Edition), it was a modest approach of sorts. Steem 4 was the program, SSE was the company.... read more
The original Steem source had an "odd" structure that has been "rectified" in Steem SSE. In Steem 3.2, most cpp files were included in big compilation units:
#include "cpu.cpp"
#include "mfp.cpp"
...
I thought it was ugly. In Steem 4.0, all cpp files were compilation units. It was "proper" C++, yet builds had become very slow.
The price of performance, right? Well, think again! When the code is divided into so many units, the compiler can only optimise each of those units individually, not through the units. That's why link-time code generation was introduced in compilers. This is slow too.
The original Steem source was actually using the Single Compilation Unit technique, or amalgamation, which allows fast compilation and good optimisation, because the compiler sees everything it needs to. Of course, I was totally unaware of this (and nobody told me either).
An inconvenience of the Single Compilation Unit technique is that the scope of your variables and defines is larger. You can undef a macro, but your global variables and functions cannot be hidden. No big deal for a project like Steem.
Frustrated by the slow builds, I finally created alternative scripts that are more like the Steem 3.2 source. A unit for the emu, a unit for the gui, a unit for the optional debugger.
For the moment, those quick scripts are used for the betas, while the slow scripts are used for the releases. It's hard to see a performance difference between the builds.
So, again a lot of work for (almost) nothing, but no regret as it is all for fun!
As mentioned in some other post, when the second digit of Steem's version number increments, you should expect big features. As a matter of fact, in v4.1, a Mega feature is offered, no less than the Mega STE! What is emulated? Some timing differences. The high density floppy drive. The 16MHz CPU and its cache. The clock (as for the Mega ST).
However, no MC68881 math coprocessor, it wasn't part of the original MSTE anyway and there's almost no software using it. No VME bus appliances. Like for the Mega ST, there's little incentive. For hard drives, it's still the same old ACSI emulation, limited to 1GB. No IDE. No extra RS232. No LAN. ... read more
A post on the forum made me curious about CRT shaders.
There are ways to hack a CRT shader into Steem SSE, for example using the SweetFX utility available at www.Guru3D.com.
A fake d3d9.dll intercepts calls to the real one. The effects are cumulative and highly customisable.
It already works with current D3D releases of Steem as it is. Guess nobody knew!
Just what you've all been waiting for:
... read more
The current beta builds are for Steem 4.1 (current release is v4.0.2).
One big new feature is the Mega STE model, check it out! Remember, those use TOS 2.05 or 2.06. The 16MHz CPU and its cache are emulated, at least my understanding of it, the cache is poorly documented. And you should be able to format a 1.44MB disk.
Also, internally, Steem64 now uses a 32MHz timer instead of 8MHz, for all ST models. Could be buggy!
For the moment, it's not very helpful, but the potential exists for more precise emulation.
It could be done for the 32bit builds too, but then accelerated CPU would be limited, because those numbers add quickly so it will probably be a 64bit exclusive.
Steem v4.0.2 has been released on 15/04/2020.
So that 32bit and 64bit versions of Steem can cohabit in the same directory, all the plugins can be stored in a plugins32 or plugins64 folder, it's the first place where Steem will look. After that, it looks in a plugins folder, then, for DLL files, in a folder with the same name as the DLL (pasti, FreeImage...). Finally in Steem's main directory.
In keyboard options, the last choice in the language list, Mapping file, allows you to select an ini file that contains key mappings. Examples are included for the German and French keyboards. The format is simple, you just need to know the ST keys, that's why a graphic is also included. The point of the feature is to allow you to create your own mapping in case you're not satisfied with Steem's hardcoded mapping.... read more
There will be no more releases for v4.0.1 because I found some bug in loading older memory snapshots that appears in v4.0.0 and v4.0.1. The best way to fix it is to have a new point release, v4.0.2.
There will be very few new features. The main one is the ability to use a file for keyboard mapping.
The last choice in the language list, Mapping file, allows you to select an ini file that contains key definitions. Two examples are included for the German and the French keyboards, which should be the most used beside English. The point of the feature is to allow you to create your own file in case you're not satisfied with Steem's hardcoded mapping.... read more
If you want scanlines in fullscreen, the max resolution (as chosen in Mode) could be less than ideal.
Especially with the Crisp option checked, the 800x600 mode could be better.
As those pics illustrate (check them in full size). The 1280x1024 have some artefacts. It's because a fractional multiplier is used.
It really depends on your screen and video card.
1280x1024:
... read more
Because of bugs tending to be reported right after a release, and of all the work and time, blood and tears needed for a proper release, Steem SSE will now follow another release plan.
Steem's version number has 3 digits, like 4.0.1.
The first 2 digits are to be considered together. The first digit is incremented when the second one was at 9 (we were at 3.9, next is 4.0). The second digit is incremented for "big" changes, the third digit for "small" changes, although what is big and what is small is subjective.
Bugfixes will be applied to the current 3 digit release. We keep the same version number, we add an R number, going from 0 to infinity.
Should have done that before. For example for v4.0.0 there was a little bug in the x64 builds (no MIDI output option) that was reported several times. It was very easy to fix, so why wait?
Of course, betas were available but most people download the latest official release because normally it's less buggy than a beta.
Now, bugfixes will be quickly incorporated in the official release, the betas will be for new (buggy, of course) features, while also incoporating the same bugfixes as the release.
That's less stressful for me.
Steem v4.0.1 has been released on 1/2/2020.
The monochrome (71hz) rendering issues with Direct3D9 mentioned in v4.0.0 release notes have been fixed. Bugs were on our side! D3D9 builds available again, and recommended.
Since we have more builds available, file names have changed again, sorry about that.
Nine builds of Steem 4 are available for download:
Debugger32D3D.exe
Debugger32DD.exe
Steem32D3D.exe Main build
Steem32DD.exe
Debugger64D3D.exe
Debugger64DD.exe
Steem64D3D.exe
Steem64DD.exe
XSteem32 Linux build (beta-only)
Debugger includes a powerful ST debugger interface but is heavier on the CPU. 32/64 stand for bits, DD/D3D for DirectDraw/Direct3D.
For the moment, the Linux build is beta software because it has fewer features than the Windows builds. Features will be progressively added.
A new page in the general information window (blue icon in the tool bar) gives you interesting statistics about what the program did between Start and Stop, such as disk activity, CPU exceptions, video, etc. Thx Ben Watson for the (PC) CPU use facility.
You are also informed on what values the various chips of the ST might contain.
Also a new option No OSD on stop to help the colour counter. Stop is then delayed by one frame.
-
Shortcut doesn't work
No MIDI out devices
Fullscreen borders not erased
D3D builds: VSync always on
Start in fullscreen failing
FPS crash if video counter above available memory (Lethal Xcess)
Pressing Enter resets the ST or other undesirable effects when this window open
Crash if changing display/sound options live
Incompatible with extended monitor hack
Can't disable
Wrong on STFM
A little demo is included as an example of ST disk image (STEEM401.ST), it should convince you of the ST's amazing possibilities.
https://sourceforge.net/projects/steemsse/files/Steem%20SSE%204.0/v4.0.1/... read more
Development of XSteem, the Unix port of Steem, will resume!
With those impressive tools (VMware, codelite), at least the fun is back.
Note that for the moment it's all broken. Especially third party could be trouble, we shall see...
Or maybe not, anyway that's what you get (if nothing else)!
https://sourceforge.net/projects/steemsse/files/Steem%20SSE%20Beta/
There are 2 archives, one for 32bit builds, one for 64bit builds, only the executables.
Including D3D9 builds, in case they work for you.
New feature General Info/Status, and some bugfixes.
And it will be very soon as there are some annoying bugs in v4.0.0 (frankly, it was expected).
There will be a nice requested feature to boot, a window containing interesting statistics on what the program is doing, reset at each run, updated at each stop.
The window is part of the general info window (blue icon on the toolbar).
The STE features part is precisely what was requested, the rest is something I had in mind before (that's why it was so quickly added).
When testing this on the Dragonnels menu, I thought something was wrong:
4096 colours?
But if you compare the STF and STE pictures, the plasma is indeed softer on the STE.... read more
Steem v4.0.0 has finally been released.
Breaking changes
⦁ Due to serious monochrome (71hz) rendering issues with Direct3D9, the main build is now the (improved) DirectDraw 32bit build. The D3D builds can be compiled but the binary aren't directly available.
⦁ Some data files are now incorporated in the executable and are not needed anymore: steem.new, HD6301V1ST.img, HFE_boot.bin, ym2149_fixed_vol.bin. Binaries still loaded if present (so you can use alternative files).
⦁ Steem SSE documentation is now in RTF format, with clickable links. All documentation files should be in a /doc folder so that Steem can display them in the info box (F1).
⦁ All plugins (dll) and other accessory files (bin, img, msa.exe) should be in a subdirectory of Steem called plugins.
⦁ Default drive sounds have changed, to get the previous version (Epson), you must point to the appropriate directory.
⦁ Steem doesn't try to match TOS with ST model anymore, instead it can auto-load a configuration.
⦁ Options have been moved around again, there are more tabs such as ST Video and Keyboard/Mouse.
⦁ F11 is now reserved.
See below and in the manual for further information.
Better keyboard control. Press Alt for an alternative menu. Press tab to navigate dialogs.
F11 instead of Pause/Break to grab or free the mouse, because the latter key is not always available on the keyboard (laptops). This means F11, just like F12, is now reserved and can't be used as your own runtime shortcut if there are no modifiers (shift...). But Pause/Break is free.
The familiar C1 and C2 options have been reorganised. C1 is now low-level 6301 emulation on the new Keyboard/Mouse option page, same effect, same icon.
The former C2 (68901) isn't optional anymore, because our new CPU interrupt model has an impact on MFP emulation, and making it optional could add overhead and user confusion. C2 is now the option for high-level software overscan emulation. It is recommended for demos in general, but not really for the rest, so that Steem can use even less power than before.
No need to press play.
This could make Steem more responsive. A bit experimental.
Lower YM volume 12db in the mix on the STE (convenience hack).
You can save default configs as STF, STFM, Mega ST and STE. They will be automatically loaded when you change the ST model.
The difference with STF is bus error (crash!) on STE register LINEWID access (Colorz, Fuzion 77 & 78, Imagination, No Cooper...).
On screen frame rate counter. Beware bad programmers, you will be exposed!
To adjust a timing that impacts Spectrum 512 pictures. 0 (default) is the most compatible setting.
On screen display.
Debug info file.
6301 battery (all ST), Ricoh RTC (Mega ST).
Option MFM emulation for hopefully more precise timings when running ST, MSA or DIM disk images.
The Automatic fast forward on disk access option now also works with MFM, Caps (SPS) and Pasti emulations.
You can now choose samples for each drive.
Disk manager can create uncompressed MSA and DIM disk images. Even uncompressed those formats are better than ST.
You can load ini config files from the disk manager.
New interrupt model: the CPU checks for interrupts sometime during the instruction, not between instructions (Motorola AN1012). It's the biggest emulation change in this version of Steem but you should see almost no difference (Phantom scroller).
STE: When the program writes to the video counter registers, the GSTMCU cannot at the same time add the LINEWID offset to this counter.
Video memory isn’t displayed if the frequency is changed when the GLUE is about to start the frame (Hard as Ice, one of the most advanced screens ever coded for the Atari STE).
Track writes to video RAM (Appendix - the demo is buggy so if you want perfect display, use an older version of Steem!)
If you choose a US TOS for STF or STE, NTSC clock instead of PAL.
Reading mouse/joystick could affect reading keyboard (Froggies over the Fence menu accepting Enter).
Timings when the CPU is accelerated.
MIDI in stalls with option C1 (Cubase, etc.). Big bug, sorry!
Stack register at reset (TOS 1.0 now working with 4MB).
Window going back to main monitor at each resizing or reset.
Hires black borders missing.
Imprecise emulation speed at 60hz and 71hz.
Update draw pointer on video counter write at the start of the line (Talk Talk 2 bee).
GEMDOS hard drive emulation: fix file handle leak (Lattice C in TOS above 1.02).
Video counter reload timing (Calimero).
Mono STE sound and Microwire (Rebirth - sorry, I needed some years to understand what it was all about!)
Configurations: errors on loading.
The DAM timeout is relative to 1st sync mark (X-Out SCP).
Fix wrong head settle delay (Pandemonium DIM in ADAT mode).
Fix stall due to frequency change (World is my Oyster ADAT).
Some timing randomness when time to next flux too long (Powerdrome SCP).
Fix track ending on very long transition recorded on next rev (Finale/Overlander SCP).
'No stretch' display modes.
A little demo is included as an example of ST disk image, it should convince you of the ST's amazing possibilities.... read more
Since the release of Steem 4 has been delayed due to much needed bug-fixing, I couldn't help adding some little new features as well:
Video frequency in status bar
So you can see if a program runs at 50Hz or 60Hz. For example, Leavin' Teramis makes a fuss about having a monitor, but the game is 50Hz regardless! You can also see some demos using trace decoding at 71hz (Transbeauce 2 etc.). If a game offers the option, 60Hz should be smoother, and display better on our current PC screens.... read more
So what took so much time? Most files have been reviewed and refactored.
Much of it is not even real refactoring, just a style choice, trying to have the same format everywhere.
For instance:
void edgy() {
if(a==2)
{
b=5;
c=6;
}
else
c=7;
if(c<6)
b=8;
}
instead of:
void edgy()
{
if (a==2){
b=5;
c=6;
} else {
c=7;
}
if(c<6) b=8;
}
Notice the subtle differences! It's just a matter of preferences, this changes nothing but all the source files were modified. Fortunately, the IDE can do a lot automatically.
It's not all however. We integrated the 'SSE' parts in the older parts. For example, a new mmu.cpp file with the former SSEMMU.cpp code and parts of emulator.cpp. Things like that... No more specific SSExxxx.cpp files.
File names change, more modules are compiled... All files that were in /code and /include have become translation units or merged with some. Now the only parts that will still directly include code files are the 6301 emu (based on 3rd party code) and draw_c (64bit).
This makes full compilation quite longer, in part that's why it wasn't done before. Partial builds are quicker, unsurprisingly.... read more