Nintendo classic mini에서 게임을 다운로드하는 방법. 9


전문 펌웨어 및 게임 다운로드 닌텐도 SNES첼랴빈스크의 MINI.
모든 작업이 보장됩니다. 우리 전문가들은 이 서비스에 대한 모든 질문에 항상 기꺼이 답변해 드릴 것입니다!


닌텐도 SNES 클래식 미니- 향수를 불러일으키는 게이머를 위해 디자인된 컬트 Nintendo 콘솔의 작은 복사본입니다. 이 콘솔은 동일한 청중을 겨냥한 작년 NES Classic Mini의 후속 제품입니다. 그러나 이것은 유일한 것이 아닙니다 공통적인 특징두 개의 시스템. 결과적으로 콘솔은 거의 동일한 "채우기"를 가지고 있습니다. 장치를 열면 내부 보드가 서로 동일하다는 것을 알 수 있습니다. 심지어 명세서- 그리고 그것들은 일치합니다. 이는 신제품이 이전 제품과 동일한 방식으로 해킹당했음을 의미합니다.

작년에 출시된 NES Classic Mini는 큰 인기를 얻었으며 몇 달 만에 해킹당했습니다. 사람들은 재출시 버전에 공식적으로 포함되지 않은 게임을 네트워크에서 "걷는" ROM을 사용하여 플레이하기를 원했습니다. 새 콘솔은 출시 전날 더욱 빠르게 해킹당했습니다. 테스트 사본 슈퍼 닌텐도 Classic Mini는 신제품에 대해 자세히 알아보는 언론 담당자에게 보내졌습니다. SNES Classic Mini 시스템에 새로운 게임을 추가하기 위해 NES Classic Mini와 동일한 콘솔 파일 편집 프로그램이 사용되는 것으로 나타났습니다.

Nintendo SNES MINI를 해킹한 덕분에 게이머들은 시리즈 팬들이 20년 동안 꿈꿔 왔던 반신화적인 Star Fox 2를 포함하여 출시된 모든 게임을 마침내 시험해 볼 수 있는 기회를 갖게 되었습니다. 이 게임은 몇 년 전에 인터넷에 게시되어 에뮬레이터에서 실행되었지만 프로토타입에 불과했습니다. 해커들은 SNES Classic Mini용으로 수정된 게임의 정식 버전을 공유했습니다.

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 콘솔을 재부팅하고 설치한 게임을 즐기세요.

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

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입니다.

I. Nintendo Classic Mini 란 무엇입니까? Super Nintendo Entertainmen System

SNES mini는 90년대 초 Nintendo가 출시한 유럽 Super Nintendo 콘솔의 소형 복사본입니다. 콘솔은 Linux에서 실행되며 공식 에뮬레이터를 사용하여 21개의 게임을 플레이합니다. SNES mini는 정품 카트리지를 지원하지 않으며 두 개의 컨트롤러가 장착되어 있고 마이크로 USB로 전원이 공급되며 HDMI 표준을 사용하여 TV에 연결됩니다.

다른 지역의 셋톱박스는 원본과 일치하는 디자인을 가지고 있습니다.

키트에는 다음이 포함됩니다.

  • 콘솔
  • Wii 리모컨과 같은 커넥터가 있는 풀사이즈 컨트롤러 2개
  • USB-마이크로 USB 케이블
  • HDMI 케이블
  • 종이 지침

III. 명세서

콘솔의 내부는 NES mini에 사용된 것과 동일합니다. 오직 소프트웨어변경되었습니다.

  • SoC: Allwinner R16(CPU: 쿼드 코어 Cortex A7, 비디오 프로세서: Mali400MP2)
  • RAM: SKHynix(256MB DDR3)
  • 플래시 메모리: Spansion 512MB SLC NAND 플래시, TSOP48
  • 전원 관리 컨트롤러 PMU: AXP223

IV. 콘솔

콘솔의 디자인은 크기, 슬롯 및 포트를 제외하고 원래 콘솔과 거의 동일합니다. 카트리지 슬롯이 닫혀 있고 셋톱박스는 에뮬레이션에서만 작동하므로 원래 카트리지를 사용할 수 없습니다. 전면에는 컨트롤러용 포트 2개가 플러그로 숨겨져 있으며 원래 포트의 윤곽이 남아 있습니다.

~에 후면마이크로 USB 및 HDMI 포트에 대한 입력이 있습니다(전원 공급 장치용 커넥터, RF 안테나 입력 및 독점 멀티 출력 플러그용 커넥터 대신).

V. 컨트롤러

이번에 Nintendo는 패키지에 두 개의 컨트롤러를 포함했습니다. 내부 구성 요소 및 비문에서만 원본과 다릅니다. 케이블 길이는 정품보다 짧습니다.

6. 사용하는 방법

