2025年4月13日日曜日

MOONLIGHT & SUNSHINE

 ROCKNIXでMoonlightとやらの設定があった。どうやらNvidiaのGameStreamとやらでPC上のゲームをlinuxゲーム端末で遊べるというものらしい。

ただ、いくら探してもnvidiaのアプリ上にgamestreamらしきものはなかった。どうやら非対応になった模様。

それに代わるものとしてMoonlightの開発チームがsunshineというものを作っているようだ。PC上にsunshineをインストールし、PCのIPをlinuxゲーム端末に設定すると、遠隔でPC上のゲームを遊べる。

PCは電源を入れてsunshineを動かしておかなければならない。wakeonlanとか設定して自動ログインとかにしておけばいつでも遊べる感じになりそうだが、めんどくさいのでそこまではしない。

steamのbig pictureが多分最初から設定されていて(インストールされてあったら自動的に登録されてたりする?) 、まあまあそれなりに遊べそう。

マウス入力はできなそうなので、ゲームパッドで遊べるやつ専用かな。とりあえず428は遊べそうだが、画面サイズが640x480でなんか縦長に圧縮されたような画面になってちょっと気になる。

終わらせ方はSELECT+RUN+L1+R2同時押しで終わる。

2025年4月10日木曜日

自民党がまた金配るみたいだな

現役世代から金をとって老人に配りたいんだろう。それで票を買いたいわけだ。そもそも配るくらいなら最初から取るなと言いたいところだが、一度作った仕組みは変えたくない、一度取り始めた税金は意地でも減税したくないという事だろう。

プログラム的に言うと継ぎ足し継ぎ足しで無駄コードがわんさか入っているスパゲッティコードだけど、動かなくなるから削るなみたいな感じだろうか?

放送法とか。当初は電波塔とかの整備で予算が必要だったのかもしれないが、もう要らんはずだし。 ガソリン税も二重課税になって、一般財源にされて何に使ってるかよくわからなくなってる。流用流用で何に使ってるか分からないまま税金だけどんどん増えている。

プログラムだったら、コードを見直して、何がどうなっているか把握できる状態を保っておかないと管理できなくなるんだが。都度見直しして根本原因を直す。コードは常にきれいに無駄なく保つってことができない奴は優秀とはいえない。

口先だけの文系に任せてるからこうなってるんじゃないのか?もっと理論立てて仕組みを考えられるやつにやらせたほうがマシになるんじゃないのか?

と思ったりしていたが、アメリカではイーロンマスクが容赦なくリファクタリングしまくっているようだ。将来的には無駄を排除したすっきりしたシステムになるのかもしれないが、どうなるんだろう。結構な痛みは伴っているようだが。

しかしアメリカはすごいな。日本だと一人二人変わったところで、何も変わらずスパゲッティを肥大化させていくだけだろう。

2025年4月5日土曜日

続4:中華linuxゲーム端末でセガサターン

yabasanshiro-saでGRANDIAのムービーが遅い原因を調べている。覚書のメモ。(実は雑音がひどいだけで遅くなかった)

ソースコードvdp2.cpp:882くらい

swap_frame_bufferがmanual changeされていて、VDP1 offset 0x02にval=3が書かれたとき更新される。

 FBCR
 Frame buffer switching mode

どうやら遅いわけではなく、もともとそういうスピードにしてそう。

音が雑音だらけで遅くなっているのかと勘違いしていた。どうやら雑音だけの問題の模様。

SCSPのSLOT04とSLOT08を使っている模様

04だけ止めるとほぼ無音(あっているのか?) 

08だけ止めたがノイズまみれ。ただ、部分的に問題なさそう

とりあえずSLOT04が悪いようだ。

データを見てみると、サウンドバッファにあるデータをM68kに投げて、データを戻してから再生するようだ。おそらく、M68kとやらを使って圧縮された音を展開しているんじゃないだろうか。

原因を調べようとprintfを入れると音がマシになる。

またタイミング問題かよ。。。

memo

なんかyabause.cのあたりで、CPUシミュレーションとSCSPシミュレーションの同期が取れてないような気がしてきた。

とりあえずyabause.cの中を見てみる

deciline = 1/10ライン
SCSP 44100 * 512 clock?
M68k 44100 * 256 clock?

decilineの9と10でHBlankINとHBlankOUTになり、ScspExecされる

PAL 50フレーム x 313ライン
NTSC? 60フレーム x 263ライン

1/10ライン当たり 143.0874... clockということ
この端数が良くないとか?

scsp_cycles_per_deciline =

VLBlankで
    setM68kCounter((u64)(44100*256/60)<<SCSP_FRACTIONAL_BITS)
    SmpcINTBACKEnd()
    Vdp2VBlankIN()
    SyncCPUtoSCSP()