N64『ゴールデンアイ 007』がR36Sでネイティブ動作!ARM64版Alpha公開、PortMasterにも対応

N64『ゴールデンアイ 007』がR36Sでネイティブ動作!ARM64版Alpha公開、PortMasterにも対応

NINTENDO64を代表するFPSのひとつ『GoldenEye 007(ゴールデンアイ 007)』を、低価格なARM系携帯ゲーム機「R36S」でネイティブ動作させるプロジェクトが進められています。

公開されているのは、NINTENDO64のエミュレーターを利用してゲームを動かすものではなく、N64版『GoldenEye 007』のデコンパイルによって再構築されたコードをベースに、AArch64 Linux向けのネイティブアプリケーションとして動作させるものです。

プロジェクトは現在Alpha段階ですが、すでにR36S上でメニューやイントロ、ステージ内の描画、ゲームプレイ、コントローラー入力などが動作するところまで開発が進んでいます。

9月24日にはAlphaテスター向けのビルドも公開され、PortMasterのAutoInstallerを利用したR36Sへの導入方法も案内されています。R36S関連メディアのRetro Handheldsでも、実機を利用した導入と動作確認が行われています。

●Goldeneye 007 N64 – ARM64 Port Alpha Release Links.
https://www.reddit.com/user/Appropriate_Comb1486/comments/1woso74/goldeneye_007_n64_arm64_port_alpha_release_links/

N64エミュレーターではなくARM64でネイティブ動作

今回のプロジェクトで重要なのが、「R36SのNintendo 64エミュレーション性能が向上した」という話ではないことです。

通常、R36Sなどの携帯ゲーム機でNINTENDO64タイトルを動かす場合は、N64エミュレーター上でゲームのROMを実行します。これに対して今回のARM64版では、再構築された『GoldenEye 007』のコードをAArch64 Linux向けにビルドし、SDL2やOpenGL ES 3を利用して動作させています。

つまりNINTENDO64本体のCPUやグラフィックス環境全体をソフトウェアで再現するのではなく、再構築されたゲームコードを現代のARM64環境へ移植して実行するというアプローチです。

Retro Handheldsでも今回のR36S版について、AArch64 Linux/SDL2/OpenGL ESアプリケーションとしてネイティブ動作するものと紹介しています。

大元はN64版『GoldenEye 007』のデコンパイルプロジェクト

今回のARM64版が突然ゼロから作られたわけではありません。その土台になっているのが、長年進められてきたN64版『GoldenEye 007』のデコンパイルプロジェクトです。

大元となる「KholdFuzion / goldeneye_src」はGitLabで公開されており、2016年から開発が続けられている『GoldenEye 007』の再コンパイル可能なデコンパイルプロジェクトです。

また、GitHub上では「n64decomp/007」としてミラーも公開されています。こちらのREADMEにも、GitLabで公開されている「goldeneye_src」のミラーであることが明記されています。

このデコンパイルプロジェクトでは、ゲームを構成するCコードなどが再構築されており、US版、日本版、欧州版のROMをビルドできる環境が整備されています。ただし、ゲームを構成するすべてのアセットがリポジトリに含まれているわけではなく、ビルドには利用者自身が用意したゲームデータが必要です。

さらにPC向けネイティブ移植「GoldenEye 007 PC Port」が登場

このデコンパイル版をベースに、2026年にはPC上で直接動作する「GoldenEye 007 PC Port」も開発されています。

GitHubで公開されている「jkdansereau/goldeneye-pc-port」は、N64版『GoldenEye 007』のデコンパイルコードを利用し、WindowsやLinuxなどのPC環境でネイティブ動作させるプロジェクトです。

同プロジェクトでは、ゲーム本体のコードを現行PC向けにコンパイルしつつ、映像や音声、入力、タイマー、セーブストレージなど、Nintendo 64固有のハードウェア部分を現行環境向けの処理へ置き換えています。

なお、すべてが完全に「エミュレーションなし」というわけではなく、PC PortではNintendo 64のRSPに相当する処理の一部をソフトウェアでエミュレーションしています。その一方で、ゲームコードそのものについては再構築されたソースコードからネイティブにコンパイルされる仕組みになっています。

今回のR36S向けARM64版では、この『GoldenEye 007』デコンパイルとPC Portの成果をベースに、さらにAArch64/OpenGL ES環境への対応が進められています。

つまり大まかな流れとしては、

N64版『GoldenEye 007』
↓
GoldenEye 007デコンパイル
↓
GoldenEye 007 PC Port
↓
R36S向けARM64/GLES版

という系譜になります。

R36SとdArkOSREをターゲットに開発

現在のARM64版で主なターゲットになっているのはR36Sで、実行環境にはdArkOSRE/PortMasterが利用されています。

CPUアーキテクチャはAArch64で、グラフィックスにはSDL2とOpenGL ES 3を使用。開発中の「ARM-GE」は、『GoldenEye 007』をR36S上で動作させるだけではなく、N64デコンパイルプロジェクトを現代のARM64環境へ移植するための再利用可能なツールチェーン構築も目的としています。

現在までにネイティブAArch64ビルド、GLESレンダリング、メニューとイントロの描画、ステージ内の描画とゲームプレイ、コントローラー対応、PortMaster向けパッケージなどが実装されています。

さらに、N64時代の32bitコードを64bit環境に移植する際に問題となるポインターやデータ構造、バイナリレイアウトなどを検証する仕組みも開発されています。

ゲームデータは含まれず、自分でUS版ROMを用意する必要あり

注意しておきたいのが、今回公開されているAlpha版には『GoldenEye 007』のROMやゲームアセットなど、著作権で保護されたゲームデータは含まれていないことです。

実際に動作させるには、利用者自身が適切に入手したNINTENDO64版『GoldenEye 007』のNTSC-U版ROMを用意する必要があります。

指定されているSHA-1は、

abe01e4aeb033b6c0836819f549c791b26cfde83

となっています。

この値は、元となっている『GoldenEye 007』デコンパイルプロジェクトがUS版ROMとして指定しているSHA-1とも一致しています。

初回起動時には、ユーザーが用意したROMをもとに必要なデータがローカル環境で生成されます。そのため、ゲーム本体のデータをARM64版プロジェクトからダウンロードする仕組みではありません。

PortMasterのAutoInstallerを利用したAlpha版も公開

9月24日に公開されたAlphaテスター向けビルドでは、PortMasterのAutoInstallerを利用したインストール方法も案内されています。

R36SではAlpha版のパッケージをPortMasterのAutoInstaller経由で導入し、その後指定されたディレクトリへ利用者自身が用意した『GoldenEye 007』のROMを配置するという流れになっています。

Retro Handheldsでも実際にこの方法でR36Sへ導入しており、dArkOSまたはR36S向けのdArkOSREが現在の動作条件になっていると説明しています。

via.Reddit

ABOUT US
アバター画像
retrogamer