📄 readme
字号:
ROM format:
-fi Force interleaved ROM (only supported for HiROM)
-fn Force non-interleaved ROM
Copier header:
-h Force ROM copier header
-n Force no ROM copier header
Video standard:
-fvp Force PAL video standard
-fvn Force NTSC video standard
Audio output:
-ds Disable sound
-s Enable sound (stereo)
-sm Enable sound (mono)
Video output:
-m# Set screen mode
Available screen modes:
DOS:
0:320x200x256 VGA 1:320x240x256 VESA2 2:320x240x256 MODE-X
3:256x239x256 VGA 4:320x200x16b VESA2 5:320x240x16b VESA2
6:640x480x16b VESA2
Win32, Unix & BeOS:
0:320x200x256 WIN 1:320x240x256 WIN 2:320x240x256 FS
3:256x239x256 WIN 4:320x200x16b WIN 5:320x240x16b WIN
6:640x480x16b WIN 7:640x480x16b FS
Paths and files:
-saveext RAM Set extension for save RAM files
-savedir .\saves Set save directory
Performance:
-pt Disable cache preloads -pt2 Disable cache preloads (alt)
-pb Enable cache preloads -pb2 Enable cache preloads (alt)
-pm Enable MMX support -pf Enable FPU copies
-pd Disable MMX/FPU support
Options:
-fps Start with frames-per-second (FPS) counter enabled
-gui Enable GUI
-cli Disable GUI
If two or more switches conflict, the last switch takes priority.
Once the ROM title is displayed, press a key to start the emulation.
If the GUI is enabled (default):
To pause the emulation and enter the GUI, press ESC. The GUI will pop up
and allow you to return to the emulation, reset the emulation, load
another ROM, reconfigure the emulator, display information about the
ROM, or exit the emulator. Use the cursor and ENTER keys to navigate
through the menus.
If the GUI is NOT enabled:
To exit the emulation, press ESC.
Regardless of whether GUI is enabled or not:
To break out of the emulator (quick-exit) press Ctrl-Alt-End.
Use this if the emulator stops responding to input (including ESC).
If you have any helpful information on DSP, SuperFX, sound, bug fixes,
or any other emulation or general improvements, and would like to
send me some constructive comments or help (NOT - are you gonna have
DSP/FX/better sound/better graphics/more speed/etc., when for the same)
feel free to e-mail me at:
esaelon* *at* *users.sf.net
Or you can visit the SNEeSe homepage at:
http://sneese.n3.net/
http://www.emuunlim.com/sneese/
http://skyscraper.fortunecity.com/online/312/sneese.html
The source code for this release of SNEeSe should be available at the
homepage.
Any email about obtaining copyright ROMs will likely be forwarded to the
appropriate authorities, so don't waste our time!
About the performance switches
""""""""""""""""""""""""""""""
Switches -pt (preload_cache=0 in the config file) and -pb
(preload_cache=1) control if data areas that are expected to be written
to will be preloaded into the host CPU's internal cache before they are
used. This is likely to help performance on CPUs with a 64-bit data bus,
a write-back internal cache and no write-allocation. Such CPUs include
original '586' Intel Pentiums, both with and without MMX, and possibly
other CPUs for similar mainboards, such as AMD K5s.
Switches -pt2 (preload_cache_2=0) and -pb2 (preload_cache_2=1) control
a limited form of the above, that should help performance on most or all
CPUs with a write-back internal cache and no write-allocation. Such CPUs
include 486DX4s, write-back enhanced 486DX2s, Pentium Overdrive CPUs for
486 systems, AMD 5x86s, and similar CPUs.
'preload_cache' and 'preload_cache_2' both default to enabled if the
detected CPU family is 5, representing Intel Pentium and similar CPUs.
Switches -pm (use_mmx=1), -pf (use_fpu_copies=1), and -pd (use_mmx=0,
use_fpu_copies=0) control usage of MMX instructions, and usage of the
FPU for copying data.
MMX instructions will be used if MMX support is detected and 'use_mmx' is
enabled. 'use_mmx' defaults to enabled if MMX support is detected.
The FPU will be used for copying data if an FPU is detected and
'use_fpu_copies' is enabled. This is faster on original '586' Intel
Pentiums without MMX. 'use_fpu_copies' defaults to enabled if an FPU
is detected, if MMX is NOT detected, and if the detected CPU family is 5,
representing Intel Pentium and similar CPUs.
What can SNEeSe do in this version?
"""""""""""""""""""""""""""""""""""
Emulation details:
- 65c816-alike 5A22 main CPU with 254/256 opcodes implemented.
The last two (WDM and STP) remain unimplemented since they
do nothing important and can help detect runaway ROMs!
- NMI/IRQ interrupts running (timings may be slightly off).
- Hblank/Vblank CPU timing.
- Variable speed CPU bus timing.
- Open bus states emulated (currently on A bus only).
- DMA and HDMA, all 8 channels, modes 0-4 (5-7 supported but possibly
incorrect). General DMA timing (possibly not 100% correct).
Partial HDMA timing, HDMA may have some bugs.
- SPC700 sound CPU with 250/256 opcodes implemented, running with
on-demand execution.
BRK/RETI, BCD (DAS/DAA), SLEEP/STOP remain unimplemented.
- Partial sound DSP support and sound generation, including accurate
emulation of the 4-point pitch-regulated gaussian interpolation of
sample data, OUTX/ENVX registers, pitch modulation, and the echo
effect and its corresponding FIR filter.
- LoROM and HiROM memory maps (up to 64Mbit).
- ROM loader supporting whole and split (*.1) ROM images, LoROM,
HiROM, and interleaved HiROM, with or without 512-byte copier
header(s) - note, memory map autodetection of ROMs > 32Mbit is very
poor.
- Most hardware registers emulated.
- SNES joypads 1 and 2 and mouse are supported.
- BG modes 0-7, 8x8 and 16x16 tiles, X/Y flip, palette mapping,
scrolling, tile priorities.
- Full offset change support in modes 2, 4, and 6 (mode 6 support
not properly tested).
- Partial wide-tile support in modes 5 and 6 (odd pixels are skipped).
- Partial priority-per-pixel support in mode 7 (may still have bugs).
- Dual window clipping with all logic modes in BG modes 0-6.
- Full mosaic effect in BG modes 0-7, with correct countdown register
support.
- Screen sizes 32x32, 64x32, 32x64, and 64x64 supported.
- Sprites are supported in all sizes (8x8, 16x16, 16x32, 32x32, 32x64,
64x64), with name and base select, priority rotation, correct
sprite-to-sprite priorities, and correct time/range limitation.
Extras:
- Independent optional stretching of screen in horizontal and vertical
directions.
- Speed-throttling with speed-capping, and minimum/maximum frameskip
control.
- GUI and config file.
- Keyboard working as follows:
The following settings are fixed:
ESC - Open GUI
F1-F8 - Toggle sound channels
F11 - Toggle FPS (frames-per-second) counter
F12 - Toggle 'rendering break' counter
tells how many times the delayed renderer is forced to
synchronize rendering in the last frame
~ - Fast-forward (lock to the configured max frameskip)
1-4 - Toggle BG layers 1-4
5 - Toggle sprites
6 - Reset BG layers/layering order/sprites/sound channels
7 - Toggle offset change
8 - cycle between 3 layering orders
0 - Save PCX of current display (IMAGE###.PCX)
The following settings are reconfigurable:
Keypad cursor keys - joypad direction
Q,A - L/R buttons
W,S - X/Y buttons
E,D - A/B buttons
[,] - Select/Start buttons
- A joystick/joypad may be supported in place of the keyboard,
depending on your controller and platform. Details are listed
under the 'CONTROLLER CONFIGURATION' menu in the GUI documentation
earlier in this document.
What is left to do in this emulator?
""""""""""""""""""""""""""""""""""""
The following list contains a sampling of changes that are planned,
in a order vaguely similar to when they can be expected...
it may not be complete!
TO DO:
~~~~~~
Screen rendering
OBJ limitations: Time/range over flag emulation, proper handling in
half-height mode
Sprite priority rotation: Emulation of the quirky behavior when
(OAM byte address & 3) == 3
Performance: Improve tile-based rendering + more
Window clipping: Used to cut holes in layers; not yet supported on OBJ
and BG mode 7; support limited in other BG modes
Color window: Used for color arithmetic, allows overlaying BGs like the
rain in Zelda
Direct color mode: Used in ActRaiser 2, Secret of Mana, others
Priority per pixel in mode 7: May have priority problems
Plenty of other missing stuff...
Source : More source cleanup/clarity/commentation
Keyboard : Replace or extend keyboard handler to help with interface
Joypad : Better interface for mapping of controls
Multiple mappings for each control
Better joypad hardware emulation
Command-line interface: More control, especially over configuration
CPU : Getting timing inaccuracies eliminated, including interlace
timing and dots dropped every other frame
SPC : Clean up emulation
Correct bus timing (need info)
Skipper : Fails to work on MANY ROMs, need at least an alternate skipper
Sound DSP: Correct noise, etc.
GUI: interface cleanup/rewrite/ease-of-use/versatility/mouse
ROM loader: More memory maps
Savestates: ...
Thanks go out to...
"""""""""""""""""""
Nintendo, for making the SNES...
and the SNES software developers, who suffered through the SNES design,
showing what it could do, and making it what it is today!
Pastor M. M. Angel: you know what you're doing with code...
Y0SHi and Marat Fayzullin: Nintendo emulation wouldn't have come nearly
this far without you...
Lord ESNES: For supporting SNES emulation so much, and giving so much
help to the authors of the more primitive SNES emulators...
SNES '9X team, past and present: for putting so much effort into making
it what it is today... fix those quirks!
ZSNES team, past and present: zsKnight, _Demo_, Pharos, pagefault,
Siloh, ...: For ZSNES. Need I say more?
Lee Hammerton: for bringing this so far and giving me the opportunity
to make it live on...
archeide, Brad Martin: for getting the SPC and sound DSP and generation
working in the first place...
Brad Martin: for all the help with the sound core!
zsKnight: for always being so helpful!
archeide: hope you get that tile editor figured out...
Richard Ferreira (general code and optimization ideas and support)
Richard Mitton of the New Zealand Story Emulator (speed-throttling ideas)
zsKnight (for providing so much help and info... HDMA, memory maps, timing,
and the list goes on...)
SNES9X team (for spending so much time on trying to make such an exact
emulator, and releasing the source to it!)
zsKnight, for the 5x5 font for the GUI!
Lanice, for finding the LFN bug in the GUI!
KnucklesD, for getting on my case to put in save dir support!
Windwalker, neptron, and Siloh, for the logos!
Siloh: for putting up with me, and being the friend you are
MKendora, Lord_Nightmare: for all the support, and always reaffirming
my belief that there's a reason to continue.
anomie, Overload, for all your research...
Beta testing:
RibOnIzEr, QbProgger, AC/DC, Malenko, Richard Ferreira, rOss, Siloh,
MKendora, akito, slow
Y0ssarian, PoleStar, Steve, Vilmar, Enternal, [E|YSiUM], Goku-X, JaguarPaw,
JJJJ, KnucklesD, dps, Cowering, Lanice, EddyB43 from EFnet-#snesromz and
#classicgames, never coulda done it without you!
Greets
""""""
TCF, Borson, neptron, Avarice, KnucklesD, Richard Ferreira, AC/DC
Goku-X, Lanice, Azimer, TNSe, dps, polarz, rOss, Neill Corlett,
Richard Mitton, illus, Slaik, StCreator, RibOnIzEr, Thane, QbProgger,
krial, pagefault, Siloh, Zero-X, MrGrim, kode54, akito, MKendora,
Lord_Nightmare, anomie, ipher, amit, Diablo-D3, Neviksti, slow, SamB,
Sabretooth, amptor, Harekiet, Nach
Everyone from EFnet IRC #snesromz, #classicgames, #snesdev, #zsnes, #mugen,
Newnet IRC #snesromz, and Freenode IRC #fakenes, #zsnes, #assembler, and
#nsrt
Savoury SnaX and Gridle
archeide, Tim Riemann, Brad Martin, Qwertie, Martijn Kersbergen, B. Walker,
Paul Robson, Aquarius-1, D.Kieselhof, zsKnight, _Demo_, Pastor M. M. Angel,
Y0SHi, Albert Lloyd Sawyers, Zachary Williams, Lord ESNES, Jonathan Turner,
W/\re\/\/0lf, Malenko, James Cartrette, Duncanthrax, rRNA, Dark Claw,
Poiple Shadow, Flash, Windwalker, Chris Lacey, MaJiC, Dark Elf, Shade,
+ any I forgot.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -