53res
2012-01-14 00:50:24 ~ 2013-03-29 20:51:47
レトロPCのイベント・同人誌等について語るスレ
2013-06-07 15:25:27
PC-9821/9801スレッド Part58
2013-06-05 11:58:58
森田和郎さんを悼む
2013-06-02 12:18:52
栄光の30年 疾走する知性 聖女東瑠利子の世界
2013-05-14 17:01:44
もらんぼんスレ パート2
2013-05-03 03:15:38
PC-9821/9801スレッド Part57
2013-04-26 10:14:47
8086 vs. Z80 vs. 6809 vs. 6502 その9 (再び)
2013-04-14 23:55:18
FMシリーズを語るスレ Part FM-11
2013-04-14 16:35:33
日本独自のパソコンガラパソって絶滅したな
2013-04-11 01:06:43
今でもX680x0ユーザー全員集合 Part 56
2013-04-09 02:03:35
基本、開発・人柱・新バージョンの報告や話題等で進行をお願いします
たまには上記の延長線上での脱線も可
※家庭用ゲーム機器は板違いです。(ぴゅう太はOK)
※ジェネレーターや其れに準ずる質問等はスレが荒れる原因になるので華麗にスルーして下さい
※上記の事柄に反応した場合その人も同じ池沼扱いされますので決して反応してはなりません
※このスレは如何にスルーできるか問われるスレですので肝に銘じておいて下さい
※禿しく空気読め
前スレ:PCエミュレーター統合スレッド Part5
http://www.logsoku.com/r/i4004/1326469824/
http://www.nicovideo.jp/watch/sm20456675
rpiフィルタを使えるdll添付
XM7Dash翼
ttp://www1.axfc.net/uploader/so/2851095
p:FD0D
乙です。何点か質問。
>明るさはSetFilterで後から調整も可能なのでマウスホイールで調整とか
対応してみたんだけどSetFilter呼ぶだけじゃダメだった。
まぁいろいろやってみる。
>hMainWnd代入タイミング(for w32_cfg.c:RestoreFrameWnd())
タイミングによってhMainWndがNULLの状態でRestoreFrameWnd()が呼ばれるケースが
ありえるってことかな。とりあえずNULL対策だけ入れた。
>TranslateAccelerator()以下のHWNDが無効のハンドルで呼ばれる場合がある
これって以前指摘されたときはdashも一応暫定対策入れてたけど、
本家側でOnDestroy()からはhMainWndをNULLにする処理が外され、
OnQuit()って関数が追加されてループからbreakするタイミングで
hMainWndをNULLにするようになったので
TranslateAccelerator()をNULLで呼ばなくなったと思って
暫定対策は消したんだけど、別のケースかな。
ちょっと気になっている点が…。
WtCalというフリーのデスクトップカレンダーソフトを使ってるんだけど、
このカレンダーソフトでデスクトップにカレンダーを描画した領域の
上に相当する所へDLLで描画すると、稀に書き損じる?ことがある。
ただし普通に描画されている状況で書き損じることはない。
一番簡単に症状を確認するには、
1.WtCalでカレンダーを表示しているところと重なるようにdashを実行
2.dashを最小化→最大化
3.dashのWindowメニューを表示(裏にカレンダーが表示されているところなら
どれでもよい)→メニューを閉じるか隣のWindowメニューに移動
症状:カレンダーソフトのカレンダーと重なる箇所の画像が復帰しない。
※ただしエミュレータ側が常時画面を書き換えていれば大丈夫。
エミュレータ側で同じ画面が継続している状態でテストすると症状が確認しやすい。
ソフトの相性の問題なのか、カレンダーソフト側の問題なのか、
判断がつかなかったので、とりあえず報告。
個人的にはどうもカレンダーソフト側がなにかやってるようにもみえるんだけど、
DLLを使わない場合は発生しない問題なので、対策の手段はあるかもしれないかなと。
まぁ、どうしようもなさげであれば、相性の問題、ってことでFAでもOK。
おまけ。
デスクトップカレンダーはしののん氏のが一番使いやすくて、
WindowsXpの時まで使ってたんだけど、
Windows7にしたら何故か使えなくなっちゃったので、
いろいろ調べて一番似た使い方が出来るWtCalにしたんだ。
すいませんぜんぜんてすとしてませんでちゅたしね
XM6+XM7dash
ttp://www1.axfc.net/uploader/so/2854427
p:filter
>SetFilter
処理後描画ウィンドウへWM_PAINT投げとけばOKですた。
>無効ハンドル
dashで追加したロジックにおける箇所は対応しときました。
本家からのロジックは本家に任せようかと…
>書き損じ(というか復帰し損じ)
OnSize()呼んでる訳じゃないので…、とりあえず調査した結果、
メニュー閉じるときWM_UNINITMENUPOPUPメッセージが飛んでくることがわかったんで、
このときに描画ウィンドウを再描画することに。
描画ウィンドウへWM_PAINT投げるのが一番適切なんだけど、
ソレだと一瞬書き損じてるのが見えちゃうんで、仕方なく直接OnPaint。
書き損じはなくなったんだけど、dashを終了したとき「書き損じてたはず」の領域だけ、
デスクトップにdashの描画ウィンドウの跡が残った。
…これはもう、カレンダーソフトとの相性としかいえないなw
>>9
乙です。また見てみるよー
dashでのみ確認。
○stretch.dll
×2xRpi.dll
○2xRpi+.dll
ですた。
2xRpi.dllも、>>6の時は動いてたんだけどな。
あ、2xRpi.dllも2xRpi+.dllも、同じプラグイン使ってる。
まだdash側の内部動作チェックはしてない。
なんかあればまたコメントしとく。
個人が趣味で作ってるものに何「使ってやってる客」ぶってんだよ
うわあ
XM6+XM7dash東郷
ttp://www1.axfc.net/uploader/so/2855591
p:filter
乙です。
とりあえずどれも動作中。2xRpi.dllの問題も解決。
ところで復帰し損じ(+終了時の書き残し)の件、
2xRpi.dll, 2xRpi+.dllでは生じなかったので、
どうもstretch.dllだけの問題っぽい。
ま、stretch.dllでもWM_UNINITMENUPOPUPで再描画させとければ
イィんだけど(終了時除く)、とりあえず情報として一応報告。
OnClose()のメインウインドウを一端消した直後でCALLすると消し損じる。
OnDestroy()のINIファイル書き込み後位まで待たないとダメっぽい。
ただここまで待ってCALLすると、明らかに消し残しが目に見えるwので、
ちょっと…ねw
とりあえず、WM_UNINITMENUPOPUPの方も含めてデフォルトでは入れず、
XM7.iniにフラグ入れてONの時のみ処理するようにしとく。
さしあたり、WtCalってカレンダーソフト使ってなければ発生しない症状だしね。
>明るさはSetFilterで後から調整も可能なのでマウスホイールで調整とか
をネタに放り込んだマウスホイールで明るさ調整の件を書かなかったのでこちらへ。
・マウスホイール↑で明るく、↓で暗くなります。
マウスモード切替にホイールを設定していた場合は明るさ調整できません。
これはstrech.dll専用の機能であり汎用性がないので隠し機能ってとこで。
すばらっ
外部音源dllで動かないものはCreateせずにMixが呼ぶのに対応していないから
genpfmで音が変になるのはプリスケーラ変更に対応していないからでした
np2fmなんかも結局対応していないので動いても意味が無いけど
LoadMenuしたらDestroyMenuしたほうが良いかも
外部音源DLLセット
ttp://www1.axfc.net/uploader/so/2865336
p:9801
ttp://takeda-toshiya.seesaa.net/article/354697912.html
DLL作ろうと思ったけどgetcupsとかがない古い仕様しかわからなくて作れん
でもfmしか使ってないソフトばっかりでだめだ、レジスタ出力もフィルタされてるし
PSGやリズムの音量設定の機能等も組み込んであります
未だにアバウトな仕様なのですがこれが基本という事で
fmgen wrapperソース
ttp://www1.axfc.net/uploader/so/2866773
p:wrapper
とりあえず現状わかる範囲で仕様書っぽいの作ってみた。
ttp://tomatoma.s54.xrea.com/pc/fmdll.html
まだindex.shtmlとのリンクとかは張ってない。
fmdll.hからのコピペだし、チェックとかまだ全然だけど、
各DLLの使用可不可○×は各DLLの中身みて確認したからあってるはず。
>>26のfmdll.hはバグってて使いものにならない状態だったようです
とりあえず>>26のfmdll.hをdash用に加工したモノ
ttp://tomatoma.s54.xrea.com/data/fmdll_xm7dash.zip
>>26のバグって、追加されたAPIの一部のAPI存在フラグチェックかな。
実処理側が消してないので、多分そこでコンパイルが通らないんだね。
無効化してある関数ポインタとGetProcAddressの//をとっちゃえば
コンパイル通るよ。
CSMをCMSと間違えたりもしてました
独自に拡張してXM7dashのレベルメータ対応dllなんかも作れます
あまり独自にしすぎるとカオスになりますが
豆FMV
ttp://www1.axfc.net/uploader/so/2868353
p:fmv
豆FMV(2)
ttp://www1.axfc.net/uploader/so/2868608
p:fmv
マジキタコレw
…ありがと!
今後はデフォこれにするわ~w
ttp://tomatoma.s54.xrea.com/pc/fmdll.html
一応修正しといたけど、このページの扱いをどうするか考察中。。。
XM7dashのrbufに格納されるデータより小さくなります
あとXM7dashは特殊的にレジスタ0xffをタイマーA起動用に使っているので
dll側がCSMに対応していない場合は自前で実行した方がいいかも
pFmDll->SetReg(pOPNA[*], (uint8) reg, (uint8) dat);
の部分を
if (reg == 0xff) {
if (!(pFmDll->GetCaps(pOPNA[*]) & SUPPORT_CSM)) {
pFmDll->SetReg(pOPNA[*], (uint8) 0x28, (uint8) 0x02);
pFmDll->SetReg(pOPNA[*], (uint8) 0x28, (uint8) 0xf2);
}
} else
pFmDll->SetReg(pOPNA[*], (uint8) reg, (uint8) dat);
みたいに
対応してみた。β版その2
ttp://tomatoma.s54.xrea.com/xm7/data/xm7dash_130416beta.zip
ディスプレイの音量補正は擬似的に掛けてみたけど、
音量設定-10未満まで下げるとさすがにダメっぽい。
まぁデフォ設定で使うレベルなら気にならない感覚かなと…。
ただし音源の機能は無い魔法は尻から出る
ttp://spoiler.shiteyattari.com/pStereo.zip
M88だとfmgen以外は一部の音が発生されませんでした
x88x17に内蔵されてるpStereo機能だとfmgen以外でも問題なかったです
おまけでpStereo.dllにはLPF機能が付いている
新しい外部音源がアップされてたから機能追加しないといけないな