富士通のパソコン「FM TOWNS」用にDOOMを移植した話

令和3年に登場した新たなFM TOWNS用移植ゲーム「DOOM」です。まだまだ現役のTOWNSユーザーでDOOMを遊ぶためにTOWNS用LinuxWindows 95を導入したという皆様、心行くまでTownsOSネイティブ版DOOMを堪能してください。

Google ドライブ - FM TOWNS用ソフト「DOOM」(2021年7月22日更新 V1.1 L25)

旧バージョン(V1.1 L10 上記のファイルで不具合がある場合)

CPU 486以上 高速モード設定推奨(機種でいうとFM TOWNS II MX以上)、メモリ8MB(空きメモリ6MB以上・空きがあれば+4MBをキャッシュ用に使用)必要・ハードディスク必須・TownsOS V2.1 L40(WAVEサウンドライブラリ使用)以上推奨・MS-DOS 6.2を組み込んでいる環境だと10MB以上メモリが無いと空き不足で起動しないかも。
必要動作環境のためFM TOWNS マーティーでのプレイは不可能です。
エミュレータ津軽」および「うんづ」で互換BIOS使用、TownsOS V2.1 L51から起動してThe Ultimate DOOMおよびDOOM2に収録されているデモの再生、数ステージのプレイまで動作確認。ただし「うんづ」の方では効果音にノイズが乗る。

実機での動作確認済み機種

実機FM TOWNS II MA + 486DX4 100MHzで音声も含めて正常に動作するとのこと。pinさん、ありがとうございます。

実機FM TOWNS II HCでも安定動作。Type.dさん、ありがとうございます。

 

FM TOWNSエミュレータ津軽」にて互換BIOS使用、CPU速度33MHz時の動作

初期V1.1 L10版なので音の遅延などが発生するけど、L20以降は軽減されている。

 

f:id:BCC:20210702210053p:plain

f:id:BCC:20210702210109p:plain

ゲームにはシェアウェア(体験)版のDOOM1.WADが最初から入っていてエピソード1のみ遊べるけど、もちろん製品版The Ultimate DOOM(DOOMU.WAD)やDOOM2(DOOM2.WAD)をDOOM.EXPと同じフォルダに入れればそちらが読み込まれるようになってます。ユーザーが簡単に読み込むWADファイルを選択といった機能は用意していない(実行ファイルへのパラメータでのみ可能)ので、WADファイルごとに別々にフォルダを作りその中にWADファイルとDOOM.EXPを入れましょう。
The Ultimate DOOMやDOOM2は今でもSteamやGOG.comで購入することができます。

各ストアから購入後、ダウンロードしたらゲームフォルダ内のbaseフォルダに入っているWADファイルのみをコピーすればOK。
・・・はい!そこ!わざわざ今時のPCゲームサイトから購入するなら、最新PC向けの各種DOOMポートに入れて遊べばよくね?ってツッコんじゃダメ!!!

f:id:BCC:20210702200246p:plain
TownsOSに登録するアイコン(DOOM.ICN)も作ってみました。アイコン画面から起動したいという人は登録しておきましょう。

 

操作方法(現バージョンではキーボード操作のみ)
矢印キー・・・メニューの操作とゲーム中の移動操作
ESC・BREAKキー・・・メニューを開く
RETURNキー・・・メニューでの決定
CTRLキー・・・攻撃
スペースキー・・・扉を開ける&スイッチを押す
SHIFT+矢印・・・ダッシュ移動
ALT+矢印・・・垂直移動
012345678・・・武器切り替え
TABキー・・・マップ表示

 

終了メッセージもTOWNS仕様

f:id:BCC:20210702203709p:plain

f:id:BCC:20210702200432p:plain



その他、現バージョンV1.1 L25での仕様
・シングルプレイのみ対応
・最大フレームレートは30fps(オリジナルのIBM PC版は35fps)。fpsの違いで挙動に違いがあるかもしれない。
・メモリさえあれば初期に発売された縦型の灰色FM TOWNS(通称目玉タウンズ)でも一応動きますが、386 CPUでは画面設定を下げてもフレームレートが1桁でゲームになりません。
・デフォルト設定では「GRAPHIC DETAIL」は「LOW」、「SCREEN SIZE」は右から三段階下げている。
・効果音の多重再生は強引な方法で実装しているためか処理が重い。16ビットPCM搭載の白TOWNSなら重さが軽減されるかも。
・内蔵音源で音楽は再生されませんが、実行パラメータに-cddaをつけるとタイトル画面はCDトラック3番目、ステージクリア画面はCDトラック5番目、その他ゲーム画面などではCDトラック4番目の曲が再生されるようになります(実験的な実装で音量調整不可)。
Linux版ソースからあるバグは殆ど未修正。ただし、オプション内の「GRAPHICS DETAIL」が「LOW」にならない問題と、ゲーム終了時のメッセージで表示されてはいけない文章の表示および強制終了エラーが発生する、「The Ultimate DOOM」でエピソード2以降のスイッチが押しても視覚的な変化が起きない(反応自体はしている)バグだけは致命的なので修正済み。

 

 


