mirror of https://github.com/mgba-emu/mgba.git
PSP2: Add support for vitasdk
This commit is contained in:
parent
1624cd92ba
commit
44211c32a8
|
@ -496,7 +496,7 @@ if(WII)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PSP2)
|
if(PSP2)
|
||||||
add_subdirectory(${CMAKE_SOURCE_DIR}/src/platform/psp2 ${CMAKE_BINARY_DIR}/psp2)
|
add_subdirectory(${CMAKE_SOURCE_DIR}/src/platform/psp2 ${CMAKE_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(3DS)
|
if(3DS)
|
||||||
|
|
|
@ -277,7 +277,7 @@ void _rtcUpdateClock(struct GBACartridgeHardware* hw) {
|
||||||
t = time(0);
|
t = time(0);
|
||||||
}
|
}
|
||||||
struct tm date;
|
struct tm date;
|
||||||
#if defined(_WIN32) || defined(PSP2)
|
#ifdef _WIN32
|
||||||
localtime_s(&date, &t);
|
localtime_s(&date, &t);
|
||||||
#else
|
#else
|
||||||
localtime_r(&t, &date);
|
localtime_r(&t, &date);
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
file(GLOB PLATFORM_SRC ${CMAKE_SOURCE_DIR}/src/platform/psp2/*.c)
|
file(GLOB PLATFORM_SRC ${CMAKE_SOURCE_DIR}/src/platform/psp2/*.c)
|
||||||
include_directories(${CMAKE_BINARY_DIR})
|
|
||||||
|
|
||||||
execute_process(COMMAND ${RAW2C} ${CMAKE_SOURCE_DIR}/res/font.png)
|
execute_process(COMMAND ${OBJCOPY} -I binary -O elf32-littlearm -B arm font.png ${CMAKE_BINARY_DIR}/font.o WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/res)
|
||||||
|
|
||||||
set(PLATFORM_LIBRARY -lvita2d -lSceCtrl_stub -lSceRtc_stub -lSceGxm_stub -lSceDisplay_stub -lSceAudio_stub -lpng -lz -lm_stub)
|
set(PLATFORM_LIBRARY -lvita2d -lSceCtrl_stub -lSceRtc_stub -lSceGxm_stub -lSceDisplay_stub -lSceAudio_stub -lpng -lz -lm)
|
||||||
|
|
||||||
add_executable(${BINARY_NAME}.elf ${PLATFORM_SRC} ${GUI_SRC} ${CMAKE_BINARY_DIR}/font.c)
|
add_executable(${BINARY_NAME}.elf ${PLATFORM_SRC} ${GUI_SRC} ${CMAKE_BINARY_DIR}/font.o)
|
||||||
target_link_libraries(${BINARY_NAME}.elf ${BINARY_NAME} ${PLATFORM_LIBRARY})
|
target_link_libraries(${BINARY_NAME}.elf ${BINARY_NAME} ${PLATFORM_LIBRARY})
|
||||||
set_target_properties(${BINARY_NAME}.elf PROPERTIES OUTPUT_NAME ${BINARY_NAME}.elf)
|
set_target_properties(${BINARY_NAME}.elf PROPERTIES OUTPUT_NAME ${BINARY_NAME}.elf)
|
||||||
add_custom_command(TARGET ${BINARY_NAME}.elf POST_BUILD COMMAND ${FIXUP} -q -S ${BINARY_NAME}.elf ${BINARY_NAME}.velf MAIN_DEPENDENCY ${BINARY_NAME}.elf)
|
add_custom_command(TARGET ${BINARY_NAME}.elf POST_BUILD COMMAND ${FIXUP} ${BINARY_NAME}.elf ${BINARY_NAME}.velf ${NIDDB} MAIN_DEPENDENCY ${BINARY_NAME}.elf)
|
||||||
|
|
|
@ -44,8 +44,8 @@ set(CMAKE_SHARED_LINKER_FLAGS ${link_flags} CACHE INTERNAL "shared link flags")
|
||||||
|
|
||||||
set(PKG_CONFIG_EXECUTABLE "/dev/null" CACHE INTERNAL "" FORCE)
|
set(PKG_CONFIG_EXECUTABLE "/dev/null" CACHE INTERNAL "" FORCE)
|
||||||
|
|
||||||
set(FIXUP ${toolchain_bin_dir}/psp2-fixup)
|
set(FIXUP ${toolchain_bin_dir}/psp2-fixup -q -S)
|
||||||
set(RAW2C ${DEVKITARM}/bin/raw2c)
|
set(OBJCOPY ${cross_prefix}objcopy)
|
||||||
|
|
||||||
set(PSP2 ON)
|
set(PSP2 ON)
|
||||||
add_definitions(-DPSP2)
|
add_definitions(-DPSP2)
|
|
@ -0,0 +1,37 @@
|
||||||
|
if(DEFINED ENV{VITASDK})
|
||||||
|
set(VITASDK $ENV{VITASDK})
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Could not find VITASDK in environment")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(toolchain_dir ${VITASDK})
|
||||||
|
set(toolchain_bin_dir ${toolchain_dir}/bin)
|
||||||
|
set(cross_prefix ${toolchain_bin_dir}/arm-vita-eabi-)
|
||||||
|
set(inc_flags -I${toolchain_dir}/include)
|
||||||
|
set(link_flags "-L${toolchain_dir}/lib -Wl,-q")
|
||||||
|
|
||||||
|
set(CMAKE_SYSTEM_NAME Generic CACHE INTERNAL "system name")
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR arm CACHE INTERNAL "processor")
|
||||||
|
set(CMAKE_LIBRARY_ARCHITECTURE arm-none-eabi CACHE INTERNAL "abi")
|
||||||
|
set(CMAKE_AR ${cross_prefix}ar CACHE INTERNAL "archiver")
|
||||||
|
set(CMAKE_C_COMPILER ${cross_prefix}gcc CACHE INTERNAL "c compiler")
|
||||||
|
set(CMAKE_CXX_COMPILER ${cross_prefix}g++ CACHE INTERNAL "cxx compiler")
|
||||||
|
set(CMAKE_ASM_COMPILER ${cross_prefix}gcc CACHE INTERNAL "assembler")
|
||||||
|
set(common_flags "${inc_flags}")
|
||||||
|
set(CMAKE_C_FLAGS ${common_flags} CACHE INTERNAL "c compiler flags")
|
||||||
|
set(CMAKE_ASM_FLAGS ${common_flags} CACHE INTERNAL "c compiler flags")
|
||||||
|
set(CMAKE_CXX_FLAGS ${common_flags} CACHE INTERNAL "cxx compiler flags")
|
||||||
|
set(CMAKE_LINKER ${cross_prefix}ld CACHE INTERNAL "linker")
|
||||||
|
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "exe link flags")
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "module link flags")
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS ${link_flags} CACHE INTERNAL "shared link flags")
|
||||||
|
|
||||||
|
set(PKG_CONFIG_EXECUTABLE "/dev/null" CACHE INTERNAL "" FORCE)
|
||||||
|
|
||||||
|
set(FIXUP ${toolchain_bin_dir}/vita-elf-create)
|
||||||
|
set(OBJCOPY ${cross_prefix}objcopy)
|
||||||
|
set(NIDDB ${VITASDK}/db.json)
|
||||||
|
|
||||||
|
set(PSP2 ON)
|
||||||
|
add_definitions(-DPSP2)
|
|
@ -5,7 +5,6 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
#include "util/gui/font.h"
|
#include "util/gui/font.h"
|
||||||
#include "util/gui/font-metrics.h"
|
#include "util/gui/font-metrics.h"
|
||||||
#include "font.h"
|
|
||||||
|
|
||||||
#include <vita2d.h>
|
#include <vita2d.h>
|
||||||
|
|
||||||
|
@ -13,17 +12,19 @@
|
||||||
#define CELL_WIDTH 16
|
#define CELL_WIDTH 16
|
||||||
#define GLYPH_HEIGHT 12
|
#define GLYPH_HEIGHT 12
|
||||||
|
|
||||||
|
extern const uint8_t _binary_font_png_start[];
|
||||||
|
|
||||||
struct GUIFont {
|
struct GUIFont {
|
||||||
vita2d_texture* tex;
|
vita2d_texture* tex;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct GUIFont* GUIFontCreate(void) {
|
struct GUIFont* GUIFontCreate(void) {
|
||||||
struct GUIFont* guiFont = malloc(sizeof(struct GUIFont));
|
struct GUIFont* font = malloc(sizeof(struct GUIFont));
|
||||||
if (!guiFont) {
|
if (!font) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
guiFont->tex = vita2d_load_PNG_buffer(font);
|
font->tex = vita2d_load_PNG_buffer(_binary_font_png_start);
|
||||||
return guiFont;
|
return font;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFontDestroy(struct GUIFont* font) {
|
void GUIFontDestroy(struct GUIFont* font) {
|
||||||
|
|
Loading…
Reference in New Issue