トップページgamedev
1001コメント326KB

物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/08 16:25ID:UqwL7E48
調べるのがめんどくさい初心者はなんでも書いて。
知ってたら即、答えるし、知らんかったら知らんと書け。
検索なんかクソでも喰っとけヨ!
教えて君以外は逝ってヨシ!

【鉄の掟】
一、かぶっても泣かない。
一、出された質問は残さず答える。
一、マンモス村田のギャグには大爆笑する
0356質問だよ34402/03/31 19:48ID:P6B88ICN
文字は翔るけど、絵はどうやってかくの?
0357名前は開発中のものです。02/03/31 20:23ID:???
>>344
ここに逝きなさい。
ttp://www.sagami.ne.jp/tadaka/99Basic/bbs.html
そしてスプライトが扱えるようになってから来なさい、たのむから、な。

>>355
試してみて速い方が速いのでしょう。
0358名前は開発中のものです。02/03/31 20:29ID:nON8fk6A
X−BOXって何の言語で作られてるのですか?
あと開発の方法も教えてください。
0359名前は開発中のものです。02/03/31 21:07ID:???
おそらくはEnglish
0360名前は開発中のものです。02/03/31 21:11ID:???
開発はプログラミングで
0361名前は開発中のものです。02/03/31 21:17ID:???
>>355
環境依存、って環境ぐらい書け
0362名前は開発中のものです。02/03/31 22:31ID:???
>>355
FSAAかけない方が(・∀・)イイ!
アルファも要らな(・∀・)イイ!
ドットギザギザ(・∀・)イイ!
普通に ドットが目で確認できないような高解像度で描けば(・∀・)イイ!

と、普通のノベルゲー作りたそうだから無理を答えてみるテスト。
0363名前は開発中のものです。02/03/31 22:53ID:???
>355
アニメーションなら何もかけなくてもいいような気もする。
0364名前は開発中のものです。02/03/31 22:54ID:???
イイとかテストとか書けば良いと思ってんのかなぁ
0365名前は開発中のものです。02/03/31 23:27ID:???
>364
使ってみたかったんだろ
0366名前は開発中のものです。02/04/01 00:09ID:???
>347だと仮定して
ttp://www2.airnet.ne.jp/ojima/
でも読みなさい。古いけど。
0367名前は開発中のものです。02/04/01 00:46ID:???
>>364
そりゃテストは便利だからな
0368名前は開発中のものです。02/04/01 12:32ID:c90ZvcKy
クソスレ防止あげしまする
0369名前は開発中のものです。02/04/01 13:11ID:???
>>367
エクストリーム・プログラミングでもテストの重要性を説いてるからな・・・。
とか言ってみる単体テスト
0370うにょ ◆rH82hjOk 02/04/01 14:45ID:???
質問ですー アウトランや、bioのぽらすたー みたいな、
擬似3D,あれってどうやって計算してるの?教えてキボンヌ
0371名前は開発中のものです。02/04/01 14:47ID:???
>>370
教えてあげないよ、ジャン♪
0372名前は開発中のものです。02/04/01 14:57ID:???
>>370
今俺の手元にある去年のCマガジン10月号に詳しく載っていた、以上。
0373名前は開発中のものです。02/04/01 21:40ID:???
ぽらすたー…。懐かしすぎる…。
あのゲームのDOCファイル、面白かったなぁ。
037436202/04/02 00:09ID:IlKCqOhU
>>364

