Update to 0.3.1, nearly usable (thread syncing problems).

Changes since 0.1.5:

Version 0.3.1
====--

Note: NetPlay is incomplete and replays are semi-broken in this release.
Trying to use NetPlay in this will get you nothing!

This version is experimental, and I am releasing it for Christmas so that I
can worry about more important, such as (eventually) finishing NetPlay.

Miscellaneous changes:
  Input 'Start' and 'Select' buttons configuration reversed fix.
  Increased chat message buffer size from 4 to 10 lines.

Build system & code changes:
  Added CPU_TYPE and CPU_ARCH and improved some behavior.
  Separated blitters into individual header files.

GUI changes:
  Added numbers to the items in Video > Blitter menu.
  Overhauled dithering functions.

Video output changes:
  (Super) 2xSCL crash in high resolutions fix.
  Added 32-bit support.
  Added color indexing for all non-32-bit modes.
  Made all blitters work in any supported color depth.
  Renamed interpolated blitter to interpolated 2x.
  Added interpolated 3x blitter.


Version 0.3.0
====--

This release is dedicated to those who fell in the 9/11 attacks.

Note: NetPlay is incomplete and replays are semi-broken in this release.
Trying to use NetPlay in this will get you nothing!

Mac OS X is officially supported by this release, in addition to Windows
9x/NT/Me/2k/XP, 32-bit DOS, Linux, FreeBSD, QNX, and BeOS.

Miscellaneous changes:
  Infamous ROM load memory protection crash bug fix.
  Overhauled CPU emulation core.
  Added x86 assembly optimized CPU core components.
  Fixed branch wrap detection bug.
  Added CRC calculation for PRG ROM, CHR ROM, and ROM trainers.
  Added support for CPU memory space patching (raw or Game Genie w/ GUI).
  Added slow (half FPS) mode.
  Corrected mirroring of uneven size ROMs.
  Added save state support (may not work for all supported games).
  Added automatic machine state saving accurate up to every frame.
  Added support for replays (currently buggy).
  Altered memory map for performance.
  Added exit confirmation when ROM loaded.
  Significant improvements to the timing system.

Configuration changes:
  Added configurable save state and Save RAM (SRAM) output path.
  Configuration file and log file are now stored with the executable.
  Changed Win32 configuration file to 'fakenesw.cfg'
  Fixed several input configuration bugs.

Build system & code changes:
  Updated and added copyright messages.
  USE_CONSOLE changed to ALLEGRO_USE_CONSOLE to solve compilation problems (Mac OS X).
  Encapsulated datafile 'fakenes.dat' into build.
  Replaced all references to `NULL' with `NIL' to avoid compiler conflicts.
  Added object file suffixes to the build system (all platforms).
  Changed binary installation location from '/usr/bin' to /'usr/local/bin' (POSIX)
  Allegro compatibility fixes.
  Cleaned-up, overhauled, and optimized most GUI-related code.
  Added code to prevent registering conflicting digital directions in input.
  Added ability to use `usleep' instead of `yield_timeslice' in speed throttling.

GUI changes:
  Repaired all key mappings.
  Various GUI dialog enhancements and fixes.
  Added GUI patch manager with Game Genie support only.
  Added platform-specific video driver selection menus.
  Added multiple message system and input chat capabilities.
  Added input configuration dialog.
  Fixed various bugs related to repeated initialization of the GUI.
  Added GUI messages (log file) viewer.
  Added GUI toggle for the 'swap_channels' configuration file setting.
  Added GUI audio mixing speed selection menu.
  Added fast (passive) automatic blitter selection.
  Fixed default palette not being selected at startup.
  Improved operation of Video > Palette menu items.

Video output changes:
  Added 15- and 16-bit color depth support.
  Added 25% and 50% scanlines (currently very slow).
  Added several new resolutions, including 512x480 (for windowed mode).
  Added Super 2xSOE and Super 2xSCL anti-aliasing blitters.
  Added simple interpolated blitter.
  Fixed behavior of the 'last_blit_line' configuration file setting.
  Added keys to adjust light (palette intensity) from inside the emulation.

PPU rendering changes:
  Minor optimizations to background rendering.

Memory mapper support changes:
  Cleaned up and extended IRQ interface.
  Improved IRQ support in MMC3, MMC5, and Bandai mappers.
  Fixed MMC5 IRQ generation (greatly improves many games).
  Added MMC5 WRAM automatic size detection.
  Minor corrections of MMC3 behavior when no CHR-ROM is present.

