슈퍼 닌텐도 미니에서 게임을 다운로드하는 방법. NES 클래식 미니 업그레이드

21개의 사전 설치된 게임을 통해 모든 사람이 다음과 같은 90년대 16비트 엔터테인먼트에 대한 향수를 불러일으킬 것입니다. 좋은 소식 Hakchi2 개발팀이 Nintendo 팬들에게 선보였습니다. 해킹 S NES 미니시간 문제로 판명되었습니다. 그리고 그 때가 이미 온 것 같습니다.

SNES Mini 콘솔의 간단하고 빠른 해킹 가능성에 대한 첫 번째 제안은 장치의 공식 판매가 시작되기 직전에 나타났습니다. 이 이론은 신제품 아키텍처의 정체성과 작년 NES Classic Mini로 "대표된" 이전 제품의 정체성을 기반으로 하며 하드웨어의 유사성은 거의 100%로 나타났습니다. ROM 파일을 열린 시스템 폴더로 이동하여 SNES Mini용 게임 라이브러리를 확장하기 시작한 열정적인 해커의 방법은 다양한 정도의 성공을 거두었습니다. 그러한 절차의 복잡성과 효율성은 소요된 시간과 노력을 정당화하지 못했습니다. 이 임무를 완수하기 위해 Hakchi2 프로그램의 도움을 받기로 결정했습니다. 효과적인 도구레트로 콘솔의 파일 시스템을 편집합니다.

버전 v2.20으로 업데이트된 독점 소프트웨어에 SNES Mini 콘솔에 대한 지원을 추가한 Hakchi2 유틸리티의 제작자는 사용자에게 자신만의 "포팅"을 수행할 수 있는 기회를 제공했습니다. 올바른 형식으로 자동 변환하는 이 방법은 지금까지 SNES용으로 출시된 게임의 약 75%에 대한 올바른 게임 플레이를 보장합니다. 그러나 Hakchi2의 저자는 제조사가 의도하지 않은 콘솔 조작으로 인해 다음과 같은 결과가 발생할 수 있다는 점에 주의하시기 바랍니다. 치명적 오류복고풍 콘솔을 "영원한 잠"에 빠뜨립니다.

한편, SNES Mini는 한정판으로 인해 수요가 매우 높습니다. Nintendo 권장 가격이 80달러이므로 레트로 콘솔은 eBay와 같은 온라인 사이트에서 그 두 배 가격에 쉽게 판매될 수 있습니다. 콘솔이 매장 진열대에 오른 순간부터의 판매 통계에 따르면 SNES Mini의 가격은 $160 이상인 마감된 로트가 10,000개가 넘었습니다. 이로 인해 리셀러는 장치를 중심으로 형성되고 성장을 이끈 과대 광고를 통해 초과 이익을 얻었습니다. 평균 가격콘솔당 거의 $190입니다.

닌텐도는 전설이다 게임 세계창립자 중 한 명입니다. 일본 최초의 콘솔 게임은 매우 성공적이어서 수십 년이 지난 후에도 기억됩니다. 그들은 기억하고 사랑합니다. Nintendo는 구식 게임에 대한 게이머의 감정 덕분에 오늘날에도 여전히 사업을 펼치고 있습니다.

더욱이 일본 회사는 최신 콘솔로 그다지 좋은 성적을 거두지 못하고 있습니다. 아마도 이것이 작년 7월 Nintendo NES Classic이 한때 밟았던 길을 따르기로 결정한 이유일 것입니다. NES Classic은 현대적인 전자 부품과 모듈을 갖춘 NES의 현대적인 화신입니다. 특히 HDMI 출력이 있습니다. 회사는 콘솔과 함께 30개의 오래된 게임을 공급하기로 결정했습니다.

“우리는 모든 연령대의 팬들에게 원래 Nintendo 시스템을 재발견하고 왜 그 콘솔을 그토록 좋아했는지 기억할 수 있는 기회를 제공하고 싶었습니다. Nintendo Entertainment System: NES Classic Edition은 NES를 기억하는 사람이나 Nintendo of America의 사장 겸 최고 운영 책임자(COO)인 Reginald "Reggie" Fils-Aimé는 "새로운 세대의 게이머에게 이 게임을 맛볼 수 있는 기회를 제공하고 싶습니다."라고 말했습니다.

이것은 모두 훌륭하지만 처음에 발표된 30개의 게임을 제외하고 회사는 게이머에게 다른 것을 제공하지 않기로 결정했습니다. Nintendo가 공식적으로 출시하지 않을 것이라고 분명히 발표되었습니다. 더 많은 게임그러나 장인들이 이 문제에 대한 독립적인 해결책을 찾는 것을 막지는 못했습니다.

물론 게이머는 에뮬레이터, 다른 개발자의 콘솔(매우 현대적인 개발자 포함) 및 동일한 오래된 장치를 사용하여 오래된 걸작을 재생할 수 있기 때문에 이것은 모두 다소 이해하기 어려운 문제입니다. 그러나 누구도 쉬운 길을 찾지 않습니다.