연결

  • 컨트롤러 연결
  • 마이크로 USB 쪽이 있는 케이블을 셋톱박스에 연결하고 일반 입력은 TV(USB 커넥터!), 컴퓨터 등에 연결합니다. 공식 어댑터를 구입하거나 (스마트폰에서) 다른 어댑터를 사용할 수도 있습니다. 이런 경우에는 전원 콘센트에 연결하세요.
  • 셋톱박스를 TV에 연결하기 HDMI 케이블. TV를 적절한 입력으로 전환하고 왼쪽 레버를 사용하여 콘솔을 켭니다.

시작하다

처음 실행한 후에는 언어를 선택해야 합니다. 이 이후 및 후속 실행에서는 즉시 게임 목록으로 이동합니다. 십자선 화살표를 사용하여 스크롤하고 START 버튼을 사용하여 실행할 수 있습니다. 홈 화면 디자인은 세 지역 모두 다릅니다. 게임 목록은 콘솔의 일본어 버전에 따라 다릅니다.

게임 표지에는 다음 기호가 사용됩니다.

  • 컨트롤러 및 1P: 1인용 게임
  • 2개의 컨트롤러 및 2P: 2인이 교대로 게임을 즐길 수 있습니다.
  • 2개의 컨트롤러와 금색 글꼴의 2P: 동시에 2명이 즐길 수 있는 게임
  • 카트리지 및 연필: 게임 지원 내부 보존(원래 카트리지는 배터리를 사용했습니다)
  • 검은 공: 빈 저장 슬롯
  • 파란색 공: 저장 슬롯
  • 주황색 공: 실수로 지워지지 않도록 보호되는 저장 공간이 있는 슬롯

일시 휴업

왼쪽 레버를 이용해 셋톱박스를 끌 수 있습니다.

재설정(메인 메뉴로 나가기)

재설정은 오른쪽에 있는 RESET 버튼을 사용하여 수행됩니다. Wii 클래식 컨트롤러를 사용하는 경우 홈 버튼을 눌러 메뉴로 나갈 수 있습니다.

게임 재설정

L+R+선택+시작 조합을 사용하여 게임을 재설정할 수 있습니다. 이 경우 게임을 종료하지 않고 다시 시작하기만 하면 됩니다.

보존

콘솔을 재설정한 후(메인 메뉴로 나가기) 아래 버튼을 눌러 서스펜션 포인트가 있는 영역(서스펜트 포인트 목록)으로 이동합니다. 빈 슬롯을 선택하고 Y를 눌러 현재 게임 순간을 저장하세요. 다른 저장 내용을 덮어쓰려면 Y 버튼을 길게 누르세요. 아래 버튼을 누르면 저장 내용을 보호할 수 있습니다. 그 후에는 저장에 잠금이 나타납니다. 아래쪽 버튼을 다시 누르면 제거할 수 있습니다.

게임을 선택하고 아래를 눌러 저장으로 이동하세요. 그런 다음 Y를 눌러 선택한 저장 시점에 게임을 시작합니다.

일시정지 지점 관리

슬롯을 선택한 후 선택을 클릭하면 왼쪽이나 오른쪽으로 이동할 수 있습니다. 휴지통 아이콘을 선택하여 저장 내용을 삭제할 수 있습니다.

되감기

이것은 절대적으로 새로운 기능생성된 저장에서 게임을 되돌릴 수 있습니다. 특히 나쁜 장소(틈 위나 캐릭터가 죽기 전)에 저장할 때 유용합니다. X를 눌러 되감기 편집기를 시작한 다음 L과 R을 사용하여 되감습니다. Y 버튼을 사용하여 일시 정지하고, START 버튼을 사용하여 선택한 위치에서 시작할 수 있습니다.

참고: RPG 게임에서는 최대 4~5분까지 되돌릴 수 있지만 다른 게임에서는 40~50초만 되감을 수 있습니다.

게임 정렬

선택 버튼을 사용하여 게임 목록을 정렬할 수 있습니다. 제목, 게시자, 최근 사용, 세션 수, 동시 2인 기준, 교대로 2인 기준, 1인 기준.

Ⅶ. 게임 목록

~에 내부 저장소다음 게임이 콘솔에 설치되어 있습니다(알파벳순).

  1. 콘트라 III: 에일리언 워(1994)
  2. 동키콩 컨트리(1994)
  3. 어스바운드(1995)
  4. F-제로(1991)
  5. 파이널 판타지 III (1994)
  6. 커비 슈퍼스타(1996)
  7. 커비의 드림 코스 (1995)
  8. 젤다의 전설: 링크 과거 (1992)
  9. 메가맨 X (1994)
  10. 마나의 비밀 (1993)
  11. 스타폭스 (1993)
  12. 스타폭스 2 (2017)- 이 게임은 스타폭스 게임의 첫 번째 레벨을 완료한 후에 시작됩니다.
  13. 스트리트 파이터 II 터보: 하이퍼 파이팅(1993)
  14. 슈퍼 캐슬바니아 IV (1991)
  15. 슈퍼 고스트 앤 구울즈(1991)
  16. 슈퍼 마리오 카트(1992)
  17. 슈퍼 마리오 RPG: 일곱 별의 전설 (1996)
  18. 슈퍼 마리오 월드(1991)
  19. 슈퍼 마리오 월드 2: 요시 아일랜드(1995)
  20. 슈퍼 메트로이드(1994)
  21. 슈퍼펀치아웃!! (1994)

