Merge pull request #43 from libretro/master

Libretro updates
This commit is contained in:
ekeeke 2015-02-02 08:57:40 +01:00
commit d4df8ceb50
10 changed files with 857 additions and 775 deletions

View File

@ -66,6 +66,10 @@ else ifeq ($(platform), osx)
ifeq ($(OSX_LT_MAVERICKS),"YES")
fpic += -mmacosx-version-min=10.5
endif
ifndef ($(NOUNIVERSAL))
CFLAGS += $(ARCHFLAGS)
LDFLAGS += $(ARCHFLAGS)
endif
# iOS
else ifeq ($(platform), ios)
@ -87,6 +91,20 @@ else ifeq ($(platform), ios)
PLATFORM_DEFINES += -miphoneos-version-min=5.0
endif
# Theos
else ifeq ($(platform), theos_ios)
DEPLOYMENT_IOSVERSION = 5.0
TARGET = iphone:latest:$(DEPLOYMENT_IOSVERSION)
ARCHS = armv7 armv7s
TARGET_IPHONEOS_DEPLOYMENT_VERSION=$(DEPLOYMENT_IOSVERSION)
THEOS_BUILD_DIR := objs
include $(THEOS)/makefiles/common.mk
LIBRARY_NAME = $(TARGET_NAME)_libretro_ios
ENDIANNESS_DEFINES := -DLSB_FIRST -DBYTE_ORDER=LITTLE_ENDIAN
PLATFORM_DEFINES := -DHAVE_ZLIB
# QNX
else ifeq ($(platform), qnx)
TARGET := $(TARGET_NAME)_libretro_qnx.so
@ -166,16 +184,16 @@ else ifneq (,$(findstring armv,$(platform)))
SHARED := -shared -Wl,--version-script=libretro/link.T -Wl,--no-undefined -lz
ENDIANNESS_DEFINES := -DLSB_FIRST -DBYTE_ORDER=LITTLE_ENDIAN
PLATFORM_DEFINES := -DHAVE_ZLIB
CC = gcc
ifneq (,$(findstring cortexa8,$(platform)))
ifneq (,$(findstring cortexa5,$(platform)))
PLATFORM_DEFINES += -marm -mcpu=cortex-a5
else ifneq (,$(findstring cortexa8,$(platform)))
PLATFORM_DEFINES += -marm -mcpu=cortex-a8
else ifneq (,$(findstring cortexa9,$(platform)))
PLATFORM_DEFINES += -marm -mcpu=cortex-a9
endif
else ifneq (,$(findstring cortexa15a7,$(platform)))
PLATFORM_DEFINES += -marm -mcpu=cortex-a15.cortex-a7
else
PLATFORM_DEFINES += -marm
ifneq (,$(findstring neon,$(platform)))
PLATFORM_DEFINES += -mfpu=neon
HAVE_NEON = 1
endif
ifneq (,$(findstring softfloat,$(platform)))
PLATFORM_DEFINES += -mfloat-abi=softfp
@ -248,7 +266,13 @@ endif
LIBRETRO_LIBS := -lm
ifeq ($(platform), theos_ios)
COMMON_FLAGS := $(COMMON_DEFINES) $(INCFLAGS) -I$(THEOS_INCLUDE_PATH) -Wno-error
$(LIBRARY_NAME)_CFLAGS += $(CFLAGS) $(LIBRETRO_CFLAGS) $(COMMON_FLAGS)
${LIBRARY_NAME}_FILES = $(SOURCES_C)
${LIBRARY_NAME}_LIBRARIES = m z
include $(THEOS_MAKE_PATH)/library.mk
else
all: $(TARGET)
%.o: %.c
@ -258,7 +282,7 @@ $(TARGET): $(OBJECTS)
ifeq ($(STATIC_LINKING), 1)
$(AR) rcs $@ $(OBJECTS)
else
$(CC) -o $(TARGET) $(fpic) $(OBJECTS) $(LIBRETRO_LIBS) $(SHARED)
$(CC) -o $(TARGET) $(fpic) $(OBJECTS) $(LDFLAGS) $(LIBRETRO_LIBS) $(SHARED)
endif
clean-objs:
@ -269,3 +293,4 @@ clean:
rm -f $(TARGET)
.PHONY: clean clean-objs
endif

View File

@ -4,7 +4,7 @@ libretro-genesisplusgx (1.7.4-0ubuntu3) UNRELEASED; urgency=low
* Debian folder from hunterk PPA to upstream
* Updated debian package and fixed lintian errors/warnings
-- Sergio Benjamim <sergio_br2@yahoo.com.br> Mon, 14 Jul 2014 22:40:00 -0300
-- Sérgio Benjamim <sergio_br2@yahoo.com.br> Mon, 14 Jul 2014 22:40:00 -0300
libretro-genesisplusgx (1.7.4-0ubuntu2) UNRELEASED; urgency=low