NESClassicMods 커뮤니티의 사람들이 자신만의 솔루션을 찾았습니다. 이 기능이 작동하려면 첫 번째 Super Mario Bros. 슬롯에 저장 파일을 만들어야 합니다. 일반적으로 이는 매우 쉽습니다. 그런 다음 마이크로 USB 케이블을 통해 NES Classic Edition을 컴퓨터에 연결한 다음 NES를 "FEL" 모드로 부팅해야 합니다. 전원 버튼을 누른 상태에서 재설정 버튼을 길게 누르면 됩니다(버튼을 사용한 페인트 작업은 셋톱 박스가 꺼진 상태에서 수행되어야 함). 다운로드가 시작되며 이때 PC에 “sunxi-FEL” 다운로드를 시작해야 합니다. 오픈 버전이 소프트웨어가 있습니다.

물론 나머지 단계를 포함하여 이 모든 작업은 사용자 본인의 책임 하에 수행되어야 합니다. 사실 NES Classic의 파일을 PC로 복사하고 거기에서 편집한 다음 콘솔에 다시 다운로드해야 합니다. 문제가 발생하면 콘솔이 작동을 멈출 수 있지만 이런 일이 발생할 가능성은 희박합니다. 장인이 만든 애플리케이션을 사용하여 작업해야 합니다. 다른 기능 중에서 게임의 ROM 파일을 콘솔에 업로드할 수 있습니다.


모든 작업이 완료되면 이미지 파일을 게임에 추가하는 것이 좋습니다. 그런 다음 모든 것을 패키지화하여 콘솔로 보내야 합니다. 모든 것이 계획대로 진행된다면 새로운 게임이 콘솔에 나타날 것입니다. 표준 목록도 나쁘지 않습니다. 여기에는 다음 이름이 표시됩니다.
콘솔과 함께 제공되는 게임은 다음과 같습니다.
  • 풍선싸움
  • 버블 보블
  • 캐슬바니아
  • Castlevania II: 사이먼스 퀘스트
  • 동키콩
  • 동키콩 주니어
  • 더블 드래곤 II: 더 리벤지
  • 박사. 마리오
  • 익사이트바이크
  • 파이널 판타지
  • 갈라가
  • 고스트 N' 고블린
  • 그라디우스
  • 아이스 클라이머
  • 키드 이카루스
  • 커비의 모험
  • 마리오 브라더스
  • 메가맨 2
  • 메트로이드
  • 닌자 가이덴
  • 팩맨
  • 펀치아웃!!! 씨가 출연합니다. 꿈
  • 스타트로픽스
  • 슈퍼C
  • 슈퍼 마리오 형제.
  • 슈퍼 마리오 형제. 2
  • 슈퍼 마리오 형제. 삼
  • 테크모볼
  • 젤다의 전설
  • 젤다 II: 모험링크의
그러나 여전히 게이머는 추가 게임을 원합니다. 다행스럽게도 게임이 많이 있습니다. 항상 플레이할 것이 있습니다.

이 "해킹"이 며칠이 조금 넘었다는 점은 주목할 가치가 있습니다. 많은 수의유저들은 이렇게 특이한 방식으로 업로드된 게임의 성능을 확인할 수 있었다. 그러나 Mega Man의 비디오는 이미 인터넷에 나타나 문제가 없음이 분명합니다.


이 스크린샷은 공식적으로 제공되는 것 중 닌텐도 게임 Battletoads가 콘솔에 등장했습니다.

하드웨어 플랫폼의 한계는 아직 완전히 명확하지 않습니다. 30개 이상의 게임을 추가할 수 있다는 것은 분명합니다. 문제 없습니다. 위의 비디오는 Contra 및 Battletoads를 포함한 55개의 게임이 포함된 시스템을 보여줍니다.

제3자 개발자들의 노력이 Nintendo에 의해 주목받을 수도 있습니다. 이 모든 것이 끝나면 그녀가 공식적으로 오래된 게임의 공식 버전을 출시하기 시작하여 게이머가 다양한 해결 방법을 생각해내도록 강요하지 않기를 바랍니다. 하드웨어 플랫폼이 로딩과 추가 게임, 따라서 "닌텐도가 추가 게임을 제공하지 않는 이유"에 대한 질문은 여전히 ​​열려 있습니다.

그런 다음 게임의 다양한 매개변수를 변경할 수 있게 만들었고 표지를 선택하여 자동으로 누르는 기능을 추가했으며 자동 검색표지를 Google에 올렸는데 마지막 순간에 비뚤어진 영어 외에 러시아어를 추가하기로 결정했습니다. 그리고 이 형식으로 버전 2.0이라고 부르며 인터넷에 전부 올렸습니다. 왜냐하면 "학치2" 때문입니다.

아무런 지시 없이도 프로그램을 사용할 수 있도록 정말 모든 것을 만든 것 같습니다. 사용자가 커널을 덤프했는지, 수정된 커널을 플래시했는지 자체적으로 기억하고, 어떤 순간에 무엇을 해야할지 스스로 알려줍니다. 그리고 hakchi2는 동일한 아카이브에 있는 유틸리티와 드라이버 때문에 많은 바이러스 백신이 이에 대해 불평했음에도 불구하고 정말 빠르게 인기를 얻었습니다. 많은 사람들이 러시아 봇넷의 일부가 되는 것을 두려워했습니다.

가장 흥미로운 문제와 과제

윈도우 및 드라이버 설치

가장 어려운 문제는 첫 단계나에게는 드라이버를 설치하는 것이 었습니다. 프로그램을 간단하게 만들려면 드라이버를 최대한 쉽게 설치해야 합니다. 나는 사용자에게 복잡한 지침을 제공하거나 별도의 유틸리티를 다운로드하기 위해 일부 사이트로 보내고 싶지 않았습니다. 나는 Zadig에 대해 이야기하고 있습니다.

