ROM 해킹

ROM hacking

ROM 해킹비디오 게임ROM 이미지 또는 ROM 파일을 수정하여 게임의 그래픽, 대화, 레벨, 게임 플레이 및/또는 기타 요소를 변경하는 과정입니다.이것은 대개 기술적인 성향이 있는 비디오 게임 팬들에 의해 중요한 오래된 게임을 개선하거나, 창조적인 수단으로서, 또는 오래된 게임의 엔진을 사용하여 새로운 비공식 게임을 만들기 위해 행해진다.ROM 해킹은 모든 아이템을 동일하게 유지하면서 새롭고 재미있는 게임 플레이를 위해 게임을 재설계하거나 게임 내에서 사용되지 않는 기능을 잠금 해제합니다.

ROM 해킹은 일반적으로 16진 에디터(비텍스트 데이터를 편집하기 위한 프로그램)와 타일 에디터 등 다양한 전문 툴과 일반적으로 편집 레벨, 아이템 등에 사용되는 게임 고유의 툴을 사용하여 이루어지지만 어셈블러디버거 등 보다 고도의 툴이 사용되기도 한다.준비가 되면 보통 인터넷에 배포되어 다른 사람들이 에뮬레이터나 게임 [1]콘솔에서 플레이할 수 있게 됩니다.

번역(ROM 해킹 커뮤니티 내에서는 번역 해킹으로 알려져 있음)은 ROM 해킹의 일종이다.또한 게임을 원상태로 되돌리기 위해 존재하는 검열 방지 해킹도 있다.는 비디오 게임(특히 닌텐도)에 대한 퍼블리셔의 콘텐츠 정책이 엄격해지면서 수입된 오래된 게임에서도 종종 볼 수 있다.일본이나 유럽보다 미국; 또한 엔티티 [2]배치를 섞는 랜덤화기도 있습니다.이 기사의 대부분은 두 종류의 해킹에 모두 적용되지만, 이 기사에서는 게임 레벨 편집과 같은 "창조적 해킹"에 초점을 맞추고 있다.

커뮤니티

대부분의 해킹 그룹은 해킹과 스크린샷을 호스팅하기 위한 웹 공간(때로는 그룹 구성원의 해킹만 호스팅하고 때로는 거의 모든 해킹을 호스팅함), 메시지 보드를 제공하며, 종종 IRC 채널을 가지고 있습니다.

방법들

ROM 데이터는 다양한 프로그래머 또는 프로그래밍 팀에 의해 작성되어 매우 다양합니다.

16진수 편집

16진 에디터는 ROM 해커의 레퍼토리에서 가장 기본적인 도구 중 하나입니다.16진수 편집기는 일반적으로 텍스트 편집 및 구조가 알려진 다른 데이터 편집(예: 항목 속성) 및 어셈블리 해킹에 사용됩니다.

텍스트 편집은 해킹의 가장 기본적인 형태 중 하나입니다.많은 게임이 텍스트를 ASCII 형식으로 저장하지 않기 때문에, 텍스트 편집이 용이하도록 어떤 바이트 값이 알파벳의 어떤 문자에 해당하는지 알 수 있는 몇 가지 전문 16진수 편집기가 개발되었습니다. 이러한 바이트=문자 관계를 정의하는 파일을 "테이블" 파일이라고 합니다.다른 게임들은 적절한 장비를 갖춘 16진 에디터가 편집하기 쉽게 하는 단순한 텍스트 압축 기술(예를 들어, 2개 이상의 문자의 특정 조합을 1바이트로 인코딩하는 듀얼 타일 인코딩 또는 DTE)을 사용한다.

16진수 에디터는 캐릭터/아이템 속성 등의 정보를 편집할 수 있는 도구입니다.이 데이터의 구조와 위치가 알려져 있고 이 정보를 편집할 수 있는 게임 고유의 에디터가 없는 경우입니다.일부 용감한 해커들은 16진 에디터로 레벨 편집을 수행하기도 하지만, 이는 매우 어렵습니다(레벨 스토리지 포맷이 16진 에디터에 표시되는 것과 매우 유사한 게임 제외).