View File

@ -4,13 +4,29 @@ Priority: extra
Maintainer: Hunter Kaller (hizzlekizzle) <hunter_kaller@yahoo.com>
Build-Depends: debhelper (>= 9), zlib1g-dev
Standards-Version: 3.9.5
Homepage: https://code.google.com/p/genplus-gx/
Homepage: https://code.google.com/p/genplus-gx
Vcs-Git: git://github.com/libretro/Genesis-Plus-GX.git
Vcs-Browser: https://github.com/libretro/Genesis-Plus-GX
Package: libretro-genesisplusgx
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Libretro wrapper for Genesis Plus GX.
This wrapper makes Genesis Plus GX API compatible with libretro,
thus allowing its use with libretro frontends, such as RetroArch.
Depends: ${shlibs:Depends}, ${misc:Depends}, libretro-core-info
Description: Libretro wrapper for Genesis Plus GX
This wrapper makes Genesis Plus GX API compatible with libretro, thus allowing
its use with libretro frontends, such as RetroArch.
.
Genesis Plus GX is an open-source Sega 8/16 bit emulator focused on accuracy
and portability. Initially ported and developed on Gamecube / Wii consoles
only through libogc / devkitPPC, it is now available on many other platforms
through various frontends.
.
The source code, originally based on Genesis Plus 1.3 by Charles MacDonald, has
been heavily modified & enhanced, with respect to initial goals and design, in
order to improve the accuracy of emulation, implementing new features and
adding support for extra peripherals, cartridge & systems hardware.
.
The result is that Genesis Plus GX is now more a continuation of the original
project than a simple port, providing very accurate emulation and 100%
compatibility with Genesis / Mega Drive, Sega/Mega CD, Master System, Game Gear
& SG-1000 released software (including all unlicensed or pirate known dumps),
also emulating backwards compatibility modes when available.

View File