이것은 널리 사용되는 기본 USB 드라이버(우리의 경우 WinUSB)를 빠르고 쉽게 설치할 수 있는 탁월한 응용 프로그램입니다. 그런데 사용자가 왜 복잡한 단계를 거쳐야 하는지 이해가 안 되고, Windows에서는 Microsoft에서 직접 드라이버를 설치해야 할 때 개발자의 디지털 서명을 요구합니다. 다행히 Zadig에는 열려 있습니다 원천, 그리고 예제의 콘솔 버전에서도 마찬가지입니다. 저는 실행 시 드라이버를 즉시 설치하는 간단한 프로그램을 신속하게 만들었습니다.

FEL 프로토콜의 미묘함

처음엔 버그가 얼마나 많이 떠오른지는 말할 필요도 없고... 무엇보다 실행을 위해 메모리에 코드를 실행한 후 디바이스 초기화가 불가능할 때 발생하는 '파이프 읽기 오류' 오류로 고생했습니다. 그러나 그것은 매번 발생하는 것이 아니라 절대적으로 우연히 발생했기 때문에 마침내 적어도 어떤 종류의 패턴을 찾았다 고 잘못 믿었습니다. 하지만 아니요, 오류는 완전히 우연히 발생했습니다. 그리고 나를 가장 괴롭혔던 것은 NES Mini가 내 프로그램에 응답하지 않는 순간 madmonkey에서 원래 hakchi를 시작하면 콘솔이 무감각에서 벗어나 계속 작동한다는 것입니다. 즉, madmonkey는 어떻게든 초기화를 올바르게 수행하지만 뭔가 문제가 있습니다. 하지만 소스 코드를 아무리 연구해도 거기에는 특별한 것이 없었습니다. 그 결과 USB 트래픽을 가로채서 보여주는 프로그램을 발견하고 모든 것을 바이트 단위로 비교하기 시작했습니다.

다음은 초기화/검증을 수행하는 방법에 대한 예입니다.

응답을 받았을 때 정확히 두 번째 단계에서 문제가 있었습니다. 어떤 이유에서인지 제가 받은 데이터는 제가 기대했던 것과 전혀 달랐습니다. 내 실수는 이 경우 처음부터 초기화를 다시 수행하려고 시도했다는 것입니다. 이 경우 madmonkey의 프로그램(보다 정확하게는 fel_lib 라이브러리)은 두 번째 단계부터 즉시 반복되며 그 후 장치가 정상적으로 응답하기 시작합니다. 일종의 샤머니즘이지만 오류는 영원히 사라졌습니다.

외국인들이 부르는 "LED-bug"

그런데 이 외에도 훨씬 더 낯선 버그를 만났습니다. 이것은 아마도 내 인생에서 가장 이상하고 가장 눈에 띄지 않는 버그일 것입니다. 게임 복사를 위한 스크립트는 프로세스가 끝나면 콘솔을 끄므로 사용자는 LED가 꺼질 때까지 기다려야 합니다. 하지만 30분이 지나도 LED가 꺼지지 않는다고 불만을 토로하는 분들이 많았습니다. 포럼의 사람들은 자신의 경험을 공유했습니다. 어떤 사람들에게는 모든 것이 완벽하게 작동하지만 다른 사람들에게는 LED가 꺼지지 않습니다. 어떤 사람들은 존재한다고 생각합니다. 다른 버전어떤 사람들에게는 모든 것이 다른 컴퓨터에서 작동하기 시작했습니다. 수십 명의 사람들이 적어도 어떤 종류의 패턴을 찾으려고 노력했습니다. 또, 다양한 환상이 있었지만 결국 100% 맞는 패턴을 찾아낸 사람이 있었습니다. 처음에는 믿지 않았지만 모두가 만장일치로 확인하기 시작했습니다.

제 프로그램은 WinRAR로 풀면 안되는데, 7zip으로 풀면 잘되네요. 어떻게 이럴 수있어?

특정 조건에서 일부 WinRAR 버전은 압축을 풀 때 파일 속성을 저장하지 않으며 Windows에서 Linux 커널용 RAM 디스크를 구축할 때 심볼릭 링크에는 "시스템" 속성이 있어야 합니다. 특히 WinRAR을 직접 사용하고 있기 때문에 아카이버에 문제가 있다는 생각조차 할 수 없었습니다. 곧 프로그램에 파일 속성 검사를 추가했고 문제는 영원히 사라졌습니다. 사실, Windows 10에서는 어떤 이유로 속성을 변경할 수 없는 경우가 있지만 이제는 이에 대해 최소한 오류가 기록됩니다.

글꼴

이 단계에서는 이미 프로그램이 상당히 안정되어 있었지만 여전히 전선콘솔 자체와 쉘에 영향을 미치는 문제.

나는 글꼴부터 시작하기로 결정했습니다. 문제는 NES Mini의 원본 글꼴에 필요한 문자만 포함되어 있고 추가된 많은 게임의 이름이 올바르게 표시되지 않는다는 것입니다.

이 작업은 언뜻 보면 완전히 해결 가능한 것처럼 보였습니다. 게임이 있는 디렉토리에 "title.fnt" 및 "copyright.fnt" 파일이 있고 이를 편집하거나 교체하기만 하면 되기 때문입니다. 그러나 단 한 명의 글꼴 편집자도 이를 여는 데 동의하지 않았으므로 그것이 어떤 형식인지 어떻게든 이해해야 합니다.