그래픽스 편집

또 다른 기본적인 해킹 기술은 그래픽 해킹으로, 게임의 환경, 캐릭터, 폰트 또는 다른 것들의 외관을 바꾸고 있다.그래픽스 데이터의 형식은 콘솔마다 다르지만 초기 그래픽스(NES, Super NES, Game Boy 등)의 대부분은 원하는 결과를 얻기 위해 화면에 배열된 8x8 픽셀 데이터 단위인 타일에 그래픽을 저장합니다.이러한 타일 편집은 16진 에디터에서도 가능하지만 일반적으로 ROM 데이터를 그래픽으로 표시할 수 있는 타일 편집기(타일 레이어 또는 타일 몰러 등)를 사용하여 수행할 수 있습니다.

그래픽 해킹은 간단한 편집(Luigi에게 골프채주거나 이후 세대의 Pokemon을 위한 픽셀화 스프라이트를 만드는 것)부터 게임 간에 캐릭터를 "포트"하는 것, 그리고 완전한 주제 변경(일반적으로 팔레트 변경 포함, 아래 참조)까지 다양합니다.

보다 고도의 그래픽스 해킹은 타일과 색상뿐만 아니라 타일의 배열 방식, 즉 타일 그룹을 생성하는 방식도 변경함으로써 최종 모양에 대한 유연성과 제어력을 높입니다.이는 16진수 편집 또는 특수 도구(특정 게임 또는 특정 시스템용)를 통해 수행됩니다.그래픽 해킹의 좋은 예는 완전히 새로운 세대의 포켓몬과 타일을 게임에 추가하려고 시도한 미완성 포켓몬 토르작이다.그 후 해킹은 중단되었지만, 여전히 이용 가능한 툴로 무엇을 달성할 수 있는지에 대한 좋은 예가 되고 있습니다.

팔레트 편집

또 다른 일반적인 형태의 해킹은 팔레트 해킹입니다.이 해킹에서는 플레이어가 게임에서 보는 색상을 변경하기 위해 색상 값을 변경합니다(이는 그래픽 해킹과 밀접하게 관련되어 있습니다).팔레트 값은 일반적으로 16진수에 저장됩니다.이것은 게임이 선택하는 미리 정의된 색상 세트를 사용하는 NES 게임에서 매우 쉽습니다. 이 경우 팔레트 해킹은 선택된 색상 중 하나를 변경하는 것을 포함합니다.슈퍼 NES, 메가 드라이브 게임 또는 절대 RGB 컬러 값을 저장하는 다른 시스템용 게임에서는 문제가 조금 더 복잡합니다.팔레트 에디터는 보통 단순하며 레벨 에디터 또는 게임별 그래픽 에디터와 함께 사용되는 경우가 많습니다.

레벨 편집

ROM 해킹의 가장 일반적인 형태 중 하나인 레벨 편집은 게임의 레벨 또는 맵을 수정하거나 재설계하는 것을 수반합니다.이것은 특정 게임에 특화된 에디터(레벨 에디터라고 불린다)를 사용하여 거의 독점적으로 이루어집니다.레벨 편집은 게임을 더 어렵게 하거나 게임의 플롯 흐름을 변경하거나 오래된 게임에 새로운 것을 주기 위해 수행할 수 있습니다.광범위한 그래픽 해킹과 결합된 이 게임은 매우 다른 모양과 느낌을 가질 수 있습니다.

데이터 편집

많은 해킹(특히 롤플레잉 비디오 게임)의 핵심 컴포넌트는 캐릭터, 아이템, 적 속성 등의 데이터 편집입니다.이것은 데이터의 위치와 구조를 알고 있는 경우 일반적으로 "수작업"(16진수 에디터 사용) 또는 이 기능을 가진 게임 전용 에디터를 사용하여 수행됩니다.이를 통해 해커는 무기의 작동 방식, 적의 힘, 행동 방식 등을 바꿀 수 있다.이는 게임을 더 쉽게 또는 더 어렵게 하거나 플레이어가 직면할 수 있는 새로운 시나리오를 만들기 위해 수행할 수 있습니다.