ごめんなさい。
0375名前は開発中のものです。02/04/02 01:01ID:???
《;゚Д゚》<気ィ落とさんと、これからも頑張りや
0376名前は開発中のものです。02/04/02 01:12ID:???
MMXのチェックのときに気になってるんですけど、
「Cyrixの6x86シリーズにはCPUID命令をサポートしていても
EFLAGSのCPUIDビットがセットされていないものがある」
…と聞いてるんですが、このチェックどうすればいいんですか?
ネットでも殆ど情報がなくて、BIOS経由でチェックするとか噂で聞いたんですが…?
もっとも、メーカーでも対応してるとことしてないとこがあるみたいですが。
0377名前は開発中のものです。02/04/02 01:40ID:???
>>376
午後のこーだのソースみてみ
037837602/04/02 02:14ID:???
>>377
ありました。ありがとうございます〜。
0379名前は開発中のものです。02/04/02 08:21ID:???
>>364
なんでそんなえらそうなの?
0380名前は開発中のものです。02/04/02 12:05ID:???
>>379
エライんだろうよ
0381名前は開発中のものです。02/04/02 16:36ID:CI/DGx/2
BIOHAZARD2のアイテムの説明欄やら背景やらの画像(TIM)を
開けるツールってありませんかね?
体験版では開けるツール見つけたんですけど、
製品版ではどのツールでも開けなくて・・・
何か特殊な圧縮がかけられているみたいなんです〜
0382名前は開発中のものです。02/04/02 17:13ID:???
>>379
そんなえらそうでもないだろう
0383名前は開発中のものです。02/04/03 02:56ID:???
物理板かもしれんけどとりあえずここで質問

WormsのNinjaRopeを再現したくて
単振り子のシミュレーションについて調べたんだけど
周期の話ばっかり出てきてさっぱりわけわからんのです

一番知りたいのは振り子の折れ角?が
次のフレームでは何度になっているべきかを
どうやって求めたらいいのかなんだけど・・・
0384名前は開発中のものです。02/04/03 10:13ID:???
>383
高校の物理の教科書みればいいんじゃない?
mgh=(mv)*2/2
後はひもの長さがわかってるからアークコサインを使えばでる、ではどう?
0385名前は開発中のものです。02/04/03 10:16ID:???
あ、そのまま単振動の公式使えばいいのか・・・
038638302/04/03 13:29ID:???
>384
その線でがんばってみます
0387名前は開発中のものです。02/04/03 16:09ID:???
http://homepage1.nifty.com/kaneko/wire.htm
こんなのは?.....方向性が違うだろうか。
038838402/04/03 19:01ID:???
書き間違えてた。
二分の一エムブイ二乗です。
0389名前は開発中のものです。02/04/04 14:11ID:???
エミュレータはロムをバイナリで開いているの?
0390名前は開発中のものです。02/04/04 15:41ID:???
こんなかんじ
#include <stdio.h>
#include <math.h>

#define L0 1.0 //振子長さ

int main ()
{
  double x=L0, y=0.0, vx=0.0, vy=0.0;
  double dt=0.01, endTime=2.0, t=0.0;

  int c=0;
  while ( t < endTime )
  {
    vy -= 9.8 * dt;

    double l = sqrt ( x*x + y*y );
    double dx = x / l * ( L0 - l );
    double dy = y / l * ( L0 - l );

    vx += dx / dt;
    vy += dy / dt;

    x += vx * dt;
    y += vy * dt;

    if ( c % 10 == 0 )
    {
      printf ( "%3.1f[sec], (%3.2f, %3.2f), l=%f\n", t, x, y, l );
    }
    c++;
    t += dt;
  }
  return 0;
}
0391名前は開発中のものです。02/04/04 16:57ID:???
ファイル操作系アプリを作りたいんですが、
DelphiとVBではどちらがいいんでしょうか?
0392名前は開発中のものです。02/04/04 17:39ID:???
>>391
自分が使いやすい方で。
0393名前は開発中のものです。02/04/05 10:52ID:???
>>391
なぜここで聞くの?
俺は両方使ったことがないから偏見でいうけど、
VBはランタイムがいるから配布時に面倒。
Delphiは単独起動できる。しかもPersonalが無料で手に入る。
つーわけでDelphi一押し。

