*** empty log message ***

This commit is contained in:
n-a-c-h
2004-12-25 17:04:25 +00:00
parent baaa00f925
commit 502d507793
10 changed files with 0 additions and 1593 deletions

View File

@@ -1,110 +0,0 @@
Compiling the Source Code:
--------------------------
Well, for the moment, zsnes source may be a little hard to compile. Here
is a quick guide (based on my own experience and on a doc written by zsKnight)
explaining how to compile zsnes. With these tools, I can build both dos and
win version, I hope it will also work for you
(slightly updated by stainless)
First, you need the following software:
Dos port :
- NASM v0.98 or higher
- DJGPP v2 or higher, (GCC also installed) : http://www.delorie.com/djgpp/
using the zip picker, the default choices are ok if you
check C and C++ in the programming languages. You also need
to get zlib which is available with the full distribution
of djgpp. You can get it at :
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2tk/zlib112b.zip
- zlib : http://www.info-zip.org/pub/infozip/zlib/
- libpng : http://www.libpng.org/
Build the static versions of both of these libraries using
DJGPP and do a 'make install' to put them where DJGPP
can find them. Afterwards you can go ahead and delete
the source for them from your hard drive.
Then to build the executable, go to the src directory and type:
make -f makefile.dos
You may also want to compress zsnes.exe with upx (http://upx.sourceforge.net),
it will divide its size by 10.
Windows port :
- GNU Make : it comes with djgpp
- NASM v0.98 : http://www.kernel.org/pub/software/devel/nasm/
- MSVC++ 6.0 or higher : not freely available, you'll have to buy it
You need to run VCVARS32.BAT. If you get an
out of environment space error, type 'command /e:32768'
(to create a new command.com entity with more
environment space)
I have been able to successfully build ZSNES using the
Intel C++ drop-in replacement for Microsoft's C++ compiler
that comes with MSVC++ 5 and above. Since ZSNES contains
relatively small amounts of C, I don't see how Intel's
compiler could provide any useful optimizations (maybe
for winlink.cpp?).
- DX8.0 SDK or higher : you can get it at microsoft.com. It is quite big.
Also, edit makefile.win to set the correct path to your
SDK. I also had some problems with vc++ using its own
(old) directx headers instead of the sdk headers. I replaced
these old headers (in the include directory of vc++ dir)
with the newer ones.
- zlib : http://www.info-zip.org/pub/infozip/zlib/
you need the Win9x/WinNT static library (the dll version
doesn't seem to work with zsnes). Rename the static version
to zlib.lib and put it somewhere where vc++ will find it
(for example, the lib directory in vc++ dir).
- libpng : http://www.libpng.org/
I'm not sure if the dynamically linked version of libpng
will work with ZSNES. To be safe I would recommend to just
go ahead and build the static version. Rename it to libpng.lib
and put it somewhere where MSVC++ will find it (usually the
lib subdirectory of your main MSVC++ directory).
Don't forget to set the correct path to the directx sdk in makefile.win!
Then to build the executable, go to the src directory and type:
make -f makefile.win
You may also want to compress zsnesw.exe with upx (http://upx.sourceforge.net),
it will divide its size by 10.
Linux port:
I assume the standard development tools are installed (gcc, make, ...)
You'll also need :
- SDL (Simple DirectMedia Layer) : check www.libsdl.org to grab SDL 1.2.0 or
later. If you are using rpm packages, don't
forget the -devel package.
- NASM v0.98 : http://www.kernel.org/pub/software/devel/nasm/
the version found on http://nasm.2y.net/ DOES NOT WORK
with zsnes sources. When you type nasm -r, you must get
'NASM version 0.98' and not 'NASM version 0.98.08' if you
have the correct version
- zlib : http://www.info-zip.org/pub/infozip/zlib/
it is probably already installed on your
system, maybe you are just missing the
development headers. Check in the
packages available with your distribution
or go to the page above
- libpng : http://www.libpng.org/
You might also need libpng, ZSNES will compile without
PNG support but I have found doing so to make ZSNES
unstable for some weird reason. If you don't have
libpng, either get it and install it or pass the
--without-png option to the 'configure' script.
Then to build the executable, go to the src directory and type:
./configure && gmake && gmake install
Note: you require root to install zsnes to the the default (/usr/local/*)
directory
Also Note: libpng (optional) needs to be recent, or zsnes will not use it
You may also want to compress the zsnes executable with upx
(http://upx.sourceforge.net), it will divide its size by 10.

View File

@@ -1,38 +0,0 @@
--------------
The ZSNES Team
--------------
zsKnight <zsknight@zsnes.com>
_Demo_ <z_demo_z@users.sourceforge.net>
pagefault
------------------
Assistant Coders
------------------
pharos
stainless
Nach
------------------
Additional Authors
------------------
pharos
teuf
relnev
prometheus
theoddone33
EvilTypeGuy
StatMat
MKendora
hpsolo
aaronl
Diablo-D3
-------------
Miscellaneous
-------------
Wilbern Cobb - initial OpenBSD work
Thorsten "mirabile" Glaser - more OpenBSD integration
Mitchell "The Khan Artist" Mebane - manpage

View File

@@ -1,342 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@@ -1,100 +0,0 @@
This document is no longer up-to-date, but is a good start to
understanding how the OpenGL code works for non-filtered modes.
-------------------------------------------------------------------------
OpenGL is currently only available on Linux and via CVS. For the most
part, it works and fairly stable. Please send all comments, suggestions,
and bug fixes to hpsolo@my-deja.com. DO NOT EMAIL THE OTHER DEVELOPERS
SINCE THEY ARE not INVOLVED WITH THIS CODE. And please make sure you've
read through the list of known issues before sending your bug report.
HOW OPENGL RENDERS THE SNES VIDEO BUFFER
The SNES video buffer has dimensions 288x224 (sometimes 288x239 for
certain games; however I have not come across any). The first 16 and last
16 column of pixels are not displayed (perhaps used as a scrolling
buffer?), so the only important part of the video buffer is the middle
256x224 pixels. The SNES video buffer pointer is vidbuffer. With OpenGL,
only the visible 256x224 pixels are needed and they are cropped into
glvidbuffer. glvidbuffer is then turned into a texture that gets bound to
a QUAD whose size depends on whether ZSNES uses aspect ratio to display
each frame.
HI-RES FILTERS WITH OPENGL
The video mode selection is taken care of by SDL, including full
screen mode. The current code does not allow for many hi-res filter
options. While it is not difficult to implement the hi-res features using
the current filtering code (in copyvwin.asm), it appears that the code for
copy640x480x16bwin() causes memory corruption and sometimes segfaults when
you exit ZSNES. For this reason, the filters have been left out. You can,
however, add it in yourself by:
1. allocating enough memory space for glvidbuffer (use realloc)
2. assign glvidbuffer to the destination pointer SurfBufD (instead of
surface->pixels)
3. setting Temp1 to surface->pitch, i.e. Temp1 = 2*SurfaceX
4. calling copy640x480x16bwin()
5. correctly binding the glvidbuffer as a texture to a QUAD
There is a old patch that enables these filters and it is located at:
http://www.students.uiuc.edu/~handuong/opengl.patch2
3DFX USERS (VOODOO2 AND OLDER HARDWARE)
Lord_Nightmare managed to get OpenGL to work on a Voodoo2. Some
things you'll need to do in order to get ZSNES OpenGL to work on your
Voodoo:
1. Make sure to have the latest Mesa drivers and compile it with
the following option:
make -f Makefile.X11 linux-386-glide
Voodoo2 users might want to use:
make -f Makefile.X11 linux-386-opt-glide
since that is optimized for Voodoo2 cards. According the the
XFree86 website, Voodoo3 users (and later) should have DRI
support via the tdfx driver so this might not be needed.
2. When you run ZSNES, make sure to set the environment variable
MESA_GLX_FX to either w or f (window/full screen). E.g. use
export MESA_GLX_FX=f
if you use a bash shell. Theoretically using the w option
should work, but it not only is slow (5fps) but seems
broken. Voodoo Rush users might be able to get by.
Note that only the 640x480 full screen mode works on the Voodoo2 cards
so please do not email me about the other video modes. Files which
might be useful to have before compiling anything:
Device3Dfx, Glide_SDK, Glide_V2 (or Glide_XXXX depending on your card)
I believe Glide 2 is what you want, as Glide 3 doesn't work for older
hardware. Also Device3Dfx may not be implemented the same way for 2.4.x
kernels.
KNOWN ISSUES (AND SOME WORK-AROUNDS)
- after many video mode switches (all windowed), switching to full screen
then back to window mode cases an SDL parachute exit; try not to use too
many video mode changes, and restart ZSNES every once in a while if you
are just testing out video modes
- segfault after having compiled the source -- this might be due to an old
zguicfg.dat file; delete this and see if the problem gets fixed
TODO
- use something like SDL_GL_UpdateRects with hi-res filters
-- hpsolo --

View File

@@ -1,4 +0,0 @@
If you need help to compile ZSNES, read install.txt, or if you want a directory
to the sources, read srcinfo.txt. The offical website is at http://www.zsnes.com
and the sourceforge mirror is at http://zsnes.sourceforge.net/. The development chat is on
#zsnes on irc.freenode.net.

View File

@@ -1,170 +0,0 @@
(this part was written by zsKnight)
File List/Information
---------------------
; Porting Routine Files
-DOS-
ZLOADER.C ; Start-up C routines for DOS (Commandline parser, etc.)
DOSINTRF.ASM ; DOS Interface routines (File,video,timers,etc.)
-WINDOWS-
ZLOADERW.C ; Start-up C routines for Windows (Commandline parser, etc.)
Winintrf.asm ; Windows Interface routines (File,video,timers,etc.)
winlink.cpp ; Win32 routines (DirectX, Win32 functions)
ztcp.c ; TCP/IP & UDP driver
copyvwin.asm ; Video Blitter for D modes
-LINUX-
copyvwin.asm ; Video Blitter for D modes
gl_draw.c ; OpenGL routines for drawing the video buffer
gl_draw.h ;
protect.c ;
sdllink.c ; SDL routines (video, input, sound init)
sdlintrf.asm ; Interface routines
sw_draw.c ; Software (via SDL) drawing routines
sw_draw.h ;
zfilew.c ;
zipxw.c ;
zloaderw.c ;
zsnes.1 ; man page for zsnes
ztcp.c ; TCP/IP (Netplay)
; ----------------------------------------------------------------
; The following are generally compiled for both ports, but they
; are not necessarily used by both
; ----------------------------------------------------------------
; General Stuff
MACROS.MAC ; Global Macro file (NEWSYM/EXTSYM global var control macros)
UI.ASM ; Start-up/initialization routines (env variables, cfg
; loader, memory allocation, etc.)
INIT.ASM ; Emulation initialization routines (eg. memory map, emu
; variables, etc.)
CFGLOAD.ASM ; ZSNES.CFG/ZSNESW.CFG file loading/parsing routines
PROCVID.ASM ; In-game video initialization/text displays/mouse routines/
; 8-bit palette/F3 menu routines
TABLE.ASM ; Generates the SNES CPU tables (but in an inefficient way)
TABLEB.ASM
TABLEC.ASM
STABLE.ASM
VCACHE.ASM ; Performs tile caching and also vframe initialization stuff
MENU.ASM ; F1 Menu routines
ENDMEM.ASM ; Where those large arrays go
ZFILE.C ; File Access Routines
GBLHDR.H ; Global Header Stuff
; ZSNES GUI Stuff
GUI.ASM ; Main GUI file
GUITOOLS.INC ; Simple tools for the GUI
GUIWINDP.INC ; GUI Window Display Routines
GUINETPL INC ; GUI Netplay Routines
GUILOAD INC ; GUI File Load Routines
GUIKEYS INC ; GUI Keyboard Input Routines
GUIMOUSE INC ; GUI Mouse Input Routines
GUICHEAT INC ; GUI Cheat Code Routines (search + regular codes)
GUICOMBO INC ; GUI Key Combo Routines
GUIMISC INC ; Misc GUI Stuff (Movie, Joystick setting (display) routines,
; SNES Reset Function
; DOS Specific stuff
VESA2.ASM ; VESA2 DOS Routines
VESA12.ASM ; VESA1.2 DOS Routines
ZSIPX.ASM ; IPX routines (DOS)
JOY.ASM ; DOS Joystick Drivers
COPYVID.INC ; Graphics blitter routines for DOS (copys screen to display)
INITVID.ASM ; Video Initialization routines (DOS)
DEBUG.ASM ; SNES Debugger routines
SW.ASM ; Sidewinder routines
SW32.ASM ; More Sidewinder routines (not sure which file is the real
; one)
GPPRO.ASM ; Gamepad Pro routines (non-USB)
MODEMRTN.ASM ; DOS Modem routines
; Graphics Enhancers
2XSAIMMX.INC ; Kreed's 2xSaI routines
2xSaI.cpp ; Kreed's Super 2xSaI routines
2xsaiw.asm ; 2xSaI for windows (without selector usage)
water.c ; Water Effect
; SNES CPU Emulation routines
execute.asm ; Main emulation execution loop routines (includes save
; states and in-game netplay routines)
SPC700.ASM ; SNES SPC700 Sound CPU emulation routine files
SPCADDR.INC
SPCDEF.INC
DSPPROC.ASM ; SNES Digital Sound Processor main emulation routines
DSP.ASM ; SNES Digital Sound Processor register routines
DMA.ASM ; SNES PPU DMA/HDMA routines
IRQ.ASM ; SNES 65816 IRQ routines (VIRQ/NMI)
MEMORY.ASM ; SNES Memory access routines + C4 routines (Sorry that I
; didn't have these in a separate file since a small memory
; hack of the C4 originated on this file and just grew and
; grew)
E65816.INC ; 65816 emulation routines (w/o SPC700)
65816D.INC
E65816B.INC ; 65816 emulation routines (Debugger I think)
65816DB.INC
E65816C.INC ; 65816 emulation routines (w/ SPC700) - Sorry about these
; 3 files. They used to be just 1 until I removed the
; self-modifying code routines
65816DC.INC
SE65816.INC ; 65816 emulation routines (SA-1)
S65816D.INC
ADDRNI.ASM ; 65816 Non-incrementing addressing modes
ADDRNI.INC
SADDRNI.INC
ADDRESS.INC ; 65816 Incrementing addressing modes
ADDRESS2.INC
SADDRESS.INC
REGS.INC ; SNES I/O register emulation
REGS.MAC
REGSW.INC
REGSW.MAC
; SNES PPU Emulation Routines
MAKEVID.ASM ; 8-bit old graphics engine
MAKEV16B.ASM ; 16-bit old graphics engine
MAKEV16T.ASM ; 16-bit old graphics engine (transparencies)
MV16TMS.ASM ; 16-bit old graphics engine (transp w/ Main+Sub enabled)
MODE7.ASM ; 8-bit mode 7 routines
MODE7.MAC
MODE7EXT.ASM ; 8-bit mode 7 EXTBG routines
MODE716B.ASM ; 16-bit mode 7 routines
MODE716T.ASM ; 16-bit mode 7 routines (transparencies)
MODE716E.ASM ; 16-bit mode 7 EXTBG routines
M716TEXT.ASM ; 16-bit mode 7 EXTBG routines (transparencies)
MODE716D.ASM ; 16-bit mode 7 Direct routines
mode716.asm ; Mode 7 16-bit new graphics engine routines
mode716.mac
NEWGFX.ASM ; 8-bit new graphics engine files
NEWGFX.MAC
NEWGFX2.ASM
NEWGFX2.MAC
NEWGFXB.MAC
NEWGFXWN.MAC
newgfx16.asm ; 16-bit new graphics engine files
newgfx16.mac
NEWG162.ASM
newg162.mac
NEWG163.MAC
NEWG16WN.MAC
VIDMACRO.MAC ; Generic Video Macros File
VIDMACRB.MAC
; Special Chip Emulation Routines
FXEMU2.ASM ; Super FX emulation files
FXEMU2.MAC
FXEMU2B.ASM
FXEMU2B.MAC
FXEMU2C.ASM
FXEMU2C.MAC
FXTABLE.ASM
SFXPROC.ASM
DSP1PROC.ASM ; DSP1 communication routines
DSP1EMU.C ; DSP1 C routines (also includes some C4 C routines)
SA1PROC.ASM ; SA-1 processing routines
SA1REGS.ASM ; SA-1 registers, also includes S-DD1 and SPC7110 routines

View File

@@ -1,32 +0,0 @@
** NOTE ** If you are looking to submit a bug report to the ZSNES
development team, this is the wrong document to be reading.
Please read the 'BUGINFO.TXT' that came with your distribution.
=========================
Getting help with ZSNES
=========================
To get help with ZSNES you can visit the ZSNES message boards.
Please, read the rules thoroughly before posting anything.
http://board.zsnes.com/phpBB2/
There are also several mailing lists devoted to ZSNES which are
kindly hosted by SourceForge. They are usually low-traffic.
http://sourceforge.net/mail/?group_id=19677
And last, but not least, there are several IRC channels which
have been created for the sole purpose of worshiping ZSNES. :)
=================
#ZSNES on irc.freenode.net
=================
This is where all of the old developers of ZSNES used to hangout
(and probably where they met). Some of the developers such as
_Demo_, pagefault, and stainless, and tons of ZSNES fans hangout
here. Be warned that this channel is usually plagued with adult
humor, links and requests for warez and ROMs, and always off-topic.

View File

@@ -1 +0,0 @@
Someone needs to edit this file.

View File

@@ -1,14 +0,0 @@
Some Issues :
Windows Port:
- OpenGL, or Direct3D support would be nice
- Use another (free) compiler for the windows version (cygwin?)
- Auto-detect high/low latency connections and adjust settings accordingly
Compatibility
- Game not working - Guikuden 1 (and some more)
- Graphics Glitches - Uniracers (2p mode), Killer Instinct (couple stages,
black background), FF3 (some sprite clipping probs), Metal Combat,
Tactic Ogre (Menus?)
- Special Chips - DSP1 (95% done), DSP2 (0% done), SA-1 (95% done),
SDD-1 (decompression left), and others

View File

@@ -1,782 +0,0 @@
What's New :
------------
v1.36
- Fixed Gunforce, added invalid HDMA modes. [_Demo_]
(Thanks Overload!)
- New BRR decoding method, this should resolve all the sound
issues introduced in 1.35 and fix new ones.
(Noise simulation isn't used anymore) [_Demo_]
- Fixed another bug with command-line netplay. (Windows only)
[pagefault]
- Fixed hang in NBA Live 95 and 96. [_Demo_] (Thanks Overload!)
- Fixed sound not working on first run. (Windows only) [pagefault]
- Fixed some more mode 4 issues in the new gfx engine. [pagefault]
- Added offset mode disable toggle to 8-bit new gfx engine.
[pagefault]
- Fixed SPC hang in 90 Minutes European Prime Goal
by clearing spcram. [_Demo_]
- Updated fix for Clayfighter to fix some bugs in battle. [_Demo_]
- Fixed crash with certain games. (SDL/*nix only) [theoddone33]
- Added better OBC1 detection. [_Demo_]
- Special hack for Samurai Showdown IRQ problem. [_Demo_]
- Special hack for Kamen Rider menu, requires special latch reading.
[_Demo_]
- Special hack for Super Famista 1 & 2 SPC bugs. [_Demo_]
- Fixed some more bugs in video code. (Thanks Perryman for the video
table) (Windows only) [pagefault]
- Fixed Digital Devil Story hang by modifying the spc code.
You must start a new game for the fix to work. [_Demo_]
- Modified work ram init value to 0x55. (Thanks TRAC)
v1.35
- Fixed triple buffering corruption on some VESA 2.x video modes,
a very nasty bug which accidentally slipped into version 1.337.
[stainless] (DOS only)
- Added full scanlines to 320x256x8b Mode-X. Uses the same timings
as the 256x256x8b full scanlines, so it may or may not work
correctly depending on your video card.
[stainless] (DOS only)
- Linked the EAGLE engine to the filtered GUI option and fixed
guassian interpolation which has been broken since version 1.71b.
[stainless, kode54] (DOS only/all ports)
- Cleaned up the 320x480x8b and 320x240x16b blitters and added
MMX support to 320x480x8b for a nice speed increase.
[stainless] (DOS only)
- Added 640x400 alternatives to 512x384 video modes for video
cards which don't have them. Added a small screen option to
the 512x384 and 640x400 video modes with MMX support. Also
added a "wide screen" option to 640x400 video modes.
[stainless] (DOS only)
- Added a full screen option to the 320x480 video modes, along
with a basic interpolation to 320x240x16b and 320x480x16b
Full screen in 320x480x16b has full/25%/50% scanlines and
interpolation has full scanlines.
[stainless] (DOS only)
- Added experimental 800x600 video modes. Fixed 'n' command-line
option to allow toggling of 25%/50% in addition to full, also
cleaned up the command-line options message and the config file.
Noticed some video modes were way off-centered, fixed that
too, should now be perfect.
[stainless] (DOS only)
- Fixed printing of MMX enabled message on the GUI background if
you checked MMX SUPPORT under CONFIG -> OPTIONS. Also, if you
check MMX SUPPORT by using the keyboard shortcut it will now
attempt to actually detect MMX before enabling it. :)
[stainless, pagefault] (DOS only)
- Command line support in windows port [StatMat]
- Fixed problem when some video modes were not being saved. (Windows
only) [pagefault]
- Lots of updates to Linux/SDL version, including sound fixes, video
code updates and other misc bugs. [theoddone33, Thorsten Glaser,
Wilbern Cobb]
- Fixed gamma in PNG snapshots. [pagefault]
- Added several new goodies to the GUI, which include a force
8-bit sound option (fixes a few cards under WinMe), a second
water effect, and an experimental smoke effect.
[stainless] (DOS only/all ports)
- Fixed problem with sound getting disabled when running command-line
network games. (Windows only) [pagefault]
- Updated video code in Windows port to properly display 239 line
modes. (Windows only) [pagefault]
- Commented, unified, and cleaned up the Mode-Q and Mode-X
blitters. I did a major overhaul to the DOS video code, I cleaned
up and reorganized it alot, and there seem to be no problems as of
yet. [stainless, TRAC] (DOS only)
- Fixed a bug in sprite priority rotation. (fix damage in FFMQ) [TRAC]
- Fixed long delay between battles and fixed flickering colours
on map in Front Mission. [pagefault]
- Fixed hang when picking up apples in Equinox. [pagefault]
- Fixed keyon bug in DSP code, fixes sounds in Flaskback 3
Language Edition (Thanks neviski) [_Demo_]
- Fixed "disco colours" in NBA Hangtime when the ball drops.
[pagefault]
- Fixed an NMI issue with register $4212, fixes hang in Cu-On-Pa,
Bubsy and others. [pagefault]
- Fixed a mode 4 bug in the new graphics engine that was causing
the title screen in The Lost Vikings to be scrambled. [pagefault]
- Added support for Super System arcade system, set DIP switches
in add-on's menu in GUI. Games MUST be zipped in order to load.
[pagefault]
- Added special support for Earthworm Jim 2 sound effects. [_Demo_]
- Added hack for Deaetonosama Apareitiban. [_Demo_]
- Fixed super scope position reading. [_Demo_]
- Modified a few timing things. [_Demo_]
- Fixed some 65816 instructions in processor emulation mode. [_Demo_]
- Added special timing for Grand Prix 3. [_Demo_]
- Modified sound decoding another time (helps various noise
sounds like DQ6). [_Demo_]
- Modified joypad reading for VS Collection. [_Demo_]
- Special modification for Bahamut Lagoon and Clay Fighter to
delay write to the hdma register. (those games need dma delay
implemented) [_Demo_]
- Lots of other minor fixes and things we forgot to mention.
v1.337 - This release is dedicated to zsKnight and his family
All ports
---------
- Added a customizable key to toggle display of the game clock
[pagefault]
- Added support for up to 100 SPC file saves per game [pagefault]
- Added customisable keys to increment and decrement the save state
slot [pagefault]
- Added a customisable key to quickly save an SPC file [pagefault]
- Added force NTSC/PAL and force HiROM/LoROM options to GUI
[pagefault]
- Added a customisable key to toggle the display of the FPS counter
[pagefault]
- Added keyboard shortcuts to video options menu [pagefault]
- Added feature to automatically increment save state slot after each
save [pagefault]
- Added new 8-point sound interpolation and two new lowpass filters
(requires a fast processor, 8pt interpolation and high quality
lowpass requires an MMX processor) [kode54]
- Fixed an annoying bug when the menu selection bar would be floating
in thin air (Thanks to EMu LoRd for pointing this out) [pagefault]
- Fixed MMX toggle option, now saved when you restart ZSNES
[pagefault]
- Fixed freeze/crash when saving SPC files [pagefault]
- Fixed filtered GUI option with 2xSaI enabled not refreshing the
screen [pagefault]
- Fixed graphics when reseting a game with 2xSaI engine on and the FPS
counter and/or game clock on [pagefault]
- Fixed Vortex, Clayfighter 2, Mr. Nutz, Tenchi Wo Kurau Sangokushi
Gunyuden and others now working again [_Demo_]
- Fixed Umi Hara Kawa Se and Tin Tin in Tibet [_Demo_]
- Fixed LoROM/HiROM detection code, Star Trek: Deep Space Nine and
possibly others now working [pagefault]
- Fixed Front Mission: Gun Hazard and Pocky and Rocky, now working
again [_Demo_]
- Fixed Neugier and Battle Grand Prix freezing after a certain point
in the game. [_Demo_]
- Fixed bug in rom header information and checksum status display,
fixes Tales of Phantasia and others [pagefault]
- Fixed Marko's Magical Football copy protection [pagefault]
- Fixed problem with Filtered GUI enabled and parts of game screen
would show up in GUI menus [pagefault]
- Fixed frameskip command-line offset [pagefault]
- Fixed Sim Earth, now loads but map is still not visible [_Demo_]
- Fixed crash in Home Alone when starting a new game [_Demo_]
- Fixed sprites in Super James Pond 2 and Kirby Avalanche (Thanks
Snes9X for the info) [_Demo_]
- Fixed 256x239 SNES resolution offset in Windows and Linux ports,
games that use this resolution should now be displayed properly in
these ports [_Demo_]
- Fixed freeze in Accelebrid after a few seconds of gameplay [_Demo_]
- Fixed cursor getting messed up in Windows and Linux ports when using
a 16-bit desktop [_Demo_]
- Fixed bugs when switching between fullscreen and windowed modes with
fullscreen button in Windows and Linux port [pagefault]
- Fixed Triple Buffering and vsync options so they can't be enabled at
the time (Triple buffering includes vsync automatically) [pagefault]
- Fixed sprite layer disappearing when changing screenshot formats or
moving the F1 menu [pagefault]
- Fixed a clipping offset bug in the new gfx engine [pagefault]
- Fixed BG3 issue with sub-screens in new graphics engine, fixes gfx
in Bahamut Lagoon's intro and lots of other games [pagefault]
- Fixed timing problem in Clock Tower that caused it to freeze
randomly in-game, implemented a hack for now [pagefault]
- Fixed Cu-On-Pa freezing when starting a new game (Thanks to Lordtech
for the help) [_Demo_]
- Optimised global code base, most people should see a performance
increase [pagefault, stainless]
- Moved vsync option from game options menu to video options
[pagefault]
- Improved S-DD1 decompressed pack loading and execution, increases
performance in S-DD1 decompressed pack games [pagefault]
- Lots of debugger fixes and additions [byuu, bongo]
- Removed disable screensaver text from DOS and Linux ports
[pagefault]
- Updated water effect code to using lighting effects
[stainless, kode54]
- Improved SPC700 sample processing, fixes sounds in numerous games
[_Demo_]
- Disabled H-DMA for Bahamut Lagoon and Mortal Kombat, fixes some gfx
problems [pagefault]
- Changed default keyboard layout for player 2 as some keys were
overlapping player 1 (Oops!), If you were having problems buying
things in FF4 or in other games make sure to change your keys for
player 2. [pagefault]
- Cleaned up config file in Windows and Linux ports, removed DOS
related comments [pagefault]
- MMX option now checks for a MMX processor when enabling it in the
GUI, also no longer crashes on processors without a cpuid when
detecting MMX [pagefault, kode54]
- Last netplay IP address used is now saved in Windows and Linux ports
[pagefault]
- Reorganized sound menu; removed sound interpolation checkbox and
made a new list of different types of interpolation: gaussian
(original interpolation with enable interpolation option), cubic
spline and 8-point interpolation. Also made a new list of lowpass
filters. [pagefault]
- Removed FPU copy from -? option on command line message, since it is
no longer supported. Also cleaned up that message in general
[stainless]
- FPS at program start option no longer enables FPS display when auto
framerate is not enabled [pagefault]
- Updated video interpolation code, now looks better than before
[kode54]
- Lots of misc GUI fixes and cosmetic tweaks [pagefault]
- (UPDATE) Added surround sound to Windows and Linux ports, updated
filter in DOS port (This was left out of the previous whatsnew
file) [kode54]
DOS v1.337
----------
- Added grayscale mode toggle to GUI [pagefault]
- Added support for 5 SNES gamepads on LPT1 [ZDrumm]
- Added two new 256 color linear VGA video modes, 256x224 and 256x240
[stainless]
- Added proper gamma correction, now ranges from 0 (1.0) to 15 (~2.0)
in 8bpp modes [stainless]
- Fixed Filtered GUI option, now works [pagefault]
- Fixed full scanlines disappearing in some modes [pagefault]
- Fixed a handful of bugs in the joystick code which may cause the
joystick not to work if it has a driver installed under Win9x
control panel [stainless]
- Fixed date problem in S-RTC games not reporting the proper day of
the week [stainless]
- Fixed issue with some sound blaster compatible cards not working
properly in the DOS port [kode54]
- Reordered video modes in alphabetical order [stainless]
- Improved SNES pad reading routine, any speed hit now should be
minimum when using a snespad adaptor [pagefault]
- Improved interpolation performance [stainless]
- Default keys for player 1 are now the same as Windows and Linux
ports [pagefault]
- You can now use / in command line options in addition to the
previous - character [stainless]
Win v1.06
---------
- Added option to toggle the trap mouse cursor feature which prevents
the mouse cursor from leaving the window by accident [pagefault]
- Added 640x480 DS WIN; 1024x768 DR FULL; 1280x960 S/DS WIN, S FULL;
1280x1024 DR/R/DS WIN and FULL resolutions [pagefault]
- Added a more meaningful message when changing to a resolution isn't
supported [pagefault]
- Fixed problem with SRAM not being saved when pressing ALT-F4 in game
[pagefault]
- Updated icon yet again, looks really nice. [enigMa]
- Fixed possible crash when exiting [pagefault]
- Fixed bug when scrolling in scrollboxes in the GUI would not trap
the mouse cursor inside the scrollbox like the DOS port does
[pagefault]
- Either alt key can now be used when using the alt-enter combination
to switch to fullscreen [pagefault]
- Removed triple buffering option from windowed video modes (it does
not work in windowed mode) [pagefault]
- Optimised some Windows port specific code, should give a small speed
boost for most people [pagefault]
- Rewrote mouse input code, much more efficient now. [pagefault]
- Reordered video modes in alphabetical order; removed 64x52 and
128x112 resolutions (Thanks to Terrorcide and McGuiver for helping
me test this out) [pagefault]
- Improved performance in 32bpp windowed modes [pagefault]
- Rewrote some of the audio code to be much more efficient, also added
MMX optimisations [pagefault, kode54]
- When switching to windowed mode from fullscreen, the window position
is now remembered [pagefault]
- Removed large sound buffer and exclusive mode option, they shouldn't
be needed anymore [pagefault]
- Now uses idle task priority when in GUI and window is not active,
should also smooth task swtiching on slower computers [pagefault]
- (UPDATE) Fixed server IP bug when using zbattle.net or command-line
options to connect [pagefault]
Linux v0.37
-----------
- Added autoconf support for easy compiling [Diablo-D3, amit,
theoddone33]
- Fixed sound buffering in linux port to improve sound on some cards
[Diablo-D3]
- Implemented S-RTC time functions, FEoEZ and other S-RTC games will
now report system time in game [pagefault]
- Now supports compiling with gcc 3.0.0 [EvilTypeGuy]
v1.31b
All ports
---------
- Fixed Super Punchout, now working [zsKnight, _Demo_]
- Fixed SD Gundam GNext again [_Demo_]
- Final Fantasy Mystic Quest now works again [zsKnight]
Win v1.04
---------
- Fixed grayscale toggle [pagefault]
- Updated icon again for black backgrounds [enigMa]
Linux v0.31
-----------
- Now compiles and runs on QNX6 systems [TheAlien]
v1.31
All ports
---------
- Fixed Mode 4 offset bug (Fixes Bust-A-Move, Puzzle Bobble
possibly others) [zsKnight]
- Emerald Dragon is now working [_Demo_]
- Fixed Last Bible 3 DMA problem (Thanks to SNES9x for the info)
[_Demo_]
- Fixed Super Robot Was Ex (Thanks again to SNES9x for the help
on this) [_Demo_]
- Moved disable SPC emulation option to sound menu where it should
be [pagefault]
- Fixed Wizardry 4 and Honkakuha Igo Gosei, interleaved
funny [_Demo_]
- SD Gundam GNext no longer crashes ZSNES, and actually is
playable now. [_Demo_]
- Spindizzy worlds should work again [_Demo_, zsKnight]
- Dezaemon sprites working now, had to clear OAM address when first
address byte is written to [zsKnight]
- Power Rangers the Movie working, was reading from register
2144 [_Demo_]
- King of Rally now working [_Demo_]
- Emerald Dragon working, added a hack to disable ENVx for
that game [_Demo_, zsKnight]
- Full Throttle Racing working, fixed a bug with the wai
65816 instruction [_Demo_, zsKnight]
- Renamed black and white mode to grayscale mode [pagefault]
- Got Traverse Starlight and Prairie to go further, but it
still freezes after several scenes [zsKnight]
- Mario RPG minecart Mode 2 scene working better now [zsKnight]
Win v1.03
---------
- Added disable screensaver feature to disable screen saver while
ZSNES is active [pagefault]
- Fixed yet another DirectInput slowdown [pagefault]
- Added joystick POV hat support (Thanks to kode54 for testing and
fixing my code) [pagefault, kode54]
- Added error messages and directions if DirectX 8.0 is not installed
[kode54]
- Fixed another Windows 2000 freeze on exit bug [pagefault]
- Fixed BSOD when loading roms on some systems [pagefault]
- Hopefully fixed a crash when multiple roms where in a single zip
file (only one rom can be loaded per zip file) [pagefault]
- Fixed a possible crash when loading/continuing a game (Thanks to
Metus for pointing this out) [pagefault]
Linux v0.29
-----------
- No changes
v1.30b
All ports
---------
- Support for Star Ocean S-DD1 decompressed pack is now
enabled. [zsKnight]
- Fixed bug in H-DMA code, fixes Hook and Bugs Bunny and maybe others
(Thanks to Gary of Snes9X for help on this) [_Demo_]
- Updated documentation [Matt Kendora]
- Fixed new gfx mode checkbox in options menu [pagefault]
Win v1.02
---------
- Added 800x600 DR FULL mode (scroll down to the bottom of the mode
list to see it)
- Fixed timing problem in games when 58 seconds was 1 minute in
ZSNES [kode54, pagefault]
- Fixed voices in ToP opening and Star Ocean [pagefault]
- Fixed another DirectInput slowdown [pagefault]
- Fixed joystick 5, it should be working now [pagefault]
- Optimised code some more, giving 3-5 FPS boost on most
systems [pagefault]
v1.30
All ports
---------
- Bubsy 2 working again [zsKnight]
- Batman: the return of the joker working now [_Demo_]
- Sound Novel T-Cool and Derby Stallion 96 memory mapper added [_Demo_]
- Fixed BRR block header bug (fixes Raiden Densetsu, Chrono Trigger,
Gundam Wing: Endless Duel, and a few other games) [_Demo_]
- Updated documentation [Matt Kendora]
- New whatsnew.txt format [pagefault]
Win v1.01
---------
- Updated icon [enigMa]
- Added 1280x960 DR, DR FULL modes to Windows port [pagefault]
- Fixed random crash when loading roms in Windows port [pagefault]
- Rewrote resolution switching code [pagefault]
- Window now moves much smoother and faster [pagefault]
- Readded large sound buffer option [pagefault]
- Fixed CPU usage when window was minimized [pagefault]
- Fixed multiple instances when window was minimized [pagefault]
Linux v0.29
-----------
- OpenGL support [hpsolo]
- Bilinear option (w/ filtered GUI) [hpsolo]
- Fixed video mode descriptions (zsnesl.cfg) [hpsolo]
- Resizable windows [amit]
- Filter options (scanlines, 2xSaI, etc) for OpenGL modes [zinx]
- Many more video modes for OpenGL, including full screen [hpsolo]
- Joystick POV hat support [hpsolo]
- Added support for 5th Joystick [hpsolo]
v1.29, Win v1.00
- Implemented triple buffering in full screen mode (Huge thanks to
whatabubba for his help on this and cleaning up the code)
[whatabubba, pagefault]
- Fixed top 8 lines being invisible of FFMQ [zsKnight]
- Optimised DirectDraw code some more giving a 10-15% speed increase
[pagefault]
- Fixed black screen when switching windows [pagefault]
- Improved loading and shutdown time [pagefault]
- Rock 'N Roll Racing is working again [zsKnight]
- Fixed Lennus 2's sprites [zsKnight]
- Almost figured out Wizardry 4's rom format. It seems like this game
was incorrectly dumped so everything in it is out of order. [zsKnight]
- Final Fight 2 is working again [zsKnight]
- Vsync option now works in triple buffering mode [pagefault]
- Now shows minimize window animation when minimizing [pagefault]
- Fixed mouse pointer under full screen mode [kode54]
- New ZSNES icon in Windows port (Thanks for all your entries) [enigMa]
v1.28b, Win v0.99
- Added a filtered GUI option to allow graphics engines such as 2xSaI
to be used in the GUI [zsKnight]
- Fixed SA-1 save states [zsKnight]
- Fixed Breath of Fire crashing bug when loading [theoddone33]
v1.28, Win v0.99
- Added option to allow multiple instances of ZSNES (off by default)
[pagefault]
- Fixed Lufia 2 sprite disappearing bug [zsKnight]
- Fixed quick menu crash problem when the entries other than the
first one is selected when the load menu is opened [zsKnight]
- Modified SPC700<->65816 timing again to get Hook working [zsKnight]
- Added more keyboard shortcuts to GUI [pagefault]
- Fixed vram read to get Smash Tennis working again [zsKnight]
- Hopefully fixed lockup when exiting Windows port [pagefault]
- Added a spc700 timing hack for Super Final Match Tennis until I
re-write the timing engine later (but not anytime soon though)
[zsKnight]
- Kinda got Rendering Ranger 2 to go further, but this game seems to
use some picky timing, so this will have to wait until I re-write
timing in the future. [zsKnight]
- Removed large sound buffer option since it wasn't really useful
[pagefault]
- Fixed 16bit access to address $001FFF (or equivalent). Fixes Super
Tetris 2+Bombliss. [zsKnight]
- Implemented 128KB sram support. Dezaemon runs now (but it
suffers graphics glitches at the moment) [zsKnight]
- Fixed Wordtris (reading from 002100) [zsKnight]
- Fixed reset function in William's Arcade Classics [zsKnight]
- Tuff-E-Nuff works now (another timing hack *sigh* )
- Added exclusive DirectSound mode option [pagefault]
- Fixed corrupt graphics in Rock'n Roll racing (reading from invalid
memory) [zsKnight]
- Added alternate timer for people having problems with zsnes running
too fast [bootgod,pagefault,zsKnight]
- Fixed corrupt graphics in Captain America (also reading from invalid
memory) [zsKnight]
- Implemented latest save state selection in Windows port [pagefault]
- Added v-sync to Windows port (enable in options to use it, should
fix most graphical tearing issues) [pagefault]
- Fixed mid-screen OAM updating. Uniracers works in 2 player mode.
[zsKnight]
- Combined the new header detection method with the old one, producing a
much better method [zsKnight]
- Added SA-1 read/write to BWRAM bitmap mode in the lower banks
[zsKnight]
- Fixed "freeze data" text [hpsolo]
- Fixed SA-1 write to BWRAM bitmap mode. It seems like this was the
main cause of the level-up screen not working in Mario RPG. [zsKnight]
- Fixed cpu usage when ZSNES is in the background doing nothing
[pagefault]
- Re-wrote character conversion 1 for 2bpp, implemented cc1 for 4bpp
[zsKnight]
- Fixed vertical high resolution mode for tile priority 1 [zsKnight]
- Fixed Terranigma overworld glitch in the new graphics engine 16bit
engine [zsKnight]
- Enabled RTC in Windows port [pagefault]
- Moved the Transparent Message option from the Options to the GUI
Optns section. [pagefault]
- Added Trainered rom support [zsKnight]
- Fixed BG4 graphics in certain games (fixes Digital Devil Story)
[zsKnight]
v1.26, Win v0.97
- OBC1 support broke in a recent CVS update. Fixed now. [zsKnight]
- Added full scanlines to the Win/Linux port [zsKnight]
- Added Mouse Wheel switch [zsKnight,pagefault]
- Fixed problem with interpolation/2xSaI/scanlines being saved
in the windows port [zsKnight]
- Improved 512 byte header support. This should improve compatibility
with some games [zsKnight]
- Added 768x672 and 1024x896 DR, R windowed video modes to Windows
port [pagefault]
- Windows port now uses the primary DirectSound buffer [pagefault]
- Modified 65816<->SPC700 timing. I hope this doesn't break
anything [zsKnight]
- Fixed a vram read behavior problem (fixed Equinox dungeons) [zsKnight]
v1.25, Win v0.93
- Fixed cheat menu text when game was not loaded [pagefault]
- Fixed unlabed checkbox in DOS port [pagefault]
- DSP1 - Fixed plane controls in Pilotwings [_Demo_]
- dosintrf.asm - Fixed header detection in the dos port [zsKnight]
- gui.asm - Video mode checking done at initialization [zsKnight]
- Enabled mouse wrap in the Windows and Linux ports [pagefault]
- Fixed full screen mode switch when the user starts ZSNESw before
selecting any full screen modes [zsKnight]
- Made default video mode 512x448 windowed in Windows port [pagefault]
- Prevented enter key from affecting gameplay on returning from
F1 and F3 menus [zsKnight]
- Added minimize button to the Windows port [pagefault]
- Added always on top option in GUI options menu [pagefault]
- Menu fix for 8bit graphics modes [zsKnight]
- ZSNESW now remembers the window position on your desktop (can be
disabled in GUI options) [pagefault]
- Fixed crashing problem with some IPS's in ZIP's [Teuf, zsKnight]
- Ported to DirectX 8.0 which fixed some problems and improved performance
(DirectX 8.0 is now required to run ZSNESW) [pagefault]
- DSP1 - Fixed map offset problem in Pilotwings [zsKnight]
- DSP1 - Fixed rings being mysteriously passed problem in Pilotwings [zsKnight]
- Fixed DirectSound crash when a normal priority buffer could not be
acquired [pagefault]
- Fixed DirectInput compatibility on some computers [pagefault]
- Optimized DSP1 code for better performance [teuf]
- Added proper full main/sub-screen window clipping in the new gfx 16bit
engine (fixed Illusion of Gaia/DKC2 selection screens, etc) [zsKnight]
- Added checksum/header name/chip type header display upon game load [zsKnight]
- Added PNG snapshot support which is selectable in the F1 menu [Matt Kendora]
- Stunt Race FX old graphics engine force fixed [zsKnight]
- Fixed MegamanX copy protection schemes [zsKnight, Matthew Kendora]
- Fixed TopGear 2 PAL version from detecting a PAL system [zsKnight]
- Implemented OBC1 chip (for Metal Combat) [zsKnight]
- Fixed Mode 7 bug in Super Ghouls and Ghosts [zsKnight]
- Added turbo keys for L & R keys [zsKnight]
- OBC1 emulation support. Metal Combat works! [zsKnight]
- You can now customizable the colors to the title bar and
window colors. [zsKnight]
- Optimised global code to provide up to a 50% speed increase on it on most
processors [pagefault]
- Added black and white mode to Windows and Linux ports [pagefault]
- ZSNESW is now packed with the newest version of UPX [pagefault]
- Cleaned up the cfg files for windows/linux ports [pagefault]
- Fixed command-line crash in the Windows port (Thanks Matt Kendora) [pagefault]
- Save/Load state now displays which state is being loaded [hpsolo]
- Added double buffering support to Linux port [teuf]
v1.20b, Win v0.88
- Final Fantasy Mystic Quest works again.
- Fixed Empire Strikes Back crashing bug in the millenium falcon
sequence (hopefully this will fix some other games too)
- Removed all self-modifying code in ZSNES. This will make ZSNES crash
a lot less on certain systems, especially during mode 7 sequences.
Thanks Ivar!
- Implemented S-RTC chip, using the system clock as the actual
time (The game will make you set the time though, but it will just
be replaced with the system time in-game). Thanks to John Weidman and
Dark Force for the info on this chip!
- Fixed crashing bug in certain mosaic scenes (eg. FF3 Phantom Forest)
in the new graphics engine
- Fixed a nasty crashing/corruption bug in the new graphics engine
(both 8bit and 16bit)
- SPC7110 emulation! This is based on the information reverse
engineered by the hard working folks at dejap translations,
Dark Force and John Weidman.
- Altered HiROM/LoROM detection a bit - Fievel goes West works now
- Open source preparations [teuf]
- In-game clock working for the windows port. [kode54]
- Fixed a memory leak problem in the new graphics engine [TRAC]
- Added Cubic Spline Interpolation [Anti Resonance]
- Fixed a assign/compare size bug in the new graphics engine [TRAC]
- Fixed b flag setting in BRK instruction in 6502 emulation mode
[zsKnight]
- Added SPC7110 logger file output to help in the filesize clipping of
the SPC7110 data files [zsKnight]
- Fixed a memory leak bug, fixing that nasty Win2K crash bug
[Matthew Kendora]
- Fixed key combination release [Maxim]
- Fixed source code warnings/added necessary includes [Maxim]
- Added high priority mode for Windows 2000 users and slower
computers (works on Windows 9x as well) [pagefault]
- Added large sound buffer option for people having DirectSound
problems. [pagefault]
- Fixed problem with ZSNESW and Opera causing a BSOD. [pagefault]
- Fixed up error reporting for people experiencing problems. [pagefault]
- Improved performance on 3dfx cards by compiling with DirectX 8
SDK. [pagefault]
- Fixed a sound problem with people with messed up config files.
[pagefault]
- Fixed FF3 flashing line problem [zsKnight]
- Fixed mysterious sprite disappearing bug in the new graphics engine
[zsKnight]
- Reduced noise in ToP opening theme. It works fine in the DOS port,
but the windows port still seems to produce some static, probably
because of the way how sound is updated in that port. [zsKnight]
- Updated Super 2xSaI and Super Eagle code (should be much faster
now on MMX processors) [Kreed, added by pagefault]
- Added gzip support [teuf]
- Added support for ViBRA16 cards [Peter Santing]
- No longer requires zlib.dll file, now statically linked. ZSNESw won't
crash anymore if you try to load a .zip file without that dll file.
[pagefault]
- Now compiled using an optimising compiler [pagefault]
- Almost a fully re-written DSP-1 emulation engine!
[zsKnight, theoddone33, pagefault, teuf]. Also thanks to CrASH_Man
for the 3x3 inverse matrix formula.
- Fixed memory leak problem in the windows port during exit [pagefault]
- And more ...
v1.17, Win v0.85
- Added slow-down key. You can configure it in Misc -> Game Keys
- Invulnerability bug of the 3rd boss in Demon's Crest in the
good checksum roms is fixed through rom mirroring
I also noticed that this fix is the same as what the author of
SNEeSe told me before about on some MegamanX1 roms, but I never had
that rom so I never added this until now. Guess that rom
is also fixed too.
- Changed memory initialization values - Lost Viking 2 works again
- 65816: Fixed WAI instruction timing with HIRQ's
Top Gear 2 - 2 player mode works now
- Improved IRQ re-execution timing precision
- Starfox 2 beta now runs with sound!
- Fixed flickering problem in Starfox 2 beta
- Added Mode 2 16x16 tile offset per tile mode
- (Win32) Improved the timestamps on UDP headers. This should
(hopefully) solve those out of sync (where both sides see different
things) problems with certain connections (ie. T1/LAN connections) in
netplay.
- (Win32) Added a big notice in netplay.txt. For all of you who used
netplay and had poor experiences with a ping time of less than
300ms, read it! Also added a more realistic system requirements
description for decent netplay in netplay.txt rather than a cpu
speed estimate.
- Changed reverse stereo method to become invisible to the sound
registers in emulation
v1.14, Win v0.80
- Fixed configuration files from removing spaces from directory names
- (DOS) Fixed 640x480 vesa2 scanline+interpolation display problem
- (Win32) Improved Windows speed in 32-bit windowed mode. Should
give around an 18% speed increase in FPS.
- (Win32) More netplay improvements. Shouldn't be as jumpy when
one side lacks input.
- (Win32) Starting netplay will now force the max frameskip to 3
if it is less than it and also force on auto frameskip.
- (Win32) MMX optimised netplay with back buffer enabled.
- (Win32) Fixed load state in netplay to load properly instead
of sometimes stalling for no reason
- (DOS) Accidently deleted the code to initialize IPX. Fixed now.
- Fixed a configuration loading problem when loading ZSNES from
a different directory.
- (Win32) Attempted to fix those out of sync problems (although
I don't know if it's fixed now since those problems rarely happen
to me)
- (Win32) Displayed the current filename in the load window
for those files with extra long names.
- (Win32) Added nickname support to NetPlay. There's a 9 character
nickname size limit.
- (Win32) Added actions to chat (similar to how mIRC works - use
/me <action> )
- (Win32) Nicknames can be changed in the windowed chat by typing
/nick <new nickname>
- Added a small buffer to the in-game chat to allow up to 5 chat
strings displayed at once.
- Local chat strings now appear in that buffer
- Thickened black borders on the 5x5 font
- Extended in-game chat length by around 30 characters
- Fixed up Interpolation
v1.12, Win v0.74
- (Win32) Hopefully fixed up those green display bugs in
scanlines/2xSaI in 1:5:5:5 16bit modes.
- (Win32) Improved lost packet recovery time and reduced the
number of lost packet stalls in UDP netplay (should produce
more fluid netplay)
- (Win32) Fixed up crashing bug in Tales of Phantasia with a 512
byte header
- Extended filename length of the Quick Menu
- (Win32) Hopefully fixed up the mouse wheel support for certain
mice
- Temp .ZIP directory is now cleared if it exists prior to another
.ZIP file being loaded.
- (Win32) Improved DirectInput error handling
v1.11, Win v0.72
- (Win32) ZSNESw won't crash anymore if you don't have a soundcard
or if DirectSound fails to initialize.
- (Win32) Fixed a nasty performance bug with certain types of
joystick/drivers installed, causing the FPS to be slower for
no reason.
- (Win32) Wrote an MMX optimised blitter for 16bit non-D windowed
and full screen modes.
- (Win32) Added simple wheel mouse support.
v1.10, Win v0.70
- Fixed games that turns on the x239 resolution (eg. Chrono Trigger
battles) when scanline mode is enabled
- (Win32) Fixed up crashing bugs on extra long filenames with
underscores
- (Win32) Hopefully fixed the odd colored interpolation in 1:5:5:5 16bit
color settings
- (Win32) Hopefully won't crash anymore when the temporary directory
exists prior to unzipping a .zip file
- (Win32) Fixed loading of .zip files with more than 2 '.'s in the
filename. Thanks to DCX for helping us troubleshoot this.
- (Win32) Fixed up short filename saveram/save states loading when
the long filename has spaces in it.
- Added TCP/IP Support. It is recommended that for playable netplay,
you'd have an average ping time of less than 300ms (type
ping <ip address> in dos) and that packet loss is minimal for TCP/IP
(not UDP). At the moment, you cannot have more than 2 connections
Thanks for all the testers for testing this, especially DooMStalK,
GreenImp, and TeleKawaru! Also added back buffer support. This
will sacrifice cpu power for netplay to make it much more playable.
WARNING: High cpu speed recommendations (~450mhz+).
Please see netplay.txt for details.
- Added save states to netplay (just use them like you normally do)
- Save Ram is now defaulted to load/save on the server's side
Save Ram are not supported in SA-1/SuperFX games due to their size,
but you can use save states instead in that case.
- Increased chat line length in the out-of-game chatbox by a lot
- Partly increased the chat line length in-game
- in-game chat text now stays longer on-screen by 2 seconds
- Added reset in netplay
- Fixed up movie recording feature
- (Win32) Mouse shouldn't get stuck on the left side anymore.
- (Win32) Video mode 3 (256x224FS) shouldn't crash anymore. Thanks
to kode54 for his assistance on the above 2 bugfixes.
- (Win32) Fixed the instability bug where the window can sometimes
start shaking for no reason and takes away windows resources.
- (Win32) Re-wrote keyboard character input routines
- Fixed up FF2(4)'s music in lower sampling rates
- (Win32) Coded in the UDP protocol as a replacement for TCP/IP.
Some network configurations won't work with UDP. However, it is
strongly recommended that you use UDP if you can because of the
speed increase. In order to disable UDP and use TCP/IP, both sides
must de-select UDP.
- (Win32) Added a small multiplayer game list (multi.txt)
- Added an updated Windows FAQ, courtesy of TuxedoMsk of VGNetwork
who updated it.
- Added a more user friendly input selection routine (changed Direct
Input to Keyb/Joystick and it also auto-sets keyb/Joystick when you
set a key)
- Hopefully fixed up the sprite priority problems (eg. FF2/4's
damage points)
- (Win32) Added rewind support for up to 8 levels (in 8 second
intervals) (NOTE: Windows Port only! - Sorry DOS Port users). In
order to activate this, assign a key to the Rewind Key in the
Misc -> GameKeys option.
Note: Netplay plays really nice as long as the net connection is not
unstable, both sides have a fast cpu (speed requirements depend
on the game), and at least have a 28.8 connection.
*** PLEASE READ ZSNESW.TXT IF YOU ARE STILL HAVING PROBLEMS WITH
THE WINDOWS PORT