Skip to content

Commit 0d47b3c

Browse files
committed
added truetype font support for menu, started working on i18n support
1 parent 83c4602 commit 0d47b3c

19 files changed

+2577
-329
lines changed

Makefile.gcw0

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ SPU = spu_pcsxrearmed
2222
RECOMPILER = mips
2323

2424
RM = rm -f
25-
MD = mkdir
25+
MD = mkdir -p
2626
CC = mipsel-linux-gcc
2727
CXX = mipsel-linux-g++
2828
LD = mipsel-linux-g++
@@ -31,8 +31,11 @@ SYSROOT := $(shell $(CC) --print-sysroot)
3131
SDL_CONFIG := $(SYSROOT)/usr/bin/sdl-config
3232
SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags)
3333
SDL_LIBS := $(shell $(SDL_CONFIG) --libs)
34+
FREETYPE_CONFIG := $(SYSROOT)/usr/bin/freetype-config
35+
FREETYPE_CFLAGS := $(shell $(FREETYPE_CONFIG) --cflags)
36+
FREETYPE_LIBS := $(shell $(FREETYPE_CONFIG) --libs)
3437

35-
LDFLAGS := $(SDL_LIBS) -lSDL_mixer -lSDL_image -lrt -lz
38+
LDFLAGS := $(SDL_LIBS) $(FREETYPE_LIBS) -lshake -lrt -lz -lintl
3639

3740
ifdef A320
3841
C_ARCH = -mips32 -msoft-float -DGCW_ZERO -DDYNAREC_SKIP_DCACHE_FLUSH -DTMPFS_MIRRORING -DTMPFS_DIR=\"/tmp\"
@@ -57,7 +60,7 @@ else
5760
# mirror PS1 address space.
5861
#C_ARCH += -DMMAP_TO_ADDRESS_ZERO
5962
#LDFLAGS += -Wl,-Ttext-segment=0x40000000
60-
LDFLAGS = $(SDL_LIBS) -lrt -lz -Wl,--as-needed -Wl,--gc-sections -s
63+
LDFLAGS = $(SDL_LIBS) $(FREETYPE_LIBS) -lshake -lrt -lz -lintl -Wl,--as-needed -Wl,--gc-sections -s
6164
LDFLAGS += -flto
6265
# Furthermore, div-by-zero checks are disabled (helps software rendering)
6366
C_ARCH += -mno-check-zero-division
@@ -72,7 +75,7 @@ CFLAGS := $(C_ARCH) -mplt -mno-shared -ggdb3 -O2 -flto -DTIME_IN_MSEC \
7275
-Isrc/external_lib \
7376
-DXA_HACK \
7477
-DINLINE="static __inline__" -Dasm="__asm__ __volatile__" \
75-
$(SDL_CFLAGS)
78+
$(SDL_CFLAGS) $(FREETYPE_CFLAGS)
7679

7780
# Convert plugin names to uppercase and make them CFLAG defines
7881
CFLAGS += -D$(shell echo $(GPU) | tr a-z A-Z)
@@ -87,7 +90,7 @@ OBJDIRS = obj obj/gpu obj/gpu/$(GPU) obj/spu obj/spu/$(SPU) \
8790
obj/port obj/port/$(PORT) \
8891
obj/plugin_lib obj/external_lib
8992

90-
all: maketree $(TARGET)
93+
all: maketree hints
9194

9295
OBJS = \
9396
obj/r3000a.o obj/misc.o obj/plugins.o obj/psxmem.o obj/psxhw.o \
@@ -129,6 +132,8 @@ OBJS += obj/spu/$(SPU)/spu.o
129132

130133
OBJS += obj/port/$(PORT)/port.o
131134
OBJS += obj/port/$(PORT)/frontend.o
135+
OBJS += obj/port/$(PORT)/ttf.o
136+
OBJS += obj/port/$(PORT)/i18n.o
132137

133138
OBJS += obj/plugin_lib/perfmon.o
134139

@@ -207,12 +212,17 @@ endif
207212
# spu_pcsxrearmed END
208213
#******************************************
209214

