004. コア解説 - NullPopPoLab/batocera.linux GitHub Wiki

コア解説

NullPopPoCustom で手を入れたところだけ

AC系

mame

libretro/mame

libretro/mame2010

libretro/mame2003-plus

3DO系

libretro/opera

ドキュメントで示されてるもの以外にも、三洋機とか派生品とかのBIOS対応してたり。
panafz1.bin panafz1j.bin panafz1j-norsa.bin panafz10.bin panafz10-norsa.bin panafz10e-anvil.bin panafz10e-anvil-norsa.bin goldstar.bin sanyotry.bin 3do_arcade_saot.bin

あと、ドキュメントにはないけどフォントROMないと日本のソフトとか動かなさげ。
panafz1-kanji.bin panafz1j-kanji.bin panafz10ja-anvil-kanji.bin

なお、ファイル名とハッシュを一致させる必要ある模様。
説明めんどいので詳細はソース参照←

3DS系

libretro/citra

明確なBIOSとしては存在しないみたいだけど、
基本的に実機で使われているSDから一式拾ってきて暗号解いたやつ使ってるようで。
そのあたりはPC版citraで準備しとく必要あり。

DC系

flycast

libretro版と同様だけど、BatoceraのBIOS置き場では認識されないみたい。
roms/dreamcast/ に置いたら認識された。

libretro/flycast

(dc|hkt|naomi_n2)_(boot|bios).bin(|.bin) な感じで複数検索対象。
あとNAOMIに限り epr-21576d.bin も有効。

BIOSないときはreiosっていう代替BIOSが使われる。
日本語フォント入ってないみたいで、ないとわりと困る模様。
(エンジェルプレゼントで確認)

FC系

libretro/fceumm

disksys.rom 対応。 あと gamegenie.nes nes.pal にも対応しているようだがよくわかんない。

任天堂銃,バンダイ銃,コナミハイパーショット,おえかキッズボード対応。

libretro/nestopia

disksys.rom 対応。

任天堂銃,パドル対応。
コア自体はこの他にも多種のデバイスに対応しているが、libretroに繋がってない。

L3ボタンでマイク発動。

GB系

全般、BIOSなしでも動作可。  

libretro/gambatte

gb_bios.bin gbc_bios.bin 対応。

libretro/gpsp

gba_bios.bin 対応。

libretro/mesens

gb_bios.bin gbc_bios.bin sgb_bios.bin sgb2_bios.bin sgb_boot.bin sgb2_boot.bin 対応。
スーパーゲームボーイ対応の流れでサテラビューにも対応しているようだが、SFC系対応というわけでもなさげ。

libretro/mgba

gb_bios.bin gbc_bios.bin sgb_bios.bin gba_bios.bin 対応。

libretro/tgbdual

BIOS非対応。

libretro/vba-m

gb_bios.bin gbc_bios.bin gba_bios.bin 対応。

MD系

libretro/blastem

16ボタン対応だけで他に手を入れるところもないぐらい、とっても最小限な御様子。

libretro/genesisplusgx

多くのコントローラタイプに対応。

BIOS置き場に

  • ggenie.bin: ゲームジーニー
  • areplay.bin: アクションリプレイ
  • sk.bin: ソニック&ナックルズ
  • sk2chip.bin: (ソニック&ナックルズ内蔵メモリ?)

セーブ置き場に

  • cart.brm: バックアップRAMカートリッジ

を置くと適用されるような記述がある。
(ソニック&ナックルズで試してみたけど無反応)

libretro/genesisplusgx-wide

BMSファイル対応 (音ゲ譜面じゃないよ)
ブラジルのマスターシステムらしいけど詳細は謎。

予想外だったのが、wideなし版よりソースが古い御様子。 (メンテされずに放置されてる系?)

libretro/picodrive

その名の通り最小限な仕様。
マウスや銃も非対応。

でも対応BIOSが多い。 Batoceraの bios/readme.txt に書いてないBIOS us_scd2_9306 SegaCDBIOS9303 us_scd1_9210 eu_mcd2_9306 eu_mcd2_9303 eu_mcd1_9210 jp_mcd2_921222 jp_mcd1_9112 jp_mcd1_9111 も使えるみたい(試してない)

あと32X対応。
BIOSなくても動くっぽい。

コア自体はCD交換に対応しているが、M3U未対応。
(NullPopPoCustomで対応済)
(Batocera34あたりから公式でM3U対応したらしいが、EmulationStationで封印されたままだし、解除しても正常動作しなかったのでまた封印)

MSX系

libretro/bluemsx

bios/Machines/ に機種毎の定義が入ってるが、本家Batoceraでは MSX MSX2 MSX2+ MSXturboR しか選べない。
(NullPopPoCustomでは地域毎のサフィクスまでは対応済)
で、地域毎のサフィクスまではBIOSなしでもそれなりの代替品が用意されている。

他の設定を使いたいときは、対象のディレクトリから config.ini だけ拾ってきてサフィクスなしディレクトリにコピーすれば一応使える。
(もちろん、BIOSは自前で用意すること。で、BIOSファイルは元の位置に置く。)

libretro/fmsx

現状bluemsxだけで足りてるので全く手つかず。

N64系

libretro/mupen64plus-next

12ボタン仕様のゲームコントローラでA~Cボタンを操作するため、
ABとC左下をR2ボタンで切り替えるという強引な対応が標準仕様になっている。
(NullPopPoCustomでは16ボタン仕様での操作を前提にしているため、この機能は廃止)

libretro/parallel_n64

