Category: Multi System

PC-FX: Added more registers/SetRegister() support to the debugger.

Trying to edit a register in a debugger register groups with a NULL SetRegister method will no longer crash Mednafen.

NES: Fixed a misnamed save state variable in the FME-7 code.

Mednafen will now be compiled with "-fno-strict-overflow" if the C compiler supports that option, for the upcoming gcc 4.2 release, as I'm not sure this optimization is safe with Mednafen's code(it may be, but better safe than somewhat sorry!).

PCE CD, PC-FX: Added partial support for cdrdao "TOC" files, including support for rips with subchannel data, but it must be in the "RW_RAW" format. Ripped CD+G CDs can be played back this way in the PCE CD and PC-FX BIOS CD players.


PC-FX: Improved VDC chain/256-color mode emulation.

PC-FX: Altered FXVCE->VDC vsync emulation.

PC-FX: Revamped RAINBOW code, adding support for JPEG-like encoded content, thanks to David Michel's help.

WonderSwan: Fixed a bug in the debugger(HAH) regarding the display of HBTimerPeriod and VBTimerPeriod(they were erroneously listed as 1-byte variables, when they should've been listed as 2-byte variables, which caused the values to wrap around to the other side of the screen if they were >= 0x100).

GBA: Structurized free-floating various variables...there shouldn't be any regressions, aside from save state incompatibility, unless typos were made(if so, please tell me!).

PC-FX: Added support for scrolling/rotation in 64K color mode.

PC-FX: The KING data structure(including KRAM) is now dynamically allocated.

GB, GBA: The memory for the color map/filter is now dynamically allocated.

PC-FX: Changed the size of the emulated X tile coordinate register when drawing KING BG, affecting in-range calculation when in non-endless scroll mode. Fixes missing eyes and mouths and other craziness in cutscenes in Chip Chan Kick.

PC-FX: Fixed playback of the last 4 samples of an ADPCM playback sequence, fixes crazy volume problems in "Team Innocent".

PCE: VDC chip data structures(including emulated VRAM) are now dynamically allocated.

NES: FDS and several mappers' larger data structures are now dynamically allocated.

NES: NSF write handler info structure is now dynamically allocated, which should reduce memory usage by 1 or 2 MiB(depending on the platform) on other games/files.

PCE: CDROM-related memory is now dynamically allocated, which should reduce Mednafen's memory usage for non PCE-CD games by at least 2.25MiB.

PCE: Added untested support for the Tsushin Booster's expansion RAM

Replaced the hard-coded file extension tests when loading from a ZIP archive in MDFN_fopen() with code that tests extensions passed as a double-NULL-terminated(each entry is single-NULL-terminated) string to MDFN_fopen().

Added QuickLZ to the codebase, and added the setting "srwcompressor" to specify which compressor to use for staterewinding, "minilzo" or "quicklz", with "minilzo" as the default. QuickLZ can be considerably faster at compression than MiniLZO, though QuickLZ is written with x86 and x86_64 CPUs in mind, and performance will likely suffer on other platforms, and its compression ratio isn't as good as MiniLZO(which itself isn't that great!).

PCE: Added the settings "pce.adpcmvolume", "pce.cddavolume", and "pce.cdpsgvolume", for people who like music more than sound effects, or vice-versa for some weirdos! ;)

PCE: Burst mode will now be tested for when the VDC would enter the active display area.

PCE: Altered the relative volume of CDDA vs PSG vs ADPCM with CDROM games, based on tests done on a real system.

PCE: ADPCM no longer uses saturated addition for the current output value, instead just wrapping(like apparently occurs on a real system).

PCE: Scrapped the old SCSI CDROM code, it now uses code that was previously PC-FX only(and was abstracted to be used for both). The Game Express CDROM card image now works, including Game Express CD games(at least Hi-Leg Fantasy ;)). John Madden Duo CD Football works. Steam Hearts plays stage music now. 3x3 Eyes doesn't seem to have desynchronized audio anymore during cutscenes...

Updated libmpcdec to 1.2.5(I think it was 1.2.2 previously...).

PC-FX: Added VRAM and FXVCE palette RAM to the debugger's memory editor.

PCE,PC-FX: Fixed CUE+BIN pregap handling, it was totally borked before.

PC-FX: Improved byte writes to KING I/O ports, fixes graphics problems in First Kiss Monogatari and Pia Carrot He Youkoso

PC-FX: Changed how reads/writes from/to KING registers 0x09 and 0x0A are handled.

PC-FX: All writes to 0x80000000-0x80000FFF are now translated to I/O port writes.

PC-FX: Reads from "unmapped" areas in the V810's memory address space will now return 0xFF(or 0xFFFF, or 0xFFFFFFFF). This fixes a lockup that could occur in Power Dolls FX...the game seems to be trying to use 4MiB of RAM when there's only 2MiB of RAM in a PC-FX! Also, while this is probably the correct value to return for unmapped areas < 16MiB, it's not correct for at least some higher addresses... more tests are called for, but we can't just dump the entire 4GiB address space...can we?

