したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

【エミュレータ】Emueraスレ【+1】

182妊)|д゚):2020/04/22(水) 05:41:45 ID:sOjfeKtQ
一応もう少し詳細に調べてみましたが、これ思った以上に単純じゃないかも
一応画像なしでも1回だけ同じ現象が起こりました(ただし画像ありに比べ遥かにレア)

さて、どこからあたりをつけていったものやら

183妊)|д゚):2020/04/23(木) 13:38:08 ID:ovhglBC2
描画の際に処理が詰まってそのまま落ちる感じってのが共通してるから、
何かしらリソース競合でも起こしてるんじゃなかろうか感

っても、競合するような処理あったっけかなぁ…

184あなたの名前を入力してください:2020/04/24(金) 20:58:19 ID:BSM4OiKE
超乙

185あなたの名前を入力してください:2020/04/24(金) 21:53:51 ID:pcyo5Sus
どっかで描画用のハンドル上書きしてるのでは?

186妊)|д゚):2020/04/27(月) 22:43:07 ID:MsFVIMhQ
○1824+v9
https://ux.getuploader.com/ninnohito/download/473

ARRAYMSORTがint32の範囲外の値を扱えなかったのを修正

187妊)|д゚):2020/05/05(火) 07:41:29 ID:mCaYU0Go
ちょっと話に出てたので、Emueraのフォント回りの初期設定について

サイズと一行の高さをずらしているのは見た目の問題もありますが、意図的な部分もあります
MSゴシックの場合だとサイズと高さを一致させても『たまたま』うまく収まってくれてますが、
これはMSゴシックがそういうフォントだからというだけで、
実はフォントの高さはフォントサイズでは決まらないという楽しい仕様があります
なので、サイズ13pxでも高さが13px以上というフォントってのが普通に存在しています
そういうフォントでは意図的に高さを大きくにとらないと欠ける(描画被り)のです

以上を踏まえてデフォルトではなるべくどの環境でも安定して表示できるような設定としての意味もあって現状を維持しています
(これでも全然足りないフォントも実のところありますが)

これについてはフォントそのものの特性から来るものでプログラム的に手の打ちようがないですので
設定をいじってフォントの描画が欠けて表示されるとかが起こっても自己責任ということでお願いします

188あなたの名前を入力してください:2020/05/05(火) 10:02:53 ID:F1zf.s4Q
ふぉんとうに大変やね

189あなたの名前を入力してください:2020/05/06(水) 13:56:17 ID:WRu2xm.Q
[反発刻印]

190あなたの名前を入力してください:2020/05/06(水) 14:50:27 ID:uiCYCAFM
【崩壊】

191average:2020/05/06(水) 22:01:55 ID:0MYNxND6
バグ報告です。
#DIM で初期値を代入すると初回呼び出し時しか代入されない不具合が確認されました。
ユーザー定義変数を使用した場合、同じ関数を2回呼び出すと、2回目以降は初期値が格納されず、前回関数実行時の変数が格納されたままになってしまいます。

http://book-shelf-end.com/up/dwlink.cgi?eraRx1125.zip

192あなたの名前を入力してください:2020/05/06(水) 22:13:23 ID:IS2joLTo
仕様だと思ってたけど違うの
ダイナミックにしたら多分考えてる挙動になるはず

193average:2020/05/06(水) 22:14:12 ID:0MYNxND6
>>192
仕様だったみたいです、ありがとうございます
https://ja.osdn.net/projects/emuera/wiki/UserVars

194あなたの名前を入力してください:2020/05/07(木) 00:48:33 ID:M2xQJSaY
この仕様有効活用してるケース意外と多い(特にライブラリ系)

195あなたの名前を入力してください:2020/05/10(日) 17:48:41 ID:xXsw53IY
特別なコード呼び出しを利用せずシングルトンを実装する手法だからね…
割と闇技法だけど

196妊)|д゚):2020/05/11(月) 01:27:53 ID:SKORQ4Cc
staticを前提とする言語自体特殊過ぎるからねぇ…

197あなたの名前を入力してください:2020/05/12(火) 07:12:21 ID:X6cgLrfM
erabasicの関数自体が、ほかの言語を基準でstaticを使わず考えると、(最低でもLOCALが含まれる)「ローカル変数」というメンバとメソッドを1つを持ったシングルトンみたいな感じ
なので、引数で"getFoo,"setBar"とか与えてシングルトンオブジェクトっぽい運用がeraでできてしまう闇技法

198あなたの名前を入力してください:2020/05/12(火) 07:47:21 ID:H66NOu5Y
ERBファイルの文字コードが複数ある場合(SJIS産ERBとウニコード産ERBがごっちゃごちゃになってる場合)はどうなるんじゃろ?

199あなたの名前を入力してください:2020/05/12(火) 08:22:42 ID:Clqrtu5s
>>198
ちゃんと読んでくれるぞ

200あなたの名前を入力してください:2020/05/12(火) 08:28:15 ID:H66NOu5Y
>>199
㌧㌧

201あなたの名前を入力してください:2020/05/12(火) 09:54:46 ID:X6cgLrfM
(Emuera内部挙動的な話として そもそも、EmueraではすべてのファイルをSJIS指定で読もうとしているが、C#ひいては.Netの読み込みの仕様としてBOMがついている場合Unicodeと判定して自動でファイルを読み込む という話を聞いたことがある)

202あなたの名前を入力してください:2020/05/26(火) 11:42:27 ID:7Vg4qX7Y
ERHでキャラクター変数を多次元で定義したんだが
この場合ってVARSETは使えないんだろうか

203がめら ◆yRq2AQRMpQ:2020/06/04(木) 09:15:19 ID:.wbsCb66
http://book-shelf-end.com/up/dwlink.cgi?eraRx1214.7z

EmueraでWebP画像を読み込めるようにしました。

・PNGのようなロスレス(ファイルによってはPNGより大きくなることもあるが概ね削減)
・ロスレス風の高画質非可逆圧縮
・JPEGみたいな感じになるけど透過ファイルも対応した非可逆圧縮

の3種に対応した凄いコーデックです。
Readmeにも書きましたが、eraTW4.750のresources直下のPNGでテストした所

オリジナルPNG:28.3MB
非可逆:15.85MB
ロスレス風(画質重視):17.2MB
ロスレス風(容量重視):14.2MB
ロスレス:25.4MB

になったため、既存バリアントのサイズをかなり縮める事が出来ます。
src1824.7zの中のlicense.txtにWebPライブラリのMITライセンスを追記しています。

204がめら ◆yRq2AQRMpQ:2020/06/06(土) 01:52:53 ID:IuQxOpnI
>>203
すみません、同梱したexeに問題があって動かないケースがあったようなのでビルド設定を見直して再うpしました
http://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1590129716/833

http://book-shelf-end.com/up/dwlink.cgi?eraRx1220.7z

205あなたの名前を入力してください:2020/06/19(金) 16:53:42 ID:9ufmwQhs
>>204
URLこっちじゃないですか?
http://book-shelf-end.com/up/dwlink.cgi?eraRx1221.7z

206あなたの名前を入力してください:2020/07/09(木) 18:40:17 ID:UDG9w6Pc
ちょっと疑問に思ったんで質問ですが
関数内でlocalとlocalsのサイズ制限宣言してない場合
emuera起動時に関数毎に確保されるlocalとlocalsのメモリ量って
デフォルト(又はvarなんとかsize.csvで定義されている)値分確保される認識でいいです?

207あなたの名前を入力してください:2020/07/10(金) 00:12:30 ID:zdTBhvQM
https://ja.osdn.net/projects/emuera/wiki/exvar#h5-LOCAL
LOCALが1000個 LOCALSが100個で固定のようです

208あなたの名前を入力してください:2020/07/10(金) 01:00:43 ID:qN3YlIRc
>>206
確保サイズはその通りだと思うけど、
確保タイミングはEmuera起動時じゃなくて関数の初回呼び出し時らしいぞ
https://jbbs.shitaraba.net/bbs/read.cgi/otaku/12839/1290444111/564

209あなたの名前を入力してください:2020/07/10(金) 05:39:08 ID:XZT5cKc.
>>208
トントン

210あなたの名前を入力してください:2020/07/10(金) 22:53:16 ID:qN3YlIRc
適当な関数にバカでかいユーザー定義プライベート変数を生やして試してみたら、
なんか起動直後にメモリ確保されてるように見えて、ユーザー定義変数は動作が別とかかなーとか思ったが
タイトル冒頭でRESETDATA呼んでるのが原因だったというオチ。
RESETDATAはローカル変数も含めて全初期化するんだから当然の動作であった

211あなたの名前を入力してください:2020/07/16(木) 00:17:24 ID:tHD0yyO.
最近のバリアントは ユーザー関数の数が数千数万行く上、キャラ数も多いので、その手のでは
RESETDATAや(C)VARSET操作の時、初期値の代入じゃなくて RemoveAll() とか Clear() とか、積極的にデータを 破棄 しに行ってもいい気がします
ぬるりが怖いグラフィクス系だけど、生 System.Forms や System.Drawing系と接する設計にしちゃってる現状は構造的に辛い様に思います。
ImageMagicやらその他の、あーゆーグラフィックス操作ライブラリをレイヤーとして挟めないもんでしょうか。
(1個のバイナリで済まなくなるのは嫌だけど…)

212あなたの名前を入力してください:2020/07/18(土) 22:35:09 ID:HP3Q0OR2
それ自体は否定しないけど、既存動作を崩し、特に今までのAAや図、マップが崩れるようだったらみんな設定で避けるようになるだけなきもする >レイヤーとして挟む

213あなたの名前を入力してください:2020/07/19(日) 11:42:20 ID:nmkU9XFc
ああ確かに、別ライブラリを介したときに、調整しづらい僅かな描画ずれが起こる可能性は否定でき無いか (デコード結果がアクセラレーションON/OFFで変わるやつもあるし)
最近のちょっぴり賢くなったコンパイラと .net とかインメモリDBとかに任せちゃえば、メンテとかしやすくなるかなと思った次第

そういえば、テキスト描画位置の絶対指定命令って無いのよね。PRINTC系も太字などでずれるけど、今更変えられないか

214あなたの名前を入力してください:2020/07/20(月) 00:55:37 ID:ZzcYK3Vo
まずは条件替えながらヒープのスナップショットを撮るところから始めてみては?

215あなたの名前を入力してください:2020/07/31(金) 19:54:46 ID:7CBQO/NE
Ubuntuでeraやりたかったんだけど
wineというかPlayOnLinuxの使い方が全然分からんので
Monoで動かしたよ

そのまんまだと環境の違いで色々動かなかったりしたけど
多少C#分かるので色々修正してなんとか動くようにした
まだ挙動が怪しいけど

Linuxで動かしてる人はやっぱりwineでやってるのかな?
互換性とかどんな感じ?

216あなたの名前を入力してください:2020/07/31(金) 23:16:01 ID:VhzAfzec
android用だけどuEmueraとかじゃね?
メンテされてるか知らんけど

217あなたの名前を入力してください:2020/07/31(金) 23:22:00 ID:7CBQO/NE
あー存在は把握してたけどAndroidのみだと思ってた
Linux向けにビルドすればいけるのかな?

最終コミットが4月だから
完全に死んでるわけじゃなさそうだが

218あなたの名前を入力してください:2020/08/06(木) 21:42:44 ID:nzkhPgIo
>>204
resourcesのCSVに書けばWebPも読めるけど、GCREATEFROMFILE命令ではWebPに対応していない感じでしょうか?
ちょっとしたお遊びのために試してみると、GCREATEFROMFILEでPNGは読めましたがWebPは失敗しました。
また、普通やらないと思いますがresourcesのCSVに書く方式でPNG画像のファイル名を"顔.WEBP.PNG"のようにするとPNGなのにWebPとして読もうとして失敗?

219あなたの名前を入力してください:2020/08/08(土) 22:35:38 ID:NMBSTzJ6
MonoでEmueraだけど
海外で開発されてる互換フレームワークだけあって
IMEや日本語周りの実装が甘くて
どうしても色々不具合出るね

とりあえず大抵のバリアントは動くようになったと思うけど
これ以上はC#詳しくないと厳しそうだし
限度もありそうだから諦めてwineにするかな

ソース欲しい人いる?

220あなたの名前を入力してください:2020/08/09(日) 18:22:23 ID:vikSb9QY
EmueraのLinuxでの動作回り
Emueraの描画に中でWindows Forms周りさわってるからそこらへんでどうしてもWineでもMonoでも動作怪しいところが出てくると聞いている

現状、.Net CoreのほうでUIライブラリ提供してくれる様子もないからLinuxやMacでのEmueraはきつそう

221あなたの名前を入力してください:2020/08/09(日) 21:02:49 ID:Kvga6Irk
ありゃwineでも限度があるのか
UI周りをマルチプラットフォーム対応のやつに差し替えればいけるかもしれないけど
そこまでする気もないし諦めてwindowsでやるか
情報ありがとう

222あなたの名前を入力してください:2020/08/09(日) 21:08:34 ID:5EatEALI
あたいはmacosの上でParalles Desktopで仮想化したWIndows10を
動かして楽しんでる

223あなたの名前を入力してください:2020/08/09(日) 22:57:08 ID:ZT8/KQwE
つVMware

224あなたの名前を入力してください:2020/08/09(日) 23:18:24 ID:RmTtq54g
.NET MAUIでワンチャンかね
フォントが合わなくてガタる問題に行き着きそうな気はするが…

225あなたの名前を入力してください:2020/08/10(月) 00:36:08 ID:A2pb3acA
linux移植するならUI用のを根本的に変えるくらいまであるかも
gtksharpに移植かなぁ?

226あなたの名前を入力してください:2020/08/10(月) 00:49:37 ID:I4RMuz3A
Winetricksで.NET Frameworkと適当なフォントを入れたら割と普通に動いてた気がするんだがなあ

227あなたの名前を入力してください:2020/08/10(月) 00:54:08 ID:Zx19iUBs
Wineで動いたとしてもまあ本筋ではないよね
本来ならネイティブで動くのが理想ではあるけど、Emuera根本からWindowsべったりな実装だから…

228あなたの名前を入力してください:2020/08/10(月) 02:42:55 ID:U1SmGdyc
普通に動いてるし、すごく素直な方だと思うけどね

229あなたの名前を入力してください:2020/08/10(月) 08:56:08 ID:YpCtdSPQ
個人的には今.Net Coreをマルチプラットフォームって頑張って売りに出してるんだからマルチプラットフォームなGUIライブラリも欲しいなーってMSに期待したいところ

だけど、CUI専用として割り切って作ってる様子があるんだよなぁ…

230あなたの名前を入力してください:2020/08/10(月) 09:01:20 ID:9gs.rrQg
そもそもMS自身のGUIライブラリもWPFとかUWPとかあってどれが本命なのやら

231あなたの名前を入力してください:2020/08/10(月) 15:22:16 ID:NTb0LS6M
https://docs.microsoft.com/ja-jp/windows/apps/desktop/choose-your-platform
いちおうMS的に現行本命はUWPっぽい口ぶりではある
プラットフォーム全体の冗長性の面から従来の物もサポートしているという話で

232あなたの名前を入力してください:2020/08/10(月) 15:32:15 ID:5W9vaEIs
こんな動きも
Microsoft、Win32とUWPの2つのAPIを再統合する「Project Reunion」
〜WinUI 3に統合され、開発者は新しいアプリケーションを開発可能。EdgeやTeamsも機能強化
ttps://pc.watch.impress.co.jp/docs/news/1253193.html

233あなたの名前を入力してください:2020/08/10(月) 18:04:03 ID:RX6mBz4k
>>229
.NET 5で全部統合してマルチプラットフォーム展開(Linux, macOS, and Windows)
その後、.NET 6に向けてマルチプラットフォームGUIは.NET MAUIに。てのがMSの展望ぽいね

と、調べ直してて気づいたんだけどマウイーでもLinuxはCommunityベースなのか…
InputMethod対応まで視野に入れるとGTKの手を借りたほうがはやいかも。つらたん

234あなたの名前を入力してください:2020/08/10(月) 18:51:22 ID:zGAposPQ
マルチプラットフォーム考えるなら
C#から離れて互換エンジン作るのもアリかも

PythonとかJavaScriptはもうあったよね

235あなたの名前を入力してください:2020/08/12(水) 10:14:04 ID:VZUGVNns
互換エンジンは言うほど簡単じゃないというか
そもそもC#のままでもUIに限らない一部機能がWindows Formsに接着してた気が…

236あなたの名前を入力してください:2020/08/12(水) 10:24:06 ID:5I2/PYBk
マルチプラットフォームにするならC#離れるより、フロントエンドをXamarinで作り直す方が現実的な気はするがね

237あなたの名前を入力してください:2020/08/12(水) 10:30:31 ID:VZUGVNns
どうせマルチプラットフォームにするならERBも捨てて「ゲームエンジン部分」「UI部分」「バリアント独自の部分」に完璧に切り分けてライブラリ化したい みたいな欲求も絶対出てくるし…

238あなたの名前を入力してください:2020/08/15(土) 20:32:22 ID:tcnadA8o
てかuEmueraがUnityで作られてるんだから、たぶんUnityでビルドすればLinuxでもMacでもAndroidでもiOSでもできるとは思う

239あなたの名前を入力してください:2020/10/11(日) 21:23:47 ID:rcjQyaEM
文字列変数に対して空文字列でFINDELEMENTしたときの挙動がおかしくねぇ?
正規表現になってるのが原因かなと"^$"で検索しても、正しく見つかったり見つからなかったりする

240妊)|д゚):2020/10/18(日) 03:45:10 ID:oO4.A2kM
空文字列検索は事実上結果未定義に近い実装になってますからねぇ
どうすっかねぇ