이 파일을 바꾸면 게임 이름의 텍스트가 작은 크기.

알고 보니 글꼴은 벡터가 아닌 래스터 글꼴이고 그 안에 문자가 그림 형태로 담겨 있는 것으로 나타났습니다. 16진수 편집기에서 파일을 열면 각 글꼴의 시작 부분에 "BMF" 서명이 포함되어 있는 것을 볼 수 있습니다.

"BMF 글꼴"에 대한 인터넷 검색을 통해 글꼴 생성 유틸리티와 상세 설명나는 즉시 서둘러 읽었습니다. 예, 모든 파일에는 실제로 BMF 서명이 포함되어야 하지만 파일의 시작 부분에 있습니다. NES Mini의 경우 앞에 9바이트가 더 있었습니다. 다른 파일그들은 달랐습니다(첫 번째 바이트 제외). 불필요하거나 중요하지 않기를 바랐지만 변경했을 때 콘솔이 시작되지 않고 검은 화면이 표시되었습니다. 이 9바이트의 의미를 이해하는 것이 필수적이라는 것이 밝혀졌습니다. 첫 번째는 항상 하나입니다. 그런 다음 2바이트는 일부 값이고 두 개의 0입니다. 다시 2바이트 - 값 및 다시 - 2개의 0. 그 후 이미 글꼴 데이터가 왔습니다. 나는 즉시 이 쌍이 두 개의 32비트 숫자처럼 보인다고 생각했습니다. 첫 번째를 보고 파일 크기와 비교했는데 어떤 패턴도 보이지 않았습니다. 두 번째 것과 동일하지만, 이 헤더 없이도 그것들을 합산하기로 결정하고 정확한 파일 크기를 얻었습니다. 이 숫자는 파일의 일부 섹션 크기를 알려주는 것으로 나타났습니다. 처음 4바이트에 표시된 값으로 파일을 되감았더니 PNG 파일의 헤더가 보였습니다.

나는 그것을 꺼냈고 네, 그것은 모든 기호가 있는 사진이었습니다.

글꼴을 생성하는 프로그램은 여러 파일을 출력으로 생성하므로 이는 논리적입니다. NES Mini에서는 간단히 하나로 결합됩니다. 마찬가지로 헤더와 생성된 글꼴 파일을 함께 모아 결과를 NES Mini로 보냈더니 누락된 문자가 나타났습니다.

이제는 모두가 행복해야 할 것 같지만 곧 일본 Famicom Mini 소유자가 나에게 편지를 쓰기 시작하여 모든 상형 문자가 사라졌다고 불평했습니다. 나는 그들에게 정중하게 설명했다. 일본어기분이 나쁘거나 전혀 그렇지 않습니다. 하지만 제가 알아낸 내용과 글꼴을 직접 생성하는 방법을 알려드리기에는 너무 게으르지 않았습니다. 곧 그들은 나에게 일본어 글꼴을 보냈고 나는 그것을 배포판에 포함시켰습니다.

스크립트는 두 글꼴 중 원하는 글꼴을 선택하기 위해 콘솔 영역을 쉽게 결정합니다. xsnake라는 별명을 가진 일본인에게 감사드립니다. 이제 사람들은 이미 그것을 알아냈고 가장 활발하게 게시물을 올리기 시작했습니다. 다른 글꼴, 심지어 Comic Sans도 거기 있는데, 그것이 없으면 우리는 어디에 있을까요?

게임 컨트롤러 드라이버 수정

사람들은 계속해서 비현실적인 기능을 요구했습니다. 많은 사람들이 RESET 버튼을 누르는 기능, 즉 컨트롤러를 놓지 않고 메뉴로 이동하는 기능이 부족했습니다. 나는 즉시 이것이 불가능하다고 말했습니다. 에뮬레이터의 소스 코드도 없고 버튼 기능을 변경할 방법도 없지만 더 많은 버튼이 있는 Wii(호환 가능)의 클래식 컨트롤러를 연결하면 HOME 버튼은 메뉴를 종료하는 역할을 합니다. 즉, 에뮬레이터 코드에 제공됩니다. 동시에 에뮬레이터는 오픈 소스인 SDL2 라이브러리를 사용하지만 이렇게 간단한 기능을 위해 이렇게 거대한 라이브러리를 다시 빌드하고 교체하는 것은 왠지 멋지지 않습니다. Nintendo 자체에서 제공하는 소스 코드를 다시 찾기 시작했고 거기에서 컨트롤러 드라이버의 소스 코드를 보았습니다. 예, 이것이 바로 당신에게 필요한 것입니다! 그런데 컨트롤러의 내부 코드명은 "Clovercon"입니다. "클로버"(클로버)라는 단어에서 유래되었습니다. NES Min의 쉘은 같은 방식으로 Clover라고 불리며 콘솔 모델 자체의 이름은 CLV-001입니다. 이제 모두가 "CLV"가 무엇을 의미하는지 이해했다고 생각합니다.

드라이버 코드는 매우 간단하므로 한 줄만 삽입할 위치를 빠르게 찾았습니다.

