ファミコンのプログラム3
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/06/23(月) 17:38:05ID:z53SrIuZでも900すぎてホンモノが現れたみたいだ。
もう要らねぇと思ってたけど、そいつらの為に立てたよ。
0295名前は開発中のものです。
2009/10/16(金) 12:53:36ID:MfIGUeJj自分で1から作成したプログラムがあるんですが、それでVRC6の音源を鳴らしたいんです。大雑把に言うと、MMC3構造で音源だけをVRC6などにする事が出来るのか否か、という意味です。
293さんのTNSカートリッジとかじゃなくて、エミュレータ上でそれが出来ればいいのですが…。その方法を知りたくて
コナミLSIだけ別にファイルとして用意して必要な時だけ読み込んで動作させるという事を今やってるんですが、マッパー切替え自体不可能でしょうか?w
0296名前は開発中のものです。
2009/10/16(金) 14:39:44ID:pw8IfXRn0297名前は開発中のものです。
2009/10/16(金) 15:17:59ID:MfIGUeJjもしくはそういった機能を持つプラグインを作れば可能な領域ですか?
0298名前は開発中のものです。
2009/10/16(金) 15:44:45ID:pw8IfXRn新しいマッパーを作るのでよければ
たとえばNesterJだったらmapper/004.cppを空いてる番号にコピーして(4*26で104にしようか)
NES_mapper104::Resetに
parent_NES->apu->SelectExSound(1);
を追加
NES_mapper104::MemoryWriteに
addr = addr & 0xfffc | ((addr & 1) << 1) | ((addr & 2) >> 1);
parent_NES->apu->ExWrite(addr, data);
を追加
ヘッダを書き直して、NES_mapper.cppとNES_mapper.hの該当箇所を直すだけで出来そうだぞ
0299名前は開発中のものです。
2009/10/16(金) 20:44:34ID:MfIGUeJjお、どもありがとです(^ω^)
新規マッパーですか。開発上ではG-NES使ってるのでその辺りを
少し調べてみる事にします。
やっぱりあのデビチルUの音源は魅力的ですよねー、とかw
もう開発始めてから1年近くなるんですけど
ファミコンはまだまだ判らん事だらけで困っちゃう
0300名前は開発中のものです。
2009/10/16(金) 20:50:53ID:MfIGUeJjいかんいかん
デビチルU→メガテンU
連投申し訳w
0301名前は開発中のものです。
2009/10/17(土) 01:29:25ID:5O/kgJwv0303名前は開発中のものです。
2009/10/17(土) 13:09:19ID:2Z8Ot/UFMMC3は512まで使えるけど、VRC6は256までだから。
0304298
2009/10/17(土) 14:00:54ID:lEV510ii使いたいのはN106だそうだぞ
0305名前は開発中のものです。
2009/10/17(土) 18:31:18ID:K5p+RqDtSorry.今はなむこさんの拡張音源を広げたいんです。
こなみさんのもその内とは思ったりもしてますが…
プログラム移植の方法なら確かに容量の問題でつっ掛かりました。
例によってVROMを使ってるものからVRAM形式のマッパーに変えるとなると
プログラムそのものを見直さないと駄目で
素人の私には到底むりぽですので、やはり新たに実装する
方法のほうが良いようです。
情報ありがとうございますo(^-^)o
0306名前は開発中のものです。
2009/10/27(火) 12:45:12ID:6yrB7EMH書換えと読取り?
0307名前は開発中のものです。
2009/10/27(火) 13:52:17ID:JvV7xCCjマリオの空とか固定パターンの場合には便利かと思いチップを設計しました。by作者
0308名前は開発中のものです。
2009/10/27(火) 14:13:51ID:9ME3ZxQfVRAMは、2kバイトのビデオ用RAMです。どこに何を表示するかのRAM。
これをROMにしたのがVROMかと。だがファミコンじゃ普通ROMにしない。アフターバーナーはROMになってたけど。特殊ですね。
(ただし、外人さんは名前の付け方が変なので、キャラクタジェネレータROMのことをVROMと言ったりするので注意。
キャラクタ用ROMはCROM、これがRAMだったらCRAMと名付けるべきでしょう。)
0309名前は開発中のものです。
2009/10/27(火) 15:19:06ID:6yrB7EMHご丁寧にありがとうございます!なんと作成された方直々にとは…、びっくりしました。
VRAMのほうが実用性高そうですね。パターンテーブル切替えとか
0310名前は開発中のものです。
2009/10/27(火) 22:19:12ID:JvV7xCCjそれぞれ1画面ずつRAMとROMを選択できるようにしました。
VROMの使用法としてポールポジションの道のアニメーションが目的だったのですが、
試作段階で挫折しましたw 俺・・・
0311名前は開発中のものです。
2009/11/05(木) 07:22:57ID:5L5biTqj分からない所があるんですが、
BGの書き込みの際にBASICのLocateみたいに、
x座標とy座標を指定できる方法は、ありますか?
0312名前は開発中のものです。
2009/11/05(木) 13:08:00ID:l85UMOLmvoid Draw(char x,char y,char number)
{
char adress = 0;
adress = ( y - 1 ) * 32 + x ;
*(char*)0x2006 = 0x20;
*(char*)0x2006 = 0x00 + adress;
*(char*)0x2007 = number;
}
これだと書き込む位置が0x2000から0xFF以下なら書き込めるが…
他に方法あるのか
0313名前は開発中のものです。
2009/11/05(木) 19:56:59ID:6WbXrm2Hextern int adr;
#pragma zpsym("adr");
adr = 0x2000 + y/32 + x;
*(char*)0x2006 = adr>>8;
*(char*)0x2006 = adr;
0314名前は開発中のものです。
2009/11/07(土) 21:04:44ID:Mf3/pBlMブロック崩しもどき作ってみた。
下に3回落ちたらゲームオーバーのはずなんだけど、
文字(BG)がうまく表示されない。
0315名前は開発中のものです。
2009/11/07(土) 21:29:27ID:UmD87ywj0316314
2009/11/07(土) 22:56:01ID:Mf3/pBlMBGで表示できないので、代わりにスプライトを使いました。
http://ppup.dip.jp/uploader/download/1257602099.zip
同じくpassはbbです。
0317名前は開発中のものです。
2009/11/14(土) 14:14:41ID:2jXyTTJyhttp://ppup.dip.jp/uploader/download/1258175338.nes
pass:1944
0318名前は開発中のものです。
2009/11/15(日) 15:40:05ID:yZ0q6H6Mスケッチブックに巨大な図を描きながら、関数電卓を叩いて計算してみた。
多分、これで合ってるはず
void DrawBG(unsigned char x,unsigned char y,unsigned char number)
{
int adr;
adr = (y-1)*32+x;
*(char*)0x2006 = 0x20+adr/256;
*(char*)0x2006 = adr;
*(char*)0x2007 = number;
}
cc65でコード入力して、この関数呼び出した自作ROMを
エミュで実行すると画面にBGが指定の位置に描画されたが、確証は無い。
0319名前は開発中のものです。
2009/11/15(日) 18:16:36ID:2XQwAgahスクロールレジスタも考慮するとあんまり一般的な方法ってのはないんじゃね
0320名前は開発中のものです。
2009/11/15(日) 23:05:33ID:zpJnzLrgスクロールを考慮する必要ナッシング
>>317
頑張ったな
でも流行ってるときに公開すればよかったんじゃね?
0321名前は開発中のものです。
2009/11/17(火) 11:58:25ID:9Pkn5HWa0322名前は開発中のものです。
2009/11/17(火) 12:59:06ID:O/lLyVUy0323名前は開発中のものです。
2009/11/17(火) 22:11:35ID:7i3K3Gjo実機?エミュ?
0324名前は開発中のものです。
2009/11/18(水) 13:19:33ID:GwpJUAOPエミュ
0325名前は開発中のものです。
2009/11/18(水) 22:51:06ID:FMqMiJwJそうでしたか。 そんなとこまで再現するとはすごい。
ちなみに、BGとSPR表示をオフにすれば、表示期間でも書き込みできるはず。
0326名前は開発中のものです。
2009/11/24(火) 18:08:45ID:nZ7IaeBO0327名前は開発中のものです。
2009/11/24(火) 18:47:46ID:nZ7IaeBO0328名前は開発中のものです。
2009/11/24(火) 19:24:15ID:HeI+t05Q0329名前は開発中のものです。
2009/11/25(水) 20:21:24ID:Y/xKjGNzPHA
STA 押しっぱのボタンの判定
EOR 1つ前のフレームでの入力
AND 押しっぱのボタンの判定
STA ボタン押した瞬間の判定
PLA
STA 1つ前のフレームでの入力
0330名前は開発中のものです。
2009/12/06(日) 03:05:59ID:pC5E5jqQ公開していたかと思いますが、参考になるのでは。
0331名前は開発中のものです。
2009/12/15(火) 15:19:45ID:a558s9Dhこれってなんででしょうか?
0332名前は開発中のものです。
2009/12/17(木) 23:49:54ID:U3Y0QHnxと同じく、BG関係が出来ません。
VBlank中で、PPUの初期化もしているのですが、
$2006 $2007 でネームテーブルを弄ると画面全体がずれてしまいます。
入門者丸出しですいません
0334名前は開発中のものです。
2009/12/18(金) 07:18:22ID:fDXCW/8vソース見てないから多分だが。
1.アセンブラ独自拡張部分が違う。
2.開発規模に差があって、ソース分割したりしている。
0335名前は開発中のものです。
2009/12/18(金) 09:45:35ID:BuyHr5qQそれをいじるとずれるのは仕様。(内部がスクロール設定と共用してるから)
いじったら、スクロールレジスタで設定する。 ネームテーブルも再設定必要だったかも。
0336名前は開発中のものです。
2009/12/20(日) 17:30:01ID:IyBK5veILDA #$00
STA $2005
STA $2005
で解決しました。
0337名前は開発中のものです。
2009/12/26(土) 01:03:22ID:Yz+hk6s6作ってみたので、上げてみました。初投稿です。
また機会がありましたら、投稿したいと思っています。
http://ppup.dip.jp/uploader/download/1261756865.zip
pass fami
0338名前は開発中のものです。
2009/12/26(土) 23:19:52ID:QFbZJHKM0339名前は開発中のものです。
2009/12/27(日) 03:58:45ID:k5Jwzm510340名前は開発中のものです。
2009/12/27(日) 04:17:31ID:dzEUSWU40341名前は開発中のものです。
2009/12/28(月) 19:43:15ID:qRtC33abありがとう337
0342名前は開発中のものです。
2009/12/29(火) 12:33:01ID:lTW0p2Tuテトリスすごい
0343名前は開発中のものです。
2010/01/01(金) 00:56:26ID:WEjwCp2Hまた、今回修正版を作りました。
ソースファイルmainの273行目を、and #%10000000からand#%11000000
に変更でBボタンの回転が可能に。
また、相対パスにしてどこにファイルを置いてもアセンブル可能に。
連射のバグについては、修正できませんでした。つまり、私に出来る限界であります。
またの機会があれば、挽回したいと思います。
ファイルのURL > http://ppup.dip.jp/uploader/download/1262274542.zip
pass fami2
0344名前は開発中のものです。
2010/01/07(木) 01:25:45ID:jF22eACi0345名前は開発中のものです。
2010/01/07(木) 18:24:09ID:/pb3LoGRGJ あとP'L'AYERに直せない?
0346名前は開発中のものです。
2010/01/10(日) 13:08:37ID:29GXWjNI0347名前は開発中のものです。
2010/01/21(木) 06:45:05ID:Q/sVFXNuhttp://sourceforge.net/projects/nesdevkit/
これで作ってるやついないんか
0348名前は開発中のものです。
2010/01/21(木) 12:00:44ID:wsJ4sicJと書かれているな
0349名前は開発中のものです。
2010/01/23(土) 01:50:27ID:hz4QiZI90350名前は開発中のものです。
2010/02/10(水) 17:01:51ID:vFQj1T+qスタックが原因で暴走してしまいます。
ループを使って何体もの敵と判定しているのですが、
なぜか2回以上ループさせると暴走してしまいます。
スタックについて、良く分からないのですが、
誰か教えてくれませんか?
0351名前は開発中のものです。
2010/02/10(水) 17:33:12ID:asha1W500352名前は開発中のものです。
2010/02/10(水) 21:56:06ID:n6ohQVMg0353名前は開発中のものです。
2010/02/10(水) 22:39:11ID:vFQj1T+qclc
adc #$0D
cmp $10
bcc crashsprite
lda $200,y
clc
sbc #$0D
cmp $10
bcs crashsprite
lda $201,y
clc
adc #$0D
cmp $11
bcc crashsprite
lda $201,y
clc
sbc #$0D
cmp $11
bcs crashsprite
lda #$00;当たり判定で当たった時の処理
sta $202,y
sta $201,y
jmp nosprite
crashsprite:
0354名前は開発中のものです。
2010/02/11(木) 06:19:52ID:+wEnMjxV0355名前は開発中のものです。
2010/02/11(木) 11:16:39ID:4IEAI3zI0356名前は開発中のものです。
2010/02/11(木) 12:52:58ID:QsCNBYLySもしくはスタック領域($100-$1ff)を操作しているのはどこ?
ループのどこかで PHA/PLA/PHP/PLP をしてない?
ループの中で PH* して PL* し忘れはよくやる。
0357名前は開発中のものです。
2010/02/11(木) 13:52:48ID:4IEAI3zI0358名前は開発中のものです。
2010/02/11(木) 15:37:49ID:et5xB1Ayjsrで呼びっぱなしになるとスタックに戻り先番地が積みっぱなしになるから
0359名前は開発中のものです。
2010/02/11(木) 18:10:10ID:4IEAI3zI解決できませんでしたが、自分の力で何とかしていきたいと思います。
ありがとうございました。
0360名前は開発中のものです。
2010/02/13(土) 11:28:12ID:sDFwUFjGありがとうございました。
0361名前は開発中のものです。
2010/02/14(日) 00:03:10ID:LaFtPQUDまてまて、自己解決したときは、問題点はどこだったのか、どう改善したのかを書いていくんだ。
0362名前は開発中のものです。
2010/02/14(日) 03:31:52ID:syypGNiCそもそもスタックについてよくわからないのに、何故スタックが原因だと思ったのかが謎。
たぶん結果的にハズレだったのだと想像してるけど。
0363名前は開発中のものです。
2010/02/14(日) 10:56:58ID:gOZSpFKOそっちに当たり判定を書いたらうまくいきました。
>>362
メモリビューアをみたら、$100^$1FF
が、おかしくなってたからです。
0364名前は開発中のものです。
2010/02/17(水) 21:19:35ID:JTomCMoHnospriteとcrashspriteの2つのパスがあるけど、片方にRTSが実行されないバグ
があったとかじゃないかな? (RTSせずにJMPで呼び出し元に戻ってるとか)
もしくはJMPと間違えてJSRを使っているとか。
0365名前は開発中のものです。
2010/03/03(水) 22:25:15ID:NWYoUOba0366名前は開発中のものです.
2010/03/05(金) 23:52:48ID:xdcULiY0横スクロールゲームをつくっているのですが,
なぜか15フレームに1回8ドットだけ縦にスクロールして,次の15フレーム分は
正常に水平方向にスクロールするという現象が起きており,その原因と解決法が分らず
困っています.
0367名前は開発中のものです。
2010/03/06(土) 02:40:39ID:KnZNd5Bxどういう手順でやろうとしてるのか見たいから。
0368366
2010/03/06(土) 03:01:24ID:AwxGSoRfNMI始めのVRAMアクセスで一度に大量のデータを転送しているのが
原因である可能性が高い
新たな地形のグラデータをPPUメモリに書き込む際,
16*16ドットのブロックを縦一列(13個)分
=合計52バイト,しかも2回に1回は属性テーブル7バイト分をあわせた59バイト
をもいっぺんに書き込んでいるからかもしれません.
属性テーブル転送をやめ.ネームテーブルに書き込むデータを半分にすると正常に
動作しました.
とりあえず明日,VRAMアクセスを分配するようにコードし直し,それでも直らなければ
コード晒します.
0369名前は開発中のものです。
2010/03/06(土) 12:32:36ID:W2DZun6NFC の Vblank 期間は全 262 ラスタラインのうちの 20 ラインだから、
(1789772 / 60 / 262) * 20 ~= 2277
つまり Vblank 期間に入ってから 2277 CPU クロックくらいで
次のフレームの最初のラスタラインの描画が始まってしまう(BG or SP表示時)。
それまでに VRAM アクセスを完了して $2005 を設定しておかないと
スクロールが乱れると思う。
0370名前は開発中のものです。
2010/03/07(日) 23:52:29ID:kQ66zFZu0371名前は開発中のものです。
2010/03/08(月) 04:41:47ID:5IzYvlf+スプライトDMA切って、BG書込みのループを全展開すれば
128くらいはいけるはず(実用的ではないが)
要はコードによると思う。
0372名前は開発中のものです。
2010/03/08(月) 10:23:58ID:muoqTmRUあれは別にハードの制約ではなかったのか・・・
0373名前は開発中のものです。
2010/03/20(土) 23:30:35ID:7oRZCS9Kバグを直したいのでふが
0374名前は開発中のものです。
2010/03/22(月) 00:33:34ID:GTcRHOUJ自分の作ったものならソースあるだろ
他人の作ったもの?著作権って知ってるか?
0375えいいち ◆GRGSIBERIA
2010/03/22(月) 06:17:25ID:TX6qXJ0Q0376名前は開発中のものです。
2010/03/22(月) 09:41:05ID:15cuNssQ0377名前は開発中のものです。
2010/03/22(月) 10:05:38ID:NnDh2GxTまだこんなこと言ってる人いたんだ
0378名前は開発中のものです。
2010/03/22(月) 14:32:44ID:yMBeUZhuつーか、バグの内容を書けない時点で、どうせよからぬ方向性なんじゃねーの。
裏技・改造板のAC化スレの連中の真似でもして、なんかハックROMでも作って神とか呼ばれたいだけとかさ。
0380名前は開発中のものです。
2010/03/22(月) 19:22:48ID:6QPzvgeXまずお前がエミュレーター動かしてる時点で著作権も糞も無いという理由を言えよ
0381えいいち ◆GRGSIBERIA
2010/03/22(月) 22:47:19ID:TX6qXJ0Qある仕組みを再現するソフトを無断で作ってばら撒いたら財産権のいずれかにはヒットするだろう。
場合によってはその仕組みを利用している業界団体から訴えられることもあるが。
(PowerTabEditorとかは勝訴したけど、逆転するまでは公開差し止め食らってたし)
はい、次。
0382名前は開発中のものです。
2010/03/22(月) 23:45:51ID:6QPzvgeXばら撒いたらとか、なんでエミュレータの配布の話になってるんだよ。
ファミコンソフトの著作権とエミュレータ自体の違法性の話をごっちゃにするな。
0383えいいち ◆GRGSIBERIA
2010/03/22(月) 23:59:50ID:TX6qXJ0Q違法ダウンロードの拡大解釈で適用できなくもないような気がしないけど。
改正著作権法自体が新しいし目立った判例も少ないからなんとも言えんけどね。
違法であることを知っててダウンロードした、ってことに焦点を置けばいいけど、
エミュレータ自体の違法性が立証できなきゃだめだろうね。
ところで、>>376-377マダー?
0384名前は開発中のものです。
2010/03/23(火) 07:41:37ID:/Gz7GN4J「こんなに真似てるんだから絶対どこかで法に触れてるはず。よって違法」では不足なんだろう。
古いニュースだが、米国ではプレステのエミュレーターについての裁判でソニーが敗訴しているらしい。
http://wiredvision.jp/archives/200010/2000100301.html
リバースエンジニアリングは基本的に合法。ソフトウェアエミュレーションも一般にありふれた技術で、
禁止すべきものではない。ただし内部資料を不正に入手するのはダメという判断らしい。
国内でどう考えられてるかは知らないが、まあ似たようなもんじゃないか。
勝算があるならマジコンみたいにガンガン裁判を吹っかけて潰しにかかってるだろう。
ちなみに、PowerTabEditorで問題になったのはこのソフトそのものじゃなくて
このソフトのためのタブ譜ファイル(ギターの楽譜みたいなやつ)の著作権らしいから、
「ある仕組みを再現」することとは関係ないんじゃないかな。
0385えいいち ◆GRGSIBERIA
2010/03/23(火) 17:08:55ID:lRzZdafXなるほどね。
でも、地方裁では一応仮差し押さえに成功してるわけでしょ?
これって、ソニーが主張する財産権の侵害が(一時的に)認められた、ってことだから、
まだエミュレーションとかが違法である、ってことの余地は残してないかい?
>「ある仕組みを再現」することとは関係ないんじゃないかな。
違法ダウンロードを促したとして『ある仕組みを利用』している団体から訴えられるかもしれない。
かもしれないで現実にないからアレなんだけど。
0386名前は開発中のものです。
2010/03/23(火) 20:09:34ID:d1ah2GJ70387名前は開発中のものです。
2010/03/23(火) 21:31:29ID:/Gz7GN4Jその仮差押えは取り消されて、最高裁で件のエミュレーターの製作販売が認められた。決着はついている。
んで、仮に「違法ダウンロードを促した」場合があったとしても、それがどんな法に触れてるのかが問題。
先にも書いたけど、エミュレーターを差押えられる見込みがあるならゲーム会社はとっくに動いている。
それが全てだ。安心してコードを書け。
0388名前は開発中のものです。
2010/03/24(水) 03:11:17ID:tfq2QM22分かったからとりあえず、VPCとVMwareとXen試してこい
ただし、ちゃんと正規ライセンスは用意すること
ついでにプログラムの特許について調べてくるべきだな
LAMEがMP3の特許侵害にならない理由とか
0389名前は開発中のものです。
2010/03/24(水) 16:09:45ID:N9+dhc0yどんなところか気になるところ。絶好調だといいんですけどね。
0390名前は開発中のものです。
2010/03/25(木) 00:10:07ID:PKJfXCTY今さら8bitマシンをアセンブラであれこれする気力は沸かないな・・・
もうオッサンなのだろうか・・・
0391名前は開発中のものです。
2010/03/26(金) 18:33:48ID:SSNKuKyTFC音源について書かれているようです。これを見れば、
音楽ルーチンの作成に役立つかもしれませんな。
>ttp://dic.nicovideo.jp/a/fc%E9%9F%B3%E6%BA%90
0392名前は開発中のものです。
2010/03/26(金) 23:37:38ID:z7k/h6T4これは、良く細かいところまで載ってるな。
0393名前は開発中のものです。
2010/03/30(火) 02:05:14ID:5nqzQvfU普通、VBlank中に転送しないと表示がおかしくなるとのことですが、
BGもスプライトも表示を消した状態であれば、VBlank中でなくても転送
は滞りなくできるのですか?
0394名前は開発中のものです。
2010/03/30(火) 19:56:11ID:CrwKa28Y■ このスレッドは過去ログ倉庫に格納されています