어셈블리 해킹

가장 강력하고 거의 틀림없이 가장 어려운 해킹 기법은 게임의 실제 코드를 편집하는 것으로 ASM 해킹이라고 불리는 프로세스("[1]ASM"은 CPU에 의해 실행되는 낮은 수준의 프로그래밍 언어를 의미함)입니다.ASM 해킹은 게임마다 코드가 다르기 때문에 정해진 패턴이 없지만 숙련된 ASM 해커들은 대부분 디버거나 트레이서가 내장된 에뮬레이터를 사용하거나 ROM을 디어셈블러를 통해 실행한 후 필요에 따라 코드를 분석하여 16진 에디터나 어셈블러를 사용하여 수정한다.상기의 비교적 간단한 방법에 비해 매우 어렵지만 ASM 해킹에서는 적의 AI를 변경하는 것부터 그래픽을 생성하는 방법을 변경하는 것까지 모든 것이 가능합니다(물론 해커의 구성 능력에 따라 가능성은 여전히 제한적입니다).기존 코드를 수정하고 수정하십시오.)

개발자가 입력된 언어를 사용한 경우, 해커는 적절한 컴파일러에 접근할 수 있다면 동일한 언어로 게임을 위한 코드를 컴파일할 수 있습니다.MIPS-GCC는 닌텐도 [3][4]64용 코드를 컴파일할 수 있기 때문에 닌텐도 64 게임을 해킹하기 위해 C를 사용하는 것이 그러한 예 중 하나이다.

음악 해킹

음악 해킹은 게임이 음악 데이터를 저장하는 방법이 매우 다양하기 때문에(이 때문에 데이터를 찾고 수정하는 것이 어렵기 때문에), 새로운 음악을 작곡하는 데 어려움이 있기 때문에(또는 다른 게임에서 음악을 옮기는 것도 어렵기 때문에) 상대적으로 드물다.음악 크래킹은 매우 드물기 때문에 많은 해커들이 포팅/작곡된 음악을 추가하지 않습니다.그러나 많은 게임보이 어드밴스 게임들이 M4A 엔진('새피 드라이버'라고도 함)을 음악용으로 사용하고 있기 때문에, SapTaper는 게임보이 어드밴스 음악 데이터를 해킹하는 데 사용될 수 있다.Sappy 2006과 같은 다양한 유틸리티가 엔진과 함께 작동하도록 만들어졌습니다.

게임들 사이에 사용되는 같은 엔진의 또 다른 예는 닌텐도 64인데, 닌텐도 64에서는 대부분의 게임들이 다른 사운드 뱅크를 사용하긴 하지만 같은 포맷을 사용한다.N64 Midi Tool로 알려진 유틸리티는 대부분의 닌텐도 64 게임이 사용하는 시퀀스를 편집하기 위해 개발되었지만 슈퍼 마리오 64와 같이 약간 다른 엔진을 사용하는 N64 타이틀은 다루지 않습니다.몇몇[5] 메가 드라이브 게임들은 비공식적으로 "SMPS"[6]라고 알려진 사운드 엔진을 사용하며, 이는 수십 [7]년 동안 많은 해커들에 의해 연구되어 왔습니다.현재 SMPS 엔진(특히 소닉헤지호그 게임)을 사용하는 게임의 음악을 변경하기 위한 다양한 툴이[8] 존재하며, 그 중 많은 툴이 스팀 [9]워크샵에 진출했다.

ROM 확장