ここからは、今更なんでこんな代物を作ってしまったかという駄文。
FM TOWNSとは、1989年に富士通より発売されたパソコン。
32ビットCPU「80386」(今でもPCで使われているCPUのご先祖だ)、世界初CD-ROMドライブ標準搭載、32768色同時発色、同時8音PCM音源と当時としてはなかなかのカタログスペックだったが、発売初期はハードウェアの作りこみやソフトウェアラインナップの貧弱さといったイメージの悪さ、問題点が改良されてくる90年代前半にはDOS/Vによる安価なIBM PC互換機での日本語表示の確立やその後のWindows 95の発売によって日本独自アーキテクチャPCの存在意義がなくなり、1997年にFMV-TOWNSを最後にシリーズ発売が終了となってしまった不遇の機種。
世間ではとやかく言われることの多いPCではあるものの、流石に今の水準では色々と劣るがGUIによるファイル操作や各種設定が行えた「TownsOS」や、HDD起動せずともCD-ROMから直接ゲームといったアプリをブートできた手軽さは当時小学生だった自分にはPCを操作するという行為を覚えさせてくれたマシンであった。
市販ゲームはアーケード移植は弱くとも最低でも32ビットCPUだったという点を生かして、IBM PCPC-9880386を搭載してもただの早い16ビットCPUとしか動いていなかったのと違い32ビットネイティブコードを実行(正確にはMS-DOS上でDOSエクステンダで32ビット&1MB以上のメモリ環境を使えるようにしている)できていたのとCD-ROMドライブやPCM音源搭載だったために、PCゲーム移植では処理速度は申し分なく音声周りがTOWNS版のみ豪華というタイトルも珍しくなかった。


ただ、一つだけ、一点だけ、残念なことがある。
それはFPSの金字塔DOOM」が移植されていないのだ。
1993年にid Softwareより発売された「DOOM」はテクスチャマッピング付の立体的なグラフィック描写、個々によって特質の違うモンスターや武器、優れたマップデザインによってヒットとなり当時でも各種コンソール機、更に(一応)TOWNSのライバルでもあったPC-98にも公式に移植され、その後Linux版ソースコードが公開されたことによって非公式にATMやデジカメといった珍機種、こちらも当時は公式移植されなかったX68000にまで移植されることとなり、32ビットCPUと4~8MBのメモリがあるコンピュータがあるならハッカーが移植するというネタになっているのだが、今の今まで32ビットCPU搭載・メモリも必要十分載せられるという条件を満たしているTOWNSに移植されていないのである。
Windows 95の登場によってIBM PC互換機に環境が移った際、そのPC上で動くDOOMを遊んだとき「これがTOWNSで遊べたらなぁ」という悔しい思いをしていた自分だが、悲しいことにその当時はC言語の知識はなく自力でFM TOWNSへの移植なんて夢のまた夢だった。


そんな悔しい思いをしてから24年後。捨てていなかったOSやフリコレ(大量のフリーソフトをCDに焼いて公式に市販されていたもの。パソコン通信しかなく繋ぐだけで1分数十円の料金がかかるのでTOWNSユーザーには重宝された。)といった当時の物や21世紀になってからオークションで購入していたはソフトはまだ手元に残っていたものの、所有していたFM TOWNS 2FとFM TOWNS II MXをどちらもCDドライブが故障して使えなくなってしまい、エミュレータにしても「うんづ」というある程度完成度が高いものが存在するものの、既に10年以上更新もされておらずCDイメージを直接読み込めない(仮想CDソフトは今のPCになるべく入れたくない)ということでCDをその都度交換して読み込むのが嫌いな自分は触らなくなっていたのだが、物置を整理していた時に紛失していたと思われていた残りのソフトが見つかり、その中にFM TOWNSの標準C言語開発環境である「High C コンパイラ V1.7」や後述する割り込み用ライブラリ「HIS」(ちょもらんま氏作)を収録していたOh! FM TOWNS誌付録のCD「天晴 Vol.2」があったのだ。

f:id:BCC:20210702204542j:plain

f:id:BCC:20210702204603j:plain

更にTOWNS用エミュレータが「うんづ」しかないという状況だったのが、FM TOWNSユーザーでフライト系のゲームや実用ソフト・ライブラリを製作していた山川機長(元YS11)氏が新たなるエミュレータ「津軽」を開発していて、しかもこのエミュレータはCDイメージを直接読み込み可能な上にFM TOWNS実機が無くてもCD・FD・HDDブートまで可能な互換BIOSまで作られていたのだ。実機がなくともOSや開発環境を仮想TOWNSにインストールして構築することができてしまう。なんたる偶然の巡り合わせ。
当時は叶えらなかった雪辱を晴らすよい機会、そしてもしFM TOWNSDOOMが存在していたらどんな仕上がりになっていたのかという興味本位で移植を開始したのだった。

