Commit graph

9 commits

Author SHA1 Message Date
wiz
a29263fbe8 Update to 0.8.D.2 (0.8.13.2 in pkgsrc terms):
0.8.D.2:
	NES: Fixed a crash on certain x86_64 platforms(Mac OS X),
	due to the sound filtering code dereferencing 32-bit
	registers instead of 64-bit registers as it should have.

0.8.D.1:
	Fixed a compilation error on gcc 4.5(thanks to hanno for
	pointing it out).

0.8.D:
	SMS:  Some state that wasn't being saved in save states
	now is, which should fix netplay desynch problems with
	SMS/GG games.

	Fixed a couple of remotely-exploitable(if connected to a
	malicious server) stack manipulation bugs in the network
	play code.

	Fixed an incorrect object creation bug in pce/adpcm.cpp.

	NES:  Added a missing CPU emulator variable to save states.

	PCE:  Added a missing CPU emulator variable to save states.

0.8.D-rc1:
	Lynx:  Fixed a bug in the cart loader code that would cause
	a crash if the ROM bank size was larger than the actual
	data available in the file(as is the case with some homebrew
	programs).  Thanks to "Wookie" for the patch.

	Build files were regenerated using autoconf 2.64 and aclocal
	1.11(previously, they were generated with autoconf 2.61
	and aclocal 1.10.1).

	Fixed a crashing problem when entering an invalid menu
	choice("0") in the cheat interface.  Thanks to tsenart for
	reporting the bug.

	GB:  The GameBoy module now respects the "filesys.disablesavegz"
	setting in respect to saved battery-backed RAM.

	Added support for "lurkers" on the network play server.
	Previous versions of Mednafen don't lack support for this
	per se, but there would be cosmetic issues with status
	messages printed to the internal console.

	SexyAL:  Fixed a bug affecting the return value from
	RawCanWrite() in the ALSA driver.  The returned value was
	typically too small by a factor of 4.  The effects of this
	bug included potential long periods of garbled sound during
	netplay.

	Fixed the return value from RawCanWrite() in the JACK
	driver.  It was being clamped to a value that was too small
	by a factor of 4; however, the clamp value was already
	excessively large in a way that this bug would should have
	only been triggered if the "soundbufsize" setting was
	excessively large.  The effects of this bug would be similar
	to the ALSA RawCanWrite() bug.

	The ALSA and OSS drivers will now try to set audio output
	to 2 channels if the source data only has 1 channel, and
	16-bit signed if the source data is 8-bit(automatic conversion
	is done).  This is done to allow for lower period/fragment
	sizes, as, in ALSA's internals at least, the minimum period
	sizes are expressed in bytes, not sound frames.

	The ALSA and OSS drivers will now try to set lower
	period/fragment sizes than previous versions of Mednafen
	did.  With default settings, for ALSA, the new period/fragment
	size is 50% of what it was before, and for OSS, 25%.  Also,
	there's a new setting to override the SexyAL's driver's
	preferred period/fragment sizes, named "sound.period_time"(default
	value of 0: no override).  The period/fragment size is
	expressed in microseconds.  If the new, lower fragment
	sizes cause problems, the setting can be changed to "2666"
	to approximate the fragment size selection in previous
	versions of Mednafen when using ALSA output, and "5333"
	when using OSS output.

	Added a workaround to the OSS driver for a bug in ALSA(and
	hence, ALSA's in-kernel OSS emulation) that could cause
	the emulator to run far too fast for a short period of time
	if a buffer underflow occurred.

	The ALSA's driver's RawCanWrite() method now(finally) uses
	snd_pcm_avail_update() instead of snd_pcm_delay().  This
	should improve performance and frameskipping behavior when
	the ALSA output is not routed directly to a physical device,
	such as the case with PulseAudio(though PulseAudio is still
	not recommended :b).  CVS:
----------------------------------------------------------------------
2010-08-15 15:10:50 +00:00
wiz
cec5f47c61 Update to 0.8.C/0.8.12:
0.8.C:

	SMS:  Fixed the input and reset emulation when the territory was
	set to "domestic"(Japan) and FM emulation was enabled; the emulated system was erroneously
	being treated as a Game Gear in a few places when those conditions were met.

	GB:  Fixed initialization of "HRAM" on virtual power toggle/reset.

	GB:  Fixed a bug(still many left) in the external RAM handling code, fixing an
	emulator crash with "Wizards & Warriors - Chapter X".

0.8.C-rc1:

	NGP: Fixed an unaligned memory access bug in the memory r/w handlers, causing crashes on platforms
	that do not support unaligned memory accesses.

	NES: Fixed an intialization bug in mapper 193.

	Added define "ALWAYS_INLINE" to force the compiler to always inline speed-critical functions, and added it to
	many emulation functions in that category.  gcc can be a pain in the butt.

	GBA:  Fixed a bug that would cause data corruption and the loaded game to crash whenever a state was
	saved(but the state itself, and loading it, was fine) on a big-endian platform.

	Fixed several instances of mismatches between format strings and passed argument types, which could cause
	nonsensical information to be printed on big-endian platforms, and perhaps some little-endian platforms as well.

	Fixed the minimum field-width specifier on the statements that print the loaded game's CRC32 in several
	places.

	Added the "format(...)" function attribute to the MDFN_DispMessage(), MDFN_PrintError(), and MDFN_printf()
	function prototypes to catch format string errors.

	Fixed the order of the sound drivers in the documentation(it was erroneously implying that OSS had a higher
	priority than ALSA for the default sound driver), and added various notes to explain the sound drivers.

	If an invalid "sounddriver" is selected, Mednafen will now print an error message and not initialize sound
	instead of silently selecting the default sound driver.

	SexyAL: Altered the argument order of SexiALI_Convert() to make more sense.

		Fixed the broken conversion code used when the frame count passed to Write() is greater than 2048.

		Fixed a bug/design flaw in the SexyAL SDL sound driver that can cause a crash during program
		deinitialization.

		Added support for "float" output format to the ALSA driver.

		The ALSA driver will now try all formats that SexyAL's conversion code supports if the desired
		format is not supported by the output device, rather that simply erroring out as before.

		Added support for converting to 24-bit and 32-bit PCM output formats from the source format(which
		is still fixed to signed 16-bit).

		The driver function RawCanWrite() is now passed a pointer to a uint32_t, which it sets to the number
		of bytes that can be written without blocking, rather than returning the value directly, so that
		the return value can be used as a success/failure indicator.

		The driver function RawWrite(), and the "user" function Write(), will now return 1 on success, 0 on
		(fatal) error, rather than returning the amount of data written.

		The OSS driver was testing the return value of open() incorrectly.  Fixed.

		SexyAL is now compiled as C++(but doesn't use many C++ features yet), which necessitated
		adding several explicit casts in various code, and fixing some inconsistent function prototypes and
		declarations.

                JACK: Fixed a stereo playback crashing problem(a loop count was being calculated incorrectly).

                JACK: Switched to using jack_client_open() instead of the deprecated jack_client_new().

                JACK: The "sounddevice" setting is now used, to specify the JACK server to connect to.

                JACK: Fixed a possible race condition in RawCanWrite().

		JACK, SDL: Changed the inter-thread ringbuffer setup to be less likely to underrun, while not hurting
		latency.

		JACK, SDL: Additional playback position precision is now obtained by using
		jack_get_time()/SDL_GetTicks().  This will improve Mednafen's performance with larger fragment sizes
		with these drivers, but smaller fragment sizes are still preferred for latency-to-underrun-occurrence-ratio
		reasons.

		Renamed the "byteorder" field of SexyAL_format to "revbyteorder", and changed it to a boolean type,
		to avoid confusion over what it actually represents.

	Removed erroneous dependency on CD-ROM emulation when WonderSwan emulation is enabled in the configure script.

        Added sanity checks to the first track number and total track count returned from libcdio, to prevent
        a crash in Mednafen if the libcdio driver fails and returns nonsensical values.

	Removed unused file sms/state.h

	Fixed a very-old bug that caused joystick unique ID collisions if more than 2 of the same "type" of physical
	joystick were available.

        Fixed a string constant-to-(char *) problem in sms/romdb.h.

	Mednafen is now compiled with -fsigned-char, to prevent any potential problems on systems with an "unsigned" char
	type as default.

	The included Tremor is now compiled with "-fvisibility=hidden" to work around a dynamic symbol collision
	problem with libsndfile(BUT, -fvisibility is only available in gcc 4.0 and newer).
	This solution may not be correct...

	Updated Tremor to the latest SVN version.

	PC-FX:  Added a semi-hack to fix a missing background layer problem in parts of "Angelique Special".  The
	underlying problem(no emulation of the programmable BG0 subscreen) will be corrected in 0.9.0.

	PC-FX:  Removed the unused V810 cache structures(Mednafen 0.9.0 will feature cache emulation, however).

	PC-FX:  Added a few CPU variables to save states whose absence could have caused netplay/movie desynch.

	PCE:  Fixed virtual power-toggle initialization of VCE and gamepad input variables.

        PCE, PC-FX:  Fixed the emulation of SCSI command 0xDE, mode 0x1.  The value returned was too small by
        2 seconds.

        PCE, PC-FX:  Fixed the sector count for the last track(which influences the leadout track start position/total
        sector count) in multi-track CUE/BIN CDROM images.

        PC-FX:  Fixed the handler address called when a TRAP instruction is executed.

	PC-FX:  Fixed the exception code set when an FPU divide-by-zero occurs(previously, it was being set to the
	integer divide-by-zero exception code).

	Fixed several problems in file.cpp, including buggy and overly-complicated MDFN_read*le() functions,
	and a problem with the const-ness of the return value of strrchr() with gcc 4.4.
2009-10-31 01:56:36 +00:00
wiz
ff32929020 Update to 0.8.B, and set PKGVERSION to 0.8.11 to avoid confusion.
0.8.B:

Fixed the rectangle calculation for screen rotation with Lynx and
WonderSwan to use X scale and Y scale values appropriately (they
were reversed before; also, assuming square pixels on your monitor
;)).  Rotation still poses a problem in fullscreen with the default
settings, however.

Fixed an off-by-one error in the software SDL graphics rotation
code (used for Lynx and WonderSwan).

Fixed a race condition that could cause rapid oscillation between
fullscreen and windowed when trying to toggle it.
...and fixed a race condition that could cause oscillations when
rotating the screen with Lynx and WonderSwan emulation.

SexyAL:  The return values of ALSA functions are now treated as
errors only if they're less than 0, rather than non-zero as before.
Thanks to R.L. for pointing this out.

The default "nethost" setting is now "fobby.net" instead of
"mednafen.com".  The latter was allowed to expire and lost to domain
squatters some time ago.  Domain squatters cause desires to commit
grievous face-stabbing.  However, the netplay server on "fobby.net"
is not guaranteed to be up. :p

PCE:  Added the ability to load a custom colormap(palette) by
setting "pce.colormap" to the path of the colormap file.  The
colormap consists of either 512 or 1024 RGB triplets, 8-bits per
color component, in the order R,G,B,R,G,B,R,G,B,... .  It is
recommended that the colormap provide all 1024 entries(the first
512 entries are for normal mode, the second 512 entries are for
grayscale/strip-colorburst mode). If it doesn't, Mednafen will
calculate the grayscale colors using a formula similar to that used
with the real VCE, but with more precision.  The colormap may be
disabled by setting the "pce.colormap" setting to an empty string,
or 0.  Command-line examples:

mednafen -pce.colormap /path/to/blueblue.cmap /yarr/pirate/booty.pce [Enable]

mednafen -pce.colormap 0 /some/where/over/the/rainbow/islands.cue [Disable]

PCE:  Added a hack to fix games that try to write to VRAM while
VRAM DMA is in progress (fixes graphical glitches in "Crest of Wolf",
maybe others too?).  This could potentially cause regressions, so
please post any on the forum.

PCE: Having "pce.forcesgx" set to 1 with non-SuperGrafx games will
no longer cause problems with display timing(and positioning).
However, this doesn't fix the underlying issue, and any demos that
set the horizontal and vertical timing registers differently on
each VDC won't operate as they would on a real SuperGrafx.  (This
could affect commercial SuperGrafx games, but AFAIK they keep the
VDC timings the same).  NOTE: Setting "pce.forcesgx" to 1 is still
not recommended, the preferred way of forcing a game/demo to enable
SuperGrafx emulation is by giving it a file extension of "sgx".

