LAKKA

Last-modified: 2020-09-12 (土) 22:17:30

LAKKA

review ver.21-Dec-2016 21:38

lakka.png

LAKKAはRetroarchを専用のハード(ノートPCとか)で動かすことができるエミュレーターOS。設定にはPuttyを使ってSSH接続することも可能。2020年時点では似たようなエミュレーションOSとしてbatocera.linuxややrecalBoxなどが登場してきて初期設定済みのこれらの便利さに比べるとイマイチLAKKAの有用性を感じなくなったがLibretro公式のエミュレータランチャーとしての信用度は高い。
 
動作速度はPentumM763MHz/RAM1GBで動かしたx86バイナリはむちゃくちゃ遅くて1FPSとか2秒で1コマとかそういう遅さ。GUIからそういう遅さで全く使い物にならなかったけれども、Core2Duoマシン(CPU2.4GHz/RAM3GB)にすると驚くほど快適だった。所感ではメモリがある程度ないとスワップしまくるイメージ。最低限必要なマシンスペックがあるのかもしれない。またLAKKAでは物理CD-ROMをマウントすることができる。これはPSやSSのCDを挿入するとエミュレータ側がそこからデータを読み取りプレイできるという真のマルチコンソール機として利用できる機能である、すげー。ありがたや。もちろんISOなどイメージ化したものに比べるとアクセス速度は格段に遅いがこの一生懸命CDにデータを取りに行く時間の遅さが昔のゲーム機っぽくていい。ダライアスに3画面のつなぎ目を求めるのと同じくらいの懐古趣味の極みを堪能できる。

Lakka 2.3.2 2020.1.22

Retroarch1.8.4ベース。ラズパイ4に対応したらしい。LAKKAは並行してLAKKA3.0のプロジェクトが進行しているらしく、いままでの2.x系はエミュレータコアの入れ替えや、細かなバージョンアップで保守されていく感じになるのかな?

Lakka 2.3.1 2019.10.6

久しぶりにLakkaを更新してみると、Retroarch1.7.8ベースになっていた。あと待ち焦がれた物理DISCに対応!!!PSのCDを入れてコア(Rearmedなど)を選択。「ディスクをロード」すると、動く!PSのCDを直接読み込んでくれる!!XAの再生などで追いついていないせいかBGMの再生がやや途切れるが、以降のバージョンアップに超期待。DCのGD-ROMなどはドライブが用意できないため物理DISCの起動は難しいと思われ。

Lakka 2.2.2 2019.3.14

RetoroArchのver.1.7.6相当にアップデートされた。

Lakka 2.2 Stable

2018.12.24リリース。クリスマスバージョン。
Many menu improvements (like intuitive icons for input bindings)
A new alternative menu called Ozone made by Natinusala

  • Almost all libretro cores updated
  • PPSSPP fixed
  • New device: TinkerBoard S
  • New devices: RK3399 and ROC-RK3328-CC
  • Kernel update for the Odroid XU4
  • Joypad binding fixes

Lakka 2.1.1 Stable

2018/8/12リリース。Retroarch 1.7.3ベース。ラズパイ3への対応。MAME2003,SNES9x2005への新規対応。Citra,PPSSPPのバージョンアップなど。久しぶりの公式の更新、マイナーアップデート。

Lakka 2.1 Stable

2017年11月に2.1Stable版(安定版)が出た後から半年以上音沙汰がなくなっている。
しかし nightly Buildsでは、コツコツ更新があるようなので心配ないかも。
http://nightly.builds.lakka.tv/

Lakka 2.1 RC5 2017-10-11

Changelog
    LibreELEC 8.2 Bêta merged
        Kernel updates for PC, RPi and more
        New wifi drivers and fixes
        SAMBA 4
        RPi firmware updates
        Switch back to OpenSSL
    RetroArch updated to 1.6.7
        RetroArch is now able to run Dolphin without having to manually switch to shared context
        Scanner fixes
        Favorites ROMs tab
        UI Performance improvements
        Playlist entries can be renamed
        Updated translations
        Countless minor fixes
    All the libretro cores updated to their latest version. A few notable changes:
        Important Atari 800 improvements
        Important Dolphin update, improved performance
        Reicast now builds for i386 and ARM (but still unable to run ROMs)
        SameBoy fixed
        FB Alpha update
        Important Beetle-PSX update
        New game engine by Rob Loach: ChaiGame
        Important Citra update
        Nestopia fixed
    New Rockchip based boards supported (experimental)
        ASUS TinkerBoard
        MiQi
        ROCK64
        RK3328