일반적으로 ROM 해커는 게임에 콘텐츠를 추가할 수 없고 기존 콘텐츠만 변경할 수 있습니다.이 제한은 ROM 확장으로 극복할 수 있습니다.이것에 의해, ROM 이미지의 총 사이즈가 증가해, 보다 많은 컨텐츠를 넣을 수 있는 공간이 생기고, 결과적으로 보다 큰 게임을 할 수 있게 됩니다.이 작업의 난이도는 게임이 만들어진 시스템에 따라 달라집니다.예를 들어 NES ROM을 확장하는 것은 게임에서 사용되는 매퍼 때문에 어렵거나 불가능할 수 있습니다.예를 들어 매퍼가 16개의 ROM 뱅크를 허용하고 모든 것을 사용하는 경우 게임을 다른 매퍼로 변환하지 않고서는 ROM을 더 확장할 수 없으며, 이는 쉽거나 매우 어려울 수 있습니다.반면 SNES 게임의 확장은 (상대적으로) 간단하다.추가된 공간을 활용하려면 게임 코드의 일부를 수정하거나 다시 작성해야 합니다(위의 어셈블리 해킹 참조). 따라서 게임은 어디를 찾아야 하는지 알 수 있습니다.ROM 확장의 또 다른 유형은 게임보이 어드밴스 ROM입니다.일반적으로 ROM 자체는 작지만 사용 가능한 메모리 용량이 최대 17의 배수를 초과할 수 있습니다.

분배

일단 해킹이 완료되면(또는 불완전한 버전이 중간 릴리즈에 적합하다고 판단되면) 인터넷에 공개되어 다른 사용자가 재생할 수 있게 됩니다.이것을 실시하려면 , 통상적으로 인정되고 있는 방법은, 미변경 [1]ROM 에 적용할 수 있는 비공식 패치(IPS 형식 등)를 작성하는 것입니다.이 문서(일반적으로 일종의 문서)는 아카이브 파일에 저장되고 어딘가에 업로드됩니다.IPS는 2개의 바이너리 파일(이 경우는 수정되지 않은 ROM과 해킹된 ROM)의 차이를 기록하는 포맷으로 [10]ROM 해크에 적합합니다.IPS는 오늘날에도 소규모 패치에 사용되고 있습니다.그러나 ROM의 크기가 커짐에 따라 이 포맷은 무용지물이 되어, NINJA나 PPF(PlayStation Patch Format)의 파일 포맷이 다수 작성되고 있습니다.PPF는 특히 ISO CD 이미지나 닌텐도 64 게임과 같은 대용량 파일을 패치하기 위해 오늘날에도 여전히 사용되고 있습니다.새로운 패치 형식인 UPS도 IPS 및 PPF의 [11]후속으로 설계된 ROM 해킹 커뮤니티에 의해 개발되었습니다.최신 패치 포맷인 APS 패치 시스템도 게임보이 어드밴스 ROM [12]해커에 의해 개발되었습니다.APS 시스템은 이전 [13]시스템보다 공간 효율이 높고, 가역성이 뛰어나며, 속도도 빠릅니다.

패치의 형태로 해킹을 배포하는 목적은 ROM 이미지 전체를 배포하는 법적 측면을 피하기 위한 것입니다.패치는 ROM에 변경된 내용만 기록하기 때문에 원래 게임의 일부를 배포하지 않습니다.패치는 통상, 풀 ROM 이미지보다 큰폭으로 작습니다(NES ROM은 8KB~2MB, Super NES ROM은 256kB~6MB).

법적 유통의 새로운 사례로 Sega는 Sega Mega Drive Classics Hub라는 이전 Mega Drive/Genes 게임 컬렉션에 사용할 스팀 기반 가상 허브는 Sega Mega Drive Classics Hub입니다.The Hub는 플레이어가 이러한 오래된 게임의 에뮬레이트 버전을 플레이할 수 있도록 하는 것 외에 스팀 워크샵을 통해 사용자가 만든 콘텐츠에 대한 스팀의 지원을 이용하여 공식적으로 제공되는 게임의 [14]ROM 해킹을 배포할 수 있도록 했다.

사용.

패치가 적용된 ROM은 에뮬레이터에서 재생되는 경우가 많지만 패치가 적용된 ROM을 원래 [15]하드웨어에서 재생할 수도 있습니다.행선지 카트리지는, 패치가 적용되지 않은 최초의 ROM 를 꺼낸 원래의 카트리지이거나, 같은 타입의 호환성이 있는 다른 카트리지일 수 있습니다.이것은, 팬 번역, 홈브루 게임, 프로토타입, 또는 오리지날 카트리지가 제조되지 않았던 그 외의 게임, 또는 에뮬레이터로 이용할 수 없는 오리지날 하드웨어의 정확한 타이밍이나 그 외의 요소를 필요로 하는 게임에 특히 적합합니다.

