Ghidra(기드라 : 역어셈블리 툴) 를 Duckstation (플레이스테이션1 에뮬) 에 연결하여 PS1 코드 분석 시작 방법 기록


 시간이 소모되어 기록.


 Ghidra 는 미국 국가 안보국(NSA)에서 만들어 오픈 소스로 공개한 역어셈블리어 프레임워크 라고 한다.

 (출처: https://ndb796.tistory.com/323 [안경잡이개발자:티스토리])


 아래 항목중 막히는 부분이 있다면 챗GPT(본인은 유료 사용)에게 물어보면 알려줄 것이다. 

 무료로 쓸 경우 구글 제미나이는 코드분석에는 괜찮으나, 이런 안내에는 꽝이다.


 필요한 툴들 및 준비 (좀 많음)

 쓰려면 JDK(자바 개발킷) 가 설치되어 있어야 한다. 옛날엔 JRE 라는, 개발없이 쓰기만 하는 사람용 파일이 있었으나 JDK로 통합되어서 어쩔수 없이 JDK를 설치해야 한다.


 * 주의사항 : Ghidra와 GDB 압축푸는 폴더는 루트폴더면 안된다. 하위폴더 하나 만들어 거기에 압축을 푼다.


* Ghidra 다운로드 깃허브 : https://github.com/nationalsecurityagency/ghidra

 (압축만 풀면 되는 편한 방식임)

* 오라클 JDK 다운로드 페이지 https://www.oracle.com/java/technologies/downloads/#java11-windows


 아래 과정은 전부 Ghidra 와 Duckstation 을 연결할때 오류를 수정하기 위해 하는 것이다.

 안한다면 항목마다 오류를 보게 될것이다.


■ Noward GDB 압축 풀기 + 파이썬 및 pip 설치

 Ghidra와 Duckstation(덕스테이션) 과의 연결을 하기 위해서는 GDB 라는 게 필요한데, 그냥 GDB는 안되고, 다음 조건을 만족해야 한다.

- PS1의 MIPS 3000 어셈블리 해석이 될 것 + 파이썬 지원 + xml 지원

 => noword GDB 라는게 있었다


* noward GDB 깃허브 : https://github.com/noword/GDB-Windows-Binaries 의 Code 버튼 -> Download ZIP 을 눌러 다운받고 압축해제.

 실행파일을 보면 파이썬3.10 까지만 지원되는걸 알 수 있다.

 정확히 파이썬 3.10 을 설치해야 한다. (높은 버전도 될것 같긴 한데 안해봄. 해보면 수정)


* 파이썬 3.10 다운로드 : https://www.python.org/downloads/release/python-3100/ 

 (시간지나면 정책에 의해 링크 잘릴수도 있음. 그러면 어쩔수없이 나중버전 설치해야 할듯)


=> 파이썬 설치시 폴더는 본인이 custom으로 지정 추천, 설치폴더의 python310.lib 을 noward GDB 압축푼 폴더(실행파일이 있는 폴더) 에 넣는다.

 인스톨러 첫 화면에서 '자동으로 PATH 등록' 비슷한 옵션에 체크한다. 만일 빼먹었다면, 고급시스템설정 환경변수 -> 사용자변수 PATH 에 파이썬이 설치된 폴더와 하위폴더인 \Scripts\ 를 추가해야 한다.


* pip (패키지 인스톨러) 설치 

 파이썬 설치시 \scripts\ 폴더에 pip 이 없으면 설치해야 하는데, cmd 에서 다음을 입력

python.exe -m ensurepip --upgrade

 그럼 pip 파일이 생길 것이다.


■ CMD에서 'Powershell' 실행하여 권한변경

 Powershell 에서 다음을 실행하여 Y를 누른다.

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

Powershell Setting


■ Ghidra 에 포함된, 필요한 파이썬 패키지 설치

* cmd에서 다음 두개를 입력해 설치 (경로에서 <기드라 압축푼경로>는 직접 수정)

▶ 1.

py -3.10 -m pip install --no-index ^

  --find-links "<기드라 압축푼경로>\Ghidra\Debug\Debugger-rmi-trace\pypkg\dist" ^

  "<기드라 압축푼경로>\Ghidra\Debug\Debugger-rmi-trace\pypkg\dist\ghidratrace-12.1-py3-none-any.whl"


▶ 2.

py -3.10 -m pip install --no-index ^

  --find-links "<기드라 압축푼경로>\Ghidra\Debug\Debugger-rmi-trace\pypkg\dist" ^

  --find-links "<기드라 압축푼경로>\Ghidra\Debug\Debugger-agent-gdb\pypkg\dist" ^

  "<기드라 압축푼경로>\Ghidra\Debug\Debugger-agent-gdb\pypkg\dist\ghidragdb-12.1-py3-none-any.whl"


■ Ghidra 내부 코드수정 (알려지지 않은 레지스터이름을 받았을때 pass 처리)

 (챗GPT의 안내로 수정된 파일임)

▶ <기드라 압축푼경로>\Ghidra\Debug\Debugger-agent-gdb\pypkg\src\ghidragdb\commands.py

  파일을 열어서 615줄 쯤에 있는 putreg 함수를 수정해야 하는데, 복붙하자면 길어지니 수정된 commands.py 파일 링크

: https://drive.google.com/file/d/1VzomzBB5PORi75ZQCX7-PGllkg_ItfY3/view?usp=drive_link

 (원본 파일을 백업해 두고 싶으면 마음대로)

마메 디버깅 기록 _ CPS2 던전앤드래곤2 (D&D SOM) - 치트,패치,롬 제작 / 디버거 / Mame Debugger


GB(게임보이) 디버깅 해보니 이것도 가능하게 되었음.

 근데 마메 디버거는 BGB(에뮬레이터 이름) 디버거 대비 상당히 불편. 만약 본인이 마메 개발자라면 디버거부터 업데이트 할것이다.


* 게임 및 프로그램을 고치는게 가능한 이유 : 디버거에서 HEX 코드를 어셈블리어로 바꿔서 보여주는데, HEX코드가 어셈블리어와 1:1 대응되므로 가능하다.

 어셈블리어를 추적해가며 어떻게 프로그래밍 되어있는지 구조 분석 작업이 필요하다.


 이제 본인이 일일히 다 해석 안해도 된다. AI한테 던져주면 대충 뭐하는 루틴인지 해석해 준다.

 그래도 주요 레지스터들은 본인이 기록하고 익숙해져야 하는건 어쩔 수 없고 핵심 부분도 직접 파악해야 한다.


* 안 점 

- 무료버전은 구글 제미나이보다 챗GPT가 더 영리하다. 정책상 챗GPT는 유료수준 기능을 어느정도 제공한다고. 대신 제한에 빨리 도달함.

 제미나이는 코드분석에는 괜찮음.

 유료로 사용해보니 1년전쯤과는 달리 생산성 엄청 향상됨.

- 마메 디버거는 생각보다 좋지 않음. 그래서 녹화하면서 하면 좋음.


- 해독이 된 롬(피닉스에디션:자살배터리 제거+암호화 삭제)만 디버거의 cpu영역 코드를 실시간 수정할 수 있다.

 디버거 메모리뷰 에서 Region: maincpu 를 선택하면 된다.

 해독이 안된 롬은 Region: maincpu 를 선택했을때 암호화 코드만 보임.

 ㄴ그래도 암호화 풀린 코드를 볼 수는 있는데, opcode 영역을 선택하면 됨.

옛날 마메에선 해독이 안된 롬의 경우, 이 영역은 수정도 안되는데, 최신버전 MameUI에서는 수정이 가능한 것처럼 되어있지만 소용없음.


[D&D SOM 자료] 던전앤드래곤2 _ (Gotvg용) 아래 패치내용 적용된, 멀티플레이 가능 bin


 Gotvg 용, 패치적용된 아시아+핵버전 용 바이너리(bin)를 만들었습니다.

 서로 이 파일을 맞춤으로써 멀티플레이 가능한 것으로 보입니다.


* 관련링크

- Mame32more 용, 핵버전용 치트 4.6 (빠른인벤, 빠른마법,미사용 음성 삽입) 업데이트 글 : https://soulslip29.blogspot.com/2026/08/c-40-www.html

- 위 내용을 적용한, 아시아+핵버전용 실시간IPS 패치 글 : https://soulslip29.blogspot.com/2026/08/d-som-2-ips-1vs4.html

- Gotvg 사용법 (중국 사이트라 믿지 못한다면 아이디 구매를 권하지 않습니다) : https://soulslip29.blogspot.com/2025/06/gotvg-youju-gotvg-2025-06-27.html


* 고팁 버전설명 

[D&D SOM 자료] 던전앤드래곤2 _ 아시아 및 핵롬용 IPS 패치 : 1vs4, 빠른인벤, 빠른마법, 미사용음성 삽입

 아래 올렸던 핵버전용 치트 내용을 아시아판에도 적용되게 함 + 아시아,핵버전 모두 1vs4 모드 추가했습니다.


 아시아판 및 핵버전용 IPS 실시간패치 이며 사용법은, www.dnd2.net 의 기존 1vs4 패치와 똑같습니다. (\IPS 폴더에 두면 실시간으로 패치 선택해서 실행가능한 방식)


* 포함된 항목

- 핵버전 : 1vs4 / 빠른 인벤토리 / 빠른 마법모션 / 미사용 음성 사용 / 보스전 ww~ 글자안뜨게

- 아시아버전 : 1vs4 / 빠른 인벤토리 / 빠른 마법모션 /미사용 음성 삽입

  ( 1vs4 : 혼자이건 다인이건 4인으로 간주되는 모드)


 Mame32m 용으로 제작했지만, 후바 등에서도 되는것 같습니다.


* 관련링크

- 아래 치트 항목 설명글+영상 : https://soulslip29.blogspot.com/2026/08/c-40-www.html

- (Gotvg용) 아래 패치내용 적용된, 멀티플레이 가능 bin : https://soulslip29.blogspot.com/2026/08/d-som-2-gotvg.html

- (제작 관련글) 마메 디버깅 기록 _ CPS2 던전앤드래곤2 (D&D SOM) - 치트,패치,bin 제작 :  https://soulslip29.blogspot.com/2026/08/cps2-2-d-som-mame-debugger.html


■ 자료다운

* IPS 패치파일만

* 파일명 : [패치IPS]던드 아시아+핵롬용(1vs4,빠른인벤,빠른마법,미음성삽입).7z

https://drive.google.com/file/d/1_ThyWaphMy4hzNmqupe8r4iVLoI_1bh3/view?usp=drive_link

[D&D SOM 자료] 던전앤드래곤2 핵버전(레드 c모드 등) 치트 업데이트 4.6 (한글) - 다워 정지버그 완벽수정 자동적용 + 기능추가 : 빠른마법, 빠른인벤,미사용음성 삽입,www글자삭제

Mame32more용 치트가 4.0 으로 업데이트 되면서 다음 기능이 추가됐습니다.


* 4.1 업뎃 (2026-08-17) : 엘프CE 음성랜덤 빠져서 추가함

* 4.2 업뎃 (2026-08-18) : 이프리트 불 이펙트가 불항아리 사용에도 반영되어, 불항아리 사용시간도 축소

* 4.3~4.5 업뎃 : 치트 끄는부분 오타수정 + 엘프 불항아리 사용시간을 다른캐릭과 같게 (신에서 쓸때 용)

* 4.6 업뎃 : 직자 A+B때도 미사용 음성 나던거 되돌림. 동료 스트때만 나게



* 향상된 사항

- 다인모드 다크워리어 정지버그 완벽수정(ROM 실시간 수정 방식) + 자동적용

 이제 다워가 1분이 지나도 와리가리를 하지 않고 몹들도 온전히 플레이어를 공격합니다.

 (기존 슬롯 열고닫기 등 안해도 되어 삭제함)


* 추가된 기능

- 아이템창 속도 빠르게

- 마법사용 속도 빠르게 (치트파일을 직접 수정해보실 수도 있습니다)

 원작 특성을 해치지 않는 선에서 줄이려 노력. 직접 수정으로 더 줄이기도 가능합니다.

- 미사용 음성 삽입

- 보스전에서 방해되는 www ~ 글자 안뜨게


* 관련링크

- 아시아버전(+핵버전)용 IPS실시간패치도 제작함 : https://soulslip29.blogspot.com/2026/08/d-som-2-ips-1vs4.html

 (아시아버전은 해독된 롬이 아니라서, Mame32more에서는 치트방식 ROM 패치가 안되고 IPS 방식은 가능)

- (Gotvg용) 아래 패치내용 적용된, 멀티플레이 가능 bin : https://soulslip29.blogspot.com/2026/08/d-som-2-gotvg.html

- (제작 관련글) 마메 디버깅 기록 _ CPS2 던전앤드래곤2 (D&D SOM) - 치트,패치,bin 제작 :  https://soulslip29.blogspot.com/2026/08/cps2-2-d-som-mame-debugger.html


■■ Mame32more 및 치트 자료

C모드 등 가능한 핵버전(피닉스에디션: 해독된 롬) 용 치트 입니다.
(치트파일 수정하면 위에 그냥 Pheonix Edition 에도 적용가능할거라 생각됩니다)

* 치트파일(4.6)만 (던전드래곤 치트들만 들어있음)

 : https://drive.google.com/file/d/1IKvHPtBaMBNuG4wPAfDywQKGy6lqCkcb/view?usp=drive_link

 (편집시 주의 : 인코딩 ANSI 그대로 둬야 에뮬에서 한글출력 가능합니다)

=> Mame32more 실행파일이 있는곳에 압축을 풉니다

[GB, SFC, GG, SS] 마법기사 레이어스 게임들 6종 [간략리뷰, 정보] - GB판이 가장 나은듯 (수정1)

* 수정1(2026-08-03) : SSF 장점 추가

 

 고전애니 마법기사레이어스 가 리메이크 된다고 하여 관련게임들 정보 남겨봅니다.


 개인적으로 왜 리메이크 되는지는 모르겠습니다. 요즘 먹힐 스토리는 아닌거 같은데 스토리를 바꿔서 나온다면 뭔가 의미가 있지 않을까 생각됩니다.

 

- 공통 타이틀명 : Mahou Kishi Rayearth / 魔法騎士レイアース / Magic Knight Rayearth


* 다음 게임들의 정보 기록 (발매년도는 모두 1995)

- GB(게임보이, 슈퍼게임보이)판 '마법기사 레이어스'(RPG)

- GB판 '마법기사 레이어스 2nd - The Missing Colors'(RPG)

- SFC(슈퍼패미콤)판 '마법기사 레이어스'(RPG)

- SS판 '마법기사 레이어스'(ARPG)

- GG(게임기어)판 '마법기사 레이어스'(RPG?)

- GG판 '마법기사 레이어스2 - Making of Magic Knight'(육성시뮬)


■ 본문 관련링크

* [GB, SFC, GG, SS] 마법기사 레이어스 게임들 6종 _ 공략정보, 내용(스토리) 모음 글 : https://soulslip29.blogspot.com/2026/08/gb-sfc-gg-ss-6.html

* GB판 2탄 디버그 과정 기록 및 개조롬 (2,3번째 보스 난이도만 조금 상승) : https://soulslip29.blogspot.com/2026/07/gb-2-gameboy-magic-knight-rayearth-2nd.html


* 통합에뮬 레트로아크(RetroArch) 셋팅글  : https://soulslip29.blogspot.com/2024/07/retroarch-fcsfcmsggmdmega.html


■■ GB 판 '마법기사 레이어스' (간단 RPG)

- TOMY / 1995

* 플레이시간 : (에뮬 터보기능 사용시) 몇시간 정도.

[GB, SFC, GG, SS] 마법기사 레이어스 게임들 6종 _ 공략정보, 내용(스토리) 모음


 레이어스 관련 게임들의 공략정보, 내용(스토리) 모음.


- GB(게임보이, 슈퍼게임보이)판 '마법기사 레이어스'(RPG)

- GB판 '마법기사 레이어스 2nd - The Missing Colors'(RPG)

- SFC(슈퍼패미콤)판 '마법기사 레이어스'(RPG)

- SS판 '마법기사 레이어스'(ARPG)

- GG(게임기어)판 '마법기사 레이어스'(RPG?)

- GG판 '마법기사 레이어스2 - Making of Magic Knight'(육성시뮬)


* 관련링크

- [GB, SFC, GG, SS] 마법기사 레이어스 게임들 6종 [간략리뷰, 정보] 글 : https://soulslip29.blogspot.com/2026/08/gb-sfc-gg-ss-6-gb.html

[D&D SOM] 던전앤드래곤2 콤보 - Gon님의 드워프vs하피 한방콤보 _ 입력법 해석, 메모


● 관련링크 (글 시리즈)

- 첫 글 및 시리즈 글 링크 : https://soulslip29.blogspot.com/2025/07/d-som-2_12.html



 Gon님의 드워프vs하피 한방콤보(아래 영상)를 보고, 입력법 해석이 되어 따라해 봤습니다. 실패사례 포함.

* (원본) Gon님의 드워프vs하피 한방콤보 영상

[GB] 마법기사 레이어스 2 _ 개조롬, 디버그 과정 - 적 추가 기록 / 게임보이 롬 개조 _ BGB Debugger / [Gameboy] Magic Knight Rayearth 2nd _ edit / Rom hacking

 

 게임보이 용 「마법기사 레이어스 2nd - 더 미싱 컬러」 의 개조, 디버깅 기록.

 (하단에 조금 개조된 롬파일 올려놓음 / Hack Rom Download below)


- 타이틀 명 : Mahou Kishi Rayearth 2nd - The Missing Colors / 魔法騎士レイアース 2nd

- English Title : Magic Knight Rayearth 2nd - The Missing Colors


 난이도가 너무 쉬워서. 개조 시도하게 됨.


* 디버거 사용 에뮬레이터 - BGB

 - 홈페이지 : https://bgb.bircd.org

 - 장점 : 디버거가 에뮬레이터계에서 최고 수준

 - 단점 : 메모리상에서 'Search' 불가능 / (사소함) 코드 복사시, 영역 지정 대신 직접 복사할 길이를 써야 함.

 - 메모 : Option 에서 키설정할때 밑에 'Configure Extra Buttions'에 체크하고 설정하면 터보키, 강제세이브or로드 등 키 설정 가능.


 (에뮬 Sameboy 도 괜찮다는 평가가 있지만, 텍스트 형식 디버거라 불편함)


* 용어

- 「0x」 : 16진수를 표현하기 위해 수 앞에 붙이는 건데 거의 생략하였음.


■ BGB 디버거 화면 메모

디버거 화면


- (디버거 메인창 _ 좌상) 롬파일 내용을 어셈블리어 코드로 변환한 내용이 나와있다.

 명령 예) 「ld b, 04 : b에 04 값을 넣는다」 

 이런 명령들은 구글AI 등에 물어보면 친절히 알려준다.