VB.netやるならわかるが、いまからVBやる理由はない。
0394名前は開発中のものです。02/04/05 10:54ID:47RGytS9
>>389
エミュレートするロムがテキストならテキストで開くだろうし、
バイナリならバイナリで開くだろう。普通は。
ロムがテキストなものは見たことが無いけれど。
0395名前は開発中のものです。02/04/05 12:52ID:???
http://www.watch.impress.co.jp/pc/docs/2002/0401/uocchi/ms.htm
0396名前は開発中のものです。02/04/05 13:59ID:???
4/1ネタとしてがいしゅつですが、何か?
0397名前は開発中のものです。02/04/05 15:01ID:???
394に関連した資料のつもりですが....凄まじいツッコミですね
0398名前は開発中のものです。02/04/05 18:02ID:???
& と && のちがいを教えてくれ
0399名前は開発中のものです。02/04/05 19:50ID:???
&は例えば変数A,Bがあって、A & BとするとAとBを2進数であらわしたときに
両方ともたってるビットが1、それ以外は0になる。説明が下手で悪いけど、
例えば
a = 22;//10110
b = 19;//10011
c = a & b;
とすると
10110 <- a
10011 <- b
10010 <- cで
c = 18になる
&& は主に条件式に使われて、「かつ」って意味で使えば多分あってる
0400名前は開発中のものです。02/04/05 20:14ID:???
転載だけど
>「||」と「&&」は、前後に式を書くが手前の式を計算した結果、
>それ以上計算しなくても結果が決まっている場合、
>後の式は計算しないという特徴を持つ。
>そのため、複数の式の条件を複合して処理を変えたい場合などは、
>条件判断式を「&」や「|」でつなぐよりも、「&&」や「||」で
>つなぐ方がより高速になる。
0401名前は開発中のものです。02/04/05 21:09ID:???
>400
それはどの言語のどのコンパイラの話?
040240002/04/05 21:53ID:???
>401
自分が見かけたのはC#の解説やってたとこだったけど、
perlもそうらしい。↓(&&の評価順というところに)
http://www.sun-inet.or.jp/~yaneurao/intensive/tips2.html

同じC言語でもコンパイラによって違ってくるのかな?
その辺は未確認です。
0403名前は開発中のものです。02/04/06 02:06ID:FIHamsxG
数学板かもしれんけどとりあえずここで質問

底辺と高さがわかっている直角三角形の頂点角って
どうやって求めるんでしたっけ?

図解するとこう

    ↓ここの角度を
    /| 底辺と高さから求めたい
    / |
  /  |
  / ┌|
   ̄ ̄
0404名前は開発中のものです。02/04/06 02:12ID:???
底辺をa,高さをb,求める角をθとすると
斜辺cはsqrt(a^2 + b^2)だから
c*cosθ = bで
θ = Arccos(b/c)
間違ってたらごめん
0405名前は開発中のものです。02/04/06 02:28ID:???
何故いちいち斜辺求める?
atan(a/b)デチ
040640302/04/06 03:09ID:???
ありがとうござまーす!
040740302/04/06 03:31ID:FIHamsxG
度々すいません
今度は頂点角θと斜辺cが既知の場合
底辺aと高さbは求められるんでしょうか?

c*cosθがbのようですけど・・・
040840302/04/06 03:34ID:???
あ、a=√c^2-b^2かな・・・?
040940302/04/06 03:37ID:???
自己解決しました
こういう時にsinを使うのか・・・アフォや
041040302/04/06 05:37ID:???
いよいよ場違いかもしれませんが
重力定数G、紐の長さL、振れ角Rとしたとき

while(1)
{
 v += -(G/L)*sin(R);
 x += -v*cos(R);
 y += -v*sin(R);
 #Rの更新は省略
}

でかなり近い挙動をするんですが
これは振り子とは違うんでしょうか?

所詮ゲームだからそう見えりゃいいっちゃいいんですが・・・


あ、>390さんがわざわざソース書いてくれたのに
無視してるようでゴメンなさい
0411名前は開発中のものです。02/04/06 08:11ID:???
>>410
Rは水平軸との角度で,vは角速度ですかね?
冲=1.0で省略てな感じかな?

まっとうなのは以下のようになると思います

振子の中心のモーメント M = m g cosθ × L
振子の中心の慣性モーメント I = m L^2
よって角加速度 ωdot = M / I = g cosθ / L
あとは積分