Lakka 2.1 RC2 2017-06-19

久しぶりにLAKKAを起動したら起動しなくなっていたのでせっかくなので最新版に更新。ジョイパッドのコンフィグがなぜかオートで利かなくなっており、適当に全部同じキーに設定したらにっちもさっちもいかなくなって詰む。更新内容ではひとつ前のrc1からx68,pc98のサポートがなされた模様。現在のバージョンではなぜかスタートボタンのアサインがうまく機能していないので注意。STARTに割り振ったボタンと同時に△ボタンを押せば無理やり設定できないことはない。

27-Mar-2017 18:08

しばらく更新を確認してなかったけれども、久しぶりに更新を確認。すでにRC4ということで正式リリース間近のものが上がっていた。http://le.builds.lakka.tv/Generic.x86_64/

21-Dec-2016 21:38

クリスマス用の雪が降る背景が追加された。これまで毎月のようにリリースがあったものが、以降翌年2月になれど更新がない。これ以降少なくとも2017年3月時点で更新が途絶えている。ここまで精力的にバージョンアップが繰り返されてきただけに急に寂しくなった。

04-Nov-2016

起動に失敗する件が修正された。日本語環境でコンテンツが表示されるようになっている。Xボタンによるコンテンツの検索が実装されたことでかなりファイルが探しやすくなった。ビデオ関連のスキャンに失敗する件も修正されているがコンテンツとしての認識はまだされない。

27-Oct-2016

なんと日本語フォントに対応。ビデオやゲームの日本語名を表示できるようになった。これは大きな進化。しかしなぜか各エミュレータからコンテンツがランチできなくなっている。解決方法は不明。とりあえずアップデーターから更新できる1021版にダウングレードすることで起動できない問題は元に戻せる(日本語環境はなくなるが)

 
※快適環境はCore2Duo E8700/RAM3GB
 NES~PSXクラスまではラクに動く。PSPは3Dものは重いが2Dものは60FPS,DCは平均20~30FPS程度

※激遅環境はPanasonicのT-4(PentiumM753MHz/RAM1GHz)
 Emu-OSであればNES~SFC、MD、GBAクラスのエミュレーターが快適に動作する(PSX/N64はx)

※eeepc900でもLAKKAは重い

PC仕様

CPUCore2Duo P8700 2.53GHZ
RAM3072MB
VIDEOGeForce9300MGT(400MHz/256MB)

WindowsXPで同じエミュレーターを動かした時の所感としては、ほぼ同じかやや遅い。軽量Linuxになっている分速そうなのだが、WindowsにおけるDirectXが速いのかもしれないし、エミュレーター側のLinux向け最適化がそんなに効いていないのかもしれない。更新頻度もそんなに高いわけではないので、エミュレータ側の対応もWindows版の更新に追いついていないところもある。ただUIのサクサク感と、専用インターフェースのかっこよさは、他に代えがたいものがある。

起動~メインメニューまで約18秒、BIOS画面終了からだと約8秒で起動するのも非常にお手軽。
DIYコンソールとして以外にも、高速なSambaのファイルサーバーとしても有用。

起動     0秒
BIOS画面終了 10秒
LAKKAロゴ  15秒
メインメニュー18秒

LAKKAのインストール

LAKKAはLinuxOSの上で動いているretroarch+Libretro。最近精力的にPSXのバージョンアップを行いエミュレーション精度が上がってきてるアレ。http://www.lakka.tv/get/windows/generic/にしたがってインストールを進める。

imgファイルをWin32diskImagerでUSBメモリに書き込んで、出来上がったUSBメモリをノートPCなり、廃PCに突っ込めば自動的にインストーラーが起動する。Win32diskImagerはインストール後、EXEのプロパティから管理者権限を与えて実行させること。
 
LAKKAはEmu-OSほどのシンプルさはないが、GUIもPS3ライクで悪くない。Core2Duoで動かしたx64バイナリはかなり快適で、同じマシンにx86でインストールしたEmu-OSよりもやや高速に動作している。x64ならReicastも動く。
 
 

LAKKAのアップグレード

新しいバージョンがでたらアップグレード用のイメージファイルをダウンロードして、LakkaのUpdateフォルダに解凍せず配置。再起動すると自動でアップグレードが始まる。

LAKKAの使い方

基本的にはretroarchの使い方だと思っていい。マルチエミュレーターなので、エミュレーターとROMを選択して起動することになる。ここでの用語は「Coreを選択=エミュレーターを選ぶ」、「Contentsを選択=ROMを選択」といったイメージ。

