スーパーファミコンでの1つのスプライトの表示方法について
スーパーファミコンでの1つのスプライトの表示方法について
久しぶりです。KEYONN_です。
どうしても分からない事がありまして、ここに質問させてもらいます。
過去のコンシューマープログラミングにおけるスーファミの開発は行われていたようですが、
最近は外国にしか詳しい情報が無くて困っています。
http://www.inetmie.or.jp/~koh/inside/koh-sfc.htm
http://hp.vector.co.jp/authors/VA042397/snes/
http://www.geocities.co.jp/Playtown/2004/816_2.txt
http://www.geocities.co.jp/Playtown/2004/sndtech.txt
http://www.geocities.co.jp/Playtown/2004/sfc.txt
(先頭にhを入れてください。) 意味が無いので、httpに変更。 by ソフト屋(softya)
そこで、スーパーファミコンで1つのスプライトを表示させる為のクロスアセンブラを使用した
サンプルプログラムを教えて欲しいです。
サンプルプログラムは、a816か、wla-dxでお願いします。
僕もいろいろと調べているのですが、I/Oレジスタ0x2101、0x2102,0x2103,0x2104が
使えるのでは?と思っていますが、うまくいきません。
また、スプライトをVRAMに転送するのに、DMAを使ってOAMに使うと良いらしい事が
書いてあったのですが、DMAはファミコンでやった事があるので、なんとなく分かるのですが、
OMAとは一体なんでしょうか?
どうしても分からない事がありまして、ここに質問させてもらいます。
過去のコンシューマープログラミングにおけるスーファミの開発は行われていたようですが、
最近は外国にしか詳しい情報が無くて困っています。
http://www.inetmie.or.jp/~koh/inside/koh-sfc.htm
http://hp.vector.co.jp/authors/VA042397/snes/
http://www.geocities.co.jp/Playtown/2004/816_2.txt
http://www.geocities.co.jp/Playtown/2004/sndtech.txt
http://www.geocities.co.jp/Playtown/2004/sfc.txt
(先頭にhを入れてください。) 意味が無いので、httpに変更。 by ソフト屋(softya)
そこで、スーパーファミコンで1つのスプライトを表示させる為のクロスアセンブラを使用した
サンプルプログラムを教えて欲しいです。
サンプルプログラムは、a816か、wla-dxでお願いします。
僕もいろいろと調べているのですが、I/Oレジスタ0x2101、0x2102,0x2103,0x2104が
使えるのでは?と思っていますが、うまくいきません。
また、スプライトをVRAMに転送するのに、DMAを使ってOAMに使うと良いらしい事が
書いてあったのですが、DMAはファミコンでやった事があるので、なんとなく分かるのですが、
OMAとは一体なんでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: スーパーファミコンでの1つのスプライトの表示方法について
この掲示板にSFC経験者いないんじゃなかなぁと思いますが(私はGBは経験あり)、解析なら手伝いますがソースコードを要求されるのは無理かなと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: スーパーファミコンでの1つのスプライトの表示方法について
softya(ソフト屋)さんへ
//この掲示板にSFC経験者いないんじゃなかなぁと思いますが(私はGBは経験あり)、
//解析なら手伝いますがソースコードを要求されるのは無理かなと思います。
返信ありがとうございます。
分かりました。
どうやら開発経験者が居ないみたいなので、
c言語の(snes sdk)開発環境で作ろうと思います。
//この掲示板にSFC経験者いないんじゃなかなぁと思いますが(私はGBは経験あり)、
//解析なら手伝いますがソースコードを要求されるのは無理かなと思います。
返信ありがとうございます。
分かりました。
どうやら開発経験者が居ないみたいなので、
c言語の(snes sdk)開発環境で作ろうと思います。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: スーパーファミコンでの1つのスプライトの表示方法について
C言語でもSFCの制御レジスタを直接いじるのは変わらないはずですよ。それは良いのですか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: スーパーファミコンでの1つのスプライトの表示方法について
ちなみにc言語ではある程度目星が付いてます。
BG書き込みや、スプライト表示、移動、ジョイパッドなどが使えますが、
まだまだ分からない事だらけです。
BG書き込みや、スプライト表示、移動、ジョイパッドなどが使えますが、
まだまだ分からない事だらけです。
- 添付ファイル
-
- 無題.PNG (14.26 KiB) 閲覧数: 10978 回
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: スーパーファミコンでの1つのスプライトの表示方法について
いや、C言語で出来るならアセンブラでも大差ないでしょう。
それもすでにあるC言語のライブラリを使っていますか? なら、そのライブラリを解析するだけでは。
それもすでにあるC言語のライブラリを使っていますか? なら、そのライブラリを解析するだけでは。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: スーパーファミコンでの1つのスプライトの表示方法について
ああ、なるほど。それも考えていたのですが、やはり解析が必要みたいですね。
考古学みたいな感じでしょうか。。。
ソースコードを添付しました。
考古学みたいな感じでしょうか。。。
ソースコードを添付しました。
- 添付ファイル
-
- snesc.zip
- (49.44 KiB) ダウンロード数: 262 回
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: スーパーファミコンでの1つのスプライトの表示方法について
>考古学みたいな感じでしょうか。。。
SNES自体がすでに考古学ですよ。
ソースファイルを見る限りsetspriteとかレジスタいじる部分までcで書いてるあるので解析は困難とも思えませんね。
SNES自体がすでに考古学ですよ。
ソースファイルを見る限りsetspriteとかレジスタいじる部分までcで書いてるあるので解析は困難とも思えませんね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: スーパーファミコンでの1つのスプライトの表示方法について
今までファミコンとPCエンジンのプログラムをアセンブリ言語で(NESASM,MAGICKIT)
作った事がありますが、スーパーファミコンは、かなり難しい印象を持ちました。
でも、多分c言語の場合は、
cでレジスタを書いてるのを理解していないからcでしか作れないんだと自分で思います。
あとは、65816のアセンブリ言語を理解する事から始めないといけないみたいです。
ファミコンやPCエンジンのCPUである6502が分かるので、少しはマシですが。。。
作った事がありますが、スーパーファミコンは、かなり難しい印象を持ちました。
でも、多分c言語の場合は、
cでレジスタを書いてるのを理解していないからcでしか作れないんだと自分で思います。
あとは、65816のアセンブリ言語を理解する事から始めないといけないみたいです。
ファミコンやPCエンジンのCPUである6502が分かるので、少しはマシですが。。。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: スーパーファミコンでの1つのスプライトの表示方法について
ハードウェアのレジスタ構成がSNESの場合ちょっと複雑ですね。セガサターンに比べれば簡単ですが。
65186言語問題とハードウェアの問題を混ぜて考えているようにお見受けします。
65186言語問題とハードウェアの問題を混ぜて考えているようにお見受けします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: スーパーファミコンでの1つのスプライトの表示方法について
ある程度期待が持てるようなプログラムなのですが(スプライト表示のための)
X座標とY座標を指定する方法がイマイチ分かりません(アドレッシングモードやアセンブラの指定の
仕方など)
ファミコンのゲームを作っていた頃は、比較的小規模で開発できましたし、8ビットの壁みたいのが
ありましたが、
スーパーファミコンは、16ビットのファミコンよりも規模の大きいゲーム作りになりそうな予感がします。
あと、a816にはサンプルプログラムが付いていたので、それを改造したソースにしています。
X座標とY座標を指定する方法がイマイチ分かりません(アドレッシングモードやアセンブラの指定の
仕方など)
ファミコンのゲームを作っていた頃は、比較的小規模で開発できましたし、8ビットの壁みたいのが
ありましたが、
スーパーファミコンは、16ビットのファミコンよりも規模の大きいゲーム作りになりそうな予感がします。
あと、a816にはサンプルプログラムが付いていたので、それを改造したソースにしています。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: スーパーファミコンでの1つのスプライトの表示方法について
> X座標とY座標を指定する方法がイマイチ分かりません(アドレッシングモードやアセンブラの指定の仕方など)
アセンブラの話ですか? 65186には詳しくないのですが、下記サイトを見る限りインデクスモードが有りますね。
「65816命令表」
http://dragon.s151.xrea.com/65816/65816.html
こういうのを調べるのが楽しいと思うのですが、目的が違いますかね。
アセンブラの話ですか? 65186には詳しくないのですが、下記サイトを見る限りインデクスモードが有りますね。
「65816命令表」
http://dragon.s151.xrea.com/65816/65816.html
こういうのを調べるのが楽しいと思うのですが、目的が違いますかね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: スーパーファミコンでの1つのスプライトの表示方法について
目的は恐らく同じではないでしょうか。作る為には、知識が必要なので。
ところで、このサイトは初めて知りました。
かなり詳しい所まで書いてあり、勉強になります。図も描いてあるし、分かりやすいです。
65816アセンブラを勉強するにはもってこいですね。
a816のサンプルプログラムを改造して作っていたのですが、表記の仕方といちいち、lda.b @$2100と
@とピリオドとb w lを使い分けなければいけないのもあって、慣れません。
また、サンプルプログラムで変数に@をつけている場合とつけていない場合があり、どちらが正解なのか
分かりづらい部分もあります。
NESASMのような、$(アドレス)や#(10進数),#$(16進数),%(2進数)が使いやすく感じてしまいます。
また、マクロをa816は作れないのです。せっかく使っていたかったのですが、他のアセンブラも検討中です。
とりあえず、アーキテクチャーやCPUの命令を覚える事に
集中します。また、最初にあげたサイトの中にサンプルプログラムがダウンロードできたので、
後で見ておくようにします。
学習ソフトP-StudySystemというフリーソフトがあるので、それも利用したいです。
無論問題集は自分で作る手間がかかりますが。
ところで、このサイトは初めて知りました。
かなり詳しい所まで書いてあり、勉強になります。図も描いてあるし、分かりやすいです。
65816アセンブラを勉強するにはもってこいですね。
a816のサンプルプログラムを改造して作っていたのですが、表記の仕方といちいち、lda.b @$2100と
@とピリオドとb w lを使い分けなければいけないのもあって、慣れません。
また、サンプルプログラムで変数に@をつけている場合とつけていない場合があり、どちらが正解なのか
分かりづらい部分もあります。
NESASMのような、$(アドレス)や#(10進数),#$(16進数),%(2進数)が使いやすく感じてしまいます。
また、マクロをa816は作れないのです。せっかく使っていたかったのですが、他のアセンブラも検討中です。
とりあえず、アーキテクチャーやCPUの命令を覚える事に
集中します。また、最初にあげたサイトの中にサンプルプログラムがダウンロードできたので、
後で見ておくようにします。
学習ソフトP-StudySystemというフリーソフトがあるので、それも利用したいです。
無論問題集は自分で作る手間がかかりますが。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: スーパーファミコンでの1つのスプライトの表示方法について
C言語のコンパイラでアセンブラのソースコードを出力すると言う手もありますよ。
得体のしれないアセンブラの場合手がかりになります。
得体のしれないアセンブラの場合手がかりになります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: スーパーファミコンでの1つのスプライトの表示方法について
スプライトのジョイパッドによる移動までやるつもりですが、途中経過です。
任意の位置にきわめて限定的ですが、任意のスプライトを描画できました。
ただ、パレットの指定が出来ていないのが残念です。
ソースは、添付しておきます。というか、win7でもa816.exeが動くのが不思議です。
nesasmは古いバージョンだと動かないみたいなので。。。
追記
readme.txtを添付し忘れていました。すみません。
任意の位置にきわめて限定的ですが、任意のスプライトを描画できました。
ただ、パレットの指定が出来ていないのが残念です。
ソースは、添付しておきます。というか、win7でもa816.exeが動くのが不思議です。
nesasmは古いバージョンだと動かないみたいなので。。。
追記
readme.txtを添付し忘れていました。すみません。
- 添付ファイル
-
README.TXT
- (9.64 KiB) ダウンロード数: 220 回
-
- nanntoka.PNG (41.1 KiB) 閲覧数: 10687 回
-
- a816v107_xxx.zip
- (39.19 KiB) ダウンロード数: 255 回