rgb30 빌드 환경
rgb30 기기를 위한 이미지는 크게 jelos와 arkos가 존재합니다. 각각 다른 빌드 환경에서 에뮬레이터/프론트엔드/코어를 빌드 합니다.
한글 메뉴와 배튼 연사 기능을 구현해 봅니다.
폰트가 저장되어있는 usrintrf.c 파일의 uifontdata 파일을 분석해보면, 폰트는 아래와 같은 형태를 취합니다. ‘A’ 값
0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x00
01110000
10001000
10001000
11111000
10001000
10001000
10001000
00000000
변환 프로그램을 작성하여 bitmap 폰트 파일을 동일한 포맷으로 변환 합니다.
./png2c 유니코드.png
변환된 폰트를 사용하기 위해서는 폰트 정보를 작성해 주어야 합니다.
static const struct GfxLayout uikorfontlayout =
{
8,8,
0xd7a3-0xac00+1,
1,
{ 0 },
{ 0, 1, 2, 3, 4, 5, 6, 7 },
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
8*8
};
mame.c 에서 언어파일(hangul.lng) open 구문 추가 필요합니다. 기본적으로는 retroarch option과 연동시켜야 할것으로 보이지만 default 설정 구문은 확인되지 않음
static int init_machine(void)
{
// added by trngaje FILETYPE_LANGUAGE
options.language_file = mame_fopen(NULL, "hangul.lng", FILETYPE_LANGUAGE, 0);
/* load the localization file */
if (uistring_init(options.language_file) != 0)
외부 언어파일 (hangul.lng)로 영어 -> 한글 변환이 가능합니다만, .lng 에는 /n /r 입력이 되지 않기 때문에 이 값을 위한 별도 처리가 필요할 것으로 보입니다.
ui_text.c 에 정의되어 있는 영문 문구기준으로 번역 문구를 아래에 위치한다.
hangul.lng 파일 구조는 아래와 같습니다. Strings section 이후의 문구 중 ui_text.c 에 기입되어 있는 문구를 그 아래 문장으로 변환하여 표시합니다.
[LangInfo]
Version=1.0
Font=BinggraeMelona
Author=trngaje
[Strings]
Press Any Key
아무 키나 누르세요
작성된 hangul.lng 는 ~/.config/retroarch/system/mame2003-plus 경로에 복사하면 파일이 인식되어 한글로 문구가 표시됨을 확인 할 수 있습니다.
기본적으로 kaze 님 mame 2003 plus 소스를 참고 하여 적용했습니다. options.autofiredelay 값이 너무 작으면 mame2003 core 에서 인식 하지 않습니다. 그래서 default 10 값으로 설정되어 있습니다.
static int auto_pressed(InputSeq *seq, UINT32 type, int bit)
{
int pressed = seq_pressed(seq);
if (pressed)
{
if ((type & IPF_AUTOFIRE_ON) || ((type & IPF_AUTOFIRE_TOGGLE) && autofire_enable))
{
if (autopressed[bit] >= options.autofiredelay)
{
pressed = 0;
autopressed[bit] = 0;
}
else
autopressed[bit]++;
}
}
return pressed;
}
연사 on/off 및 연사 delay 설정을 하기 위해서 메뉴를 추가 합니다.
static int setautofiresettings(struct mame_bitmap *bitmap,int selected)
rgb30 기기를 위한 이미지는 크게 jelos와 arkos가 존재합니다. 각각 다른 빌드 환경에서 에뮬레이터/프론트엔드/코어를 빌드 합니다.
Press and hold for 5 sec. If LED blinks, the mode has changed. There are three modes that can be set, and they are as follows.
빌드를 하기 위해서는 docker 환경 내에서 작업 합니다.
ffmpeg, ffplay 를 구동하기 위한 빌드환경을 설명합니다.
rgnano 용 이미지는 2종 (anbernic 생산 버젼, funkey DrUm78 custom 버젼) 존재합니다. 빌드 환경이 서로 다르기 때문에 각각 빌드된 프로그램은 실행되지 않음
rgnano는 240x240 해상도를 갖고 있다. 하지만 simplemenu는 320x240, 640x480 테마만 가지고 있다. rgnano에서 simplemenu 프론트엔드를 적용하기 위해서 기존 테마를 가공한 필요가 있었다.
advmenu 추가 기능 관련 내용을 정리합니다. advmenu.rc 는 $HOME/.advance/advmenu.rc 경로에 위치합니다.
휴대용 기기를 위한 ip 주소 값과 배터리 상태 값을 표시한다. advmenu.rc 상에서 값 읽는 스크립트를 자유롭게 바꿀 수 있게 설계 한다. 메뉴 일부분을 한글로 구현 한다. core와 에뮬레이터를 advmenu 메뉴를 통해 변경할 수 있다.
mm+ 용 에뮬레이터를 빌드하기 위해서는 아래 toolchain을 사용해야 합니다. build 확인된 commit 시점으로 이동합니다.
docker 환경에서 빌드 합니다.
mm+ image
miyoo mini + generates keyboard value when press each button. button value is below.
linapple은 sdl1.2 기반으로 구현되어 있습니다. ogu에서 구동하기 위해서는 sdl2.0으로 변경 필요합니다.
machintosh emulator 인 basiliskii 를 ogu에 맞게 빌드 후 사용해 봅니다.
bt a2dp sink 출력을 하기 위해서는 pulseaudio를 설치해야 합니다만, bt 오디오 출력이 없어도 일정 수준으로 cpu를 사용하고 있기 때문에 다른 대안 중에 하나가 bluealsa 입니다.
text console 출력인 runcommand를 attractmode 다이얼로그로 표시해 봅니다.
BT gamepad에서 진동 기능을 사용하려면 xpadneo를 설치해야 합니다. 기기 내에 linuxheader 를 설치 하고
stand alone인 dosbox-x를 빌드해 보고, windows95/98을 설치해 봅니다.
GPIO 사용
ogu 에서 windows 95/98 용 프로그램을 실행하기 위해서는 dosbox pure를 사용하여 windows 95/98을 설치해야 합니다. 설치하기 위한 hdd.img 를 만들고, window 95/98 cd를 설치한 후, 원하는 게임롬과 함께 windows 95/98 os...
libretro core github에 있는 flycast 동작이 이상합니다. 개선을 위해 보다 최신 github 소스를 사용해 봅니다
diablo 이미지를 구동하기 위한 엔진입니다. 아래 방법으로 빌드 할 수 있습니다. docker 환경에서 빌드 가능합니다.
64bit / 32bit 모두 빌드 가능합니다.
pc linux 용 x86/x64 를 arm 기기에서 실행하기 위해서는 box86,box64 가 필요합니다.
v1.1 (2022/09/26) ubuntu 20.04 기본 이미지에서는 reboot 시 sdcard 인식되지 않는 문제를 해결하기 위해서는 uboot와 kernel을 수정해야 합니다.
mame는 빌드시 memory를 많이 필요로 하기 때문에 빌드 중간에 멈추는 현상을 방지하려면 사전에 swap 메모리 확보가 필요합니다.
evtest 를 실행해보면 joystick driver 명을 확인할 수 있습니다.
recovery mode 진입 : l2 + r2 + power 키로 전원을 키면 recovery mode로 진입한다.
불필요한 log 가 쌓이는 것을 막기 위해서는 사이즈 제한을 해야 합니다.
exfat 포맷
sudo apt install libvpx-dev libvorbisidec-dev git clone https://github.com/DCurrent/openbor
easyrpg standalone 사용방법
pc 환경에서 ogu 소스를 빌드하기 위해서는 toolchain을 설치해야 합니다. pc에서 빌드해야 하는 소스는 linux kernel과 uboot 이 있습니다.
retroarch core build 관련해서 정리해 봅니다.
ogu 장치에 맞게 attracmode 구동을 위한 sfml 라이브러리를 변경합니다.
libgo2 로 작성된 코드를 libgou로 대체하기. retrorun go2와 gou 코드를 비교하여 기존에 작성된 코드를 수정한다.
SDL2 build
sleep/wakeup 이 정상 동작하기 위해서는
기본 라이브러리인 libgou 와 retroarch core를 간단하게 구동할 수 있는 retrorun ogu 버젼을 소개합니다.
ubuntu 에서 부팅시 자동으로 emulationstation을 실행해 주고 있으나, killall 로 죽여도 살아나기 때문에 개발에는 적합하지 않아 수정해 줍니다.
odroid go ultra 환경 설정
advmame와 advmenu를 windows 환경에서 build 하기 위해서는 msys2 개발 환경을 설치 해야 합니다.
advmame 에 연사 기능 추가하기 위해 advmame 메뉴 구조를 파악해 봅니다.
Here, I will introduce how to create fonts for retroarch rgui. Most of them were made by analyzing the retroarch source. If there are resources that need to ...
한글 메뉴와 배튼 연사 기능을 구현해 봅니다.
폰 drastic 에뮬레이터 저장 값을 3ds 와 같은 실기에서 읽으려면 변환해야 한다.
개요
미리 빌드된 자료 이용하여 기기에 설치하는 방법
변경 방법 개요
미리 빌드된 자료 이용하여 기기에 설치하는 방법 아래 링크의 glutexto.zip 압축을 풀고
미리 빌드된 자료 이용하여 기기에 설치하는 방법 (miyoo mini 한정)
기술 관련 전문 (motor 테스트 앱에 포함되어 있는 pdf 에 적혀 있는 내용을 내마음 대로 번역해 보았습니다.)
미리 빌드된 자료 이용하여 기기에 설치하는 방법 아래 링크의 advmame.zip 압축을 풀고
아래 게임은 OGA/OGS/RK2020 기기에서 확인한 게임입니다.
소개
Welcome 포스팅이 되지 않아 하루전날 파일 생성해서 테스트 해봅니다.