他にも移植しようとした物好きな外国人がいたものの、印象としてかなり移植を実現するのは困難な雰囲気だったので、おそらく無理だろうと思って自分が取り掛かったわけなんだけど、本当にこれがいばらの道なのなんだって。
当たり前なんだけど、今更FM TOWNSの開発環境に関する資料なんて探しても殆ど現存しない。ソフトこそ見つかったけど、当時でも情報源として唯一といっていいくらいだったOh! FM TOWNSといった参考文集とかは流石に残っていなかった。
High CのCD内にテキストファイルでマニュアルがあるものの、本当にただのテキストファイルで見易い目次が用意されておらず知りたい情報があっても延々と上から下まで読んでくしかないわ、サンプルプログラムにしても説明不足な点が多かったりやりたいことに限ってサンプルなんて存在しないから結局自分で試行錯誤するしかないという。
まともなデバッグ機能や統合開発環境も無い中80~90年代にCで規模の大きいプログラム組んでた人は本当に凄すぎる・・・小学生だったから理解できないというのもあるけど、あの頃やってたらまず間違いなく挫折する。

コンパイルエラーで止まったり、コンパイルが通ったと思ったら起動中にフリーズするとかそもそもタイトル画面すら表示してくれないという状況が作業開始から2週間ほど経ったが、とある人のアドバイスがヒントとなりHigh C コンパイラのオプションを変更すると悩んでいたことの多くが解決するということがわかりようやくタイトル画面がお目見え。
ここから更にゲームが安定して動作するまでにちょっと手間取ったり、効果音を多重再生する処理の実装に悩んだが作業開始から1カ月である程度完成することとなった。
パフォーマンス的には同じ画面設定・音声出力ありのIBM PC版を同CPU・L2キャッシュなしで動かしたときよりも若干フレームレートが低いかもしれないが、遊べなくはないくらいのレベル。33MHz駆動だとSega Super 32X版相当だ(わかりづらい)。
FM TOWNS版はほぼオリジナルのCソースのままでBSP(バイナリ空間分割)部分の処理方法は別のソースに置き換えたものの他に大きく改良したところはなく、アセンブラ化しているのは固定小数点計算の乗除算部分のみに対して、IBM PC版は直接ビデオカード上のフレームバッファを操作したり天井/床描画関数をアセンブラ化しているといった最適化を施していたりと有利な条件がある中では割とよくできているかな。


ところで、なんで世界中のプログラマーが隙あらばDOOMを移植しているかといえば”プログラムに環境依存となる部分が本当に少ない、かつ環境依存部にしてもまとまっている”からで、見た目のインパクトに対して実装コストが低いのである。
ソースコード一覧を見ると何十とCファイルがあるが、このうちファイル名先頭に"i_"と表記されているもの、つまりi_main.c・i_net.c・i_sound.c・i_system.c・i_video.cの4~5ファイル書き換えればほぼそのマシン用のDOOMは完成する(実際にはWADファイルを読み込むd_main.cや各ソースの標準関数を使用しているところもコンパイラによって書き換えることになるがそれは抜き)。それぞれのソースにある関数もそれほど多くない。
細かいアルゴリズムとかは抜きにして大雑把にプログラムのメインループを書くと

void D_DoomLoop(void)
{


while(1)
{
I_StartTic (); //ループ最初の処理。入力されたキー情報をD_PostEvent()に送る。
D_ProcessEvents (); //ゲームのイベント処理
M_Ticker (); //
G_Ticker(); //ゲームの進行状況処理
D_Display (); //グラフィック処理。最終的にI_FinishUpdate ()でグラフィックを画面に表示
}

 

//1/35秒単位で何フレーム進んでいるか取得するI_GetTime()は各場所で使われている
}

 

とこのようになっておりネットワークとサウンド対応を後回しにすれば、I_StartTic ()・I_FinishUpdate ()・I_GetTime()が重要となってくる。