(아래로 && 선택) home = 1인 경우;
나는 드라이버를 컴파일하지 않고 특별한 문제, 의외네요. 제가 리눅스를 잘 못해서 갑자기 커널 모듈을 컴파일했는데 일찍부터 기뻤거든요. insmod 유틸리티가 이 모듈 로드를 거부했습니다. 구글링을 좀 해보니 'vermagic'이 일치하지 않기 때문이라는 것을 깨달았습니다. 이는 Linux 커널 버전과 빌드에 사용된 매개변수를 설명하는 모듈 내부의 줄입니다. 이는 단순히 바이너리 호환성을 보장하기 위해 수행됩니다. 즉, NES Mini 커널이 빌드된 것과 동일한 커널 매개변수를 사용하여 드라이버를 빌드해야 합니다. 어떻게 알 수 있나요? 예, Nintendo는 웹사이트에 커널 소스를 게시했지만 거기에는 설정 파일이 없습니다. 나는 다양한 커널 매개변수를 변경하면서 오랫동안 고통을 겪었는데, 버마법적인 라인에서 무엇이 빠졌는지, 무엇이 불필요한지 대략적으로 분명해졌습니다.

그러나 vermagic 문자열이 일치하고 모듈이 로드되면 시스템은 버튼 누름에 응답하지 않습니다. 동시에 디버깅도 불가능했습니다. 왜냐하면 NES Mini 코어의 kprint는 dmesg 버퍼와 마찬가지로 잘렸습니다. 결국 모든 희망을 잃고 포기할 뻔 했지만, '커널 해킹' 섹션으로 들어가서 체크박스를 모두 체크해제하기 시작했습니다.

숙련된 Linux 사용자는 아마도 나를 비웃을 것입니다. 그러나 결국 드라이버가 갑자기 작동하기 시작했습니다. 목표를 달성했습니다. 아래로 + 선택 조합을 눌러 메뉴를 열기 시작했습니다.

사실, 사람들은 곧 버튼 조합을 선택할 수 있는 기능을 요구하기 시작했습니다. 어떻게 보일까요? 결국 드라이버 바이너리에 내장되어 있지만 드라이버가 조합을 가져오는 코드에 텍스트 문자열을 추가하기만 하면 콘솔에 로드하기 전에 내 프로그램이 이 문자열을 찾아서 값을 변경합니다.

휘발성 문자 MAGIC_BUTTONS = "MAGIC_BUTTONS:00100100";
가장 중요한 것은 "휘발성" 지시문을 잊지 말고 컴파일러가 해당 행이 "외부에서" 변경될 수 있으며 이를 확인하기 위해 코드를 잘라낼 필요가 없다는 것을 이해하는 것입니다.

이 모든 것이 큰 의미, Nintendo가 컨트롤러 와이어를 너무 짧게 만들지 않았다면. 이제 연장코드는 필수입니다.

곧 터보 버튼을 요구하는 사람들이 생겼습니다. 나는 항상 그들이 속임수를 쓴다고 생각했는데, 어린 시절부터 그렇게 배웠습니다. 왜냐하면 러시아에서는 원래 컨트롤러를 본 사람이 거의 없기 때문입니다. 그리고 저는 이러한 요청이 외국인들로부터 오기 시작할 때까지 무시했습니다. 여기서는 특별히 말할 것이 없고 또 다른 드라이버 수정만 있을 뿐이라고 생각합니다. 이제 선택+A 또는 선택+B를 1초 동안 길게 눌러 해당 버튼의 터보를 켤 수 있습니다. 클래식 컨트롤러의 경우 X, Y 버튼이 바로 터보 A, 터보 B로 작동됩니다.

한계 극복

게임 수 제한은 모든 것이 완전히 명확하지 않습니다. 사실 NES Mini는 약 97개의 게임을 쉽게 로드할 수 있지만 저장 기능이 작동하지 않습니다. 그리고 뭐 적은 수의 게임메뉴에서 더 많은 저장 공간을 확보할 수 있지만 플래시 메모리 크기 제한이 중요한 것이 아니라 파티션에 여전히 많은 공간이 있습니다. 쉘이 그렇게 많은 것을 얻을 수 없거나 얻지 못하는 것 같습니다. 랜덤 액세스 메모리모든 저장된 게임에는 스크린샷이 첨부되므로 모든 사진을 로드해야 합니다. 게임, 표지 크기, 스크린샷 크기 및 이 모든 것이 압축되지 않은 형태로 메모리에 저장될 가능성이 가장 높다는 점을 고려하면 매우 큰 숫자.

처음에는 이걸 참아야겠다고 생각했어요. 게다가 거기에서 어떤 종류의 게임을 그렇게 많이 다운로드 할 수 있는지 전혀 모르겠습니다. 나 자신의 경우 거의 30 개를 얻을 수 없었고 그 중 절반은 이미 콘솔에 사전 설치되어 있었지만 사람들은 많은 고통을 겪고 요청했습니다. . 그리고 각 게임마다 에뮬레이터 경로와 명령줄 매개변수가 구성에 표시되어 있다는 것을 기억했습니다.

따라서 에뮬레이터뿐만 아니라 사용자에게 폴더처럼 보이는 게임이 포함된 다른 디렉터리를 마운트하는 스크립트를 실행하는 것을 방해하지 않는 모든 스크립트도 실행할 수 있습니다. 나는 그것을 시도했고 효과가 있었다!

그 결과 한 번에 무려 600경기를 녹화할 수 있었다. 내 프로그램은 자동으로 폴더로 나누어 알파벳순으로 정렬합니다. 이 접근 방식을 사용하면 저장이 계속 완벽하게 작동하며 속도가 느려지는 것이 없습니다. 또한 폴더 트리를 생성하는 알고리즘과 사진 변경 기능을 선택할 수 있도록 하고 싶었지만, 그 순간에는 이제 멈추고 마침내 이 모든 것에 대한 비디오를 만들고 이 글을 써야 할 때라고 생각했습니다.

