parent
d8a5bbeac8
commit
88b1fffe9d
4
AUTHORS
4
AUTHORS
|
@ -67,8 +67,8 @@ Driver maintenance and refactoring
|
|||
>= 2.0 - These guys concentrated on keeping fceux the premiere
|
||||
linux-portable nes emu
|
||||
|
||||
Lukas Sabota - punkrockguy318 at comcast.net (sf:punkrockguy318)
|
||||
Build system, sdl maintenance, testing, and cleanup
|
||||
Lukas Sabota - ltsmooth42 at comcast.net (sf:punkrockguy318)
|
||||
Head SDL developer
|
||||
|
||||
Soules - gimmedonutnow at gmail dot com (sf:gimmedonutnow)
|
||||
Linux SDL driver maintenance
|
||||
|
|
23
SConstruct
23
SConstruct
|
@ -1,17 +1,17 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
# XXX path separator fixed right now
|
||||
opts = Options()
|
||||
opts.AddOptions(
|
||||
BoolOption('FRAMESKIP', 'Enable frameskipping', 1),
|
||||
BoolOption('OPENGL', 'Enable OpenGL support (SDL only)', 1)
|
||||
BoolOption('OPENGL', 'Enable OpenGL support', 1),
|
||||
BoolOption('DEBUG', 'Build with debugging symbols', 0)
|
||||
)
|
||||
|
||||
env = Environment(options = opts)
|
||||
|
||||
# Default compiler flags:
|
||||
env.Append(CCFLAGS = ['-Wall', '-Wno-write-strings', '-Wno-sign-compare'])
|
||||
env.Append(CCFLAGS = ['-Wall', '-Wno-write-strings', '-Wno-sign-compare', '-O2'])
|
||||
|
||||
if os.environ.has_key('PLATFORM'):
|
||||
env.Replace(PLATFORM = os.environ['PLATFORM'])
|
||||
|
@ -85,10 +85,6 @@ else:
|
|||
env.Append(LINKFLAGS = "-llua5.1")
|
||||
env = conf.Finish()
|
||||
|
||||
# Build for this system's endianness, if not overriden
|
||||
#if env.has_key('LSB_FIRST'):
|
||||
# if env['LSB_FIRST']:
|
||||
# env.Append(CPPDEFINES = ['LSB_FIRST'])
|
||||
if sys.byteorder == 'little' or env['PLATFORM'] == 'win32':
|
||||
env.Append(CPPDEFINES = ['LSB_FIRST'])
|
||||
|
||||
|
@ -98,14 +94,9 @@ if env['FRAMESKIP']:
|
|||
print "base CPPDEFINES:",env['CPPDEFINES']
|
||||
print "base CCFLAGS:",env['CCFLAGS']
|
||||
|
||||
# Split into release and debug environments:
|
||||
#release_env = env.Clone(CCFLAGS = ['-O3', '-fomit-frame-pointer'], CPPDEFINES=["NDEBUG"])
|
||||
#debug_env = env.Clone(CCFLAGS = ['-O', '-g'], CPPDEFINES=["_DEBUG"])
|
||||
# THAT FAILED! Compromise:
|
||||
#env.Append(CCFLAGS = ['-O3', '-g'], CPPDEFINES = ["_DEBUG"])
|
||||
if env['DEBUG']:
|
||||
env.Append(CPPDEFINES=["_DEBUG"], CCFLAGS = ['-g'])
|
||||
|
||||
#SConscript('src/SConscript', build_dir='release', exports={'env':release_env})
|
||||
#SConscript('src/SConscript', build_dir='release', exports={'env':debug_env})
|
||||
Export('env')
|
||||
SConscript('src/SConscript')
|
||||
|
||||
|
@ -114,10 +105,6 @@ exe_suffix = ''
|
|||
if env['PLATFORM'] == 'win32':
|
||||
exe_suffix = '.exe'
|
||||
|
||||
#fceux_r_src = 'src/release/fceux' + exe_suffix
|
||||
#fceux_r_dst = 'bin/fceuxREL' + exe_suffix
|
||||
#fceux_d_src = 'src/debug/fceux' + exe_suffix
|
||||
#fceux_d_dst = 'bin/fceuxDBG' + exe_suffix
|
||||
fceux_src = 'src/fceux' + exe_suffix
|
||||
fceux_dst = 'bin/fceux' + exe_suffix
|
||||
|
||||
|
|
509
attic/ChangeLog
509
attic/ChangeLog
|
@ -1,512 +1,3 @@
|
|||
0.98.12:
|
||||
|
||||
Win32: Fixed the behavior of the sound logging function.
|
||||
|
||||
Fixed a bug that was causing 2xscale/3xscale to be broken
|
||||
when clipping the leftmost and rightmost 8 columns.
|
||||
|
||||
Added an iNES header correction entry for JustBreed.
|
||||
|
||||
Modified the MMC5 "ELROM" board emulation to not emulate WRAM.
|
||||
|
||||
Corrected various pieces of code that were causing compiler warnings.
|
||||
|
||||
Win32: Scaling settings(x, y, stretch to fill screen) are now respected while
|
||||
using a special scaler in full screen mode, though if x or y scale is
|
||||
less than what is needed for a particular scaler, it will be
|
||||
adjusted.
|
||||
|
||||
Win32: The window will be reblitted when it becomes invalidated while
|
||||
a game is loaded(such as when you're resizing the window).
|
||||
|
||||
When the PPU is in a "dead" state after starting up, the graphics
|
||||
buffer is now cleared. Previously, particularly in the Windows port, when
|
||||
a game was closed, and a new game was loaded, the last image from
|
||||
the previous game would be displayed for a short time.
|
||||
|
||||
Win32: Blit skipping will now occur when sound is disabled and FCE Ultra is
|
||||
running behind the desired frame rate.
|
||||
|
||||
Win32: Blit-skipping behavior can now be configured to some extent in the "Timing" configuration
|
||||
window.
|
||||
|
||||
Win32: Added a "Recent Directories" submenu to the "File" menu.
|
||||
|
||||
Removed some debugging code that shouldn't have been enabled in 0.98.11.
|
||||
|
||||
0.98.11:
|
||||
|
||||
Win32: Special scalers are now also supported in windowed mode. For Scale2x/Scale3x,
|
||||
the fastest "desktop" bit depth is 16bpp. For hq2x/hq3x, it is 32bpp.
|
||||
|
||||
The shared video blitting code(drivers/common/vidblit.c) can now blit using Scale2x
|
||||
and Scale3x to any target bit depth(8bpp, 16bpp, 24bpp, and 32bpp) instead of just
|
||||
8bpp, as it was before.
|
||||
HQ2x and HQ3x can now blit to 16bpp, 24bpp(untested), and 32bpp. The 16bpp and
|
||||
24bpp targets are done doing post-processing conversion, after HQ2x/HQ3x, which
|
||||
really does hurt speed.
|
||||
|
||||
Changed a few names in the credits section of the documentation to their
|
||||
aliases. Names you didn't get to pick to have are so troublesome. :b
|
||||
I also made various fixes/updates to the documentation.
|
||||
|
||||
Updated the FAQ with some information regard video mode bit depths and speed.
|
||||
|
||||
SDL: Disabled the fast-forward-key speed-limiting code. I thought I had
|
||||
done this before...
|
||||
|
||||
Fixed a major bug in the movie recording code, and added some code to automatically detect
|
||||
and fix playback of broken movies from earlier versions.
|
||||
|
||||
Did a little swapping thing with mapper 90 and 209. I moved back Mortal Kombat 3
|
||||
to mapper 90, and moved Shin Samurai Spirits 2 to mapper 209. Sorry for any confusion.
|
||||
Mapper 90 should be considered as having the fancy nametable select mode disabled, with
|
||||
mapper 209 having it enabled.
|
||||
|
||||
Added support for mapper 160, which turns out to be the same hardware as mapper
|
||||
90. Joy.
|
||||
|
||||
Improved mapper 90 emulation. This mapper really needs low-level
|
||||
emulation for IRQs to work right, though. :/
|
||||
|
||||
Win32: Fixed the "hide left/right 8 video columns" feature.
|
||||
|
||||
Since FCE Ultra is ending(or has already exceeded? :b) its actively-updated life,
|
||||
I've gone ahead and added per-game hacks for "Kick Master" and the PAL version
|
||||
of "Star Wars". See the documentation for more details.
|
||||
|
||||
Minor optimizations to the high-quality sound emulation code. The FIR filter
|
||||
code is the bottleneck, though, so these changes won't have much of an effect
|
||||
on overall speed.
|
||||
|
||||
Altered MMC3 IRQ emulation(and the hooks in ppu.c for it).
|
||||
|
||||
Fixed a rather major typo in the VRC7-emulation code.
|
||||
|
||||
0.98.10:
|
||||
|
||||
Reimplemented network play. It now requires a standalone network play server, which
|
||||
will be released as a later time. For fun, "starmen.net" is running this server,
|
||||
which is publicly accessible.
|
||||
I also made various code fixes/improvements to allow for network play, particularly
|
||||
with the command handling code.
|
||||
|
||||
Reworked much of the VS Unisystem emulation code, partially based on information from
|
||||
MAME. The following games are now supported:
|
||||
|
||||
Battle City
|
||||
Castlevania
|
||||
Clu Clu Land
|
||||
Dr. Mario
|
||||
Duck Hunt
|
||||
Excitebike
|
||||
Excitebike (Japanese)
|
||||
Freedom Force
|
||||
Goonies, The
|
||||
Gradius
|
||||
Gumshoe
|
||||
Hogan's Alley
|
||||
Ice Climber
|
||||
Ladies Golf
|
||||
Mach Rider
|
||||
Mach Rider (Japanese)
|
||||
Mighty Bomb Jack (Japanese)
|
||||
Ninja Jajamaru Kun (Japanese)
|
||||
Pinball
|
||||
Pinball (Japanese)
|
||||
Platoon
|
||||
RBI Baseball
|
||||
Slalom
|
||||
Soccer
|
||||
Star Luster
|
||||
Stroke and Match Golf
|
||||
Stroke and Match Golf - Ladies
|
||||
Stroke and Match Golf (Japanese)
|
||||
Super Mario Bros.
|
||||
Super Sky Kid
|
||||
Super Xevious
|
||||
Tetris
|
||||
TKO Boxing
|
||||
Top Gun
|
||||
|
||||
Win32-native: Fixed a bug in the debugger's breakpoint list that appeared when
|
||||
one tried to delete a breakpoint(the control accidentally had auto-sort enabled,
|
||||
causing a discrepancy between what was displayed and what was contained in internal
|
||||
data structures).
|
||||
|
||||
The current disk image XOR original disk image is now stored in save states. This
|
||||
should greatly increase compressability(important for network play), and make
|
||||
it a little more legal to distribute such save states now.
|
||||
|
||||
Modified the save state format to allow for more precise and larger version numbers.
|
||||
|
||||
Various minor code changes.
|
||||
|
||||
Fixed initialization of the FCEUGameInfo structure, which previously led
|
||||
to problems with sound output on the SexyAL-using ports(Linux).
|
||||
|
||||
Apparently I added support for mapper 255 a while back. Documentation updated.
|
||||
|
||||
Added iNES header correction information for Armored Scrum Object and Alpha Mission.
|
||||
|
||||
Merged banksw.h into ines.c, fixed some of its prototypes in ines.h.
|
||||
|
||||
0.98.9:
|
||||
|
||||
Win32-native: Fixed the speed throttling used when sound is disabled. In previous
|
||||
0.98.x Win32-native releases, emulation was running at 1/2 the speed it should
|
||||
have been when sound was disabled.
|
||||
|
||||
Win32-native: Moved settings in the "Miscellaneous" configuration window
|
||||
to where they should have been in the first place, and added "GUI" and "Timing"
|
||||
configuration windows to accommodate some.
|
||||
|
||||
Win32-native: Fixed the handling of the "Scroll Lock" key used to disable and
|
||||
enable Family BASIC Keyboard input.
|
||||
|
||||
Updated documentation to handle some slight differences in the Win32-native
|
||||
port("Win32-native" is what the Win32 port using native APIs, as opposed to something
|
||||
like GTK+ and SDL, will be referred to in documentation now). I also made
|
||||
some other minor wording adjustments to the documentation.
|
||||
|
||||
Added an iNES header correction for Dragonball.
|
||||
|
||||
0.98.8:
|
||||
|
||||
Fixed a typo in sound.c that caused only part of the sound registers
|
||||
to be saved in save states.
|
||||
|
||||
Win32: Switched over to the DirectDraw7 interface, from DirectDraw4's.
|
||||
The surface Flip() method will now block, which results in somewhat
|
||||
smoother animation/scrolling, especially when combined with the
|
||||
auto blit-skip implemented in 0.98.6 when sound is enabled.
|
||||
|
||||
Win32: Undid a change made in the last release that limited the
|
||||
speed of fast-forwarding when using the tilde key. I really do
|
||||
need to implement some sort of unified timing/blit skip system...
|
||||
|
||||
Win32: Added an option, disabled by default, to ask for confirmation
|
||||
before exiting FCE Ultra.
|
||||
|
||||
Win32: Added an option, enabled by default, to disable the system
|
||||
screen saver while a game is loaded.
|
||||
|
||||
Win32: Added a new video synchronization mode, a "lazy" wait for
|
||||
vblank/vertical retrace. It calls Sleep(0) in its wait loop. This
|
||||
still uses all available cpu cycles, but it is much more friendly
|
||||
to other processes than the old-style wait for vblank.
|
||||
|
||||
Win32: Added support for joystick POV hats.
|
||||
|
||||
0.98.7:
|
||||
|
||||
Fixed a bug in the debugger's disassembler when disassembling
|
||||
opcode 0xBC.
|
||||
|
||||
Fixed the behavior of the right mouse button with zapper emulation, to
|
||||
correspond with what it is documented as doing.
|
||||
|
||||
Win32: Added proper support for maximizing the window.
|
||||
|
||||
Win32: Rewrote most of the input and input configuration code.
|
||||
|
||||
Win32: Changed the configurable aspect ratio to something sensical, the current
|
||||
display's pixel aspect ratio, default of 1:1(square pixels).
|
||||
|
||||
Win32: Made the default full-screen video mode the custom video mode. I should have
|
||||
done this a long time ago to make custom video mode configuration more straighforward
|
||||
for users...
|
||||
|
||||
Added some JACK audio code to be used by the SDL build. I'll test it and complete
|
||||
it later.
|
||||
|
||||
0.98.6: Made several code modifications to work with older versions of gcc.
|
||||
|
||||
Fixed more header file network play #ifdef-age.
|
||||
|
||||
Fixed a typo in cart.h.
|
||||
|
||||
Fixed some funky code in FCEU_memmove().
|
||||
|
||||
Fixed some source code causing compiler warnings.
|
||||
|
||||
Fixed SexyAL's format conversion code to not rely on deprecated casting semantics.
|
||||
|
||||
Readded the native Win32 code, and made many improvements. The major thing
|
||||
that needs to be done now with it is to rewrite the input handling code and input
|
||||
configuration code.
|
||||
|
||||
0.98.5:
|
||||
Added LL to the 64-bit integer constants in ines.c
|
||||
|
||||
Fixed OpenGL support under Mac OS X.
|
||||
|
||||
Added the ability to hide background and/or sprites with the F4 key.
|
||||
|
||||
0.98.4:
|
||||
Moved NETWORK #ifdef's to netplay.c to simplify things.
|
||||
|
||||
Fixed gzip file loading code(I think). I'm still a bit unsure about the semantics
|
||||
of dup() and close(), though.
|
||||
|
||||
Corrected FDS code to try loading the FDS image before loading the BIOS.
|
||||
|
||||
Readded "native" SDL sound code, used for Mac OS X(and maybe BeOS).
|
||||
|
||||
0.98.3:
|
||||
Removed the wxWindows GUI code. GTK+ 2 code will take its place,
|
||||
once it is ready.
|
||||
|
||||
Added reset and power commands to the movie format. More commands(such as insert
|
||||
disk, eject disk, flip dip switch, etc.) will be added simultaneously as work
|
||||
on network play continues.
|
||||
|
||||
Modified SexyAL OSS code to not adjust the number of fragments to a power of 2.
|
||||
It works fine on my card, allowing finer-grained buffer size control,
|
||||
but I'm not sure it will work with all chips.
|
||||
|
||||
Fixed parsing of the "-specialfs" command-line argument.
|
||||
|
||||
Added the hq3x scaler.
|
||||
|
||||
Updated to the latest Scale2x code. I also added the Scale3x scaler.
|
||||
|
||||
Changed the keyboard assignments for toggling full screen to "Alt" + "Enter".
|
||||
|
||||
FCEUI_SaveState() and FCEUI_LoadState() changed. Porters should read
|
||||
driver.h.
|
||||
|
||||
Miscellaneous changes to accommodate new network play plan. It's not close
|
||||
to being finished.
|
||||
|
||||
Altered RTI emulation. In Paris Dakar Rally's NMI handler, it does "CLI ; RTI".
|
||||
Previously, FCE Ultra would generate an interrupt right after RTI occured, due to the
|
||||
presumed latency that RTI had with the I flag. I changed it so there is no latency, so
|
||||
no interrupt will occur in this case(interrupts kill this game). The interrupt source
|
||||
is the "frame IRQ", which it never disables, if anyone cares.
|
||||
This change does break the "Stars SE" demo, though. Hmm.
|
||||
|
||||
"FCEUGameInfo" is now a pointer, rather than just a statically-allocated structure.
|
||||
This may cause some null-dereferencing-related crashes, but it should help keep
|
||||
code a little cleaner(maybe?).
|
||||
|
||||
Played around with the FDS FM code some more. It's still not right. Bah.
|
||||
|
||||
Hacked in support for entering Datach/Barcode World barcodes without a GUI, using the
|
||||
F8 key and the numeric keys.
|
||||
|
||||
Added code to save/load movies. Movie support will only record/play back the
|
||||
states of the four emulated gamepads.
|
||||
|
||||
Modified the sound code to use timestamp/timestampbase differently. In addition,
|
||||
timestampbase is now saved in save states("timestamp" doesn't need to be saved, since
|
||||
it's reset to 0 at the end of each emulated frame).
|
||||
|
||||
0.98.2:
|
||||
Fixed a few problems with the SDL command-line build code
|
||||
for Win32. Also, SDL 1.2.7 seems to have a bug that breaks FCE Ultra's
|
||||
full-screen/windowed switching capabilities(at least under Win32).
|
||||
Stupid everything.
|
||||
|
||||
Minor SexyAL changes.
|
||||
|
||||
Updated documentation.
|
||||
|
||||
0.98.1:
|
||||
|
||||
Increased the volume of the FME07 sound channels.
|
||||
|
||||
Fixed a bug in the SexyAL endian conversion code.
|
||||
|
||||
Made the SexyAL chunk conversion loop work.
|
||||
|
||||
Replaced the old OPL2 emulator with a modified version of
|
||||
Mitsutaka Okazaki's YM2413 emulator for the VRC7 sound emulation.
|
||||
|
||||
Decreased the pitch of the FME 07 expansion sound channels by one octave.
|
||||
|
||||
Decreased volume of output of $5011 in MMC5 emulation code.
|
||||
|
||||
|
||||
0.98.0: Some changes I made aren't listed below. Ah well. The magnitude
|
||||
of the changes was too great...
|
||||
|
||||
|
||||
Default sound volume is 100(%), which makes a lot more sense than 75%, but not much.
|
||||
It's multiplied by 3/4 internally now.
|
||||
|
||||
Added support for the Datach barcode reader(GUI interface only). The emulation code
|
||||
was adapted from the VirtuaNES source code.
|
||||
|
||||
Reassigned the Datach games to mapper 157, from 16, with CRC32 checks.
|
||||
|
||||
Increased the maximum number of screen snapshots in the snapshots directory
|
||||
to 99999(from 999).
|
||||
|
||||
Reassigned the following games to mapper 210, using CRC32 checks:
|
||||
Chibi Maruko Chan
|
||||
Dream Master
|
||||
Family Circuit '91
|
||||
Famista '92
|
||||
Famista '93
|
||||
Famista '94
|
||||
Heisei Tensai Bakabon
|
||||
Top Striker
|
||||
Wagyan Land 2
|
||||
Wagyan Land 3
|
||||
If you use a hack/translation of one or more of these games, you will of course
|
||||
need to manually change the mapper number in the header for it to work properly in
|
||||
FCE Ultra. Family Circuit '91 still may not fit in with the rest of these games,
|
||||
but it's definitely not a "stock" mapper 19 setup.
|
||||
|
||||
Fixed an OpenGL palette bug when using scanlines(previously, I think it was
|
||||
setting the palette of the scanlines overlay texture instead of the actual image
|
||||
texture in some instances). The bug showed up on games that make use of the color
|
||||
deemphasis bits.
|
||||
|
||||
Rewrote a lot of the PPU background rendering code to be more accurate(and
|
||||
obfuscated!). This eliminates the X-offset hack I made earlier.
|
||||
|
||||
Removed some of the NSF visualization code, and altered the look of the NSF
|
||||
display slightly. The NSF waveform visualization code will now take into
|
||||
account the current volume setting.
|
||||
|
||||
Changed the default key bindings for the standard emulated gamepad
|
||||
to something more compatible with window managers. I may change it back, but probably
|
||||
not, since it is easily configurable now.
|
||||
|
||||
Updated the MMC5, VRC6, and FME07 low-quality sound emulation code
|
||||
with the compatible parts of the high-quality sound emulation code for those chips.
|
||||
|
||||
Adjusted timing of horizontal scroll update(near the beginning of hblank. I made
|
||||
it occur sooner). I also added a hack to allow X-offset(fine X scroll) changes mid
|
||||
scanline, however, it is extremely ugly, and may not work correctly for everything
|
||||
(doing it correctly would probably kill speed).
|
||||
I mainly did it to fix games like F-1 Race and Mach Rider, and other racing
|
||||
games that are extremely sensitive to horizontal scrolling timing.
|
||||
|
||||
Some FDS IRQ emulation changes to fix some screen corruption problems
|
||||
in "Kaettekita Mario Bros".
|
||||
|
||||
Removed zlib(the code, not support).
|
||||
I also removed support for compiling without zlib(it's small, simple, provides
|
||||
very useful functions, and may provide critical features for fceu in the future).
|
||||
|
||||
*undone, breaks debugger, FIXME.* Replaced some inline functions with macros in x6502.c.
|
||||
|
||||
Increased the speed of Namco 106 sound emulation in HQ sound mode.
|
||||
|
||||
Many many sound emulation changes and adjustments based on blargg's tests.
|
||||
The default sound volume is about 150% what it was before, because the sound range
|
||||
has changed(now -soundvol 100 is like -soundvol 200 on older builds), and the
|
||||
default "soundvol" setting is 75. 100 clips on some Namco games, and 200 clips
|
||||
on many games, so I'll probably have the configurable volume range as [0:125].
|
||||
What exactly is "%" supposed to mean in this case.... 100% of what?!
|
||||
|
||||
When using low-quality sound emulation mode, total emulation speed is about 10%
|
||||
less than previous builds. The change in speed for high-quality sound emulation
|
||||
mode is significantly less.
|
||||
|
||||
Added beginnings of SexyAL to source code tree, removed SDL sound support, and
|
||||
old OSS code.
|
||||
|
||||
Copied over some autoconf/automake stuff from phamicom. It stills needs a bit
|
||||
of work...
|
||||
|
||||
Fixed DMC IRQ emulation. Fixes many CodeMasters games. Finally. ^_^
|
||||
|
||||
Restructured a lot of files, changed the interface between driver and
|
||||
emulator code slightly.
|
||||
|
||||
* Insert stuff here *
|
||||
|
||||
November 28, 2003 - Snapshot
|
||||
|
||||
Removed the DOS, Linux SVGAlib, and Win32 targets. *GASP*
|
||||
Win32 support will return(eventually), using SDL + wxWindows.
|
||||
SDL can use svgalib or GGI anyway, so it shouldn't be a huge loss.
|
||||
DOS support will only return if someone ports SDL to DOS. ^_^
|
||||
It would be nice if SDL could accept modelines. Maybe in SDL 2.0...
|
||||
|
||||
Merged fce.c and svga.c into fceu.c, and fce.h and svga.h into fceu.h.
|
||||
|
||||
Reassigned "Mortal Kombat 3 - Special 56 Peoples" to mapper 209.
|
||||
|
||||
Added emulation of the "Oeka Kids" tablet.
|
||||
|
||||
Added emulation of the Family Trainer.
|
||||
|
||||
Added emulation of the "Ultimate Quiz King" buzzers.
|
||||
|
||||
Added emulation of the Mahjong controller.
|
||||
|
||||
Added emulation of HyperShot controllers.
|
||||
|
||||
Fixed loading of NSFs with load addresses below $8000.
|
||||
|
||||
Cleaned and simplified some of the NES APU code.
|
||||
|
||||
Altered mapper 65 emulation. Fixes Kaiketsu Yanchamaru 3. Does it break anything?
|
||||
|
||||
Wrote a small FAQ file.
|
||||
|
||||
Fixed displaying of garbage and other unpleasantness on the first scanline. I need
|
||||
to clean up that code, though.
|
||||
|
||||
Fixed color deemphasis emulation when all bits are set. For some
|
||||
reason, I had commented out the code. Bleh.
|
||||
|
||||
NSF player now writes $C0 to $4017 if the FDS is being used(the FDS
|
||||
BIOS writes $C0 to $4017). $40 for all other NSFs.
|
||||
|
||||
Added support for iNES mapper 58(nnnesterj).
|
||||
|
||||
Added support for iNES mapper 208.
|
||||
|
||||
Reassigned "Fudou Myouou Den" to mapper 207(CRC32 checks).
|
||||
|
||||
Reassigned "Karnov" to mapper 206(CRC32 checks).
|
||||
|
||||
Fixed the mapper 95 code, which was horribly broken.
|
||||
|
||||
Differentiated between mappers 33 and 48. Added CRC checks to assign
|
||||
some games to mapper 48. "Flintstones 2" and "Don Doko Don 2" are
|
||||
the games that need to be assigned to 48. Are there others?
|
||||
|
||||
Replaced usage of TriggerIRQ to X6502_IRQBegin/X6502_IRQEnd combos in
|
||||
various mapper emulation files. 67, 33/48, 40, 73, 42, 65, 6, 182
|
||||
Removed function TriggerIRQ() from x6502.c
|
||||
|
||||
Fixed the sound volume of the VRC7 emulation in high-quality sound mode.
|
||||
Decreased(slightly) the volume of VRC7 emulation in both high-quality sound modes.
|
||||
|
||||
Decreased the volume of the MMC5 expansion sound channels.
|
||||
|
||||
Decreased the volume of the FME-7/mapper 69 expansion sound channels.
|
||||
|
||||
Added FCEU_gmalloc(), which will call exit() if memory allocation fails,
|
||||
otherwise it is guaranteed to return a memory block.
|
||||
This will be used in the mapper code mainly. It should only
|
||||
be used for small memory chunks. The reasoning is that if 64 some like KB of
|
||||
RAM or less can't be allocated, for example, it'd probably be best to
|
||||
exit the emulator ASAP. It also helps to simplify code logic, and
|
||||
help (me) with modularization.
|
||||
The behavior of this may change in the future. I still need to think about it.
|
||||
I should probably save the configuration file regularly(or much better,
|
||||
use the registry) on the Windows port, though.
|
||||
|
||||
Cleaned up the save-state saving/loading code a bit, and added
|
||||
support for linked save state structures for better modularity and
|
||||
less code duplication.
|
||||
|
||||
Merged the iNES and UNIF MMC1, MMC3, and MMC5 code more completely.
|
||||
I may need to sanify CHR RAM and WRAM allocation for pedanticness,
|
||||
though. Also worked on Tengen RAMBO-1 emulation, and mapper 90 emulation.
|
||||
***THIS MAKES SAVE STATES FOR GAMES THAT USE THESE EXPANSION CHIPS INCOMPATIBLE
|
||||
WITH PREVIOUS VERSIONS***
|
||||
I plan on doing the same thing with other mappers/boards in the future, though.
|
||||
Always on the quest for 1.0...
|
||||
|
||||
November 12, 2003 - 0.97.5 Release
|
||||
|
||||
Windows: Added limited support for arguments that change configuration
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,30 @@
|
|||
A list of people who have contributed code to FCE Ultra follows.
|
||||
Please note that the "Code Contributions" field may not be all inclusive;
|
||||
the coder may have done more than what is listed.
|
||||
|
||||
Name/Alias Code Contributions Contact Information
|
||||
------------------------------------------------------------------------------
|
||||
Aaron Oneal Many changes to compile http://www.morphgear.com
|
||||
with MSVC and first frame
|
||||
skipping code.
|
||||
|
||||
BERO Base FCE code. bero@geocities.co.jp
|
||||
|
||||
CaH4e3 Some mapper code. CaH4e3 at mail dot ru
|
||||
|
||||
\Firebug\ VGA register setting code. ??
|
||||
|
||||
Joe Nahmias man pages.
|
||||
|
||||
LULU SDL network play code. ??
|
||||
|
||||
Paul Various code for the official kuliniew@purdue.edu
|
||||
Kuliniewicz SDL port.
|
||||
|
||||
Quietust VRC7 "translation" code. quietust@ircN.org
|
||||
|
||||
Tatsuyuki OPL2 emulator. ??
|
||||
Satoh
|
||||
|
||||
Xodnizel Most of the FCE Ultra code. http://xodnizel.net/
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
.\" t Hey, EMACS: -*- nroff -*-
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH FCEU-SVGA 6 "March 27, 2003"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
fceu-svga \- An emulator for the original (8-bit) Nintendo game console.
|
||||
.SH SYNOPSIS
|
||||
.B fceu-svga
|
||||
.RI [ options ]
|
||||
"filename"
|
||||
.SH DESCRIPTION
|
||||
.B FCE Ultra
|
||||
is an emulator for the original (8-bit) Nintendo Entertainment System (NES).
|
||||
It has a robust color palette rendering engine that is fully customizable,
|
||||
along with excellent sound and joystick support, and even includes TCP/IP based
|
||||
network playing for head-to-head gaming with your friends!
|
||||
.PP
|
||||
The emulator is available in two versions for Linux (there are also versions
|
||||
for DOS and Windows): an SDL-based version, and one based on SVGALIB. The two
|
||||
versions are essentially the same \-\- use the SVGALIB version for the Linux
|
||||
console, and the SDL version for playing in X.
|
||||
.SH OPTIONS
|
||||
These are some of the more frequently used options in FCE Ultra SVGALIB. Run
|
||||
fceu-svga without any options for a larger list, or see the README for the full
|
||||
list.
|
||||
.TP
|
||||
.BI \-gg
|
||||
Enable Game Genie emulation support.
|
||||
.TP
|
||||
.BI "\-cpalette " <file>
|
||||
Use the custom palette in <file>.
|
||||
.TP
|
||||
.BI "\-soundvol " <percentage>
|
||||
Sets the sound volume to the given percentage.
|
||||
.TP
|
||||
.BI "\-sound " <rate>
|
||||
Set the sound playback sample rate (0 == off).
|
||||
.TP
|
||||
.BI "\-connect " <server>
|
||||
Connect as a client (player 2) to <server> for TCP/IP network play.
|
||||
.TP
|
||||
.BI \-server
|
||||
Be a host server (player 1) for a TCP/IP network game.
|
||||
.TP
|
||||
.BI "\-netport " <portnum>
|
||||
Use <portnum> for TCP/IP network play.
|
||||
.SH KEYBOARD COMMANDS
|
||||
.B FCE Ultra
|
||||
has a number of commands available within the emulator.
|
||||
It also includes default keyboard bindings when emulating game pads or power pads.
|
||||
.SS Gamepad Keyboard Bindings
|
||||
.TS
|
||||
center box;
|
||||
cb | cb, c | ci.
|
||||
NES Gamepad Keyboard
|
||||
=
|
||||
Arrows Cursor Arrows
|
||||
A Left ALT
|
||||
B Left CTRL
|
||||
Select TAB
|
||||
Start ENTER
|
||||
.TE
|
||||
.SS Other Commands
|
||||
.PP
|
||||
.TP 15
|
||||
.BI <F2>
|
||||
Activate cheat interface.
|
||||
.TP 15
|
||||
.BI <F3>
|
||||
Lock virtual console.
|
||||
.TP 15
|
||||
.BI <F4>
|
||||
Unlock virtual console.
|
||||
.TP 15
|
||||
.BI <F5>
|
||||
Save game state into current slot (set using number keys).
|
||||
.TP 15
|
||||
.BI <F7>
|
||||
Restore game state from current slot (set using number keys).
|
||||
.TP 15
|
||||
.BI <F9>
|
||||
Save screen snapshot.
|
||||
.TP 15
|
||||
.BI <F10>
|
||||
Reset NES.
|
||||
.TP 15
|
||||
.BI <F11>
|
||||
Toggle power to NES.
|
||||
.TP 15
|
||||
.BR <F12> ", " <ESC>
|
||||
Quit
|
||||
.B FCE Ultra.
|
||||
.SH NOTES
|
||||
This program needs permisison to the video hardware, this normally requires
|
||||
root access. One way to accomplish this is by making
|
||||
.BI "fceu-svga " suid-root.
|
||||
An easy way to do this is using the
|
||||
.BR dpkg-statoverride
|
||||
command. For example, as root on a
|
||||
.I Debian
|
||||
system run:
|
||||
.PP
|
||||
.B dpkg-statoverride --update --add root games 04755 /usr/games/fceu-svga
|
||||
.PP
|
||||
This will ensure that the setuid bit is preserved across package upgrades.
|
||||
.SH SEE ALSO
|
||||
.BR dpkg-statoverride "(8), " fceu-sdl (6)
|
||||
.TP
|
||||
.I /usr/share/doc/fceu-doc/readme-linux.txt.gz
|
||||
The
|
||||
.B FCE Ultra README
|
||||
for linux, available from the
|
||||
.I fceu-doc
|
||||
Debian package.
|
||||
.TP
|
||||
.I http://fceultra.sourceforge.net/
|
||||
The
|
||||
.B FCE Ultra
|
||||
project homepage.
|
||||
.SH AUTHOR
|
||||
This manual page was written by Joe Nahmias <joe@nahmias.net>,
|
||||
for the Debian GNU/Linux system (but may be used by others).
|
|
@ -0,0 +1,32 @@
|
|||
FCE Ultra was developed with gcc and GNU make in mind. MSVC will probably
|
||||
compile the Windows source code with a few modifications, but you'll still
|
||||
need to make a project file.
|
||||
|
||||
Several pre-made makefiles are provided:
|
||||
Makefile.beos - BeOS(with SDL and SDL_net)
|
||||
Makefile.unixsdl - UN*X(FreeBSD/Linux/etc, with SDL)
|
||||
Makefile.linuxvga - Linux(with svgalib)
|
||||
Makefile.dos - (MS/PC/DR) DOS
|
||||
Makefile.win - MS Windows 9x/Me/Xp/2000/etc.(with DirectX).
|
||||
Makefile.macosx - Mac OS X(with SDL)
|
||||
|
||||
If you want to use Makefile.beos or Makefile.unixsdl for a cpu type other
|
||||
than 80x86, you will need to remove "-DC80x86" from the defines line
|
||||
and also remove "-DLSB_FIRST" if your target cpu uses MSB first ordering.
|
||||
You'll also need to remove/change "-mcpu=xxx".
|
||||
|
||||
For the Windows port, I use MINGW32. http://www.mingw.org
|
||||
|
||||
To compile the DOS port, you'll need to download the DJGPP package.
|
||||
Any version of gcc >=2.95.3 should compile the code without changes, BUT
|
||||
the DJGPP versions of gcc have some problems:
|
||||
gcc 2.95.3 sometimes breaks when compiling the code. gcc 3.0.2 seems to
|
||||
produce bad code for sound.c. So, I recommend using gcc 3.0.4 for
|
||||
compiling the DOS version.
|
||||
|
||||
Modifying the "-mcpu=i686" string in the makefiles, to optimize more effectively
|
||||
for your cpu type, is a good idea.
|
||||
|
||||
Always do a "make -f Makefile.<platform> clean" before compiling for a
|
||||
different platform or if you update via cvs and if you have stale object
|
||||
files lying around.
|
|
@ -1,10 +1,14 @@
|
|||
---version 2.0.2 released---
|
||||
10-aug-2008 - punkrockguy318 - SDL: Changed default A/B from numpad 2/3 to j/k.
|
||||
10-aug-2008 - punkrockguy318 - SDL: Cleanup of usage
|
||||
10-aug-2008 - punkrockguy318 - SDL: --no8lim option renamed to --nospritelim
|
||||
10-aug-2008 - punkrockguy318 - SDL: --color option renamed to --ntsccolor
|
||||
10-aug-2008 - punkrockguy318 - SDL: Screenshots now always prepend the game name.
|
||||
10-aug-2008 - punkrockguy318 - SDL: Changed default A/B from numpad 2 and 3 to j and k.
|
||||
10-aug-2008 - punkrockguy318 - SDL: Enable frameskip by default
|
||||
10-aug-2008 - punkrockguy318 - SDL: Fixed a bug that would crash fceux if the emulation speed was overincreased
|
||||
10-aug-2008 - punkrockguy318 - SDL: New default hotkeys to more closely match win32 defaults
|
||||
10-aug-2008 - punkrockguy318 - SDL: Added lua script loading hotkey (f3). Non win32 SDL requires zenity for this to function.
|
||||
10-aug-2008 - punkrockguy318 - SDL: Build script cleanup
|
||||
10-aug-2008 - punkrockguy318 - SDL: Build script cleanup; also added option for DEBUG builds.
|
||||
10-aug-2008 - zeromus - SF [ 2030405 ] Avi recording: no sound b0rks format
|
||||
10-aug-2008 - zeromus - SF [ 2037878 ] Convert .fcm doesn't do special characters
|
||||
09-aug-2008 - zeromus - SF [ 2040463 ] Add an "author" text field in the record movie dialog
|
||||
|
|
|
@ -82,7 +82,7 @@ void FCEUI_UseInputPreset(int preset);
|
|||
//New interface functions
|
||||
|
||||
//0 to order screen snapshots numerically(0.png), 1 to order them file base-numerically(smb3-0.png).
|
||||
void FCEUI_SetSnapName(int a);
|
||||
void FCEUI_SetSnapName(bool a);
|
||||
|
||||
//0 to keep 8-sprites limitation, 1 to remove it
|
||||
void FCEUI_DisableSpriteLimitation(int a);
|
||||
|
|
|
@ -130,16 +130,14 @@ InitConfig()
|
|||
config->addOption("lowpass", "SDL.LowPass", 0);
|
||||
config->addOption("pal", "SDL.PAL", 0);
|
||||
config->addOption("frameskip", "SDL.Frameskip", 0);
|
||||
config->addOption("snapname", "SDL.SnapName", 0);
|
||||
config->addOption("clipsides", "SDL.ClipSides", 0);
|
||||
config->addOption("nothrottle", "SDL.NoThrottle", 0);
|
||||
config->addOption("no8lim", "SDL.DisableSpriteLimit", 0);
|
||||
config->addOption("nospritelim", "SDL.DisableSpriteLimit", 1);
|
||||
|
||||
// color control
|
||||
config->addOption('p', "palette", "SDL.Palette", "");
|
||||
config->addOption("tint", "SDL.Tint", 56);
|
||||
config->addOption("hue", "SDL.Hue", 72);
|
||||
config->addOption("color", "SDL.Color", 0);
|
||||
config->addOption("ntsccolor", "SDL.Color", 0);
|
||||
|
||||
// scanline settings
|
||||
config->addOption("slstart", "SDL.ScanLineStart", 0);
|
||||
|
@ -152,7 +150,7 @@ InitConfig()
|
|||
config->addOption('b', "bpp", "SDL.BitsPerPixel", 32);
|
||||
config->addOption("doublebuf", "SDL.DoubleBuffering", 0);
|
||||
config->addOption("autoscale", "SDL.AutoScale", 1);
|
||||
config->addOption("keepaspect", "SDL.KeepAspect", 1);
|
||||
config->addOption("keepratio", "SDL.KeepRatio", 1);
|
||||
config->addOption("xscale", "SDL.XScale", 1.0);
|
||||
config->addOption("yscale", "SDL.YScale", 1.0);
|
||||
config->addOption("xstretch", "SDL.XStretch", 0);
|
||||
|
@ -165,26 +163,27 @@ InitConfig()
|
|||
config->addOption("SDL.SpecialFilter", 0);
|
||||
config->addOption("SDL.SpecialFX", 0);
|
||||
|
||||
// network play options
|
||||
// network play options - netplay is broken
|
||||
/*
|
||||
config->addOption('n', "net", "SDL.NetworkServer", "");
|
||||
config->addOption('u', "user", "SDL.NetworkUsername", "");
|
||||
config->addOption('w', "pass", "SDL.NetworkPassword", "");
|
||||
config->addOption('k', "netkey", "SDL.NetworkGameKey", "");
|
||||
config->addOption( 0, "port", "SDL.NetworkPort", 4046);
|
||||
config->addOption('l', "players", "SDL.NetworkNumPlayers", 1);
|
||||
|
||||
*/
|
||||
// input configuration options
|
||||
config->addOption("SDL.Input.0", "GamePad.0");
|
||||
config->addOption("SDL.Input.1", "GamePad.1");
|
||||
config->addOption("SDL.Input.2", "None");
|
||||
|
||||
// Allow for input configuration
|
||||
// allow for input configuration
|
||||
config->addOption('i', "inputcfg", "SDL.InputCfg", InputCfg);
|
||||
|
||||
// video playback
|
||||
config->addOption("playmov", "SDL.Movie", "");
|
||||
|
||||
// lua
|
||||
// load lua script
|
||||
config->addOption("loadlua", "SDL.LuaScript", "");
|
||||
|
||||
// GamePad 0 - 3
|
||||
|
@ -324,8 +323,8 @@ UpdateEMUCore(Config *config)
|
|||
config->getOption("SDL.DisableSpriteLimit", &flag);
|
||||
FCEUI_DisableSpriteLimitation(flag ? 1 : 0);
|
||||
|
||||
config->getOption("SDL.DisableSpriteLimit", &flag);
|
||||
FCEUI_SetSnapName(flag ? 1 : 0);
|
||||
// config->getOption("SDL.SnapName", &flag);
|
||||
// FCEUI_SetSnapName(flag ? true : false);
|
||||
|
||||
config->getOption("SDL.ScanLineStart", &start);
|
||||
config->getOption("SDL.ScanLineEnd", &end);
|
||||
|
|
|
@ -1195,92 +1195,6 @@ InputCfg(const std::string &text)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Specify a FamiCom Expansion device as the 3rd input device. Takes
|
||||
* a text string describing the device.
|
||||
*/
|
||||
|
||||
/*
|
||||
static void
|
||||
FCExp(char *text)
|
||||
{
|
||||
static char *fccortab[11]={"none","arkanoid","shadow","4player","fkb","hypershot",
|
||||
"mahjong","quizking","ftrainera","ftrainerb","oekakids"};
|
||||
|
||||
static int fccortabi[11]={SIFC_NONE,SIFC_ARKANOID,SIFC_SHADOW,
|
||||
SIFC_4PLAYER,SIFC_FKB,SIFC_HYPERSHOT,SIFC_MAHJONG,SIFC_QUIZKING,
|
||||
SIFC_FTRAINERA,SIFC_FTRAINERB,SIFC_OEKAKIDS};
|
||||
|
||||
int y;
|
||||
for(y = 0; y < 11; y++) {
|
||||
if(!strcmp(fccortab[y], text)) {
|
||||
UsrInputType[2] = fccortabi[y];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static char *cortab[6]={"none","gamepad","zapper","powerpada","powerpadb","arkanoid"};
|
||||
static int cortabi[6]={SI_NONE,SI_GAMEPAD,
|
||||
SI_ZAPPER,SI_POWERPADA,SI_POWERPADB,SI_ARKANOID};
|
||||
*/
|
||||
/**
|
||||
* Set the 1st user-specified input device. Specified as a text
|
||||
* string.
|
||||
*/
|
||||
/*
|
||||
static void
|
||||
Input1(char *text)
|
||||
{
|
||||
int y;
|
||||
|
||||
for(y = 0; y < 6; y++) {
|
||||
if(!strcmp(cortab[y], text)) {
|
||||
UsrInputType[0] = cortabi[y];
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* Set the 2nd user-specified input device. Specified as a text
|
||||
* string.
|
||||
*/
|
||||
/*
|
||||
static void
|
||||
Input2(char *text)
|
||||
{
|
||||
int y;
|
||||
|
||||
for(y = 0; y < 6; y++) {
|
||||
if(!strcmp(cortab[y], text)) {
|
||||
UsrInputType[1] = cortabi[y];
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/** GLOBALS **/
|
||||
#if 0
|
||||
CFGSTRUCT InputConfig[]={
|
||||
ACA(UsrInputType),
|
||||
AC(powerpadsc),
|
||||
AC(QuizKingButtons),
|
||||
AC(FTrainerButtons),
|
||||
AC(HyperShotButtons),
|
||||
AC(MahjongButtons),
|
||||
AC(GamePadConfig),
|
||||
AC(fkbmap),
|
||||
ENDCFGSTRUCT
|
||||
};
|
||||
|
||||
ARGPSTRUCT InputArgs[]={
|
||||
{"-inputcfg",0,(void *)InputCfg,0x2000},
|
||||
{"-fcexp",0,(void *)FCExp,0x2000},
|
||||
{"-input1",0,(void *)Input1,0x2000},
|
||||
{"-input2",0,(void *)Input2,0x2000},
|
||||
{0,0,0,0}
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Hack to map the new configuration onto the existing button
|
||||
* configuration management. Will probably want to change this in the
|
||||
|
|
|
@ -220,22 +220,22 @@ InitVideo(FCEUGI *gi)
|
|||
double auto_yscale = GetYScale(yres);
|
||||
double native_ratio = ((double)NWIDTH) / s_tlines;
|
||||
double screen_ratio = ((double)xres) / yres;
|
||||
int keep_aspect;
|
||||
int keep_ratio;
|
||||
|
||||
g_config->getOption("SDL.KeepAspect", &keep_aspect);
|
||||
g_config->getOption("SDL.KeepRatio", &keep_ratio);
|
||||
|
||||
// Try to choose resolution
|
||||
if (screen_ratio < native_ratio)
|
||||
{
|
||||
// The screen is narrower than the original. Maximizing width will not clip
|
||||
auto_xscale = auto_yscale = GetXScale(xres);
|
||||
if (keep_aspect)
|
||||
if (keep_ratio)
|
||||
auto_yscale = GetYScale(yres);
|
||||
}
|
||||
else
|
||||
{
|
||||
auto_yscale = auto_xscale = GetYScale(yres);
|
||||
if (keep_aspect)
|
||||
if (keep_ratio)
|
||||
auto_xscale = GetXScale(xres);
|
||||
}
|
||||
s_exs = auto_xscale;
|
||||
|
|
|
@ -35,12 +35,6 @@
|
|||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef OPENGL
|
||||
int sdlhaveogl;
|
||||
#endif
|
||||
|
||||
|
||||
extern int32 g_fpsScale;
|
||||
|
||||
int CloseGame(void);
|
||||
|
@ -54,48 +48,48 @@ static void DriverKill(void);
|
|||
static int DriverInitialize(FCEUGI *gi);
|
||||
int gametype = 0;
|
||||
|
||||
char *DriverUsage=
|
||||
"--pal x Uses PAL timing.\n\
|
||||
--gamegenie x, -g x Enables emulated Game Genie if x is nonzero.\n\
|
||||
--no8lim x Disables the 8 sprites per scanline limitation, if x is nonzero.\n\
|
||||
--nothrottle x Disables artificial speed throttling, if x is nonzero.\n\
|
||||
--frameskip x Sets # of frames to skip per emulated frame.\n\
|
||||
--(x/y)res x, -(x/y) x Sets horizontal/vertical resolution to x for full screen mode.\n\
|
||||
--autoscale x Enables autoscaling in fullscreen if x in nonzero. \n\
|
||||
--keepratio x Keeps native NES ratio when autoscaling if x is nonzero. \n\
|
||||
--(x/y)scale x Multiplies width/height by x (Real numbers >0 with OpenGL, otherwise integers >0).\n\
|
||||
--(x/y)stretch x Stretchess to fill surface on x/y axis (fullscreen, only with OpenGL).\n\
|
||||
--bpp x, -b x Sets bits per pixel for SDL surface(and video mode in fs). 8, 16, 32.\n\
|
||||
--opengl x Enables OpenGL support if x is nonzero.\n\
|
||||
--doublebuf xEnables SDL double-buffering if x is nonzero.\n\
|
||||
--fullscreen x, -f x Selects full screen mode if x is nonzero.\n\
|
||||
--clipsides x Clips left- and rightmost 8 columns of pixels if x is nonzero.\n\
|
||||
--noframe x Hides title bar and window decorations.\n\
|
||||
--slstart x Sets the first drawn emulated scanline. Valid values for x are\n\
|
||||
0 through 239.\n\
|
||||
--slend x Sets the last drawn emulated scanline. Valid values for x are\n\
|
||||
0 through 239.\n\
|
||||
--color x Emulates an NTSC TV's colors, if x is nonzero.\n\
|
||||
--hue x Sets parameter for NTSC color emulation.\n\
|
||||
--tint x Sets parameter for NTSC color emulation.\n\
|
||||
--palette s, -p s Loads a custom global palette from file s.\n\
|
||||
--sound x, -s x Enables sound if x is nonzero.\n\
|
||||
--soundrate x Sets sound playback rate to x Hz.\n\
|
||||
--soundq x Sets sound quality: 0 for low, 1 for high.\n\
|
||||
--soundbufsize x Sets sound buffer size to x ms.\n\
|
||||
--volume x Sets volume to x%.\n\
|
||||
--lowpass x Enables low-pass filter if x is nonzero.\n\
|
||||
--soundrecord s Records sound to file s.\n\
|
||||
--snapname x Prepends the game's name to (numeric) snapshot filenames, if x is nonzero.\n\
|
||||
--inputcfg, -i Configures input device(s) on startup.\n\
|
||||
char *DriverUsage="\
|
||||
--pal {0|1} Uses PAL timing.\n\
|
||||
--gamegenie {0|1} Enables emulated Game Genie.\n\
|
||||
--nospritelim {0|1} Disables the 8 sprites per scanline limitation.\n\
|
||||
--frameskip x Sets # of frames to skip per emulated frame.\n\
|
||||
--xres x Sets horizontal resolution to x for full screen mode.\n\
|
||||
--yres x Sets vertical resolution to x for full screen mode.\n\
|
||||
--autoscale {0|1} Enables autoscaling in fullscreen if x in nonzero. \n\
|
||||
--keepratio {0|1} Keeps native NES ratio when autoscaling. \n\
|
||||
--(x/y)scale x Multiplies width/height by x (Real numbers >0 with OpenGL, otherwise integers >0).\n\
|
||||
--(x/y)stretch {0|1} Stretches to fill surface on x/y axis (fullscreen, only with OpenGL).\n\
|
||||
--bpp {8|16|32} Sets bits per pixel.\n\
|
||||
--opengl {0|1} Enables OpenGL support.\n\
|
||||
--doublebuf {0|1} Enables SDL double-buffering if x is nonzero.\n\
|
||||
--fullscreen {0|1} Enables full screen mode.\n\
|
||||
--clipsides {0|1} Clips left and rightmost 8 columns of pixels.\n\
|
||||
--noframe {0|1} Hides title bar and window decorations.\n\
|
||||
--slstart {0 - 239} Sets the first drawn emulated scanline.\n\
|
||||
--slend {0 - 239} Sets the last drawn emulated scanline.\n\
|
||||
--ntsccolor {0|1} Emulates an NTSC TV's colors.\n\
|
||||
--hue x Sets hue for NTSC color emulation.\n\
|
||||
--tint x Sets tint for NTSC color emulation.\n\
|
||||
--palette f Loads a custom global palette from file f.\n\
|
||||
--sound {0|1} Enables sound.\n\
|
||||
--soundrate x Sets sound playback rate to x Hz.\n\
|
||||
--soundq {0|1} Enables high sound quality.\n\
|
||||
--soundbufsize x Sets sound buffer size to x ms.\n\
|
||||
--volume {0 - 100} Sets volume.\n\
|
||||
--lowpass {0|1} Enables low-pass filter if x is nonzero.\n\
|
||||
--soundrecord f Records sound to file f.\n\
|
||||
--inputcfg d Configures input device d on startup (gamepad1, gamepad2).\n\
|
||||
--playmov f Plays back a recorded movie from filename f.\n\
|
||||
--loadlua f Loads lua script from filename f.\n";
|
||||
|
||||
/* Moved network options out while netplay is broken.
|
||||
--net s, -n s Connects to server 's' for TCP/IP network play.\n\
|
||||
--port x, -p x Uses TCP/IP port x for network play.\n\
|
||||
--user s, -u s Sets the nickname to use in network play.\n\
|
||||
--pass s, -w s Sets password to use for connecting to the server.\n\
|
||||
--netkey s, -k s Uses key 's' to create a unique session for the game loaded.\n\
|
||||
--players x, -l x Sets the number of local players.\n\
|
||||
--playmov f Plays back a recorded movie from filename f.\n\
|
||||
--loadlua f Loads lua script from filename f\n";
|
||||
*/
|
||||
|
||||
|
||||
// global configuration object
|
||||
|
@ -106,17 +100,6 @@ static void ShowUsage(char *prog)
|
|||
printf("\nUsage is as follows:\n%s <options> filename\n\n",prog);
|
||||
puts("Options:");
|
||||
puts(DriverUsage);
|
||||
// These options are basically not going to work...
|
||||
#if 0
|
||||
puts("\
|
||||
--inputx str Select device mapped to virtual input port x(1-2).\n\
|
||||
str may be: none, gamepad, zapper, powerpada, powerpadb,\n\
|
||||
arkanoid\n\
|
||||
--fcexp str Select Famicom expansion port device.\n\
|
||||
str may be: none, shadow, arkanoid, 4player, fkb\n\
|
||||
--nofs x Disables Four-Score emulation if x is 1.\n\
|
||||
");
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -136,51 +119,6 @@ void FCEUD_Message(char *s)
|
|||
fputs(s, stdout);
|
||||
}
|
||||
|
||||
|
||||
#ifndef WIN32
|
||||
/**
|
||||
* Capture and handle signals sent to FCEU.
|
||||
*/
|
||||
static void
|
||||
SetSignals(void (*t)(int))
|
||||
{
|
||||
// XXX soules - why do we capture these? Seems unnecessary.
|
||||
int sigs[11]={SIGINT,SIGTERM,SIGHUP,SIGPIPE,SIGSEGV,SIGFPE,SIGKILL,SIGALRM,SIGABRT,SIGUSR1,SIGUSR2};
|
||||
int x;
|
||||
for(x = 0; x < 11; x++) {
|
||||
signal(sigs[x], t);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
CloseStuff(int signum)
|
||||
{
|
||||
// XXX soules - again, not clear why this is necessary
|
||||
DriverKill();
|
||||
printf("\nSignal %d has been caught and dealt with...\n",signum);
|
||||
switch(signum) {
|
||||
case SIGINT:printf("How DARE you interrupt me!\n");break;
|
||||
case SIGTERM:printf("MUST TERMINATE ALL HUMANS\n");break;
|
||||
case SIGHUP:printf("Reach out and hang-up on someone.\n");break;
|
||||
case SIGPIPE:printf("The pipe has broken! Better watch out for floods...\n");break;
|
||||
case SIGSEGV:printf("Iyeeeeeeeee!!! A segmentation fault has occurred. Have a fluffy day.\n");break;
|
||||
/* So much SIGBUS evil. */
|
||||
#ifdef SIGBUS
|
||||
#if(SIGBUS!=SIGSEGV)
|
||||
case SIGBUS:printf("I told you to be nice to the driver.\n");break;
|
||||
#endif
|
||||
#endif
|
||||
case SIGFPE:printf("Those darn floating points. Ne'er know when they'll bite!\n");break;
|
||||
case SIGALRM:printf("Don't throw your clock at the meowing cats!\n");break;
|
||||
case SIGABRT:printf("Abort, Retry, Ignore, Fail?\n");break;
|
||||
case SIGUSR1:
|
||||
case SIGUSR2:printf("Killing your processes is not nice.\n");break;
|
||||
}
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Loads a game, given a full path/filename. The driver code must be
|
||||
* initialized after the game is loaded, because the emulator code
|
||||
|
@ -470,12 +408,7 @@ main(int argc,
|
|||
}
|
||||
|
||||
#ifdef OPENGL
|
||||
#ifdef APPLEOPENGL
|
||||
sdlhaveogl = 1; /* Stupid something... Hack. */
|
||||
#else
|
||||
if(!SDL_GL_LoadLibrary(0)) sdlhaveogl=1;
|
||||
else sdlhaveogl=0;
|
||||
#endif
|
||||
SDL_GL_LoadLibrary(0);
|
||||
#endif
|
||||
|
||||
// Initialize the configuration system
|
||||
|
|
|
@ -785,7 +785,7 @@ void FCEUI_SetGameGenie(bool a)
|
|||
FSettings.GameGenie = a;
|
||||
}
|
||||
|
||||
void FCEUI_SetSnapName(int a)
|
||||
void FCEUI_SetSnapName(bool a)
|
||||
{
|
||||
FSettings.SnapName=a;
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@ typedef struct {
|
|||
int UsrFirstSLine[2];
|
||||
int UsrLastSLine[2];
|
||||
|
||||
int SnapName;
|
||||
bool SnapName;
|
||||
uint32 SndRate;
|
||||
int soundq;
|
||||
int lowpass;
|
||||
|
|
Loading…
Reference in New Issue