정식 ROM을 검증해 LÖVE2D로 Gen1을 재구현한 데스크톱 실행체이다. 플레이어가 제공한 US Poke
정식 US Poke Red/Blue ROM을 SHA-1으로 검증해 Lua로 재구현된 LÖVE2D 데스크톱 실행체로 캐시 기반으로 동작하는 재구성 엔진이다.
TL;DR
Gen1Recomp는 플레이어가 소유한 US Poke Red/Blue 1MiB ROM을 SHA-1으로 검증해 LÖVE2D에서 Lua로 재구현한 데스크톱 실행체이다. ROM에서 그래픽과 게임 데이터를 디코드해 private generated cache를 만들고 런타임은 이 캐시를 로드해 에뮬레이터 없이 게임을 구동하며 오디오 채널 프로그램을 합성해 소리를 생성한다. 네이티브 모드 플랫폼, Tiled 기반 맵 편집 파이프라인, 규칙 선택식 ruleset(gen1_faithful/modern_clean)과 포터블 모드가 제공되어 모드 제작과 재현 실험에 적합한 환경을 제공한다.
주요 기능
- 원본 ROM을 SHA-1으로 검증한 뒤 내부로부터 게임 데이터와 그래픽을 디코드해 private generated cache를 만든다. 이후 런치에서는 생성된 캐시만 로드하므로 원본 ROM을 계속 요구하지 않으며 ROM은 메모리에서 해제된다. 이 방식은 법적 민감성을 최소화하는 입력 처리 파이프라인을 제공한다.
- 게임 로직과 맵 동작은 순수 Lua로 손수 구현되어 LÖVE2D에서 실행된다. 오버월드, 배틀 규칙, 사운드 합성은 Lua 엔진이 ROM에서 추출한 소형 오디오 채널 프로그램을 런타임에 해석해 재생하도록 설계되어 있다. 이 접근법은 원본 동작 재현과 모드 확장을 동시에 만족시킨다.
- 모드 플랫폼은 content registries, events and hooks, per-mod saves and options, 그리고 인게임 매니저를 제공한다. 예제 모드와 위키 기반 튜토리얼이 제공되며 Tiled용 커스텀 익스포터를 통해 맵을 편집해 모드로 재배포할 수 있다. 모드는 런타임에 등록되어 규칙과 행동을 확장하거나 교체할 수 있다.
어떻게 동작하는가
사용자가 제공한 정식 US Poke Red/Blue ROM을 입력으로 받아 README에 명시된 SHA-1으로 무결성을 검증한다. 검증된 ROM에서 그래픽, 게임 데이터, 소형 오디오 채널 프로그램을 디코드하고 private generated cache와 assets/generated에 저장한 뒤 ROM을 메모리에서 해제한다. 런타임은 LÖVE2D에서 Lua로 구현된 엔진이 캐시를 로드해 오버월드와 배틀 로직을 구동하며 사운드는 디코드한 채널 프로그램을 합성해 출력하도록 동작한다.
해결 문제
원본 Game Boy ROM의 실행을 직접 포함하거나 에뮬레이션 없이 원본 게임 동작을 데스크톱 환경으로 재현하는 문제를 해결한다. 플레이어가 합법적으로 소유한 ROM을 단일 입력으로 받아 내부 데이터로 변환하고 이후에는 캐시만으로 재실행해 ROM 파일 유출 위험을 줄였다. 또한 Lua 기반 엔진과 네이티브 모드 플랫폼으로 모딩과 규칙 실험을 쉽게 만드는 실행 기반을 제공한다.
지금 주목받는 이유
프로젝트는 Polygon과 Kotaku에 노출되어 미디어 보도를 받았고 업데이트 영상이 유튜브로 공개되어 커뮤니티 관심을 끌었다. README에 링크된 'AS SEEN ON' 배지가 해당 매체 보도를 명시하며 업데이트 비디오가 개발 진척을 가시적으로 보여준다. 미디어 노출로 커스텀 그래픽·모드와 재구현의 기술적 접근이 널리 알려진 결과이다.
차별점
- 원본 ROM을 그대로 포함하지 않으며 SHA-1 검증을 통해 특정 US 1MiB Red/Blue 파일만을 허용하고, 디코드한 데이터를 private cache로 관리해 이후 재실행에서 ROM을 요구하지 않는다. 이 동작 흐름은 프로젝트가 법적·운영상 민감한 ROM 복제를 포함하지 않도록 설계된 점에서 차별화된다. 패키지에는 ROM이나 미리 추출된 게임 데이터가 포함되어 있지 않다.
- 게임 동작과 맵 로직을 순수 Lua로 수작업 구현했고 LÖVE2D에서 실행되므로 기존 에뮬레이터 기반 포팅과 달리 엔진 레벨에서 동작을 재현하고 모드 훅을 직접 제공한다. 맵 편집 워크플로는 tiled_gen1recomp와 커스텀 Tiled 빌드를 통해 에디터→모드로 이어지는 파이프라인을 제공한다. 이 구조는 모드 제작자에게 친화적인 편집과 배포 경로를 보장한다.
- 전투 규칙을 선택 가능한 ruleset으로 분리해 gen1_faithful와 modern_clean으로 원본의 버그를 보존할지 여부를 나눠 제공한다. 두 규칙집합은 동일 데미지 공식을 공유하되 버그 보존 여부에 따라 행동을 달리해 재현성 높은 연구·테스트가 가능하다. 모드는 자체 규칙을 등록해 이 시스템을 확장할 수 있다.
사용 사례
- 원본 Gen 1 동작을 보존하거나 버그를 제거한 동작을 비교·검증하려는 연구자 및 커뮤니티 개발자에게 적합하다. ROM을 검증해 동일 입력에서 데이터 생성→캐시 로드로 테스트를 재현할 수 있으므로 행동 재현성과 규칙 비교 실험이 용이하다. 모드 시스템을 통해 실험적 규칙이나 시각적 리믹스를 배포·검증할 수 있다.
- 모드 제작자와 맵 디자이너가 Tiled 기반 툴체인을 사용해 레벨을 편집하고 LÖVE2D 기반 런타임에서 즉시 테스트하려는 워크플로에 적합하다. 프로젝트가 제공하는 예제 모드와 튜토리얼로 학습 곡선이 낮아 초보 모더도 시작하기 쉽다. 퍼블리시 가능한 모드는 인게임 매니저로 관리되고 per-mod save를 유지하도록 설계되어 있다.
- 휴대용 기기(Anbernic RG34XXSP)용 빌드가 릴리스에 포함되어 있어 레트로 핸드헬드에서 작업을 실행하려는 사용자에게도 실용적이다. 배포판은 해당 기기를 위한 포트마스터 스타일 패키지를 포함해 설치와 컨트롤 설정, 트러블슈팅 문서를 제공한다. 이는 데스크톱뿐 아니라 휴대용 하드웨어에서의 사용성을 확보한 사례이다.
시작하기
데스크톱에서 첫 실행 시 합법적으로 소유한 .gb 파일을 선택하거나 드래그 앤 드롭하면 importer가 몇 초 내에 SHA-1을 확인하고 데이터 생성을 수행해 게임을 자동 시작한다. 소스에서 실행하려면 LÖVE 11.x가 필요하며 scripts/setup.sh --rom "/path/to/Poke Red.gb" 이후 scripts/run.sh를 사용하고 이후 love .로 런타임을 시작하면 된다. 옵션 메뉴에서 키 바인딩과 RULESET, COLORS, TILT, ZOOM, GBC FX 같은 설정을 조정할 수 있고 portable.txt 파일로 포터블 모드를 활성화할 수 있다.
요구사항
- LÖVE 11.x 런타임이 필요하며 프로젝트는 이 런타임에서 Lua로 구현된 엔진을 구동하도록 설계되어 있다. 소스 실행과 개발용 테스트는 LÖVE 환경에서 이루어져야 하므로 운영체제에 맞는 LÖVE 설치가 전제 조건이다. README와 Developer Setup 링크에 개발자 전용 스크립트와 PowerShell 대상 설명이 포함되어 있다.
- 정식 US Poke Red 또는 Blue 1 MiB ROM 파일이 필요하며 README에 명시된 SHA-1 해시와 정확히 일치해야 수입이 허용된다. 허용되는 해시는 Red: ea9bcae617fdf159b045185467ae58b2e4a48b9a, Blue: d7037c83e1ae5b39bde3c30787637ba1d4c48ce이다. 프로젝트는 ROM을 패키지에 포함하지 않으므로 사용자가 법적으로 소유한 원본 파일을 직접 제공해야 한다.
- 데스크톱(Windows, Linux, macOS) 환경에서 포터블 모드를 쓰려면 파일 시스템 쓰기 권한이 있는 폴더와 portable.txt 파일 조작이 필요하다. Android/iOS에서는 패키지 특성상 포터블 모드가 적용되지 않으며 해당 플랫폼은 읽기 전용 패키지에서 동작한다. 핸드헬드 포트는 별도 릴리스(gen1recomp-*-rg34xxsp-stockos64-mod.zip)로 제공되며 설치 절차는 docs에 정리되어 있다.
이미지 분석

977
Stars
51
Forks
+210
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.