PCE: Arcade Card RAM is now initialized to 0 on allocation(it was
erroneously being left uninitialized before).

PCE: Added Arcade Card RAM to the memory editor in the debugger.

PCE: Fixed the BRAM initialization (it was wrong, and generated from
when Mednafen erroneously emulated 8KiB of BRAM).  Fixes lockups
in "Sorcerian".  Note that if you have any existing save states or
battery-backed RAM files for "Sorcerian" in "sav" or "mcs" under
Mednafen's base directory from when you attempted to run "Sorcerian",
you will need to delete them for this fix to have any effect.

PCE: Reduced the mirroring address space range of the Arcade Card
register mapping in HuC6280 banks 0x40-0x43.  It was mirrored
throughout 0x40-0x4F, now it's only mirrored at 0x40-0x47.  It may
not be mirrored at all with a real Arcade Card, tests need to be
performed!
Fixes a crashing bug in "Linda Cubed" early into gameplay.

WonderSwan: Fixed a bug that made it impossible to push a direction
on one D-pad while the opposing direction was being pressed on the
other D-pad.
2009-02-25 13:16:47 +00:00
wiz
8e0985f22e Update to 0.8.A:
0.8.A:
	NES:  Cleaned up the iNES loading code a bit, and added
	support for WRAM on a few mappers that nominally shouldn't
	have WRAM, enabled if the battery-backed bit is set in the
	iNES header.  Fixes "Family BASIC", and probably
	a few bootleg games as well.

	NES:  Added partially-broken support for mapper 163.

	NES:  Added support for mapper 241.

	Fixed string constant-to-(char *) problems in drivers/cheat.cpp

	Added setting "osd.state_display_time", to control the
	length of time, in milliseconds, the save state/movie
	screen is displayed after selecting a save state or movie.

	The most recently-saved save state slot will now be colored
	differently when selecting a save state slot.
	Increased the brightness of non-empty save state slots.
	Empty save state slots are now black instead of being
	partially transparent.

	PC-FX:  Fixed bugs in "Play Audio Track Index" and "Read
	Subchannel" MMC commands, fixing the totally broken
	cinematic sequences in "Boundary Gate".  There may still
	be bugs in these commands that don't cause any known
	problems with games, so I will need to run tests on a real
	system.

	GBA: An error loading the custom colormap file is now
	treated as fatal.

	Win32:  The German and Russian translation files are now
	included in the Win32 precompiled binary distribution
	ZIP file.  Note that Mednafen always assumes the locale to
	be UTF-8, so the stdio.txt file will need to be
	opened with a viewer that can handle UTF-8(though filenames
	with non-7-bit-ASCII components will appear fubar).
	(I am aware that assuming the locale's character encoding
	to always be UTF-8 is a design flaw with
	various insidious consequences when the encoding is not
	UTF-8).

	Updated the Russian translation with the translation done
	by rubicon.

	Added configure script option "--enable-altivec/--disable-altivec
	(default: enabled)" for compiling on
	PowerPC architectures where AltiVec is not supported, or
	causes problems.  This configure script option is
	untested, however.

	Input for the virtual device on virtual port N will be
	disabled when the buttons on the virtual device on virtual
	port N are being configured.  The last button pressed when
	in button configuration may still be taken as
	virtual device input, however(a fix for this would be too
	invasive, and so will be done in the 0.9.x unstable
	tree).

	PCE:  Added several missing input-related state variables
	to save states, fixing several netplay/movie
	desynchronization issues under certain situations.

	Fixed a bug when creating an SDL source surface, whose
	negative effects(clipping rightmost columns) could be
	triggered when the "sdl" vdriver setting was used with
	certain xscale and yscale settings that would
	cause a 1:1 pixel copy operation.

	PC-FX:  Improved PSG LFO emulation again(Tyoushin Heiki
	Zeroigar uses it for some sound effects, other
	games likely use it as well in similar roles).

	PCE:  Improved PSG LFO emulation again(Hanii in the Sky,
	Juuouki, and Flash Hiders use LFO).

	PCE: Altered the Street Fighter 2 autodetection code to be
	data-agnostic.  The SF2 mapper will now be enabled for
	any ROM images 2MiB and over in size.

	Fixed a call to putenv(), to pass a static character array
	initialized to a string constant instead of a string
	constant directly.

	Fixed a few argument descriptions(invoked with the -help
	command-line switch) that weren't properly gettextized.

	Debugger:  Fixed a bug in the trace log code.  It would
	cause the emulator to lock up if the user pressed
        Enter/Return in the prompt popup without any text in the input field.

	SMS:  Removed the old unused Z80 emulator code from when
	SMS Plus was assimilated.