起動後はF1キーでメニューに戻れるし、もう一度F1を押すとゲームに戻れる。
起動後に戻れるメニューでは、エミュレーター固有の設定ができるようになっているので、各Coreの設定はここで行う。
(※エミュレーター起動前はCoreが確定していないのでエミュレーター毎の設定ができない)

エミュレーター起動前の設定はretroarch全体の設定で、この設定は「retroarch.cfg」に保存される。
また、エミュレーター毎の設定は「retroarch-core-options.cfg」に保存される。

LAKKAの設定

エクスプローラーのアドレスバーに「\\Lakka」を指定してLakkaの共有フォルダに接続する。
ROMは「\\lakka\Roms」にいれることで参照できる。BIOSは「\\lakka\System」

その他設定はGUIと共有フォルダでほぼ設定できるようになっている。例えばMSXのバージョンをかえるには共有フォルダにある設定ファイル(\\lakka\Configfiles\retroarch\retroarch-core-options.cfg)を書き換える。もちろんGUI上でも設定できる。Core(エミュレーター)毎の設定は、エミュレーター起動後、F1キーでメニューに戻ってきた時にでてくる「OPTION」で設定を変更できる(※)これらの一連の手順がややこしいが、慣れてしまえばどれも同じ手順で設定できる。

※ひとつコツがあってここで設定した内容は即座に自分で「Save Current Config」で保存しておくことをオススメ。retroarch全体の設定で自動保存することもできるが、色々ややこしいところがあって自分で保存しておけば間違いが少ない。

コントローラーのコンフィグ

2層のコントローラーのコンフィグがあるのがretroarchのややこしいところ。
まずRetroarchで使用するボタンの設定を行う。ここでは十字、左右アナログ、L2,R2トリガーを含んだデュアルショック準拠のコントローラー設定を行う。なのでとりあえずデュアルショック的なパッドを用意すると都合がいい。

各エミュレーターはretroarchで設定されたパッド情報をもとに各エミュレータ用のボタンが自動で割り当てられる。各エミュレーターは実際にバインドされているコントローラ情報ではなくRetroarch用のボタン設定を参照して適切にマッピングされる。これのいいところはコントローラーが変わってしまっても、Retroarch用のボタンさえアサインすれば、全てのエミュレータ側で再設定しなくてもいいところである。

細かくみていこう。

Retroarch用のボタン設定
まずSetting tab > Input を選んでRetoroarch用のパッドとボタン設定を行う。つまりメニューで使うコントローラーのバインド(1P~5Pまで設定可能)と、決定、キャンセルボタンのマッピングである。この時のキー配置はデュアルショック準拠のキーが想定されているので、デュアルショック系かXBOX360コントローラーがオススメ。6ボタンパッドとかアーケードスティックは設定が合わないのでおすすめできない。これを便宜上「Retoroarchボタン」と呼ぶことにする。

エミュレーター個別のボタン設定
次にエミュレーターを起動した後、そのエミュレーターごとのボタン設定をする。ゲーム起動後、F1キーでメニューに戻るとQuick Menuというのが増えているので、Quick Menu > Inputから各種エミュレーター用のキーマッピングを行う。デフォルトのキーはデュアルショック準拠で設定された「Retroarchボタン」が自動的に割りあたっていて、だいたいうまく配置されている。64のZボタンなど特殊なケースは個別に割り当てよう。

NEOGEO系
NEOGEO系だとタイトルごとにボタン配置がバラバラになる。例えばNEOGEOの格闘系だとACがパンチ、BDがキックとなっているKOF系をはじめとしてファイターズヒストリーではABがパンチ、CDがキックとなる。メタルスラッグ的なものではA,B,Cの横並びの3ボタンでゲームをすすめられるようタイトルごとのキーマッピングが必要になる。こういう場合はそれぞれタイトルごとにボタン配置を設定し直す必要がでてくる。

ただ、タイトルごとにキーマッピングを保存できるかどうかについてはエミュレーターによる。MAMEの新しいものとかFinalBurnなら設定できるし、古いMAMEは個別の設定ができないようだ。またここで設定したキー情報は「Save Game Remap File」で保存しておくのを忘れないように。

PSP
PPSSPPであるが、十字キーとアナログのスライドパッドを分けて設定する方法が不明。十字キーの下を入れるとアナログの下を同時に入力してしまう現象が発生している。これはRetroarchのキーマッピングがうまくできていないのか、PPSSPPでのマッピングがうまくいってないのか問題の切り分けがまだ出来ていない。

BIOSファイル

