From c68bfd4c7f42f587837c462fd32ae53564f14129 Mon Sep 17 00:00:00 2001 From: Francisco Javier Trujillo Mata Date: Tue, 19 May 2020 21:03:22 +0200 Subject: [PATCH] Adapt ps2 port to latest SDK Status --- Makefile.libretro | 7 +- ps2/SMS_Utils.s | 202 ------------------ ps2/inttypes.h | 8 - ps2/stdint.h | 33 --- .../include/libretro_gskit_ps2.h | 6 +- src/drivers/libretro/libretro.c | 7 - 6 files changed, 4 insertions(+), 259 deletions(-) delete mode 100644 ps2/SMS_Utils.s delete mode 100644 ps2/inttypes.h delete mode 100644 ps2/stdint.h diff --git a/Makefile.libretro b/Makefile.libretro index 6f17bc9..509515e 100644 --- a/Makefile.libretro +++ b/Makefile.libretro @@ -174,15 +174,12 @@ else ifeq ($(platform), ps2) AR = ee-ar$(EXE_EXT) FCEU_DEFINES := -DPATH_MAX=1024 -DINLINE=inline -DPSS_STYLE=1 -DFCEU_VERSION_NUMERIC=9813 -DHAVE_ASPRINTF ENDIANNESS_DEFINES := -DLSB_FIRST -DLOCAL_LE=1 - PLATFORM_DEFINES := -DPS2 -G0 -DFRONTEND_SUPPORTS_ABGR1555 -DRENDER_GSKIT_PS2 - PLATFORM_DEFINES += -Dmemcpy=mips_memcpy -Dmemset=mips_memset - PLATFORM_DEFINES += -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -Ips2/ -I$(PS2DEV)/gsKit/include + PLATFORM_DEFINES := -DPS2 -D_EE -G0 -DFRONTEND_SUPPORTS_ABGR1555 -DRENDER_GSKIT_PS2 + PLATFORM_DEFINES += -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -I$(PS2DEV)/gsKit/include STATIC_LINKING=1 EXTERNAL_ZLIB=1 - RETROARCH_OBJECTS += ps2/SMS_Utils.o HAVE_NTSC = 0 - # PSP else ifeq ($(platform), psp1) TARGET := $(TARGET_NAME)_libretro_$(platform).a diff --git a/ps2/SMS_Utils.s b/ps2/SMS_Utils.s deleted file mode 100644 index e437356..0000000 --- a/ps2/SMS_Utils.s +++ /dev/null @@ -1,202 +0,0 @@ -/* -# ___ _ _ ___ -# | | | | | -# ___| | | ___| PS2DEV Open Source Project. -#---------------------------------------------------------- -# MUL64 is pulled from some binary library (I don't remember which one). -# mips_memcpy routine is pulled from 'sde' library from MIPS. -# -*/ -.set noat -.set noreorder -.set nomacro - -.globl MUL64 -.globl mips_memcpy -.globl mips_memset - -.text - -MUL64: - pmultuw $v0, $a0, $a1 - dsra32 $a2, $a0, 0 - dsra32 $v1, $a1, 0 - mult $v1, $a0, $v1 - mult1 $a2, $a2, $a1 - addu $v1, $v1, $a2 - dsll32 $v1, $v1, 0 - jr $ra - daddu $v0, $v0, $v1 - -mips_memcpy: - addu $v0, $a0, $zero - beqz $a2, 1f - sltiu $t2, $a2, 12 - bnez $t2, 2f - xor $v1, $a1, $a0 - andi $v1, $v1, 7 - negu $a3, $a0 - beqz $v1, 3f - andi $a3, $a3, 7 - beqz $a3, 4f - subu $a2, $a2, $a3 - ldr $v1, 0($a1) - ldl $v1, 7($a1) - addu $a1, $a1, $a3 - sdr $v1, 0($a0) - addu $a0, $a0, $a3 -4: - andi $v1, $a2, 31 - subu $a3, $a2, $v1 - beqz $a3, 5f - addu $a2, $v1, $zero - addu $a3, $a3, $a1 -6: - ldr $v1, 0($a1) - ldl $v1, 7($a1) - ldr $t0, 8($a1) - ldl $t0, 15($a1) - ldr $t1, 16($a1) - ldl $t1, 23($a1) - ldr $t2, 24($a1) - ldl $t2, 31($a1) - sd $v1, 0($a0) - sd $t0, 8($a0) - sd $t1, 16($a0) - addiu $a1, $a1, 32 - addiu $a0, $a0, 32 - bne $a1, $a3, 6b - sd $t2, -8($a0) -5: - andi $v1, $a2, 7 - subu $a3, $a2, $v1 - beqz $a3, 2f - addu $a2, $v1, $zero - addu $a3, $a3, $a1 -7: - ldr $v1, 0($a1) - ldl $v1, 7($a1) - addiu $a1, $a1, 8 - addiu $a0, $a0, 8 - nop - bne $a1, $a3, 7b - sd $v1, -8($a0) - beq $zero, $zero, 2f - nop -3: - beqz $a3, 8f - subu $a2, $a2, $a3 - ldr $v1, 0($a1) - addu $a1, $a1, $a3 - sdr $v1, 0($a0) - addu $a0, $a0, $a3 -8: - andi $v1, $a2, 31 - subu $a3, $a2, $v1 - beqz $a3, 9f - addu $a2, $v1, $zero - addu $a3, $a3, $a1 -10: - ld $v1, 0($a1) - ld $t0, 8($a1) - ld $t1, 16($a1) - ld $t2, 24($a1) - sd $v1, 0($a0) - sd $t0, 8($a0) - sd $t1, 16($a0) - addiu $a1, $a1, 32 - addiu $a0, $a0, 32 - bne $a1, $a3, 10b - sd $t2, -8($a0) -9: - andi $v1, $a2, 7 - subu $a3, $a2, $v1 - beqz $a3, 2f - addu $a2, $v1, $zero - addu $a3, $a3, $a1 -11: - ld $v1, 0($a1) - addiu $a1, $a1, 8 - addiu $a0, $a0, 8 - nop - nop - bne $a1, $a3, 11b - sd $v1, -8($a0) -2: - beqz $a2, 1f - addu $a3, $a2, $a1 -12: - lbu $v1, 0($a1) - addiu $a1, $a1, 1 - addiu $a0, $a0, 1 - nop - nop - bne $a1, $a3, 12b - sb $v1, -1($a0) -1: - jr $ra - nop - -mips_memset: - beqz $a2, 1f - sltiu $at, $a2, 16 - bnez $at, 2f - andi $a1, $a1, 0xFF - dsll $at, $a1, 0x8 - or $a1, $a1, $at - dsll $at, $a1, 0x10 - or $a1, $a1, $at - dsll32 $at, $a1, 0x0 - or $a1, $a1, $at - andi $v1, $a0, 0x7 - beqz $v1, 3f - li $a3, 8 - subu $a3, $a3, $v1 - subu $a2, $a2, $a3 - sdr $a1, 0($a0) - addu $a0, $a0, $a3 -3: - andi $v1, $a2, 0x1f - subu $a3, $a2, $v1 - beqz $a3, 4f - move $a2, $v1 - addu $a3, $a3, $a0 -5: - sd $a1, 0($a0) - sd $a1, 8($a0) - sd $a1, 16($a0) - addiu $a0, $a0, 32 - sd $a1, -8($a0) - bne $a0, $a3, 5b -4: - andi $v1, $a2, 0x7 - subu $a3, $a2, $v1 - beqz $a3, 2f - move $a2, $v1 - addu $a3, $a3, $a0 -6: - addiu $a0, $a0, 8 - beq $a0, $a3, 2f - sd $a1, -8($a0) - addiu $a0, $a0, 8 - beq $a0, $a3, 2f - sd $a1, -8($a0) - addiu $a0, $a0, 8 - bne $a0, $a3, 6b - sd $a1, -8($a0) -2: - beqz $a2, 1f - addu $a3, $a2, $a0 -7: - addiu $a0, $a0, 1 - beq $a0, $a3, 1f - sb $a1, -1($a0) - addiu $a0, $a0, 1 - beq $a0, $a3, 1f - sb $a1, -1($a0) - addiu $a0, $a0, 1 - bne $a0, $a3, 7b - sb $a1, -1($a0) -1: - jr $ra - nop diff --git a/ps2/inttypes.h b/ps2/inttypes.h deleted file mode 100644 index 3049fbd..0000000 --- a/ps2/inttypes.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef INTTYPES_H -#define INTTYPES_H - -#define PRId64 "ld" -#define PRIu64 "lu" -#define PRIuPTR "lu" - -#endif //INTTYPES_H diff --git a/ps2/stdint.h b/ps2/stdint.h deleted file mode 100644 index ae9a75b..0000000 --- a/ps2/stdint.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef STDINT_H -#define STDINT_H - -typedef unsigned long uintptr_t; -typedef signed long intptr_t; - -typedef signed char int8_t; -typedef signed short int16_t; -typedef signed int int32_t; -typedef signed long int64_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -typedef unsigned long uint64_t; - -typedef unsigned long uint_least32_t; -typedef unsigned short uint_least16_t; - -#define STDIN_FILENO 0 /* standard input file descriptor */ -#define STDOUT_FILENO 1 /* standard output file descriptor */ -#define STDERR_FILENO 2 /* standard error file descriptor */ - -#define INT8_C(val) val##c -#define INT16_C(val) val##h -#define INT32_C(val) val##i -#define INT64_C(val) val##l - -#define UINT8_C(val) val##uc -#define UINT16_C(val) val##uh -#define UINT32_C(val) val##ui -#define UINT64_C(val) val##ul - -#endif //STDINT_H diff --git a/src/drivers/libretro/libretro-common/include/libretro_gskit_ps2.h b/src/drivers/libretro/libretro-common/include/libretro_gskit_ps2.h index f7b61dc..033bb1f 100644 --- a/src/drivers/libretro/libretro-common/include/libretro_gskit_ps2.h +++ b/src/drivers/libretro/libretro-common/include/libretro_gskit_ps2.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 The RetroArch team +/* Copyright (C) 2010-2020 The RetroArch team * * --------------------------------------------------------------------------------------------- * The following license statement only applies to this libretro API header (libretro_d3d.h) @@ -33,7 +33,7 @@ #include -#define RETRO_HW_RENDER_INTERFACE_GSKIT_PS2_VERSION 1 +#define RETRO_HW_RENDER_INTERFACE_GSKIT_PS2_VERSION 2 struct retro_hw_ps2_insets { @@ -57,8 +57,6 @@ struct retro_hw_render_interface_gskit_ps2 * in this interface. */ GSTEXTURE *coreTexture; - bool clearTexture; - bool updatedPalette; struct retro_hw_ps2_insets padding; }; typedef struct retro_hw_render_interface_gskit_ps2 RETRO_HW_RENDER_INTEFACE_GSKIT_PS2; diff --git a/src/drivers/libretro/libretro.c b/src/drivers/libretro/libretro.c index 127b95f..1a7e286 100644 --- a/src/drivers/libretro/libretro.c +++ b/src/drivers/libretro/libretro.c @@ -1063,12 +1063,6 @@ static void retro_set_custom_palette(void) } FCEUI_SetPaletteArray( base_palette ); } - -#if defined(RENDER_GSKIT_PS2) - if (ps2) { - ps2->updatedPalette = true; - } -#endif } /* Set variables for NTSC(1) / PAL(2) / Dendy(3) @@ -1840,7 +1834,6 @@ static void retro_run_blit(uint8_t *gfx) overscan_h ? 8.0f : 0.0f}; } - ps2->updatedPalette = true; ps2->coreTexture->Clut = (u32*)retro_palette; ps2->coreTexture->Mem = (u32*)gfx;