@ -1,24 +1,20 @@
This package was debianized by Hunter Kaller (hizzlekizzle) <hunter_kaller@yahoo.com> on
Tue, 14 Apr 2010 11:03:43 -0500.
Sat, 24 Sep 2011 13:24:59 -0500
It was downloaded from <https://github.com/libretro/Genesis-Plus-GX>
Upstream Authors:
Genesis Plus GX development team
Eke-Eke <ekeeke31@gmail.com>
The RetroArch Team
Hans-Kristian Arntzen (Themaister) <maister@archlinux.us>
Daniel De Matteis (Squarepusher aka twinaphex) <libretro@gmail.com>
Copyright:
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Charles MacDonald
Some portions copyright Nicola Salmoria and the MAME team
All rights reserved.
Copyright (c) 2007-2013 Eke-Eke
All rights reserved.
Files: *
Copyright: 1998, 1999, 2000, 2001, 2002, 2003 Charles MacDonald
Some portions copyright Nicola Salmoria and the MAME team. All rights reserved.
2007-2015 Eke-Eke. All rights reserved.
License:
Unless otherwise explicitly stated, all code in Genesis Plus GX is released
under the following license:
.
@ -52,9 +48,142 @@ License:
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Files: core/cart_hw/svp/*
Copyright: 2008 Grazvydas Ignotas (notaz)
License:
Free for non-commercial use.
.
For commercial use, separate licencing terms must be obtained.
Files: core/m68k/*
Copyright: 1998-2001 Karl Stenerud <kstenerud@mame.net>
License:
The Musashi M680x0 emulator is copyright 1998-2001 Karl Stenerud.
.
The source code included in this archive is provided AS-IS, free for any
non-commercial purpose.
.
If you build a program using this core, please give credit to the author.
.
If you wish to use this core in a commercial environment, please contact
the author to discuss commercial licensing.
Files: core/ntsc/*
core/ntsc/*
Copyright: 2006-2007 Shay Green
2008-2013 EkeEke
License: LGPLv2.1
Files: core/sound/blip_buf.c
core/sound/blip_buf.h
Copyright: 2003-2009 Shay Green
2012-2013 EkeEke
License: LGPLv2.1
Files: core/sound/eq.c
core/sound/eq.h
Copyright: 2006 Neil C / Etanza Systems
License: Public domain
This work is hereby placed in the public domain for all purposes, including
use in commercial applications.
.
The author assumes NO RESPONSIBILITY for any problems caused by the use of
this software.
Files: core/sound/sn76489.c
core/sound/sn76489.h
Copyright: 2001, 2002 Maxim
2004 Charles MacDonald
2007, 2009, 2010, 2012 Eke-Eke
License: Genesis Plus GX license
Files: core/sound/ym2413.c
core/sound/ym2413.h
Copyright: 2002 Jarek Burczynski
2011 Eke-Eke
License: Genesis Plus GX license
Files: core/sound/ym2612.c
core/sound/ym2612.h
Copyright: 1998 Tatsuyuki Satoh
2001, 2002, 2003 Jarek Burczynski
2006-2012 Eke-Eke
License: Genesis Plus GX license
Files: core/tremor/*
Copyright: 2002 Xiph.org Foundation
License:
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.
Files: core/z80/*
Copyright: 1998, 1999, 2000 Juergen Buchmueller
License:
- This source code is released as freeware for non-commercial purposes.
- You are free to use and redistribute this code in modified or
unmodified form, provided you list me in the credits.
- If you modify this source code, you must add a notice to each modified
source file that it has been changed. If you're a nice person, you
will clearly mark each change too. :)
- If you wish to use this for commercial purposes, please contact me at
pullmoll@t-online.de
- The author of this copywritten work reserves the right to change the
terms of its usage and license at any time, including retroactively
- This entire notice must remain in the source code.
Files: libretro/*
Copyright: 2012-2015 The RetroArch Team
License: GPLv3
Files: libretro/libretro.h
Copyright: 2012-2015 The RetroArch Team
License: The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
The Debian packaging is:
Copyright (C) 2009 Hunter Kaller (hizzlekizzle) <hunter_kaller@yahoo.com>
Copyright (C) 2011-2015 Hunter Kaller (hizzlekizzle) <hunter_kaller@yahoo.com>
Copyright (C) 2014, 2015 Sergio Benjamim (sergio-br2) <sergio_br2@yahoo.com.br>
and is licensed under the GPL version 3,
see `/usr/share/common-licenses/GPL-3'.

View File

@ -1,34 +0,0 @@
display_name = "Sega MS/GG/MD/CD (Genesis Plus GX)"
authors = "Charles McDonald|Eke-Eke"
supported_extensions = "mdx|md|smd|gen|bin|cue|iso|sms|gg|sg"
corename = "Genesis Plus GX"
manufacturer = "Sega"
systemname = "Sega 8/16bit (Various)"
license = "Non-commercial"
permissions = ""
display:version = "v1.7.4"
need_fullpath = "true"
block_extract = "false"
supports_no_game = "false"
firmware_count = 7
firmware0_desc = "bios_CD_E.bin (MegaCD EU BIOS)"
firmware0_path = "bios_CD_E.bin"
firmware0_opt = "false"
firmware1_desc = "bios_CD_U.bin (SegaCD US BIOS)"
firmware1_path = "bios_CD_U.bin"
firmware1_opt = "false"
firmware2_desc = "bios_CD_J.bin (MegaCD JP BIOS)"
firmware2_path = "bios_CD_J.bin"
firmware2_opt = "false"
firmware3_desc = "bios_E.sms (MasterSystem EU BIOS)"
firmware3_path = "bios_E.sms"
firmware3_opt = "true"
firmware4_desc = "bios_U.sms (MasterSystem US BIOS)"
firmware4_path = "bios_U.sms"
firmware4_opt = "true"
firmware5_desc = "bios_J.sms (MasterSystem JP BIOS)"
firmware5_path = "bios_J.sms"
firmware5_opt = "true"
firmware6=desc = "bios.gg (GameGear BIOS)"
firmware6_path = "bios.gg"
firmware6_opt = "true"

View File

@ -1,9 +0,0 @@
#!/bin/sh
set -e
update-alternatives --install /usr/lib/libretro.so libretro /usr/lib/libretro/genesis_plus_gx_libretro.so 10
#DEBHELPER#
exit 0

View File

@ -1,90 +1,39 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Copyright (C) 2011-2015 Hunter Kaller
# Copyright (C) 2014, 2015 Sergio Benjamim
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh $@ --parallel
configure: configure-stamp
configure-stamp:
dh_testdir
# Add here commands to configure the package.
touch configure-stamp
ARCH=$(shell dpkg-architecture -qDEB_HOST_ARCH)
build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
dh_testdir
# Add here commands to compile the package.
override_dh_auto_build:
ifeq ($(ARCH),armhf)
$(MAKE) -f Makefile.libretro platform="armv hardfloat"
else
$(MAKE) -f Makefile.libretro
#docbook-to-man debian/libretro-genesisplusgx.sgml > libretro-genesisplusgx
endif
touch $@
override_dh_auto_install:
cp *.so debian/libretro-*/usr/lib/libretro/
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
override_dh_auto_clean:
$(MAKE) -f Makefile.libretro clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
# Add here commands to install the package into debian/libretro-genesisplusgx.
cp genesis_plus_gx_libretro.so $(CURDIR)/debian/libretro-genesisplusgx/usr/lib/libretro/
cp $(CURDIR)/debian/genesis_plus_gx_libretro.info $(CURDIR)/debian/libretro-genesisplusgx/usr/lib/libretro/
# Build architecture-independent files here.
binary-indep: install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
# dh_installexamples
# dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
# dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