Audio rendering & output changes:
  Changed default sampling rate to 96 kHz and buffer length to 6.


Version 0.2.0
====--

Miscellaneous changes:
  Added fast zero-page memory access to CPU emulation.
  Eliminated some obsolete return values in CPU emulation.
  Changed the CPU execution dispatcher to be inline to the main execution loop.
  Fixed a serious bug in address wrapping of ROMs that weren't an even power of 2.
  Fixed a bug which caused executed-frames counter to only count unrendered frames.
  Improved POSIX base support and the autoconf-based build system.
  Implemented loading of ROMs from ZIP files, must be the first file.
  Fixed a serious bug in video mode initialization.

Video output changes:
  Added the ability to specify blit region, to hide vertical scrolling.
  Added a toggle to the Options > Video menu in the GUI for 'force_window'.
  Added 2xSCL blitter (similar to 2xSOE, only better and slower).
  Improved the overall performance of basic blitting routines.

PPU rendering changes:
  Moved checks for sprites/background enabled outside of drawing loops.
  Altered cache-preloading in display rendering.

Memory mapper support changes:
  Fixed a serious addressing bug in Bandai mapper.
  Fixed a serious IRQ timing structure bug in Bandai mapper.
  Added FFE F3 series (iNES mapper 8) support.
  Added Konami VRC6 and VRC6V (iNES mappers 24 and 26) support.
  Added preliminary MMC5 (iNES mapper 5) support.
  Implemented partial ExSound support for both VRC6 and MMC5 mappers.

Audio rendering & output changes:
  Fixed initialization accepting a null driver, causing the emulator to freeze.
  Added random noise addition dithering for low quality output.
This commit is contained in:
Thomas Klausner 2004-07-19 19:17:08 +00:00
parent d5ca2b6a46
commit 25f4d27953
5 changed files with 91 additions and 99 deletions

View file