2009-01-04 21:59:44 +00:00
wiz
e10651a4a2 Update to 0.8.9:
0.8.9:

Updated the included gettext library to 0.17 to fix a MinGW build
issue.

GB:  Corrected a lack of address masking in most of the cart RAM
emulation code.  Fixes a few Chinese GameBoy Color games.

NES: (Re?)-added support for mapper 240(it was erroneously listed
in the documentation as being supported...).

GBA:  Fixed a buffer overflow in the ROM image loading code.

PC-FX:  Several variables related to subchannel reading weren't
being saved in save states.  Fixed.  (This fixes save states made
within the BIOS' CD-DA player)

PCE:  Altered how the ADPCM read and write addresses are set.
Fixes the Super CD version of "Tengai Makyou Ziria", and "CD Mahjong
Bishoujo Chuushinha".  Thanks to Exophase and ChrlyMac for the
tips.  ***(This change may potentially cause regressions.  If it
does, please report them at http://forum.fobby.net )***

PC-FX:  Fixed a few deprecated const string to char* conversions
in v810_cpuD.cpp.

PCE:  Fixed a bug with Arcade Card emulation with a tip from
Exophase.  The ADPCM sound effects in Garou Densetsu II work
correctly now.

PCE:  Reads from the timer count register the cycle it is set to
reload after expiring will now return 0x7F.  Fixes "Battle Royale".
2008-06-21 18:38:00 +00:00
wiz
aa8dd29950 Update to 0.8.8:
0.8.8:

        Added <string.h> to the global include list in mednafen.h.

        Added boolean setting "debugger.autostepmode" that, when set to 1, will cause Mednafen to automatically start
        the debugger in step mode after a game is loaded(only if Mednafen has a debugger for the emulated system, of course).

        NES:  Fixed CNROM emulation initialization bug.

        PCE:  ADPCM software reset was erroneously also resetting the playback frequency.  Fixed.  (Fixes ADPCM voices in Gulliver Boy)

        PCE:  Fixed disassembly of the JMP $(AAAA, X) instruction.

        PCE, PC-FX:  Improved PSG LFO emulation.

        PC-FX:  Emulated gamepad button presses weren't being decoded from the driver-side data correctly(causing problems on big-endian
	platforms).  Fixed.

        PC-FX:  Improved the logging of the ROM font system call in the debugger, to also include the callee address and the size of the
        glyph being requested.

        PC-FX:  Disassembly of the "nop" instruction will no longer show the virtually meaningless operand.

        PC-FX:  Fixed alignment and prettified the disassembly of LDSR and STSR instructions.

        SMS:  SMS pause and 2-player support were erroneously commented out.  Fixed.
2008-04-22 21:59:22 +00:00
wiz
582d2b6531 Update to 0.8.7:
0.8.7:
        GBA:  DMA registers were being saved as 32-bit arrays instead of 16-bit arrays in save states, potentially causing memory
        corruption, and broken save states on big endian platforms.  Fixed.

	NES:  Removed the AltiVec resampling code, as it causes problems on the PS3, and possibly other PPC chips, and I don't have
	a PowerPC machine to test it on.  The NES sound filtering code will be rewritten in 0.9.0, anyway.

        GBA:  Fixed a startup crashing bug on big-endian platforms.

        Changed instances of fprintf() in mempatcher.cpp to trio_fprintf() to work around major issues with pre-C99 standard C libraries.

        GBA:  The Load() function was returning a largeish integer, instead of 1, after successfully loading a ROM image.  Fixed.

0.8.6:
	PCE:  Removed a statement, that was used for debugging, that broke PC Engine multiplayer support in 0.8.5. (I'm not sure
	how it got there in the first place...).
2008-01-15 22:44:33 +00:00
wiz
20311f4cf2 Update to 0.8.5:
0.8.5:

	Fixed a crashing bug when loading an uncompressed file and using the automatic IPS-patching feature when mmap() is available.

	PCE, PC-FX:  All SCSI CDROM commands are now logged in the debugger's log viewer(when logging is enabled, of course).

	Added group support to the debugger's log viewer.

	PC-FX:  Renamed the type of BIOS ROM font calls in the debugger's log viewer from "BIOS" to "ROMFONT".

	PC-FX:  BIOS filesystem syscall(for backup memory access) calls are now logged in the debugger's log viewer.

	PC-FX:  Added internal backup memory and external backup memory address spaces to the debugger's memory editor.

	PC-FX:  In the 263-line mode, line 262 is now reported as being during blanking time(as on a real PC-FX).  Fixes the annoying transparency layer
	flickering and other weird graphical glitches in Der Langrisser FX.

	Added setting "filesys.disablesavegz", to disable gzip compression when saving save states and backup memory.
	(In the case of backup memory, disabling gzip compression isn't supported for GB yet)

0.8.4:

	PC-FX:  Some RAINBOW registers weren't being reset on emulated system reset.  Fixed.

	PC-FX:  Added dummy support for the external bus reset register.

	PC-FX:  Altered the way garbage data is handled by RAINBOW to fix a graphics bug in the Tengai Makyu options screen.

	PC-FX:  Reworked a large part of the KING SCSI emulation code, and parts of the CDROM device emulation code.  Previously non-working-at-all games
	"Battle Heat" and "Tengai Makyu" work now.
	The non-anime game mode in "Tyoushin Heiki Zeroigar" works now.  "Der Langrisser FX" no longer locks up if you skip the intro movie.
	"Yuna FX" no longer locks up in one of the intro movies.
	These changes will cause some save state incompatibilities with previous versions of Mednafen.
	(Some of the SCSI changes also affect the PCE CDROM emulation, which may also result in save-state incompatibility issues, particularly if
	the save state occurred during a CDROM data transfer operation.)

	PC-FX:  Added setting "pcfx.cdspeed".  If you want to change this, read the documentation first!

	Cleaned up the video deinitialization code slightly, and fixed a few bugs in the OpenGL deinitialization code.

	PC-FX:  Reads from the dummy KING register 0x07 will now return 0xFF, per the devkit docs.

	PC-FX:  Reads from KING register 0x0B will now return the "DMA end" bit in D0 set correctly(at least, according to the developer docs).

	Fixed a compilation error after running configure with --disable-nes.

        PC-FX:  Reads from I/O port 0xFC0 will *now* return the current timer counter value.  The switch statement mask value was wrong...

	Removed the warning in the documentation about error correction of raw data track rips, as Mednafen will now perform simple correction
	using the EDC and L-EC data(since 0.8.4-rc3).  This could conceivably cause problems with naive hacks/translations/patches that neglect to update
	the EDC and L-EC data, so it can be disabled by setting the setting "cdrom.lec_eval" to 0.
	L-EC correction is based off code from dvdisaster(http://dvdisaster.net/).

	PCE, PC-FX:  Removed some debug printf()'s that were left in 0.8.4-rc3 by mistake.

0.8.4-rc3:

	PCE:  Added preliminary(it works, but the code needs to be cleaned) ADPCM support for HES rips.

	PCE:  Interrupts will be enabled with a CLI after a HES' init routine is called, to fix rips that neglect to do it themselves.

	PCE:  Added support for HES rips that try to write data where it really shouldn't be written(some CD-ROM game rips do this), though a warning
	will be printed the first time this occurs after loading.

	PCE:  Added sanity checks to the HES loader to prevent crashes if invalid data is present.

	PCE:  Reads from the I/O port will now return D7 as clear when emulating a PCE CD game.

	PCE:  ADPCM RAM is now reset(to 0) on emulated PCE reset.

	PCE:  Sprites trying to pull tile data from $8000-FFFF of VRAM will now be invisible(probably not correct, but trying to emulate indeterminate
	effects is too difficult :b).  Fixes a minor sprite garbage issue in Camp California.

	PCE, PC-FX:  Fixed VRAM DMA source/dest increment/decrement bits(the source and dest were flipped).  Fixes a problem with Fushigi no Yume no Alice.

	Moved some code in the source root directory to appropriate subdirectories.

	Added setting <system>.debugger.disfontsize, valid settings being "xsmall", "small"(default), "medium", and "large", to control the font
	size used to draw the disassembly text.  Note that there may be overlap with other parts of the debugger at font sizes larger than the default.

	Refactored a few address space and register group debugger support functions out of individual system code.

	Fixed various low-impact memory leaks.

	The version of Mednafen last run is now stored in the configuration file as a comment(this will be necessary for changes in 0.8.5 or later
	that will involve proper escaping/unescaping and quoting of strings, to prevent problems with extra whitespace added by manually editing
	the configuration file).

	Fixed state rewinding on big-endian machines, and removed some unnecessary operations from the state rewinding code path.

	Mednafen will now refuse to try to load ROM images larger than 64MiB, as a sanity check.

	mmap() and madvise() will now be used to load ROM images, assuming they're available(UN*X only, generally).

	Errors during automatic IPS patching are now fatal.

	Sped up loading gzip'ed ROM images.

	Removed a global variable from the NES emulation code that had invaded state.cpp.  Though, this makes the error message when trying to use
	save states with authentic Game Genie emulation very unhelpful...

	GBA:  Added support for loading a real GBA BIOS ROM image, using the setting "gba.bios".

	GBA:  Added the ability to specify the backup memory type for games by creating a file with the same name as the ROM image,
	with the extension replaced with "type", in the "sav" directory under the Mednafen base directory.
	 Example: SexyPlumbers.gba -> SexyPlumbers.type

	One or more of the following strings(on separate lines) may appear in the file:
		sram
		flash
		eeprom
		sensor

	Additionally, the flash size can be specified by specifying the size(real size, or divided by 1024) after the type, like "flash 128" or
	"flash 131072".

	PCE:  Improved noise LFSR and volume emulation, thanks to cgfm2 for the detailed information.

0.8.4-rc2:

	Added meaningful descriptions to the command.* settings.

	PC-FX:  Added an experimental feature to use mmap() to create a virtual 32-bit address space to speed up V810 instruction reads.
	Enable by setting "pcfx.use_mmap" to 1.  Of course, it won't work on 32-bit CPUs!  Please read the documentation, there are caveats!

	PC-FX:  Removed some redundant logic in the KING BG 8x1 drawing functions.

	PC-FX:  FX VCE and VDC port access are now emulated as 16-bit, as in the real PC-FX, instead of 8-bit.

	PC-FX:  Altered the debugger's memory peek and disassembly functions to not read the emulated memory map in the 0x80000000-0xEFFFFFFF region.
	(Reading those addresses can cause side effects, and this is a temporary workaround)

	PC-FX:  Changed the V810 memory read handlers to read RAM faster than BIOS ROM.  This will probably increase host CPU usage while in the BIOS
	loading screen, but decrease it in the actual game.

	PC-FX:  Altered the V810 opcode fetch logic to do 16-bit reads instead of 32-bit, fixing potential crash issues
	when Mednafen is run on CPUs that don't support unaligned memory accesses.

	PC-FX:  Factored-out a few address masks in the memory read and write handlers.

	PC-FX:  Replaced most of the V810 signed-variable bit-size converting code that uses conditional branches to code that uses 2 shifts,
	taking advantage of modern 2's-complement CPU's arithmetic right-shift capabilities.  It reduces generated machine code size slightly,
	and should provide a slight speed boost as well.

	PC-FX:  Optimized V810 address mode decoding by removing an unnecessary conditional jump.

	Added an important warning to the documentation regarding Mednafen's ripped CD image support:

		 Mednafen does *not* correct bit errors in the user data of "raw" data track rips.  It is strongly recommended to use
		 "cooked" data track rips(2048 bytes/sector for mode 1, not counting any subchannel data) with Mednafen.

	PC-FX:  Improved exception handling, and added untested emulation of the TRAP instruction.

	Debugger:  Rewrote the memory load and dump functions to be faster, and also to fix a bug in the load function that would
	trash memory if the user tried to load more data than the specified file contained.

	Debugger:  Using the Goto function will no longer cause memory edit mode to be exited.

	Debugger:  Fixed a bug that occurred when entering a prompt(goto, change charset, etc.) while in editing mode, that caused
	keyboard focus to be misdirected.

	SexyAL:  The ALSA driver will try to set smaller period sizes when lower playback rates are used.

	GBA:  Changed the heuristics used to detect SRAM/Flash usage, though they're still not perfect...if a game tries to use flash
	memory improperly, it could be detected as using SRAM instead, or silently corrupt parts of flash memory...

	GB:  Fixed sound register initialization on reset, fixes missing sound in A Boy and His Blob

	GB:  Slightly increased the contrast of GBC colors.

	GB:  Reworked blitting of mono GB colors for future features.

	GB:  Removed a redeclaration of a variable in the same scope in a function in gfx.cpp.

	Debugger:  Fixed PCE VRAM breakpoints to work with block memory transfer instructions.

	Debugger:  Fixed parsing of single-address breakpoints after range breakpoints.

	Mednafen will now print out SDL version information when it starts.

	(The Win32 build will now be distributed with SDL 1.2.12)

	Debugger:  Fixed -/+ opacity adjustment to not be done when entering text(such as in a dialog).

	Debugger:  Fixed null termination of the ASCII string buffer displayed in the memory watch section.

	PCE, PC-FX:  Fixed the frequency of the highest-frequency noise generation register setting, hopefully!

	PCE, PC-FX:  Changed the LFSR to 16-bit, and to use a maximized tap configuration, to make the noise sound a bit closer to a real
	PC Engine's(at least, in my opinion!  It still sounds slightly more bassy than a real PC Engine, but that might be due to filters
	on the PC Engine's sound output...).

	Non-power-of-2-sized-textures will not be used when a pixel shader is selected and enabled, to prevent a severe graphical corruption
	regression introduced in 0.8.3-beta.  I'm not sure if it's a problem with Mednafen's pixel shaders or the graphics card...

	SMS:  Fixed soft reset.

	SexyAL:  Removed smallc.c, and modified the OSS driver to use snprintf() instead of the single function smallc.c provided.

	SexyAL:  "sexyal.h" is now included before all other header files.

	SexyAL:  Revamped parts of the ALSA driver to fix reported lockup issues under certain conditions.

0.8.4-rc1:

	Added preliminary support for inputting text directly into the selected address space in the debugger's memory editor.

	Moved the temporal video blurring code in mednafen.cpp to vblur.cpp

	Added settings "filesys.snap_samedir", "filesys.sav_samedir", "filesys.state_samedir", and "filesys.movie_samedir", default 0, that when
	set to 1, will read/write the respective files from/to the same directory the game was loaded from.  If you want
	to use these, PLEASE read the documentation first, there are caveats!

	PCE CD, PC-FX:  Added support for MS WAV file offsets and lengths in TOC files.

	PCE CD, PC-FX:  Fixed a bug that caused CD-DA playback to be off by one sector(the first sector specified was being skipped).

	Began work to allow settings to be temporarily overridden during netplay and movie playback.

	PCE, PC-FX:  Added settings "pce.disable_softreset" and "pcfx.disable_softreset", default 0, which when set to 1 will disable
	simultaneous pressing of RUN and SEL.  The current implementation kind of abuses the driver-side code that disallows opposing diagonal buttons
	being pressed at the same time, so if we ever change that (undocumented) feature to go with the last-pressed direction rather than
	clearing both, the description of these settings in the documentation will need to be updated.

	PCE CD, PC-FX:  Read operations and CD-DA playback will now be stopped when the RST signal is asserted(fixes soft reset issues on PCE CD
	games).

0.8.3-beta:

	Fixed an OpenGL function typedef in drivers/opengl.h.

	PC-FX: Writes and reads to the KING and FXVCE chips "mapped" in parts of 0xA0000000 through 0xBFFFFFFF will now go through the respective
	data port write handlers, instead of directly to KRAM or palette RAM.

	If non-power-of-2-sized OpenGL textures are not available, and bilinear interpolation or a pixel shader is enabled, and the emulated
	system resolution changes(such as on the PCE), two lines of black pixels will be written to the texture buffer to prevent the display
	of multi-colored garbage at borders, though the right+bottom borders will still be slightly darker than they should be...

	PC-FX:  Added support for VDC data port writes via writes to 0xB4000000-0xB7FFFFFF and 0xB8000000-0xBBFFFFFF in the V810's
	memory map.  Fixes major graphical problems in "Super Power League FX".

	Updated the srwcompressor description in mednafen.cfg.

	PC-FX:  KING BG1-3 scroll registers are now emulated as 10-bit instead of 11-bit(BG0's are still 11-bit), and BG1-3 virtual
	screen size is now limited to 512x512(BG0 is still 1024x1024), per the official developer documents.

	Non-power-of-2-sized OpenGL textures will now be used if the "GL_ARB_texture_non_power_of_two" extension is detected.

	Fixed a bug that sometimes would cause black screens when using the "sdl"(non-default) video driver(SDL surface per-pixel alpha blending
	was enabled when it shouldn't have been).

	PCE:  Fixed a line clearing bug when BG is disabled that was causing some minor graphical garbage on some games that
	use multiple horizontal resolutions per frame.

	Changed some nonsensical #ifdef statements that were intended to always evaluate as false with "#if 0".

	Renamed SYSTEM_CLOCK to System_Clock in scsicd.cpp to work around a potential macro conflict on OSX.

	PC-FX:  Added partial support for NEC's "scan" SCSI command, used in the BIOS' CD-DA player screen.

	PC-FX, PCE CD:  Revamped parts of the subchannel emulation code.  The PC-FX BIOS CD player screen's time display works now.  Also, an important
	note regarding cdrdao "TOC" files and "RW_RAW" subchannel data was added to the documentation.

	PC-FX:  Fixed a bug in the KING BG0 scrolling+rotation code for 16-color and 4-color backgrounds with BATs that was causing graphical
	corruption in the PC-FX BIOS CD player screen.

	Fixed a compilation error when --disable-debugger was passed to the configure script.

0.8.2-beta:

	Added blargg's experimental blz compressor, for use with state rewinding(change the setting "srwcompressor" to use it).
	(This was added a while back, after 0.8.1, but I forgot to document it)

	SMS,GG:  Added missing default key configurations.

	PC-FX:  Added untested emulation of scaling+rotation in 4-color KING BG mode.

	PC-FX:  Added emulation of scaling+rotation in 16-color KING BG mode.  Fixes a problem with the background in the last stage of Zenki.

	PCE:  Added VRAM size constants to the beginning of vdc.cpp, and modified the code to use them, to allow a certain crazy person to compile
	a custom version of Mednafen which emulates extra VDC VRAM.

	PCE:  Removed 0xEB as SBC immediate in the disassembler(it was left over from the 6502 disassembler).

	Changed setting type of setting "vdriver" to a string, with possible values "opengl" and "sdl"(and "0" and "1" for backwards compatibility,
	of course).

	PCE:  Set the default char set in the debugger's memory viewer to shift_jis.

	PCE:  Fixed a missing #include <iconv.h> in debug.cpp.

2007-6-17:

	PC-FX:  Improved VCE<->VDC<->KING scanline timing to fix a lockup issue in Anime Freak Vol 4(polling the FX VCE raster counter register
	vs VDC VBlank IRQs).  Unforunately, this change has caused some 1-line graphical glitches in games that do "raster effects".  This
	may be solved once/if V810 emulation has accurate cycle counts, which would require emulating instruction cache and prefetch logic. -_-;

	Fixed branch traces display in the debugger, it was broken to only display half of them twice sometime since 0.8.1.

	PC-FX:  Optimized RAINBOW JPEG-like decoding by using a static implementation of bit fetching functions(instead of a class).

	PC-FX:  Added untested emulation of the CAXI V810 instruction.

	PC-FX:  The RAINBOW transfer block count register is now emulated as being 5-bits instead of 16-bits, fixes screen issues(blue blue!)
	after defeating the snake monster in Zenki.

	PC-FX:  If a KING BG is set to BAT+CG mode, but is missing a BAT fetch microprogram, it will now be drawn in CG mode(previously, the BAT
	data was simply being forced to 0, which was wrong). It's confirmed on a real system.  Fixes missing graphics in "Tonari Princess no Rolfee".

	PC-FX:  Fixed transparency testing with 16M color KING backgrounds(only 1 Y component of every 2 pixels was being checked, now
	both are checked).

        PC-FX:  Implemented back cellophane support.  Fixes fadeouts in "Lunatic Dawn", fadeins in "Team Innocent", and screen darkening issues
	during dialogue in "Last Imperial Prince"(and also exposes a bug that LIP probably has on a real system too, wherein CCR isn't reset
	to black after the dialogue is over, leaving the upper and lower parts of the screen outside the play area slightly dark greenish).
	The hindmost color when mixing the layers is now set to palette entry #0, except when all layers are disabled(set to black),
        or front cellophane(set to black) or back cellophane(set to value in CCR) is enabled.

	PC-FX:  Added emulation of the expansion backup RAM.  While not particularly necessary since Mednafen already emulated backup memory
	separately for each game, it does give a few extra save slots to some games(such as Miraculum ^_^).

	Added opacity control(-/+) to the debugger.

	Added an always-on zero page view to the CPU debugger for NES and PC Engine.

        Reduced the size of the game thread event queue to a somewhat saner size, and added extra buffering so that its mutex is only locked for
        a minimal amount of time to eliminate the chances of deadlock with this mutex.

	GBA:  Fixed a bug that caused only half of the legacy wave sound channel's sample data to be saved.

	GB:  Updated to Gb_Snd_Emu 0.1.5, fixes hanging note problems on some games, and cleaned up the sound save state code.

2007-5-30:

	Added preliminary Sega Master System and Game Gear emulation based off of SMS Plus.

	Factored the remaining state rewinding code out of the individual systems' code.

	Fixed a minor visual bug when using state rewinding(also with save states, but it's not really visible) with the NTSC blitter.

	Simplified how state rewind requests are passed to the emulation code, and fixed a small bug when using state rewinding with
	frame advance(now, a rewind will only occur if the state rewind button is held down while the frame advance button is pushed).

	Changed a local variable name in selblur.cpp to fix compilation on OS/X(and maybe PPC in general?), thanks to Matt Beaumont
	for pointing out the conflict with a definition in altivec.h.

	PCE:  Fixed cycle counts for BRA and BSR(they were 1 too high).

	PC-FX:  Reads from I/O port 0xFC0 now return the current timer counter value.

	Parameters to MDFNI_Emulate() and the internal system Emulate() functions are now passed through a structure, to allow
	for easier future expansion.

	PCE, PC-FX:  Fixed audio track reading from physical CDs on big-endian platforms.

	NES:  Fixed a bug that caused an emulator crash if Game Genie-style cheats were enabled at the same time as authentic Game Genie
	emulation was enabled.

	Added setting "srwframes", which controls the number of save states to keep when state rewinding is enabled.

	Debugger:  Fixed a bug that caused a crash if a PC breakpoint was triggered while the debugger screen was disabled.

	Added an experimental logging feature to the debugger, currently only used by the PC-FX emulation code, to log CD-ROM read commands
	and calls to the PC-FX BIOS' glyph bitmap address function, both of which should be quite helpful in translation work...

	PCE, PC-FX:  Moved the mouse sensitivity adjustments to the driver side to fix mouse emulation with network play and movies
	when using non-default pce.mouse_sensitivity/pcfx.mouse_sensitivity settings.

	Added a few more entries to the in-emulator help screen.

	PC-FX:  Increased the keyport latch delay, and added emulation of the PC-FX mouse.

	PC-FX:  The keyport data ready flag is now reset only on low reads from the keyport data registers.

	PCE:  Fixed disassembly of the BSR instruction.

	NGP:  Fixed Z80 emulation cycle counts(they were far too low), and fixed emulation of the EI delay.

	GB:  Reworked various things, including Z80 interrupt and HALT emulation.  GameBoy emulation will be a bit more CPU intensive now,
	and save states from older versions won't work with this version(sorry!).  These changes could easily break some games, but...at least
	"A Boy and His Blob" works now!

	GBA:  Changed the file type detection code to reduce the chance of false positives.

	PCE:  Files with the extension "sgx" will now be treated as raw SuperGrafx ROM image files(AKA SuperGrafx emulation will be enabled).

	NES:  Refactored the file type detection code, so that emulation data structures and memory won't be initialized unless it's
	a recognized file type.

	NES:  NSF(but not NSFE) game/album name, artist, and copyright strings are now trimmed of leading and trailing whitespace.

	Added MDFN_trim(), MDFN_rtrim(), and MDFN_ltrim() functions.

	WonderSwan:  Fixed a buffer overflow bug in the sprite drawing code.

	GBA:  Flash and SRAM save games are now stored gzip-compressed.

	PCE:  Fixed raw bytes display of relative branch instructions in the disassembler.

	PC-FX:  Added CD-ROM data tracks to the memory debugger/viewer, read-only, however.

	The selected character set in the memory debugger/viewer will now be saved for that emulated system when exiting.

	Fixed text search in the memory debugger/viewer(iconv() was being called before the variables passed to it were initialized, oopsie).

	Simplified the scrolling code in the memory debugger/viewer, the line containing the cursor will now always be centered vertically
	on the screen.

	PCE:  Fixed an ambiguous if() statement in huc.cpp in the BRAM emulation code.

	GB:  Fixed a semi-ambiguous boolean math statement in the cpu emulation code.

	Fixed an ambiguous else statement in the throttling code in drivers/main.cpp

	NGP:  Neo Geo Pocket emulation code is now compiled with -fno-strict-aliasing to work around issues in the TLCS-900h code.

	GBA:  Removed unused ELF code.

	Fixed some implicit conversions of const char * to char *. (stupid putenv() prototype grumble mumble)

	<stdlib.h> is now included in "mednafen.h", added notes to README about system header files automatically included,
	and removed inclusions of such header files in source code files that include mednafen.h(most do, and should).  This change
	was brought about by gcc 4.3...it may not be the best way in regards to compile-performance wise, but it is more convenient
	and safer than #include'ing the system headers manually(and forgetting to >_>).

	Modified instances of "Makefile.am" to stop including the top directory in the include search path, and removed the symlink of
	config.h to include/config.h, and fixed the references to "config.h" in intl/Makefile.in.

	PCE:  Made hes.cpp use MDFN_de32lsb() and MDFN_de16lsb() from endian.cpp.

	PCE:  Changed some instances of free() to MDFN_free().

	GBA:  Un-inlined the CPUWriteMemory() function.

	GBA:  Rewrote parts of the save-game(flash, eeprom, sram) code to make more sense!  EEPROM data is now stored with a file extension "eep".
2007-11-29 22:35:38 +00:00
wiz
368a0b1f97 Initial import of mednafen-0.8.1, previously packaged for wip (by myself):
Mednafen is a portable, utilizing OpenGL and SDL, argument
(command-line)-driven multi-system emulator with many advanced
features. The Atari Lynx, GameBoy  (Color), GameBoy Advance, NES,
PC Engine (TurboGrafx 16), SuperGrafx, Neo Geo Pocket  (Color),
PC-FX, and WonderSwan  (Color) are emulated. Mednafen has the
ability to remap hotkey functions and virtual system inputs to a
keyboard, a joystick, or both simultaneously. Save states are
supported, as is real-time game rewinding. Screen snapshots may be
taken at the press of a button, and are saved in the popular PNG
file format.

Due to the threaded model of emulation used in Mednafen, and
limitations of SDL, a joystick is preferred over a keyboard to play
games, as the joystick will have slightly less latency, although
the latency differences may not be perceptible to most people.
2007-05-19 12:39:30 +00:00