基本的にはretroarchの作法に従って必要なファイルを「\\lakka/system」フォルダに展開する。
必要なファイルはコレ
http://www.lakka.tv/doc/ROMs-and-BIOSes/

ファイルの転送

Windowsマシンから共有フォルダを通じてLAKKAのファイルにアクセスできる。※LAKKA>サービス>SMBを有効にしておくこと。
LAKKA側がSAMBAサーバーを起動して共有フォルダにアクセスできるようにしてくれる。アクセスは「\\LAKKA」

コントローラー設定に注意

迂闊にコントローラーを抜き差ししたり対応コントローラーのIDを変えるとretroarchのメニューが全く操作ができなくなってしまう。cfgを自動セーブするようにしていた場合、LAKKAのシャットダウン時にそのコンフィグが保存され、また起動時にそのいけてないcfgが読み込まれて詰みそうになる。そういう時はネットワーク越しにcfgファイルを編集して元に戻すことにする。コンフィグファイルはコレ。\\lakka\Configfiles\retroarch\retroarch.cfg

  • ネットワーク越しにエディタでcfgファイルを開いて編集、保存
  • ESCでretroarchを再起動(この時にcfgファイルが自動で更新される)
  • 再起動時にとにかくネットワーク越しにエディタで上書きを連打して、正しいcfgで上書き
  • うまくいけば、新しいcfgファイルの設定で起動できる

泥臭いがハマったら試してみて、こんな感じであとは頑張ってみてほしい

コマンドラインでアクセスできる方法があった

puttyを使ってSSHでアクセスする方法があった。
putty.png

http://www.lakka.tv/doc/Accessing-Lakka-command-line-interface/

  • puttyを起動
  • Host Name に「lakka」もしくはIPアドレスを入れてOpen
  • ログイン時のアカウントとパスは「root /root」

これで色々アクセスできるようになる。

フォントの変更

フォントを適当なフォルダに置いてretroarch.cfgにパスを記述するとフォントを変更できることがわかった。
これで日本語が表示できるかと思ったけど、やはり日本語ファイル名は化けたまま。無いフォントを指定するとretroarchのドット文字になる。

retroarch.cfg

//UIで使われてる白文字のフォントの指定
xmb_font = "/storage/.fonts/ipaexg.ttf"
//↓こっちはアナウンス用の黄色い文字のフォントの指定
video_font_path = "/usr/share/retroarch-assets/xmb/monochrome/font.ttf"

時刻がおかしい

タイムゾーンを東京に設定する必要があるので以下の内容のファイルを作っておく

.cache/timezone

TIMEZONE=Asia/Tokyo

コマンドラインから以下のようにしてファイルを作ってもいい

echo "TIMEZONE=Asia/Tokyo" >/storage/.cache/timezone

この後Lakkaを再起動すると時刻が正しく表示されるようになる

共有フォルダを追加する

\\lakka\configfiles\samba.conf.sampleに書いてある内容を書き換えて「samba.conf」というファイルネームにする

[共有フォルダ名]
  path = /storage/prog  ・・・共有フォルダにするフォルダへのパス
  available = yes
  browsable = yes
  public = yes
  writable = yes
 ↓新しく作る共有フォルダへのパスを書いておく。起動時にフォルダが作成される
  root preexec = mkdir -p /storage/prog

サムネイルを使う

LAKKAには自動でサムネイルファイルをダウンロードしてきてくれる機能がある。

MainMenu > Online Updater > Thumbnail Updater

ここから必要なサムネイルをダウンロードしてくる。

ここで用意したサムネイルとゲームファイルとの関連付けを行うことで各プラットフォームに応じたROMとそのサムネイルの表示ができるようになる。関連付けは以下からROMの含まれるフォルダを指定することで内容をスキャンしてくれる(サブフォルダは検索対象外なので注意)

Add tab > Scan Directory

スキャンされたファイルがデータベースに登録されているCRCと一致した場合、ROMとサムネイルを関連付けてくれる。この時に自動でプラットフォームに応じたアイコンがXMBに追加される。

Reicastを使う

\\lakka/systemフォルダにdcフォルダを作ってBIOSファイルを入れる。

system/dc/dc_bios.bin
system/dc/dc_boot.bin
system/dc/dc_flash.bin

reicastの設定は「BIOSを使わない」設定にするとなぜかBIOSを使って正しく起動させることができる。ただ手持ちのCore2Duoマシンで60FPSはキツイ感じ。

PPSSPPを使う