View File

@ -1150,9 +1150,10 @@ static uint32_t decode_cheat(char *string, int index)
static void apply_cheats(void)
{
uint8_t *ptr;
int i;
/* clear ROM&RAM patches counter */
maxROMcheats = maxRAMcheats = 0;
int i;
for (i = 0; i < maxcheats; i++)
{
if (cheatlist[i].enable)
@ -1704,7 +1705,7 @@ bool retro_load_game(const struct retro_game_info *info)
snprintf(GG_ROM, sizeof(GG_ROM), "%s%cggenie.bin", dir, slash);
snprintf(AR_ROM, sizeof(AR_ROM), "%s%careplay.bin", dir, slash);
snprintf(SK_ROM, sizeof(SK_ROM), "%s%csk.bin", dir, slash);
snprintf(SK_UPMEM, sizeof(SK_UPMEM), "%s%cs2k.bin", dir, slash);
snprintf(SK_UPMEM, sizeof(SK_UPMEM), "%s%csk2chip.bin", dir, slash);
snprintf(CD_BIOS_EU, sizeof(CD_BIOS_EU), "%s%cbios_CD_E.bin", dir, slash);
snprintf(CD_BIOS_US, sizeof(CD_BIOS_US), "%s%cbios_CD_U.bin", dir, slash);
snprintf(CD_BIOS_JP, sizeof(CD_BIOS_JP), "%s%cbios_CD_J.bin", dir, slash);
@ -1777,6 +1778,8 @@ void *retro_get_memory_data(unsigned id)
size_t retro_get_memory_size(unsigned id)
{
int i;
if (!sram.on)
return 0;
@ -1794,7 +1797,6 @@ size_t retro_get_memory_size(unsigned id)
/* otherwise, we assume this is for saving and we need to check if SRAM data has been modified */
/* this is obviously not %100 safe since the frontend could still be trying to load SRAM while emulation is running */
/* a better solution would be that the frontend itself checks if data has been modified before writing it to a file */
int i;
for (i=0xffff; i>=0; i--)
{
if (sram.sram[i] != 0xff)

View File

@ -102,6 +102,7 @@
<ClCompile Include="..\..\..\core\genesis.c" />
<ClCompile Include="..\..\..\core\input_hw\activator.c" />
<ClCompile Include="..\..\..\core\input_hw\gamepad.c" />
<ClCompile Include="..\..\..\core\input_hw\graphic_board.c" />
<ClCompile Include="..\..\..\core\input_hw\input.c" />
<ClCompile Include="..\..\..\core\input_hw\lightgun.c" />
<ClCompile Include="..\..\..\core\input_hw\mouse.c" />
@ -109,7 +110,7 @@
<ClCompile Include="..\..\..\core\input_hw\sportspad.c" />
<ClCompile Include="..\..\..\core\input_hw\teamplayer.c" />
<ClCompile Include="..\..\..\core\input_hw\terebi_oekaki.c" />
<ClCompile Include="..\..\..\core\input_hw\xe_a1p.c" />
<ClCompile Include="..\..\..\core\input_hw\xe_1ap.c" />
<ClCompile Include="..\..\..\core\io_ctrl.c" />
<ClCompile Include="..\..\..\core\loadrom.c" />
<ClCompile Include="..\..\..\core\m68k\m68kcpu.c">

View File

@ -104,9 +104,6 @@
<ClCompile Include="..\..\libretro.c">
<Filter>Source Files\libretro</Filter>
</ClCompile>
<ClCompile Include="..\..\..\core\input_hw\xe_a1p.c">
<Filter>Source Files\input_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\core\input_hw\activator.c">
<Filter>Source Files\input_hw</Filter>
</ClCompile>
@ -230,5 +227,11 @@
<ClCompile Include="..\..\..\core\tremor\vorbisfile.c">
<Filter>Source Files\tremor</Filter>
</ClCompile>
<ClCompile Include="..\..\..\core\input_hw\graphic_board.c">
<Filter>Source Files\input_hw</Filter>
</ClCompile>
<ClCompile Include="..\..\..\core\input_hw\xe_1ap.c">
<Filter>Source Files\input_hw</Filter>
</ClCompile>
</ItemGroup>
</Project>