2026年8月1日土曜日

Dolphin bar関連

Dolphine bar 2つとWiiリモコン2つを使って2人でガンシューティングゲームを遊ぶ時の設定メモ


 (1) Dolphin bar + DemulShooter + M2emulator


Dolphin bar 設定は2 Wiiリモコンプラス リモコンのLEDは左端と右端が点灯

ディスプレイの解像度は1280*1024 画面比率4:3で表示されるのを確認しておく


DemulShooter
P1 Config
DeviceはID違いで2種類、各IDに2種類の4つ出てくる
上から2番目を選択
+マークがポイントに反応して動くこと、Bボタンが1、Aボタンが3
Enable "Virtual" mouse Buttons にチェック →チェックしない
→Save Config(不要かも)


P2 Config
Page selectionからP2 Configurationを選択
Deviceは上から4番目を選択
+マークがポイントに反応して動くこと、Bボタンが1、Aボタンが3
Enable "Virtual" mouse Buttons にチェック →チェックしない
→Save Config


M2Emulatorの設定 →Install m2emulator crosshair scriptsボタンを押す。
M2Emulatorの実行ファイルがあるフォルダを選択する。




DemulShooterフォルダにbatファイルを作成 HOD.bat


M2Emulatorの事前設定
エミュレータを起動。起動するのは emulator_multicpu.exe
Romを読み込んだ後、Game - Confirure Controls
Raw input=0でないとマウスの操作ができず、メニューが開けないと思います。

キーコンフィグでコインとスタートボタンを設定する
1 1Pスタート、2 2Pスタート
5 1Pコイン、6 2Pコイン、

今回コントローラからの入力はRaw inputで処理するのでコントローラの設定は不要だと思います。

VideoメニューからAuto Switch to Fullscreenにチェック(全画面表示)


いったんエミュレータを終了。


M2Emulatorの.iniファイルの

UseRawInput=1
RawDevP1=0
RawDevP2=1



最初にdemulshooterの.batファイルを起動。HOD.bat
エミュレータを起動。起動するのは emulator_multicpu.exe
ロムを読み込んで、5,6キーでコインを入れて1,2キーでゲームを開始。
全画面で1P、2Pともにポインタ操作、Bボタンでショット、AボタンでリロードできればOK



(2)Dolphin bar + PCSX2(ver1.6) + Nuvee plugin

「こんぽここん」様が詳しく解説されています。

https://ameblo.jp/mens-style-shop/entry-12671968924.html


ディスプレイ解像度は勝手に1264x976になっていた。


スピードハック、ゲームフィックスはチェックなし


USBのプラグインセッティング Raw input



Port1とPort2をそれぞれ下記のように設定する。


Acquireを押す。



OK



 GamePADを接続している場合、ガンコン代わりに使うか聞かれるが、いいえ


Wiiリモコンでアクティブウィンドウを狙ってトリガを引くと。Device Found、使えると表示される。

時々キャリブレーションの指示が出るときがあるが詳細は不明。指示されたとおりにOKで画面を閉じた後、リモコンを上下左右に振ってから、アクティブウィンドウを狙ってトリガ





OK


ゲームを開始する。フルスクリーン。ウィンドウモードの場合はマウスが2重に見えるが、フルスクリーンの場合は、マウスカーソルは1つに見える。右や下にカーソルがハミ出すと左上に表示される。

しばらく待つと1P側のガンコン調整画面が出る。
最初は灰色、マウスが画面内に入ると画面が明るくなってターゲットが表示される。
真ん中の標準を狙って1発撃つ。狙っている位置にカーソルが出ればOK
ターゲットが左上に移動するはず。
ここでターゲットが動かないときはうまく動いていない。設定を見直す。
もう一度ターゲットを打つと
Aを押して終了か、もう一度撃って再調整するかの画面になる。

1Pも同様に調整してゲーム開始


(3)Dolphin bar + PCSX2(ver2.1)(1P only)



Ninja Assaultはガンコン2のキャリブレーションが突破できないので
ガンコンなしでゲームを起動して、タイトル画面でF1を押してステートセーブ。
ガンコンをありで、ゲームを開始してF3でステート呼び出し。
ガンコン設定でカーソルpathにpng画像を設定すると、画面上のマウスの位置に画像が表示されるので、画像の動きと、画面内の照準の動きが合うように手動スケーリング調整の値をひたすら調整する。

マウスでちゃんと動けば1人プレイならDolphin barで問題なく動作するはず。