@ -1,18 +1,30 @@
# $NetBSD: Makefile,v 1.4 2004/04/05 13:30:19 thomasklausner Exp $
# $NetBSD: Makefile,v 1.5 2004/07/19 19:17:08 thomasklausner Exp $
#
DISTNAME= fakenes-0.1.5
DISTNAME= fakenes-0.3.1
CATEGORIES= emulators
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=fakenes/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= snj@pobox.com
HOMEPAGE= http://fakenes.sf.net/
COMMENT= NES emulator using the allegro library
HOMEPAGE= http://fakenes.sourceforge.net/
COMMENT= Portable Open Source NES emulator
USE_BUILDLINK3= YES
GNU_CONFIGURE= YES
BUILD_DEPENDS+= nasm>=0.98:../../devel/nasm
CPPFLAGS+= -DPREFIX=\"\\\"${PREFIX}\\\"\"
USE_BUILDLINK3= yes
USE_PKGLOCALEDIR= yes
USE_GNU_TOOLS+= make
GNU_CONFIGURE= yes
# disable netplay support: needs nl.h
CONFIGURE_ARGS+= --without-hawknl
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/src/fakenes ${PREFIX}/bin
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/fakenes
${INSTALL_DATA} ${WRKSRC}/LICENSE ${PREFIX}/share/doc/fakenes
${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/fakenes
.include "../../devel/allegro/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"

View file

@ -1,4 +1,5 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2003/11/27 22:54:50 blef Exp $
@comment $NetBSD: PLIST,v 1.2 2004/07/19 19:17:08 thomasklausner Exp $
bin/fakenes
share/fakenes/fakenes.dat
@dirrm share/fakenes
share/doc/fakenes/LICENSE
share/doc/fakenes/README
@dirrm share/doc/fakenes

View file

@ -1,6 +1,6 @@
$NetBSD: distinfo,v 1.1.1.1 2003/11/27 22:54:50 blef Exp $
$NetBSD: distinfo,v 1.2 2004/07/19 19:17:08 thomasklausner Exp $
SHA1 (fakenes-0.1.5.tar.bz2) = e3383c9dab5c583e7369ad67b9a237a227939625
Size (fakenes-0.1.5.tar.bz2) = 94978 bytes
SHA1 (patch-aa) = 45d34f5fcd992009fa22adb500bd7f4c4d9124b7
SHA1 (patch-ab) = fa9b45c35fb889faaf1054c42e14b5b67aea5be6
SHA1 (fakenes-0.3.1.tar.bz2) = d4a06e343aaa238c829de8374dd0ade380940c50
Size (fakenes-0.3.1.tar.bz2) = 160899 bytes
SHA1 (patch-aa) = 2f1c9d51a69f6fc017ac7db6f5494ad2e3b6c8fa
SHA1 (patch-ab) = ab3e7de6afa91ca9c36e4d62e18ddf64c4393531

View file

@ -1,23 +1,51 @@
$NetBSD: patch-aa,v 1.1.1.1 2003/11/27 22:54:50 blef Exp $
$NetBSD: patch-aa,v 1.2 2004/07/19 19:17:08 thomasklausner Exp $
--- src/Makefile.in.orig 2002-05-03 23:33:02.000000000 -0700
+++ src/Makefile.in 2003-11-27 06:46:15.000000000 -0800
@@ -39,15 +39,9 @@
install : ${BINARY} ${DATAFILE}
-
- ${MKDIR} ${HOME}/bin
-
- ${MKDIR} ${HOME}/.fakenes
-
-
- ${INSTALL} -m 0755 ${BINARY} ${HOME}/bin
-
- ${INSTALL} -m 0644 ${DATAFILE} ${HOME}/.fakenes
+ ${BSD_INSTALL_PROGRAM} ${BINARY} ${PREFIX}/bin
+ ${BSD_INSTALL_DATA_DIR} ${PREFIX}/share/fakenes
+ ${BSD_INSTALL_DATA} ${DATAFILE} ${PREFIX}/share/fakenes
.SUFFIXES : .c
--- src/include/config.h.in.orig 2002-10-29 23:32:39.000000000 +0100
+++ src/include/config.h.in
@@ -1,23 +1,23 @@
-
-
-#ifndef CONFIG_H_INCLUDED
-
-#define CONFIG_H_INCLUDED
-
-
-/* The number of bytes in a short int. */
-
-#undef SIZEOF_SHORT_INT
-
-
-/* The number of bytes in a int. */
-
-#undef SIZEOF_INT
-
-
-/* The number of bytes in a long int. */
-
-#undef SIZEOF_LONG_INT
-
-
-#endif /* ! CONFIG_H_INCLUDED */
+
+
+#ifndef CONFIG_H_INCLUDED
+
+#define CONFIG_H_INCLUDED
+
+
+/* The number of bytes in a short int. */
+
+#undef SIZEOF_SHORT_INT
+
+
+/* The number of bytes in a int. */
+
+#undef SIZEOF_INT
+
+
+/* The number of bytes in a long int. */
+
+#undef SIZEOF_LONG_INT
+
+
+#endif /* ! CONFIG_H_INCLUDED */

View file

@ -1,64 +1,15 @@
$NetBSD: patch-ab,v 1.1.1.1 2003/11/27 22:54:50 blef Exp $
$NetBSD: patch-ab,v 1.2 2004/07/19 19:17:08 thomasklausner Exp $
--- src/main.c.orig 2003-11-27 06:30:31.000000000 -0800
+++ src/main.c 2003-11-27 06:39:41.000000000 -0800
@@ -101,7 +101,7 @@
UINT8 * confdir = NULL;
-UINT8 * datfile = NULL;
+UINT8 * datfile = PREFIX "/share/fakenes/fakenes.dat";
static DIR * tmpdir = NULL;
@@ -414,49 +414,7 @@
#ifdef POSIX
- if (confdir)
- {
- const UINT8 datfile_base [] = "/fakenes.dat";
-
-
- datfile = malloc (strlen (confdir) + sizeof (datfile_base));
-
- if (! datfile)
- {
- fprintf (stderr, "Error when generating datafile path, trying cwd.\n");
-
-
- datfile = "fakenes.dat";
-
- data = load_datafile ("fakenes.dat");
- }
- else
- {
- strcpy (datfile, confdir);
-
- strcat (datfile, datfile_base);
-
-
- data = load_datafile (datfile);
-
-
- if (! data)
- {
- fprintf (stderr, "Datafile not found in configuration path, trying cwd.\n");
-
-
- datfile = "fakenes.dat";
-
- data = load_datafile (datfile);
- }
- }
- }
- else /* confdir unset, try cwd. */
- {
- datfile = "fakenes.dat";
-
- data = load_datafile (datfile);
- }
+ data = load_datafile (datfile);
#else
--- src/support/unzip.h.orig 2002-07-18 20:12:09.000000000 +0200
+++ src/support/unzip.h
@@ -57,6 +57,10 @@ extern "C" {
#include "zlib.h"
#endif
+#ifndef OF
+#define OF(a) a
+#endif
+
#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
/* like the STRICT of WIN32, we define a pointer that cannot be converted
from (void*) without cast */