Merge pull request #369 from fjtrujy/ps2-newlib
Adapt Ps2 port to latest SDK version
This commit is contained in:
33
.github/workflows/compilation.yml
vendored
Normal file
33
.github/workflows/compilation.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
repository_dispatch:
|
||||||
|
types: [run_build]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-ps2:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: ps2dev/ps2dev:latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
apk add build-base git bash
|
||||||
|
|
||||||
|
- name: Compile project
|
||||||
|
run: |
|
||||||
|
make -f Makefile.libretro platform=ps2 clean all
|
||||||
|
|
||||||
|
- name: Get short SHA
|
||||||
|
id: slug
|
||||||
|
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
if: ${{ success() }}
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: fceumm_libretro_ps2-${{ steps.slug.outputs.sha8 }}
|
||||||
|
path: fceumm_libretro_ps2.a
|
||||||
@@ -174,15 +174,12 @@ else ifeq ($(platform), ps2)
|
|||||||
AR = ee-ar$(EXE_EXT)
|
AR = ee-ar$(EXE_EXT)
|
||||||
FCEU_DEFINES := -DPATH_MAX=1024 -DINLINE=inline -DPSS_STYLE=1 -DFCEU_VERSION_NUMERIC=9813 -DHAVE_ASPRINTF
|
FCEU_DEFINES := -DPATH_MAX=1024 -DINLINE=inline -DPSS_STYLE=1 -DFCEU_VERSION_NUMERIC=9813 -DHAVE_ASPRINTF
|
||||||
ENDIANNESS_DEFINES := -DLSB_FIRST -DLOCAL_LE=1
|
ENDIANNESS_DEFINES := -DLSB_FIRST -DLOCAL_LE=1
|
||||||
PLATFORM_DEFINES := -DPS2 -G0 -DFRONTEND_SUPPORTS_ABGR1555 -DRENDER_GSKIT_PS2
|
PLATFORM_DEFINES := -DPS2 -D_EE -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 -I$(PS2DEV)/gsKit/include
|
||||||
PLATFORM_DEFINES += -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -Ips2/ -I$(PS2DEV)/gsKit/include
|
|
||||||
STATIC_LINKING=1
|
STATIC_LINKING=1
|
||||||
EXTERNAL_ZLIB=1
|
EXTERNAL_ZLIB=1
|
||||||
|
|
||||||
RETROARCH_OBJECTS += ps2/SMS_Utils.o
|
|
||||||
HAVE_NTSC = 0
|
HAVE_NTSC = 0
|
||||||
|
|
||||||
# PSP
|
# PSP
|
||||||
else ifeq ($(platform), psp1)
|
else ifeq ($(platform), psp1)
|
||||||
TARGET := $(TARGET_NAME)_libretro_$(platform).a
|
TARGET := $(TARGET_NAME)_libretro_$(platform).a
|
||||||
|
|||||||
202
ps2/SMS_Utils.s
202
ps2/SMS_Utils.s
@@ -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
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#ifndef INTTYPES_H
|
|
||||||
#define INTTYPES_H
|
|
||||||
|
|
||||||
#define PRId64 "ld"
|
|
||||||
#define PRIu64 "lu"
|
|
||||||
#define PRIuPTR "lu"
|
|
||||||
|
|
||||||
#endif //INTTYPES_H
|
|
||||||
33
ps2/stdint.h
33
ps2/stdint.h
@@ -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
|
|
||||||
@@ -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)
|
* The following license statement only applies to this libretro API header (libretro_d3d.h)
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
#include <gsKit.h>
|
#include <gsKit.h>
|
||||||
|
|
||||||
#define RETRO_HW_RENDER_INTERFACE_GSKIT_PS2_VERSION 1
|
#define RETRO_HW_RENDER_INTERFACE_GSKIT_PS2_VERSION 2
|
||||||
|
|
||||||
struct retro_hw_ps2_insets
|
struct retro_hw_ps2_insets
|
||||||
{
|
{
|
||||||
@@ -57,8 +57,6 @@ struct retro_hw_render_interface_gskit_ps2
|
|||||||
* in this interface.
|
* in this interface.
|
||||||
*/
|
*/
|
||||||
GSTEXTURE *coreTexture;
|
GSTEXTURE *coreTexture;
|
||||||
bool clearTexture;
|
|
||||||
bool updatedPalette;
|
|
||||||
struct retro_hw_ps2_insets padding;
|
struct retro_hw_ps2_insets padding;
|
||||||
};
|
};
|
||||||
typedef struct retro_hw_render_interface_gskit_ps2 RETRO_HW_RENDER_INTEFACE_GSKIT_PS2;
|
typedef struct retro_hw_render_interface_gskit_ps2 RETRO_HW_RENDER_INTEFACE_GSKIT_PS2;
|
||||||
|
|||||||
@@ -1063,12 +1063,6 @@ static void retro_set_custom_palette(void)
|
|||||||
}
|
}
|
||||||
FCEUI_SetPaletteArray( base_palette );
|
FCEUI_SetPaletteArray( base_palette );
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(RENDER_GSKIT_PS2)
|
|
||||||
if (ps2) {
|
|
||||||
ps2->updatedPalette = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set variables for NTSC(1) / PAL(2) / Dendy(3)
|
/* 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};
|
overscan_h ? 8.0f : 0.0f};
|
||||||
}
|
}
|
||||||
|
|
||||||
ps2->updatedPalette = true;
|
|
||||||
ps2->coreTexture->Clut = (u32*)retro_palette;
|
ps2->coreTexture->Clut = (u32*)retro_palette;
|
||||||
ps2->coreTexture->Mem = (u32*)gfx;
|
ps2->coreTexture->Mem = (u32*)gfx;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user