From 11d275e2f881d5eefac9d9473db3fc3d52f19c75 Mon Sep 17 00:00:00 2001 From: EkeEke Date: Fri, 21 Jun 2013 15:14:00 +0200 Subject: [PATCH] [Gamecube/Wii] finalized 1.7.4 --- gx/osd.h | 2 +- sdl/CHANGELOG.txt | 202 ++++++++++++++++++++++++++++++++++++++++++++++ sdl/LICENSE.txt | 37 ++++++++- sdl/README.txt | 144 ++++++++++++++++++--------------- 4 files changed, 318 insertions(+), 67 deletions(-) diff --git a/gx/osd.h b/gx/osd.h index 8570d9f..20e8a4d 100644 --- a/gx/osd.h +++ b/gx/osd.h @@ -68,7 +68,7 @@ /*************************************************/ -#define VERSION "Genesis Plus GX 1.7.3" +#define VERSION "Genesis Plus GX 1.7.4" #define NO_SYNC 0 #define SYNC_VIDEO 1 diff --git a/sdl/CHANGELOG.txt b/sdl/CHANGELOG.txt index f2b3190..7d7d2cc 100644 --- a/sdl/CHANGELOG.txt +++ b/sdl/CHANGELOG.txt @@ -6,6 +6,208 @@ All recent changes were backported from the GX version (Gamecube/Wii port), main Please look at http://code.google.com/p/genplus-gx/ for more infos. +--------------------------------------------------------------------------------------------------------- +Genesis Plus GX 1.7.4 (21/06/2013) (Eke-Eke) +--------------------------------------------------------------------------------------------------------- + +[Core/SCD] +--------------- +* fixed access to read-only registers on Main-CPU side ("Batman Returns" platform level freeze) +* fixed & improved emulation of PRG-RAM write protection register ("Lunar Eternal Blue" japanese version freeze) +* improved SUB & MAIN-CPU synchronization ("Dracula Unleashed" freeze when using US Model 2 BIOS) +* improved CPU polling detection +* improved CDD emulation & added CD drive access time for SEEK command ("Panic!/Switch" intro missing scene) +* added missing reinitialization of MAIN-CPU PRG-RAM bank on reset +* added .OGG audio tracks support through LIBTREMOR + +[Core/Sound] +--------------- +* fixed YM2612 configurable DAC depth emulation +* improved Low-Pass filter +* added optional "MONO" output mode + +[Core/VDP] +--------------- +* fixed FIFO access timings when using invalid write code value ("Clue" menu) +* fixed DMA Copy with undocumented code value ("Fatal Labyrinth" end sequence) +* minor code fixes & optimizations + +[Core/CPU] +--------------- +* optimized 68k stack read/write functions +* fixed broken 68k address error emulation +* fixed 68k interrupt behavior (prevents interrupts from being executed multiple time when 68k is halted) +* fixed Z80 registers initial state, added proper initialization when using PBC (verified on real hardware by Charles McDonald) + +[Core/MD] +--------------- +* fixed SRAM incompatibilities between BIG ENDIAN & LITTLE ENDIAN platforms (note: this breaks old .srm files with LITTLE ENDIAN platform ports) +* added support for a few recently dumped unlicensed games +* added auto-detection of byte-swapped ROM files + + +--------------------------------------------------------------------------------------------------------- +Genesis Plus GX 1.7.3 (26/11/2012) (Eke-Eke) +--------------------------------------------------------------------------------------------------------- + +no win32/SDL port changes + + +--------------------------------------------------------------------------------------------------------- +Genesis Plus GX 1.7.2 (24/11/2012) (Eke-Eke) +--------------------------------------------------------------------------------------------------------- + +[Core/SCD] +--------------- +* added default TOC for Shadow of the Beast II (prevent hangs when audio tracks are missing) +* fixed CD-DA fader muting +* fixed PCM channels panning on reset +* fixed backup RAM file management when using disc swap with Mode 1 cartridge +* incremented CD drive read latency: fixes Space Adventure Cobra (freeze when opening coffin at 2nd morgue scene) +* improved CDD emulation accuracy: fixes Snatcher (freeze at the end of Act 2) & various CD player bugs +* improved MAIN-SUB memory map mirroring in SCD mode (verified on real hardware by Charles McDonald) +* implemented cycle-accurate "stopwatch" register emulation + +[Core/Sound] +--------------- +* fixed broken PSG noise frequency +* fixed incorrect Game Gear PSG stereo emulation +* implemented cycle-accurate Game Gear PSG stereo + +[Core/VDP] +--------------- +* fixed broken VDP DMA from SVP ROM latency (graphic errors in Virtua Racing) + +[Core/MD] +--------------- +* added Super Mario World 64 (unlicensed) cartridge hardware emulation + +[Core/Input] +--------------- +* added automatic detection for CD games with Justifier/Menacer support +* improved Justifier/Menacer emulation + + +--------------------------------------------------------------------------------------------------------- +Genesis Plus GX 1.7.1 (13/10/2012) (Eke-Eke) +--------------------------------------------------------------------------------------------------------- + +[Core/SCD] +--------------- +* added support for CUE files +* added CD-DA tracks emulation (needs CUE+BIN or ISO+WAV images) +* added CD fader emulation +* added CDD "Fast FW" & "Fast RW" commands emulation +* improved CDD TOC emulation (random freezes in Sonic CD, Switch/Panic, Final Fight CD and probably many others) +* improved PCM chip synchronization with SUB-CPU (missing speeches in Willy Beamish) +* fixed PCM chip emulation (random hangs in Snatcher, missing sound effects in Switch/Panic, Final Fight CD, Wonderdog...) +* fixed Word-RAM memory mode on soft-reset (missing logo gfx effects) +* fixed SUB-CPU access to unused areas when using PC-relative instructions (Final Fight CD first boss random crash) +* fixed CPU idle loop detection on memory mode register access (Pugsy CD first boss slowdown) +* fixed Mode 1 emulation (cartridge boot mode) + +[Core/Sound] +--------------- +* replaced FIR resampler by Blip Buffer for FM resampling +* modified SN76489 core for use of Blip Buffer +* improved PSG & FM chips synchronization using Blip Buffer +* added Game Gear PSG stereo support +* fixed SG-1000 specific PSG noise +* fixed YM2612 LFO AM waveform (California Games surfing event) +* fixed YM2612 phase precision +* minor optimizations to YM2612 core + +[Core/Game Gear] +--------------- +* added support for CJ Elephant Fugitive (recently released by SMS Power) +* added Game Gear extended screen option + +[Core/Genesis] +--------------- +* added support for a few recently dumped (but unreleased) games + +[Core/General] +--------------- +* improved ROM & CD image file loading +* various code cleanup + + +--------------------------------------------------------------------------------------------------------- +Genesis Plus GX 1.7.0 (01/07/2012) (Eke-Eke) +--------------------------------------------------------------------------------------------------------- + +[Core/SCD] +--------------- +* added Mega CD / Sega CD hardware emulation (incl. Sub 68K, CDD, CDC, PCM, GFX rotation/scaling, etc) +* added .ISO & .BIN CD image file support +* added 512K backup cartridge RAM support +* added savestate support for CD games + +NOTES: +~~~~~~ +* to play CD games, original BIOS ROM files are required in /genplus/bios/ directory: unzip & rename them to bios_CD_U.bin, bios_CD_E.bin, bios_CD_J.bin +* CD audio tracks (CD-DA) are not supported (yet) + +[Core/CPU] +--------------- +* modified 68k core for Mega CD / Sega CD support +* optimized 68k core using prebuild const tables + +[Core/VDP] +--------------- +* improved DMA accuracy +* improved accuracy of nametables register & VSRAM writes during HBLANK: fixes "The Adventures of Batman & Robin" (graphical issues during 2nd Boss fight). +* added support for 8-bit VRAM writes with undocumented code value (verified on real hardware by Nemesis) + +[Core/Sound] +--------------- +* improved synchronization between SN76489 & YM2162 cores. +* improved accuracy of SN76489 core timings. + +[Core/MD] +--------------- +* added support for some recently dumped unlicensed games. +* improved emulation of 32k bankswitch hardware used by a few unlicensed games. +* fixed behavior of Z80 banked reads from 68k RAM (verified on real hardware). +* fixed support for 128K Pro Action Replay ROM. + +[Core/MS] +--------------- +* added support for all recent korean ROM dumps by SMS Power. +* added emulation of korean multi-game mapper (4-Pak All Action) +* added pseudo-random RAM pattern initialization on Mark-III and Japanese Master System (fixes "Alibaba and 40 Thieves" & "Block Hole") +* added port $3E emulation & internal BOOTROM support (Master System & Game Gear only). + +[Core/General] +--------------- +* added an option to set VDP mode (PAL/NTSC) independently from console region. +* added an option to select original system master clock frequency (PAL/NTSC/AUTO), emulation will run at selected frequency when VSYNC is disabled. +* fixed 68k context loading/saving (Sol Deace). +* fixed C89 incompatibilities for better portability. +* removed use of "long int" type for portability on 64-bit platforms. +* moved savestate zlib compression out of emulation core (for ports that don't use it). +* various optimizations. + +[Gamecube/Wii] +--------------- +* removed ROM load device selection from Load Menu: default ROM device must now be configured in menu settings. +* added specific load buttons, browsers & saved paths for each systems, this also fixes slowdowns caused by screenshot loading when browsing from slow devices. +* added support for left/right buttons as page up/down keys in ROM browsers +* added right analog stick as default "return to menu" key for Gamecube controllers +* added alternate remappable menu key combo for Gamecube controllers +* added an option to disable VSYNC (emulator is synced with audio hardware instead of video). +* added an option to boot system from "BIOS", with or without cartridge. +* added Master System & Game Gear "BIOS" support (files should be named bios_U.sms, bios_J.sms, bios_E.sms & bios.gg and copied to /genplus/bios directory). +* replaced "Hard Reset" button by a Soft Reset for systems having a Reset button (Mega Drive / Genesis & Master System) +* State & SRAM files are now only compressed when saving to Gamecube Memory Cards +* various fixes & cleanup. +* compiled with devkitPPC r26 & libogc 1.8.11. + +[Gamecube] +---------- +* improved progressive mode support when component cable is detected (hold B during startup to switch menu video mode configuration) + + --------------------------------------------------------------------------------------------------------- [07/08/2011] version 1.6.0 (Eke-Eke) --------------------------------------------------------------------------------------------------------- diff --git a/sdl/LICENSE.txt b/sdl/LICENSE.txt index f28a399..a8d781c 100644 --- a/sdl/LICENSE.txt +++ b/sdl/LICENSE.txt @@ -6,7 +6,7 @@ Copyright Charles MacDonald Some portions copyright Nicola Salmoria and the MAME team All rights reserved. -Copyright (c) 2006-2011 Eke-Eke +Copyright (c) 2006-2013 Eke-Eke All rights reserved. Redistribution and use of this code or any derivative works are permitted @@ -41,8 +41,41 @@ POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------------------------- +TREMOR library is distributed under the following license: -NTSC Filter, Blip Buffer and FIR Resampling libraries are distributed under the +Copyright (c) 2002, Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of the Xiph.org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +---------------------------------------------------------------------------------------- + +NTSC Filter and Blip Buffer libraries are distributed under the terms of the GNU Lesser General Public License diff --git a/sdl/README.txt b/sdl/README.txt index 52fc097..500adec 100644 --- a/sdl/README.txt +++ b/sdl/README.txt @@ -1,15 +1,26 @@ - ---------------------------------------------------------------------------- - Genesis Plus - ---------------------------------------------------------------------------- + +DISCLAIMER: + +THIS IS A VERY BASIC & UNSTABLE PORT WHICH ONLY PURPOSE +IS TO SHOW HOW TO USE GENESIS PLUS GX CORE & INTERFACE IT +WITH SDL IN PARTICULAR. BUILDS ARE NOT MEANT TO BE REALLY +USED FOR ANYTHING ELSE BUT EASIER CORE DEBUGGING ON WINDOWS. +PLEASE DO NOT DISTRIBUTE WIN32 BINARIES WITHOUT THIS NOTICE. +END USERS SHOULD PREFERABLY USE LIBRETRO PORT WITH RETROARCH. + +---------------------------------------------------------------------------- + Genesis Plus (Windows Port) +---------------------------------------------------------------------------- based on the original version 1.3 by Charles Mac Donald WWW: http://cgfm2.emuviews.com - version 1.6 + version 1.7.4 backported from Genesis Plus GX by Eke-Eke WWW: http://code.google.com/p/genplus-gx + E-mail: ekeeke31@gmail.com What's New @@ -21,35 +32,42 @@ Features --------- - * accurate SG-1000, Mark-III, Master System (I & II), Game Gear, Genesis & Mega Drive emulation (incl. backwards compatibility modes) - * NTSC (60Hz) & PAL (50Hz) hardware emulation + * accurate emulation of SG-1000, Mark-III, Master System (I & II), Game Gear, Genesis / Mega Drive, Sega / Mega CD hardware models (incl. backwards compatibility modes) + * NTSC (60Hz) & PAL (50Hz) video hardware emulation + * accurate CDD, CDC & GFX chip emulation (Sega/Mega CD) + * CD-DA fader emulation (Sega/Mega CD) + * Mode 1 cartridge support (Sega/Mega CD) * highly accurate 68000 & Z80 CPU emulation - * highly accurate VDP emulation (all rendering modes, HBLANK, DMA, FIFO, HV interrupts, undocumented registers, display mid-line changes…) - * cycle-accurate YM2612 & YM2413 emulation (FM synthesis is done at the original frequency, using FIR resampling) - * cycle-accurate chip synchronization (68000/Z80/YM2612/SN76489) + * highly accurate VDP emulation (all rendering modes, mid-line changes, undocumented registers,…) & timings (HBLANK, DMA, FIFO, HV interrupts,…) + * sample-accurate YM2612,YM2413, PSG, & PCM emulation (all sound chips are running at the original frequency) + * cycle-accurate chip synchronization (68000’s/Z80/YM2612/PSG/PCM) + * high-quality audio resampling using Blip Buffer * basic hardware latency emulation (VDP/68k, Z80/68k) - * full overscan area (horizontal & vertical colored borders) emulation (optional) - * accurate TMSS model emulation incl. internal BIOS support (optional) - * Blargg's software NTSC filters support (optional) - * PICO emulation (partial) + * full overscan area emulation (horizontal & vertical color borders) + * optional Game Gear extended screen mode + * internal BOOT ROM support (Master System, Genesis / Mega Drive, Sega / Mega CD) + * optional TMSS hardware emulation (Genesis / Mega Drive) + * support for Blargg's software NTSC filters + * preliminary PICO emulation + * support for raw (.bin, .gen, .md, .sms, .gg & .sg) and interleaved (.smd & .mdx) ROM files + * support for CUE+BIN, ISO+OGG & ISO+WAV CD image files * 2-buttons, 3-buttons & 6-buttons controllers emulation - * Sega Team Player & EA 4-Way Play multitap adapters emulation - * Sega Light Phaser, Menacer & Konami Justifier lightguns emulation + * Sega Team Player & EA 4-Way Play multitaps emulation * Sega Mouse emulation - * Sega Activator emulation - * XE-1AP emulation - * Sega Paddle & Sports Pad emulation - * Terebe Oekaki emulation - * J-Cart adapter support(Micro Machines & Pete Sampras series, Super Skidmarks) - * SVP DSP emulation (Virtua Racing) - * SRAM support (up to 64kB) - * I2C (24Cxx) and MicroWire (93C46) EEPROM emulation (all known chips) - * ROM bankswitch hardware emulation (Super Street Fighter 2) - * SRAM bankswitch hardware emulation (Phantasy Star 4, Legend of Thor, Sonic the Hedgehog 3) - * emulation of banking & copy protection devices used in all known unlicensed/pirate cartridges - * emulation of all known Master System & Game Gear cartridge mappers - * native Game Genie & Action Replay hardware emulation - * Lock-On hardware emulation + * Sega Paddle Control & Sports Pad analog emulation + * Terebi Oekaki tablet emulation + * Sega Light Phaser, Menacer & Justifiers lightgun emulation + * Sega Activator & XE-1AP analog controller emulation + * SVP DSP (Virtua Racing) emulation + * J-Cart adapter (Micro Machines & Pete Sampras series, Super Skidmarks) emulation + * Backup RAM (max. 64KB), I2C (24Cxx), SPI (95xxx) & MicroWire (93C46) EEPROMs emulation + * Sega/Mega CD RAM cart (max. 512KB) emulation + * “official” ROM bankswitch hardware (Super Street Fighter 2) emulation + * “official” backup RAM bankswitch hardware (Phantasy Star 4, Legend of Thor, Sonic the Hedgehog 3) emulation + * support for all known unlicensed/pirate cartridges bankswitch & copy protection hardware + * emulation of all known Master System & Game Gear cartridge “mappers” (incl. unlicensed Korean ones) + * Game Genie & Action Replay hardware emulation + * Sonic & Knuckles “Lock-On” hardware emulation * support for ROM image up to 10MB (Ultimate MK3 hack) @@ -71,10 +89,10 @@ F2 - Toggle Fullscreen/Windowed mode F4 - Toggle Audio (Turbo mode must be disabled first) - F6 - Toggle Turbo mode (Audio must be disabled first) - F7 - Load Savestate (game.gpz) - F8 - Save Savestate (game.gpz) - F9 - Toggle VDP mode: PAL(50hz)/NTSC(60hz) + F6 - Toggle Turbo mode (Audio must be disabled first) + F7 - Load Savestate (game.gpz) + F8 - Save Savestate (game.gpz) + F9 - Toggle VDP mode: PAL(50hz)/NTSC(60hz) F10 - Soft Reset F11 - Toggle Border emulation F12 - Toggle Player # (test only) @@ -85,46 +103,44 @@ A SRAM file (game.srm) is automatically saved on exit and loaded on startup. - Credits and Acknowlegements - --------------------------- + Credits + -------- + + Core(s) improvements & additional features by Eke-Eke Original code by Charles MacDonald - Modified Genesis Plus GX code by Eke-Eke (http://code.google.com/p/genplus-gx ) + Original Z80 core by Juergen Buchmueller - The Genesis emulator authors: Bart Trzynadlowski, Steve Snake, Stef, Notaz, AamirM + Original Musashi 68k core by Karl Stenerud + + Original YM2612/YM2413 cores by Jarek Burczynski & Tatsuyuki Satoh + + Original SN76489 core by Maxim + + Original SVP core by Notaz + + Blip Buffer & NTSC Video filter libraries by Shay Green (Blargg) + + 3-Band EQ implementation by Neil C + + TREMOR VORBIS decoding library by Xiph.org + + Zlib by Jean-Loup Gailly & Mark Adler + + + Aknowledgements + ---------------- + + The following emulator authors: Bart Trzynadlowski, Steve Snake, Stef, Notaz, AamirM The regular people at spritesmind.net and smspower.org. The MAME team for the CPU and sound chip emulators. - Maxim for his SN76489 emulator. - - Nemesis for his researches about the YM2612 and VDP. + Nemesis for the researches on the YM2612 and VDP. - Notaz for his SVP emulator. + Tasco Deluxe for the documentation of Realtec mapper. - Tasco Deluxe for his documentation of Realtec mapper. - - Haze for his reverse-engineering of most unlicensed games protection. - - Shay Green (Blargg) for his FIR Resampler & NTSC Video Filter. - - Neil C for his 3-Band EQ implementation. - - Jean-Loup Gailly and Mark Adler for their useful zip library. - - - Contact - ------- - - Eke-Eke - E-mail: ekeeke31@gmail.com - WWW: http://code.google.com/p/genplus-gx - - - Legal - ----- - - See license.txt for licensing terms. + Haze for the reverse-engineering of many unlicensed games protection.