while ( )
{
  ω += 冲 * G * cosθ / L;
  θ += dt * omg;

  x = L * cosθ;
  y = L * sinθ;

  t += 冲;
}
これだと逆三角関数いりませんぜ

>無視してるようでゴメンなさい
オナニーして公開しただけですの気にしないで下さい
041241102/04/06 08:16ID:???
× θ += dt * omg;
○ θ += dt * ω;
041340302/04/06 08:38ID:???
>411
えーと、中心点の座標(ax,ay)とおもりの座標(px,py)だけわかっている状態で
振り子運動をさせたいんです

なので現在
function R() {
 var x,y,result;//ローカル変数確保
 x = ax-px;
 y = py-ay;
 result = atan(x/y);
 return result;
}
function L() {
 var x,y,result;//ローカル変数確保
 x = (ax-px)*(ax-px);
 y = (py-ay)*(py-ay);
 result = sqrt(x+y);
 return result;
}
として、>410のコードで動かしてます

それから振り子運動中に外力を加えたりしてるので
時間軸入れるとうまくいくかわからないので省略してます

>411の場合は初回だけ振れ角を出してやればいいのかな?
041440302/04/06 08:40ID:???
あと>411で
ω += 冲 * G * cosθ / L;
なのに
t += 冲;
するのは何故ですか?
0415名前は開発中のものです。02/04/06 10:35ID:???
とりあえず>>414だけ

ごめんなさい.tはべつにいりません
whileの抜けを考えていたのです,多分.
0416名前は開発中のものです。02/04/06 10:50ID:???
>>413
外力くわえたらまた計算(値を代入)しなおさないといかんと思うよ
041741102/04/06 11:44ID:???
外力をモーメントであらわせば>>411でいけると思います
LとGによるけど,そんなに冲細かくしなくてもいいと思います.

(ax,ay)と(px,py)からLとθの初期値でるでしょ.角速度も適当に決めればいい
411は(ax,ay)が原点だから,411のx,yに代入する所で(ax,ay)を足してやればイイ
041841102/04/06 12:23ID:???
でこんな感じ

while ( )
{
  //モーメント
  M = mass * G * cosθ * L;

  //外力Fが重心において回転方向に加わる場合
  M += F * L;

  //(Lを含まないこともあろうとあえてLは約分せず)
  ω += 冲 * M / ( L^2 * mass );
  θ += dt * omg;

  x = ax + L * cosθ;
  y = ay + L * sinθ;
}