이 목록의 모든 게임이 켜져 있습니다. 영어미국 버전입니다. ROM 자체는 VC 게임에 적용된 형식을 사용합니다.

다음은 게임 중 하나의 짧은 비디오입니다.

Ⅷ. 설정

화면

화면 설정

  • CRT 필터: 이미지에 특수 필터(흐림 및 선)를 추가하여 CRT TV 화면과 유사하게 만듭니다.
  • 4:3: 이미지는 표준 너비입니다.
  • 완벽한 픽셀: 모든 픽셀의 너비와 높이가 동일합니다.

뼈대

12개의 프레임으로 화면 측면을 꾸밀 수 있습니다. 그들 중 일부는 게임 색상에 맞게 색상을 조정할 수 있습니다.

설정

  • 내 게임 플레이 데모: 데모가 플레이될 때 마지막 저장이 사용됩니다.
  • 클래식 데모: 표준 데모
  • 화면 번인 감소: 화면 번인 아티팩트를 방지하기 위해 화면 어둡게 하기(버튼을 누르지 않으면 1시간 후에 켜짐)

아무 버튼도 누르지 않으면 1분 후에 데모 모드 이미지가 켜집니다.

언어

이 메뉴에서는 메인 메뉴의 언어를 다시 변경할 수 있습니다. 이 설정은 게임 언어에 영향을 주지 않으며 계속 영어를 사용합니다.

법률 정보

다양한 권리정보.

지침

QR코드를 사진으로 찍으시면 게임설명으로 이동하실 수 있습니다.

아니면 이 링크를 따라가셔도 됩니다. 러시아어에는 지침이 없습니다.

Ⅸ. 새로운 게임 추가

새 게임을 추가하거나 여러 게임을 추가하려면 편리한 옵션(예: 버튼 조합을 사용하여 메뉴에 액세스) Alexey Avdyukhin(클러스터)이 만든 이미 잘 알려진 hackchi 유틸리티가 필요합니다(이 프로그램은 사용자 madmonkey가 만든 유틸리티도 사용합니다).

이 프로그램은 다음 사이트에서 다운로드할 수 있습니다: https://github.com/ClusterM/hakchi2/releases

모든 게임이 내부 에뮬레이터에서 지원되는 것은 아닙니다. 여기에 게임 및 호환성 정보의 부분적인(100% 정확하지는 않음) 목록이 있습니다. 게임 호환성

ROM을 필요한 형식으로 변환할 필요는 없으며 프로그램이 자동으로 변환해 줍니다.

지원되지 않는 게임을 사용하려면 Retroarch 모듈을 설치할 수 있습니다(자세한 지침 및 다운로드는 이 페이지 참조). 명령줄을 통해 실행 인수에 매개변수를 추가합니다(hackchi에서는 게임 설명 영역에 해당 위치가 있습니다). --레트로아크(마지막에 추가하고 이미 있는 것과 분리하기만 하면 됩니다. 기존 코드공간).

물론 다른 모듈(에뮬레이터 또는 핵)을 설치할 수도 있습니다.

예를 들어 다음 에뮬레이터를 설치할 수 있습니다.

  • NES(fcumm, 네스토피아)
  • SNES/슈퍼패미콤(snes9x2010)
  • 게임보이, 게임보이 컬러 (gambatte_libretro)
  • 게임보이 어드밴스(MGBA)
  • 세가 마스터 시스템, 메가 드라이브, 제네시스, 게임 기어(genesis_plus_gx)
  • 세가 마스터 시스템, 메가 드라이브, 제네시스, 게임 기어, 세가 32X(피코드라이브)
  • 아타리 2600(스텔라)
  • PC 엔진/TurboGrafx 16(mednafen_pce_fast)
  • 아케이드 머신(fb_alpha 및 fb_alpha_cps2)

SNES mini에는 몇 개의 게임이 들어갈 수 있나요?

이미 설치된 게임을 합치면 콘솔에 125개의 게임을 배치할 수 있었고 여전히 약 20MB가 남아 있었습니다.

51701 총 6 오늘

그런 다음 게임의 다양한 매개변수를 변경할 수 있게 만들었고 표지를 선택하여 자동으로 누르는 기능을 추가했으며 자동 검색표지를 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 및 해당 소스 코드에 대한 링크입니다.