210-
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
215+
CXXFLAGS := $(CFLAGS) -std=gnu++11 -fno-rtti -fno-exceptions
216+
217+
LOCALE_SRC := $(wildcard translations/*.po)
218+
LOCALES := $(patsubst translations/%.po, locale/%/LC_MESSAGES/pcsx4all.mo, $(LOCALE_SRC))
211219

212220
$(TARGET): $(OBJS)
213221
@echo Linking $(TARGET)...
214222
$(HIDECMD)$(LD) $(OBJS) $(LDFLAGS) -o $@
215223
@echo
224+
225+
hints: $(TARGET) $(LOCALES)
216226
ifeq ($(DEV),1)
217227
@echo "-> WARNING: This is a development build. "
218228
@echo " Mapping to virtual address zero is disabled. As a result, "
@@ -225,6 +235,7 @@ else
225235
@echo " If developing/debugging, you can pass DEV=1 on make command-line to "
226236
@echo " disable these behaviors. Be sure to do a clean rebuild. "
227237
endif
238+
@echo
228239

229240
obj/%.o: src/%.c
230241
@echo Compiling $<...
@@ -242,11 +253,16 @@ obj/%.o: src/%.S
242253
@echo Compiling $<...
243254
$(HIDECMD)$(CXX) $(CFLAGS) -c $< -o $@
244255

256+
locale/%/LC_MESSAGES/pcsx4all.mo: translations/%.po
257+
@echo Creating locale file $@...
258+
$(HIDECMD)$(MD) $(@D)
259+
$(HIDECMD)msgfmt --no-hash -c $< -o $@
260+
245261
$(sort $(OBJDIRS)):
246262
$(HIDECMD)$(MD) $@
247263

248264
maketree: $(sort $(OBJDIRS))
249265

250266
clean:
251-
$(RM) -r obj
267+
$(RM) -r obj locale
252268
$(RM) $(TARGET)

Makefile.rg350

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ SPU = spu_pcsxrearmed
2222
RECOMPILER = mips
2323

2424
RM = rm -f
25-
MD = mkdir
25+
MD = mkdir -p
2626
CC = mipsel-linux-gcc
2727
CXX = mipsel-linux-g++
2828
LD = mipsel-linux-g++
@@ -31,8 +31,11 @@ SYSROOT := $(shell $(CC) --print-sysroot)
3131
SDL_CONFIG := $(SYSROOT)/usr/bin/sdl-config
3232
SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags)
3333
SDL_LIBS := $(shell $(SDL_CONFIG) --libs)
34+
FREETYPE_CONFIG := $(SYSROOT)/usr/bin/freetype-config
35+
FREETYPE_CFLAGS := $(shell $(FREETYPE_CONFIG) --cflags)
36+
FREETYPE_LIBS := $(shell $(FREETYPE_CONFIG) --libs)
3437

35-
LDFLAGS := $(SDL_LIBS) -lSDL_mixer -lSDL_image -lrt -lz -lshake
38+
LDFLAGS := $(SDL_LIBS) $(FREETYPE_LIBS) -lshake -lrt -lz -lintl
3639

3740
ifdef A320
3841
C_ARCH = -mips32 -msoft-float -DGCW_ZERO -DRG350 -DDYNAREC_SKIP_DCACHE_FLUSH -DTMPFS_MIRRORING -DTMPFS_DIR=\"/tmp\"
@@ -57,7 +60,7 @@ else
5760
# mirror PS1 address space.
5861
#C_ARCH += -DMMAP_TO_ADDRESS_ZERO
5962
#LDFLAGS += -Wl,-Ttext-segment=0x40000000
60-
LDFLAGS = $(SDL_LIBS) -lrt -lz -Wl,--as-needed -Wl,--gc-sections -s -lshake
63+
LDFLAGS = $(SDL_LIBS) $(FREETYPE_LIBS) -lshake -lrt -lz -lintl -Wl,--as-needed -Wl,--gc-sections -s
6164
LDFLAGS += -flto
6265
# Furthermore, div-by-zero checks are disabled (helps software rendering)
6366
C_ARCH += -mno-check-zero-division
@@ -72,7 +75,7 @@ CFLAGS := $(C_ARCH) -mplt -mno-shared -ggdb3 -O4 -fexpensive-optimizations -flto
7275
-Isrc/external_lib \
7376
-DXA_HACK \
7477
-DINLINE="static __inline__" -Dasm="__asm__ __volatile__" \
75-
$(SDL_CFLAGS)
78+
$(SDL_CFLAGS) $(FREETYPE_CFLAGS)
7679

7780
# Convert plugin names to uppercase and make them CFLAG defines
7881
CFLAGS += -D$(shell echo $(GPU) | tr a-z A-Z)
@@ -87,7 +90,7 @@ OBJDIRS = obj obj/gpu obj/gpu/$(GPU) obj/spu obj/spu/$(SPU) \
8790
obj/port obj/port/$(PORT) \
8891
obj/plugin_lib obj/external_lib
8992

90-
all: maketree $(TARGET)
93+
all: maketree hints
9194

9295
OBJS = \
9396
obj/r3000a.o obj/misc.o obj/plugins.o obj/psxmem.o obj/psxhw.o \
@@ -129,6 +132,8 @@ OBJS += obj/spu/$(SPU)/spu.o
129132

130133
OBJS += obj/port/$(PORT)/port.o
131134
OBJS += obj/port/$(PORT)/frontend.o
135+
OBJS += obj/port/$(PORT)/ttf.o
136+
OBJS += obj/port/$(PORT)/i18n.o
132137

133138
OBJS += obj/plugin_lib/perfmon.o
134139

@@ -207,12 +212,17 @@ endif
207212
# spu_pcsxrearmed END
208213
#******************************************
209214

210-
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
215+
CXXFLAGS := $(CFLAGS) -std=gnu++11 -fno-rtti -fno-exceptions
216+
217+
LOCALE_SRC := $(wildcard translations/*.po)
218+
LOCALES := $(patsubst translations/%.po, locale/%/LC_MESSAGES/pcsx4all.mo, $(LOCALE_SRC))
211219

212220
$(TARGET): $(OBJS)
213221
@echo Linking $(TARGET)...
214222
$(HIDECMD)$(LD) $(OBJS) $(LDFLAGS) -o $@
215223
@echo
224+
225+
hints: $(TARGET) $(LOCALES)
216226
ifeq ($(DEV),1)
217227
@echo "-> WARNING: This is a development build. "
218228
@echo " Mapping to virtual address zero is disabled. As a result, "
@@ -225,6 +235,7 @@ else
225235
@echo " If developing/debugging, you can pass DEV=1 on make command-line to "
226236
@echo " disable these behaviors. Be sure to do a clean rebuild. "
227237
endif
238+
@echo
228239

229240
obj/%.o: src/%.c
230241
@echo Compiling $<...
@@ -242,11 +253,16 @@ obj/%.o: src/%.S
242253
@echo Compiling $<...
243254
$(HIDECMD)$(CXX) $(CFLAGS) -c $< -o $@
244255

256+
locale/%/LC_MESSAGES/pcsx4all.mo: translations/%.po
257+
@echo Creating locale file $@...
258+
$(HIDECMD)$(MD) $(@D)
259+
$(HIDECMD)msgfmt --no-hash -c $< -o $@
260+
245261
$(sort $(OBJDIRS)):
246262
$(HIDECMD)$(MD) $@
247263

248264
maketree: $(sort $(OBJDIRS))
249265

250266
clean:
251-
$(RM) -r obj
267+
$(RM) -r obj locale
252268
$(RM) $(TARGET)

make_opk.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ EOF
2222
FLIST="pcsx4all"
2323
FLIST="${FLIST} default.gcw0.desktop"
2424
FLIST="${FLIST} src/port/sdl/pcsxr-icon-small.png"
25+
if [ -f translations/locales ]; then
26+
FLIST="${FLIST} translations/locales"
27+
if [ -d locale ]; then
28+
FLIST="${FLIST} locale"
29+
fi
30+
fi
2531

2632
rm -f ${OPK_NAME}
2733
mksquashfs ${FLIST} ${OPK_NAME} -all-root -no-xattrs -noappend -no-exports

src/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ set(SPU spu_pcsxrearmed)
77

88
find_package(SDL REQUIRED)
99
find_package(ZLIB REQUIRED)
10+
find_package(Freetype REQUIRED)
11+
find_package(Intl REQUIRED)
1012

1113
set(SRC_FILES
1214
r3000a.cpp misc.cpp plugins.cpp psxmem.cpp psxhw.cpp
@@ -22,6 +24,8 @@ set(SRC_FILES
2224
spu/${SPU}/spu.c
2325
port/${PORT}/port.cpp
2426
port/${PORT}/frontend.cpp
27+
port/${PORT}/ttf.cpp
28+
port/${PORT}/i18n.cpp
2529
)
2630

2731
if(USE_GPULIB)
@@ -91,6 +95,6 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE XA_HACK
9195
"INLINE=static __inline__" "asm=__asm__ __volatile__"
9296
${GPU_FLAGS} ${SPU_FLAGS} ${EXTRA_FLAGS})
9397
target_compile_options(${PROJECT_NAME} PRIVATE -Wno-format-truncation)
94-
target_include_directories(${PROJECT_NAME} PRIVATE ${SDL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS}
98+
target_include_directories(${PROJECT_NAME} PRIVATE ${SDL_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${Intl_INCLUDE_DIRS}
9599
. spu/${SPU} gpu/${GPU} port/${PORT} plugin_lib external_lib)
96-
target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL_LIBRARY} ${ZLIB_LIBRARIES})
100+
target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL_LIBRARY} ${FREETYPE_LIBRARIES} ${ZLIB_LIBRARIES} ${Intl_LIBRARIES})

0 commit comments

Comments
 (0)