と書きながら>>410が今やっと解りました(アフォ
でもやっぱ角速度と角度で管理したほうがよくないですか?
冲=1.0にしてθ=π/2 - R とすればほぼ同じ形になります

で,一つ違う所は,
× v += -(G/L)*sin(R);
○ v += -G*sin(R);
じゃないかな・・・
次元も合うし.冲=1.0で考えると前者のvは角速度ですよ(L=1.0なら別ですが)
041941102/04/06 12:38ID:???
だんだん自信無くなってきて結局オナニサンプル作っちゃった
WindowsConsole+入力受け付けず
10秒で終了,5.0〜5.2秒間モーメント加えてる
http://www.pureweb.jp/~akimasa/up/index.php
http://www.pureweb.jp/~akimasa/up/img/dat003.lzh
#あきまさ氏のあぷろだ拝借
042040302/04/06 19:30ID:???
>418
なるほど・・・
ただ-(G/L)なのは振り子をこぐのに必要なんです

私もあきまさ氏のあぷろだを借りてUPしてみました
http://www.pureweb.jp/~akimasa/up/img/dat004.swf
←キーと→キーが振り子を押す力
↑キーと↓キーでひもの伸び縮み
SPACEキーでおもり切り離し

ブランコをこぐ要領で、まず左右に押して
ある程度勢いがついたら∞を描くようにヒモを伸び縮みさせると
振り幅がどんどん大きくなります

↑の振り子エンジンは>410です
>411とかも試してみたんですが
自分の読解力が無いせいか、何故かうまくいかない

あと丸め誤差のせいなのか
ヒモ長が微妙にずれていく・・・
042140302/04/06 19:34ID:???
あ、えーと>420はブラウザで開くとデカイ=重いなので
ダウンロードする事をおすすめします。
042240302/04/06 22:39ID:???
マイナーバグフィクス
http://www.pureweb.jp/~akimasa/up/img/dat005.swf

ヒモ長の狂いに法則がありました
角速度が一定以下だとどんどん縮んでしまい、
ある速度より大きくなると速度にほぼ比例して伸びていきます。
ただし角速度0だと安定

一体何が原因なんだろう・・・

振り子エンジンは>410,>413
0423名前は開発中のものです。02/04/07 08:24ID:???
>>422
なんも始まらんよ
playerが古いのかな...
042440302/04/07 09:47ID:???
>423
すいませんFlashMXで作ってます・・・
042540302/04/07 09:49ID:???
すいませんポインタ忘れてました
http://www.macromedia.com/jp/shockwave/download/?P1_Prod_Version=ShockwaveFlash&P5_Language=Japanese&Lang=Japanese
0426名前は開発中のものです。02/04/07 10:32ID:QkW4z/Hg
ひもと直角な方向の速度を何回も足してるわけでしょ
円を描く様にはなりませんよ
移動するたびにらせん状にひもは長くなる
042740302/04/07 11:52ID:???
>426
そう言われれば速度の角度なんて考えてなかった・・・
けど、角度が小さいときに内向きの螺旋になるのは何故だろう?
042840302/04/07 23:15ID:???
振り子エンジンを>418にしてみましたが
今度は楕円軌道を描きつつ内向きの螺旋になってしまいます・・・

なんかActionScriptの三角関数群自体に問題があるような気がしてきた
042940302/04/08 00:26ID:???
>428
自己解決しました

楕円軌道だったのは
ヒモの長さLを関数オブジェクトにしてたせいでした
1:Lを元にXを更新
2:Lを元にYを更新
とやってたんで、そりゃあズレますわ
恥ずかしい・・・

でもやっぱり内向きの螺旋になります
043040302/04/08 06:15ID:???
螺旋になる原因は
キャラクターの座標が1/100精度なのに
演算を1/100000000でやっていたせいでした

よく設計を見直してみたらLを動的に確保しなくても大丈夫だったので
無事円軌道を描く様になりました

無学な漏れにさんざんつきあってくれた411氏に感謝
0431名前は開発中のものです。02/04/08 21:17ID:l6XgGYO6
あ”ー!!頭がぐちゃぐちゃしてきたよ兄さん!!

ラスターオペレーションに関して質問というか、アドバイスをいただきたいのです。

手元に白黒の画像があります。
この白と黒を指定の背景色と前景色にして画面に転送したいと思っています。
一応できたのですが、対象サイズと同じサイズの領域を2つも必要とするので
実はもっと単純な方法があるのではないかな?などと思っています。

今やっている手順を、白−前景色、黒−背景色として状況を説明しますと、
まず、一時領域を前景色で塗りつぶし、そこに AND 演算で画像を転送し、
前景色と黒バックの画像を作り、
次にマスク用領域に反転しつつマスク画像を作成、
次に最終的に描画したい場所を背景色で塗りつぶし、
マスク画像を AND 演算で描画し、最後に一時領域の画像を XOR 演算で描画しています。

なんとなく無駄がありそうなのですが、
もっと高速 or リソースの少なくて済む方法等があったらご教授頂けないでしょうか?
0432名前は開発中のものです。02/04/08 21:35ID:???
>>431
文章がよーわからんけど
A(一番上)
B(真中)
C(一番下)
と画像を重ねあわせる時、ACが同一の画像って事であってるか?
0433名無しさん02/04/09 01:24ID:???
なんか凄く懐かしいことやってるなあ。
0434名前は開発中のものです。02/04/09 01:36ID:???
>>431
俺も文章がよくわからないんだが。というより、何がしたいのかわからない。
既に書いてある領域に白と黒の背景色と前景色を描きこみたいってことなのか?
0435名前は開発中のものです。02/04/09 04:35ID:???
たぶんお手製αチャンネルだと思われ
漏れにはその知識がないからアドバイスはできんけど
0436名前は開発中のものです。02/04/09 08:39ID:???
>431
MMX命令使いなされ。
ttp://homepage1.nifty.com/herumi/adv/adv10.html
043743102/04/09 09:51ID:0lddlFaw
>>432-436
あはっ、頭がぐちゃぐちゃしている時に書いたので
文章もぐちゃぐちゃでした。スミマセン。

簡単に言うと、DOS の文字みたいな物を表示したいのです。
フォントの色と背景色を指定できるような物です。

それを白黒のパターンから表示したいのです。

今のところ、
(1) 白黒画像 -ソース-
(2) 対象画像 -デスティネーション-
としたとき
(3) 一時画像 -前景色生成用-
(4) マスク画像 -前景色透過用-
を用意して、
(ステップ1)
 一時領域(3)を指定の前景色でFill、
 そこに白黒画像(1)を AND 演算転送で 前景色+背景部分が黒の画像を生成。
(ステップ2)
 マスク領域(4)に白黒画像(1)を NOT 演算転送して、マスク画像を生成。
(ステップ3)
 対象領域(2)を背景色で塗りつぶし、マスク画像(4)を AND 演算で転送、
 最後に一時領域(3)の画像を対象領域(2)に XOR 演算で転送

という手順を取っています。
これで伝わったでしょうか?よろしくお願いします。
0438名前は開発中のものです。02/04/09 11:18ID:???
>>437 何をやりたいのか、良くわからん。






・・・2行目から読んでないけどな。
0439名前は開発中のものです。02/04/09 11:32ID:vOCl/B9A
以下のように CWinApp *Application から操作しようと考えているのですが、
どうしても、WinMain.cppの3行目のif文で真となってしまい終了してしまいます。
何か基本的なことが分かっていないと思うのですがどうかよろしくお願いします。

(WinMain.cpp)-------------------------------------------
#include "CWinApp.h"
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
   if(Application == 0)
      return -1;

   //Application->Init(hInstance, lpCmdLine, nCmdShow); の様に続く
}
(CWinApp.h)-------------------------------------------
#ifndef __CWinApp
#define __CWinApp
class CWinApp {
   public:
      CWinApp();
      ~CWinApp();
・・・省略
} // class CWinApp終了
extern CWinApp *Application; //CWinApp.cppの2行目で宣言
#endif
(CWinApp.cpp)-------------------------------------------
#include "CWinApp.h"
CWinApp *Application;
CWinApp::CWinApp() {
   Application = this;
}
CWinApp::~CWinApp() {
   Application = 0;
}
0440暇人02/04/09 14:37ID:TLqMFG8I
431さんの質問を画像にしたためてみました。
(あきまさ君のうpローダー借ります)
http://www.pureweb.jp/~akimasa/up/img/dat009.png