まずはゲームの経過フレーム数を返す「I_StartTic ()」
本来ならば1/35秒(これはIBM PCの標準リフレッシュレートが70Hzに由来。70fps動作では重いので半分の35fpsにされている)で、公式に公開されているLinuxDOOMソースコードでは時計の時刻を取得してゲームを立ち上げた時と現在のマイクロ秒単位の時差から導き出しているのだが、FM TOWNSは最小でも10ミリ秒単位でしか時計が取得できず、この方法では最大33fpsと中途半端、また実装してテストした限りでは途中でゲームが止まったりと動作が不安定となってしまっていた。
ではどうしたかというと、発掘したOh! FM TOWNS 1995年8月号付録のCD「天晴 Vol.2」に収録されていた割り込みライブラリ「HIS」を使用して、1/60秒毎に発生する垂直同期が入ると自動的に用意した関数に飛ぶようにして偶数毎にI_StartTic ()関数が返す値を増やしていく、最大35fps動作を諦めて30fpsに落とす(#define TICRATEを35→30に変更)ことにした。

void VSYNChandler( void ) //VSync(垂直同期が発生した場合自動的にこの関数が読み込まれる)
{


static int VSyncfrag = 1;

VSyncfrag = 1 - VSyncfrag;

 

if(VSyncfrag)
ticcount++;

 

/******** VSYNC割り込み原因クリアレジスタへの書き込み ********/
_outb( VSYNCclear, 0 );


}

//
// I_GetTime
// Returns time in 1/30th second tics.
//
int I_GetTime(void)
{
return ticcount;
}

 

時計を利用してフレーム数を図っていた時と違い安定性はよく、486ベースのTOWNSマシンではオリジナルの最大フレームレートである35fpsを維持し続けることは難しいと思われるので細かい挙動の違いはあっても大きな問題はないはず。
なお、今回使用したライブラリ「HIS」に関しては、再配布可能(改変のみ許可が必要)ということが説明文に記載されていたので付属のTOWNS版DOOMソースコードフォルダ内に置いておいた。
もし、FM TOWNS用ゲームソフトなどをHigh Cを使って新規に開発したいという人がいたら、大分楽になると思うのでありがたく使わせていただきましょう。

 

次は入力処理を行う「I_StartTic ()」

//
// I_StartTic
//
void I_StartTic (void)
{


event_t ev;
unsigned int keyscan, encode, rc;

 

I_ReadMouse();

 

//
// keyboard events
//

while(1)
{
keyscan = KYB_read( 1, &encode );

if ( (keyscan >> 8 ) == 0xff )
{
break;
}
else if( (keyscan >> 7 ) == 0)
{
ev.type = ev_keydown;
}
else
{
ev.type = ev_keyup;
}

rc = keyscan & 127;
ev.data1 = keyboard_scan[rc];
D_PostEvent(&ev);

}

}

TOWNS版ではキーボードバッファに溜まっている文字を最後まで読み取っていき、文字がなくなったらwhile文を抜けるという処理を行っている。D_PostEvent()に入力されるべき文字式はIBM PC用のものでTOWNS用キーボードの異なっているため、char型の配列で用意したもの(keyboard_scan[128])から読み取って送るようにしている。

 

最後に肝心要のグラフィック表示を行う「I_FinishUpdate ()」。
DOOMエンジン内ではscreen[0]という64K(320*200)バイトのバイト配列が最終的に完成した映像のフレームバッファとなっており、これをどうにかしてそのままVRAMに転送するないしその機種にあうVRAMデータ構成にしてから転送すればよい。
FM TOWNSではTBIOSと呼ばれるAPI/デバイスドライバに相当する機能がOSに用意されていて、これを経由してグラフィック描写を行うのだが高機能なのはいいんだけど逆に単純な機能がなく(1点だけドットを打ちたくても複数点描画の関数を呼び出す)これが当時ゲームを作るうえでのボトルネックになっていたのかもしれない。
ただ、幸いなことにDOOMではフレームバッファ映像をメインメモリ上に作成しており、FM TOWNSDOOMではEGB_putBlockというメインメモリの配列データをVRAMに転送する関数を使ってそのまま送るだけで表示することができた。最初は自前で一点一点書き込もうとしたが表示が崩れてうまくいかず速度的にも相当遅かったが、この関数一つ使うだけの方法のほうが簡単でしかも実用的に表示できる速度だった。

//Write in screens[0] to VRAM
DWORD( para+0 ) = screens[0]; //データ格納領域アドレス
WORD( para+4 ) = getds(); //データ格納領域セレクタ(データセグメントレジスタ取得)
WORD( para+6 ) = 0; //書き込み開始X座標
WORD( para+8 ) = 19; //書き込み開始Y座標
WORD( para+10 ) = SCREENWIDTH - 1; //書き込み終了X座標
WORD( para+12 ) = SCREENHEIGHT + 18; //書き込み終了Y座標
EGB_putBlock( work, 0, para );

ただし、DOOMの画面は320*200ドット 1670色中256色なのに対し、FM TOWNSの画面モードは大雑把に分けてフレームバッファに対して解像度が広すぎる640*480ドットの4096色中16色・1670色中256色、もしくはフレームバッファと色階調の異なる320*240ドット 3万色くらいしか使える画面モードがなくゲーム画面にピッタリあうのが用意されていない。
3万色モードを使って1670色中256色→3万色の色変換行ってから転送すればいいが、DOOMはパレットの色を変更して画面効果を出しているので色々と書き換えないといけない、その色変換に発生する余分な処理は避けたい。
ではどうしたかというと、FM TOWNSのグラフィックコントローラには画面表示を2~16で整数倍する機能があるので、640*480ドット 1670色中256色モードにしてこの画面を縦横2倍表示設定にすると実質320*240ドット表示となった。縦40ドット余分だが、フレームバッファの転送位置を縦+20ドットにすることで上下で対象の大きさの黒帯となり違和感のない画面となった。

//Screen set to Mode12(640*480,256 Colors, 1 Page only)
EGB_resolution( work, 0, 12 );

 

///x2 zoom, 640*480->320*240
EGB_displayStart( work, 2, 2, 2 );

 

最初は表示していない領域に次のフレーム画面を描画して、描画が終わったら表示領域を切り替えるデュアルバッファ方式を採用していたのだが、FM TOWNSの仕様(表示領域切り替え時は必ず垂直同期待ちが発生する?)かこの切り替え動作が妙に重くてデュアルバッファ方式で表示すると殆どフレームレートが出なかったので表示領域に直接描画するシングルバッファ方式にしている。ティアリングが出ることがあるが実用的に遊べるフレームレート出ないと意味がない。


環境依存部分ではないが、最適化や特定のコンパイラで問題になると思われるm_fixed.c内のFixedMulとFixedDiv2関数について。
DOOMが発売された1993年頃のCPUでは浮動小数点演算ユニットがパイプライン化されていないため遅い、そもそもCPUによっては内蔵されていなくてハードウェアで演算できないという問題があったため、DOOMエンジン内の小数点計算には整数32ビットの上部下部のビットをそれぞれ16.16の整数部と小数部に分けた固定小数点(fixed_t)と考えて計算される方法が採用されている。
固定小数点の乗算では32ビット*32ビット=64ビットの結果64ビットを右16ビットシフトを行い64ビットの中間部分を32ビットに切り離して最終的な計算結果(除算は先にシフトしてから実際の除算)を出していて、DOOMのCソースでは

fixed_t FixedMul( fixed_t a, fixed_t b )
{
return ((long long) a * (long long) b) >> FRACBITS;
}

 

fixed_t FixedDiv2 ( fixed_t a,  fixed_t b )

{

double c;


c = ((double)a) / ((double)b) * FRACUNIT;


return (fixed_t) c;

}

とlong long型(64ビット)で計算しているものの、FM TOWNSのHigh Cコンパイラはlong long型に非対応なのだ。
本来ならばアセンブラを使って乗算命令であるimul命令を使って計算すると二つの32ビットレジスタに上部32ビット・下部32ビットの結果が出てくるのでシフト命令で16ビットシフトするだけの単純なアセンブリコードを書けばいいんだけど、肝心のTOWNS用アセンブラを持っていなかった。では、どうしたかというと、これまた山川機長がかつて製作していた固定小数点用ライブラリ「TORNARD」(フリコレ10収録)内にある乗除算関数に値を渡して計算することとした。同じ16.16固定小数点でTORNARDのソースコードを確認してもDOOMのオリジナルコードとほぼ同じだったので問題なし。
・・・だったけど、最終的にFM TOWNS用NASMがあるということを教えてもらい、自分でFixedMulとFixedDivをアセンブル

section .text
align 4
global FixedMul
FixedMul:
mov eax, [esp+4]
imul dword [esp+8]
shrd eax, edx, 16
ret

 

align 4
global FixedDiv2
FixedDiv2:
mov eax, [esp+4]
cdq
shld edx,eax,16
sal eax,16
idiv dword[esp+8]
ret

 

TORNARDのコードよりもごくわずか(数クロック・バイトくらい)に短くなった。乗除算は当時のCPUでは重たい処理で、ゲームのループ中に何度も読みだされる箇所となっているため、効率的かつ効果的に最適化するならここはできる限り早くしておいたほうがいいだろう。

Steamサマーセールが開催。「天穂のサクナヒメ」「ニーア:レプリカント」が初セール、日本語対応した「Hades」「トロピコ6」もセール対象

毎年恒例のSteamサマーセールが日本時間6月25日午前2時から7月9日午前2時までの二週間の期間開催されている。

f:id:BCC:20210625134011p:plain

1,000タイトルを超える様々なPCゲームがセール対象となっているが、一例として、

武神と豊穣神の子であるサクナヒメとなり米を育て自身を強化しヒノエ島の探索と鬼退治を行うアクションRPG「天穂のサクナヒメ」が初セールとなる30%オフ(通常版が3,834円、サントラ&アートブック付のデラックス版が5,670円)、「ニーア:オートマタ」の前作にあたる「ニーア:レプリカント」を現行機種に向けにバージョンアップしたNieR Replicant ver.1.22474487139..」が初セールとなる25%オフの6,435円、6月24日よりSwitch版・8月13日にPS・Xbox版が配信予定のギリシャ神話の世界をモチーフにしたローグライクアクション「Hades」が今年4月の日本語対応アップデートから初となるセール&正式版最安値の30%オフ、こちらも今年6月8日に日本語対応アップデートがなされたカリブの島国で独裁者の大統領(プレジデンテ)となり国を統治するシミュレーションゲームトロピコ6」が50%オフ、絶海の孤島『シロナガス島』を舞台としたミステリーアドベンチャー「シロナガス島への帰還 -Return to Shironagasu Island-」が最安値となる80%オフの100円オーバーテクノロジーを手にしたナチス第二次世界大戦を勝利した世界でナチスに対抗する狂気の男ブラスコヴィッチとなって戦うオールドスクールFPS「Wolfenstein: The New Order」とその前日譚「Wolfenstein: The Old Blood」がそれぞれ80%オフで両作品収録のパックが660円(ストアページ表記は日本語非対応になっているが実際には音声&字幕ともに日本語収録済み)、入院中の病弱な女の子が明晰夢を見れたのでせっかくだからと夢の中で他の患者をボコボコにしばいて回るゲーム「夢核」(YumeCore)が30%オフの364円ロボトミー社の管理人となり様々なモンスターを管理・そのモンスターが生み出すエネルギーを抽出するシミュレーション「Lobotomy Corporation」が60%オフの1,028円、新たな主人公・新たな舞台・新たなゲームシステムでこれまでのシリーズから一新されたRPG龍が如く7 ~光と闇の行方~」が35%オフの4,282円パルクールやスローモーションなどのスキルを駆使して敵の攻撃を避け刀で真っ二つにしていく一人称視点のサイバーパンクアクション「Ghostrunner」が50%オフの1,990円などとなっている。

 

なお、今回のSteamサマーセールではゲームジャンル毎にページが分けられているのだが、そのページの片隅にゲームブックが用意されていて各ジャンルのゲームブックの選択肢を選ぶごとにステッカー、全14ジャンル分のゲームブックを攻略すると選択肢によって変わるSteamプロフィール用のバッジがもらえるようになっている。

自分は何も考えもせずに選んでいったら「ゴリラの科学者」とかいうバッジがもらえたぞ。ウッホウッホ

f:id:BCC:20210625141658p:plain

f:id:BCC:20210625141449j:plain

f:id:BCC:20210625141355p:plain

 

アドベンチャーゲーム「Tell Me Why」が7月1日までSteam / Microsoftストアで無料配布中

アドベンチャーゲーム「Life is Strange」で知られるDONTNOD Entertainmentが開発した「Tell Me Why」がLGBTQ+プライド月間の企画で6月中、つまり7月1日までSteamおよびMicrosoftストアにて無料配布がなされている。日本語字幕、Xbox実績対応、Steamの方ではPCのみでしか遊べないが、Microsoftストアで入手すればXbox OneXbox Series S/Xでも遊ぶことが可能。

全3エピソードに分かれており、エピソード1は元から無料プレイ可能だったが今回の無料配布はもちろん全エピソード入手可能、Steamストア説明文の記載が変わっていないのでエピソード1しか無料でもらえないような表記になっているが「アカウントに追加」ボタンを押せば問題なくエピソード2・3のDLCまで追加される。Steamにてエピソード1を先に貰っていてゲームが追加できないという症状が出たはSteamアカウントのライセンスと製品コード有効化履歴よりTell Me Why Episode 1を先に消してから再取得し直すと貰えるという情報あり。

 

Microsoftストア - Tell Me Why: チャプター1-3

 

一度入手すればキャンペーン終了後も半永久的に遊べると思われるが、キャンペーン期間が長いので後で入手しておこうとするとつい忘れて期間終了ということもあるので早めに入手しておこう。

 

アラスカの小さな町を舞台に超能力を持つ双子が幼いときに経験したある事件の真相を明らかにしていくアドベンチャー。双子の主人公は離れていてもテレパシーで会話することや、過去の人物たちがその場所でどのような会話をしていたかを呼び起こす能力を持っており、これらの能力を駆使しながら物語は進んでいく。

日本語字幕には対応しているものの吹き替えはなく、また翻訳も直訳が多いためかストーリーがすんなりと頭に入ってこないのは難点。「Life is Strange」シリーズの素晴らしいローカライズを期待しないように注意しておこう。

Steam版「Saints Row: The Third Remastered」が配信開始。公式で日本語字幕対応・無規制だが・・・

Grand Theft AutoライクなオープンワールドクライムアクションゲームSaints Row: The Third」を、現行世代のマシンスペック向けにモデル・ライティング等グラフィックを強化し別売りだったDLCも収録したリマスター「Saints Row: The Third Remastered」がSteamで配信が開始された。価格は定価6,199円、配信から一週間にあたる5月29日までの期間中は40%オフの3,719円となっている。またオリジナル版SR3やDLC所有者向けに割引が加算されるバンドル品も発売されているので注意しておこう。

f:id:BCC:20210522231511j:plain

PC版は去年から時限独占タイトルとしてEpic Games ストアで発売されていたものの、使い勝手の悪いEGSでは購入したくないという人も多かったと思うので今回Steamからも配信がなされたことで購入しやすくなったことだろう。

オリジナルSteam版はストアから直接購入すると日本語が収録されておらず既に発売が終了した日本語パッケージ版でないと公式には日本語字幕に対応しなかった、字幕対応の日本PS3Xbox360版ではセクシャルな表現がカット、更には昨年DMMより発売されたリマスターPS4版では死体が即消えたりヒューマンシールド中に羽交い締めしている敵の首を折ることができなくなっていたりと規制が酷くなっていたが、リマスターPC版では公式で日本語字幕に対応しつつこれらの規制はされておらず、死体は消えず首折りはオリジナルの通り右スティック押し込みで行える、また武器としてディルドーバットが登場したり、衣服を下着含めて全部脱ぎストリーキングが行える。

f:id:BCC:20210522231433j:plain

f:id:BCC:20210522231443j:plain

f:id:BCC:20210522234321j:plain

 

・・・が、このPC版にはかなり深刻な不具合を抱えている。

それは字幕の一部漢字が全く別の別の漢字に割り当てられているようなのだ。例として問題のある字幕が出てくる一部シーンのスクリーンショットを下部に掲載するが、場面によっては全くどんな会話をしているのか推測もできないような文章が流れてくる。

台詞の字幕のみ異常でメニュー画面やUIは全く問題ないことから字幕のフォント定義がおかしくなっているのだろうが、日本語が分からないスタッフがフォントデータを組み込んでテストプレイも文章は読まず強制終了せず動いたからヨシ!とやったとしか思えん。

f:id:BCC:20210522230843j:plain

f:id:BCC:20210522230911j:plain

f:id:BCC:20210522230925j:plain

 

またローカライズという特定の問題以外にも、設定やPC環境によらずカットシーンで22fps・通常のプレイ時では66fpsまでしかフレームレートが出ないという不具合が多数報告されている。

日本語字幕にしろフレームレートにしろ、一年前に発売されたEGS版で不具合報告があって話題に上がって修正されていてもよさそうなものだが、EGSにレビュー・コミュニティ機能がないせいで不具合報告が簡単に上げられなかったか、そもそもEGS版を購入する人がほぼいなかったとしか思えん。こういうところにもEGS時限独占の弊害が出ている。

Steam版バイオハザード ヴィレッジが配信開始。外部ストアで海外版キーを購入すれば表現規制なし・日本語音声・日本語字幕で遊べる

サバイバルホラーゲームシリーズ最新作「バイオハザード ヴィレッジ」がSteamにて配信が開始された。

暴力表現に関して何かと五月蠅い日本仕様向けに表現がマイルドになっている通常版と18歳以上対象のCERO Z版の2バージョンが用意されているのだが、実は過去作7・RE2・RE3と同様にCERO Z版でも海外版に比べて表現が抑えられている

これまた過去作同様、Steam以外の外部サイトで売られている海外版Steamキーは現時点でリージョンロックがかかっておらず、海外版といっても日本語音声・日本語字幕共に完備されており母国語のまま遊べてしまうので、規制が気になる人は購入・登録できるうちに外部サイトから購入してSteamに登録したほうがいい。

自分はGamersplanetで発売前に予約したが、問題なく予約特典ありでSteamに登録できた。

ハンドガンやショットガンで頭部の欠損が発生する、イベントシーンでイーサンの腕が欠損するシーンで断面がそのまま、出血表現が赤いことを確認。

f:id:BCC:20210508035053j:plain

f:id:BCC:20210508035107j:plain

 

ゲームはバイオハザード7の続き。主人公イーサンとその妻ミアは一人娘ローズマリーを授かりヨーロッパで平穏な生活を送っていたが、突然クリス・レッドフィールドが率いる特殊部隊が家庭を襲撃し、ローズを連れ去ってしまう。

イーサンも気絶させられ連行されてしまうのだが、目を覚ますと護送中のトラックが事故を起こして道路に投げ出された状態となっていた。なんとか近くの村まで避難したもののそこで怪物に遭遇し、更に謎の老婆から自分の娘がこの村にいることを告げられ、イーサンは娘を助けるためこの村やそびえ立つ城を探索することとなる。

f:id:BCC:20210508035923j:plain

f:id:BCC:20210508035950j:plain

f:id:BCC:20210508040042j:plain

f:id:BCC:20210508040257j:plain

f:id:BCC:20210508040325j:plain

f:id:BCC:20210508040406j:plain

f:id:BCC:20210508040603j:plain

f:id:BCC:20210508040628j:plain

 

Steam版アルカナハート3 LOVE MAX SIXSTARS!!!!!! XTEND 倍速になったりゲーム速度が異様に早い場合の対処方法

Steamへの移植というクラウドファンディングが実施された際にストレッチゴールとして用意されていた追加キャラクター「ピストリクス系29号」「ダークハート」の実装、各キャラクターのバランス調整や16:9画面への対応といった新要素も遂に実装され、タイトル名称も変更となった「アルカナハート3 LOVE MAX SIXSTARS!!!!!!

現在ゴールデンウィークセールが開催されており5月7日まで67%オフとなっており、久々のバージョンアップということで購入した方もいるかと思うが、Steam版アルカナハート3にはゲームのフレームレートがディスプレイのリフレッシュレートに依存するという、60fps動作前提のゲームなのに120Hz以上のディスプレイが珍しくないご時世に致命的な仕様がある。

コンソール機に移植されておらず折角Steam版を購入したのにゲーム速度が倍速だったりして遊べないと困っている人が何人か見受けられたので対処方法を記載しておく。なお、解説するのはNVIDIA GeForceの場合の設定方法でIntel HD GraphicsやAMD RADEONは設定方法が異なる、もしくは設定できない可能性もあるので注意。

またGeForceでもビデオドライバを最新にしておかないと設定が出てこない、ドライバのバージョンによっては表記が異なることもある。

アルカナハート3に限らず、最近発売されたタイトルではSteam版「NieR Replicant ver.1.22474487139...」でも同じ現象が発生し同様の対処方法で解決するので覚えておいて損はない。

ゲームを普通に起動して動きが早い場合、まずはWindowsのデスクトップ画面で右クリックを押して「NVIDIA コントロールパネル」を選択。

f:id:BCC:20210502191852p:plain

NVIDIA コントロールパネル」ウィンドウ左側より「3D 設定の管理」を選択し、「グローバル設定」タブ内の設定の項目を最後までスクロールすると出てくる「垂直同期」を「3D アプリケーション設定を使用する」に変更する。他のゲームでフレームレートを稼ぐためにこの設定を変更している人が珍しくないが、ドライバ側から一律に垂直同期を無効にするとトラブルの元となりやすいので、垂直同期を無効にしたい場合はゲーム内の設定から変更するか、後述する「プログラム設定」タブ内で目的のゲームを追加して個別に設定を変更しよう。

また

f:id:BCC:20210502192657p:plain

 

次はグローバル設定タブ横にある「プログラム設定」タブをクリックして切り替え、「追加」ボタンを押す。

f:id:BCC:20210502193115p:plain

 

事前にアルカナハート3を起動していれば「サメちゃん」アイコンの「AALib.exe」という実行ファイルが出ているはずなのでこれを選択して追加。

f:id:BCC:20210502193242p:plain

 

設定の項目をスクロールしていくと先ほどの「最大フレームレート」という項目があるので、これを「オン」にして数値を「60 FPS」に変更し、「適用」ボタンをクリック。これで完了だ。ゲームを起動してみて60fpsで張り付いていれば成功。

f:id:BCC:20210502193350p:plain

 

 

ちなみに、デフォルト設定だと字幕表記が英語設定となっているので日本語にしたい場合はタイトルメニューより「OPTION」→「Sound & Language Option」の項目を開いて「Text Language」を「Japanese」にしてメニューを閉じれば日本語表記となる。

f:id:BCC:20210502193600j:plain

f:id:BCC:20210502193732j:plain

f:id:BCC:20210502193746j:plain

f:id:BCC:20210502193801j:plain

 

あと、オンライン対戦でラグが酷い場合は最初の掛け合いをスキップせずに最後まで再生すると同期が安定しやすくなるらしい。

Steamで日本産ゲーム中心に割引となる大規模セール「ゴールデンウィークセール」が5月7日まで開催

PCゲーム配信サイトSteamにて日本産のゲームを中心に5月7日午前2時までのゴールデンウィークの期間中割引対象となる大規模セール「ゴールデンウィークセール」が開催されている。せっかくのゴールデンウィークだというのにこんなご時世ではどこにも出かけられないと嘆いている方も多いかと思うが、連休中は自宅でゲーム三昧だ。

Steam ストアページ - ゴールデンウィークセール

f:id:BCC:20210430025229p:plain

セール対象の一例として、先週に前作のバージョンアップ版「ニーア レプリカント ver.1.22474487139...」も発売されたアクションRPG「ニーア オートマタ」が50%オフ、配達員として荒れ果てた大地でルートを模索し人々に荷物を届ける「デスストランディング」が60%オフスーパーファミコンで発売されたアクションRPG聖剣伝説3」を3Dで完全リメイクした聖剣伝説3 TRIALS of MANA」が50%オフ、田舎町で発生した謎の連続殺人事件の真相を追うためテレビの世界へと足を踏み入れる少年少女たちの冒険と成長を描くRPGペルソナ4 ザ・ゴールデン」が30%オフ、シーズン5が開催されVシフトという新たなシステムや新キャラクターも追加されているストリートファイターV」が60%オフ等、過去の大規模セールでも対象となったタイトルはもちろんのこと、

今回のゴールデンウィークセールで初割引となったタイトルとしては、新たな主人公・新たな舞台・新たなシステムで旧作から一新されたシリーズ最新作龍が如く7 光と闇の行方」が30%オフ(DLC込のエディションは33-35%オフ)、「ロードス島戦記」を原作とし先月に早期アクセスを抜け製品版リリースとなったメトロイドヴァニアロードス島戦記ディードリット・イン・ワンダーラビリンスー」が20%オフ、過去に携帯ゲーム機で発売されたバージョンに新ダンジョンや動画配信向けの新機能を追加したローグライク不思議のダンジョン 風来のシレン5 plus フォーチュンタワーと運命のダイス」が20%オフ、大人気ラノベ・アニメ「Re:ゼロから始める異世界生活」を原作にゲームオリジナルストーリーが展開するアドベンチャーRe:ゼロから始める異世界生活 偽りの王選候補」が30%オフ落ちものパズルの定番「テトリス」と「ぷよぷよ」が合体したぷよぷよテトリス2」が30%オフなど。