241あなたの名前を入力してください:2020/10/18(日) 18:05:40 ID:r4slU2zk
>>240
単純にいくなら、正規表現パターンなら全ての行に一致、完全一致パターンなら空文字列に一致かなと
ただまあ確かに考え方難しいですねぇ

242あなたの名前を入力してください:2020/10/21(水) 00:41:05 ID:hY5LkmEg
空文字列を渡す&flagが0の場合は部分一致でOKなので検索対象の先頭要素に一致する
空文字列を渡す&flagが非0の場合は完全一致なので検索対象の空文字列要素に一致する
になっているように見えるし、これで良いのでは?
正規表現 "^$" で部分一致の場合の挙動がどうあるべきかはわかりません。.NETの挙動にお任せするのが楽?

243あなたの名前を入力してください:2020/10/21(水) 09:18:19 ID:BG/Ma77g
>>242
それがね。場合によっては全部空文字列の配列でも一切ヒットしないのよ
SAVEDATAつけたユーザー定義変数を作って、
(1)一度クリアしてから検索
(2) (1)の状態でセーブしてEmuera再起動後、そのデータをロードしてから検索

すると、(1)はちゃんと検索できるけど(2)は一切ヒットしなかったりする
(2)の状態でも、配列の中身見るとちゃんと空文字列だったりする
もうイミフ