白黒2階調のBFNTみたいな文字画像を、(バックと文字の色を
変えて)表示させたいけど、↑の画像の手順よりもっとスマートに
処理できないものだろうか…?ということみたいです。
0441名前は開発中のものです。02/04/09 15:29ID:???
>>439
CWinAppはアプリケーションのメインフレームですよね。
とりあえず3行目の式を通さないようにするには
Applicationを宣言してるところでNULLを代入すればいいと思いますよ
044243102/04/09 16:51ID:ZX8.ylbM
>>440
わ〜!ありがとうございます!!
こんなに解りやすい図にして頂けるなんてすごく嬉しいです。
まさしく図の通りです。

というわけで皆様よろしくお願いします。
0443名前は開発中のものです。02/04/09 21:07ID:???
>>442
BitBltなんかを使わずに直接メモリを操作するなら、>>440の図で、
白のときは柿色を転送、黒なら背景色を転送でいいんじゃないか?
0444名前は開発中のものです。02/04/09 21:11ID:???
>431
使用言語、環境(DirectX&Surface / GDI&DIB / etc...)くらいの情報なけりゃアドバイスも糞も無いと思うが。
0445名前は開発中のものです。02/04/09 22:43ID:TmXZI2Ro
暴走に継ぐ暴走。
もう目が離せません!

 おおもりよしはる (←次スレはこれを使用しましょう)
