⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 NES game Emulator in Linux.c and asm codes.
💻
📖 第 1 页 / 共 2 页
字号:
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 + -