244あなたの名前を入力してください:2020/10/21(水) 09:39:30 ID:FIydrfKU
form使うprintとform使わないprintって何かメモリ消費的に差はありますか?

245あなたの名前を入力してください:2020/10/21(水) 23:04:47 ID:hY5LkmEg
>>243
もしかして、古いバージョンのEmueraを使ってたりしない?
1.823の更新履歴には「FINDELEMENT関数に空文字列とマッチするパターンを渡した場合の不具合を修正」が含まれてる。
うちの環境でも、「Emuera1824+v9.exeでは検索に引っかかるけどEmuera1821.exeでは検索に引っかからないパターン」は確認できた。

246あなたの名前を入力してください:2020/10/21(水) 23:31:27 ID:BG/Ma77g
>>245
あー、なるほど、それか。
確かに1821使ってるわ

自前のバリアントじゃないし、どうするかな・・・・

247あなたの名前を入力してください:2020/10/21(水) 23:51:18 ID:hY5LkmEg
ロードしてから

; S_ARRAY は #DIMS SAVEDATA で定義した配列変数
FOR LOCAL, 0, VARSIZE("S_ARRAY")
SIF S_ARRAY:LOCAL == ""
S_ARRAY:LOCAL '= ""
NEXT

みたいなので回避できるかもしれないけど美しくはない