(4)Dolphin bar + Demul +  Ninja Assault  (1P only)
Dolphin barはMODE2。
Demulは1PのみならDemulShooterなくても普通に動く。
HOD2やMOKなどは照準もリロードも問題ない。
Ninja Assaultはそのままではうまくいかない。
0 を押してテストモード、sで移動、テンキーの4で決定。ガンコンの調整メニューに入ってクリックしたときにショットのエフェクトが左上に出る。
テンキーの4を押すとターゲットが左上に移動、カーソルで狙ってそこを打つ(マウスの場合はクリック)。
ターゲットが右下に移動、もう一度カーソルで狙ってそこを打つ。
メニューを抜けるとエイムとショットは問題なくなるが、リロードができない。

全画面表示にしたときに、左と下の画面外を打つとリロードできる。(右と上はリロードできない)

DemulShooterを起動してDemulでソフトを起動をするとソフトが落ちることが多い。たまに落ちないけど理由がわからない。



(5)Dolphin bar(MODE4) + TouchMote + MAME

1つのDolphin barでガンコン2P

TouchMote
Dolphin barはMODE4で2台接続。





MAME


mame.ini






Lightgun X Analogに「Joy1 X軸」、Lightgun Y Analogに「Joy1 Y軸」





(6)Dolphin bar(MODE2) + MAME

2つのDolphin barでガンコンで2人プレイ。






P1もP2もこんな感じでアサインする。 
Delで削除、エンターでアサイン開始、ガンコン動かしたり押したりしてエンターで決定。





(7)Flycast
Dolphin BarはMODE2で2つ。
Flycastは標準でRaw inputに対応している。
HID標準マウスとHIDキーボードが2セット表示される。(表示上は区別できないので勘で設定する)
マウスのほうは設定するところなし。


キーボードのほうで右上のArcade Controls CoinとStartをアサインする。
Test とかServiceも必要かもしれない。







2026年6月16日火曜日

vbaでプロセスが実行中かどうか調べる

 vbaでプロセスが実行中かどうかを判別する。

WindowsAPIのFindWindowと異なり、タスクトレイ常駐タイプ(Window名が出ないプログラム)にも使える。



Sub Test()
    If IsProcessRunning("WowShot2.exe") Then
        MsgBox "WowShot2.exe は起動中です"
    Else
        MsgBox "WowShot2.exe は起動していません"
    End If
End Sub

Function IsProcessRunning(processName As String) As Boolean
    Dim objWMI As Object
    Dim colProcess As Object

    Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
    Set colProcess = objWMI.ExecQuery( _
        "SELECT * FROM Win32_Process WHERE Name='" & processName & "'")
    IsProcessRunning = (colProcess.Count > 0)
End Function

Sub RunWowShot2()
    If Not IsProcessRunning("WowShot2.exe") Then
        Shell "C:\path\WowShot2.exe"
    End If
End Sub

2026年2月7日土曜日

Excelのvbaで他のアプリのウィンドウ内のテキストボックスにテキストを入力する

Excelのvbaで他のアプリのウィンドウ内のテキストボックスにテキストを入力し、ボタンを押します。 

Windows API (Win32 API)を使う。
DFindWindow系はクラス名かウィンドウハンドルのどちらかを指定する。指定しない方はvbNullString。

32bit環境でしか動作確認を行っておらず、DecleareにPtrSafeをつけてみたけどそれでOKかどうかよくわからない。LongPtrに変更が必要な個所があるかもしれない。


Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWndParent As Long, ByVal hWndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As String) As LongPtr

Sub test()
    Dim mainHwnd As Long, editHwnd As Long, btnHwnd As Long
    Const WM_SETTEXT As Long = &HC
    Const BM_CLICK As Long = &HF5
   
    mainHwnd = FindWindow(vbNullString, "Meiryo UIも大っきらい!!")
    editHwnd = FindWindowEx(mainHwnd, 0&, "Edit", vbNullString)
    btnHwnd = FindWindowEx(mainHwnd, 0&, vbNullString, "設定せず終了")
   
    Call SendMessage(editHwnd, WM_SETTEXT, 0, "メイリオ  11pt")
    Call SendMessage(btnHwnd, BM_CLICK, 0, 0)
End Sub


参考にしたサイト様
【VBA×WindowsAPI】Buttonコントロールを操作する LiCLOG様

VBAでWin32APIを使ってシートの文章を全てメモ帳に自動入力する方法 Excel作業をVBAで効率化 様

ウィンドウのハンドル・クラス名一覧を作成する Excel Tips for Learners様


2025年10月5日日曜日

FF外伝 光の4戦士 星の奈落MAP

ファイナルファンタジー外伝 光の4戦士

 ラストダンジョンの星の奈落の5F以降のマップです。web上で見つけられなかったのでメモしてみました。Dが下り、Uが登りです、ナンバリングとかメチャクチャですが参考にしてください。私はD11を見つけられずかなり長時間さまよいました。冒険家2人でとんずら推奨。

