Steem SSE 3.6.4
Steem Engine, by Anthony & Russell Hayward
Steem is a well known Atari ST emulator. It used to be the best ST emulator.
Its development was stopped in 2004, at v3.2. The Steem authors probably got
sick of all the lamers.
Since then, it has remained the best ST emulator with respects to "gameplay",
but other ST emulators like Hatari and SainT are trying to usurp Steem's
In 2011 the Steem authors (Hayward bros) released the source code for further
Steem SSE is a new version of Steem based on this release. It incorporates
new features and emulation improvements, some of them based on the Hatari
emulator, some on various internet discussions and documentation.
Likewise, some Steem improvements are also copied in Hatari.
Steem SSE aims to become the #1 STF/STE emulator. There's no limitation in
the original Steem structure that would make that goal unreachable.
'SSE' stands for 'Steven Seagal Edition'. Steven Seagal is a well known
Aikido grandmaster, action movie star, musician and playboy.
This is also my silly handle at http://www.atari-forum.com (AF).
Both the regular ("user") and the Boiler ("debug") builds are available.
The main build is 'Steem SSE 3.6.4'.
A Linux build (XSteem) is available too. It contains fewer features, and may
lag behind the main version.
All basic emulation improvements (CPU, FDC, etc.) work as well in Linux,
Steem SSE Features
- F12 starts/stop emulation, like in most other emulators (in general, not
The old combination still works too.
- Reset button inverted: left click for reset, right click for switch off
- Drive led: green for reading, red for writing, yellow for hard disk.
- Steem won't run at once anymore when going fullscreen, it will wait for
your orders. (v3.4)
It's because it would always stutter anyway, at least on all computers I've
tried. Way to lose a life.
- Record to AVI (v3.5)
To use this feature, you need to assign a shortcut key combination (eg
right control + V), then use this shortcut to start & stop recording
The video will be saved in Steem's directory as 'SteemVideo.avi', erasing
the previous file if necessary.
If the MPG4 codec is in your system, it will be used, if not the MSVC codec
will be used.
Neither video nor sound, nor sync are great. Sound isn't compressed.
Apparently some computers record the full screen! No idea why.
Certainly there's room for improvement. We don't use DirectShow yet.
- RAR archive support (v3.5)
Using the free Unrar.dll plugin by RAR labs. You need to have this DLL in
Steem folder or in any system path, just like unzipd32.dll.
- Save screenshot as NEO (v3.5)
Hopefully with the correct palette. Some programs change it all the time,
so it's better to take the screenshots while the emulation is running, or
you could a black screenshot. Even so, the risk exists.
I made this for the demo included with Steem SSE 3.5.
Note that Steem can also use 'FreeImage' library for various formats
(PNG etc). Not my doing, was in v3.2.
- Indicate Pasti is in charge on disk manager (v3.5)
- Disk manager: right click on name to read full name, useful for very
long names (v3.5.4)
- Disk manager: right click on drive icon for context menu:
SF354 single side drive (v3.6.0)
Stop motor (v3.6.0)
- Nuked WinSTon import, it's outdated (v3.5)
- Current version of FreeImage works in Steem (v3.6.3)
- Nuked update process (v3.5)
- Infobox will display SSE readme and FAQ; new font and size (3.5.2)
- More screenshots (100,000 instead of 1,000) (3.5.2)
- File associations: should work without running as administrator. Can also
remove associations. (v3.5.3)
Some new options are available, most of them regrouped in a new 'SSE' tab
(I hope everybody will recognise the icon, I made it myself!).
- Option 'Status info'
This toggles visibility of an information line ("STF T102 " etc.) in the
tool bar, so that you don't need to check in the option page.
# is the symbol I chose for 'Hacks'
ADAT means Accurate Disk Access Times
- Option 'Disk name'
This displays the name of the current disk in the tool bar. When both this
option and OSD option "Disk image names" are checked, the OSD option is
- Option 'Hacks'
This option covers two kinds of things:
- Convenience hacks, like for TOS1.06 medium resolution fix, or fitting the
window size in Best Part of the Creation
- Emulation hacks, when emulation of some feature isn't perfect yet we want
the programs to run. Since we don't understand everything in the feature,
those hacks could break something, hence the option.
In the current version (3.5.2), it covers some "shifts" when the program
writes in the video counter registers (STE mode), some MFP improvements
implemented in a dubious way, and some other various hacks (FDC, IKBD...)
It is recommended to disable 'Hacks' only if you meet problems (please
When option 'Hacks' is checked the # symbol appears in the status line.
- Option 'Emu detect'
When you disable this option, Steem won't cooperate with programs trying
to assert if they run on an emulator. It may be useful if there are still
incurable hardware fanboys around producing worthwhile code that refuses
to run in emulators (I know of no case though), or if some hacker fixed
the program to adapt it to an emulation issue that has since been improved
(eg Sentinel by Klapauzius).
Note that emu detect was in original Steem, only the option to switch it
off has been added in the SSE version.
- Option 'Display size'
384 x 270 normal (Steem's original)
400 x 278 max in fullscreen 800x600 mode
413 x 280 max overscan
416 x 286 max plasma
Depending on the program, one or the other size will be better.
Generally the smallest is sufficient for most games.
The sizes count only for border effects in colour mode.
Steem displays what's inside the video RAM even at the extremities of the
borders, regardless of blanking or plane shifs introduced by shifter tricks
on a true ST. That's why 413 x 280 may be actually more faithful than the
max size. If option 'Hacks' is checked, the image will show 52 left
border pixels in 413 x 280 and 416 x 286 modes. If not, only 48.
I believe 52 is the right number, but am not sure. In order to avoid
rewriting the rendering system we also use tricks to obtain those 4 more
pixels. It may break in some yet unknown cases.
Note that internally 400 x 278 is emulated as 416 x 286, and a trick is
used to change resolution at rendering time (blit).
This trick will work in fullscreen mode with option 'straight blit'.
This may cause the display to go black or be shifted or another kind of
bizarre when the emulator isn't running.
400 x 278 allows one to read the full text of Best Part of The Creation.
'Screen flip' will only work with 384 x 270.
416 x 286 has recently been modified, so this mode and derived modes
400 x 278 and 413 x 280 could still be a bit buggy!
In short, all bigger than normal (384 x 270) display sizes use various
tricks, and may be trouble in fullscreen mode.
The option is only useful if you show the borders. Quite a few
programs used tricks to display pixels in the borders. The option doesn't
make sense while emulating high resolution (monochrome).
Why various sizes? There are many reasons.
- The option was built as a hack on the original size. It started a bit
buggy, so it's best to keep the original size available.
- There's a performance hit for larger displays.
- 400 x 278 is more useful in full screen mode, 413 x 280 and 416 x 286
in windowed mode.
- Some programs look better with larger displays, other worse!
Because not every monitor showed the full borders, programmers could leave
some "trash" in the borders.
On the other hand, some texts are readable only with larger borders.
- Option 'Interpolated scanlines' (v3.5.1)
Mixing 'stretch' mode with 'scanline'.
That way the picture resembles more the display of a not so sharp colour
monitor on a real ST (Goldstar: interpolated vs JVC: scanlines).
The option is available in both low and medium resolutions (not high).
It works (or should) for both windowed and full screen modes.
Like some other SSE features, it's more a hack than anything.
- Option "VSync" (v3.5.4)
This gives you the best display provided your monitor has the correct
refresh rate (50hz/100hz for most programs).
Combined with 'Interpolated Scanlines' this should give you the best
experience of the great game Goldrunner in window mode on LCD screen.
This should work in window mode as well as in fullscreen mode.
This consumes some CPU power (but not as much as Triple Buffering).
This works fine in Windows XP but could interfere with "Compositing"
(Desktop Window Manager) in Windows Vista and 7 in window mode.
In Windows 8 you can't disable Compositing!
- Option "Triple buffering" (v3.5.4)
This may be useful to eliminate "tearing" or "ghosting", at the price
of high CPU use.
This should work in window mode as well as in fullscreen mode (stretch
"Compositing" (Desktop Window Manager) in Windows Vista and above makes
this option useful only in fullscreen mode, in window mode there's already
This illustrates that those display problems may also be handled at driver
or OS level.
- Option 'ST model'
This is the long awaited STF/STE switch in Steem.
This switch is a departure from the original STEem, which endeavoured to
emulate only the STE.
The STE was the better computer but most programs were coded with the older
STF in mind.
Emulating the differences between STF and STE is not so hard and makes a lot
more programs, some I find important, run in Steem.
You can change this option during emulation but at your risk.
Even if some STE programs may work in TOS 1.02, it's better to use TOS 1.06
The emulator won't compel you, but will try to match a default compatible TOS
when you change the option (Windows).
It only looks for 1.02-STF, 1.06-STE, because they seem to be the most
The STF won't boot with TOS 1.06, 1.02 or 1.04 is recommended, though 1.00
may be necessary for older programs.
The Mega STF option gives you the blitter and 4MB and preselect monochrome,
that's all it does, it's for fun (and we do this for fun, right?)
- Option 'Wake-up state' (v3.5)
This is a very technical point, related to latency between some chips.
It is determined somewhat randomly (depending on temperature for example!)
at power-on on a true ST.
Normally you'll use this option only if the display of some demo isn't
correct without. You don't need to understand all technical aspects
to use the option, of course.
The option has become much more complicated, with 4 states instead of 2.
It is that complicated on the ST.
| Steem option | Wake-up concepts |
| variable | |
| WAKE_UP_STATE | DL Latency | WU | WS |
| | (Dio) | (ijor) | (LJBK) |
| 0 (ignore) | - | - | - |
| 1 | 3 | 2 (warm) | 2 |
| 2 | 4 | 2 (warm) | 4 |
| 3 | 5 | 1 (cold) | 3 |
| 4 | 6 | 1 (cold) | 1 |
WAKE_UP_STATE is just the Steem option.
DL is a latency electronically measured by Dio (atari-forum) between two
signals, 'DE' and 'LOAD', in cycles.
WU are the two wake-up states first found by ijor.
WS are the more detailed "wake states" found by LJBK.
They're in a strange order for "historical" reasons.
The "Bee" demos by LJBK will recognise WS1-4, and the demos will behave as
expected in all WS.
The option may help for some flickering screens. If the program loses
vertical borders, WU1 (WS1 or WS2) could fix that. It's normally not
a Steem bug that this option be necessary.
Your STF defaults to WU1 if no option is selected, the STE seems to be
in WS2 but emulation of those states is still not complete.
Needless to say, Steem is leading the way for this issue.
- Option '6301/ACIA'
Using code by Arne Riiber and doc by Stephane Catala - Belzebub / ST
Connexion), Steem features CPU-level emulation of the "intelligent keyboard"
(IKBD) chip since v3.4.
ACIA emulation has also been improved, making a more explicit use of the
The main goal was to be able to run some demos reprogramming that chip
without copying Hatari code, but it does more than that, being better than
fake emu in some cases, worse in others. When you change this option, you
normally should reset the ST, but Steem won't force you.
For this option to work, copy the (supplied) IKBD rom 'HD6301V1ST.img' into
your Steem folder.
To reduce code footprint, removed hack that has demos Dragonnels,
Froggies, Transbeauce 2 running without 'true 6301 emu mode'. (v3.5.1)
Mouse speed emulation is tricky. 6301 option isn't very good in high
All 'SSE' ACIA/IKBD fixes depend on this option being checked, if it's not,
Steem is supposed to behave just like v3.2.
- Option 'Keyboard click'
This option reflects the state of bit 1 of address $484 in the ST, that
is checked by the OS to know if it must produce that annoying click or not
when you press a key. It's like on the GEM Control Panel, but always
available. It was often requested and is at last available in this Steem
build. It would be most useful for playing the Pasti version of The Pawn,
Use this switch only when you want to get rid of clicks. Many programs
overwrite this memory zone, and changing some byte could crash the ST.
The option isn't saved due to the way it is implemented.
- Option 'Capture mouse'
Steem takes control of the mouse when running. You may use a keyboard
shortcut to release the mouse. Key 'pause' is the default.
In the SSE version, this option may change the behaviour. When unchecked,
Steem will take the mouse only when you click in the window or you use
- Option 'P.S.G.' changes the tables used for both "envelope" and "volume"
in P.S.G. (the YM-2149 soundchip).
I don't know where the original Steem values come from, but the
new ones are based on Yamaha doc. The difference isn't dramatic,
it's a bit louder overall.
- Option 'Samples' uses another table, done by ljbk, based on actual measurements,
when it's reckoned that samples are being played (check on the "mixer").
Many samples will sound better. Not all, but it may be due to other
The table can't be used (in Steem) when chip music is mixed with samples, like
in Goldrunner. You don't need to uncheck.
- Option 'Filter' is a different, more open, low-passfilter when sound option
'Monitor Speaker' is selected.
- Option 'Microwire'
STEem being an STE emulator, it was about time to add support for this
rarely used feature of the STE, the ultra-cheap Microwire tone controller.
We use simple 3rd party DSP code by Maverick (Fabio Bizzetti) to add
control over volume, balance, bass & treble in those rare cases.
I'm sure it doesn't exactly sound like on an STE, but I doubt they sounded
that great anyway.
Due to problems with DSP code, the treble control doesn't work in later
- Option 'Slow drive'.
It duplicates the same option in the disk manager because
I noticed that even old-time users often forget about this option.
- Option 'Track drive info'.
Floppy drive: new option to display current drive, side, track and sector.
Yes kid, admit it, it was your fantasy, now it's true! (v3.5.1)
No sector when fast mode (v3.5.2).
- Option 'Pasti only for STX'
This makes Pasti handle only STX images, Steem being in charge of the rest.
Interesting possibilities: you may try and copy STX images on a ST disk
image. No guarantee! It's a convenience, jsut uncheck in case of trouble.
- Option 'Drive sound'
Current samples are from an Epson SMD-480L, sampled by Stefan jL.
- Some CPU exception fixes (Beyond, Phaleon, Transbeauce 2...) which have
brought Steem on the same level as Hatari for protected demos.
In v3.5.1, value of PC (program counter) in some provoked crashes now
based on Motorola microcode analysis!
No more vulgar opcode-based hacks in Steem baby (Blood Money, European Demos,
Phaleon, Transbeauce 2, War Heli...)
- CPU prefetch. It was good enough but while trying to fix some problems, I
remade it all, enforcing ijor's rules; now it's there in any case. I think
Steem has the best prefetch of all ST emulators.
- CPU prefetch timing: removed the shifter counter hack made necessary by
premature cycle counting. You won't notice any difference but it's a huge
internal change, and for this too Steem leads the way.
- CPU DIV timings from ijor (Dragonnels, Pandemonium, proving they're correct!)
- CPU fetching in IO zone
- More shifter tricks handled: 0-byte line, STE +20 line, 4bit hardscroll...
Much taken from Hatari, also from AF discussions, doc by demo makers,
- STE hardscroll in medium (v3.4) and high (v3.5.3) resolution.
- Synchronization of video rendering with changes in video RAM (3615 GEN4)
- Disk drive slow mode: bug fixes and improvements (Disk manager option
"Accurate Disk Access Times" or SSE option "slow drive", snails appear
on disk icons), mainly inspired by Hatari, Kryoflux, technical documentation
about controller and disk format (gaps).
- Pasti: toggling Pasti on/off in the disk manager will not force a reset
Smarter disk manager, setting pasti on/off as needed, displaying all
- IPF support (disk format of images saved by Kryoflux hardware) (v3.5)
You need CAPSimg.dll in Steem's directory. It's available here:
And here for the updated versions:
To use this feature, just run an IPF disk. There's no option like for
Pasti because CAPS only uses its own image formats (IPF,CTR) while
Pasti also may handle ST and MSA files.
We use the low-level WD1772 included in the DLL, so it's a matter of
integrating emulations, a bit like for the HD6301 emulation.
The real work was done by István Fábián and The Software Preservation
IPF support is as good as that emulation. Some features are not implemented
The later versions of CAPSimg and Steem also support CTR format.
- TOS/Gemdos/Hard disk emulation:
TOS106 medium resolution bug hack (desktop.inf will work!)
TOS STE faster boot hack (from Hatari)
TOS104 can compile project ReDMCSB
- STE auto set RAM to 2MB, STF to 1MB, for better compatibility. Of course
you can still change it at your convenience. (v3.5.1)
- Various other fixes: Blitter, MFP, MMU, ...
v3.6.4 features and fixes
- Better handling of CTR disk images: Vroom, Outrun and other games
using weak bits.
Last version of CAPSImg 5.1 necessary (may 2014)
- Timings: correct frame cycles for 508 cycle scanlines
- Timings: sync 68000 on E-clock for ACIA R/W, HBL, VBL interrupts if
option 6301/ACIA checked
- various bugfixes
Programs working better in Steem
Also check file 'Hints'.
The number between parentheses is the version of Steem when the program
started to work, but there may have been regressions or improvements since.
You're advised to keep the different Steem versions in the same folder.
- Blood Money STX+IPF (CPU) (3.5.1)
- Crazy Cars 2 STX (3.3.0, broken 3.5.1, fixed 3.6.0)
- Demoniak (3.5.1,3.6.1)
- Enchanted Land (3.3)
- F-29 STE 4MB (3.6)
- The Final Conflict (3.3)
- Hyper Force (3.3)
- International 3D Tennis (3.3)
- Jumping Jackson on Automation 239 (3.6)
- Leavin' Terramis 60hz overscan (3.4)
- Live & Let Die (3.3)
- Manchester United (3.4)
- Microprose Golf (thx Petari) (3.5.1)
- Mortville Manor sound (3.6)
- Nightdawn (3.3)
- No Buddies Land (3.3)
- Rainbow Island on Automation 231 (3.3)
- The Sentinel cr. BOSS (3.4)
- The Sentinel on Automation 001 (3.5.1)
- Seven Gates Of Jambala (from Hatari) (3.3)
- Trex Warriors (from Hatari) (3.4)
- Titan STE mode (3.3)
- Titan STF mode (thx Petari) (3.5)
- Ultimate Arena STF (thx Petari) (3.5)
- Warp STX (CPU) (3.5.1)
- X-Out (mouse) (3.4)
- X-Out HD version (3.5.1)
We fix more demos than games just because demo programming was edgier.
- 36.15 Gen4 by Cakeman (3.3)
- 3615GEN4 HMD Giga (3.5.1, broken 3.5.3, fixed 3.6.0)
- 36.15 Gen4 by ULM (3.4, 3.5.3 100%)
- 4pixel Rasters (3.3)
- Audio Artistic Demo (3.5.2)
- Beat Demo (3.4) /note 3.6.1 treble control doesn't work
- Beeshift, Beescroll (3.5.3)
- Beyond/Loader (3.3)
- Beyond/Pax Plax Parallax STF (from Hatari) (3.4)
- Big Wobble (3.4)
- Bits055 STF (3.5.1)
- Blood by Holocaust (3.5)
- Cernit Trandafir #2 (3.5)
- Circus back²STage #2 (3.5.2)
- Cool STE (3.4)
- Corporation Megademo (3.4)
- Dangerous Fantaisy credit (3.4)
- Death of the Left Border (3.3)
- Delirious 4/Loader (3.4)
- Delirious 4/NGC (3.3)
- Delirious 4/Nightmare (3.3)
- Delirious 4/Tekila (3.3)
- Dragonnels/Loader (3.3)
- Dragonnels/Menu (3.3)
- Dragonnels/Unlimited Bobs (3.3)
- E605/Planet (3.4)
- European Demos/Loader (3.3)
- Extreme Rage guest screen (3.4)
- Forest aka shforstv.exe in STF1 (3.4), STF2 (3.3), STE (3.4) modes!
- Froggies Over The Fence/Menu (3.3)
- Golden Soundtracker (3.4)
- Hackabounds Demo (3.6)
- Hier sind noch zwei Plätze frei/plasma (3.4.1)
- Imagination/Roller Coaster (STF) (3.3)
- Japtro STF (3.3); STE (3.5.1), 100%: 3.6)
- The LoSTE screens by Sync (3.5.3)
- More or less Zero (3.3)
- The Musical Wonder 90 intro (3.5.3)
- The Musical Wonder 91 (3.4)
- No Cooper/Greetings (3.3)
- Nostalgia/Lemmings (STF, STE) (3.3)
- Omega Full Overscan Screen (STF2) (3.3)
- Overdrive/Loader (3.5)
- Overdrive/Dragon by Ghost (3.4)
- Pacemaker credits (3.4)
- Pandemonium Demos/Loader (3.3)
- Panic (3.6)
- Phaleon/Loader (3.3)
- Punish Your Machine/ST-CNX (3.3)
- Reality is a Lie/Schnusdie (3.4.0)
- RGBeast by Aggression aka RGB Ruler (3.4)
- Riverside by DHS (3.5.2)
- Sadeness (3.6.1)
- SoWatt/Menu (3.3)
- SoWatt/Sync (3.3)
- Spectrum Analyzer (3.6.1)
- Sphere by Sunny (3.4)
- ST-NICCC 2000 Final by Oxygene STF (3.5.1)
- Summer Delights #1, #11, #14 (3.3), #5, #7 (3.5)
- Super Neo Demo Show 1MB (3.3)
- Swedish New Year Demo/TCB (3.3,3.6)
- Swedish New Year Demo 2/Sync (3.4)
- Transbeauce 2/Loader (3.3)
- Transbeauce 2/Menu (3.3)
- Ultimate GFA Demo boot screen STF (3.4)
- UMD 8730 STF (3.6.0)
- Union Demo/Menu (3.3)
- Union Demo/L16 (3.3)
- V8 Music System (3.3)
- Ventura/Board and Sphere STF (3.6)
- The World is my Oyster #2 STF (3.6)
- XMas 2004 (3.6)
- Menu intros
- Automation 168 (3.3)
- BBC 52 (3.3)
- Lemmings 40 STF (3.3)
Many intros also benefit from larger display.
- Aladin (3.5.0; broken 3.5.1, fixed 3.5.2, broken 3.6.0, fixed 3.6.1)
- Atari Diagnostic Cartridge (3.5.2)
- Megamax C (scripts on HD) (3.6.1)
- NEOchrome: mouse speed? (3.4)
- Notator (3.5.1) /still not 100%
- Panzer (3.5.3)
- ProCopy Analyze (3.5.1) - What da ya say, useless?
- Spectrum 512 (3.4)
And countless other programs!
There are also new patches included with the archive.
Some are useful only with older versions of Steem.
Please report bugs, especially broken programs, here:
(Steem SSE 3.6 bug reports)
No more email/PM please, the more activity on the Atari forum the better.
Please read the 'SpecificHints' and 'KnownBugs' files and the SSE FAQ, the
answer to some questions is already in there.
Please try different settings before reporting, not all programs are supposed
to work with all versions of TOS, or on a STF, STE, etc., yet some should.
Also try with slow (accurate) disk drive mode, and option 'Hacks'.
Steem SSE Web sites
http://ataristeven.t15.org/Steem.htm (all builds, ST programs, pics, doc)
http://code.google.com/p/steem-engine/ (source v3.3, Subversion)
https://steemsse.svn.sourceforge.net/svnroot/steemsse (source v3.4 & up,
Subversion, you can download a snapshot of the source)
Steem SSE V.3.3.0, 28/02/2012
Steem SSE V.3.4.0, 22/09/2012
XSteem SSE V.3.4.0, 06/10/2012
Steem SSE V.3.4.1, 14/11/2012
Steem SSE V.3.5.0, 27/02/2013
XSteem SSE V.3.5.0, 02/03/2013
Steem SSE V.3.5.1, 11/06/2013
XSteem SSE V.3.5.1, 13/06/2013
Steem SSE V.3.5.1 OPT, 15/06/2013
Steem SSE V.3.5.2, 04/08/2013
XSteem SSE V.3.5.2, 04/08/2013
Steem v3.2+, 27/08/2013
Steem SSE v.3.5.3, 13/10/2013
XSteem SSE v.3.5.3, 20/10/2013
Steem SSE v.3.5.4, 17/11/2013
Steem SSE v.3.6.0, 28/02/2014
XSteem SSE v.3.6.0, 28/02/2014
Steem SSE v.3.6.1, 13/04/2014
XSteem SSE v.3.6.1, 13/04/2014
Steem SSE v.3.6.2, 16/04/2014
Steem SSE v.3.6.3, 04/05/2014
XSteem SSE v.3.6.3, 04/05/2014
Steem SSE v.3.6.4, 15/06/2014