248あなたの名前を入力してください:2020/10/28(水) 01:43:20 ID:vnE5lUrA
FLAG.CSVで
  0,EMU
  1,ERA
と定義し、@SYSTEM_TITLEで
  @SYSTEM_TITLE
  FLAG:EMU = 1
  FLAG:ERA = 1
  CALL TEST(FLAG:0)
  CALL TEST(FLAG:ERA)
  PRINTFORMW FLAG:EMU={FLAG:EMU} FLAG:ERA={FLAG:ERA}
  @TEST(VAR)
  #DIM REF VAR
  VAR = 123
として実行するとFLAG:EMUとFLAG:ERAの値が一致しないんだけど仕様なのかな

249あなたの名前を入力してください:2020/10/28(水) 11:19:27 ID:6M7VEg/Y
仕様の勘違い REFは配列をまるまる渡すのでFLAG:0にしてもFLAG:ERAにしてもFLAG配列全部が引き渡されてる
つまり、VAR=123はVARをFLAGに置き換えるのでFLAG=123、FLAG:0=123と同じ意味になる

250あなたの名前を入力してください:2020/10/28(水) 16:17:41 ID:6M7VEg/Y
これと同じように配列の指定した場所に何らかの処理をしたかったらきちんと
@TEST(VAR,INDEX)
#DIM REF VAR,0
#DIM INDEX
VAR:INDEX = 123

みたいにしないとできないから気を付けよう

251あなたの名前を入力してください:2020/10/28(水) 22:37:23 ID:3j113bGU
その手の処理をREFで組むの自体がどうかって気がするけどな

252妊)|д゚):2020/11/10(火) 02:07:41 ID:pjIUGIH.
大型のバリアントも多くなってきたし
いい加減メモリ使用量周りについても考えてかんとねぇ

さすがにERB読みこむだけでGB超えるとか平然と起こるのはいただけない

253あなたの名前を入力してください:2020/12/07(月) 22:44:53 ID:DvXOx1tU
文字列式中と書式付文字列(FORM構文)ってera検定に使えるぐらいややこしい
文字変数で+=とか使うたびにwiki見直してるんだけど
なんかいい覚え方ない?

254あなたの名前を入力してください:2020/12/07(月) 23:51:24 ID:rVifxp4M
いっそ、基本文字列式しか使わないとか()
PRINTSとか使ってれば解決 PRINTFORMSは地獄だから使わないでお願い

255妊)|д゚):2021/01/07(木) 01:58:18 ID:j4TZtfRs
Emuの人が、管理する余力がないと言い出しましたので、それについてもろもろ

まず、当人曰く
・現状コードを管理する余裕がない
・何かしたいなら勝手にフォークしてやってくれ
ということ

で、とりあえずの方向性として
・私家改造はバグ修正に専念、事実上のコードの基盤とする
・新しい機能等欲しい人は自分でフォークしてやってくださいな
・自分はメモリ消費量削減などの方向性を探って別にごねごねやるかも
となります

256あなたの名前を入力してください:2021/01/07(木) 10:10:14 ID:x.C7E9T6
eratenメモリたくさん問題もあるからそれは素直にうれしい