なぜだかわからないがRewind(巻き戻し)機能をONにすると起動できなくなることがあるようだ。(v1.0.1-git)
また、この機能をONにしているとエミュレーターCoreの動作が非常に遅くなってしまう。何かの拍子にうまく動かなくなった時は、この機能をOFFにしてみよう。

LAKKAのアップデート

Main Menu > Online Update > Update Lakka

一番下のtarファイルを選択。ダウンロードが終われば\\Lakka\Updateフォルダに展開されるので再起動時にシステムをまるごと入れ替えてくれる仕組みになっている。設定ファイルなどは共有フォルダなどに出されているので設定は引き継がれる。またLakkaのシステムは大事なところは全てReadOnlyになっていて設定を書き換えることが出来ない分、強固に守られている。今のところ不安定な動作が見られないのはこういうところが硬いのかもしれない。

最新版の更新情報はgitのrepositoryを参照することでも確認できる

Lakkaのリポジトリはココ
http://sources.lakka.tv/nightly/

Libretroの最新はココ
http://buildbot.libretro.com/nightly/linux/x86_64/

エミュレータ固有の設定メニューに入るには起動時にF1

コントローラーからメニューに入るにはL3+R3。起動後に入れるメニューではCore(エミュレーター)毎の特殊な設定が可能になる。またたとえばFBAではゲームタイトル毎にキーアサインも可能。エミュレータ固有のBIOSの使用可否や、リージョン設定などもココで行える。設定後はセーブするのをお忘れなく。

フォントを入れ替えてみる

Puttyを使ってSSH接続し色々変更ができそうだったので日本語フォントに対応していないのをLinux側からなんとかできないか試みてみたがなんともならない感じ。Emu-OSのフォントに入れ替えたりLANG設定を日本語Shift-JISなどに変更してみたがフォントは変われども日本語の表示にはできなかった。なんかやりかたあるのかな。

→ Lakkaの2.1.1では少なくとも日本語表示が可能になってました。

知ってると便利なLinuxコマンド

Puttyを使ってLakkaにアクセスすると通常のコマンドラインからLinuxの設定を変更することができる。割とよく使うもので便利なコマンドの覚え書き。

sudo passwd root

ルートのパスワードを変更する。デフォルトで設定されていないので、とりあえずまず真っ先にこれでrootパスワードを設定しておく。最初に効かれるのは現在の自分のパスワード、そして新しいrootパス、次にrootパスの確認となる。パスは画面に表示されないので上記を参考に勘で入力してほしい

su

スーパーユーザー=rootになっておく。スーパーユーザーでないと色々面倒なのでとりあえずsuしておくといい。同じく各コマンドの前にsudoを入れておく(sudo chmodoみたいな感じ)とルート権限を伴って1回だけコマンドを実行できる。

chmod -R 777 .

Romsフォルダのアクセス権をフルオープンにしておく。細かい設定が面倒なときは「777」でいい。-Rはその配下のフォルダも全部777にしてしまう。最後の「.」は、現在のフォルダを表す。もちろん絶対パスで指定してもいいが、現在Romsフォルダに居てる場合はカレントフォルダを表す「.」でもいける

adduser rescue

rescueという名前のユーザーを追加する。es_systems.cfgを書き間違えるともうログインできなくなるので最大限注意。しかし間違えることは多い。XMLのカッコの閉じ忘れなどのケアレスミスで全てのシステムを再インストールするはめになる。かれこれいろんな理由で8回めのインストールになるのでrescue用のユーザーを作ることにした。

apt-get install gedit

es_system.cfgの編集には、メモ帳的なアプリが必要なのでgeditをインストールしておく

find / -name *.conf

ルートディレクトリから 拡張子confのファイルを探す

トラブル対応

コントローラー設定をめちゃくちゃにしてしまった

これによって、決定ボタンを押せなくしてしまうこともある。こうなると何も設定できないしUIからもとに戻すこともできない。非常に困る。設定ファイル自体は共有フォルダ越しに編集できるのだが。。。

Configfiles\retroarch\retroarch.cfg

LAKKA終了時に設定を保存する仕組みにしてあると、このcfgファイルを現在の設定で上書きされるので永久に書き換えることができない。もう詰んでしまって非常に困る。最後の手段は、この設定ファイルを共有フォルダから削除する、そして電源を引っこ抜く。こうすることで、上書きのプロセスを飛ばして、新規にretroarch.cfgが作成されるので、なんとかもとに戻すことができる。しかしノートPCのバッテリが生きているときは厄介である。その時はバッテリを抜くしかないのか。。。

  • デフォルト状態のコンフィグファイルは保存しておくようにしよう