1. 개발 배경 및 목적
일전에 고전게임기를 만들거나 개조하여 소개한 적이 있습니다.
Odroid N2+ 로 다용도 기기 제작(태블릿,게임기,컴퓨터)
Odroid N2+ 로 다용도 기기 제작(태블릿,게임기,컴퓨터)
먼저 동영상부터 올립니다. https://youtu.be/N1YYtoZegqo 여기부터는 사진...그리고 주절주절....설명들어갑니다. 제작 컨셉은 그냥 집에 있던 이름모를 계측기 보관함을 적당히 가공해서 화면하고
www.choogo.net
이그렛 2 미니 개조(Taito Egret 2 mini Mod) - Odroid N2L+Rasberry PI Pico with GP2040
이그렛 2 미니 개조(Taito Egret 2 mini Mod) - Odroid N2L+Rasberry PI Pico with GP2040
먼저 동영상부터 봐주세요. https://youtu.be/KaD2obkgzfE?si=8hqQsQ4iw8RO6gwq 이그렛2미니를 작년에 구매했습니다.이걸 가지고 놀면서 저는 굉장히 많이 감탄을 했는데요.소형 마이크로 스위치를 사용해서
www.choogo.net
게임기는 한번 만들고나면 즐길일만 남았을것 같지만 실은 그렇지 않습니다.
게임기는 만드는 과정보다도 어쩌면 더 시간이 많이 소요되는 지옥의 게임 세팅과정이 본격적으로 시작되거든요.
게임파일 수집을 완료했다고 하더라도 이를 OS에서 목록으로 표시하기 위해서는, 수집한 게임파일의 경로를 지정하고, 이 게임에 관한 기본적인 정보(게임이름, 개발사, 발매일 등)도 입력해 주어야 하며, 게임스크린샷, 마퀴, 박스아트, 게임플레이영상 등을 확보해서 이 경로도 지정해주는것도 필요합니다. 경우에 따라서는 리스트 정리를 위해 즐겨찾기나 숨김처리 등 추가 정보를 넣어주어야 할 때도 있습니다.
제가 사용하는 Emuelec을 포함하여 retroarena, retroPie, batocera 등은 모두 리눅스 기반의 프론트엔드 에뮬스테이션(EmulationStation)을 기반으로 하고 있습니다.
에뮬스테이션 기반의 OS에선 기종별로 게임 목록을 관리하는 방식으로 xml 이라는 문서포맷을 사용하고 있으며, 여러 메타데이터를 정해진 코드형식에 맞춰 정리하여야 게임목록의 표현이 가능합니다.
2. 기존의 문제점들
즉 게임을 추가하거나 편집하기 위해선 xml파일의 편집이 필수적인데, 이 xml파일을 직접 수정하는것이 생각보다 까다롭다는게 큰 문제입니다.
코드의 구조가 복잡하지는 않기 때문에 게임을 한두개 수정하는건 문제가 없겠지만, 자료가 몇백개~몇천개 모아져 있는 경우 얘기가 달라집니다.
특히 제가 생각한 주요 문제점은 아래와 같습니다.
1) 정보 관리의 어려움
아무래도 코드를 통해 데이터를 파악하다보면 데이터의 이해 및 파악이 용이하지 않습니다.
또한, 다양한 출처에서 수집된 게임 정보가 일관된 형식 없이 혼재되어 있기도 한데 이런게 한눈에 잘 안들어옵니다.
2) 자료의 유효성 검증이 어렵다
XML에 저장된 정보가 겉보기에는 정상적으로 입력된 것처럼 보이더라도, 실제로는 존재하지 않는 파일을 참조하고 있는 경우가 아주아주 많습니다.
사진이나 이미지 자료가 없는 경우는 그나마 게임을 할 수 있겠지만 게임파일이 없는 자료도 있어 이러한 데이터는 리스트 로딩 시간만 잡아먹을 뿐인 불필요한 자료입니다.
다 찾아내서 지워주고 싶지만, 문제가 있는 자료를 알아내기가 어렵습니다.
또한 동일한 게임이 중복으로 여기저기 정의된 사례도 상당수 발견되었으나, 100% 눈썰미로만 찾아내야 하는 현실입니다.
3) 미사용 자료 확인의 어려움
게임 파일, 이미지, 동영상 등의 리소스가 폴더 내에 존재하지만 XML에서 참조되지 않아 불필요하게 저장 공간을 차지하는 사례가 다수 확인되었습니다.
그러나 코드상에서는 이러한 불필요한 파일을 식별하는 방법이 없습니다.
3. 개발 목표
그래서 이 프로그램을 만들었습니다.
제가 특히 목표로 한 부분은 다음과 같습니다.
- 테이블 형태로 만들어진 사용자 친화적인 GUI
- 이미지 및 동영상 썸네일을 제공하여 갖고있는 자료의 품질이나 내용을 쉽게 확인할 수 있어야 한다.
- 실제 존재하지 않는 게임파일, 이미지, 동영상 파일을 참조하면 데이터가 빨간색으로 표시되어야 하며, 수정사항에 대해서도 실시간으로 적용되어야 한다.
- 게임파일, 이미지, 동영상 등의 리소스가 gamelist.xml에서 참조되지 않은채 용량만 차지하는 자료를 찾아주고 삭제하거나 백업할 수 있는 기능을 제공하여야 한다.
- 프로그램 상에서 참조하는 자료가 외부에서 삭제 혹은 이름변경 등 일방적으로 변경 되는 경우가 있으므로 파일 현황을 업데이트하는 기능을 제공해야 한다.
4. 완성된 프록그램 주요 기능
위의 개발목표를 충족하는 프로그램을 만들기 위해 몇달간 고군분투한 끝에 어찌어찌 모양을 갖추고 기능을 구현한것 같아 이쯤에서 마무리하여 공개합니다.
게임기를 자작하시는 분들이나 Emulstation을 기반으로 하는 기기를 구입하신 분들이 많이 사용하시고 많은 피드백을 주셨으면 좋겠습니다.
[① 게임목록 관리 기능 ]
- 테이블 형태로 모든 게임 정보를 표시하여 직관적인 데이터 편집이 가능함.
- 실시간으로 데이터 유효성 여부(파일 존재 여부)를 색상으로 표시 (정상: 검정, 누락: 빨강)
- 파일 경로를 기준으로 중복 정리된 자료 표기기능 제공
- 스냅샷/마키/비디오 미리보기 제공
- ▲▼ 버튼으로 목록 순서 조정 및 + 버튼으로 빈 줄 삽입하여 게임 추가 가능
- 자료 삭제 모드를 통해 불필요한 데이터에 대해 일괄적인 삭제기능 제공
- 현황 새로고침을 통해 외부에서 파일이름이 변경되거나 추가된 파일, 삭제된 파일이 있는 경우 현황 업데이트로 즉시 자료갱신이 가능.
- 파일경로 및 게임이름 등 검색 조건에 따른 검색기능을 제공