257好好 ◆hcbh0U7bsY:2021/01/12(火) 06:59:57 ID:kyxe9Lfc
>>255
妊)|д゚) さん
いつも開発お疲れ様です。

手前のバリアントにて、
「Emuera1824+v9.exe」をフォークし、
追加を行ったものを使用したいのですが、
その際には、それが「Emuera1824+v9.exe」を元に追加を行った物だという旨を、
readme.txt等に記載すれば問題はございませんでしょうか?

----
追加は、

コマンド「INPUTMOUSEKEY」を使用した際、
結果の6番目[RESULT:5]に、
変数「selectingButton.Input」の値が返される

といった内容です。

258妊)|д゚):2021/01/13(水) 03:20:35 ID:vos4ugZg
とりあえず、これをベースのバージョンとして公開します

○1824+v10
https://ux.getuploader.com/ninnohito/download/476

・1823+v1のツールチップ周りの変更が取り込まれてなかったのを再追加
・VARSETが特定条件でアホな挙動するあまりにしょうもない書き間違えを修正

>>257
私家改造版もEmueraのライセンスにそのまま準じますので、
Emueraのライセンスファイルを添付の上、フォーク元であることを書いていただければ
フォークはご自由に行っていただいて大丈夫です。

259あなたの名前を入力してください:2021/02/17(水) 21:03:29 ID:zsKf9xQ6
>>204
WebP対応のEmueraはeraTWで起動時にエラーが出たり出なかったりする現象が確認されてるけどライブラリ部分を少し修正してみたらエラー出なくなったような気がします
http://book-shelf-end.com/up/dwlink.cgi?eraRx2100.7z

260あなたの名前を入力してください:2021/02/18(木) 21:19:46 ID:nmOlxT6I
>>259
size_t の UIntPtr への割り当て漏れがまだ数か所あります
エンコ系は(まだ)使ってなさそうだからいいと思いますけど
(WebPDecodeBGRInto / WebPDecodeBGRAInto / WebPEncodeBGR / WebPEncodeBGRA / WebPEncodeLosslessBGR / WebPEncodeLosslessBGRA)

261あなたの名前を入力してください:2021/02/18(木) 22:24:23 ID:HDhFN9rM
>>260
64bit環境でsize_tをintで受け取っても、上位32bitが捨てられて次の1bitが符号扱いになるだけなのでほとんどの場所では実害無いのかなと思います
画像のファイルサイズやデータサイズ等が1個でギガバイト級になることは考えにくい
でもテスト版ならともかく正式版では修正したほうがいいですね
(自分が正式版を作るとは言ってない)

>>259で修正した場所はサイズではなくアドレスを返している、そして受け取って使用する場所では値がゼロか非ゼロかだけをチェックしていたのでアドレス上位32bitが非ゼロで下位32bitがゼロの場合に判定を間違えていたのだと思います

262260:2021/02/19(金) 02:24:58 ID:fM61t2NQ
>>261 259直して頂いたのありがたう

気にしているのは cdecl 呼び出し=スタック経由だから、次のパラメータが正しく渡せなくなる *かもしれない* 事が問題かなと
パディングで助かってて動いてるけど、運が悪いければ (メモリー境界にあたるとかコンテキストスイッチで) おちるかもって感じ

神経質な人は厳密に制御するために MarshalAsAttributes で逐一やってるみたい
あと、IOExeption やらでのリトライ処理の方で、更に落ちにくくなりますよ

263259:2021/02/20(土) 00:14:45 ID:3.AoG0bI
>>260 のあたりも全部ひっくるめて元のGitHubのリポジトリで適切なコードに修正してくれたらそれを持って来るだけでいいんだけどあんまり期待はできないかな……)
(自分でforkして修正するほどの気力は無いなぁ……)
(そもそも >>259 の問題に対して誰も直接ツッコミ入れてなかったように見えるのがちょっとアレなので、別のライブラリを探してみてもいいのかなぁ……)
(x86とx64のWindows限定だったらいいんだろうけど、厳密にはsize_tをUIntPtrに置き換えできると言い切れるものではない……? stackoverflow.com/questions/32906774/what-is-equal-to-the-c-size-t-in-c-sharp )

264あなたの名前を入力してください:2021/02/21(日) 10:37:36 ID:OxB2x.cg
巨大バリアントだとMOD管理がしんどいからキーバリューデータベースが欲しいかも

・KVPUT("KEY", "VALUE") ;値に空文字列なら内部でremove
・KVGET("KEY", "初期値") ;初期値は省略可能

これひとつで#DIMS SAVEDATA .KVD, 10000, 2 みたいなのを内部で保存してくれるイメージ
内部が.NETならDictionary使ってハッシュでキー検索できるしERHでMODごとに分けずに一元管理してもいけそう

