EasyRPG / Player

RPG Maker 2000/2003 and EasyRPG games interpreter
https://easyrpg.org/player/
GNU General Public License v3.0
982 stars 186 forks source link

Build player_v0.7.0 for miyoo cfw (arm linux device) #2813

Closed MiyanoOsu closed 2 years ago

MiyanoOsu commented 2 years ago

Hi I make a build for my miyoo device it similar hardware and os to bitboy which Player_v0.6.0 support. Here is what i got:

20220621_223837.jpg 20220621_223844.jpg

The map is display not correctly (game YumeNikki), also this issue with other game. I using toolchain to build liblcf for miyoo cfw. Using liblcf_v0.7.0.

All text, sound and behave is work fine.

Any idea will help me so much. Thanks.

carstene1ns commented 2 years ago

Do you build latest master or 0.7? Also, are you using sdl2? Can you post build instructions?

MiyanoOsu commented 2 years ago

I use source code releases for 0.7, sdl1.2. Command build liblcf:

export PATH=/opt/miyoo/bin/:$PATH && export LD_LIBRARY_PATH="/opt/miyoo/lib"
/opt/miyoo/bin/autoreconf -i
./configure --host=arm-linux --prefix /opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/usr --bindir=/opt/miyoo/bin --includedir=/opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/include CC=arm-linux-gcc CXX=arm-linux-g++ PKG_CONFIG_PATH=/opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/lib/pkgconfig PKG_CONFIG_LIBDIR=/opt/miyoo/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/lib PKG_CONFIG=/opt/miyoo/bin/pkgconf
make
make install

Here my makefile to build player-0.7:

TARGET = EasyRPG
TOOLCHAINDIR = /opt/miyoo

SRCS = $(wildcard src/*.cpp)
OBJS = $(SRCS:.cpp=.o)

SYSROOT := $(TOOLCHAINDIR)/usr/arm-linux-uclibcgnueabi/sysroot
BINDIR := $(TOOLCHAINDIR)/usr/bin
CROSS_COMPILE := $(BINDIR)/arm-linux-
CC := $(CROSS_COMPILE)gcc
CXX := $(CROSS_COMPILE)g++
SDL_TARGET = 1

PKGCONF := $(BINDIR)/pkgconf
SDL_CONFIG := $(BINDIR)/sdl-config

PKGCONF_CFLAGS := $(shell $(PKGCONF) --static --cflags pixman-1) $(shell $(PKGCONF) --cflags freetype2) \
         $(shell $(PKGCONF) --cflags libmpg123) $(shell $(PKGCONF) --cflags sndfile)            \
         $(shell $(PKGCONF) --cflags samplerate) $(shell $(PKGCONF) --cflags samplerate)        \
         $(shell $(PKGCONF) --cflags liblcf) $(shell $(PKGCONF) --cflags speexdsp) 

PKGCONF_LIBS := $(shell $(PKGCONF) --libs libpng16) $(shell $(PKGCONF) --libs icu-uc icu-i18n)          \
            $(shell $(PKGCONF) --cflags icu-uc icu-i18n) $(shell $(PKGCONF) --static --libs libmpg123)  \
            $(shell $(PKGCONF) --libs sndfile) $(shell $(PKGCONF) --static --libs samplerate)       \
        $(shell $(PKGCONF) --static --libs speexdsp) $(shell $(PKGCONF) --libs liblcf)          \
        $(shell $(PKGCONF) --static --libs pixman-1) 

CXXFLAGS := -O2 -fno-math-errno -fomit-frame-pointer -fdata-sections -ffunction-sections -march=armv5te          \
    -mtune=arm926ej-s -std=gnu++14 -flto -DWANT_DRWAV=1 -DSUPPORT_AUDIO=1 -DHAVE_LIBMPG123=1  -DOPENDINGUX   \
    -Wall -DNDEBUG  -DUSE_SDL=$(SDL_TARGET) `$(SDL_CONFIG) --cflags` $(PKGCONF_CFLAGS) 

LDLIBS := -flto -Wl,--as-needed,--gc-sections -s -static-libgcc -lc -lgcc -lm -ldl -lstdc++ -lz -lfmt  \
     `$(SDL_CONFIG) --libs` $(PKGCONF_LIBS)

CFLAGS := $(CXXFLAGS) -fno-rtti -fno-exceptions -ftree-vectorize 

all : $(TARGET)

$(TARGET): $(OBJS)
    $(CXX) $^ $(CXXFLAGS) $(LDLIBS) -o $@

%.o : %.cpp
    $(CXX) -c $(CFLAGS) $< -o $@

clean:
    rm -f src/*.o $(TARGET) 
Ghabry commented 2 years ago

Please note that SDL1.2 is unmaintained and can break at any time. We highly recommend moving to SDL2.

This could be a pixel format mismatch. Look for NoAlpha in sdl_ui.cpp and replace it with Alpha.

MiyanoOsu commented 2 years ago

Change NoAlpha to Alpha make it error. When i use this makefile and change library, also change compiler to standard for ubuntu, it dont show any issue with graphic. Maybe my library i use for toolchain have problem. So i need time to check it.

carstene1ns commented 2 years ago

Closing, because of no further feedback and I am afraid we cannot help here much.