クリア時間31H、LV51、勇者、勇者、白、精霊
かなり癖が強かったです。



2025年3月14日金曜日

Excelのvbaでjsonファイルを読み込んでシートに記載する

 エクセルのvbaでjsonファイルを読み込んでシートに記載する


準備としてVBA-JSON(JsonConverter.bas)をインポートしておく

https://github.com/VBA-tools/VBA-JSON

Visual Basic Editor の参照設定でMicrosoft Scripting Runtimeにチェックを入れる






jsonファイル(test.json)

{"aa":[
    {
        "id":"1",
        "contents":"あああaa"
    },
    {
        "id":"2",
        "contents":"hogehoge"
    }
]}






vbaのマクロ

Set jsonObj = JsonConverter.ParseJson(buf)とすることで、オブジェクトに代入できて

.countで要素数を返したり
()で配列みたいに指定したり
For Each Key でキー名を順に取り出したり出来るみたいです。
キー名は""で囲うのは忘れずに

Sub open_json()
    Dim buf, jsonObj, cnt, i
   
    With CreateObject("ADODB.Stream")
        .Charset = "UTF-8"
        .Open
        .LoadFromFile "./test.json"
        buf = .ReadText
        .Close
    End With
   
    Set jsonObj = JsonConverter.ParseJson(buf)
   
    For i = 1 To jsonObj("aa").Count
        cnt = 1
        For Each Key In jsonObj("aa")(1)
            Cells(1, cnt) = Key
            If IsObject(jsonObj("aa")(i)(Key)) = False Then Cells(i + 1, cnt) = jsonObj("aa")(i)(Key)
            cnt = cnt + 1
        Next
    Next i
End Sub

2025年2月2日日曜日

ExcelのFaceIDリスト

 エクセルのFaceIDリスト















たぶん2019のFaceIDリスト



2024年12月7日土曜日

韓国語の「歌を歌う」みたいに名詞と動詞がだいたいセットになる言葉

 韓国語の「歌を歌う」みたいに名詞と動詞がだいたいセットになる言葉メモ

ただし、肝心の「歌を歌う」は노래를 부르다.


꿈을 꾸다. 夢を見る

잠을 자다. 寝る

그림을 그리다. 絵を描く

춤을 추다 踊りを踊る

부침개를 부치다 チヂミを焼く






=========

품사 品詞


명사 名詞

대명사 代名詞

수사 数詞

관형사 連体詞、冠形詞

부사 副詞

토씨 助詞

감탄사 感嘆詞


동사 動詞

형용사 形容詞


존재사 存在詞

지정사 指定詞

동명사 動名詞

부정사 不定詞(韓国語には存在しない)

조동사 助動詞

전치사 前置詞(韓国語には存在しない)

의문사 疑問詞

약자、준말、줄임말、줄인 말、약어 略語


체언 体言

용언 用言

어간 語幹

어미 語尾

관계어 関係語

독립어 独立語

수식어 修飾語

접속어 接続語


주어 主語

술어 述語

목적어 目的語


경어、존댓말、높임말、존경어 尊敬語

반말、반모 タメ口


말뜻、말귀 意味


한글 ハングル

모음 母音 21個=基本母音10個+合成母音11個

자음 子音 19個=基本子音10個+激音4個+濃音5個


안울림소리、무성음 無静音

평음、예사소리 平音 ㄱ, ㄷ, ㅂ, ㅅ, ㅈ

격음、거센소리 激音 ㅋ,ㅌ,ㅍ,ㅊ

경음、된소리 濃音 ㄲ,ㄸ,ㅃ,ㅆ,ㅉ

마찰음 摩擦音 ㅎ


울림소리、유성음 有声音

비음 鼻音 ㄴ,ㅁ,ㅇ

유음 流音 ㄹ


기역(キヨク)ㄱ

니은(ニウン)ㄴ

디귿(ティグッ)ㄷ

리을(リウル)ㄹ

미음(ミウム)ㅁ

비읍(ピウプ)ㅂ

시옷(シオッ)ㅅ

이응(イウン)ㅇ

지읒(チウッ)ㅈ

치읓(チウッ)ㅊ

키읔(キウク)ㅋ

티읕(ティウッ)ㅌ

피읖(ピウプ)ㅍ

히읗(ヒウッ)ㅎ

쌍기역(サンギヨク)ㄲ

쌍디귿(サンディグッ)ㄸ

쌍비읍(サンビウプ)ㅃ

쌍시옷(サンシオッ)ㅆ

쌍지읒(サンジウッ)ㅉ