mupen64plusの派生
マウス対応

一部のゲームタイトルを認識してキーアサインを自動で切り替える機能が入ってる。
R2ボタンで切り替え方式だとどうしても操作性に難があるわけで、
こういったややこしい対策にならざるを得ないところだけど、
(NullPopPoCustomでは無用な機能なので、これも廃止)

NDS系

基本、BIOSなしでも動作可。
DSi専用ソフトは要BIOSのようだが、こちらの実機から抜いてきたやつハッシュ合わないし、目下ひとつも起動せず。

libretro/desmume

初代BIOSのみ対応。

libretro/melonds

こちらはDSiのBIOSにも対応。

PC88系

libretro/quasi88

BIOSはBatoceraの bios/readme.txt に書いてある N88.ROM N88SUB.ROM N88N.ROM N88EXT[0-3].ROM のほか、
N88KNJ[1-2].ROM N88JISHO.ROM FONT.ROM FONT[2-3].ROM に対応する。
この他いくらかの別名も設定されており、このうち類推利かなそうなところとしては、
N88N.ROM = N80.ROM
N88SUB.ROM = DISK.ROM
が等価な扱い。
さらに、PCMリズム音源として
2608_BD.WAV 2608_HH.WAV 2608_RIM.WAV 2608_SD.WAV 2608_TOM.WAV 2608_TOP.WAV
が使われる模様。

ディスクイメージファイルが特殊な扱いになっている故か、独自のディスク操作機能で動作していた。
(NullPopPoCustomではlibretro標準インタフェイスに移行済)

D88ディスクイメージファイルは複数のディスクイメージを保持できる。
(ただし複数イメージ切り替えに対応できるのはこのコアだけの模様)
(でも肝心のlibretroで対応してない) (NullPopPoCustomで対応するかもしんないけどちとめんどいので後回し)

PC98系

libretro/np2kai

Batoceraの bios/readme.txt には
BIOS.ROM FONT.ROM SOUND.ROM ITF.ROM
って書いてあるけど、UNIX系OSでは小文字にしないと認識しないような気がしないでも。
(FONT.ROM のみ両方定義がある)
あとank用として PC88.FNT がロード対象になっている模様。

PCE系

libretro/pce

syscard[1-3].pce syscard[2-3]u.pce gexpress.pce に対応。

コア自体はCD交換にもM3Uにも対応しているが、ロードでコケるバグあるからか
EmulationStationで認識しないようになっている。
(NullPopPoCustomで対応済)

libretro/pce-fast

高速化を目的としたチューニングが行われている模様。

CD交換については同様にNullPopPoCustomで対応済。

PS1系

libretro/duckstation

バイナリ提供で手を入れられない。これは削除予定。

libretro/mednafen_psx

リポジトリの名前と全然違ってて探し回てしまた。(正解はbeetle-psx)
BIOSは550x系のみ対応。
ファイル名に微妙な揺らぎが許容されてるけど、説明めんどいので scph550?.bin で合わせとくよろし。 (ソース書き換えれば無理矢理使えるかもしれないけど、後回し)

libretro/pcsx_rearmed

BIOS置き場にscphまたはpsx(大小区別なし)で始まる512KBのファイルがあるとそれをBIOSとして使う。

libretro/swanstation

とりあえず、文字列をstd::stringで処理してくれてるの非常にありがたい。

で、こちらはBIOS置き場のファイル全部引っ張り出してきてハッシュチェックするらしい。
一応サイズチェックもしてるけどPS1~3それぞれのサイズ条件をorで通してるので単なる絞り込み用条件。

PS2系

libretro/pcsx2

BIOS置き場のファイル全部引っ張り出してきて、かなり細かいチェック。
ハッシュとかじゃないので、バージョン違いにも柔軟に対応してくれそうな。

PSP系

libretro/ppsspp

明確なBIOSとしては存在しない(?)
基本的に実機でUMDダンプしてくるだけでだいたい動作する。
目下、複数UMDには非対応。

SFC系

libretro/bsnes

BS-X.bin 対応。

libretro/bsnes_hd

BS-X.bin 対応。

libretro/pocketsnes

BIOS非対応。

libretro/snes9x

BS-X.bin STBIOS.bin 対応。

libretro/snes9x_next

BS-X.bin STBIOS.bin 対応。

SS系

libretro/beetle-saturn

sega_101.bin mpr-17933.bin 対応。
アナログ,ハンドル,ミッションスティック,マウス対応。

libretro/kronos

中身はyabause

saturn_bios.bin sega_101.bin stvbios.zip 対応。
アナログ,ハンドル,ミッションスティック,マウス対応。

libretro/yabasanshiro

中身はyabause

saturn_bios.bin sega_101.bin mpr-17933.bin 対応。
アナログ対応。

X1系

libretro/xmil

Batoceraの bios/readme.txt には
IPLROM.X1 iplrom.x1t
って書いてあるけど、案の定不統一NGで大文字が正解の模様。
この他、 FNT0808.X1 FNT0816.X1 FNT1616.X1 が使われる。

他のオールドPC系コアはm3u対応してるのに、何故かこれだけ未対応。
起動時にディスク1枚しか指定できない故かもしれない。
(どちらもNullPopPoCustomで対応済)

元のlibretro用ソースにはディスクタイプ設定の2D/2HDが逆なバグあり。
(NullPopPoCustomで対応済)

X68系

libretro/px68k

BIOSはBatoceraの bios/readme.txt に書いてある iplrom.dat のほか、
iplrom30.dat iplromco.dat iplromxv.dat に対応する。