Disclaimer
SSE is Copyright(c)2002 Stefano Teso
All the trademarks are property of their legitimate owners.
SSE is free software. You are allowed to use and redistribute SSE as long as you don't
ask money or other goods for it or any part of it, as long as you don't claim you're
the author, as long as you redistribute the package in its entireness, as long as
you don't use or redistribute this package with any illegally obtained Saturn or
Titan-Video software (such as bios images, cdroms, disk images and rom images).
SSE is distributed AS IS. USE IT AR YOUR OWN RISK! The author cannot be held responsible
for any damage derived by the use of this software.
If you use SSE you inconditionally implicitly agree with all these conditions.
The author is in no way affiliated with SEGA or any third party developer.
SSE is a SEGA Saturn and Titan-Video (st-v) emulator.
This means that it tries to run the software (mainly games)
written for these platforms on a PC enviroment.
SSE is still very primitive (it's still, and will be for a looong
time, in BETA stage), so don't expect it to be complete nor
fast nor anything. Oh well.
SSE is mostly written in C, with a small portion in Assembly, using:
- DJGPP 2.03 (MS-DOS)
- MINGW 1.01 and MSVC 6.0 (WIN32)
- NASM 0.98
- Allegro 4.0.0 game programming library (MS-DOS)
- zLib compression/decompression library
- Bart Trzynadlowski's excellent Turbo68K Motorola M680X0 emulator 0.6
- UPX 1.01
It is known to run under Windows 9X, and known NOT to work under
Windows XP. It was not tested under any other OS.
return to Index
- A PC (there are high chances you have one).
- A FAST cpu. I can get 15~50 fps on a Duron @1.1Ghz. A 2GHz+ cpu should be fast enough for full speed.
For hystorical reasons, you need at least a 386, but i suggest AT LEAST a Pentium 2+ clocked at 600+ Mhz.
SSE will take benefit from MMX, 3dNow! and SSE (heh) instructions if available (thanks to Allegro!).
- Little free memory, 20Mb may be enough. STV roms require some other free memory, depending on the rom size.
Windows should provide you with all you need.
- A video card supporting at least VESA2, 32bpp (MS-DOS)
- A video card supported by DirectX or OpenGL (WIN32)
- A keyboard.
Memory requirements will probabily lower in the next releases, because the
code will be revised and unneeded buffers removed. I don't think this is a big
problem, though.
return to Index
There's in enough Saturn/Titan hardware to play some commercial games.
There's in NOT enough Saturn/Titan hardware ro play all the games,
and i guess that there will never be enough. An emulator is never 100%
perfect because of its inner nature, and always carries some small glitches.
Don't bother about that, i'm gonna do it for you ;)
If you are more interested in empirical results than futile theory, go to the
compatibility list.
Hitachi SH2 (SH7604) cpu (two of them of course!):
- Compatible but slow C core;
- All instructions, with basic timing;
- Divider unit;
- DMA control unit;
- Free-running timer (partial);
- Watchdog timer (partial);
- Interrupt controller (partial);
- Serial control, Bus control and other modules are not implemented;
- Cache emulation is not implemented, just cache access handling;
- Master-Slave communication is up, but heavily bugged. Many games don't work properly or at all because of this.
Video Processor 1 (VDP1) - 3d:
- Sprite/Normal, Sprite/Scaled, Sprite/Distorted, Polygon, Polyline, Line, Clip/System, Clip/User, Clip/Local commands;
- 4bit, 6bit, 7bit, 8bit and 16bit textures (no texture caching yet);
- Replace, Half-transparency and Gouraud drawing modes (Gouraud is heavily bugged);
- Shadow, Half-Luminance, Gouraud+Half-Luminance and Gouraud+Half-Transparency are not implemented;
- Color offset (fading);
- Sprite Priority partially in;
- Mesh (chess-like transparency) is not implemented;
- User clipping is not implemented;
- Special MSB shadow not implemented;
- Sprite Window not implemented;
Video Processor 2 (VDP2) - 2d:
- Incomplete cell gfx engine (no cell caching);
- Normal scroll screens (NBG 0~3), all bitmap modes and cell modes;
- Rotation scroll screens (RBG 0~1), all bitmap modes and many cell modes;
- Screen scrolling (not very accurate);
- Color offset (fading);
- Mosaic (not perfect);
- Rotation is not implemented;
- Windows (Normal, Line, Sprite) are not implemented;
- Shadow (both Opaque and Half-Transparent) is not implemented;
- Color Calculation (transparency, gradation) is not implemented;
- Zoom is not implemented;
- Back screen and Line screen are not implemented;
System Control Unit (SCU) with the following implemented:
- Interrupt controller for the master SH2; DMAILL and ABUS interrupts are not implemented;
- DMA controller, both direct and indirect modes;
- DSP coprocessor, all (known) instructions implemented but only simpler programs will work;
- Timer1 implemented;
- Timer0 and Timer0+1 combo mode are implemented;
System Manager, Peripheral Control (SMPC):
- All commands, with very simple timing;
- Support for only 1 standard saturn controller in port1 (some games may anyway show a second pad, but it's not really there);
- SH2 direct mode peripheral control is not implemented yet (it seems to be used by very few titles though);
- Real Time Clock (RTC), updated at the real emulation speed;
- SMEM is saved to file (smem.bin);
Near-perfect Motorola 68EC000 embedded sound cpu, via Turbo68K - assembly 100%;
Custom sound processor vaguely implemented;
Support for external cartridge: 1MB RAM, 4MB RAM, 1MB BACKUP (not saved to file);
CD Block very rough and partial high level emulation (HLE). Nothing of the CD Block inner hardware is known;
Titan controls are in, but the JAMMA emulation is still very partial (many things are still unknown);
Titan EEPROM chip (93C46-like) implemented;
All the 42 known Titan rom sets are supported, either in a directory or ZIP file (thanks to zLib);
The SCSI2/RS232-C interface is absolutely not implemented (does anyone really care?);
PAR emulation is not working at the moment;
All hardware's timings aren't checked against the real thing, so they may be more or less right; prolly completely bad ...
return to Index
0.070 -- [MS-DOS]
- pretty everything is new!
- VDP2 rotation screens, EEPROM emulation, savestates and sound output are temporarily disabled;
- some VDP2 screens and VDP1 gouraud shading are temporarily broken;
return to Index
After downloading the package (usually the package filename is something
like 'sse-VERSION-PORT-bin.zip') unzip it somewhere on your hard disk
(say 'c:/emulators/sse/') preserving the directory structure.
Browse into that very directory and edit sse.cfg with a text editor,
configuring all what is needed to. If sse.cfg doesn't exist, run sse.exe
a first time and it should build it for you. It's set to the default
configuration, and may work just fine even if not configured.
The contents of sse.cfg are quite self-explanatory.
First of all, to run SSE you must have at least one Saturn or Titan
BIOS image. If you don't, you cannot use SSE (BIOS HLE is not implemented
and i don't even know if it will ever be. Request it if you dare! ;)
Put it in the 'bios' subdirectory. Of course you can zip it, but be sure
that the zipped file has the same name of the file in the zip. Sounds
criptic? If you're done with this, you can setup your sse.cfg accordingly.
If you are using the MS-DOS port, there's another important step you have
to accomplish before firing the emulator up: build some headers of your cdroms.
You don't need to copy the whole thing to an ISO, just the first 16
sectors, in 2048 byte data mode. You can use a CDRWIN-like software
(the one i personally use) and download sectors 0~15 (inclusive) in
a file (the extension doesn't matter, use 'SGH' if you like) and
place it in the 'headers' subdirectory under the emulator's root path.
Without this the DOS port is unable to run Saturn games from cdrom.
See the faq for more details.
You can also try to use extrlow.exe, a little util i wrote to help
using the MS-DOS port. Anyway, it's not granted to work...
Take a look at its readme.
Place any titan rom you want to play in the 'roms' subdirectory, under
the main sse directory, either compressed ('zip' extension only), or
create another directory with their name and place there the rom set.
To view a complete romset list use the '-list' switch when firing sse up.
Now you're ready to run the emulator; you can accomplish this task by
typing, from a DOS prompt, under the sse root directory:
sse.exe -help - gives you a list af all the command line options
sse.exe *CDHEADERFILE* - runs a saturn cdrom from that cdrom header
sss.exe -g *GAMENAME* - runs a titan rom
note: for further informations look in sse.cfg.
Here's a small walkthrough for the most important steps:
EXAMPLE: how to start Sonic Jam for the Saturn
I suppose you are using CDRWIN as the image extractor software.
If you are not you can easily use a demo and extract all the
sectors you want. Gather all your Saturn cdroms and spend some
time doing this, since it will save time for plying later.
Ok, here we start:
Put the cd into the cdrom drive you're gonna use, open CDRWIN,
click on the upper row middle button ('extract disc/tracks/sectors')
and then select 'select sectors'; choose an output file you like,
and the input cdrom drive; the 'start' field must be set to '0',
the 'end' field to '15', 'datatype' to 'data mode1 (2048)'.
Leave everything else as it is. Press 'start'. Ok, you're done
for this game. I called the file 'SONICJAM.BIN'.
Once you have extracted all the games you wanted to, go to
the DOS prompt (i assume that this version of sse has no gui),
change to the sse directory, then type:
sse.exe SONICJAM.BIN
The emu shows up directly to the saturn bios, then the
emulation will have its route. Good luck.
NOTE: SSE should autodetect if the cdrom drive you specified is bad, and
use the the first drive automatically.
EXAMPLE: how to start Dynamite Deka (Die Hard) for the Titan/STV
Place the Dynamite Deka rom in the 'roms' subdirectory, and call
the zipped file (if you have it zipped) or the directory (if you
have it unzipped) either 'dnmtdeka.zip' or 'dnmtdeka'.
Popup a DOS prompt and change to the sse directory, and type:
sse.exe -g dnmtdeka
If an invalid rom name is written, the emu guesses what you wanted
to do, and do it for you. This might fail sometiems, as the guessing
algorythm is pretty naked, as of now.
The emu shows up directly to the titan bios, then the
emulation will have its fate. Good luck.
NOTE: to get light-speed booting speed , press '9' when the titan bios
displays the cartridge name.
Backup RAM is stored in bram.s.bin (Saturn) anr bram.t.bin (Titan), so don't
delete those files unless you want to lose all your savegames. If you already
did this, well, the only thing you can do is having sse regenerating them by
executing it once. The new bram file is already formatted, so you won't need
to reformat it in the Saturn cd player menu.
return to Index
The emulator can be controlled runtime with some special keys.
They cannot be configured yet, so go for it. Here they are:
ESC quit
9 activate STV hack: super speed!
F1 take screenshot
F2 save a savestate in the current slot
F3 change the save state in the range 1 to 5
F4 save the current slot savestate
F7 switch normal scroll plane 0 on/off
F8 switch normal scroll plane 1 on/off
F9 switch normal scroll plane 2 on/off
F10 switch normal scroll plane 3 on/off
F11 switch sprites/polygons on/off
F12 switch rotation scroll planes 0 and 1 on/off
INSERT mirror higher palette into lower addresses (*)
DELETE mirror lower palette into higher addresses
HOME switch texture info on/off (**)
END switch light debug screen on/off (**)
PAGE UP change the video stretching method
PAGE DOWN fill the palette with random colors
Saturn controls (player 1):
ARROWS digital pad
Z,X,C A,B,C buttons
A,S,D X,Y,Z buttons
W START button
Q,E L,R triggers
Titan controls (common) (***):
F5 TEST (from the SMPC)
F6 SERVICE (from the SMPC)
7 TEST (from the JAMMA)
8 SERVICE (from the JAMMA)
Titan controls (player 1):
1 start
5 coin
W,S,A,D digital directions
T,Y,U,I buttons 1,2,3,4
R gun trigger
Titan controls (player 2):
2 start
6 coin
ARROWS digital directions
V,B,N,M buttons 1,2,3,4
C gun trigegr
Titan controls (player 3):
3 start
Titan controls (player 4):
4 start
* this is useful if you cannot get the ST-V bios displaying correctly; press it and be happy!
** you usually don't need these, unless you are interested in developing.
*** JAMMA or SMPC doesn't matter: they do exactly the same in gameplay terms.
return to Index
Herein some gotchas:
I'm writing this just for fun, so don't expect frequent updates nor professional support. Keep it in mind.
Do NOT ask for Saturn cdroms or bios images, nor Titan roms or bios images. I'm not allowed to give
you one (or more, for what matters). I will trash all the emails concerning this argument.
Do NOT send my any file attached to your emails. Ask before.
Do NOT bother sending me mails on sse being to sloooow(i know!) or buggy(i know!). I'm its author, and i
already know what it's capable of. Be patient and wait for future releases, they might be better.
So you don't really like sse, heh? Ok, burn it and use some other emulator: i can see that Satourne is
the most promising, but also GiriGiri is very good. SSF is VERY good, but lacks english documentation and
has not seen an update in a looong time. Else, if you really cannot be satisfied with emulators, USE THE
REAL THING! It features high compatibility and full speed! What could you wish more? Savestates you say? :)
If you want to donate something (either Saturn cdroms or real cash) you're welcome! After all i'm doing this
fo free ;)
If you find bugs or typos of any kind, or you just had a cool idea for new features, write me!
return to Index
Huge thanks fly out to these wonderful people:
I wish the best of luck to all the ones putting their efforts on emulation
(especially on Saturn/Titan ones!).
Many thanks to the MAME dev team, and to the authors of ZSnes,
Snes9X, UltraHLE, NeorageX, Raine, PSEmu Pro ... too many to list ...
return to Index
to be added
return to Index