PC-FX: D4 of reads from KING register 0x05 will now be set if a SCSI CD interrupt is pending.

PC-FX: Fixed READ TOC SCSI command emulation. The starting track field is no longer treated as BCD. Silly me... Fixes "Power Dolls FX" ADPCM sounds, and probably other games that have data tracks numbered 10 or above...

PC-FX: D0 of reads from the KING DMA status registers is now the only bit returned.

PC-FX: D0 of writes to the KING SCSI DMA length register is now ignored.

PC-FX: Started work on initial support for for KING's 1M KRAM chip mode...I need to run tests!

PC-FX: Reads from KING register/port 0x05 will now return the ATN and ACK SCSI status bits.

PC-FX: Reads from KING register/port 0x04 will now return the SCSI status bits.

PC-FX: Changed reads to KING registers/ports 0x01, 0x02, and 0x03 to return the last values written to those registers, rather than setting the bits returned corresponding to the current SCSI status bits.

PC-FX: Improved keyport emulation, fixes Can Can Bunny Extra DX title-screen "lockup".

PC-FX: Added support for negative KRAM increment values on read/write(king register 0xE).

PC-FX: Fixed the SCSI bits returned on port $600 reads: D17 now returns SEL status, and D23 now returns RST status(instead of ATN).

PCE: Block memory transfer instructions are now emulated at 6 cycles per byte transfered (+extra if VDC is accessed) instead of 5, to match tests done by malducci. This does break Wonder Momo, unfortunately...