265あなたの名前を入力してください:2021/02/22(月) 00:27:07 ID:Qlo5ysxs
汎用関数・ライブラリ総合スレに「文字列を使った連想配列もどき&可変長配列もどき」はあったね
当時のファイルそのものは現在ダウンロードできないけどtohoKに取り込まれてるのかな(使われてないはずだけど)

266あなたの名前を入力してください:2021/02/22(月) 02:31:54 ID:fkJWcDpk
eraTWのERB\ステータス表示関連\CN_GRAPHICに入ってるやつかな
_Dictionary.ERB/ERHと_List.ERB/ERH
CC0で再配布しても大丈夫なやつ
とはいえERBレベルでなくEmuera本体で実装してあればそっちのほうがスマートではある

267妊)|д゚):2021/02/23(火) 04:56:20 ID:QzucMbmY
○1824+v11
https://ux.getuploader.com/ninnohito/download/477

v10で取り込んだツールチップ関係の変更をtweak

268260:2021/03/01(月) 21:58:20 ID:FD1YjcrA
昔挫折した WebP関連バグの修正を発掘して、マージしてみました
>>267 の v11にリベースしました
>>259 に便乗して、さらにいくつかの Dll の呼び出しをより C 側に近づけますた
MarshalAs の駆使は読みにくいから止めた…UIntPtr も Core化したいならやめろって言われるけど…
・webpラッパー内の専用例外処理: 今まで全部まとめてExceptionだったので、Webp専用のExceptionクラスを作った
・リトライ : 今はハードコーディングで各ファイル3回。うーん
・バグ修正: 今まではファイルパスにwebpって入っていたらwebpファイル扱いされた!
・Creator.Method.cs の スプライト用のGCREATE(filename) っぽいとこに WebP.Load() を呼ぶように
ただしここは未テスト。スプライト関係のテストERBが書けないんだ…
・(過去の残骸) 本体のパス文字列参照を IO.Path.DirectorySeparatorChar / IO.Path.AltDirectorySeparatorChar から取るように書き換え
Worktreeに混じっちゃった…
MONOユーザ注意! (Config\Config.cs / Config\ConfigData.cs / ContentAppContents.cs / Program.cs / Sys.cs )

http://book-shelf-end.com/up/dwlink.cgi?eraRx2170.7z
※Windows Defenderではチェック済みですが、VirusTotal では引っかかっています※
※独自ビルドしたEmueraのほか、libwebp_x86.dll/libwebp_x64.dll を同梱してます
 ソース/速度上特に他で配布されているものと変わりないです (NMAKEでビルド、/favor:blend)

/// 今、eramaker/Emuera系を Github に上げたくはないっすね。master/slave の語を消すくらいBLMが怖いから…

269259:2021/03/03(水) 00:06:17 ID:o8xDnWpc
>>268
おお、乙です
GCREATEFROMFILEでWebPの画像も読めるようになったみたいですね
(個人的には、「自分が使うだけなら元ソースの複数箇所の new Bitmap(filepath) のあたりにそれぞれWebPかどうかで処理を振り分けるコードを追加するだけで済ませるけど、ソース公開するならImageWrapperとかいう名前の何かを用意して振り分けコードは1か所だけ記述するほうがいいのかな」ぐらいのことをなんとなく考えてました。でも何もやってません)

270あなたの名前を入力してください:2021/03/06(土) 20:38:09 ID:Qizk40rY
>>268
Program.cs 56行目に + が混入してて、DebugDirが変なことになってます

ChromeやWindowsセキュリティがうるさいから自分でビルドしてみようかとも思ったけど気が進まない
VSBuildTools入れればVisualStudio入れなくてもビルドできるんですかね?

271あなたの名前を入力してください:2021/03/06(土) 22:55:05 ID:b1rfKVhA
.Net Framework入ってれば
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
以下にコンパイラ入ってるしできる、と思ったけど、これC# 5のコンパイラなので
現在のEmueraはC# 6で追加された構文使ってるからコンパイルできないな
大人しくVS持ってくるのが手っ取り早いかも

272260:2021/03/07(日) 01:43:04 ID:QJTritZs
>>270
おおうチョンボ… 修正しました。GCREATEFROMFILE のテストしてたら…
改良テスト版 v0.2.0
http://book-shelf-end.com/up/dwlink.cgi?eraRx2187.7z

>>269
TypeConverter / ImageTypeConverter ? インターフェースを実装したら、
何も考えなくても、System.Drawingで読み込めるようになるらしいけど茨の道
そんなことよりほんとの目的のSVG対応のほうが…

273260:2021/03/10(水) 18:07:07 ID:HSNkGH22
トロイ検出騒動で鯖全体にまで悪影響が及ぶようになったらしいので取り下げました
もうこりごり…