이번 달에는 다른 많은 항목이 추가되었습니다. 다양한 기능치트 코드에 대한 Game Genie 지원 및 게임 정보 자동 채우기와 같이 이제는 모든 것을 기억할 수도 없습니다.
많은 버그와 흥미로운 기능도 발견되었습니다.

예를 들어 제목에 아포스트로피와 연속 숫자가 포함된 게임이 하나 이상 있으면 콘솔이 시작을 거부합니다. 이에 대한 수표를 소개해야했습니다.

게임의 특이한 특수 효과는 실제로 명령줄 매개변수를 통해 활성화되는 간질 공격으로부터 보호합니다.

그건 그렇고, 내장 에뮬레이터에는 다른 많은 매개 변수가 있으며 자체적으로 쉽게 표시됩니다. 사실, 어떤 이유에서인지 모두 작동하지 않습니다. 예를 들어, 아무리 원해도 PAL 에뮬레이션을 활성화할 수 없습니다. 그리고 그렇습니다. 유럽 버전의 콘솔에는 다음이 포함되어 있습니다. 미국 버전계략. Famicom 디스크 시스템용 BIOS도 있지만 해당 게임은 일본에서만 출시되었습니다. 그래서 그들도 시작합니다.

카트리지 게임에 지원되는 매퍼는 많지 않지만 가장 널리 사용되는 매퍼는 모두 사용할 수 있습니다.

  • 0(NROM) - 매퍼가 없는 간단한 게임(예: Ice Climber, Pac-Man 등)
  • 1(MMC1) - 다수 좋은 게임, 두 번째로 인기 있는 매퍼입니다.
  • 2 (UxROM - UNROM/UOROM) - Castlevania, Contra, Duck Tales 등과 같은 게임
  • 3(CNROM) - 많음 간단한 게임, 하지만 그래픽이 너무 많아서
  • 4(MMC3) - 가장 인기 있는 매퍼, 많은 게임
  • 5(MMC5)는 매우 복잡하고 가장 정교한 매퍼입니다. 표준 세트에는 이에 대한 단일 게임이 없는 것 같기 때문에 이를 지원한다는 것이 놀랍습니다.
  • 7 (AxROM - ANROM/AMROM/etc.) - Battletoads와 같은 게임에서 사용되는 간단한 매퍼입니다.
  • 9 (MMC2) - Punch Out!!에서만 사용됩니다.
  • 10(MMC4) - 일부 일본 게임에서만 사용됨
  • 86 - 희귀한 매퍼, 거의 사용되지 않음
  • 87 - 희귀한 매퍼, 거의 사용되지 않음
  • 184 - 희귀한 매퍼, 거의 사용되지 않음
그러나 나는 프로그램에 이 매퍼에 대한 지원을 추가해 달라는 편지를 계속해서 받고 있지만 이것이 나에게 달려 있지 않다는 것을 깨닫지 못하고 있습니다. 이론적으로는 NES Mini용으로 다른 에뮬레이터를 컴파일하는 것이 가능하지만 이 아이디어는 더 똑똑한 사람들에게 맡기겠습니다.

중에 오리지널 게임숨겨진 것이 하나 있습니다. 좀 더 정확하게 말하면 이것은 게임이 아니라 서비스 메뉴와 같은 생산 테스트입니다. 아마도 교활한 조합을 사용하면 탬버린과 함께 춤을 추지 않고도 접근할 수 있을 것입니다.

CaH4e3(특정 집단에서는 잘 알려진 롬해커)가 이미 에뮬레이터 파일을 분해하기 시작했습니다. 재미있는 사실- 개발자의 숨겨진 메시지가 포함되어 있습니다. 더 정확하게는 특정 선장 Hanafuda의 말입니다.

사실 하나후다는 카드 놀이, Nintendo가 지난 세기에 출시 한 것입니다. Sanchez는 이 텍스트에 대한 포인터가 있다고 말합니다. 이는 일부 코드가 이를 사용하고 있음을 의미합니다. 이것이 작동하는 부활절 달걀일 가능성이 높습니다.

또 다른 재미있는 점은 게임이 있는 디렉터리에 "pixelart" 폴더를 만들고 거기에 PNG 이미지를 넣으면 콘솔이 유휴 상태일 때 배경에 표시된다는 것입니다. 기사의 시작 부분부터 비디오를 시청하여 우리가 말하는 내용을 이해하는 것이 좋습니다.

그리고 일반적으로 콘솔의 메모리는 편집할 수 있는 다양한 그림, 사운드, 스크립트로 가득 차 있습니다. 따라서 원하는 경우 콘솔을 많이 펌핑하는 것이 가능합니다.

결과

아마도 이것은 퍼블리셔에게 손실이 아닌 이익을 가져다주는 최초의 콘솔 해킹일 것입니다. 결국, 그들은 게임을 별도로 판매하지 않으며, 콘솔 자체는 이제 단순히 매장 진열대에서 휩쓸려 갑니다. 닌텐도는 해킹이 일어나기만을 초조하게 기다리고 있는 것 같아 아무런 보호 조치도 취하지 않았습니다. 그래서 나는 그들이 나에게 파업을 주지 않기를 바랍니다. 그리고 그들은 나를 고소하지 않을 것입니다. 특히 제가 게임을 배포하기 전까지는 불법적인 일을 하지 않는 것 같기 때문입니다.

