pkgsrc-wip/mednafen
Thomas Klausner 2e6c363e96 Update to 0.4.3. Compiles again on -current.
TODO: /dev/dsp needs to be replaced, haven't got around to that
yet, feel free to do it (simple SUBST* should do it).

Changes:
0.4.3:  (Note:  PCE CD save states created in previous versions will not work very well with this release)

	Fixed a compilation problem in cdromif.cpp regarding NULL on *BSD platforms by including <string.h>.

	Lynx:  Fixed the constructor and destructor declarations of the C65C02 class, which should fix a reported
	compilation error with gcc 4.1.

	GBA:  Added a few missing variables to save states.

	GB:  Lines during which time the screen is turned off are now cleared(fixes flickering problems at the
	start of games, and during transitory blank screens).

	Fixed the SDL_net.h include statement in drivers/netplay.cpp.

	PCE:  Fixed a bug with CUE+BIN sector size handling with regards to pregaps.  CUE+BIN is still
	officially unsupported. :B

	PCE:  Noise is now rendered at blip_med_quality.

	PCE:  Removed the code that checks to make sure the audio sector to play is non-zero.  Fixes "Crazy Hospital".

	Changed the maximum supported playback rate from 96KHz to 48KHz, to be able to safely extend the temporal precision
	of Blip_Buffer further.
	Note that this shouldn't be considered a regression, as there are virtuall no benefits to using a sample rate
	above 48KHz in Mednafen(though there may be benefits in other applications).
	***************
	***BIG NOTE:***
	***************
	If you previously set the playback rate above 48KHz, you will have to manually edit the text configuration
	file(~/.mednafen/mednafen.cfg) to bring the value in range.  This is necessary because of a limitation in the setting
	validation code.


	Updated to Blip_Buffer 0.4.0, which offers improved sound quality over previous versions:
		- Improved sound quality by rewriting library to use 32-bit internal sample
		buffer, higher phase resolution, and a properly windowed filter kernel. Current
		user code should work without changes.

	PCE:  When sprites and background are both disabled, and the VDC is not in burst mode, the scanline is now filled with color 0x000 from the palette
	rather than 0x100.  This fixes the "Hurry Up" water effect in the CD game "Rainbow Islands".

	PCE:  Fixed the CD-DA amplitude calculating(used the BIOS' CD-DA player interface).

	PCE:  Altered VDC line timing slightly.

	PCE:  ADPCM frequency is no longer reset on ADPCM reset, fixes Gulliver Boy's dialogue voices during
	gameplay.

	PCE:  Fixed reading from nonexistant audio sectors(by memset()'ing the audio buffer to zero).

	PCE:  Implemented sector reading delays, games that use FMV like Gulliver Boy work much better now.  It's not implemented 100% correctly,
	and requires a small CPU hack to disable IRQs during a timing-sensitive period of emulation.  I don't like hacks, but...it's still better
	than the giant hack of reading all the sectors at once, which was how it used to be.

	PCE:  Implemented ADPCM read and write delay.  "Record of Lodoss War" no longer locks up at the title screen.

	PCE:  Opcode and operand data reads from VDC register 0x1 will now return 0x40, which fixes
	Dragon Slayer 2.  I doubt this is correct, but it shouldn't break any other game.

	PCE:  CUE+BIN audio playback no longer locks up the emulator, but CUE+BIN is still
	officially unsupported.

0.4.2:
	Fixed sprite hit emulation, fixes problems with VS Duck Hunt and VS Hogan's Alley
	that have existed since Nintencer.

	Modified VS Unisystem light gun emulation slightly to be more accurate.

	Fixed the in-emulator sound(nsf,gsf,hes) player's waveform visualization,
	broken in 0.4.1.

0.4.1:

	Joysticks initialization is now slightly more verbose.

	Fixed hash calculation in the joystick code, and added a workaround for hash
	collisions(which would occur if two extremely similar joysticks are used on
	the same system).

	Video initialization is now more verbose.

	The -<system>.special command-line arguments for selecting a special scaler now
	take the short name of the scaler, which is found in the documentation, instead of
	arbitrarily-chosen numbers.  However, out of the goodness of my cold, black heart,
	arbitrarily-chosen numbers may still be used, though it should be considered deprecated.
	Example:
		-nes.special 1	(deprecated, but works, selecting hq2x)
		-nes.special hq2x (good!)
		-nes.special wombat (bad!)

	libsndfile is now used for WAVE recording(instead of the old ugly code).

	Altered the internal floating-point format used to represent audio data by changing
	the range to -1.0<=sample<=1.0(previously it was 0.0<=sample<=1.0).

	NES:  Fixed a 1-byte overflow bug in the Barcode World input device emulation
	code by changing a strcpy() to a memcpy().

	Added a "-help" command-line option, which prints out command-line arguments
	and parameters.

	Fixed the configuration file loading code to exit the emulator if
	invalid data is in the configuration file, instead of just ignoring it
	and the rest of the entries, thus trashing the configuration file on exit.

	Changed the default xscale and yscale settings for Lynx to 4.

	Physical mouse buttons can now be assigned to virtual buttons.

	The width and height of the state preview are now saved in save states, fixing a problem with broken
	save states if the -nes.clipsides option is used, and possibly in other situations(note that this
	won't fix the problem in old save states, only new ones).

	Fixed a garbage(OSD stuff) problem in screen snapshots and save states when they are done after a frame
	that has been skipped(the solution is to delay the snapshot/save state until the next frame, which is
	set to not be skip).

	Fixed a typo that broke the hq3x effect(it had weird graphical glitches).

	Modified more settings to use the new plain-text configuration file format.

0.4.0:
	Various minor code changes I forgot to document.  I hope none of them are of the Mednafen-exploding
	variety. ;)

	Added support for saving and loading settings in a plain-text file format, and moved many
	settings to use this code.  This file is named "mednafen.cfg" in the Mednafen base directory(whereas
	the old binary configuration file is still named "mednafen03x.cfg").

	NES:  Merged RDoPCM() into RDoNoise(), reducing CPU usage slightly.

	NES:  Removed the pedantically high-quality sound mode, and reduced the filter order for downsampling
	from 512 to 256, with a larger transition band and smaller passband, creating a somewhat subtle low-pass filter
	effect on the audible portion of the signal, and decreasing CPU usage.

	NES:  Made optimizations to the CPU and PPU emulation code.

        PCE:  Added -pce.forcesgx, -pce.ocmultiplier, -pce.nospritelimit, -pce.cdbios, -pce.cddaquality, and -pce.compressor
        command-line options

	PCE:  Sound(excluding CDDA in CD emulation mode) is now passed through an audio volume compressor.

	NES:  Zero-page and stack memory accesses now go through the normal read-write function pointer system.
	This will increase CPU usage slightly, but it's important for future plans(readding cheat support,
	and an enhanced sound system through OggVorbis and WAV files).

	Updated to Blip_Buffer and Blip_Synth 0.3.6b1.

	Added special gcc options to configure.ac to get gcc to actually inline many functions
	that are specified to be inlined.  Sometimes I wonder if gcc developers are sane...

	NES:  Fixed a weird typo(with apparently no effect) in the B2005() function in ppu/ppu.cpp

	Fixed scanlines effect when using a special scaler.

	Lynx:  Optimized the sound rendering code slightly.

	PCE:  Added PCE CD emulation.

	NES:  Fixed the AMD64 MMX sound downsampling assembly code.  This bug fix fixes staticy sounds and other problems
	with NES audio on AMD64 platforms(only in 64-bit mode, of course :)).

	Removed MDFND_UTF8fopen() and MDFND_UTF8gzopen(), since they weren't really doing anything useful, and
	the same functionality could be provided more easily with some kind of wrapper library, if it's needed
	in the future.

	Updated the ZIP-file handling code with the newest version available, 1.01e.

	GBA:  Updated most of the GBA emulation code with newer code from VBA's CVS repositoy.

	MDFN_FastU32MemsetM8() no longer tries to use floating-point data types, which was causing very bizarre problems on x86_64
	targets when compiled with gcc 4.0, and was probably an illegal thing to do anyway, as far as
	portability is concerned(or maybe gcc 4.0's autovectorizer is broken).
	This fixes problems with many GBA games when Mednafen is compiled with gcc 4.0.

	Added code to check for SDL_net in configure.ac and error out if it's not found, instead of blindly
	trying to compile.

	A negative result for the JACK test in configure.ac will now print the result "no".

	Removed the argument to AM_GNU_GETTEXT in configure.ac, effectively setting it to "no-libtool".  This will
	force a static library to be made when necessary, instead of a shared library, which should fix problems
	some people have been having with missing shared library error messages(libintl.so.3 and libintl.dll, for example).
2006-01-16 23:41:50 +00:00
..
patches Update to 0.4.3. Compiles again on -current. 2006-01-16 23:41:50 +00:00
DESCR Mednafen is a portable, utilizing OpenGL and SDL, command-line-driven 2005-11-08 14:02:49 +00:00
distinfo Update to 0.4.3. Compiles again on -current. 2006-01-16 23:41:50 +00:00
Makefile Update to 0.4.3. Compiles again on -current. 2006-01-16 23:41:50 +00:00
PLIST Update to 0.4.3. Compiles again on -current. 2006-01-16 23:41:50 +00:00
TODO Update to 0.4.3. Compiles again on -current. 2006-01-16 23:41:50 +00:00