274あなたの名前を入力してください:2021/03/11(木) 00:11:53 ID:kOs6NiE.
雑談スレでは「同じユーザーとパスが不特定多数に使われてるからパスお漏らしするサイトとして扱われてる可能性がある」とか言われてますが、Emuera実行ファイルのせいでロダに悪影響というのもどこかで言われてるんでしょうか?
セキュリティ対策ソフトがEmuera実行ファイルに文句付けてくるのは過去にも発生事例がありますね
せっかくの修正内容が公開取り下げになってしまうのはもったいないので何とかできるものなら何とかしたい

275260:2021/03/11(木) 22:20:25 ID:ps.Vcuqg
アンチウイルスソフト業界はダウンロード鯖ランキングリスト持ってて、今回私のバイナリがトロイ入り(となった)ので鯖のスコアを大きく悪くしたってことです
>>274 の言うように、今回初めてではなくて元々スコア悪い鯖扱いになってた様なので、今般 Avastとかいくつかでは監視リスト入り濃厚っぽい
一手遅かったけどバイナリは自主的に消したので、しばらく落ち着くのを待ってれば鯖スコアも回復する…と思いたい

配布バイナリに耐ディスアセンブルや難読化等の改変対策してなかったのは私のミス
で、最初引っ掛かりまくった物の VirusTotal での指摘によると、悪い点は Emuera 単体起動したときに Emuera.config などを吐くこと (元々)、ほか
Emuera にある、許可なく *ファイルを書き出す機能* が減点対象みたいですが、
本体側にUACやアクセス権とか仕様にかかわる変更が必要になる様なので私は白旗

276260:2021/03/19(金) 17:19:09 ID:6DYB3.kQ
この前の書き込みから放置プレイするのもあれなので、ほとぼり冷めた?くらいに Update ver 0.5.0 上げます

Emuera1.824+v11+webP v0.5.0(Secure対策版)
ソースのアップが主目的、バイナリは暗号化 7z になってます
http://book-shelf-end.com/up/dwlink.cgi?eraRx2231.7z

・webp読み込み周り安定化した…はずです
・webpのGCREATEFROMFILE() 周り安定化しました…と思います
・起動時、ディレクトリ権限&CSV・ERBディレクトリ有無を確認し、特にオプションがなければ、(コンフィグファイルやポップアップを吐かず)即終了
・いくえふめい…になってたReadme類をDocs添付
・バイナリの難読化 & libwebp のパッチ:セキュリティ対策ですがおまけ処置

権限チェック回りが難しくて、多分特定のWindows環境固有の実装だろうと思われます。これ以上は詳しい人に任せます

277あなたの名前を入力してください:2021/03/21(日) 00:17:10 ID:Zs5CstMs
>>276
まずはアップローダーに新しいファイルが置かれたことを嬉しく思います
+Secureのほうは、Emueraの設定を開こうとすると例外が発生する?みたいですが最初から発生していたのか途中から発生するようになったのかよく覚えてません
ところで、今回アップロードされた実行ファイルそのものはまだVirusTotalでチェックされてない感じなんですかね
(同じソースでもリビルドすると実行ファイルのハッシュは変化したりするので、等価の物は既にチェックされてるのかもしれませんが)

ちなみに自分は、libwebp_x64.dllやlibwebp_x86.dllという名前の外部ファイルの中身を実行するのはセキュリティ上のリスクと見なされるかもしれないのでlibwebp相当の処理を行うC#のソースがあればいいのかな、と思って何かやってたけど何の成果も得られませんでした

278あなたの名前を入力してください:2021/06/06(日) 03:41:01 ID:cePTN0ls
そういえばemuera側でcsvを作成って実装できたりしますか?
バリアントにオリジナルキャラ追加をゲーム画面でできるの提供できると面白そうだなと

279あなたの名前を入力してください:2021/06/06(日) 12:00:08 ID:HOy/u1bw
1番欲しい機能はFUNCTION関数をTRYCALLFORMする機能かな

280あなたの名前を入力してください:2021/06/06(日) 12:14:49 ID:QvtGR9rw
ERBからCSVのキャラ追加ってこと?
バグ出そうで怖いなぁ

CSV同様のデータを追加したいなら普通にADDVOIDCHARAしてNOを設定するだけでいけそうな気もするし
CSVにこだわらないならLOADTEXT/SAVETEXTで保存すればいけるか?

281あなたの名前を入力してください:2021/06/06(日) 15:25:01 ID:cePTN0ls
1ゲームを長くやるならともかく周回するような遊び方だとcsv作りたいのでaddchara系はあんまりですね……
10や20周同じキャラで周回とかオリジナルキャラを複数人追加して周回、みたいな遊び方には向きませんので

各自で作るにしてもバリアントが多様化してきてcsvがバリアントごとに追加の仕方微妙に違ってきているので
中身見ないと追加しにくいよりは直感的に作れるほうが好ましいし、キャラメイクそのものをゲームに組み込めそうだなと


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板