add a HAVE_MMAP check, cleanups.
This commit is contained in:
parent
41484cd73c
commit
6d7fd87e07
9
Makefile
9
Makefile
|
@ -52,7 +52,7 @@ ifeq ($(platform), unix)
|
||||||
ifneq ($(findstring Haiku,$(shell uname -a)),)
|
ifneq ($(findstring Haiku,$(shell uname -a)),)
|
||||||
LIBM :=
|
LIBM :=
|
||||||
endif
|
endif
|
||||||
CFLAGS += $(FORCE_32BIT)
|
CFLAGS += $(FORCE_32BIT) -DHAVE_MMAP
|
||||||
# OS X
|
# OS X
|
||||||
else ifeq ($(platform), osx)
|
else ifeq ($(platform), osx)
|
||||||
TARGET := $(TARGET_NAME)_libretro.dylib
|
TARGET := $(TARGET_NAME)_libretro.dylib
|
||||||
|
@ -66,6 +66,7 @@ else ifeq ($(platform), osx)
|
||||||
fpic += -mmacosx-version-min=10.5
|
fpic += -mmacosx-version-min=10.5
|
||||||
endif
|
endif
|
||||||
SHARED := -dynamiclib
|
SHARED := -dynamiclib
|
||||||
|
CFLAGS += -DHAVE_MMAP
|
||||||
|
|
||||||
# iOS
|
# iOS
|
||||||
else ifeq ($(platform), ios)
|
else ifeq ($(platform), ios)
|
||||||
|
@ -79,7 +80,7 @@ else ifeq ($(platform), ios)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CC = clang -arch armv7 -isysroot $(IOSSDK)
|
CC = clang -arch armv7 -isysroot $(IOSSDK)
|
||||||
CFLAGS += -DIOS
|
CFLAGS += -DIOS -DHAVE_MMAP
|
||||||
OSXVER = `sw_vers -productVersion | cut -d. -f 2`
|
OSXVER = `sw_vers -productVersion | cut -d. -f 2`
|
||||||
OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"`
|
OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"`
|
||||||
ifeq ($(OSX_LT_MAVERICKS),"YES")
|
ifeq ($(OSX_LT_MAVERICKS),"YES")
|
||||||
|
@ -92,6 +93,7 @@ else ifeq ($(platform), qnx)
|
||||||
TARGET := $(TARGET_NAME)_libretro_qnx.so
|
TARGET := $(TARGET_NAME)_libretro_qnx.so
|
||||||
fpic := -fPIC
|
fpic := -fPIC
|
||||||
SHARED := -shared -Wl,--version-script=link.T
|
SHARED := -shared -Wl,--version-script=link.T
|
||||||
|
CFLAGS += -DHAVE_MMAP
|
||||||
|
|
||||||
CC = qcc -Vgcc_ntoarmv7le
|
CC = qcc -Vgcc_ntoarmv7le
|
||||||
AR = qcc -Vgcc_ntoarmv7le
|
AR = qcc -Vgcc_ntoarmv7le
|
||||||
|
@ -180,6 +182,7 @@ else ifneq (,$(findstring armv,$(platform)))
|
||||||
ASFLAGS += -mfloat-abi=hard
|
ASFLAGS += -mfloat-abi=hard
|
||||||
endif
|
endif
|
||||||
CFLAGS += -DARM
|
CFLAGS += -DARM
|
||||||
|
CFLAGS += -DHAVE_MMAP
|
||||||
|
|
||||||
# emscripten
|
# emscripten
|
||||||
else ifeq ($(platform), emscripten)
|
else ifeq ($(platform), emscripten)
|
||||||
|
@ -191,7 +194,7 @@ else
|
||||||
CC = gcc
|
CC = gcc
|
||||||
SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=link.T
|
SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=link.T
|
||||||
CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
|
CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
|
||||||
|
# CFLAGS += -DHAVE_MMAP
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Forcibly disable PIC
|
# Forcibly disable PIC
|
||||||
|
|
2
common.h
2
common.h
|
@ -91,14 +91,12 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#else
|
#else
|
||||||
#ifdef __LIBRETRO__
|
|
||||||
|
|
||||||
#define GBA_SCREEN_WIDTH (240)
|
#define GBA_SCREEN_WIDTH (240)
|
||||||
#define GBA_SCREEN_HEIGHT (160)
|
#define GBA_SCREEN_HEIGHT (160)
|
||||||
#define GBA_SCREEN_PITCH (240)
|
#define GBA_SCREEN_PITCH (240)
|
||||||
|
|
||||||
void switch_to_main_thread(void);
|
void switch_to_main_thread(void);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef ARM_ARCH
|
#ifdef ARM_ARCH
|
||||||
#define function_cc
|
#define function_cc
|
||||||
|
|
2
cpu.h
2
cpu.h
|
@ -152,7 +152,7 @@ s32 translate_block_thumb(u32 pc, translation_region_type translation_region,
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __LIBRETRO__
|
#ifdef HAVE_MMAP
|
||||||
extern u8* rom_translation_cache;
|
extern u8* rom_translation_cache;
|
||||||
extern u8* ram_translation_cache;
|
extern u8* ram_translation_cache;
|
||||||
extern u8* bios_translation_cache;
|
extern u8* bios_translation_cache;
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#ifdef __LIBRETRO__
|
#ifdef HAVE_MMAP
|
||||||
u8* rom_translation_cache;
|
u8* rom_translation_cache;
|
||||||
u8* ram_translation_cache;
|
u8* ram_translation_cache;
|
||||||
u8* bios_translation_cache;
|
u8* bios_translation_cache;
|
||||||
|
|
184
disasm.c
184
disasm.c
|
@ -1,184 +0,0 @@
|
||||||
/* gameplaySP
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006 Exophase <exophase@gmail.com>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of
|
|
||||||
* the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#define arm_decode_data_proc_reg(opcode) \
|
|
||||||
u32 rn = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 rm = opcode & 0x0F \
|
|
||||||
|
|
||||||
#define arm_decode_data_proc_imm(opcode) \
|
|
||||||
u32 rn = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 imm; \
|
|
||||||
ror(imm, opcode & 0xFF, ((opcode >> 8) & 0x0F) * 2) \
|
|
||||||
|
|
||||||
#define arm_decode_psr_reg(opcode) \
|
|
||||||
u32 psr_field = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 rm = opcode & 0x0F \
|
|
||||||
|
|
||||||
#define arm_decode_psr_imm(opcode) \
|
|
||||||
u32 psr_field = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 imm; \
|
|
||||||
ror(imm, opcode & 0xFF, ((opcode >> 8) & 0x0F) * 2) \
|
|
||||||
|
|
||||||
#define arm_decode_branchx(opcode) \
|
|
||||||
u32 rn = opcode & 0x0F \
|
|
||||||
|
|
||||||
#define arm_decode_multiply() \
|
|
||||||
u32 rd = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rn = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 rs = (opcode >> 8) & 0x0F; \
|
|
||||||
u32 rm = opcode & 0x0F \
|
|
||||||
|
|
||||||
#define arm_decode_multiply_long() \
|
|
||||||
u32 rdhi = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rdlo = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 rn = (opcode >> 8) & 0x0F; \
|
|
||||||
u32 rm = opcode & 0x0F \
|
|
||||||
|
|
||||||
#define arm_decode_swap() \
|
|
||||||
u32 rn = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 rm = opcode & 0x0F \
|
|
||||||
|
|
||||||
#define arm_decode_half_trans_r() \
|
|
||||||
u32 rn = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 rm = opcode & 0x0F \
|
|
||||||
|
|
||||||
#define arm_decode_half_trans_of() \
|
|
||||||
u32 rn = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 offset = ((opcode >> 4) & 0xF0) | (opcode & 0x0F) \
|
|
||||||
|
|
||||||
#define arm_decode_data_trans_imm() \
|
|
||||||
u32 rn = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 offset = opcode & 0x0FFF \
|
|
||||||
|
|
||||||
#define arm_decode_data_trans_reg() \
|
|
||||||
u32 rn = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 rd = (opcode >> 12) & 0x0F; \
|
|
||||||
u32 rm = opcode & 0x0F \
|
|
||||||
|
|
||||||
#define arm_decode_block_trans() \
|
|
||||||
u32 rn = (opcode >> 16) & 0x0F; \
|
|
||||||
u32 reg_list = opcode & 0xFFFF \
|
|
||||||
|
|
||||||
#define arm_decode_branch() \
|
|
||||||
s32 offset = ((s32)(opcode & 0xFFFFFF) << 8) >> 6 \
|
|
||||||
|
|
||||||
#define thumb_decode_shift() \
|
|
||||||
u32 imm = (opcode >> 6) & 0x1F; \
|
|
||||||
u32 rs = (opcode >> 3) & 0x07; \
|
|
||||||
u32 rd = opcode & 0x07 \
|
|
||||||
|
|
||||||
#define thumb_decode_add_sub() \
|
|
||||||
u32 rn = (opcode >> 6) & 0x07; \
|
|
||||||
u32 rs = (opcode >> 3) & 0x07; \
|
|
||||||
u32 rd = opcode & 0x07 \
|
|
||||||
|
|
||||||
#define thumb_decode_add_sub_imm() \
|
|
||||||
u32 imm = (opcode >> 6) & 0x07; \
|
|
||||||
u32 rs = (opcode >> 3) & 0x07; \
|
|
||||||
u32 rd = opcode & 0x07 \
|
|
||||||
|
|
||||||
#define thumb_decode_imm() \
|
|
||||||
u32 imm = opcode & 0xFF \
|
|
||||||
|
|
||||||
#define thumb_decode_alu_op() \
|
|
||||||
u32 rs = (opcode >> 3) & 0x07; \
|
|
||||||
u32 rd = opcode & 0x07 \
|
|
||||||
|
|
||||||
#define thumb_decode_hireg_op() \
|
|
||||||
u32 rs = (opcode >> 3) & 0x0F; \
|
|
||||||
u32 rd = ((opcode >> 4) & 0x08) | (opcode & 0x07) \
|
|
||||||
|
|
||||||
#define thumb_decode_mem_reg() \
|
|
||||||
u32 ro = (opcode >> 6) & 0x07; \
|
|
||||||
u32 rb = (opcode >> 3) & 0x07; \
|
|
||||||
u32 rd = opcode & 0x07 \
|
|
||||||
|
|
||||||
#define thumb_decode_mem_imm() \
|
|
||||||
u32 imm = (opcode >> 6) & 0x1F; \
|
|
||||||
u32 rb = (opcode >> 3) & 0x07; \
|
|
||||||
u32 rd = opcode & 0x07 \
|
|
||||||
|
|
||||||
#define thumb_decode_add_sp() \
|
|
||||||
u32 imm = opcode & 0x7F \
|
|
||||||
|
|
||||||
#define thumb_decode_rlist() \
|
|
||||||
u32 reg_list = opcode & 0xFF \
|
|
||||||
|
|
||||||
#define thumb_decode_branch_cond() \
|
|
||||||
s32 offset = (s8)(opcode & 0xFF) \
|
|
||||||
|
|
||||||
#define thumb_decode_swi() \
|
|
||||||
u32 comment = opcode & 0xFF \
|
|
||||||
|
|
||||||
#define thumb_decode_branch() \
|
|
||||||
u32 offset = opcode & 0x07FF \
|
|
||||||
|
|
||||||
const char *condition_table[] =
|
|
||||||
{
|
|
||||||
"eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc",
|
|
||||||
"hi", "ls", "ge", "lt", "gt", "le", "al", "nv"
|
|
||||||
};
|
|
||||||
|
|
||||||
const char *data_proc_opcode_table[] =
|
|
||||||
{
|
|
||||||
"and", "eor", "sub", "rsb", "add", "adc", "sbc", "rsc",
|
|
||||||
"tst", "teq", "cmp", "cmn", "orr", "mov", "bic", "mvn"
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
u32 print_disasm_arm_instruction(u32 opcode)
|
|
||||||
{
|
|
||||||
u32 condition = opcode >> 28;
|
|
||||||
|
|
||||||
switch((opcode >> 25) & 0x07)
|
|
||||||
{
|
|
||||||
// Data processing reg, multiply, bx, memory transfer half/byte, swap,
|
|
||||||
// PSR reg
|
|
||||||
case 0x0:
|
|
||||||
|
|
||||||
// Data processing imm, PSR imm
|
|
||||||
case 0x1:
|
|
||||||
|
|
||||||
// Memory transfer imm
|
|
||||||
case 0x2:
|
|
||||||
|
|
||||||
// Memory transfer reg, undefined
|
|
||||||
case 0x3:
|
|
||||||
|
|
||||||
// Block memory transfer
|
|
||||||
case 0x4:
|
|
||||||
|
|
||||||
// Branch
|
|
||||||
case 0x5:
|
|
||||||
|
|
||||||
// Coprocessor
|
|
||||||
case 0x6:
|
|
||||||
|
|
||||||
// Coprocessor, SWI
|
|
||||||
case 0x7:
|
|
||||||
}
|
|
45
input.c
45
input.c
|
@ -19,7 +19,10 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
// Special thanks to psp298 for the analog->dpad code!
|
static u32 old_key = 0;
|
||||||
|
static retro_input_state_t input_state_cb;
|
||||||
|
|
||||||
|
void retro_set_input_state(retro_input_state_t cb) { input_state_cb = cb; }
|
||||||
|
|
||||||
void trigger_key(u32 key)
|
void trigger_key(u32 key)
|
||||||
{
|
{
|
||||||
|
@ -42,34 +45,8 @@ void trigger_key(u32 key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 key = 0;
|
|
||||||
|
|
||||||
u32 global_enable_analog = 1;
|
|
||||||
u32 analog_sensitivity_level = 4;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
BUTTON_NOT_HELD,
|
|
||||||
BUTTON_HELD_INITIAL,
|
|
||||||
BUTTON_HELD_REPEAT
|
|
||||||
} button_repeat_state_type;
|
|
||||||
|
|
||||||
|
|
||||||
// These define autorepeat values (in microseconds), tweak as necessary.
|
|
||||||
|
|
||||||
#define BUTTON_REPEAT_START 200000
|
|
||||||
#define BUTTON_REPEAT_CONTINUE 50000
|
|
||||||
|
|
||||||
button_repeat_state_type button_repeat_state = BUTTON_NOT_HELD;
|
|
||||||
u32 button_repeat = 0;
|
|
||||||
gui_action_type cursor_repeat = CURSOR_NONE;
|
|
||||||
|
|
||||||
static retro_input_state_t input_state_cb;
|
|
||||||
void retro_set_input_state(retro_input_state_t cb) { input_state_cb = cb; }
|
|
||||||
|
|
||||||
u32 update_input(void)
|
u32 update_input(void)
|
||||||
{
|
{
|
||||||
// return;
|
|
||||||
unsigned i;
|
unsigned i;
|
||||||
uint32_t new_key = 0;
|
uint32_t new_key = 0;
|
||||||
|
|
||||||
|
@ -79,19 +56,19 @@ u32 update_input(void)
|
||||||
for (i = 0; i < sizeof(btn_map) / sizeof(map); i++)
|
for (i = 0; i < sizeof(btn_map) / sizeof(map); i++)
|
||||||
new_key |= input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, btn_map[i].retropad) ? btn_map[i].gba : 0;
|
new_key |= input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, btn_map[i].retropad) ? btn_map[i].gba : 0;
|
||||||
|
|
||||||
if ((new_key | key) != key)
|
if ((new_key | old_key) != old_key)
|
||||||
trigger_key(new_key);
|
trigger_key(new_key);
|
||||||
|
|
||||||
key = new_key;
|
old_key = new_key;
|
||||||
io_registers[REG_P1] = (~key) & 0x3FF;
|
io_registers[REG_P1] = (~old_key) & 0x3FF;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define input_savestate_builder(type) \
|
#define input_savestate_builder(type) \
|
||||||
void input_##type##_savestate(void) \
|
void input_##type##_savestate(void) \
|
||||||
{ \
|
{ \
|
||||||
state_mem_##type##_variable(key); \
|
state_mem_##type##_variable(old_key); \
|
||||||
}
|
}
|
||||||
|
|
||||||
input_savestate_builder(read)
|
input_savestate_builder(read)
|
||||||
|
|
57
input.h
57
input.h
|
@ -20,6 +20,8 @@
|
||||||
#ifndef INPUT_H
|
#ifndef INPUT_H
|
||||||
#define INPUT_H
|
#define INPUT_H
|
||||||
|
|
||||||
|
#include "libretro.h"
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
BUTTON_L = 0x200,
|
BUTTON_L = 0x200,
|
||||||
|
@ -35,58 +37,12 @@ typedef enum
|
||||||
BUTTON_NONE = 0x00
|
BUTTON_NONE = 0x00
|
||||||
} input_buttons_type;
|
} input_buttons_type;
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
BUTTON_ID_UP,
|
|
||||||
BUTTON_ID_DOWN,
|
|
||||||
BUTTON_ID_LEFT,
|
|
||||||
BUTTON_ID_RIGHT,
|
|
||||||
BUTTON_ID_A,
|
|
||||||
BUTTON_ID_B,
|
|
||||||
BUTTON_ID_L,
|
|
||||||
BUTTON_ID_R,
|
|
||||||
BUTTON_ID_START,
|
|
||||||
BUTTON_ID_SELECT,
|
|
||||||
BUTTON_ID_MENU,
|
|
||||||
BUTTON_ID_FASTFORWARD,
|
|
||||||
BUTTON_ID_LOADSTATE,
|
|
||||||
BUTTON_ID_SAVESTATE,
|
|
||||||
BUTTON_ID_RAPIDFIRE_A,
|
|
||||||
BUTTON_ID_RAPIDFIRE_B,
|
|
||||||
BUTTON_ID_RAPIDFIRE_L,
|
|
||||||
BUTTON_ID_RAPIDFIRE_R,
|
|
||||||
BUTTON_ID_VOLUP,
|
|
||||||
BUTTON_ID_VOLDOWN,
|
|
||||||
BUTTON_ID_FPS,
|
|
||||||
BUTTON_ID_NONE
|
|
||||||
} input_buttons_id_type;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
CURSOR_UP,
|
|
||||||
CURSOR_DOWN,
|
|
||||||
CURSOR_LEFT,
|
|
||||||
CURSOR_RIGHT,
|
|
||||||
CURSOR_SELECT,
|
|
||||||
CURSOR_BACK,
|
|
||||||
CURSOR_EXIT,
|
|
||||||
CURSOR_L,
|
|
||||||
CURSOR_R,
|
|
||||||
CURSOR_NONE
|
|
||||||
} gui_action_type;
|
|
||||||
|
|
||||||
void init_input();
|
|
||||||
u32 update_input();
|
|
||||||
void input_write_savestate(void);
|
|
||||||
void input_read_savestate(void);
|
|
||||||
|
|
||||||
#include "libretro.h"
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned retropad ;
|
unsigned retropad ;
|
||||||
input_buttons_type gba;
|
input_buttons_type gba;
|
||||||
} map;
|
} map;
|
||||||
|
|
||||||
static const map btn_map[] = {
|
static const map btn_map[] = {
|
||||||
{ RETRO_DEVICE_ID_JOYPAD_L, BUTTON_L },
|
{ RETRO_DEVICE_ID_JOYPAD_L, BUTTON_L },
|
||||||
{ RETRO_DEVICE_ID_JOYPAD_R, BUTTON_R },
|
{ RETRO_DEVICE_ID_JOYPAD_R, BUTTON_R },
|
||||||
|
@ -100,8 +56,9 @@ static const map btn_map[] = {
|
||||||
{ RETRO_DEVICE_ID_JOYPAD_A, BUTTON_A }
|
{ RETRO_DEVICE_ID_JOYPAD_A, BUTTON_A }
|
||||||
};
|
};
|
||||||
|
|
||||||
extern u32 gamepad_config_map[];
|
void init_input();
|
||||||
extern u32 global_enable_analog;
|
u32 update_input();
|
||||||
extern u32 analog_sensitivity_level;
|
void input_write_savestate(void);
|
||||||
|
void input_read_savestate(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -27,6 +27,6 @@ CPU_ARCH := arm
|
||||||
include $(CORE_DIR)/Makefile.common
|
include $(CORE_DIR)/Makefile.common
|
||||||
|
|
||||||
LOCAL_SRC_FILES := $(SOURCES_C) $(SOURCES_ASM)
|
LOCAL_SRC_FILES := $(SOURCES_C) $(SOURCES_ASM)
|
||||||
LOCAL_CFLAGS += -O2 -DARM_ARCH -DNDEBUG -DINLINE=inline -D__LIBRETRO__ -DFRONTEND_SUPPORTS_RGB565 $(INCFLAGS)
|
LOCAL_CFLAGS += -O2 -DHAVE_MMAP -DARM_ARCH -DNDEBUG -DINLINE=inline -D__LIBRETRO__ -DFRONTEND_SUPPORTS_RGB565 $(INCFLAGS)
|
||||||
|
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
|
@ -97,6 +97,7 @@ void retro_init()
|
||||||
init_gamepak_buffer();
|
init_gamepak_buffer();
|
||||||
init_sound(1);
|
init_sound(1);
|
||||||
|
|
||||||
|
#ifdef HAVE_MMAP
|
||||||
rom_translation_cache = mmap(NULL, ROM_TRANSLATION_CACHE_SIZE,
|
rom_translation_cache = mmap(NULL, ROM_TRANSLATION_CACHE_SIZE,
|
||||||
PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, -1, 0);
|
PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||||
ram_translation_cache = mmap(NULL, RAM_TRANSLATION_CACHE_SIZE,
|
ram_translation_cache = mmap(NULL, RAM_TRANSLATION_CACHE_SIZE,
|
||||||
|
@ -107,6 +108,7 @@ void retro_init()
|
||||||
rom_translation_ptr = rom_translation_cache;
|
rom_translation_ptr = rom_translation_cache;
|
||||||
ram_translation_ptr = ram_translation_cache;
|
ram_translation_ptr = ram_translation_cache;
|
||||||
bios_translation_ptr = bios_translation_cache;
|
bios_translation_ptr = bios_translation_cache;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void retro_deinit()
|
void retro_deinit()
|
||||||
|
@ -114,9 +116,11 @@ void retro_deinit()
|
||||||
perf_cb.perf_log();
|
perf_cb.perf_log();
|
||||||
memory_term();
|
memory_term();
|
||||||
|
|
||||||
|
#ifdef HAVE_MMAP
|
||||||
munmap(rom_translation_cache, ROM_TRANSLATION_CACHE_SIZE);
|
munmap(rom_translation_cache, ROM_TRANSLATION_CACHE_SIZE);
|
||||||
munmap(ram_translation_cache, RAM_TRANSLATION_CACHE_SIZE);
|
munmap(ram_translation_cache, RAM_TRANSLATION_CACHE_SIZE);
|
||||||
munmap(bios_translation_cache, BIOS_TRANSLATION_CACHE_SIZE);
|
munmap(bios_translation_cache, BIOS_TRANSLATION_CACHE_SIZE);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void retro_set_environment(retro_environment_t cb)
|
void retro_set_environment(retro_environment_t cb)
|
||||||
|
|
26
psp/Makefile
26
psp/Makefile
|
@ -1,26 +0,0 @@
|
||||||
# -x assembler-with-cpp
|
|
||||||
# gpSP makefile
|
|
||||||
# Gilead Kutnick - Exophase
|
|
||||||
|
|
||||||
# Global definitions
|
|
||||||
|
|
||||||
PSPSDK = ${shell psp-config --pspsdk-path}
|
|
||||||
PREFIX = ${shell psp-config --psp-prefix}
|
|
||||||
|
|
||||||
OBJS = main.o cpu.o video.o memory.o sound.o input.o \
|
|
||||||
cpu_threaded.o gui.o zip.o cheats.o mips_stub.o
|
|
||||||
|
|
||||||
TARGET = gpSP
|
|
||||||
|
|
||||||
VPATH += ..
|
|
||||||
CFLAGS += -O3 -DPSP_BUILD -G0 -funsigned-char
|
|
||||||
CFLAGS += ${shell ${PREFIX}/bin/sdl-config --cflags}
|
|
||||||
ASFLAGS = ${CFLAGS}
|
|
||||||
PSP_EBOOT_TITLE = gpSP
|
|
||||||
EXTRA_TARGETS = EBOOT.PBP
|
|
||||||
|
|
||||||
LIBS += ${shell ${PREFIX}/bin/sdl-config --libs} -lpsppower \
|
|
||||||
-lz
|
|
||||||
|
|
||||||
include ${PSPSDK}/lib/build.mak
|
|
||||||
|
|
60
x86/Makefile
60
x86/Makefile
|
@ -1,60 +0,0 @@
|
||||||
# gpSP makefile
|
|
||||||
# Gilead Kutnick - Exophase
|
|
||||||
|
|
||||||
# Global definitions
|
|
||||||
|
|
||||||
CC = gcc
|
|
||||||
STRIP = strip
|
|
||||||
AS = as
|
|
||||||
|
|
||||||
PREFIX = /usr
|
|
||||||
OBJS = ../main.o ../cpu.o ../memory.o ../video.o ../input.o ../sound.o \
|
|
||||||
../cpu_threaded.o ../gui.o x86_stub.o ../cheats.o ../zip.o
|
|
||||||
|
|
||||||
# Platform specific definitions
|
|
||||||
|
|
||||||
ifeq ($(shell uname -a),)
|
|
||||||
EXE_EXT = .exe
|
|
||||||
else ifneq ($(findstring MINGW,$(shell uname -a)),)
|
|
||||||
EXE_EXT = .exe
|
|
||||||
else
|
|
||||||
EXE_EXT =
|
|
||||||
endif
|
|
||||||
|
|
||||||
BIN ?= gpsp$(EXE_EXT)
|
|
||||||
|
|
||||||
CFLAGS += -DPC_BUILD -Wall -m32
|
|
||||||
INCLUDES = -I$(PREFIX)/include `sdl-config --cflags`
|
|
||||||
LIBS = -L$(PREFIX)/lib32 `sdl-config --libs` -lz -m32
|
|
||||||
|
|
||||||
# Compilation:
|
|
||||||
|
|
||||||
ifeq ($(DEBUG), 1)
|
|
||||||
OPTIMIZE := -O0 -g
|
|
||||||
OPTIMIZE_SAFE := -O0 -g
|
|
||||||
else
|
|
||||||
OPTIMIZE := -O3
|
|
||||||
OPTIMIZE_SAFE := -O2
|
|
||||||
endif
|
|
||||||
|
|
||||||
all: $(BIN)
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
$(CC) $(CFLAGS) $(OPTIMIZE) $(INCLUDES) -c -o $@ $<
|
|
||||||
|
|
||||||
%.o: %.S
|
|
||||||
$(CC) $(CFLAGS) $(OPTIMIZE) -c -o $@ $<
|
|
||||||
|
|
||||||
../cpu.o: ../cpu.c
|
|
||||||
$(CC) -c -o $@ $< $(CFLAGS) -Wno-unused-variable -Wno-unused-label $(OPTIMIZE_SAFE) $(INCLUDES)
|
|
||||||
|
|
||||||
../cpu_threaded.o: ../cpu_threaded.c
|
|
||||||
$(CC) -c -o $@ $< $(CFLAGS) -Wno-unused-variable -Wno-unused-label $(OPTIMIZE_SAFE) $(INCLUDES)
|
|
||||||
|
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
|
||||||
$(CC) $(OBJS) $(LIBS) -o $(BIN)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(OBJS) $(BIN)
|
|
||||||
|
|
Loading…
Reference in New Issue