업데이트:가장 중요한 것을 잊어버렸어요. 다음은 hakchi2 및 해당 소스 코드에 대한 링크입니다.

아시다시피, 이번 달이 마무리되면서 2017년 1월 초에 관심을 갖고 있던 모든 사람을 기쁘게 하고 흥분시켰던 모든 게이머를 위한 좋은 소식을 마침내 기억해 보는 것이 어떨까요? 그리고 그것은 Nintendo 자체에도 전혀 해를 끼치 지 않았습니다. 왜? 지금 말씀 드리겠습니다. 일반적으로 정확히 설날 연휴 기간 동안 휴가이웃으로부터, 러시아 해커 NES Classic Mini는 해킹당했습니다. 이는 CIS에서 Dendy 등으로 알려진 클래식 8비트 Nintendo Entertainment System 콘솔의 작은 버전입니다. 다른 블로그 기사에서는 CIS에 출시된 직후에 글을 썼습니다. 그러나 여기서 우리는 역행하는 사람들의 눈에도 콘솔의 가치를 크게 높이는 해킹에 대해 이야기하고 있습니다. 왜냐하면 이 방법은 소프트웨어로 간주되며 셋톱박스 내부에 대한 개입이 전혀 필요하지 않습니다.

사전 설치된 30개(대부분 훌륭하지만) 게임의 제한을 우회하고 불멸의 8비트 클래식 라이브러리에 있는 거의 모든 게임, 즉 영혼이 부족했던 바로 그 게임을 콘솔에 "꿰매는" 것이 가능해진 것은 해킹이었습니다. 완전한 행복.

따라서 해커 madmonkey는 대부분의 작업을 직접 수행하는 수동 해킹 방법을 만들고 설명했습니다. Cluster 해커는 나중에 이 모든 것을 최적화하여 초기 해킹 자체의 "문제가 있는" 모든 부분을 수행하고 후속 게임 로딩과 콘솔에 대한 커버를 크게 단순화하는 인터페이스가 있는 유틸리티를 만들어 다음을 수행할 수 있도록 했습니다. 목록을 직접 맞춤설정하세요. 실제로 아직 madmonkey의 방법을 사용하여 NES Mini를 수동으로 플래시하지 못했다면 Cluster의 방법에는 다음 사항만 필요합니다. 간단한 지침 gbx.ru 포럼에서):
1. 프로그램을 실행하고 "커널 - 커널 덤프"를 클릭한 후 화면의 지시를 따릅니다.
2. “커널 - 플래시 패치 커널”을 클릭하세요.
3. 게임을 추가하고, 원하는 대로 설정을 조정하고, 표지를 선택하세요.
4. 선택한 게임을 NES Mini에 업로드하세요.

이제 NES Mini에서 게임을 쉽게 맞춤 설정할 수 있습니다.
이 프로그램은 설치가 필요하지 않으며, 편리한 장소에 압축을 풀기만 하면 됩니다. 이제 두 번의 클릭만으로 게임을 추가하고 필요한 경우 해당 매개변수(플레이어 수, 출시 날짜 등)를 변경할 수 있습니다. 이 프로그램은 콘솔로 수행해야 할 작업을 명확하게 설명하고 드라이버 설치, 커널 자체 덤프, 패치 자체 및 바느질을 쉽게 도와줍니다.

그리고 Cluster의 자동화된 펌웨어 방식을 사용하는 hakchi2 프로그램은 많은 작업을 수행할 수 있습니다. 여기서 게이머들 사이에 잘 ​​알려진 gbx.ru를 다시 한 번 인용하는 것이 적절할 것입니다.

— 쉽게 게임을 추가하고 게임 라이브러리를 정리할 수 있습니다.
- 플레이어 수, 출시 날짜 등 게임 매개변수를 쉽게 변경할 수 있습니다.
— 고급 사용자의 경우 게임 시작 매개변수를 변경할 수 있습니다.
- 자동으로 Google 게임 커버를 사용할 수 있습니다.
— 데이터베이스의 잘못된 ROM 헤더를 자동으로 수정합니다.
— 게임을 추가할 때 해당 매퍼가 지원되는지 확인합니다.
— 필요한 경우 표준 30개 게임을 제거할 수 있습니다.
- 러시아어로 된 인터페이스가 있으며 영어;
— 다른 매퍼와 함께 게임을 강제로 추가하여 해당 게임이 실행되지 않을 것이라고 경고할 수 있습니다.
— 97개 게임의 제한에 대해 경고합니다.
— 두 사람에 대한 특정 유형의 게임을 지정할 수 있습니다.

또한 프로그램은 코어 덤프의 MD5 합계를 확인하고 일치하지 않으면 경고를 표시합니다.

다음은 도움과 시연을 위한 간단한 펌웨어 버전이 포함된 비디오입니다.

영상은 내용 면에서도 약간 구식입니다. Youtube의 동영상 아래 댓글에서 앞서 언급한 Cluster는 다음과 같이 언급했습니다. “... hakchi2의 경우 Mario 저장이 필요하지 않습니다 🙂 그리고 그녀는 Google에서 직접 사진을 찍을 수 있습니다. 그리고 Battle City는 아마도 비뚤어진 럼주에 의해 지원될 것입니다. 그리고 최신 버전드라이버 자체를 즉시 설치하는 Zadig의 수정 사항이 있습니다 ... "

