libretro patch (Twinaphex)
This commit is contained in:
parent
0e9cd13cfe
commit
f50d0b4735
|
@ -1,108 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
FORMAT=libretro
|
||||
|
||||
#******************
|
||||
# PROGRAM FUNCTIONS
|
||||
#******************
|
||||
|
||||
clean()
|
||||
{
|
||||
cd src-0.2.97.26/
|
||||
make -f makefile.libretro clean
|
||||
}
|
||||
|
||||
make_libretro()
|
||||
{
|
||||
cd src-0.2.97.26/
|
||||
make -f makefile.libretro generate
|
||||
make -f makefile.libretro -j4
|
||||
}
|
||||
|
||||
make_debug()
|
||||
{
|
||||
cd src-0.2.97.26/
|
||||
make -f makefile.libretro generate
|
||||
make -f makefile.libretro -j4 DEBUG=1
|
||||
}
|
||||
|
||||
#******************
|
||||
# DISPLAY FUNCTIONS
|
||||
#******************
|
||||
|
||||
title()
|
||||
{
|
||||
echo ""
|
||||
echo "***********************"
|
||||
echo "COMPILER SCRIPT FOR $FORMAT"
|
||||
echo "***********************"
|
||||
}
|
||||
|
||||
display_clean()
|
||||
{
|
||||
echo "clean Clean the object files"
|
||||
}
|
||||
|
||||
display_make()
|
||||
{
|
||||
echo "make Compile libretro library"
|
||||
}
|
||||
|
||||
display_make_debug()
|
||||
{
|
||||
echo "make_debug Compile DEBUG libretro library"
|
||||
}
|
||||
|
||||
display_all_options()
|
||||
{
|
||||
display_clean
|
||||
display_make
|
||||
display_make_debug
|
||||
}
|
||||
|
||||
display_usage()
|
||||
{
|
||||
echo "Usage: compile_libretro.sh [options]"
|
||||
echo "Options:"
|
||||
display_all_options
|
||||
}
|
||||
|
||||
#***********************
|
||||
# MAIN CONTROL FLOW LOOP
|
||||
#***********************
|
||||
|
||||
title
|
||||
if [ ! -n "$1" ]; then
|
||||
display_usage
|
||||
else
|
||||
for i in "$@"
|
||||
do
|
||||
if [ "$i" = "help" ]; then
|
||||
display_usage
|
||||
fi
|
||||
if [ "$i" = "clean" ]; then
|
||||
echo ""
|
||||
echo "*************************************"
|
||||
echo "DOING:"
|
||||
display_clean
|
||||
echo "*************************************"
|
||||
clean
|
||||
fi
|
||||
if [ "$i" = "make" ]; then
|
||||
echo ""
|
||||
echo "*************************************"
|
||||
echo "DOING:"
|
||||
display_make
|
||||
echo "*************************************"
|
||||
make_libretro
|
||||
fi
|
||||
if [ "$i" = "make_debug" ]; then
|
||||
echo ""
|
||||
echo "*************************************"
|
||||
echo "DOING:"
|
||||
display_make
|
||||
echo "*************************************"
|
||||
make_debug
|
||||
fi
|
||||
done
|
||||
fi
|
|
@ -1,59 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ -f src/dep/generated/driverlist.h ]; then
|
||||
rm -rf src/dep/generated
|
||||
fi
|
||||
|
||||
if [ -d src/dep/generated ]; then
|
||||
echo 'Directory 'src/dep/generated' already exists, skipping creation...'
|
||||
else
|
||||
mkdir src/dep/generated
|
||||
fi
|
||||
|
||||
#generate gamelist.txt and src/dep/generated/driverlist.h
|
||||
perl src/dep/scripts/gamelist.pl -o src/dep/generated/driverlist.h -l gamelist.txt \
|
||||
src/burn/drv/capcom \
|
||||
src/burn/drv/cave \
|
||||
src/burn/drv/cps3 \
|
||||
src/burn/drv/dataeast \
|
||||
src/burn/drv/galaxian \
|
||||
src/burn/drv/irem \
|
||||
src/burn/drv/konami \
|
||||
src/burn/drv/megadrive \
|
||||
src/burn/drv/neogeo \
|
||||
src/burn/drv/pce \
|
||||
src/burn/drv/pgm \
|
||||
src/burn/drv/pre90s \
|
||||
src/burn/drv/psikyo \
|
||||
src/burn/drv/pst90s \
|
||||
src/burn/drv/sega \
|
||||
src/burn/drv/snes \
|
||||
src/burn/drv/taito \
|
||||
src/burn/drv/toaplan
|
||||
|
||||
#generate src/dep/generated/neo_sprite_func.h and src/dep/generated/neo_sprite_func_table.h
|
||||
perl src/dep/scripts/neo_sprite_func.pl -o src/dep/generated/neo_sprite_func.h
|
||||
|
||||
#generate src/dep/generated/psikyo_tile_func.h and src/dep/generated/psikyo_tile_func_table.h
|
||||
perl src/dep/scripts/psikyo_tile_func.pl -o src/dep/generated/psikyo_tile_func.h
|
||||
|
||||
#generate src/dep/generated/cave_sprite_func.h and src/dep/generated/cave_sprite_func_table.h
|
||||
perl src/dep/scripts/cave_sprite_func.pl -o src/dep/generated/cave_sprite_func.h
|
||||
|
||||
#generate src/dep/generated/cave_tile_func.h and src/dep/generated/cave_tile_func_table.h
|
||||
perl src/dep/scripts/cave_tile_func.pl -o src/dep/generated/cave_tile_func.h
|
||||
|
||||
#generate src/dep/generated/toa_gp9001_func.h and src/dep/generated/toa_gp9001_func_table.h
|
||||
perl src/dep/scripts/toa_gp9001_func.pl -o src/dep/generated/toa_gp9001_func.h
|
||||
|
||||
g++ -o pgm_sprite_create src/burn/drv/pgm/pgm_sprite_create.cpp
|
||||
./pgm_sprite_create > src/dep/generated/pgm_sprite.h
|
||||
|
||||
#compile m68kmakeecho
|
||||
gcc -o m68kmake src/cpu/m68k/m68kmake.c
|
||||
|
||||
#create m68kops.h with m68kmake
|
||||
./m68kmake src/cpu/m68k/ src/cpu/m68k/m68k_in.c
|
||||
|
||||
g++ -o ctvmake src/burn/drv/capcom/ctv_make.cpp
|
||||
./ctvmake > src/dep/generated/ctv.h
|
|
@ -1,5 +1,6 @@
|
|||
DEBUG = 0
|
||||
LIBRETRO_OPTIMIZATIONS = 0
|
||||
LIBRETRO_OPTIMIZATIONS = 1
|
||||
FRONTEND_SUPPORTS_RGB565 = 1
|
||||
|
||||
ifeq ($(platform),)
|
||||
platform = unix
|
||||
|
@ -12,6 +13,18 @@ else ifneq ($(findstring MINGW,$(shell uname -a)),)
|
|||
endif
|
||||
endif
|
||||
|
||||
# system platform
|
||||
system_platform = unix
|
||||
ifeq ($(shell uname -a),)
|
||||
system_platform = win
|
||||
EXE_EXT=.exe
|
||||
else ifneq ($(findstring Darwin,$(shell uname -a)),)
|
||||
system_platform = osx
|
||||
else ifneq ($(findstring MINGW,$(shell uname -a)),)
|
||||
system_platform = win
|
||||
endif
|
||||
|
||||
|
||||
MAIN_FBA_DIR := src
|
||||
FBA_BURN_DIR := $(MAIN_FBA_DIR)/burn
|
||||
FBA_BURN_DRIVERS_DIR := $(MAIN_FBA_DIR)/burn/drv
|
||||
|
@ -20,6 +33,8 @@ LIBRETRO_DIR := $(FBA_BURNER_DIR)/libretro
|
|||
FBA_CPU_DIR := $(MAIN_FBA_DIR)/cpu
|
||||
FBA_LIB_DIR := $(MAIN_FBA_DIR)/dep/libs
|
||||
FBA_INTERFACE_DIR := $(MAIN_FBA_DIR)/intf
|
||||
FBA_GENERATED_DIR = $(MAIN_FBA_DIR)/dep/generated
|
||||
FBA_SCRIPTS_DIR = $(MAIN_FBA_DIR)/dep/scripts
|
||||
|
||||
EXTERNAL_ZLIB = 0
|
||||
|
||||
|
@ -34,33 +49,49 @@ else ifeq ($(platform), osx)
|
|||
SHARED := -dynamiclib
|
||||
ENDIANNESS_DEFINES := -DLSB_FIRST
|
||||
else ifeq ($(platform), ps3)
|
||||
TARGET := libretro.a
|
||||
TARGET := libretro_ps3.a
|
||||
CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
|
||||
CXX = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-g++.exe
|
||||
AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
|
||||
ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
|
||||
PLATFORM_DEFINES := -D__CELLOS_LV2
|
||||
PLATFORM_DEFINES += -D__CELLOS_LV2__
|
||||
EXTERNAL_ZLIB = 1
|
||||
else ifeq ($(platform), sncps3)
|
||||
TARGET := libretro.a
|
||||
TARGET := libretro_ps3.a
|
||||
CXX = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
|
||||
CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
|
||||
AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
|
||||
ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
|
||||
PLATFORM_DEFINES += -D__CELLOS_LV2__ -DSN_TARGET_PS3
|
||||
EXTERNAL_ZLIB = 1
|
||||
else ifeq ($(platform), psl1ght)
|
||||
TARGET := libretro_psl1ght.a
|
||||
CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
|
||||
CXX = $(PS3DEV)/ppu/bin/ppu-g++$(EXE_EXT)
|
||||
AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
|
||||
ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
|
||||
PLATFORM_DEFINES += -D__CELLOS_LV2__
|
||||
EXTERNAL_ZLIB = 1
|
||||
else ifeq ($(platform), xenon)
|
||||
TARGET := libretro.a
|
||||
CC = xenon-gcc
|
||||
CXX = xenon-g++
|
||||
AR = xenon-ar
|
||||
TARGET := libretro_xenon360.a
|
||||
CC = xenon-gcc$(EXE_EXT)
|
||||
CXX = xenon-g++$(EXE_EXT)
|
||||
AR = xenon-ar$(EXE_EXT)
|
||||
ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
|
||||
PLATFORM_DEFINES := -D__LIBXENON__ -m32 -D__ppc__
|
||||
else ifeq ($(platform), ngc)
|
||||
TARGET := libretro_ngc.a
|
||||
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
|
||||
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
|
||||
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
|
||||
ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
|
||||
PLATFORM_DEFINES := -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float
|
||||
EXTERNAL_ZLIB = 1
|
||||
else ifeq ($(platform), wii)
|
||||
TARGET := libretro.a
|
||||
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc
|
||||
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++
|
||||
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar
|
||||
TARGET := libretro_wii.a
|
||||
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
|
||||
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
|
||||
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
|
||||
ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
|
||||
PLATFORM_DEFINES := -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float
|
||||
EXTERNAL_ZLIB = 1
|
||||
|
@ -73,7 +104,10 @@ else
|
|||
ENDIANNESS_DEFINES := -DLSB_FIRST
|
||||
endif
|
||||
|
||||
.PHONY: clean generate-files
|
||||
CC_SYSTEM = gcc
|
||||
CXX_SYSTEM = g++
|
||||
|
||||
.PHONY: clean generate-files generate-files-clean clean-objs
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
|
@ -114,9 +148,9 @@ BURN_BLACKLIST := $(FBA_BURNER_DIR)/un7z.cpp \
|
|||
$(FBA_CPU_DIR)/nec/necinstr.c \
|
||||
$(FBA_BURN_DIR)/drv/capcom/ctv_make.cpp
|
||||
|
||||
ifeq ($(LIBRETRO_OPTIMIZATIONS), 1)
|
||||
BURN_BLACKLIST += $(FBA_BURN_DIR)/drv/capcom/ctv.cpp
|
||||
endif
|
||||
#ifeq ($(LIBRETRO_OPTIMIZATIONS), 1)
|
||||
#BURN_BLACKLIST += $(FBA_BURN_DIR)/drv/capcom/ctv.cpp
|
||||
#endif
|
||||
|
||||
ifeq ($(EXTERNAL_ZLIB), 1)
|
||||
BURN_BLACKLIST += $(FBA_BURNER_DIR)/unzip.c \
|
||||
|
@ -192,7 +226,6 @@ INCDIRS := -I$(FBA_BURNER_DIR)/win32 \
|
|||
-I$(LIBRETRO_DIR) \
|
||||
-I$(LIBRETRO_DIR)/tchar \
|
||||
-I$(FBA_BURN_DIR) \
|
||||
-I$(FBA_BURN_DIR)/burner \
|
||||
-I$(MAIN_FBA_DIR)/cpu \
|
||||
-I$(FBA_BURN_DIR)/snd \
|
||||
-I$(FBA_BURN_DIR)/devices \
|
||||
|
@ -200,23 +233,8 @@ INCDIRS := -I$(FBA_BURNER_DIR)/win32 \
|
|||
-I$(FBA_INTERFACE_DIR)/input \
|
||||
-I$(FBA_INTERFACE_DIR)/cd \
|
||||
-I$(FBA_BURNER_DIR) \
|
||||
-I$(MAIN_FBA_DIR)/dep/generated \
|
||||
-I$(FBA_CPU_DIR) \
|
||||
-I$(FBA_CPU_DIR)/m6809 \
|
||||
-I$(FBA_CPU_DIR)/m6805 \
|
||||
-I$(FBA_CPU_DIR)/m6800 \
|
||||
-I$(FBA_CPU_DIR)/h6280 \
|
||||
-I$(FBA_CPU_DIR)/nec \
|
||||
-I$(FBA_CPU_DIR)/hd6309 \
|
||||
-I$(FBA_CPU_DIR)/arm7 \
|
||||
-I$(FBA_CPU_DIR)/i8039 \
|
||||
-I$(FBA_CPU_DIR)/konami \
|
||||
-I$(FBA_CPU_DIR)/m68k \
|
||||
-I$(FBA_CPU_DIR)/m6502 \
|
||||
-I$(FBA_CPU_DIR)/z80 \
|
||||
-I$(FBA_CPU_DIR)/sh2 \
|
||||
-I$(FBA_CPU_DIR)/s2650 \
|
||||
-I$(FBA_CPU_DIR)/arm \
|
||||
-I$(FBA_LIB_DIR)/zlib \
|
||||
-I$(FBA_BURN_DIR)/drv/capcom \
|
||||
-I$(FBA_BURN_DIR)/drv/dataeast \
|
||||
|
@ -226,11 +244,11 @@ INCDIRS := -I$(FBA_BURNER_DIR)/win32 \
|
|||
-I$(FBA_BURN_DIR)/drv/sega \
|
||||
-I$(FBA_BURN_DIR)/drv/toaplan \
|
||||
-I$(FBA_BURN_DIR)/drv/taito \
|
||||
-I$(FBA_GENERATED_DIR) \
|
||||
-I$(FBA_LIB_DIR)
|
||||
|
||||
ifeq ($(LIBRETRO_OPTIMIZATIONS), 1)
|
||||
FBA_DEFINES += -D__LIBRETRO_OPTIMIZATIONS__
|
||||
INCDIRS += -I$(MAIN_FBA_DIR)/dep/generated-libretro
|
||||
endif
|
||||
|
||||
ifeq ($(DEBUG), 1)
|
||||
|
@ -252,23 +270,87 @@ CFLAGS += $(C_STD_DEFINES) $(fpic) $(WARNINGS_DEFINES) $(FBA_DEFINES)
|
|||
CXXFLAGS += $(fpic) $(WARNINGS_DEFINES) $(FBA_DEFINES)
|
||||
LDFLAGS += $(fpic)
|
||||
|
||||
ifeq ($(FRONTEND_SUPPORTS_RGB565), 1)
|
||||
CFLAGS += -DFRONTEND_SUPPORTS_RGB565
|
||||
CXXFLAGS += -DFRONTEND_SUPPORTS_RGB565
|
||||
endif
|
||||
|
||||
ifeq ($(ZLIB_INTERNAL), 0)
|
||||
INCDIRS += -I$(FBA_LIB_DIR)
|
||||
endif
|
||||
|
||||
generate:
|
||||
rm -rf src/dep/generated
|
||||
sh ./generate_files.sh
|
||||
ifeq ($(LIBRETRO_OPTIMIZATIONS), 1)
|
||||
GENERATE_OPTS := -D__LIBRETRO_OPTIMIZATIONS__
|
||||
else
|
||||
GENERATE_OPTS :=
|
||||
endif
|
||||
|
||||
$(TARGET): generate-files $(OBJS)
|
||||
PERL = perl$(EXE_EXT)
|
||||
M68KMAKE_EXE = m68kmake$(EXE_EXT)
|
||||
CTVMAKE_EXE = ctvmake$(EXE_EXT)
|
||||
PGM_SPRITE_CREATE_EXE = pgmspritecreate$(EXE_EXT)
|
||||
EXE_PREFIX = ./
|
||||
|
||||
generate-files-clean:
|
||||
rm -rf $(FBA_GENERATED_DIR)/
|
||||
rm -rf $(FBA_CPU_DIR)/m68k/m68kopac.c
|
||||
rm -rf $(FBA_CPU_DIR)/m68k/m68kopdm.c
|
||||
rm -rf $(FBA_CPU_DIR)/m68k/m68kopnz.c
|
||||
rm -rf $(FBA_CPU_DIR)/m68k/m68kops.c
|
||||
rm -rf $(FBA_CPU_DIR)/m68k/m68kops.h
|
||||
|
||||
generate-files:
|
||||
@mkdir -p $(FBA_GENERATED_DIR) 2>/dev/null || /bin/true
|
||||
@echo "Generating $(FBA_GENERATED_DIR)/driverlist.h..."
|
||||
@echo ""
|
||||
$(PERL) $(FBA_SCRIPTS_DIR)/gamelist.pl -o $(FBA_GENERATED_DIR)/driverlist.h -l gamelist.txt $(FBA_BURN_DRIVERS_DIR)/capcom $(FBA_BURN_DRIVERS_DIR)/cave $(FBA_BURN_DRIVERS_DIR)/cps3 $(FBA_BURN_DRIVERS_DIR)/dataeast $(FBA_BURN_DRIVERS_DIR)/galaxian $(FBA_BURN_DRIVERS_DIR)/irem $(FBA_BURN_DRIVERS_DIR)/konami $(FBA_BURN_DRIVERS_DIR)/megadrive $(FBA_BURN_DRIVERS_DIR)/neogeo $(FBA_BURN_DRIVERS_DIR)/pce $(FBA_BURN_DRIVERS_DIR)/pgm $(FBA_BURN_DRIVERS_DIR)/pre90s $(FBA_BURN_DRIVERS_DIR)/psikyo $(FBA_BURN_DRIVERS_DIR)/pst90s $(FBA_BURN_DRIVERS_DIR)/sega $(FBA_BURN_DRIVERS_DIR)/snes $(FBA_BURN_DRIVERS_DIR)/taito $(FBA_BURN_DRIVERS_DIR)/toaplan
|
||||
@echo ""
|
||||
@echo "Generating $(FBA_GENERATED_DIR)/neo_sprite_func.h..."
|
||||
@echo ""
|
||||
@echo "Generating $(FBA_GENERATED_DIR)/neo_sprite_func_table.h..."
|
||||
@echo ""
|
||||
$(PERL) $(FBA_SCRIPTS_DIR)/neo_sprite_func.pl -o $(FBA_GENERATED_DIR)/neo_sprite_func.h $(LIBRETRO_OPTIMIZATIONS)
|
||||
@echo ""
|
||||
@echo "Generating $(FBA_GENERATED_DIR)/psikyo_tile_func.h..."
|
||||
@echo ""
|
||||
@echo "Generating $(FBA_GENERATED_DIR)/psikyo_tile_func_table.h..."
|
||||
@echo ""
|
||||
$(PERL) $(FBA_SCRIPTS_DIR)/psikyo_tile_func.pl -o $(FBA_GENERATED_DIR)/psikyo_tile_func.h
|
||||
@echo "Generating $(FBA_GENERATED_DIR)/cave_sprite_func.h..."
|
||||
@echo ""
|
||||
@echo "Generating[ $(FBA_GENERATED_DIR)/cave_tile_func_table.h"
|
||||
@echo ""
|
||||
$(PERL) $(FBA_SCRIPTS_DIR)/cave_sprite_func.pl -o $(FBA_GENERATED_DIR)/cave_sprite_func.h
|
||||
$(PERL) $(FBA_SCRIPTS_DIR)/cave_tile_func.pl -o $(FBA_GENERATED_DIR)/cave_tile_func.h
|
||||
@echo ""
|
||||
@echo "Generate $(FBA_GENERATED_DIR)/toa_gp9001_func_table.h"
|
||||
@echo ""
|
||||
$(PERL) $(FBA_SCRIPTS_DIR)/toa_gp9001_func.pl -o $(FBA_GENERATED_DIR)/toa_gp9001_func.h
|
||||
$(CXX_SYSTEM) $(GENERATE_OPTS) -o $(PGM_SPRITE_CREATE_EXE) $(FBA_BURN_DRIVERS_DIR)/pgm/pgm_sprite_create.cpp
|
||||
@echo ""
|
||||
@echo "Generating $(FBA_GENERATED_DIR)/pgm_sprite.h..."
|
||||
@echo ""
|
||||
$(EXE_PREFIX)$(PGM_SPRITE_CREATE_EXE) > $(FBA_GENERATED_DIR)/pgm_sprite.h
|
||||
$(CC_SYSTEM) $(GENERATE_OPTS) -o $(M68KMAKE_EXE) $(FBA_CPU_DIR)/m68k/m68kmake.c
|
||||
$(EXE_PREFIX)$(M68KMAKE_EXE) $(FBA_CPU_DIR)/m68k/ $(FBA_CPU_DIR)/m68k/m68k_in.c
|
||||
$(CXX_SYSTEM) $(GENERATE_OPTS) -o $(CTVMAKE_EXE) $(FBA_BURN_DRIVERS_DIR)/capcom/ctv_make.cpp
|
||||
@echo ""
|
||||
@echo "Generating $(FBA_GENERATED_DIR)/ctv.h..."
|
||||
@echo ""
|
||||
$(EXE_PREFIX)$(CTVMAKE_EXE) > $(FBA_GENERATED_DIR)/ctv.h
|
||||
|
||||
$(TARGET): $(OBJS)
|
||||
@echo "LD $@"
|
||||
ifeq ($(platform), ps3)
|
||||
@$(AR) rcs $@ $(OBJS)
|
||||
else ifeq ($(platform), sncps3)
|
||||
$(AR) rcs $@ $(OBJS)
|
||||
else ifeq ($(platform), psl1ght)
|
||||
$(AR) rcs $@ $(OBJS)
|
||||
else ifeq ($(platform), xenon)
|
||||
@$(AR) rcs $@ $(OBJS)
|
||||
else ifeq ($(platform), ngc)
|
||||
@$(AR) rcs $@ $(OBJS)
|
||||
else ifeq ($(platform), wii)
|
||||
@$(AR) rcs $@ $(OBJS)
|
||||
else
|
||||
|
@ -283,9 +365,12 @@ endif
|
|||
@echo "CC $<"
|
||||
@$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS)
|
||||
|
||||
clean-objs:
|
||||
rm -f $(OBJS)
|
||||
|
||||
clean:
|
||||
rm -f $(TARGET)
|
||||
rm -f $(OBJS)
|
||||
ifeq ($(GENERATE_FILES), 1)
|
||||
rm -rf src/dep/generated
|
||||
endif
|
||||
rm -f $(M68KMAKE_EXE)
|
||||
rm -f $(PGM_SPRITE_CREATE_EXE)
|
||||
rm -f $(CTVMAKE_EXE)
|
||||
|
|
|
@ -0,0 +1,145 @@
|
|||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
ifeq ($(TARGET_ARCH),arm)
|
||||
LOCAL_CXXFLAGS += -DANDROID_ARM
|
||||
LOCAL_ARM_MODE := arm
|
||||
LOCAL_C_FLAGS += -fuse-ld=gold
|
||||
LOCAL_CPP_FLAGS+= -fuse-ld=gold
|
||||
LOCAL_LDLIBS := -fuse-ld=gold
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
LOCAL_CXXFLAGS += -DANDROID_X86
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ARCH),mips)
|
||||
LOCAL_CXXFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__
|
||||
endif
|
||||
|
||||
MAIN_FBA_DIR := ../../../src
|
||||
FBA_BURN_DIR := $(MAIN_FBA_DIR)/burn
|
||||
FBA_BURN_DRIVERS_DIR := $(MAIN_FBA_DIR)/burn/drv
|
||||
FBA_BURNER_DIR := $(MAIN_FBA_DIR)/burner
|
||||
LIBRETRO_DIR := $(FBA_BURNER_DIR)/libretro
|
||||
FBA_CPU_DIR := $(MAIN_FBA_DIR)/cpu
|
||||
FBA_LIB_DIR := $(MAIN_FBA_DIR)/dep/libs
|
||||
FBA_INTERFACE_DIR := $(MAIN_FBA_DIR)/intf
|
||||
FBA_GENERATED_DIR = $(MAIN_FBA_DIR)/dep/generated
|
||||
FBA_SCRIPTS_DIR = $(MAIN_FBA_DIR)/dep/scripts
|
||||
|
||||
BURN_BLACKLIST := $(FBA_BURNER_DIR)/un7z.cpp \
|
||||
$(FBA_CPU_DIR)/arm7/arm7exec.c \
|
||||
$(FBA_CPU_DIR)/arm7/arm7core.c \
|
||||
$(FBA_CPU_DIR)/hd6309/6309tbl.c \
|
||||
$(FBA_CPU_DIR)/hd6309/6309ops.c \
|
||||
$(FBA_CPU_DIR)/konami/konamtbl.c \
|
||||
$(FBA_CPU_DIR)/konami/konamops.c \
|
||||
$(FBA_CPU_DIR)/m68k/m68k_in.c \
|
||||
$(FBA_CPU_DIR)/m6800/6800ops.c \
|
||||
$(FBA_CPU_DIR)/m6800/6800tbl.c \
|
||||
$(FBA_CPU_DIR)/m6805/6805ops.c \
|
||||
$(FBA_CPU_DIR)/m6809/6809ops.c \
|
||||
$(FBA_CPU_DIR)/m6809/6809tbl.c \
|
||||
$(FBA_CPU_DIR)/sh2/mksh2.cpp \
|
||||
$(FBA_CPU_DIR)/sh2/mksh2-x86.cpp \
|
||||
$(FBA_CPU_DIR)/m68k/m68kmake.c \
|
||||
$(FBA_BURNER_DIR)/wave_writer.cpp \
|
||||
$(FBA_CPU_DIR)/m68k/m68kdasm.c \
|
||||
$(FBA_LIBRETRO_DIR)/menu.cpp \
|
||||
$(FBA_CPU_DIR)/sh2/mksh2.cpp \
|
||||
$(FBA_BURNER_DIR)/sshot.cpp \
|
||||
$(FBA_BURNER_DIR)/conc.cpp \
|
||||
$(FBA_BURNER_DIR)/dat.cpp \
|
||||
$(FBA_BURNER_DIR)/cong.cpp \
|
||||
$(FBA_BURNER_DIR)/image.cpp \
|
||||
$(FBA_BURNER_DIR)/misc.cpp \
|
||||
$(FBA_CPU_DIR)/h6280/tblh6280.c \
|
||||
$(FBA_CPU_DIR)/m6502/t65sc02.c \
|
||||
$(FBA_CPU_DIR)/m6502/t65c02.c \
|
||||
$(FBA_CPU_DIR)/m6502/tdeco16.c \
|
||||
$(FBA_CPU_DIR)/m6502/tn2a03.c \
|
||||
$(FBA_CPU_DIR)/m6502/t6502.c \
|
||||
$(FBA_CPU_DIR)/nec/v25sfr.c \
|
||||
$(FBA_CPU_DIR)/nec/v25instr.c \
|
||||
$(FBA_CPU_DIR)/nec/necinstr.c \
|
||||
$(FBA_BURN_DIR)/drv/capcom/ctv_make.cpp
|
||||
|
||||
FBA_BURN_DIRS := $(FBA_BURN_DIR) \
|
||||
$(FBA_BURN_DIR)/devices \
|
||||
$(FBA_BURN_DIR)/snd \
|
||||
$(FBA_BURN_DRIVERS_DIR)/capcom \
|
||||
$(FBA_BURN_DRIVERS_DIR)/cave \
|
||||
$(FBA_BURN_DRIVERS_DIR)/cps3 \
|
||||
$(FBA_BURN_DRIVERS_DIR)/dataeast \
|
||||
$(FBA_BURN_DRIVERS_DIR)/galaxian \
|
||||
$(FBA_BURN_DRIVERS_DIR)/irem \
|
||||
$(FBA_BURN_DRIVERS_DIR)/konami \
|
||||
$(FBA_BURN_DRIVERS_DIR)/megadrive \
|
||||
$(FBA_BURN_DRIVERS_DIR)/neogeo \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pce \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pgm \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pre90s \
|
||||
$(FBA_BURN_DRIVERS_DIR)/psikyo \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pst90s \
|
||||
$(FBA_BURN_DRIVERS_DIR)/sega \
|
||||
$(FBA_BURN_DRIVERS_DIR)/snes \
|
||||
$(FBA_BURN_DRIVERS_DIR)/taito \
|
||||
$(FBA_BURN_DRIVERS_DIR)/toaplan
|
||||
|
||||
FBA_CPU_DIRS := $(FBA_CPU_DIR) \
|
||||
$(FBA_CPU_DIR)/arm \
|
||||
$(FBA_CPU_DIR)/arm7 \
|
||||
$(FBA_CPU_DIR)/h6280 \
|
||||
$(FBA_CPU_DIR)/hd6309 \
|
||||
$(FBA_CPU_DIR)/i8039 \
|
||||
$(FBA_CPU_DIR)/konami \
|
||||
$(FBA_CPU_DIR)/m68k \
|
||||
$(FBA_CPU_DIR)/m6502 \
|
||||
$(FBA_CPU_DIR)/m6800 \
|
||||
$(FBA_CPU_DIR)/m6805 \
|
||||
$(FBA_CPU_DIR)/m6809 \
|
||||
$(FBA_CPU_DIR)/nec \
|
||||
$(FBA_CPU_DIR)/s2650 \
|
||||
$(FBA_CPU_DIR)/sh2 \
|
||||
$(FBA_CPU_DIR)/z80
|
||||
|
||||
FBA_LIB_DIRS := $(FBA_LIB_DIR)/zlib
|
||||
|
||||
FBA_SRC_DIRS := $(FBA_BURNER_DIR) $(FBA_BURN_DIRS) $(FBA_CPU_DIRS) $(FBA_BURNER_DIRS) $(FBA_LIB_DIRS)
|
||||
|
||||
LOCAL_MODULE := libretro
|
||||
|
||||
LOCAL_SRC_FILES := $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.cpp))) $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.c))) $(LIBRETRO_DIR)/libretro.cpp $(LIBRETRO_DIR)/neocdlist.cpp
|
||||
|
||||
|
||||
LOCAL_CXXFLAGS += -O3 -fno-stack-protector -DUSE_SPEEDHACKS -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DLSB_FIRST -D__LIBRETRO__ -Wno-write-strings -DUSE_FILE32API -DANDROID -DFRONTEND_SUPPORTS_RGB565
|
||||
LOCAL_CFLAGS = -O3 -fno-stack-protector -DUSE_SPEEDHACKS -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DLSB_FIRST -D__LIBRETRO__ -Wno-write-strings -DUSE_FILE32API -DANDROID -DFRONTEND_SUPPORTS_RGB565
|
||||
|
||||
LOCAL_C_INCLUDES = $(FBA_BURNER_DIR)/win32 \
|
||||
$(LIBRETRO_DIR) \
|
||||
$(LIBRETRO_DIR)/tchar \
|
||||
$(FBA_BURN_DIR) \
|
||||
$(MAIN_FBA_DIR)/cpu \
|
||||
$(FBA_BURN_DIR)/snd \
|
||||
$(FBA_BURN_DIR)/devices \
|
||||
$(FBA_INTERFACE_DIR) \
|
||||
$(FBA_INTERFACE_DIR)/input \
|
||||
$(FBA_INTERFACE_DIR)/cd \
|
||||
$(FBA_BURNER_DIR) \
|
||||
$(FBA_CPU_DIR) \
|
||||
$(FBA_CPU_DIR)/i8039 \
|
||||
$(FBA_LIB_DIR)/zlib \
|
||||
$(FBA_BURN_DIR)/drv/capcom \
|
||||
$(FBA_BURN_DIR)/drv/dataeast \
|
||||
$(FBA_BURN_DIR)/drv/cave \
|
||||
$(FBA_BURN_DIR)/drv/neogeo \
|
||||
$(FBA_BURN_DIR)/drv/psikyo \
|
||||
$(FBA_BURN_DIR)/drv/sega \
|
||||
$(FBA_BURN_DIR)/drv/toaplan \
|
||||
$(FBA_BURN_DIR)/drv/taito \
|
||||
$(FBA_GENERATED_DIR) \
|
||||
$(FBA_LIB_DIR)
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
|
@ -0,0 +1,2 @@
|
|||
APP_STL := stlport_static
|
||||
APP_ABI := all
|
|
@ -0,0 +1,30 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visualstudio-2003-libretro-xbox1", "fba_vs2003_libretro_xbox1.vcproj", "{812368D1-1F0C-4480-81F1-7FB1EC247E58}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfiguration) = preSolution
|
||||
Debug = Debug
|
||||
Profile = Profile
|
||||
Profile_FastCap = Profile_FastCap
|
||||
Release = Release
|
||||
Release_LTCG = Release_LTCG
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Debug.ActiveCfg = Debug|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Debug.Build.0 = Debug|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Profile.ActiveCfg = Profile|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Profile.Build.0 = Profile|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Profile_FastCap.ActiveCfg = Profile_FastCap|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Profile_FastCap.Build.0 = Profile_FastCap|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Release.ActiveCfg = Release|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Release.Build.0 = Release|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Release_LTCG.ActiveCfg = Release_LTCG|Xbox
|
||||
{812368D1-1F0C-4480-81F1-7FB1EC247E58}.Release_LTCG.Build.0 = Release_LTCG|Xbox
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,249 @@
|
|||
// ISO C9x compliant stdint.h for Microsoft Visual Studio
|
||||
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
||||
//
|
||||
// Copyright (c) 2006-2008 Alexander Chemeris
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
//
|
||||
// 1. Redistributions of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
//
|
||||
// 2. 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.
|
||||
//
|
||||
// 3. The name of the author may be used to endorse or promote products
|
||||
// derived from this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef __RARCH_STDINT_H
|
||||
#define __RARCH_STDINT_H
|
||||
|
||||
#if _MSC_VER && (_MSC_VER < 1600)
|
||||
//pre-MSVC 2010 needs an implementation of stdint.h
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
|
||||
// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
|
||||
// or compiler give many errors like this:
|
||||
// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
# include <wchar.h>
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
// Define _W64 macros to mark types changing their size, like intptr_t.
|
||||
#ifndef _W64
|
||||
# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
|
||||
# define _W64 __w64
|
||||
# else
|
||||
# define _W64
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
// 7.18.1 Integer types
|
||||
|
||||
// 7.18.1.1 Exact-width integer types
|
||||
|
||||
// Visual Studio 6 and Embedded Visual C++ 4 doesn't
|
||||
// realize that, e.g. char has the same size as __int8
|
||||
// so we give up on __intX for them.
|
||||
#if (_MSC_VER < 1300)
|
||||
typedef signed char int8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
#else
|
||||
typedef signed __int8 int8_t;
|
||||
typedef signed __int16 int16_t;
|
||||
typedef signed __int32 int32_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef unsigned __int16 uint16_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
#endif
|
||||
typedef signed __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
|
||||
|
||||
// 7.18.1.2 Minimum-width integer types
|
||||
typedef int8_t int_least8_t;
|
||||
typedef int16_t int_least16_t;
|
||||
typedef int32_t int_least32_t;
|
||||
typedef int64_t int_least64_t;
|
||||
typedef uint8_t uint_least8_t;
|
||||
typedef uint16_t uint_least16_t;
|
||||
typedef uint32_t uint_least32_t;
|
||||
typedef uint64_t uint_least64_t;
|
||||
|
||||
// 7.18.1.3 Fastest minimum-width integer types
|
||||
typedef int8_t int_fast8_t;
|
||||
typedef int16_t int_fast16_t;
|
||||
typedef int32_t int_fast32_t;
|
||||
typedef int64_t int_fast64_t;
|
||||
typedef uint8_t uint_fast8_t;
|
||||
typedef uint16_t uint_fast16_t;
|
||||
typedef uint32_t uint_fast32_t;
|
||||
typedef uint64_t uint_fast64_t;
|
||||
|
||||
// 7.18.1.4 Integer types capable of holding object pointers
|
||||
#ifdef _WIN64 // [
|
||||
typedef signed __int64 intptr_t;
|
||||
typedef unsigned __int64 uintptr_t;
|
||||
#else // _WIN64 ][
|
||||
typedef _W64 signed int intptr_t;
|
||||
typedef _W64 unsigned int uintptr_t;
|
||||
#endif // _WIN64 ]
|
||||
|
||||
// 7.18.1.5 Greatest-width integer types
|
||||
typedef int64_t intmax_t;
|
||||
typedef uint64_t uintmax_t;
|
||||
|
||||
|
||||
// 7.18.2 Limits of specified-width integer types
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259
|
||||
|
||||
// 7.18.2.1 Limits of exact-width integer types
|
||||
#define INT8_MIN ((int8_t)_I8_MIN)
|
||||
#define INT8_MAX _I8_MAX
|
||||
#define INT16_MIN ((int16_t)_I16_MIN)
|
||||
#define INT16_MAX _I16_MAX
|
||||
#define INT32_MIN ((int32_t)_I32_MIN)
|
||||
#define INT32_MAX _I32_MAX
|
||||
#define INT64_MIN ((int64_t)_I64_MIN)
|
||||
#define INT64_MAX _I64_MAX
|
||||
#define UINT8_MAX _UI8_MAX
|
||||
#define UINT16_MAX _UI16_MAX
|
||||
#define UINT32_MAX _UI32_MAX
|
||||
#define UINT64_MAX _UI64_MAX
|
||||
|
||||
// 7.18.2.2 Limits of minimum-width integer types
|
||||
#define INT_LEAST8_MIN INT8_MIN
|
||||
#define INT_LEAST8_MAX INT8_MAX
|
||||
#define INT_LEAST16_MIN INT16_MIN
|
||||
#define INT_LEAST16_MAX INT16_MAX
|
||||
#define INT_LEAST32_MIN INT32_MIN
|
||||
#define INT_LEAST32_MAX INT32_MAX
|
||||
#define INT_LEAST64_MIN INT64_MIN
|
||||
#define INT_LEAST64_MAX INT64_MAX
|
||||
#define UINT_LEAST8_MAX UINT8_MAX
|
||||
#define UINT_LEAST16_MAX UINT16_MAX
|
||||
#define UINT_LEAST32_MAX UINT32_MAX
|
||||
#define UINT_LEAST64_MAX UINT64_MAX
|
||||
|
||||
// 7.18.2.3 Limits of fastest minimum-width integer types
|
||||
#define INT_FAST8_MIN INT8_MIN
|
||||
#define INT_FAST8_MAX INT8_MAX
|
||||
#define INT_FAST16_MIN INT16_MIN
|
||||
#define INT_FAST16_MAX INT16_MAX
|
||||
#define INT_FAST32_MIN INT32_MIN
|
||||
#define INT_FAST32_MAX INT32_MAX
|
||||
#define INT_FAST64_MIN INT64_MIN
|
||||
#define INT_FAST64_MAX INT64_MAX
|
||||
#define UINT_FAST8_MAX UINT8_MAX
|
||||
#define UINT_FAST16_MAX UINT16_MAX
|
||||
#define UINT_FAST32_MAX UINT32_MAX
|
||||
#define UINT_FAST64_MAX UINT64_MAX
|
||||
|
||||
// 7.18.2.4 Limits of integer types capable of holding object pointers
|
||||
#ifdef _WIN64 // [
|
||||
# define INTPTR_MIN INT64_MIN
|
||||
# define INTPTR_MAX INT64_MAX
|
||||
# define UINTPTR_MAX UINT64_MAX
|
||||
#else // _WIN64 ][
|
||||
# define INTPTR_MIN INT32_MIN
|
||||
# define INTPTR_MAX INT32_MAX
|
||||
# define UINTPTR_MAX UINT32_MAX
|
||||
#endif // _WIN64 ]
|
||||
|
||||
// 7.18.2.5 Limits of greatest-width integer types
|
||||
#define INTMAX_MIN INT64_MIN
|
||||
#define INTMAX_MAX INT64_MAX
|
||||
#define UINTMAX_MAX UINT64_MAX
|
||||
|
||||
// 7.18.3 Limits of other integer types
|
||||
|
||||
#ifdef _WIN64 // [
|
||||
# define PTRDIFF_MIN _I64_MIN
|
||||
# define PTRDIFF_MAX _I64_MAX
|
||||
#else // _WIN64 ][
|
||||
# define PTRDIFF_MIN _I32_MIN
|
||||
# define PTRDIFF_MAX _I32_MAX
|
||||
#endif // _WIN64 ]
|
||||
|
||||
#define SIG_ATOMIC_MIN INT_MIN
|
||||
#define SIG_ATOMIC_MAX INT_MAX
|
||||
|
||||
#ifndef SIZE_MAX // [
|
||||
# ifdef _WIN64 // [
|
||||
# define SIZE_MAX _UI64_MAX
|
||||
# else // _WIN64 ][
|
||||
# define SIZE_MAX _UI32_MAX
|
||||
# endif // _WIN64 ]
|
||||
#endif // SIZE_MAX ]
|
||||
|
||||
// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
|
||||
#ifndef WCHAR_MIN // [
|
||||
# define WCHAR_MIN 0
|
||||
#endif // WCHAR_MIN ]
|
||||
#ifndef WCHAR_MAX // [
|
||||
# define WCHAR_MAX _UI16_MAX
|
||||
#endif // WCHAR_MAX ]
|
||||
|
||||
#define WINT_MIN 0
|
||||
#define WINT_MAX _UI16_MAX
|
||||
|
||||
#endif // __STDC_LIMIT_MACROS ]
|
||||
|
||||
|
||||
// 7.18.4 Limits of other integer types
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260
|
||||
|
||||
// 7.18.4.1 Macros for minimum-width integer constants
|
||||
|
||||
#define INT8_C(val) val##i8
|
||||
#define INT16_C(val) val##i16
|
||||
#define INT32_C(val) val##i32
|
||||
#define INT64_C(val) val##i64
|
||||
|
||||
#define UINT8_C(val) val##ui8
|
||||
#define UINT16_C(val) val##ui16
|
||||
#define UINT32_C(val) val##ui32
|
||||
#define UINT64_C(val) val##ui64
|
||||
|
||||
// 7.18.4.2 Macros for greatest-width integer constants
|
||||
#define INTMAX_C INT64_C
|
||||
#define UINTMAX_C UINT64_C
|
||||
|
||||
#endif // __STDC_CONSTANT_MACROS ]
|
||||
|
||||
#else
|
||||
//sanity for everything else
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -0,0 +1,327 @@
|
|||
/* zconf.h -- configuration of the zlib compression library
|
||||
* Copyright (C) 1995-2005 Jean-loup Gailly.
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* @(#) $Id$ */
|
||||
|
||||
#ifndef ZCONF_H
|
||||
#define ZCONF_H
|
||||
|
||||
/* added for file_extractor; OK to remove, just increases executable size */
|
||||
#define DYNAMIC_CRC_TABLE
|
||||
|
||||
/*
|
||||
* If you *really* need a unique prefix for all types and library functions,
|
||||
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
|
||||
*/
|
||||
#ifdef Z_PREFIX
|
||||
# define deflateInit_ z_deflateInit_
|
||||
# define deflate z_deflate
|
||||
# define deflateEnd z_deflateEnd
|
||||
# define inflateInit_ z_inflateInit_
|
||||
# define inflate z_inflate
|
||||
# define inflateEnd z_inflateEnd
|
||||
# define deflateInit2_ z_deflateInit2_
|
||||
# define deflateSetDictionary z_deflateSetDictionary
|
||||
# define deflateCopy z_deflateCopy
|
||||
# define deflateReset z_deflateReset
|
||||
# define deflateParams z_deflateParams
|
||||
# define deflateBound z_deflateBound
|
||||
# define deflatePrime z_deflatePrime
|
||||
# define inflateInit2_ z_inflateInit2_
|
||||
# define inflateSetDictionary z_inflateSetDictionary
|
||||
# define inflateSync z_inflateSync
|
||||
# define inflateSyncPoint z_inflateSyncPoint
|
||||
# define inflateCopy z_inflateCopy
|
||||
# define inflateReset z_inflateReset
|
||||
# define inflateBack z_inflateBack
|
||||
# define inflateBackEnd z_inflateBackEnd
|
||||
# define compress z_compress
|
||||
# define compress2 z_compress2
|
||||
# define compressBound z_compressBound
|
||||
# define uncompress z_uncompress
|
||||
# define adler32 z_adler32
|
||||
# define crc32 z_crc32
|
||||
# define get_crc_table z_get_crc_table
|
||||
# define zError z_zError
|
||||
|
||||
# define alloc_func z_alloc_func
|
||||
# define free_func z_free_func
|
||||
# define in_func z_in_func
|
||||
# define out_func z_out_func
|
||||
# define Byte z_Byte
|
||||
# define uInt z_uInt
|
||||
# define uLong z_uLong
|
||||
# define Bytef z_Bytef
|
||||
# define charf z_charf
|
||||
# define intf z_intf
|
||||
# define uIntf z_uIntf
|
||||
# define uLongf z_uLongf
|
||||
# define voidpf z_voidpf
|
||||
# define voidp z_voidp
|
||||
#endif
|
||||
|
||||
#if defined(__MSDOS__) && !defined(MSDOS)
|
||||
# define MSDOS
|
||||
#endif
|
||||
#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
|
||||
# define OS2
|
||||
#endif
|
||||
#if defined(_WINDOWS) && !defined(WINDOWS)
|
||||
# define WINDOWS
|
||||
#endif
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
|
||||
# ifndef WIN32
|
||||
# define WIN32
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
||||
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
||||
# ifndef SYS16BIT
|
||||
# define SYS16BIT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compile with -DMAXSEG_64K if the alloc function cannot allocate more
|
||||
* than 64k bytes at a time (needed on systems with 16-bit int).
|
||||
*/
|
||||
#ifdef SYS16BIT
|
||||
# define MAXSEG_64K
|
||||
#endif
|
||||
#ifdef MSDOS
|
||||
# define UNALIGNED_OK
|
||||
#endif
|
||||
|
||||
#ifdef __STDC_VERSION__
|
||||
# ifndef STDC
|
||||
# define STDC
|
||||
# endif
|
||||
# if __STDC_VERSION__ >= 199901L
|
||||
# ifndef STDC99
|
||||
# define STDC99
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#ifndef STDC
|
||||
# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
|
||||
# define const /* note: need a more gentle solution here */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Some Mac compilers merge all .h files incorrectly: */
|
||||
#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
|
||||
# define NO_DUMMY_DECL
|
||||
#endif
|
||||
|
||||
/* Maximum value for memLevel in deflateInit2 */
|
||||
#ifndef MAX_MEM_LEVEL
|
||||
# ifdef MAXSEG_64K
|
||||
# define MAX_MEM_LEVEL 8
|
||||
# else
|
||||
# define MAX_MEM_LEVEL 9
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Maximum value for windowBits in deflateInit2 and inflateInit2.
|
||||
* WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
|
||||
* created by gzip. (Files created by minigzip can still be extracted by
|
||||
* gzip.)
|
||||
*/
|
||||
#ifndef MAX_WBITS
|
||||
# define MAX_WBITS 15 /* 32K LZ77 window */
|
||||
#endif
|
||||
|
||||
/* The memory requirements for deflate are (in bytes):
|
||||
(1 << (windowBits+2)) + (1 << (memLevel+9))
|
||||
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
|
||||
plus a few kilobytes for small objects. For example, if you want to reduce
|
||||
the default memory requirements from 256K to 128K, compile with
|
||||
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
|
||||
Of course this will generally degrade compression (there's no free lunch).
|
||||
|
||||
The memory requirements for inflate are (in bytes) 1 << windowBits
|
||||
that is, 32K for windowBits=15 (default value) plus a few kilobytes
|
||||
for small objects.
|
||||
*/
|
||||
|
||||
/* Type declarations */
|
||||
|
||||
#ifndef OF /* function prototypes */
|
||||
# ifdef STDC
|
||||
# define OF(args) args
|
||||
# else
|
||||
# define OF(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The following definitions for FAR are needed only for MSDOS mixed
|
||||
* model programming (small or medium model with some far allocations).
|
||||
* This was tested only with MSC; for other MSDOS compilers you may have
|
||||
* to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
|
||||
* just define FAR to be empty.
|
||||
*/
|
||||
#ifdef SYS16BIT
|
||||
# if defined(M_I86SM) || defined(M_I86MM)
|
||||
/* MSC small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef _MSC_VER
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
# if (defined(__SMALL__) || defined(__MEDIUM__))
|
||||
/* Turbo C small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef __BORLANDC__
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(WINDOWS) || defined(WIN32)
|
||||
/* If building or using zlib as a DLL, define ZLIB_DLL.
|
||||
* This is not mandatory, but it offers a little performance increase.
|
||||
*/
|
||||
# ifdef ZLIB_DLL
|
||||
# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXTERN extern __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
# endif /* ZLIB_DLL */
|
||||
/* If building or using zlib with the WINAPI/WINAPIV calling convention,
|
||||
* define ZLIB_WINAPI.
|
||||
* Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
|
||||
*/
|
||||
# ifdef ZLIB_WINAPI
|
||||
# ifdef FAR
|
||||
# undef FAR
|
||||
# endif
|
||||
# include <windows.h>
|
||||
/* No need for _export, use ZLIB.DEF instead. */
|
||||
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
|
||||
# define ZEXPORT WINAPI
|
||||
# ifdef WIN32
|
||||
# define ZEXPORTVA WINAPIV
|
||||
# else
|
||||
# define ZEXPORTVA FAR CDECL
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined (__BEOS__)
|
||||
# ifdef ZLIB_DLL
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXPORT __declspec(dllexport)
|
||||
# define ZEXPORTVA __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXPORT __declspec(dllimport)
|
||||
# define ZEXPORTVA __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef ZEXTERN
|
||||
# define ZEXTERN extern
|
||||
#endif
|
||||
#ifndef ZEXPORT
|
||||
# define ZEXPORT
|
||||
#endif
|
||||
#ifndef ZEXPORTVA
|
||||
# define ZEXPORTVA
|
||||
#endif
|
||||
|
||||
#ifndef FAR
|
||||
# define FAR
|
||||
#endif
|
||||
|
||||
#if !defined(__MACTYPES__)
|
||||
typedef unsigned char Byte; /* 8 bits */
|
||||
#endif
|
||||
typedef unsigned int uInt; /* 16 bits or more */
|
||||
typedef unsigned long uLong; /* 32 bits or more */
|
||||
|
||||
#ifdef SMALL_MEDIUM
|
||||
/* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
|
||||
# define Bytef Byte FAR
|
||||
#else
|
||||
typedef Byte FAR Bytef;
|
||||
#endif
|
||||
typedef char FAR charf;
|
||||
typedef int FAR intf;
|
||||
typedef uInt FAR uIntf;
|
||||
typedef uLong FAR uLongf;
|
||||
|
||||
#ifdef STDC
|
||||
typedef void const *voidpc;
|
||||
typedef void FAR *voidpf;
|
||||
typedef void *voidp;
|
||||
#else
|
||||
typedef Byte const *voidpc;
|
||||
typedef Byte FAR *voidpf;
|
||||
typedef Byte *voidp;
|
||||
#endif
|
||||
|
||||
#ifndef SEEK_SET
|
||||
# define SEEK_SET 0 /* Seek from beginning of file. */
|
||||
# define SEEK_CUR 1 /* Seek from current position. */
|
||||
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
|
||||
#endif
|
||||
#ifndef z_off_t
|
||||
# define z_off_t long
|
||||
#endif
|
||||
|
||||
#if defined(__OS400__)
|
||||
# define NO_vsnprintf
|
||||
#endif
|
||||
|
||||
#if defined(__MVS__)
|
||||
# define NO_vsnprintf
|
||||
# ifdef FAR
|
||||
# undef FAR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* MVS linker does not support external names larger than 8 bytes */
|
||||
#if defined(__MVS__)
|
||||
# pragma map(deflateInit_,"DEIN")
|
||||
# pragma map(deflateInit2_,"DEIN2")
|
||||
# pragma map(deflateEnd,"DEEND")
|
||||
# pragma map(deflateBound,"DEBND")
|
||||
# pragma map(inflateInit_,"ININ")
|
||||
# pragma map(inflateInit2_,"ININ2")
|
||||
# pragma map(inflateEnd,"INEND")
|
||||
# pragma map(inflateSync,"INSY")
|
||||
# pragma map(inflateSetDictionary,"INSEDI")
|
||||
# pragma map(compressBound,"CMBND")
|
||||
# pragma map(inflate_table,"INTABL")
|
||||
# pragma map(inflate_fast,"INFA")
|
||||
# pragma map(inflate_copyright,"INCOPY")
|
||||
#endif
|
||||
|
||||
#endif /* ZCONF_H */
|
File diff suppressed because it is too large
Load Diff
|
@ -3008,12 +3008,16 @@ void __fastcall Blswhstl68KWriteWord(UINT32 a, UINT16 d)
|
|||
default: {
|
||||
bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void tmnt2_protection_write()
|
||||
{
|
||||
UINT32 src_addr, dst_addr, mod_addr, attr1, code, attr2, cbase, cmod, color;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _XBOX1
|
||||
#define pow powf
|
||||
#endif
|
||||
|
||||
static void tmnt2_protection_write()
|
||||
{
|
||||
UINT32 src_addr, dst_addr, mod_addr, attr1, code, attr2, cbase, cmod, color;
|
||||
INT32 xoffs, yoffs, xmod, ymod, zmod, xzoom, yzoom, i;
|
||||
UINT16 *mcu;
|
||||
UINT16 src[4], mod[24];
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "tiles_generic.h"
|
||||
#include "sh2.h"
|
||||
#include "sh2_intf.h"
|
||||
|
||||
static UINT8 DrvInputPort0[8] = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||
static UINT8 DrvInputPort1[8] = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
|
|
@ -10,11 +10,7 @@
|
|||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#if defined(__LIBRETRO__) && defined(_XBOX)
|
||||
#include <tchar.h>
|
||||
#else
|
||||
#include "tchar.h"
|
||||
#endif
|
||||
|
||||
// Macro to make quoted strings
|
||||
#define MAKE_STRING_2(s) #s
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
#ifndef _LIBRETRO_OPTIMIZATIONS_H_
|
||||
#define _LIBRETRO_OPTIMIZATIONS_H_
|
||||
|
||||
#define LIBRETRO_COLOR_15BPP_BGR(color) ((((color & 0x1f) << 10) | (((color & 0x3e0) >> 5) << 5) | (((color & 0x7c00) >> 10))) & 0x7fff)
|
||||
#define BurnHighCol LIBRETRO_COLOR_CONVERT
|
||||
|
||||
#ifdef FRONTEND_SUPPORTS_RGB565
|
||||
#define LIBRETRO_COLOR_15BPP_XBGR(color, unused) (((color & 0x001f) << 11) | ((color & 0x03e0) << 1) | ((color & 0x7c00) >> 10))
|
||||
#define LIBRETRO_COLOR_CONVERT(r, g, b, a) (((r << 8) & 0xf800) | ((g << 3) & 0x07e0) | ((b >> 3) & 0x001f))
|
||||
#else
|
||||
#define LIBRETRO_COLOR_15BPP_XBGR(color, unused) ((((color & 0x1f) << 10) | (((color & 0x3e0) >> 5) << 5) | (((color & 0x7c00) >> 10))) & 0x7fff)
|
||||
#define LIBRETRO_COLOR_CONVERT(r, g, b, a) (((r << 7) & 0x7c00) | ((g << 2) & 0x03e0) | ((b >> 3) & 0x001f))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _BURNER_LIBRETRO_H
|
||||
|
||||
#include "gameinp.h"
|
||||
#include "inp_keys.h"
|
||||
#include "input/inp_keys.h"
|
||||
|
||||
extern int bDrvOkay;
|
||||
extern int bRunPause;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,27 +3,66 @@
|
|||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include <limits.h>
|
||||
|
||||
// Hack applied for MSVC when compiling in C89 mode as it isn't C99 compliant.
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#else
|
||||
#if defined(_MSC_VER) && !defined(SN_TARGET_PS3) && !defined(__cplusplus)
|
||||
#define bool unsigned char
|
||||
#define true 1
|
||||
#define false 0
|
||||
#else
|
||||
#include <stdbool.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Used for checking API/ABI mismatches that can break libretro implementations.
|
||||
// It is not incremented for compatible changes.
|
||||
#define RETRO_API_VERSION 1
|
||||
|
||||
// Libretro's fundamental device abstractions.
|
||||
#define RETRO_DEVICE_MASK 0xff
|
||||
#define RETRO_DEVICE_NONE 0
|
||||
|
||||
// The JOYPAD is called RetroPad. It is essentially a Super Nintendo controller,
|
||||
// but with additional L2/R2/L3/R3 buttons, similar to a PS1 DualShock.
|
||||
#define RETRO_DEVICE_JOYPAD 1
|
||||
|
||||
// The mouse is a simple mouse, similar to Super Nintendo's mouse.
|
||||
// X and Y coordinates are reported relatively to last poll (poll callback).
|
||||
// It is up to the libretro implementation to keep track of where the mouse pointer is supposed to be on the screen.
|
||||
// The frontend must make sure not to interfere with its own hardware mouse pointer.
|
||||
#define RETRO_DEVICE_MOUSE 2
|
||||
|
||||
// KEYBOARD device lets one poll for raw key pressed.
|
||||
// It is poll based, so input callback will return with the current pressed state.
|
||||
#define RETRO_DEVICE_KEYBOARD 3
|
||||
|
||||
// Lightgun X/Y coordinates are reported relatively to last poll, similar to mouse.
|
||||
#define RETRO_DEVICE_LIGHTGUN 4
|
||||
|
||||
// The ANALOG device is an extension to JOYPAD (RetroPad).
|
||||
// Similar to DualShock it adds two analog sticks.
|
||||
// This is treated as a separate device type as it returns values in the full analog range
|
||||
// of [-0x8000, 0x7fff]. Positive X axis is right. Positive Y axis is down.
|
||||
// Only use ANALOG type when polling for analog values of the axes.
|
||||
#define RETRO_DEVICE_ANALOG 5
|
||||
|
||||
// These device types are specializations of the base types above.
|
||||
// They should only be used in retro_set_controller_type() to inform libretro implementations
|
||||
// about use of a very specific device type.
|
||||
//
|
||||
// In input state callback, however, only the base type should be used in the 'device' field.
|
||||
#define RETRO_DEVICE_JOYPAD_MULTITAP ((1 << 8) | RETRO_DEVICE_JOYPAD)
|
||||
#define RETRO_DEVICE_LIGHTGUN_SUPER_SCOPE ((1 << 8) | RETRO_DEVICE_LIGHTGUN)
|
||||
#define RETRO_DEVICE_LIGHTGUN_JUSTIFIER ((2 << 8) | RETRO_DEVICE_LIGHTGUN)
|
||||
#define RETRO_DEVICE_LIGHTGUN_JUSTIFIERS ((3 << 8) | RETRO_DEVICE_LIGHTGUN)
|
||||
|
||||
// Buttons for the RetroPad (JOYPAD).
|
||||
// The placement of these is equivalent to placements on the Super Nintendo controller.
|
||||
// L2/R2/L3/R3 buttons correspond to the PS1 DualShock.
|
||||
#define RETRO_DEVICE_ID_JOYPAD_B 0
|
||||
#define RETRO_DEVICE_ID_JOYPAD_Y 1
|
||||
#define RETRO_DEVICE_ID_JOYPAD_SELECT 2
|
||||
|
@ -36,27 +75,56 @@ extern "C" {
|
|||
#define RETRO_DEVICE_ID_JOYPAD_X 9
|
||||
#define RETRO_DEVICE_ID_JOYPAD_L 10
|
||||
#define RETRO_DEVICE_ID_JOYPAD_R 11
|
||||
#define RETRO_DEVICE_ID_JOYPAD_L2 12
|
||||
#define RETRO_DEVICE_ID_JOYPAD_R2 13
|
||||
#define RETRO_DEVICE_ID_JOYPAD_L3 14
|
||||
#define RETRO_DEVICE_ID_JOYPAD_R3 15
|
||||
|
||||
// Index / Id values for ANALOG device.
|
||||
#define RETRO_DEVICE_INDEX_ANALOG_LEFT 0
|
||||
#define RETRO_DEVICE_INDEX_ANALOG_RIGHT 1
|
||||
#define RETRO_DEVICE_ID_ANALOG_X 0
|
||||
#define RETRO_DEVICE_ID_ANALOG_Y 1
|
||||
|
||||
// Id values for MOUSE.
|
||||
#define RETRO_DEVICE_ID_MOUSE_X 0
|
||||
#define RETRO_DEVICE_ID_MOUSE_Y 1
|
||||
#define RETRO_DEVICE_ID_MOUSE_LEFT 2
|
||||
#define RETRO_DEVICE_ID_MOUSE_RIGHT 3
|
||||
|
||||
// Id values for LIGHTGUN types.
|
||||
#define RETRO_DEVICE_ID_LIGHTGUN_X 0
|
||||
#define RETRO_DEVICE_ID_LIGHTGUN_Y 1
|
||||
#define RETRO_DEVICE_ID_LIGHTGUN_TRIGGER 2
|
||||
#define RETRO_DEVICE_ID_LIGHTGUN_CURSOR 3
|
||||
#define RETRO_DEVICE_ID_LIGHTGUN_TURBO 4
|
||||
#define RETRO_DEVICE_ID_LIGHTGUN_PAUSE 5
|
||||
#define RETRO_DEVICE_ID_LIGHTGUN_START 6
|
||||
|
||||
// Returned from retro_get_region().
|
||||
#define RETRO_REGION_NTSC 0
|
||||
#define RETRO_REGION_PAL 1
|
||||
|
||||
// Passed to retro_get_memory_data/size().
|
||||
// If the memory type doesn't apply to the implementation NULL/0 can be returned.
|
||||
#define RETRO_MEMORY_MASK 0xff
|
||||
|
||||
// Regular save ram. This ram is usually found on a game cartridge, backed up by a battery.
|
||||
// If save game data is too complex for a single memory buffer,
|
||||
// the SYSTEM_DIRECTORY environment callback can be used.
|
||||
#define RETRO_MEMORY_SAVE_RAM 0
|
||||
|
||||
// Some games have a built-in clock to keep track of time.
|
||||
// This memory is usually just a couple of bytes to keep track of time.
|
||||
#define RETRO_MEMORY_RTC 1
|
||||
|
||||
// System ram lets a frontend peek into a game systems main RAM.
|
||||
#define RETRO_MEMORY_SYSTEM_RAM 2
|
||||
|
||||
// Video ram lets a frontend peek into a game systems video RAM (VRAM).
|
||||
#define RETRO_MEMORY_VIDEO_RAM 3
|
||||
|
||||
// Special memory types.
|
||||
#define RETRO_MEMORY_SNES_BSX_RAM ((1 << 8) | RETRO_MEMORY_SAVE_RAM)
|
||||
#define RETRO_MEMORY_SNES_BSX_PRAM ((2 << 8) | RETRO_MEMORY_SAVE_RAM)
|
||||
#define RETRO_MEMORY_SNES_SUFAMI_TURBO_A_RAM ((3 << 8) | RETRO_MEMORY_SAVE_RAM)
|
||||
|
@ -64,11 +132,161 @@ extern "C" {
|
|||
#define RETRO_MEMORY_SNES_GAME_BOY_RAM ((5 << 8) | RETRO_MEMORY_SAVE_RAM)
|
||||
#define RETRO_MEMORY_SNES_GAME_BOY_RTC ((6 << 8) | RETRO_MEMORY_RTC)
|
||||
|
||||
// Special game types passed into retro_load_game_special().
|
||||
// Only used when multiple ROMs are required.
|
||||
#define RETRO_GAME_TYPE_BSX 0x101
|
||||
#define RETRO_GAME_TYPE_BSX_SLOTTED 0x102
|
||||
#define RETRO_GAME_TYPE_SUFAMI_TURBO 0x103
|
||||
#define RETRO_GAME_TYPE_SUPER_GAME_BOY 0x104
|
||||
|
||||
// Keysyms used for ID in input state callback when polling RETRO_KEYBOARD.
|
||||
enum retro_key
|
||||
{
|
||||
RETROK_UNKNOWN = 0,
|
||||
RETROK_FIRST = 0,
|
||||
RETROK_BACKSPACE = 8,
|
||||
RETROK_TAB = 9,
|
||||
RETROK_CLEAR = 12,
|
||||
RETROK_RETURN = 13,
|
||||
RETROK_PAUSE = 19,
|
||||
RETROK_ESCAPE = 27,
|
||||
RETROK_SPACE = 32,
|
||||
RETROK_EXCLAIM = 33,
|
||||
RETROK_QUOTEDBL = 34,
|
||||
RETROK_HASH = 35,
|
||||
RETROK_DOLLAR = 36,
|
||||
RETROK_AMPERSAND = 38,
|
||||
RETROK_QUOTE = 39,
|
||||
RETROK_LEFTPAREN = 40,
|
||||
RETROK_RIGHTPAREN = 41,
|
||||
RETROK_ASTERISK = 42,
|
||||
RETROK_PLUS = 43,
|
||||
RETROK_COMMA = 44,
|
||||
RETROK_MINUS = 45,
|
||||
RETROK_PERIOD = 46,
|
||||
RETROK_SLASH = 47,
|
||||
RETROK_0 = 48,
|
||||
RETROK_1 = 49,
|
||||
RETROK_2 = 50,
|
||||
RETROK_3 = 51,
|
||||
RETROK_4 = 52,
|
||||
RETROK_5 = 53,
|
||||
RETROK_6 = 54,
|
||||
RETROK_7 = 55,
|
||||
RETROK_8 = 56,
|
||||
RETROK_9 = 57,
|
||||
RETROK_COLON = 58,
|
||||
RETROK_SEMICOLON = 59,
|
||||
RETROK_LESS = 60,
|
||||
RETROK_EQUALS = 61,
|
||||
RETROK_GREATER = 62,
|
||||
RETROK_QUESTION = 63,
|
||||
RETROK_AT = 64,
|
||||
RETROK_LEFTBRACKET = 91,
|
||||
RETROK_BACKSLASH = 92,
|
||||
RETROK_RIGHTBRACKET = 93,
|
||||
RETROK_CARET = 94,
|
||||
RETROK_UNDERSCORE = 95,
|
||||
RETROK_BACKQUOTE = 96,
|
||||
RETROK_a = 97,
|
||||
RETROK_b = 98,
|
||||
RETROK_c = 99,
|
||||
RETROK_d = 100,
|
||||
RETROK_e = 101,
|
||||
RETROK_f = 102,
|
||||
RETROK_g = 103,
|
||||
RETROK_h = 104,
|
||||
RETROK_i = 105,
|
||||
RETROK_j = 106,
|
||||
RETROK_k = 107,
|
||||
RETROK_l = 108,
|
||||
RETROK_m = 109,
|
||||
RETROK_n = 110,
|
||||
RETROK_o = 111,
|
||||
RETROK_p = 112,
|
||||
RETROK_q = 113,
|
||||
RETROK_r = 114,
|
||||
RETROK_s = 115,
|
||||
RETROK_t = 116,
|
||||
RETROK_u = 117,
|
||||
RETROK_v = 118,
|
||||
RETROK_w = 119,
|
||||
RETROK_x = 120,
|
||||
RETROK_y = 121,
|
||||
RETROK_z = 122,
|
||||
RETROK_DELETE = 127,
|
||||
|
||||
RETROK_KP0 = 256,
|
||||
RETROK_KP1 = 257,
|
||||
RETROK_KP2 = 258,
|
||||
RETROK_KP3 = 259,
|
||||
RETROK_KP4 = 260,
|
||||
RETROK_KP5 = 261,
|
||||
RETROK_KP6 = 262,
|
||||
RETROK_KP7 = 263,
|
||||
RETROK_KP8 = 264,
|
||||
RETROK_KP9 = 265,
|
||||
RETROK_KP_PERIOD = 266,
|
||||
RETROK_KP_DIVIDE = 267,
|
||||
RETROK_KP_MULTIPLY = 268,
|
||||
RETROK_KP_MINUS = 269,
|
||||
RETROK_KP_PLUS = 270,
|
||||
RETROK_KP_ENTER = 271,
|
||||
RETROK_KP_EQUALS = 272,
|
||||
|
||||
RETROK_UP = 273,
|
||||
RETROK_DOWN = 274,
|
||||
RETROK_RIGHT = 275,
|
||||
RETROK_LEFT = 276,
|
||||
RETROK_INSERT = 277,
|
||||
RETROK_HOME = 278,
|
||||
RETROK_END = 279,
|
||||
RETROK_PAGEUP = 280,
|
||||
RETROK_PAGEDOWN = 281,
|
||||
|
||||
RETROK_F1 = 282,
|
||||
RETROK_F2 = 283,
|
||||
RETROK_F3 = 284,
|
||||
RETROK_F4 = 285,
|
||||
RETROK_F5 = 286,
|
||||
RETROK_F6 = 287,
|
||||
RETROK_F7 = 288,
|
||||
RETROK_F8 = 289,
|
||||
RETROK_F9 = 290,
|
||||
RETROK_F10 = 291,
|
||||
RETROK_F11 = 292,
|
||||
RETROK_F12 = 293,
|
||||
RETROK_F13 = 294,
|
||||
RETROK_F14 = 295,
|
||||
RETROK_F15 = 296,
|
||||
|
||||
RETROK_NUMLOCK = 300,
|
||||
RETROK_CAPSLOCK = 301,
|
||||
RETROK_SCROLLOCK = 302,
|
||||
RETROK_RSHIFT = 303,
|
||||
RETROK_LSHIFT = 304,
|
||||
RETROK_RCTRL = 305,
|
||||
RETROK_LCTRL = 306,
|
||||
RETROK_RALT = 307,
|
||||
RETROK_LALT = 308,
|
||||
RETROK_RMETA = 309,
|
||||
RETROK_LMETA = 310,
|
||||
RETROK_LSUPER = 311,
|
||||
RETROK_RSUPER = 312,
|
||||
RETROK_MODE = 313,
|
||||
RETROK_COMPOSE = 314,
|
||||
|
||||
RETROK_HELP = 315,
|
||||
RETROK_PRINT = 316,
|
||||
RETROK_SYSREQ = 317,
|
||||
RETROK_BREAK = 318,
|
||||
RETROK_MENU = 319,
|
||||
RETROK_POWER = 320,
|
||||
RETROK_EURO = 321,
|
||||
RETROK_UNDO = 322,
|
||||
|
||||
RETROK_LAST
|
||||
};
|
||||
|
||||
// Environment commands.
|
||||
#define RETRO_ENVIRONMENT_SET_ROTATION 1 // const unsigned * --
|
||||
|
@ -81,7 +299,7 @@ extern "C" {
|
|||
// Boolean value whether or not the implementation should use overscan, or crop away overscan.
|
||||
//
|
||||
#define RETRO_ENVIRONMENT_GET_CAN_DUPE 3 // bool * --
|
||||
// Boolean value whether or not SSNES supports frame duping,
|
||||
// Boolean value whether or not frontend supports frame duping,
|
||||
// passing NULL to video frame callback.
|
||||
//
|
||||
#define RETRO_ENVIRONMENT_GET_VARIABLE 4 // struct retro_variable * --
|
||||
|
@ -98,20 +316,117 @@ extern "C" {
|
|||
//
|
||||
#define RETRO_ENVIRONMENT_SET_MESSAGE 6 // const struct retro_message * --
|
||||
// Sets a message to be displayed in implementation-specific manner for a certain amount of 'frames'.
|
||||
// Should not be used for trivial messages, which should simply be logged to stderr.
|
||||
#define RETRO_ENVIRONMENT_SHUTDOWN 7 // N/A (NULL) --
|
||||
// Requests the frontend to shutdown.
|
||||
// Should only be used if game has a specific
|
||||
// way to shutdown the game from a menu item or similar.
|
||||
//
|
||||
#define RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL 8
|
||||
// const unsigned * --
|
||||
// Gives a hint to the frontend how demanding this implementation
|
||||
// is on a system. E.g. reporting a level of 2 means
|
||||
// this implementation should run decently on all frontends
|
||||
// of level 2 and up.
|
||||
//
|
||||
// It can be used by the frontend to potentially warn
|
||||
// about too demanding implementations.
|
||||
//
|
||||
// The levels are "floating", but roughly defined as:
|
||||
// 0: Low-powered embedded devices such as Raspberry Pi
|
||||
// 1: 6th generation consoles, such as Wii/Xbox 1, and phones, tablets, etc.
|
||||
// 2: 7th generation consoles, such as PS3/360, with sub-par CPUs.
|
||||
// 3: Modern desktop/laptops with reasonably powerful CPUs.
|
||||
// 4: High-end desktops with very powerful CPUs.
|
||||
//
|
||||
// This function can be called on a per-game basis,
|
||||
// as certain games an implementation can play might be
|
||||
// particularily demanding.
|
||||
// If called, it should be called in retro_load_game().
|
||||
//
|
||||
#define RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY 9
|
||||
// const char ** --
|
||||
// Returns the "system" directory of the frontend.
|
||||
// This directory can be used to store system specific ROMs such as BIOSes, configuration data, etc.
|
||||
// The returned value can be NULL.
|
||||
// If so, no such directory is defined,
|
||||
// and it's up to the implementation to find a suitable directory.
|
||||
//
|
||||
#define RETRO_ENVIRONMENT_SET_PIXEL_FORMAT 10
|
||||
// const enum retro_pixel_format * --
|
||||
// Sets the internal pixel format used by the implementation.
|
||||
// The default pixel format is RETRO_PIXEL_FORMAT_0RGB1555.
|
||||
// This pixel format however, is deprecated (see enum retro_pixel_format).
|
||||
// If the call returns false, the frontend does not support this pixel format.
|
||||
// This function should be called inside retro_load_game() or retro_get_system_av_info().
|
||||
//
|
||||
#define RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS 11
|
||||
// const struct retro_input_descriptor * --
|
||||
// Sets an array of retro_input_descriptors.
|
||||
// It is up to the frontend to present this in a usable way.
|
||||
// The array is terminated by retro_input_descriptor::description being set to NULL.
|
||||
// This function can be called at any time, but it is recommended to call it as early as possible.
|
||||
|
||||
|
||||
enum retro_pixel_format
|
||||
{
|
||||
// 0RGB1555, native endian. 0 bit must be set to 0.
|
||||
// This pixel format is default for compatibility concerns only.
|
||||
// If a 15/16-bit pixel format is desired, consider using RGB565.
|
||||
RETRO_PIXEL_FORMAT_0RGB1555 = 0,
|
||||
|
||||
// XRGB8888, native endian. X bits are ignored.
|
||||
RETRO_PIXEL_FORMAT_XRGB8888 = 1,
|
||||
|
||||
// RGB565, native endian. This pixel format is the recommended format to use if a 15/16-bit format is desired
|
||||
// as it is the pixel format that is typically available on a wide range of low-power devices.
|
||||
// It is also natively supported in APIs like OpenGL ES.
|
||||
RETRO_PIXEL_FORMAT_RGB565 = 2,
|
||||
|
||||
// Ensure sizeof() == sizeof(int).
|
||||
RETRO_PIXEL_FORMAT_UNKNOWN = INT_MAX
|
||||
};
|
||||
|
||||
struct retro_message
|
||||
{
|
||||
const char *msg;
|
||||
unsigned frames;
|
||||
const char *msg; // Message to be displayed.
|
||||
unsigned frames; // Duration in frames of message.
|
||||
};
|
||||
|
||||
// Describes how the libretro implementation maps a libretro input bind
|
||||
// to its internal input system through a human readable string.
|
||||
// This string can be used to better let a user configure input.
|
||||
struct retro_input_descriptor
|
||||
{
|
||||
// Associates given parameters with a description.
|
||||
unsigned port;
|
||||
unsigned device;
|
||||
unsigned index;
|
||||
unsigned id;
|
||||
|
||||
const char *description; // Human readable description for parameters.
|
||||
// The pointer must remain valid until retro_unload_game() is called.
|
||||
};
|
||||
|
||||
struct retro_system_info
|
||||
{
|
||||
const char *library_name;
|
||||
const char *library_version;
|
||||
const char *valid_extensions;
|
||||
bool need_fullpath;
|
||||
bool block_extract;
|
||||
// All pointers are owned by libretro implementation, and pointers must remain valid until retro_deinit() is called.
|
||||
|
||||
const char *library_name; // Descriptive name of library. Should not contain any version numbers, etc.
|
||||
const char *library_version; // Descriptive version of core.
|
||||
|
||||
const char *valid_extensions; // A string listing probably rom extensions the core will be able to load, separated with pipe.
|
||||
// I.e. "bin|rom|iso".
|
||||
// Typically used for a GUI to filter out extensions.
|
||||
|
||||
bool need_fullpath; // If true, retro_load_game() is guaranteed to provide a valid pathname in retro_game_info::path.
|
||||
// ::data and ::size are both invalid.
|
||||
// If false, ::data and ::size are guaranteed to be valid, but ::path might not be valid.
|
||||
// This is typically set to true for libretro implementations that must load from file.
|
||||
// Implementations should strive for setting this to false, as it allows the frontend to perform patching, etc.
|
||||
|
||||
bool block_extract; // If true, the frontend is not allowed to extract any archives before loading the real ROM.
|
||||
// Necessary for certain libretro implementations that load games from zipped archives.
|
||||
};
|
||||
|
||||
struct retro_game_geometry
|
||||
|
@ -151,32 +466,41 @@ struct retro_game_info
|
|||
{
|
||||
const char *path; // Path to game, UTF-8 encoded. Usually used as a reference.
|
||||
// May be NULL if rom was loaded from stdin or similar.
|
||||
// SET_NEED_FULLPATH path guaranteed that this path is valid.
|
||||
const void *data; // Memory buffer of loaded game.
|
||||
// If the game is too big to load in one go.
|
||||
// SET_NEED_FULLPATH should be used.
|
||||
// In this case, data and size will be 0,
|
||||
// and game can be loaded from path.
|
||||
// retro_system_info::need_fullpath guaranteed that this path is valid.
|
||||
const void *data; // Memory buffer of loaded game. Will be NULL if need_fullpath was set.
|
||||
size_t size; // Size of memory buffer.
|
||||
const char *meta; // String of implementation specific meta-data.
|
||||
};
|
||||
|
||||
// Callbacks
|
||||
//
|
||||
// Environment callback. Gives implementations a way of performing uncommon tasks. Extensible.
|
||||
typedef bool (*retro_environment_t)(unsigned cmd, void *data);
|
||||
|
||||
// Render a frame. Pixel format is 15-bit 0RGB1555 native endian unless changed (see RETRO_ENVIRONMENT_SET_PIXEL_FORMAT).
|
||||
// Width and height specify dimensions of buffer.
|
||||
// Pitch specifices length in bytes between two lines in buffer.
|
||||
// For performance reasons, it is highly recommended to have a frame that is packed in memory, i.e. pitch == width * byte_per_pixel.
|
||||
// Certain graphic APIs, such as OpenGL ES, do not like textures that are not packed in memory.
|
||||
typedef void (*retro_video_refresh_t)(const void *data, unsigned width, unsigned height, size_t pitch);
|
||||
|
||||
// Renders a single audio frame. Should only be used if implementation generates a single sample at a time.
|
||||
// Format is signed 16-bit native endian.
|
||||
typedef void (*retro_audio_sample_t)(int16_t left, int16_t right);
|
||||
// Renders multiple audio frames in one go. One frame is defined as a sample of left and right channels, interleaved.
|
||||
// I.e. int16_t buf[4] = { l, r, l, r }; would be 2 frames.
|
||||
// Only one of the audio callbacks must ever be used.
|
||||
typedef size_t (*retro_audio_sample_batch_t)(const int16_t *data, size_t frames);
|
||||
|
||||
// Polls input.
|
||||
typedef void (*retro_input_poll_t)(void);
|
||||
// Queries for input for player 'port'. device will be masked with RETRO_DEVICE_MASK.
|
||||
// Specialization of devices such as RETRO_DEVICE_JOYPAD_MULTITAP that have been set with retro_set_controller_port_device()
|
||||
// will still use the higher level RETRO_DEVICE_JOYPAD to request input.
|
||||
typedef int16_t (*retro_input_state_t)(unsigned port, unsigned device, unsigned index, unsigned id);
|
||||
|
||||
void retro_init(void);
|
||||
void retro_deinit(void);
|
||||
|
||||
unsigned retro_api_version(void);
|
||||
|
||||
void retro_get_system_info(struct retro_system_info *info);
|
||||
void retro_get_system_av_info(struct retro_system_av_info *info);
|
||||
|
||||
// Sets callbacks. retro_set_environment() is guaranteed to be called before retro_init().
|
||||
// The rest of the set_* functions are guaranteed to have been called before the first call to retro_run() is made.
|
||||
void retro_set_environment(retro_environment_t);
|
||||
void retro_set_video_refresh(retro_video_refresh_t);
|
||||
void retro_set_audio_sample(retro_audio_sample_t);
|
||||
|
@ -184,29 +508,65 @@ void retro_set_audio_sample_batch(retro_audio_sample_batch_t);
|
|||
void retro_set_input_poll(retro_input_poll_t);
|
||||
void retro_set_input_state(retro_input_state_t);
|
||||
|
||||
// Library global initialization/deinitialization.
|
||||
void retro_init(void);
|
||||
void retro_deinit(void);
|
||||
|
||||
// Must return RETRO_API_VERSION. Used to validate ABI compatibility when the API is revised.
|
||||
unsigned retro_api_version(void);
|
||||
|
||||
// Gets statically known system info. Pointers provided in *info must be statically allocated.
|
||||
// Can be called at any time, even before retro_init().
|
||||
void retro_get_system_info(struct retro_system_info *info);
|
||||
|
||||
// Gets information about system audio/video timings and geometry.
|
||||
// Can be called only after retro_load_game() has successfully completed.
|
||||
// NOTE: The implementation of this function might not initialize every variable if needed.
|
||||
// E.g. geom.aspect_ratio might not be initialized if core doesn't desire a particular aspect ratio.
|
||||
void retro_get_system_av_info(struct retro_system_av_info *info);
|
||||
|
||||
// Sets device to be used for player 'port'.
|
||||
void retro_set_controller_port_device(unsigned port, unsigned device);
|
||||
|
||||
// Resets the current game.
|
||||
void retro_reset(void);
|
||||
|
||||
// Runs the game for one video frame.
|
||||
// During retro_run(), input_poll callback must be called at least once.
|
||||
//
|
||||
// If a frame is not rendered for reasons where a game "dropped" a frame,
|
||||
// this still counts as a frame, and retro_run() should explicitly dupe a frame if GET_CAN_DUPE returns true.
|
||||
// In this case, the video callback can take a NULL argument for data.
|
||||
void retro_run(void);
|
||||
|
||||
// Returns the amount of data the implementation requires to serialize internal state (save states).
|
||||
// Beetween calls to retro_load_game() and retro_unload_game(), the returned size is never allowed to be larger than a previous returned value, to
|
||||
// ensure that the frontend can allocate a save state buffer once.
|
||||
size_t retro_serialize_size(void);
|
||||
|
||||
// Serializes internal state. If failed, or size is lower than retro_serialize_size(), it should return false, true otherwise.
|
||||
bool retro_serialize(void *data, size_t size);
|
||||
bool retro_unserialize(const void *data, size_t size);
|
||||
|
||||
void retro_cheat_reset(void);
|
||||
void retro_cheat_set(unsigned index, bool enabled, const char *code);
|
||||
|
||||
// Loads a game.
|
||||
bool retro_load_game(const struct retro_game_info *game);
|
||||
|
||||
// Loads a "special" kind of game. Should not be used except in extreme cases.
|
||||
bool retro_load_game_special(
|
||||
unsigned game_type,
|
||||
const struct retro_game_info *info, size_t num_info
|
||||
);
|
||||
|
||||
// Unloads a currently loaded game.
|
||||
void retro_unload_game(void);
|
||||
|
||||
// Gets region of game.
|
||||
unsigned retro_get_region(void);
|
||||
|
||||
// Gets region of memory.
|
||||
void *retro_get_memory_data(unsigned id);
|
||||
size_t retro_get_memory_size(unsigned id);
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// NeoGeo CD Game Info Module (by CaptainCPS-X)
|
||||
// ---------------------------------------------------------------------------------------
|
||||
#include "burner.h"
|
||||
#include "neocdlist.h"
|
||||
#include "../neocdlist.h"
|
||||
|
||||
struct NGCDGAME games[] =
|
||||
{
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <stdint.h>
|
||||
#include <wchar.h>
|
||||
|
||||
#include "inp_keys.h"
|
||||
#include "input/inp_keys.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <tchar.h>
|
||||
|
@ -16,7 +16,15 @@ typedef struct { int x, y, width, height; } RECT;
|
|||
#undef __cdecl
|
||||
#define __cdecl
|
||||
|
||||
#define bprintf(...) {}
|
||||
#ifdef _XBOX1
|
||||
static inline void bprintf(int code, const char *format, ...)
|
||||
{
|
||||
(void)0;
|
||||
}
|
||||
#else
|
||||
#define bprintf
|
||||
#endif
|
||||
|
||||
#define _strnicmp(s1, s2, n) strncasecmp(s1, s2, n)
|
||||
#define _stricmp(x, y) strcasecmp(x,y)
|
||||
|
||||
|
@ -38,10 +46,13 @@ typedef struct { int x, y, width, height; } RECT;
|
|||
#define _tcsstr strstr
|
||||
#define _stscanf sscanf
|
||||
#define _ftprintf fprintf
|
||||
#ifndef _MSC_VER
|
||||
#define _tcscpy(to, from) strcpy(to, from)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define _tcsicmp(a, b) _stricmp(a, b)
|
||||
#else
|
||||
#define _tcsicmp(a, b) strcasecmp(a, b)
|
||||
#endif
|
||||
#define _tcscpy(to, from) strcpy(to, from)
|
||||
/*define lstrlen what does lstrlen correspond to?*/
|
||||
|
||||
#undef __fastcall
|
||||
|
@ -67,5 +78,4 @@ extern HWND hScrnWnd; // Handle to the screen window
|
|||
|
||||
extern void InpDIPSWResetDIPs (void);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "burnint.h"
|
||||
#include "h6280.h"
|
||||
#include "h6280/h6280.h"
|
||||
#include "h6280_intf.h"
|
||||
|
||||
#define MAX_H6280 2 //
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "hd6309.h"
|
||||
#include "hd6309/hd6309.h"
|
||||
|
||||
typedef UINT8 (*pReadByteHandler)(UINT16 a);
|
||||
typedef void (*pWriteByteHandler)(UINT16 a, UINT8 d);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "m6502.h"
|
||||
#include "m6502/m6502.h"
|
||||
|
||||
typedef UINT8 (*pReadPortHandler)(UINT16 a);
|
||||
typedef void (*pWritePortHandler)(UINT16 a, UINT8 d);
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#define SEK_MAX (4) // Maximum number of CPUs supported
|
||||
|
||||
#if defined EMU_M68K
|
||||
#include "m68k.h"
|
||||
#include "m68k/m68k.h"
|
||||
#endif
|
||||
|
||||
// Number of bits used for each page in the fast memory map
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "m6800.h"
|
||||
#include "m6800/m6800.h"
|
||||
|
||||
typedef UINT8 (*pReadByteHandler)(UINT16 a);
|
||||
typedef void (*pWriteByteHandler)(UINT16 a, UINT8 d);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "m6805.h"
|
||||
#include "m6805/m6805.h"
|
||||
|
||||
#define M6805_READ 1
|
||||
#define M6805_WRITE 2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "m6809.h"
|
||||
#include "m6809/m6809.h"
|
||||
|
||||
typedef UINT8 (*pReadByteHandler)(UINT16 a);
|
||||
typedef void (*pWriteByteHandler)(UINT16 a, UINT8 d);
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
// Z80 (Zed Eight-Ty) Interface
|
||||
|
||||
#ifndef FASTCALL
|
||||
#undef __fastcall
|
||||
#define __fastcall
|
||||
#endif
|
||||
|
||||
#include "z80.h"
|
||||
|
||||
extern INT32 nHasZet;
|
||||
void ZetWriteByte(UINT16 address, UINT8 data);
|
||||
UINT8 ZetReadByte(UINT16 address);
|
||||
void ZetWriteRom(UINT16 address, UINT8 data);
|
||||
INT32 ZetInit(INT32 nCount);
|
||||
|
||||
#ifndef FASTCALL
|
||||
#undef __fastcall
|
||||
#define __fastcall
|
||||
#endif
|
||||
|
||||
#include "z80/z80.h"
|
||||
|
||||
extern INT32 nHasZet;
|
||||
void ZetWriteByte(UINT16 address, UINT8 data);
|
||||
UINT8 ZetReadByte(UINT16 address);
|
||||
void ZetWriteRom(UINT16 address, UINT8 data);
|
||||
INT32 ZetInit(INT32 nCount);
|
||||
void ZetExit();
|
||||
void ZetNewFrame();
|
||||
void ZetOpen(INT32 nCPU);
|
||||
|
|
Loading…
Reference in New Issue