- 게임파일, 이미지, 동영상 등의 리소스가 gamelist.xml에서 참조되지 않은채 용량만 차지하는 자료를 찾아주고 삭제하거나 백업할 수 있는 기능 제공
- 기종마다 사용되는 게임 파일의 확장자가 다른데, 불러온 gamelist.xml 파일을 분석하여 게임파일 확장자로 사용된 확장자들을 파악한 뒤 게임파일 확장자 입력칸에 자동 입력되는 기능 제공.
- 자동 정리된 확장자 이외에 사용자가 직접 확장자를 삭제 및 추가 입력하는 것이 가능.
- 현황 새로고침을 통해 외부에서 파일이름이 변경되거나 추가된 파일, 삭제된 파일이 있는 경우 현황 업데이트로 즉시 자료갱신이 가능.
- 파일 정리 모드를 통해 불필요한 파일들을 선택해서 한 번에 삭제하거나 백업할 수 있음.
- 검색 기능 제공(검색조건은 파일명 및 경로)
※ 사용자 세팅기능
- 동봉되어 있는 settiing.ini를 메모장으로 수정하면 사용자가 직접 본인의 입맛에 맞게 직접 항목을 변경할 수 있습니다.
- 잘 안쓰는 태그는 미표시 하거나, 자주 쓰는 태그를 앞에 배치하거나 열너비를 변경하는 등 약간의 커스텀이 가능합니다.
- 미사용 파일 검색 대상폴더를 직접 지정할 수 있습니다.
5. 다운로드
※ 윈도우 환경에서 사용가능한 포터블 프로그램입니다. 개인이 만든거라 바이러스로 인식될 가능성이 있습니다. 바이러스의 'ㅂ' 도 안들어갔습니다.
※ 우려되는 오류중 하나로 코덱문제로 동영상 재생시 정상적으로 소리가 나지 않을수 있습니다. 용량이 커지는것을 감수하더라도 재생프로그램 및 코덱을 내장시키는 방향으로 설계하였습니다. 그리하여 별도의 코덱과 동영상재생프로그램을 설치하지 않고도 동영상이 정상적으로 재생되도록 의도하였습니다만, 프로그램과 코덱을 내장시키는 방식이 생각보다 어렵더라고요. 어찌어찌 간신히 된거 같긴한데 저희집에서만 잘 되는것일 수 가 있습니다. 이런 경우 vlc 미디어플레이어를 설치와 K-Lite 코덱 팩을 설치하면 사운드가 잘 나올것 같습니다.
→ (v1.0.1 업데이트에서 삭제된 내용.)
※ 그 외 여러 사항에 대해 메인컴에서 확인하고, 서브컴에서도 확인한뒤 정상작동하는것을 확인하고 올리는것입니다만 미처 확인 못한 여러 문제점이 있을 수 있습니다.
※ 반드시 기존 gamelist.xml이나 관련 자료들을 백업후 사용하시기 바랍니다. 프로그램 사용으로 인한 문제가 생길경우 책임지지 않습니다.
※ 사용상 오류를 발견하시거나 건의사항이 있는 경우 댓글 부탁드립니다.
※ v.1.0.3 변경사항 : 미사용 파일 검색 대상폴더 지정시 './폴더/하위폴더' 와 같이 하위경로를 포함하여 세팅이 가능해졌습니다.
※ v.1.0.2 변경사항 : setting.ini 파일 기능을 넣었습니다. 이를 통해 테이블 커스텀이 어느정도 가능해졌으며, 미사용파일 검출 폴더도 수정가능해졌습니다.
※ v.1.0.1 변경사항 : 단일파일로 vlc-portable을 내장시키는데에 여러 한계에 부딪혀서, 폴더를 분리하여 실행파일과 함께 배포합니다.
'직접 만든 소프트웨어' 카테고리의 다른 글
PDF 합치기 프로그램 (PDF 병합, PDF Merger) - 헌짱 문서 편철이 (0) | 2025.02.16 |
---|---|
(인공지능 버전)화면 글자를 인식하여 추출하는 프로그램 (0) | 2024.05.22 |
(OCR 버전)화면 글자를 인식하여 추출하는 프로그램 (0) | 2024.05.18 |
컴퓨터 꺼짐 방지 및 자동절전/종료 제어 프로그램 (0) | 2024.05.11 |
인공지능을 활용한 안드로이드 앱 개발 (with ChatGPT) (0) | 2023.08.13 |