그리고 한 가지 더: 혹시라도 펌웨어 제작자는 "플래시 커널 펌웨어 단계에서 콘솔을 벽돌로 바꿀 위험이 있습니다"라고 경고했지만 지금까지 그러한 사례는 발견되지 않았습니다. 예, 게임은 97개로 제한됩니다(더 많은 경우 C8 오류로 인해 충돌이 발생함). 스포츠에 대한 관심을 위해 원하는 경우 더 많은 게임을 던질 수 있지만 동일한 커버가 없으면 강등 가능성이 유지됩니다. 게임은 미국 지역(Roma 이름에 인덱스(U)가 있음)에서 사용해야 합니다. 사전 설치된 모든 게임은 유럽 버전의 NES Mini에서도 NTSC(즉, 미국) 버전입니다. 일부 게임은 특정 장소에서 실행되지 않거나 정지되지 않습니다. 예를 들어 동일한 "Robocop 3"과 "Battletoads"가 있습니다. 일부에는 그래픽 아티팩트가 있습니다. 그러나 그러한 게임은 여전히 ​​​​소수에 불과합니다.

그리고 이 미니 콘솔의 에뮬레이터는 기본적으로 사전 설치된 30개의 게임을 지원하도록 설계되었다는 사실을 잊지 마십시오. 하지만... 아마도 Nintendo 직원은 결국 누군가가 자신의 레트로 콘솔을 해킹할 것이라는 사실을 깨달았을 것입니다. 따라서 특히 그러한 사람들의 경우 콘솔의 내부 파일에 남겨졌습니다(이 경우 일본 시장용으로 출시된 아날로그의 경우 - 패미컴 미니) 비밀 메시지. 위협이나 화난 메시지는 없습니다. 회사 직원들의 메시지는 꽤 평화로운 것으로 나타났습니다.

“하나후다 선장입니다. 3... 2... 1에서 에뮬레이션을 시작합니다. 이 보석을 만드는 데 많은 노력과 눈물, 셀 수 없는 시간이 들었습니다. 그러니 이곳을 깨끗하게 유지하고 모든 것을 부수지 마십시오! 안녕! 하나후다 대장'이라는 숨겨진 메시지를 읽어준다.

NES 커뮤니티는 최근에 몇 가지를 발견했습니다. 좋은 방법, NES Classic에 설치할 수 있습니다. 미니 뉴계략. 안타깝게도 이 작은 콘솔에는 심각한 결함이 있습니다. 게임을 녹화할 수 없으며 처음에 이미 녹화된 내용만 재생할 수 있다는 것입니다.

오래된 게임을 플레이하는 데 지쳤다면 NES Classic Mini에 새 게임을 추가하는 매우 쉬운 방법이 있습니다. Reddit의 "iLLNiSS" 사용자의 노력 덕분에 "hakchi2"라는 소프트모드를 사용하여 새로운 게임을 쉽게 녹화할 수 있습니다.

참고 사항: 이 수정으로 플래시할 때 콘솔이 손상된 경우 우리는 어떠한 책임도 지지 않습니다. 콘솔을 수정하고 있다는 점을 이해해야 하며 이 문제에 대한 주의는 언제나 환영합니다. 그러므로 이 작업을 수행할 때 발생하는 위험은 귀하의 책임입니다.

이제 가장 흥미로운 부분인 소프트모드 설치 및 콘솔 펌웨어 플래시로 넘어가겠습니다.

필수 소프트웨어:

실제로 그게 전부입니다. 엄청난 수의 프로그램을 다운로드할 필요가 없습니다. 그리고 이미 Microsoft . 넷 프레임 워크 3.5라면 이제 남은 것은 학치2뿐입니다.

NES Classic Mini에 새 게임을 설치하는 방법

  • 시작하려면 위 링크에서 "hakchi2" 수정본을 다운로드하세요.
  • 그런 다음 다운로드한 아카이브의 콘텐츠를 콘솔의 새 폴더에 압축을 풉니다.
  • "hakchi2.exe" 파일을 실행하세요.
  • 콘솔에 있는 모든 게임 ROM을 살펴보고 어떤 게임이 계속 기억에 남을 것인지, 어떤 게임이 잊혀질 것인지 결정하세요. 일반적으로 다음부터 시작하세요. 자유 공간장치에서.
  • 미리 다운로드한 게임을 추가하려면 “게임 추가” 버튼을 클릭하세요. 형식이 .nes와 일치해야 함을 기억하세요.
  • 마이크로 USB를 사용하여 NES Classic Mini를 컴퓨터에 연결합니다. 콘솔이 완전히 꺼졌는지 확인하세요.
  • 이제 FEL 모드에서 로드해야 합니다. 이렇게 하려면 다음 단계를 수행하십시오.
    • 콘솔 전면에 있는 재설정 버튼을 길게 누릅니다.
    • 그런 다음 즉시 전원 버튼을 누르고 잠시 동안 누르십시오.
    • 몇 초 정도 기다린 후 재설정 버튼을 놓습니다.

      참고 사항: 콘솔이나 컴퓨터에서 알림이 표시되지 않습니다. 단계를 계속 진행하세요.

  • "hakchi2" 유틸리티에서 "NES Mini와 게임 목록 동기화" 버튼을 클릭하면 완료됩니다. FEL 모드로 올바르게 부팅할 수 없는 경우 이에 대한 알림이 표시됩니다.
  • 마지막으로 NES Classic Mini 콘솔을 재부팅하고 설치한 게임을 즐기세요.