시스템과 게임

ROM 해킹의 대부분은 NES, SNES, 세가 제네시스 게임으로 닌텐도 64나 닌텐도 DS와 같은 고급 콘솔 게임들에 비해 작고 단순하기 때문에 게임보이용 게임, 게임보이 컬러용 게임, 게임보이 어드밴스용 게임들은 플레이스테이션용 게임뿐만 아니라 해킹으로도 인기가 적다.하지만, 컴퓨터가 빨라지고 더 많은 프로그램과 유틸리티가 개발되면서 플레이스테이션, 닌텐도 64, 닌텐도 DS 해킹이 더 많이 등장했기 때문에, 보다 최근의 콘솔들을 위한 게임들도 해킹에서 제외되지 않는다.

그 중, 인기 있는 게임은 해킹하기 위한 인기 있는 게임입니다.많은 해커들은 소닉헤지호그 시리즈, 슈퍼 마리오 시리즈(마리오 브라더스, 슈퍼 마리오 브라더스, 슈퍼 마리오 브라더스 2, 슈퍼 마리오 브라더스 3, 슈퍼 마리오 랜드 2: 6 골든 코인, 슈퍼 마리오 64)의 게임으로 출시되었습니다.슈퍼마리오카트, 마리오카트위, 마리오카트7, 마리오카트DS), 포켓몬 시리즈, 칩스챌린지, 캐슬바니아, 파이널판타지, 젤다의 전설, 메가맨 시리즈 게임, 파이어엠블럼 시리즈, 어스바운드, 슈퍼메트로이드, 기타 많은 게임들이 있다.

해킹당한 유명한 아케이드 게임은 Street Fighter II: Rainbow Edition으로 게임 속도가 향상되고 새로운 특별한 움직임이 특징이다.이 게임의 성공은 캡콤이 스트리트 파이터 II: Hyper Fighting을 공식 반응으로 출시하게 만들었다.

당신의 싱클레어 잡지에 "프로그램 피트스톱"이라는 월간 칼럼이 실렸습니다.이것은 주로 게임용 치트 해킹에 초점을 맞췄지만, 오리지널 Guntlet용 레벨[16] 맵 프린터와 같은 게임의 풀 레벨[17] 에디터를 모두 갖추고 있었다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c "Dictionary of ROMhacking terms". ROMhacking.net.
  2. ^ "The BIG List of Video Game Randomizers". Guillaume Fortin-Debigaré. Retrieved 2020-07-10.
  3. ^ "vg64tools - Project Hosting on Google Code". Retrieved 2009-09-09.
  4. ^ "Super Mario 64: Pong Of Death (messiaen)". Retrieved 2009-09-09.
  5. ^ "Mega Drive/Genesis Sound Engine List - GDRI :: Game Developer Research Institute". gdri.smspower.org.
  6. ^ "SMPS - Sega Retro". segaretro.org. 23 January 2019.
  7. ^ "Valley Bell's SMPS Research". Sonic and Sega Retro Message Board.
  8. ^ "Sonic Hacking Utilities - Sonic Retro". info.sonicretro.org.
  9. ^ "Steam Workshop :: SEGA Mega Drive & Genesis Classics". steamcommunity.com.
  10. ^ "Pokemon Rom Hacks". InverseGamer.com. 20 September 2020. Retrieved 31 March 2021.
  11. ^ "New patching format, UPS, debuts today". www.romhacking.net.
  12. ^ "The PokéCommunity Forums - View Profile: HackMew". www.pokecommunity.com.
  13. ^ "Newest patching format, APS, recently released". www.pokecommunity.com.
  14. ^ Yin-Poole, Wesley (April 29, 2016). "Modders are already having fun with Sega Mega Drive classics on Steam". Eurogamer. Retrieved May 3, 2016.
  15. ^ "Basic NES Reproduction".
  16. ^ "World of Spectrum - Forced Redirect". www.worldofspectrum.org.
  17. ^ "World of Spectrum - Forced Redirect". www.worldofspectrum.org.