http://yasai.2ch.net/test/read.cgi/doujin/1016348976/l50

おおもりよしはるせんせーのページ
http://www9.big.or.jp/~yoshioh/ <最後のhは半角のhに置き換えてください。

おおもりよしはるが思いを寄せてる作家・山本さだpさまのスレ
http://yasai.2ch.net/test/read.cgi/doujin/1013327123/l50

アニメ絵が芸術?デムパロリコン男おおもりよしはる @ネットウォッチ板
http://yasai.2ch.net/test/read.cgi/net/1018005845/l50

■■■ロリ絵?おおもりよしはる■■■
http://www2.bbspink.com/test/read.cgi/erodoujin/1016297545/l50

【抱き枕】すじ丸出し抱き枕ってどうよ?
http://mentai.2ch.net/test/read.cgi/otaku/1016198191/

【すじ】 ようじょのすじ  【すじ】
http://www2.bbspink.com/test/read.cgi/erog/1017041827/
0446名前は開発中のものです。02/04/09 22:48ID:???
>>431
src, dest, mono 全部24bitBitmapデータじゃないと動かないけど、MMXアセンブラ化してみた。
動作的には dest = ( src & mono ) | ( dest & !mono ) かな。
void BitBlt2( void *src, void *dest, void *mono, long len )
{
  _asm {
    mov eax, 8
    mov ecx, len
    shr ecx, 3      // len /= 8
    mov edi, dest
    mov esi, src
    mov ebx, mono
  loopM:
    movq mm0, [esi]
    movq mm1, [edi]
    movq mm2, [ebx]
    pand mm0, mm2    // src 画像を mono の白い部分だけ抜く
    pandn mm2, mm1    // dest 画像を mono の黒い部分だけ抜く
    pxor mm0, mm2
    movq [edi], mm0
    add esi, eax
    add edi, eax
    add ebx, eax
    dec ecx
    jnz loopM
//    loop loopM      // K6-2ならこっち
    EMMS
  }
  for( int i = len & 0x7ffffff8; i < len; i++ )
    if( ((char*)mono)[i] )
      ((char*)dest)[i] = ((char*)src)[i];
}
0447名前は再開発のものです。02/04/10 02:49ID:???
24bitのDIBを扱うには、バッファは次のようにとればいいんですか?
キャッシュミスを減らすためとききましたが…

char *tmp_ptr;
char *ptr;
tmp_ptr=new char[640*480*3];
ptr=(tmp_ptr + 31)&(~31);
0448名前は開発中のものです。02/04/10 03:39ID:???
CreateDIBSection()で得られるバッファならメモリ配置の心配はいらないです。
newでも手元の環境(Win2K & VC++6)では8byteアラインで配置されるみたいだから
MMX命令使うなら問題無いのでは?
0449名前は開発中のものです。02/04/10 14:32ID:5ayuVqAw
>>448
それってまじ?
8byteアライメント
0450名前は再開発のものです。02/04/11 23:55ID:???
>>448
なるほど、ありがとうございました。
0451名前は開発中のものです。02/04/13 19:35ID:qO7/lk76
 フリーの漢字つきフォントで、BMP形式のものってあるんでしょうか?
0452名前は開発中のものです。02/04/13 23:14ID:???
ファミコンのゲームをパソコンに取り込む!!
というやつがいます。
一、できるのでしょうか?
二、やってなんになる?ファミコンやれよ!!
0453名前は開発中のものです。02/04/13 23:19ID:???
>>452
Slot1のマザーボード買って来て、ファミコンのROMさせば目的は達せられる
0454名前は開発中のものです。02/04/13 23:31ID:???
>>452
ROMの吸出し機なら秋葉原で売ってるよ。
0455にゃ02/04/14 03:25ID:???
>>447
tmp_ptr=new char[640*480*3 + 31];
にしないと
■ このスレッドは過去ログ倉庫に格納されています