Moved the Q-subchannel simulation code to the general CD-ROM reading interfaces, and made PC Engine CD and PC-FX CD emulation both use it. Also, the code will now set the index data field to index 0 for pregap areas, but...this is only possible when using disc images, due to libcdio (or CD-ROM in general) limitations. :( Ideally, on a physical disc, we would read the Q subchannel data directly, but...I'm not sure that all drives can read and return this data, and using libcdio's direct MMC functions results in much much more latency(probably because it bypasses the OS's caching of CDROM data), which would require an extra CDROM reader thread, which does its own caching and prefetch, in Mednafen. Maybe later!

PC-FX: Fixed cmpf.s emulation, fixes lockups in "Pachio Kun FX".

PC-FX: Added a tidy structure to contain SCSI command numbers, CDB lengths, and function pointers.

PC-FX: Added support for SCSI command 0x08(READ6), which "Mahjong Gokuu Tenjiku" uses.

PC-FX: Removed most of the 32-bit I/O and memory read/write functions, which are now handled by calling the 16-bit functions twice.

PC-FX: Modified the KING background rendering code to only draw to one buffer, instead of multiple buffers that are later mixed, to improve speed slightly.

PC-FX: The raster counter returned on reads from FX-VCE now returns correct(I least according to a simple test I did on a real PC-FX!) values in vblank.

PC-FX: SCDI CD interrupts on end of CD-DA track playback are now emulated.

PC-FX: SCSI CD "Test unit ready" command now expects to receive 6 data bytes total(1+5) instead of 1. I'm not sure if this is correct with the PC-FX, but it matches the SCSI specs, so I'll keep it this way until shown otherwise.

PC-FX: A17 of the effective KING BG CG and BAT addresses are now fixed to the CG and BAT offset settings, respectively, during rendering.

PC-FX: Added support for non-endless-scroll in BG0 rotation mode. Fixes the title screen flipping effect for Last Imperial Prince.

PC-FX: When a VDC layer has the same VCE priority as a KING BG layer, the VDC layer will now be shown on top. I don't know if this is correct... but it does fix a problem with disappearing sprites when leaving the airship in Miraculum.

PC-FX: Added KING BG0 scaling/rotation support, but only for 8bpp backgrounds(direct or indirect) in endless scroll mode for now... Fixes graphics in Miraculum(yay!) and Konpeki no Kantai.

PC-FX: Fixed direct CG mode width mask, corrects graphics bugs in "Boundary Gate" and others.

PC-FX: Added partial microprogram emulation, fixes junk graphics in Megami Paradise II.

PC-FX: Combined the different KING background non-endless/endless and direct/indirect rendering codepaths. This will make it a bit slower, but much more maintainable and...changeable!

SexyAL: Added support for sound cards that don't support interleaved stereo samples...probably.

Changed the font glyph cache to use an array of pointers instead of 2-dimensional array. This reduces resident memory usage considerably, even on systems with 64-bit pointers.

Readded the old 6x13 and 12x13 fonts for future usage in the debugger.

Fixed the documentation to list the controls for configuring virtual devices as ALT+SHIFT+1, ALT+SHIFT+2, etc. instead of ALT+1. Oops.

PC-FX: Made fairly invasive minor optimizations/refactoring to the cellophane code... I *have* tested it, and hopefully it won't break anything that worked before!

PC-FX: Fixed a clipping bug in KING BG non-endless scrolling mode in regards to X scroll wrapping. Fixes the disappearing boss problem in Stage 2 of Tyoushin Heiki Zeroigar!

PCE: The soft reset function(F10 key by default) no longer soft-resets the PCE, as such a button doesn't exist on a real unit, and could cause problems with some games, so it causes a hard reset(the same as the F11 key) now.

PCE: Added PSG registers to the debugger.

Enclosed many strings in _() or gettext_noop() for translation purposes.

Altered po/ to pass "-N" to msgmerge, to disable fuzzy string matching. Fuzzy strings are braindead I say!

Reworked MDFN_malloc(), it now takes a purpose, and on error, will print out the number of bytes attempted to be allocated, the purpose of the allocation, and the file and line number in which the allocation was attempted(through macro magic!).

PC-FX: Changed the 7.16MHz dot-clock emulation mode to use an internal layer 1024-pixels wide(the least-common multiple of the 2 different screen resolutions that are mixed by the video chip), rather than having 2 different layers that are merged by the video code(which causes problems on edges). This new method is much slower, unfortunately... The overlay code that supported this in the driver code and the interfaces have also been removed, as it is not used, and will not be used. ADDITIONALLY, a setting "pcfx.high_dotclock_width" has been added. The default is, of course, 1024, but other accepted values are 341 and 256, though I REALLY don't recommend using 256, as it will cause dropped pixels, whereas 341 will only cause somewhat distorted pixels horizontally. The advantage of using 341 over the default of 1024 is SPEED, and bilinear interpolation(if enabled) will work much better as well.

PC-FX: Fixed major problems when using more than one breakpoint of a type(read, write, etc.); it also occurred with the PCE debugger, but only with Aux breakpoints.

PC-FX: Fixed the VDC state restore code to properly recache all the tiles, instead of half of them!

GB, GBA: Fixed a few duplicate and misnamed variables in the save state structures.

PCE, PC-FX: Fixed a misnamed variable in the VDC save state structures.

Lynx: Removed a duplicate variable in the CPU save state structure.

PC-FX: Save states are now named so that they can be shared among CDs in recognized multi-disc sets(previously only .sav games were). This is intended to emulate "hot-swapping" as far as the game is concerned(though you will need to exit the emulator and load the second disc, so it isn't truly hot-swap ;)). When a game requests you to change the disc, the procedure is:
Eject virtual disc(F8 key).
Save state.
Exit emulator.
Load emulator with second CD.
Load state.
Wait for the game to load it. :b

PC-FX: Implemented virtual CD insert/eject, via the F8 key.

PC-FX: Added dummy handling of SCSI command 0x01(rezero unit), Doukyusei II no longer aborts the emulator.

PC-FX: Fixed bitstring instructions to fetch from the proper source address, fixes major graphics corruption bugs in "Anime Freak FX Vol. 4" and probably some other games as well.

PC-FX: Fixed RAINBOW decoding to not begin block decoding until a 0xFF is discovered in the bytestream. Fixes some graphical problems in "Ojousama Sousama".

PC-FX: Fixed the CD-DA playback speed calculation to match with tests I performed on my own PC-FX with a pure sine wave(interestingly, there was some really weird frequency aliasing at +10% playback speed on a real PC-FX...).

WonderSwan: Refactored the SRAM and external EEPROM code, and added support for larger SRAM sizes(Dicing Knight works now!).

PCE: Extended the Sherlock Holmes 1 hack to Sherlock Holmes 2 as well.

The address displayed in the "Cursor position" field in the memory viewer/debugger is now masked properly.

PC-FX: Fixed the ADPCM lowpass filter rolloff frequency calculation(forgot to divide by 2!).

PC-FX: Changed priority handling of KING background for priorities 5-7, though I don't know if the new way is correct... fixes a graphical bug in "Power Dolls FX".

PC-FX: The ADPCM volume control registers are now emulated as logarithmic, instead of linear.

PC-FX: Modified 256-color VDC sprite and bg palette index calculation, to fix color problems in the 3/4 view of Ojousama Sousamou.

PC-FX: Altered ADPCM address emulation so that the "active" play address is 17 bits instead of 18 bits, fixes problems in several games(Anime Freak FX Vol. 1, Tenchi Muyo! FX), hopefully it doesn't cause any new ones. ;)

PC-FX: Added support for KING bitstring writes and reads, and changed maximum BGn screen dimension setting from 0x9 to 0xA. "Boundary Gate" works much much better now due to these changes.

NULL-terminated the debugger's list of MMC1 registers, which was apparently forgotten earlier. Oops.

Added MMC3 registers to the debugger.

Added the current scanline(read-only) to the debugger's list of registers.

:: Mednafen Official Site
:: Mednafen 0.8.1