1 :
名前は開発中のものです。 :
2008/06/23(月) 17:38:05 ID:z53SrIuZ 前スレ、何もしねぇカスどもの集まりだったよな。 でも900すぎてホンモノが現れたみたいだ。 もう要らねぇと思ってたけど、そいつらの為に立てたよ。
2 :
名前は開発中のものです。 :2008/06/23(月) 17:40:37 ID:plUxzTJT
知識をひけらかすだけのスレになる予感
どうせ過疎なんだからファミコンもスーファミもスレまとめたほうがいい気がする
どうせ落ちないんだから、関係ない情報を一緒にまとめて、可読性を落とす必要はない。
MagikKitのLinuxバージョン、Mac OSXで動きました 同ページのデモも難なくコンパイル、エミュでの動作に成功 解凍したフォルダの中のBINを小文字に変えて、ASの中にあるファイル全てを小文字に変えた後 makefile -f makefile.unx で解凍ディレクトリトップのBINに実行ファイルが出来上がります
>>前スレ908 1つのサブルーチンの中でしか使わないようなラベルは ローカルラベルにしといたほうがいいよ(単にループさせるだけの物とか) ラベル名の先頭にドット付けるとできるよ
FF1では割り込みで戻るにもrtsしていたと海外サイトに書いてあった
アセンブラって命令少ないの?
6502の命令数は52だったか
命令数が少ないほど組み合わせも複雑になってくるよなあ。
inc a があったら良かったなぁ〜
inc a の話が出たので質問ですが 皆さんは変数をインクリメントするとき, どう実装してますか? なにか技があったりしますかね?
カウンタならxかy zp使うかどうかはサジ加減だからなんとも言えないね
Aレジスタならキャリーフラグをどうしても保存したいとかじゃない限りCLC ADC#01でいいと思うよ
19 :
名前は開発中のものです。 :2008/07/07(月) 02:19:28 ID:Kzjq2TdI
YOSHi氏によると、MMC1は各レジスタの初期化時に lda #%10000000 sta $8000 ; Resetting range #0 sta $A000 ; Resetting range #1 sta $C000 ; Resetting range #2 sta $E000 ; Resetting range #3 lda #$0C ; This is our value sta $EFD9 ; Writing bit 0 lsr a ; Shifting sta $EFD9 ; Writing bit 1 lsr a ; Shifting sta $EFD9 ; Writing bit 2 lsr a ; Shifting sta $EFD9 ; Writing bit 3 lsr a ; Shifting sta $EFD9 ; Writing bit 4 とするようだが、$EFD9にストアする意味を教えてほしい。 あと、同氏によればマッパー2はバンク切り替え可能なのはCHR-RAMのみで PRG-ROMはマッパー0と同じ16or32KBらしいけど、これってマジ?
悪世界の殻を実際に割った所 PRG ROMがAとBの二つあるがCHR ROMは一つしか無い PRGとCHRは必ず別々のROMとして存在してる様なので本当じゃないでしょうか
21 :
名前は開発中のものです。 :2008/07/08(火) 00:03:43 ID:oBWFudvo
ファミコンのゲームが開発できるSDKやツールとかって、フリーでなんか公開されてない? 自分でファミコンのゲームを作るのが夢だったんだが。
22 :
19 :2008/07/08(火) 02:29:10 ID:ay11wdwp
冷静に氏の資料を読み直してみると、
CHR-ROMしか切り替えできないのはVROM Switchなるマッパーで
マッパー2じゃなかったみたいだ。
>>20 さんありがとう。
>>21 Windows標準のメモ帳とNESASMで十分だと思うが。
マッパーってエミュ開発者が定義したものなわけ?
>>23 iNES Headerという名前からわかるとおり
iNESの作者の方が定義したのかと
定義したといっても最初は少数のマッパーだけだろうけど
マッパーって自分で仕様決めれば容量も無制限に使えるのか
そりゃそのマッパーに対応する動作をEMU側に載せればできるだろう。
ヘッダーが8Bitなので、256バンクが限界。
携帯持ってるならJavaやFlashでアプリが作れる 古いタイプじゃなければ自作のも簡単に動かせる模様
既存のマッパーで容量が足りないってよっぽどだよ ファミコンにとっての512KBはPSにとってのディスク4枚組みくらいだと思う
DPCM使いまくりじゃないと、個人製作じゃ使い切れんよね
結局何MBまで使えるんだ。 最近じゃ中国のパチモンでFF7とか話題になってたけど、あれは2MB使ってるらしい。
>>28 を見ればわかるでしょ
PRG-ROMが8*256KBと、CHR-ROMが1*256KB
中国のパチモンFF7はCHR-RAMを使ってると思うから限界までいってるはず
それはヘッダーの制約であって実機の制約ではないのだが
なんで何回も同じ話するんだ? ここまでテンプレ?
PRG-ROM:16k×256=4096kバイト CHR-ROM:8k×256=2048kバイト だよ。
>>6 quadという人がサウンド系のROMを公開してたような覚えがある
>>39 すばらしい出来だなぁ
VCで配信するべきだろこれ
41 :
19 :2008/07/11(金) 20:01:59 ID:vcdyUKXP
マッパー2でPRG-ROMにあるCHRデータをCHR-RAMに転送するにはどうすればいい?
アドレス設定して、一バイトずつ送ればいいでしょ。
43 :
19 :2008/07/11(金) 21:29:23 ID:vcdyUKXP
>>42 .bank 0
.org $8000
.incbin "****.chr"
lda #$00
sta $2006
lda #$00
sta $2006
lda $8000,y
sta $2007
ってこと?
これじゃ効率的とは思えんのだが…
>>43 そのとおり
なので1フレームで書き換えられる量はかなり限られるよ
グラの圧縮ってどうやんの
ランレングスとか、ランプルジズとか、ハフマン符号とか>圧縮
>>47 そのムービーみてすげぇと思ったら、
>映像はイメージです。実際の商品はアニメーションしません
詐欺じゃんw
グラの圧縮つってもPPUアーキテクチャですでに無駄が省かれてるから することほとんどないぞ ドラクエの文字圧縮ぐらいだよ
DQ3とかモンスター圧縮されてる
こういうのはソース付きじゃないと意味が無い
文字表示はソフトウェア研究所にソースがある
この動画のうp主は色々ジャンルあげてるが 大風呂敷広げてアセンブラは今から覚えるとかじゃないだろうな
こんな動画作ってる暇があrったら(ry
漏れも、この動画のうp主は何も作れないと予想
youtubeに上げる程の動画でもない
ま、テキストに起こせば終わりの動画もどきだな。文字しかない それも、グダグダと長い導入があって、言いたいことは 「ファミコンソフトを作ります」と一言で書けるし 「特別な技術を持っていない」という文章からするに、 多分これからアセンブリ言語を覚えるだろうと予想できるし
たった8ビットの数値の羅列に過ぎないが その情報にかつての私達は夢中になった。 ボスの撃破に本気で喜び はがねの剣を買うことに本気で悩み 友達の失敗でお腹が痛くなるほど笑い たかがくにおくんで本気で喧嘩になり やくそうもMPも尽き果て、冷や汗をかきながら、洞窟を脱出し 倒れ行く仲間達に涙を流した。 あのしょうもないドット絵の向こう側に 夢を描いた。 あのたっと3和音のメロディに 鳥肌が立つほどの感動を覚えた。 しかし僕らは大人になった。 気づけばゲームに夢中になれなくなっていた。 もう必死でメモしたパスワードが間違っていることはない。 興奮してコントローラを引っ張りバグってしまこともない。(※←「しまことも」は多分脱字) 親に内緒でファミコンをすることもなければ あの恐怖の音楽を聴くこともない。 あの頃のどんな体験も、今はもう味わえない。 最高に楽しかったあの日々は、もう戻らない。 だが私は誇りに思う。 幼き日にファミコンに出会えたことを。 プレステでもDSでもWIIでもない。 幼き日のあの体験が今の僕らを作っている。 そして私は感じるのである。 ファミコンに恩返しがしたい、と。 ファミコンを作りたい。 たった一度でいい。 あの頃の僕らに戻れるような、そんなゲームを。 つーことで俺結構本気で作りたいんだけど、みんなでやってみない? ニコニコのみんなで作りたいんだ。 賛同者求む!! ファミコン狂の詩 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− ニコニコ見られない人のためにテキストに起こせば、こうだな。
>>61 乙
とりあえず俺もゲーム作ろうwww
今ギコファミみてやってるが面白すぎて死ぬ
早速LEAPER注文してしまったwww
ニコ動のうp主に負けないように精進します と独り言 > /dev/null
63 :
58 :2008/07/16(水) 23:24:35 ID:bbBz5s4Y
ありがとう。 気になって動画も見ちゃったが、見る必要なかった。
本気で作りたいんだけど、みんなでやってみない? にワロタ
「ゲームジェネレーション8ビットの魂」みたいになるんじゃまいか? ゲームを作りたい、という企画から始まって、自分は口出すだけで 優秀なプログラマーとグラフィックデザイナー、サウンドクリエイターを かき集めて完成させる、みたいな。 ニコ動の次の動画に「サウンドは●●氏にお願いしたい」と書いている辺り 動画のうp主の意図はそこにあると思われ、多分。
まあ他のやつが自由意志で参加するんならいいと思うが まず自分がアセンブラ使える事を証明しないと始まらんよなあ
製作状況を動画(文字のみ)でお伝えするのが役割だろw
VIPの安価スレみたいなノリだな
機械語でファミコンのゲーム作ったら容量とかも大幅に削減できるわけ?
命令数を減らすとか、データを使いまわすとかすれば減る。 機械語だから減るって部分は極めて少ないと思うよ。
ナンセンスな質問だな
73 :
名前は開発中のものです。 :2008/07/19(土) 17:07:34 ID:nDw8XT/x
mckで作った曲のデータをNESファイルに組み込むのってどうやるんだ?
知らんがな
mckに入ってるドキュメントくらい読めよ・・・ 狂ってるのか
グラの圧縮の話だけど絵の属性設定使えば左右上下反転出来る
グラディウスの圧縮ですね。分かりました。
78 :
名前は開発中のものです。 :2008/07/21(月) 16:46:50 ID:ljhT6DnY
>>78 元ネタやったことないんでよくわからんのだが
1〜4すべてのボタンを連打していたらクリアできました^^
81 :
K :2008/07/21(月) 19:50:13 ID:ljhT6DnY
>>78 >>79 ありがとうございます。
よくわからなかったか(^^;
説明書が不十分でしたね。画面左側に出てくる数字と同じボタンを
右側の■が全部なくなるまでにすばやく押す、という内容です。
各ボタンに対応してるキーは説明書のとおり。99点目指してがんばって!
ちなみに私は70点ぐらいで死亡しました…
あ、ゲーム崩壊しちゃうので、全ボタン連打は禁止技ってことで…(^^;
82 :
K :2008/07/21(月) 19:51:12 ID:ljhT6DnY
そう言うことか。
>>78 urlのディレクトリの文字が¥になってる?のか、リンク切れ多発。
84 :
K :2008/07/21(月) 23:08:48 ID:ljhT6DnY
>>83 報告ありがとうございます。しかし、私の環境ではちゃんと表示されるのですが…
いちおう、ディレクトリの文字をすべて\から/に変えてみました。どうしょうか?
>>65 のnestech.txt見直してみたら、背景にはそんな設定は無い様だ
PPU章のJ.Sprites and SPR-RAM、バイト2のvhビットを使う
; SPR-RAM DMA転送用 org $300 chara_y .ds 1 tile_number .ds 1 chara_attribute .ds 1 chara_x .ds1 --$300以降$100分0で初期化-- lda #80 sta chara_y lda #1 sta tile_number lda #%01000000 ;左右反転 sta chr_attribute lda #119 sta chara_x ;垂直同期中 lda #3 sta $4014 これで2番目のスプライトが画面中央に左右逆で表示
なんにも圧縮されてないわけだが
>>39 すごい。
さらっと動かしているが、高速体を迷路で動かすときに
あれだけきれいに曲がれるとは、曲がり角の判定めんどくさかったろうな。
リンクからのソーサリアンは…なんかおかしくね?
MMC3にキャラRAMモードなんてあったかな…。しかもバンク切り替えをしなければ
あのタイトルは到底256キャラに収まらないだろうし。
キャラRAMバンク切り替えができるMMC3…。何のタイトルで使われたんだっけ?
こういうのって昔ファミコンソフトの開発に関わってた人が片手間に作ったものなのかなそれとも若い人が独学で学んで作ったものなのかな後者ならすごいと思うが
>54 今見に行ってみたらジャンルをRPGかSRPGにしようとしていた。 わざわざ難易度の高いRPGにするとは・・・
はやくも終了フラグたったな
RPGの規模や形態にもよると思うが、市販レベルは期待していない。 問題はどんな形であれ、ちゃんと遊べる形で完成まで持っていけるかどうか。 スクロールさせずに固定切り替え画面(ハイドライド方式)なら 処理はぐっと楽になるし、難しいところはアイデア次第でどうにでもなる。 もともと無理くさいとは思っているが、ちょびっとだけは期待しておく。
>>90 FF3やロックマン4がMMC3でCHR-RAMです。
バンク切り替えは実機で動かしてないから断言できないけど基板を見たところ
CHR-RAMとMMC3もつながっているみたいなのでRAMの範囲のバンク切り替えは出来ると思う、多分。
>>91 独学で勉強しました。
ソーサリアンもどきをダウンできるようにしておきました。
ttp://coke774.web.fc2.com/
作者みてたのねw UP可能だったらパクマンもお願いします
>>97 ファミコン開発関連のサイト少ないですからね。
ここも見てます。
パックマンは一応、現役ソフトの勝手に移植なんで自粛してます。
100 :
90 :2008/07/30(水) 00:39:01 ID:yyCNUQzR
>>96 なるほど、あった訳ですね。失礼しました。
ちなみにCHRRAMってどのくらいの容量がつながってました?
ROM見ました。すごいwとても独学とは思えないw
学生?社会人じゃ時間ないよね。
>>96 すごい!!作者さんが!!!!
マッパー4でソフト作って,実機で動かして
とんでもないな〜と感銘を受けていました.
マッパー4を実機で動かすときに,何を使って動作させたんですか?
ROM基盤から自作ですかね・・・・.
104 :
90 :2008/07/31(木) 01:35:54 ID:IqY5cVGP
>>103 PPUの$0000 - $1fffがそのままRAMになるのね。
しかし、そこをさらにバンクで分割使用するとは気がつかなかった。
正確には0000-07FF までだけど。
106 :
90 :2008/07/31(木) 21:34:02 ID:IqY5cVGP
>>105 2Kしかつながってないの?残りの6Kどこいった?
つか、それじゃCGが128キャラしか定義できないんじゃね?
>>106 いや、$1FFFまで使えますよ。
105はWRAMの話と勘違いしたんじゃないのかな?
本当だ、ppuって書いてあった。
四角がぴょんぴょんしてるだけなのだが 円弧軌道とはなんぞや?
112 :
名前は開発中のものです。 :2008/08/08(金) 22:03:32 ID:Cos41rKx
sin波(テーブル化)による移動の仕方ではないだろうか… しかし、なにか動きがきごちない
で、これがどうしたと
ソーサリアンもどきが実機でも動きました。 なのでCHR-RAMの範囲でのバンク切り替えは可能ということですね。
そうですか
>>114 実機動作で使用した基盤は作れるもの?
たとえばロックマン4とかのカセットを分解して
ROMをはずして単純に足数のあうROMソケットを半田付けした
ものでEPROM差して動かせるかな?
ピンコンパチであれば
118 :
名前は開発中のものです。 :2008/08/20(水) 00:53:46 ID:5Oype6ZD
パックマンCE公開してほしい! パックマンに当てる差分ファイルとしてでもいいのでIPSパッチ!
パックマンを改造して作ったものでもないし CEオリジナルは現役だし 無理なことぐらい常識でわかるだろ・・・
POCMANとかパクパクマンマンとかいう名前でリリースすれば良い。
公開できないのに見せびらかすのもどうかなと思ったわ
まじか カスばっかだな
自分を隠して作品晒したいのならP2Pで流すとかは? shareなら落としたいやつが欲しいジャンルで待ち構えてるから ファイル名に[rom][nes]とでも入れれば
夏厨ってしつこくて気持ち悪いな
>>123 もう動画で晒しちゃってるんだから、何で流そうが
本人特定されちゃうだろw
>>54 のニコニコでファミコンソフトを作ろうな人の最新動画が上がっていた。
------------------------------------------------------------
前動画では多数のコメントありがとうございました。
ジャンルを決定しました!!
RPGを作りたいと思います!
まず、「何を作るのか」ですが今回は、エミュで動くROMイメージが
作れれば良いかなと考えています。
さて、問題はここからです。
どうやって作るか・・・正直僕のスキルはゼロです。
でも、ファミコンが作りたい・・あの時代を共有した、アイツらなら
きっと賛同してくれる。
そう思って僕は、ニコニコでこの企画を始めました。
「2ちゃん」でも「MIXI」でもない。ニコニコの皆で作って見せると。
今こそニコニコの力を、ファミコン世代の力を見せてやろうじゃないか。
無謀かもしれないけど挑戦する価値は大いにある。それは断言できます。
製作にあたって必要な人材をとりあえず挙げてみます。
@プログラマー Aドッター(絵師) Bサウンダー Cシナリオライター
Dゲームシステム考案者 D宣伝、広報役 E進行管理、各種調整、雑用
いったんはそんな所だと思います。
まずはご協力いただける人数を把握したいと思います。
ご協力いただける方は、「(メアドは割愛)」までご連絡ください!
メールアドレスの不正な使用などは一切いたしません。
どうかご協力お願いいたします。ファミコン狂の詩
------------------------------------------------------------
…なんとなく、企画倒れっぽいな。偉そうな能書きたれているけど、人任せ過ぎ。
本人何もしないのかw
なんという人任せww せめてドッターとか企画・宣伝くらい自分でやれよw
後のTVゲームジェネレーションである
あの番組はひどかったな。 遠藤とのやり取りの時の態度なんか特に。
犬飼・ナレーション・髭のプログラマーなどの痛さ、 Cを「アセンブリ言語」と紹介してしまうなどの適当さ、 色々とひどい番組だったな
どうやって作るか・・・正直僕のスキルはゼロです。 でも、ファミコンが作りたい・・あの時代を共有した、アイツらなら きっと賛同してくれる。 そう思って僕は、ニコニコでこの企画を始めました。 「2ちゃん」でも「MIXI」でもない。ニコニコの皆で作って見せると。 今こそニコニコの力を、ファミコン世代の力を見せてやろうじゃないか。 糞ワロタ 厨臭い文章だなwwww
ファミコン世代?なんだろうから、30近いか過ぎてるんだろうよなぁw
>>131 そうそう!w
途中で最初のプログラマが抜けた経緯の説明も何もなかったしw
よっしんさん出演だけはガチ
普通呼びかけてるやつがプログラムとか組むんじゃないのか まあ共同制作ならプログラマは複数人いてもおかしくないが 企画している以上難しい事をやって示さないと他力本願と思われても仕方ないわな
プログラム組めないなら、徹底して作りこんだ企画書うpるとかHP立ち上げるとかさぁ。
要は、あまりに8ビットの魂の犬飼と被るんだな。 自分は何も出来ないのに、一番偉そうみたいな。 優秀なプログラマー、ドッター、サウンドクリエイター、アドバイザーをかき集め、 全てを丸投げして「自分がゲームを作った」みたいな。
ひょっとして本人がまたやってるんじゃ・・・?w
141 :
名前は開発中のものです。 :2008/08/25(月) 12:02:38 ID:LALdEEWt
ドンキーコングはどんなPCで作ったのかな?
>>133 30代のファミコン世代からすれば、80年代当時のゲームクリエイターの花形はプログラマだよ。
だから、ゲーム作りたい=プログラム書く、って認識だよ。
んで、今は80年代と違って、FCの資料も開発環境もタダで転がってるわけで、いくらでも試行錯誤できる。
だから、作りたいけどプログラムは分らないと、堂々とのたまってる時点で、明らかに世代が違うよ。
>>132 は、文章から見るに、単なるリア厨か工房だと思うよ。
「昔のシンプルなゲームの方が優れてる」みたいな主張をする懐古趣味のオタとか見て、それに影響受けてる感じ。
複雑なWindows用のゲームでなく、FC用なら小規模で性能低いから、すぐ完成するんじゃね?的な発想が透けて見えるね。
まあ、もしかすると、スレで名前が出ている、犬なんとかって人かもしんないけどね。
ゲームを作るだけなら、Winで作った方が遥かに簡単で効率よく組めるわな。 Winでシンプルなゲームを作りゃいい。 同人なんかでも「Winでファミコン風ゲームを作りました」なんて、いっぱいある。 ファミコンは、ROM容量やROMの特性(バンク切り替えなど)、メモリ容量、 画面(VRAM)特性、速度、そして何より開発効率の悪いアセンブリ言語など、 難しくはないけど、とても面倒くさいぞ。 それでも「あえてファミコンで」やることに価値があるのだが、 まぁ、ニコニコの奴は軽く考えすぎだわな。
>>141 開発機材は100万円くらいだと言うページを見たな
現在の価値でいくらくらいの出費なんだ
マックが360円くらいだった頃だったかな。 今の3倍くらいの価値か?
当時ファミマガに、開発機材の写真が載っていた。 それで、スーパーマリオを改造していたような気が。 「ああ、こんな機械で作るのか」ぐらいしか覚えていないので、 大した外観ではなかったはず。 ファミマガのドット絵拡大写真なんかにも使われていたのかも。
コロコロに98でスタソル作ってる所がうつってたよ。
本物の馬鹿だな。
>>149 こんな馬鹿たれには違法覚悟で全ソフトをエミュレータで一からプレイさせないと
駄目かも知れないな。といいながらウルティマとかジャストブリードとかラグランジュとかに
またはまっている俺がいうことではなかったw
なんていうか、ドラクエなんかは、ツボを覚えてしまっているらしくて、そこに到達するのが
面倒でやめてしまうが、上の3つとかは程よく忘れているところが原因かw
音楽は覚えているんだけど…。
これ逆アセして組みなおしてるわけ?
普通に考えたら、そうだろな。 ゲーム1作を逆アセして処理の流れが分かれば、 6502やファミコンのハードの理解も早まるだろうし。 プログラムだけは習うより慣れろで、人のソースコードが一番の教材だ。 何にせよ、面倒くさいな。それを実行できる情熱が羨ましい。
独学でここまで改造できるのは羨ましい
ニコニコでファミコンソフトを作ろうな人の最新動画が上がっていた。 …もう、完全にネタだな。ネタけてーい。
RPGツクールでやれ
最初の動画が投稿されたのは7月か 2ヵ月近く経ってるのに結局何も進んでないのに吹いた
まあ、最初からバカをヲチするという目的で見ているからいいけどな 技術0です、でも作りたいです、で、作りたいものはコレです…では もうみんな引くわな。絶対に完成しないから。
当方ボーカル
>>160 NGにすると分かるが、動画投稿の3分後に「1」だけ書き込んだ人間が二日間コメントし続けてる辺り、
只でさえ減ってるコメントの内の好反応コメ全てが自演。
「かっけぇw」「きたああああ」「くっぱww」「ちょ、クッパかっこよす」「高橋名人めっちゃつよいやん」「16連射ってどんな技だよw」etc
痛い通り越して可哀相になってきた
もうやめて!!うp主のライフはもうゼロよ!!!
うp主の、次の動画が楽しみだww
次スレからスーファミのプログラムスレと統合の方向で・・・
久々に見たけど、「すごく…ファミコンジャンプです(w」 ファミコンでやる意味を感じないよなぁ。 ビジュアルシーンメインはファミコンだと制約が多すぎてデザイナーが死ねる。 機種依存文字も知らん以上、ホントに何も出来なそうだな。 開発費が持って来れるならオーケーだろうが。
このうp主釣りのつもりで動画上げてるように思えてきた
Javaでファミコン用エディタ作るよ
エディタって具体的にどういうものよ
キャラクタエディタはいいのがあるから、 サウンドエディタが欲しいなw
176 :
名前は開発中のものです。 :2008/09/28(日) 13:11:45 ID:ufF51/69
パックマンCEのぱっちまだ?!
ニコニコファミコン制作部まだ〜〜〜〜〜??
協力しようと言う人やアドバイスもろくに聞かず 寒すぎるコラをデモ映像とか言ってupした挙句、不自然すぎる自演をした結果 みんな呆れて去った現状で未だ続けるつもりで動画上げたら正気を疑う。 自演を指摘された辺りで自分のイタさも自覚したろうし、企画も自然消滅するだろ
ニコニコファミコン制作部、うp主動画全て消した?
ようやく痛いことに気が付いたんだろうかw
と思ったけど、見られた 何で昨日、見られなかったんだろ この痛い展開がどこまで続くか、まだまだ要注目だ。 うp主、期待しているぞw
ファミコン狂の詩(笑)
うpした奴の頭が狂だな
動画が無駄に高画質なのが笑えてくる
ファミコンソフトを本気で作りたいうp主の、次の動画まだ〜〜??
違うな。 (うp主以外の)みんなで作ったファミコンソフトを実況したいうp主の次の動画まだ〜?
まあお前らもそのうp主とやらと同じくらいクソだけどな
自演厨特有の「俺も馬鹿だがお前らはもっと馬鹿」理論ですね
あんなの見てても意味無いでしょ。 ここにいる人はもっと前向きでいかんと駄目ですよ。 どうしてもいじりたいなら、あの動画そっくりに.nesで作ったぜ、とかさ。
LDA #$20 STA $2006 LDA #$40 STA $2006 LDX #0 LABEL: LDA DATA,X CMP #0 BEQ LOOP STA $2007 INX JMP LABEL LOOP: JMP LOOP DATA:.DB ”HELLO WORLD”,0 基礎の基礎・ハローワールドからだな。 ベーシックなら、PRINT ”HELLO WORLD”だ。
アセンブラが分かんない。
まず、分かろうと努力することからだな。 まったくプログラム経験なしだと敷居が高いかもしれないが、 ベーシックなりを組んだ経験があるなら、アセンブリ言語は原始的な分 難しくないはず。ただ、それだけに面倒くさいんだな、コード書くのが。
S-RAMのHM62256を使って、RAMカセットを作れないだろうか。
マッパーの話がよくわからん。 つか、どれを使えばいいのかがわからん。 とりあえずマッパー2(1M+64kRAM)でいじってるけど。
196 :
名前は開発中のものです。 :2008/10/17(金) 10:26:35 ID:+I/lnqt1
>>195 パソファミで自動吸い出しだとしても、吸い出し時にマッパー出るし、
他で吸い出したとしたら、バンクコントローラーを解析するか、
情報を元に自分で指定しているはず…。
忘れたとしても、幾つかのエミュレータはROM情報が見れる。
ROMを一個一個取って吸い出してるなら、カセットには、
CHRやPRGのROM以外にチップが付いてるのを知ってるはず。
マッパーはそれに相当する物。
てかマッパー無視して好き放題容量使っても 後からマッパー指定すればエミュは読み込むんだろ
バンク切り替えの方法とか違うし、メジャーなエミュのいくつかは 実際のカセットであり得ないROM構成だと動作しなかったような。 そんなでかいプログラム組まんのでよく知らんが。
プログラムは小さいんだけどデータがな。 マッパー2はプリセットカウンタ74HC161にページ番号書き込んで 16Kバイトが8ページ、拡張すれば16ページ使える。 他のメジャーなマッパーだと任天堂特製のIC取るのにカセットを破壊するのがどうもな。
会社によって仕様が違うとか明らかに任天堂の管理ミスだろ
管理する必要はないだろう。 自由なハード拡張が出来るのが売りで、困るのは海賊版業者とエミュ作者ぐらい。 任天堂にとっちゃ想定外もいいところ。 任天堂がマッパーを作ったわけでもないんだから。
>>194 なるほどありがとう。 でもどうやって書き込もう。
なぜHM62256かというと、N64のメモリーパックに使われているそうだから。
任天堂はファミリーコンピュータの黎明期にソフトを開発して貢献したメーカーにだけ
ソフトを自社で製造する権利を与えたんだよ。結構有名な話だと思ってたんだが…。
バンクコントローラーチップを再現する為にマッパーがあるんだから、言ってる事が逆じゃね?
>>202 書き込みはパソファミを使うしかないが、昔ゲームラボ(バッ活だったかも)にRAMカセットが
載った事があったから、そっちでも出来るかも。自分はパソファミの前にやってみたが
上手く行かずに挫折した。パソファミではちゃんと出来たよ。
>>197 そもそもマッパーで仕様が変わるから、オリジナルソフトを作ろうと思ったら、どれかは
決めないと作れないと思うが…。後から違う物にするのは可能ではあるけど…。
SFCはマッパーなんか決めなくてもハードの限界まで作れるのになあ
自分でマッパーつくれば限界突破できるぞ
おまいらは本当に何回でも同じ話をしますね
「マッパー」という用語は、エミュだけの物だと思うんだが。
スーファミの限界って何メガだっけ? 限界なんて考えなくても良い容量でも、かなりの人数で開発してた気がするから、 素人がやる限り限界なんて超えないだろ…。
>>209 実際に発売されたROMだと、スターオーシャンとテイルズオブファンタジアの48Mbit。
Wikipediaの英語版を見ると、高速アクセス(たぶん3.58MHz)できるのが48Mbitまでで、
メモリのマッピング自体は、それ以上の容量までカバーしてるっぽいことが書かれてるが、
実際に使われたかどうかは謎。
>>37 にあるようにファミコンも48Mbitまで使えるのか?
ファミコンは、リニアにアクセスできるのは、PROM 256Kbit、CROM 64Kbitの範囲まで。 それ以上は、バンクコントローラチップ使って、バンク切り替えで対応することになる。 ただし、バンク切り替えで拡張しても、CPUやPPUから直接アクセス出来るのは、常にPROM 256Kbit、CROM 64Kbitの範囲に限られる。 バンクコントローラ使う場合は、コントローラ次第。極端に言えば、コントローラが対応するなら、幾らでも増やすことは可能。 実在する範囲では、MMC5を使った、メタルスレイダーグローリー(PROM 4Mbit、CROM 4Mbit)が最大のROM容量だったはず。
nesのメガデモで最大のがPRG 256KB CHR 8KBを持ってる パロディのゲームソマ○がPRG 256KB CHR 256KB マッパー番号は1と4
何人くらい214さんのゲームをDLしたんだろうか
今デルした。 ものすごくマウスで操作したくて、うずうずしてくる。 確かに十字キーだけで操作できるんだけど。なんか指がイライラしてくる。
ってゆーか解けないよね?コレ
なんだ、解けないの俺だけかと思ってたw
俺もだwww
11と12と15をくるくる回してるのは俺だけじゃなかったのか
222 :
214 :2008/11/02(日) 00:09:23 ID:q5gp0DGO
しまった。完成形がわからなかったら解けるわけないじゃん! 0123 4567 abcd efgh の形が完成形です。 ・・・解いても何も起こりませんがw そういえば、音がバグることがありますね・・・ Cで作るとゲームのルーチン込みだと垂直回帰時間にすら間に合わないのかな・・・ 素直に音再生はアセンブラで作らないと駄目ですね(当たり前ですが)。
>>217 しばらく堪えてると慣れる。違和感無くなる。
30分プレイしてても慣れなかったらもう年です。あきらめてデルです。
>>222 意外と15パズル知らない人が多いようです。(´^ω^`)
>>223 いや、今回のは知っている人ほど解けなかったんだけどね
普通は左上じゃなくて右下が空白だから
おお、わいわいさんっすか CBuilder使ってるんすね
>>225 PC98で動かしてたFCグラフィックツールのCEDもこういう感じで
デザイナーさんが「ほとんどパズル」とか言っていたの思い出した。
ほっしゅ
>>225 すげえや・・・こういうツールを活用できるレベルに達していないのが口惜しい
NEWSOSで動いていたらしいね OSXだとまともに動くエディタがないぜ
良レス
仕様変更の度にソースと共にコメントも修正してろ
YYCHRのβ版がバージョンうpされたようだ
そしてシェアウェア化ですねわかります
宣伝乙
238 :
名前は開発中のものです。 :2009/03/04(水) 17:36:48 ID:mwtRXqun
何で過疎やねん
CPUの「6502」はなんて発音するの? ろくせんごひゃくに? ろくごーぜろにー?
ろくごーまるにー
しっくすてぃふぁいぶずぃろつー
ろッごッまるにッ
244 :
239 :2009/05/10(日) 01:56:29 ID:Dv3WGxdX
Pictochr使ってるのですが, .namファイルに属性テーブルの内容まで 反映されてるんですよね?? 元画像として用意したBMPのパレットを設定して, pic2chrに読み込ませて,.nam吐き出してみたんですけど, 属性テーブルに当たる部分が,0で埋まってるんですけれど(´・ω・`) 僕の使い方が間違っているのかな(´・ω・`)
245 :
225 :2009/05/11(月) 22:58:59 ID:CVfuqL1F
>>244 PicToChrの手抜きで、属性テーブルは設定されません。
ツール作成中に需要なさそうだと気付いて、
パレットセットの識別処理はTODOに入ったまま放置されてます。
なので、色付けはNAMを編集できるKZ-NESSAとかYY-CHRを推奨。
246 :
225 :2009/05/12(火) 01:00:42 ID:7ApaCoOy
247 :
239 :2009/05/12(火) 22:39:13 ID:xecIPyO2
>>246 ばっちりです!これは神ツール!
これで,KZ-NESSAで,右クリック連打をしなくて済みます(〃゚ω゚〃)
ありがたく使用させて頂きます.
248 :
名前は開発中のものです。 :2009/05/25(月) 08:06:54 ID:qbEjqNnA
ナイトガンダム物語とかモンスターの色数多いけど スプライトを被せたりしてんのか?
nesdev.parodiusの Palette Test by Loopy が参考になるかもしれない
擬似的に色増やしてんのか
252 :
239 :2009/05/30(土) 21:10:21 ID:aKyCYp6h
>>251 統合開発環境だと思うけど,
もう,ツールとかで事足りてるし・・・・.
まあ,ひとつで全部できるのはいいけど.
これアセンブルできるわけ?
普通に書いてあると思うが? これ1つで自作ROMを作る環境が整うのか、慣れればいいかんじかもね
もう実際にゲームを作る環境がある人には あんまり関係ないとおもうけど これからファミコンプログラムを学ぼうとしている人とかには 色々と勉強になっていいかもしれないと感じた
昔コーエーのロムやたらでかくて値段もしたけど あれどういう効果があったんだ?
おそらく漢字ROMと記録用のSRAMのせい。
SRAMが3個も乗ってる。 VRAM、ワークRAM、セーブRAM。 それプラス、プログラムROMにマッパーICと電池。
いろいろあったんだな よくわからんのもあるが ありがとう
ジャレコのがでかいのはなんでだ?蓋までついてたよね。
>>260 蓋付いてたなw
中身スカスカだった気がする
PPCMacでもNESASMでコンパイルできるがエンディアンの違いを考慮してないせいでROMがおかしくなってしまう
それは初耳。
265 :
名前は開発中のものです。 :2009/07/25(土) 16:56:01 ID:ud14DMaW
ゼロページなどにDMAスプライトのラベルのアドレスを格納したいのですが、 ラベルのアドレスはどうやって取得できるのでしょうか?
使ってるアセンブラによって書式違うんじゃないの
267 :
名前は開発中のものです。 :2009/07/25(土) 23:15:43 ID:BI6oV1py
すみません。環境書くの忘れてました。 アセンブラはギコ猫のところで落とせる奴を使ってます。
したらこんな感じになる。 LDA #LOW(LABEL) STA <$00 LDA #HIGH(LABEL) STA <$01
そもそもDMAスプライトのラベルってなんだよ?
テーブルでも作ってるんじゃないの
271 :
名前は開発中のものです。 :2009/07/28(火) 01:00:30 ID:6SkBGXqx
>>268 遅れながらありがとうございます。
>>270 アドレスが指す先の値を変更できるかと思ってポインタみたいなことをやろうとしてます。
案の定うまくいきません。
上位ビットと下位ビットを別々にした奴って結合した後、その先にある値をインクリメントってできませんか?
インダイレクト・インデックストY
INC命令には(実効アドレス), Yな間接アドレッシングモードは無いから、どうしても ゼロページをポインタっぽく使ってインクリメントしたかったら、こんな風にやる事に。 ;ゼロページ0番地から下位上位の順で目的のアドレスが置いてあるとして CLC ;2 Cycle : キャリー(繰り上がり)フラグ消去 LDA #1 ;2 Cycle ADC ($00), Y ;5 Cycle : $00-$01が指すアドレス+Yに格納されてる値に1を加算。 でも、実行中にアドレスが動的に割り当てられるってのはあんまりないだろうから、 特別な理由が無けりゃこんな感じの方がいいかもしれない。 INC LABEL ;6 Cycle : 3 Cycleもお得、かつ、キャリーフラグ変更無し あるいは INC LABEL, X ;7 Cycle
274 :
名前は開発中のものです。 :2009/07/28(火) 22:13:26 ID:6SkBGXqx
>>273 とりあえず動くようになりました。
ありがとうございます。
求む! 新作公開!
ファミコンの事色々調べていたらこんなスレッドもあるんですね。 研究の参考にさせていただきます。
マッパーの資料ってどっか転がってないかな?
THANK YOU!!どうも
280 :
名前は開発中のものです。 :2009/10/10(土) 01:22:57 ID:9GDsJwhY
ゲームを起動して、いちばん初めに実行される命令はどれなのか判りません どのゲームも共通の命令なのでしょうか?
ギコ猫読めばなんとなくわかるんじゃない?
質問が意味不明だが割り込みベクタのことだろうかとエスパーしてみる
ギコ猫読んできました。 電源投入時およびリセット時はまず↓の命令が実行され、 ;Reset FFFC : dw $**** $****のアドレスにジャンプして、そこから開始されるという感じでしょうか
ベクターは確か、NMIとRESETとIRQがあったですねぇ。
>>280 要はどのメモリアドレスかが分からんのだろ、違うかな?
普通プログラムは数字の若いもの($8000-)から書いていく
いえ
>>282 さんが回答されていた割り込みベクタというものを知らなかっただけでした
とあるゲームを逆アセンブルして、$8000から眺めてみたものの
どれがプログラムでどれがデータか判別できなかったので
いま調べているゲームはFFFC : dw $C000、となっておりました。ありがとうございました
拡張音源って新規で作ってるROMには導入出来ませんか? サウンドは一度ROM内を通ってから出力されるんですよね?
>>288 追記
VRC5などの特殊チップでも可能なのでしょうか?
VRC5は難しいんじゃないだろうか
>>288 意味が分からない。 サウンドがROMを通るのはあってる。45,46ピンに。
>>288 mck wikiあたりの情報が有力なんじゃないかな?
VRC6とかNamco113なんかは特殊チップだからプログラムとは別にライブラリ(?)
っぽいのが付属してるのか、なんかは知らないが。
あとはその新規で作ってるROMってのに組み込む方法…だよな。
いずれにしても特殊チップ関連は資料がない…
? VRC6やVRC7で作るって意味じゃないのか? 悪伝のROMだけEPROMと差し替えたりするんじゃないのか でなけりゃTNS-HFC2を入手した方が早いと思うが
あぁ、そういう事なのか?w
俺はてっきり自作NESファイルで拡張音源を流したいという事だと思てたわ
滑稽w
てかどうなんだ?
>>288 さんや?
>>291-294 自分で1から作成したプログラムがあるんですが、それでVRC6の音源を鳴らしたいんです。大雑把に言うと、MMC3構造で音源だけをVRC6などにする事が出来るのか否か、という意味です。
293さんのTNSカートリッジとかじゃなくて、エミュレータ上でそれが出来ればいいのですが…。その方法を知りたくて
コナミLSIだけ別にファイルとして用意して必要な時だけ読み込んで動作させるという事を今やってるんですが、マッパー切替え自体不可能でしょうか?w
それはエミュレータ自体に手を入れるしかないな
エミュレータを改造すれば行けそうな感じですかね…?(´・ω・) もしくはそういった機能を持つプラグインを作れば可能な領域ですか?
そりゃもう 新しいマッパーを作るのでよければ たとえば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の該当箇所を直すだけで出来そうだぞ
>>298 お、どもありがとです(^ω^)
新規マッパーですか。開発上ではG-NES使ってるのでその辺りを
少し調べてみる事にします。
やっぱりあのデビチルUの音源は魅力的ですよねー、とかw
もう開発始めてから1年近くなるんですけど
ファミコンはまだまだ判らん事だらけで困っちゃう
>>299 追伸
いかんいかん
デビチルU→メガテンU
連投申し訳w
MMC3依存部分をVRC6に書き換えてやればいいんでないの?
302 :
298 :2009/10/17(土) 09:45:01 ID:lEV510ii
俺も
>>301 でFAだと思うがな・・・
メガテンIIってことはマッパー19か
ちょっとした変更で済みそうだぞ
たぶん、プログラムROMの容量の問題なんじゃないの? MMC3は512まで使えるけど、VRC6は256までだから。
304 :
298 :2009/10/17(土) 14:00:54 ID:lEV510ii
俺のせいでVRC6で作る話で固まっちゃってるが 使いたいのはN106だそうだぞ
>>303 Sorry.今はなむこさんの拡張音源を広げたいんです。
こなみさんのもその内とは思ったりもしてますが…
プログラム移植の方法なら確かに容量の問題でつっ掛かりました。
例によってVROMを使ってるものからVRAM形式のマッパーに変えるとなると
プログラムそのものを見直さないと駄目で
素人の私には到底むりぽですので、やはり新たに実装する
方法のほうが良いようです。
情報ありがとうございますo(^-^)o
VRAMとVROMって何ですか? 書換えと読取り?
VROMは読み取り専用の構成ですね。 マリオの空とか固定パターンの場合には便利かと思いチップを設計しました。by作者
>>306 VRAMは、2kバイトのビデオ用RAMです。どこに何を表示するかのRAM。
これをROMにしたのがVROMかと。だがファミコンじゃ普通ROMにしない。アフターバーナーはROMになってたけど。特殊ですね。
(ただし、外人さんは名前の付け方が変なので、キャラクタジェネレータROMのことをVROMと言ったりするので注意。
キャラクタ用ROMはCROM、これがRAMだったらCRAMと名付けるべきでしょう。)
>>307-
>>308 ご丁寧にありがとうございます!なんと作成された方直々にとは…、びっくりしました。
VRAMのほうが実用性高そうですね。パターンテーブル切替えとか
FCのVDPはVRAM空間として4画面分あるのですが、実際に積まれてるVRAMは2画面分しかないので、 それぞれ1画面ずつRAMとROMを選択できるようにしました。 VROMの使用法としてポールポジションの道のアニメーションが目的だったのですが、 試作段階で挫折しましたw 俺・・・
cc65を使って、ファミコンゲーム作ってる人いますか? 分からない所があるんですが、 BGの書き込みの際にBASICのLocateみたいに、 x座標とy座標を指定できる方法は、ありますか?
>>311 void 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以下なら書き込めるが…
他に方法あるのか
こんな感じでいけたような気がする。
extern int adr;
#pragma zpsym("adr");
adr = 0x2000 + y/32 + x;
*(char*)0x2006 = adr
>>8 ;
*(char*)0x2006 = adr;
パスが掛かってるよ
316 :
314 :2009/11/07(土) 22:56:01 ID:Mf3/pBlM
>>311 スケッチブックに巨大な図を描きながら、関数電卓を叩いて計算してみた。
多分、これで合ってるはず
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が指定の位置に描画されたが、確証は無い。
固定画面ならそんな感じでよさそうだが スクロールレジスタも考慮するとあんまり一般的な方法ってのはないんじゃね
縦はともかく横は$1fでANDを取ればいいだけだから
スクロールを考慮する必要ナッシング
>>317 頑張ったな
でも流行ってるときに公開すればよかったんじゃね?
メインループの中でBG書き込みをすると、画面が壊れるんだが、どうして?
表示期間中にPPUいじると画面が崩れるハードの仕様
>>324 そうでしたか。 そんなとこまで再現するとはすごい。
ちなみに、BGとSPR表示をオフにすれば、表示期間でも書き込みできるはず。
NESASMでジョイパッドのチャタリングを防ぐにはどうすればいいの?
いや、前回のと比較するのは知ってるんだけど具体的にどうするのか知りたい
入力受付間隔を調整すればいいだけでは
LDA 入力読込 PHA STA 押しっぱのボタンの判定 EOR 1つ前のフレームでの入力 AND 押しっぱのボタンの判定 STA ボタン押した瞬間の判定 PLA STA 1つ前のフレームでの入力
330 :
名前は開発中のものです。 :2009/12/06(日) 03:05:59 ID:pC5E5jqQ
CC65で15パズルを作った方が、このスレッドで 公開していたかと思いますが、参考になるのでは。
NESASMとcc65ってNES研究室のサンプルみた限りだと記述方式が違うみたいですが これってなんででしょうか?
332 :
名前は開発中のものです。 :2009/12/17(木) 23:49:54 ID:U3Y0QHnx
<<321 と同じく、BG関係が出来ません。 VBlank中で、PPUの初期化もしているのですが、 $2006 $2007 でネームテーブルを弄ると画面全体がずれてしまいます。 入門者丸出しですいません
333 :
名前は開発中のものです。 :2009/12/17(木) 23:53:07 ID:U3Y0QHnx
>>331 ソース見てないから多分だが。
1.アセンブラ独自拡張部分が違う。
2.開発規模に差があって、ソース分割したりしている。
>>332 それをいじるとずれるのは仕様。(内部がスクロール設定と共用してるから)
いじったら、スクロールレジスタで設定する。 ネームテーブルも再設定必要だったかも。
336 :
名前は開発中のものです。 :2009/12/20(日) 17:30:01 ID:IyBK5veI
ありがとうございます! LDA #$00 STA $2005 STA $2005 で解決しました。
すごいな
ここまで作ってなぜBボタンに対応しないのか
連射ONでやってみたら、199回超えるとフリーズした
これで楽しいクリスマスがすごせそうだ ありがとう337
342 :
名前は開発中のものです。 :2009/12/29(火) 12:33:01 ID:lTW0p2Tu
お褒めの言葉、まさにありがたき幸せであります。
また、今回修正版を作りました。
ソースファイルmainの273行目を、and #%10000000からand#%11000000
に変更でBボタンの回転が可能に。
また、相対パスにしてどこにファイルを置いてもアセンブル可能に。
連射のバグについては、修正できませんでした。つまり、私に出来る限界であります。
またの機会があれば、挽回したいと思います。
ファイルのURL >
http://ppup.dip.jp/uploader/download/1262274542.zip pass fami2
あら丁寧にソースコード付きでステキ。
>>343 GJ あとP'L'AYERに直せない?
ダウンロード数が50近いじゃないか
347 :
名前は開発中のものです。 :2010/01/21(木) 06:45:05 ID:Q/sVFXNu
誰も興味無いし時間も無くなったからディスコン と書かれているな
これアセンブルできるんだな
350 :
名前は開発中のものです。 :2010/02/10(水) 17:01:51 ID:vFQj1T+q
比較命令を4連続使って、あたり判定を作っているのですが、 スタックが原因で暴走してしまいます。 ループを使って何体もの敵と判定しているのですが、 なぜか2回以上ループさせると暴走してしまいます。 スタックについて、良く分からないのですが、 誰か教えてくれませんか?
原因のコードが無いと分からないよ
多分レジスタのオーバーフローだな
353 :
名前は開発中のものです。 :2010/02/10(水) 22:39:11 ID:vFQj1T+q
lda $200,y clc 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:
ページ境界を意識してみよう。
355 :
名前は開発中のものです。 :2010/02/11(木) 11:16:39 ID:4IEAI3zI
バイナリを見たところ、ページ境界を挟んでませんでした。
少なくともスタックポインタ(S)を変更する命令は↑にはない。 Sもしくはスタック領域($100-$1ff)を操作しているのはどこ? ループのどこかで PHA/PLA/PHP/PLP をしてない? ループの中で PH* して PL* し忘れはよくやる。
357 :
名前は開発中のものです。 :2010/02/11(木) 13:52:48 ID:4IEAI3zI
スタック操作命令はしてないのですが、JSRはしてます。
jsrとrtsは処理の流れで1セットになってないと駄目だよ jsrで呼びっぱなしになるとスタックに戻り先番地が積みっぱなしになるから
359 :
名前は開発中のものです。 :2010/02/11(木) 18:10:10 ID:4IEAI3zI
チェックしたところ、RTSとセットになってました。 解決できませんでしたが、自分の力で何とかしていきたいと思います。 ありがとうございました。
360 :
名前は開発中のものです。 :2010/02/13(土) 11:28:12 ID:sDFwUFjG
自己解決しました! ありがとうございました。
>>360 まてまて、自己解決したときは、問題点はどこだったのか、どう改善したのかを書いていくんだ。
>>350 そもそもスタックについてよくわからないのに、何故スタックが原因だと思ったのかが謎。
たぶん結果的にハズレだったのだと想像してるけど。
363 :
名前は開発中のものです。 :2010/02/14(日) 10:56:58 ID:gOZSpFKO
原因は分からないのですが、もう1つループを作って、
そっちに当たり判定を書いたらうまくいきました。
>>362 メモリビューアをみたら、$100^$1FF
が、おかしくなってたからです。
>>363 nospriteとcrashspriteの2つのパスがあるけど、片方にRTSが実行されないバグ
があったとかじゃないかな? (RTSせずにJMPで呼び出し元に戻ってるとか)
もしくはJMPと間違えてJSRを使っているとか。
365 :
名前は開発中のものです。 :2010/03/03(水) 22:25:15 ID:NWYoUOba
age
366 :
名前は開発中のものです. :2010/03/05(金) 23:52:48 ID:xdcULiY0
スクロールについての質問. 横スクロールゲームをつくっているのですが, なぜか15フレームに1回8ドットだけ縦にスクロールして,次の15フレーム分は 正常に水平方向にスクロールするという現象が起きており,その原因と解決法が分らず 困っています.
とりあえず、コード見せて? どういう手順でやろうとしてるのか見たいから。
368 :
366 :2010/03/06(土) 03:01:24 ID:AwxGSoRf
自己解決したかも NMI始めのVRAMアクセスで一度に大量のデータを転送しているのが 原因である可能性が高い 新たな地形のグラデータをPPUメモリに書き込む際, 16*16ドットのブロックを縦一列(13個)分 =合計52バイト,しかも2回に1回は属性テーブル7バイト分をあわせた59バイト をもいっぺんに書き込んでいるからかもしれません. 属性テーブル転送をやめ.ネームテーブルに書き込むデータを半分にすると正常に 動作しました. とりあえず明日,VRAMアクセスを分配するようにコードし直し,それでも直らなければ コード晒します.
Vblank 期間中に VRAM アクセスが完了してないからじゃないかな? FC の Vblank 期間は全 262 ラスタラインのうちの 20 ラインだから、 (1789772 / 60 / 262) * 20 ~= 2277 つまり Vblank 期間に入ってから 2277 CPU クロックくらいで 次のフレームの最初のラスタラインの描画が始まってしまう(BG or SP表示時)。 それまでに VRAM アクセスを完了して $2005 を設定しておかないと スクロールが乱れると思う。
1intでネームテーブルに書き込み可能なのって32くらいまでじゃなかったっけ
>>370 スプライトDMA切って、BG書込みのループを全展開すれば
128くらいはいけるはず(実用的ではないが)
要はコードによると思う。
ネームテーブル書き込みは32チップまでって聞いたことあったけど あれは別にハードの制約ではなかったのか・・・
ロムの改造ってできないですかね? バグを直したいのでふが
>>373 自分の作ったものならソースあるだろ
他人の作ったもの?著作権って知ってるか?
エミュレーター動かしてる時点で著作権も糞もないような……。
それは認識を誤ってる
373は、そんな質問してる時点で無理だろ。 つーか、バグの内容を書けない時点で、どうせよからぬ方向性なんじゃねーの。 裏技・改造板のAC化スレの連中の真似でもして、なんかハックROMでも作って神とか呼ばれたいだけとかさ。
>>379 まずお前がエミュレーター動かしてる時点で著作権も糞も無いという理由を言えよ
>>380 ある仕組みを再現するソフトを無断で作ってばら撒いたら財産権のいずれかにはヒットするだろう。
場合によってはその仕組みを利用している業界団体から訴えられることもあるが。
(PowerTabEditorとかは勝訴したけど、逆転するまでは公開差し止め食らってたし)
はい、次。
>>381 ばら撒いたらとか、なんでエミュレータの配布の話になってるんだよ。
ファミコンソフトの著作権とエミュレータ自体の違法性の話をごっちゃにするな。
>>382 違法ダウンロードの拡大解釈で適用できなくもないような気がしないけど。
改正著作権法自体が新しいし目立った判例も少ないからなんとも言えんけどね。
違法であることを知っててダウンロードした、ってことに焦点を置けばいいけど、
エミュレータ自体の違法性が立証できなきゃだめだろうね。
ところで、
>>376-377 マダー?
まあ感覚的にはアウトってのも分かるんだけど、
「こんなに真似てるんだから絶対どこかで法に触れてるはず。よって違法」では不足なんだろう。
古いニュースだが、米国ではプレステのエミュレーターについての裁判でソニーが敗訴しているらしい。
http://wiredvision.jp/archives/200010/2000100301.html リバースエンジニアリングは基本的に合法。ソフトウェアエミュレーションも一般にありふれた技術で、
禁止すべきものではない。ただし内部資料を不正に入手するのはダメという判断らしい。
国内でどう考えられてるかは知らないが、まあ似たようなもんじゃないか。
勝算があるならマジコンみたいにガンガン裁判を吹っかけて潰しにかかってるだろう。
ちなみに、PowerTabEditorで問題になったのはこのソフトそのものじゃなくて
このソフトのためのタブ譜ファイル(ギターの楽譜みたいなやつ)の著作権らしいから、
「ある仕組みを再現」することとは関係ないんじゃないかな。
>>384 なるほどね。
でも、地方裁では一応仮差し押さえに成功してるわけでしょ?
これって、ソニーが主張する財産権の侵害が(一時的に)認められた、ってことだから、
まだエミュレーションとかが違法である、ってことの余地は残してないかい?
>「ある仕組みを再現」することとは関係ないんじゃないかな。
違法ダウンロードを促したとして『ある仕組みを利用』している団体から訴えられるかもしれない。
かもしれないで現実にないからアレなんだけど。
そうだねー、訴えられたら大変だねー、だからエミュレータはダメだよねー
>>385 その仮差押えは取り消されて、最高裁で件のエミュレーターの製作販売が認められた。決着はついている。
んで、仮に「違法ダウンロードを促した」場合があったとしても、それがどんな法に触れてるのかが問題。
先にも書いたけど、エミュレーターを差押えられる見込みがあるならゲーム会社はとっくに動いている。
それが全てだ。安心してコードを書け。
>>385 分かったからとりあえず、VPCとVMwareとXen試してこい
ただし、ちゃんと正規ライセンスは用意すること
ついでにプログラムの特許について調べてくるべきだな
LAMEがMP3の特許侵害にならない理由とか
そろそろ、ファミコンのソフト開発のしている方が どんなところか気になるところ。絶好調だといいんですけどね。
関連サイトをチラ見したけど 今さら8bitマシンをアセンブラであれこれする気力は沸かないな・・・ もうオッサンなのだろうか・・・
>>391 これは、良く細かいところまで載ってるな。
パターンデータとかネームテーブルデータを高速に転送したいです。 普通、VBlank中に転送しないと表示がおかしくなるとのことですが、 BGもスプライトも表示を消した状態であれば、VBlank中でなくても転送 は滞りなくできるのですか?
できるよ。
>>394 ありがとうです。なんとかやりたいことができそうです。
396 :
名前は開発中のものです。 :2010/04/10(土) 04:18:56 ID:zo1pPVQp
397 :
名前は開発中のものです。 :2010/04/10(土) 04:20:38 ID:zo1pPVQp
↑ すみません パス忘れてました pass:nes
>>396 縦に並ぶ赤い妖精が強くて倒せない。。
あと、横にスプライトが多く並ぶと一部消えて見えなくなりますね。
(VirtualNESのスプライト全て表示はさせない設定でプレイ)
俺もファミコンPG作ってるけど、
弾とか敵とかの制御できてるのが羨ましいです。
>>396 遊んでみた。
・自機の弾が敵をすりぬけてるように思えるときがある
・出現してすぐの敵を倒して出たアイテムが、画面右端で消える(仕様?)
・
>>398 も書いてるけど、横シューならスプライト横並び対策は必須かと
・敵弾もうちょっと遅いほうがいいかも?
これだけ動くものができてるから完成まで頑張って欲しい。
縦STGって右と左のどっちを上にするのが主流なの?
右 ナムコは逆
402 :
鈴(396) :2010/04/11(日) 03:26:21 ID:9cQwh3q2
>>398-399 プレイ&指摘どうもです
・横に5体以上キャラが並ぶと1体消える ←解決済み
・一部の敵がショットをすりぬける ←解決済み
・全体的に難易度が高すぎ ←弾速落とす、当たり判定甘くするなどして改善
こんな感じです
アイテムが消えることに関しては現在解決法を考え中です。
ちゃんと消えないようにプログラムしたのに...
かなり難易度が下がったと思います。
製作者とはいえpower 0%で最後の赤妖精全員倒せましたから。
とりあえずもう完成まで上げるつもりありませんので今しばしお待ちくださいm(_ _)m
ファミコンのマリオは、RAMの$0500-$0600領域でブロックの当たり判定をしている というリッチな使い方をしているようで。また マリオ3では8KB SRAMを使ってコース全体の当たり判定を行っているみたいです。 他のソフトではメモリをいっぱい使わないブロックの判定法を使っているのか 気になりますね。
叩いて壊したりコイン拾ったり、マップへの変更が無いなら楽できそう
Nestopiaのソースを眺めた限りだとMMC5の8bitPCMはちゃんと実装されてるように見えるな。 $5010を見ると enabled = ~data & PCM_DISABLE; // PCM_DISABLE = 0x1 になってて、そこにdata == 1を送ると 0b111...110 & 1 == 0 だから有効にならないという話のようだ。0もしくは偶数を送ると正しく機能する。 1を送るのが正解ならソースの方が間違ってるな。
PCMチャンネルの設定レジスタ5010を0にするとNestopiaでPCMが 発音しました。VirtuaNESですと、0でも1でも音声が鳴るようです。 資料を見ると1で発音するとかいてあるようですが、実際の使用は どうなのか、解りませんね。8bitPCMを使用したソフトが実際に存在 していないために、厳密に確かめる必要性が無かったためでしょうか。
そうそう、実機でテストしないことには分からないな。 DTM板のMCKスレでTNS-HFC2持ってる人に頼むか、MDC5を動かしてる人に頼むしかないだろうね。
なかなか持っている皆さん、お忙しいようでなかなか 難しいようです。自分で環境を整えるしかないと言えましょうか。 また、これは、エミューレーターのバグにカウントされるか気になる ところでありますね。 また、とりあえずはPCMとMMC5のテンプレートデモという感じで触れて 遊んでみてください。
推敲しろ
ソフトで使われていない機能なんて、そもそも存在自体に気付けないよなあ。 チップ資料でも入手しない限り。
何処かに最低限のミニマムなMMC5のサンプルってありませんか 複雑なやつだとエミュ毎の挙動が違いすぎてわかりづらいし 調べてもMCKばっかりで全然みつからないです
MMC5PCM、要望に答えて実機で起動してみたぜ。以下レポ。 ヘッダーサイズ間違ってるぜ…(P:512k、C:64kにして不要FFカット) 実機は本家ニューファミコンと、互換機代表GameAXEで。 元役満天国のカセットにとりあえず書き込んでみた。 結果 動いた!音もなりますぜ。 電源直後はグラ化けするのが謎だが、リセット押すと画像もほぼ正常。 (MMC5の自作ROMで、起動時グラ化けしないのは見たことない・・・何でなのだろう?) なお、互換機だとリセット後正常、NEWファミだと若干ゴミが残る 以上っす。応援してます。
普通のROMは起動時にリセットするんじゃね?としかわからない
どっかの初期値が不定なのかね
ゼロ埋めとか
MMC5PCM、WAVデータ差し替えてみてるうちに気がついたが .inesprg 32 .ineschr 3 にしないとエミュがエラー吐くね。まぁ当然か。 (実機では64kということにしといて不足分FFで埋めればOK、 24kのままでも動くとは思うが未確認) 画像の差し替えは私のスペックを超えてました。
>>415 パワーオンリセットと挙動が違うってことだろ。
420 :
名前は開発中のものです。 :2010/05/12(水) 21:32:37 ID:O3IiPcDd
MMC5のデモ、感謝のきわみであります。自分はMMC5カセットを持ってないので
これは助かります。実機で動くのはどのような感じか、これからも色々教えてくだされ。
また、413殿の思いを受け止め、簡単なサンプルを同梱した、PCMデモの最終形を
あげておきまする。
実機でのエラーですが、私にはさっぱりわかりません。電源ONとリセット
時は、6502は同じアドレスから始まるので、処理にそう違いはないと思われます。
メモリの初期化か、または、MMC5に未知の仕様が存在するのかは、実際のゲームの
プログラムを調べるか、サンプルで実験してみない限り解りませんので、後々調
べてみようと思っております。
http://www.1072ch.net/ pass nes
さらに解りやすいMMC5の解説がでてくるのかと思った…
忍者らホイがリセットしないと起動しなかったな
いまさら何を?ニワカが。 あんなのキモオタ寄せにしかならないっつーの
>>420 のデモは、FCEUXでもグラが正常に表示されないみたい。
そもそもMMC5を一番エミュレートできてるエミュってどれなんだろう?
FCEUXも最新版はダメダメじゃん 対応マッパ増えたかも知れんがバグも増えた
FCEUXは世間の評判の割にはMMC5の再現性低い気がする。 実機ではMMC5PCMのグラも(リセットかければ)ほぼ正常に表示されてるし。 ただ、リセットでグラが表示されるようになるという挙動自体は同じだから やはり再現性の高さを表してるの…か? とはいえ、MMC5PCMが正常動作するNestopiaでcpu jam!になり、 FCEUXでぴくりとも動かない、とある自作ROMが、 実機(しかし互換機)とVirtuaNESでは動いたりする。 う〜む、ミステリー。
互換機はemuをハードで実装してるだけで カテゴリとしては実機ではなくemuだと思う
わからないのに口出しちゃダメだよ、ボク
最近の携帯メガドラ互換機とかはそんなシステムらしいね。 しかし、普通のファミコン互換機はあくまで互換ハードウェアであって ソフトウェア再現ではないんだぜ?
>>431 そういう話ではないでしょ。
要するに、ソフトウェアによる実装かハードウェアによる実装かは関係なく、
互換性(イレギュラーな使い方を含めて)の問題。
互換チップでも微妙に動作が違ったりするからね。
486の時代、AMDは不具合も含めて互換性のあるチップを作ろうとしていたし、
Intel純正でも286はIRET命令に不具合があってひどかったという例もある。
そりゃ互換機イコール実機ではないだろうけどさ、 エミュか実機かと問われれば、どちらかというと実機寄りじゃないの?
なにを根拠に実機よりと?
じゃあさ、シャープのC1ってファミコン互換機って言われてるけど あれもエミュ(寄り)なの?それとも実機なの? もしC1を実機と定義するなら、中国メーカーが作る互換機と シャープのC1の違いはなんなの? (互換性の良し悪しはあれど、C1だってファミコンの完全互換じゃないぜ? 一部ソフトはC1では動きませんと裏に書いてるし。)
実機というより物理ロジックがエミュかって話になりそうだな
まあどうでもいいけどMMCとかはカセット側のチップの機能なんでその部分は実機といえるんでは で思ったんだけどその初期化に時間がかかってる可能性があるから適当にウェイト入れたらいいかもね
>>433 いや、だから動作上の違いってのは、ソフトかハードかとは無関係ってこと。
>>435 C1はハードです。
ファミコン自体もシャープ製だし、当時のCPUの性能や技術だとソフトでは無理だから当然。
たぶんPPUがRGB版なくらいで、他は同じチップ使ってるんじゃないかな?
互換チップですらなく、本物のチップのはず。
C1の互換性の問題は、初期型のファミコンでも起こるらしい。
PPUがマイナーチェンジ前(不具合対策?)のためらしい。
あと、カートリッジが物理的にささらない問題もある。
ディスクシステムとかね。
emuをハードで実装っていう考え方がわからんのよね。 互換CPUとかって全部emu扱いなの? たとえばPC-9801互換のEPSON PCはカテゴリとしてemuになるって話だよね。 公式に許可とらず、勝手に挙動を再現してソフトの互換性を出したんだから。 …うーん、その考えはおかしいような気がするんだけどな。 結局、互換機は実機モドキであってエミュなんかじゃないやい! 最近のエミュ機と一緒にするな! って言いたいだけなんだ。パチモノマニアとしては。 もはやスレチだけど。
>>438 あとも一つ忘れてた。
C1はハードだけど、互換機もハードだぜ?
当然ながら時代的にも(確か)初のファミコンエミュNesticleが出る
1997年以前に出たのもあるからソフト実装は当然無理だ。
なのに、なんで互換機はemuだなんて寂しいこと言うのさ?
いいじゃないか実機(モドキ)って名乗っても。
もう、ファミコン実機と互換機って言い方でいいんでないの 実機でもNES、C1、ツインファミコンとか紛らわしいのは明記で
それでいいよ、所詮互換機、本物にはかなわん。 エミュと呼ばれるのが気に食わんだけだし。
横から失礼。
>>439 「emuをハードで実装」というのは違う。
「必要な機能をハードで実装」ということだと思う。
互換性のレベルについては、ソフトで実装するか
ハードで実装するかに関係ないってことだと思う。
>>429 「エミュレータと同じ制御論理をハードで実装している」ということなら、
「エミュレータソフト」ではなく「実機(互換機)」と言えるので、
その認識は間違い。
本気にする人もいるから気を付けてね。
話をしていく上で、”実機=本物”でない事の方が流れを混乱させると思うのだが。 少なくともFC,NES,C1,TWなんかとパチモノFCを一緒くたにしちゃ駄目でしょ。
実機はあくまで純正+正規ライセンス互換品までだろ ハードウェアだから実機っていうのは短絡的すぎる
途中でソフトかハードかという話になって混乱したようですが、 互換機を実機と呼ぶかどうかという議論になっているようですね。 「実機」という言葉の定義の話なので、あまり意味がないように思います。 本物と互換機は区別したほうがいいのは同意ですが、 そもそもこのスレとしては互換機のことは除外していいと思います。
いやいや今回の流れはこうだ
互換機はエミュだと発言
↓
いや寧ろ互換機は実機のような物だと発言
↓
エミュレータと同じ制御論理をハードで実装しているならエミュだと発言
↓
いやいや、ハードで実装してたらエミュじゃないでしょと発言
↓
いまここ。
実機の定義というよりもエミュレーターの定義な気がする。
そして結論は
>>444 で出てると思う。
実機≠互換機には同意。
449 :
名前は開発中のものです。 :2010/05/23(日) 13:17:11 ID:XcEmPgNF
くだらないことで言い合いが出来るなんておまえら青春だな
喧嘩にならず、ネタでした!と言い終わらず、淡々と 自身の知識と考えをぶつけて新しい見解の見出すなら いいんじゃないかと思ふ。
じゃあFPGAで作ればエミュ?
ウィキペディアのエミュレータの項目でも見とけばいいよ
>>451 ソフトかハードかで言えばハード。
本物か互換機かで言えば互換機。
454 :
名前は開発中のものです。 :2010/06/28(月) 21:49:49 ID:MTHVZSDW
りんかくさんって警察に追われてるの? 日本に来たら逮捕されちゃうの?
メモリ表示機能、デバッガ機能、逆アセンブル機能が一番優れているエミュは、現時点でどれになりますか?
G-NESだろうな エミュレーション精度はNestopiaだから開発と動作確認とで使い分けるといい
使ってみた。逆アセンブル機能を画面変化ある度に使うと、マッパーの動作がなんとなく理解できた どの部分のページを読み出してどのバンクに割り当てているか、色々なゲームを走らせて確認中
マッパー状態ビュアー見れば一目だろ
459 :
名前は開発中のものです。 :2010/08/29(日) 04:22:38 ID:XQ3Su29O
当時のプログラマーはどうやって勉強したんだろ?
プログラマーの一割くらいはハードも理解可能なんですけど?
BattleKidの実機用ROMを買ったら エミュで動かせるROMもつけてくれないかな エミュが対応できるようにマッパーを追加しないといけないかな
向上心もないのに自分のスキル以上のものを求めないでください
もしマーク3のプログラムを作った場合は ここで紹介するとスレ違いって言われるかな。
もれなく言われます
それは残念ですな。 両ハードのクロス開発を期待してしまったので。
ファミコンとマーク3の共通性って何もない気がするけど? マーク3単体ならメガドラ開発スレで受け入れてくれるだろうけどね
ギコファミさんのとこのサンプルで勉強してるのですが マッパー3のサンプルが実機上だとchrバンクの切り替えができないようです。 なにか別に設定など必要なのでしょうか。 おわかりになる方がいらっしゃいましたらお教え下さい。
すごいわー なんという良スレ 実機でうごくまでがんばる さて、なにつくろうか・・・
470 :
467 :2010/09/21(火) 20:20:26 ID:63f2oNBX
>>468 Nestopiaを含めほとんどのエミュで再現しないため困惑していました。
実機での動作も無事確認できました。ありがとうございました。
任天堂の社長岩田氏が6502にCPUにバグがあってメモリーをふやせるとかいう記事を読んだのですが どういうことかわかる方いませんか?
>社長が聞く スーパーマリオ25周年 上村 そうそう、岩田さんは当時、バグまで見せてくれましたよね(笑)。 岩田 ああ、メモリを節約するテクニックのことですね。 「6502ではこんなこともできます。設計上意図していたとは思えないので、バグみたいな使い方なんですけど」 とか言ってお見せしたことはありました(笑)。 の部分を読みになったのでしょうか。安易な推測しか出来ませんが、未定義命令などを 上手く使ったのでは無いのでしょうかね。
>>472 その記事です
ありがとうございます
こういったテクニックをあつめたサイトなり、書籍なりあったらいいのですが
メモリ使用量の節約とメモリ自体が増えるのじゃまったく違うだろ・・・
>全スレの6502の裏技に少しはつながるかもしれない、技術ニュース。 ファミコン向け新作シューティング、Blade Busterが発表されたようです。 本体は、元サイトから新しく移転したほうのサイト(High level Challenge!) で公開しておりました。<サイトの左側のメニューの一番上から行けます。 早速プレイして見ましたが、かなり本格的です。制作のノウハウとか教えて くれるといいんですけどね。
>Blade Buster いいよ〜 技術もさることながらドットがいい 一キャラ4色(スプライトがあるので3色)でよく頑張った アクションゲーとかつくってくれんかな ノウハウうpキボンヌだよ 俺も頑張ろう
Blade Busterのゲームオーバーの曲って ハドソ○から訴えられたりしないの??
478 :
名前は開発中のものです。 :2010/10/06(水) 01:00:09 ID:qd/bmMA3
曲全般アウトだろ。 ただ、今はROMそのものではなくファイルイメージで、しかも無料配布だから 様子見してるのかもしれない。 ニココメにはもうすでに通報したって書き込みあったしな。
ハドソンがこれを潰すつもりなら直接通達が行ってdownloadが消されるだけでしょ 誰も傷つかず・・・ ただ、削除される前にゲットできて良かった 何年も前に再生データを興味深く見てたサイトでありました いまはyoutubeがあるからまったく見に行かなくなってた
元関係者が自分の管理下にない著作物(デザインや楽曲も含む)を 作品愛があるからとかいう意味不明な理由で利用し配布するのは 流石に職業倫理的に問題があると思うし販売などしようものなら流石にアウトでしょ
今遊んでみたけど、感動した。PCエンジンやってるかのような爽快さ加減。
正式に抗議できるのはパクられたメーカーだけだからね。 メーカー側が不利益になると判断すれば速やかに配布停止命令が行くでしょ。 それがでるまでは普通に続けるでしょ。パクリもの同人誌といっしょだ。 そういえば、パックマンCEをFCで作った人もイメージ配布してたけど訴えられたの?
誰か曲作れる奴、連絡入れてやれよ
>パックマンCEをFCで作った人もイメージ配布してたけど訴えられたの? HPみたけどおいてないよ
曲かー・・・ サウンドドライバ用のメモリどんだけ取れるんだろう・・・
曲には矩形波x2、三角波、ノイズ、ADPCMを全て使ってるっぽいね。 ROM容量は有り余ってスカスカみたいだから、RAMに譜面を全部展開とかしてないならば 曲自体は割と長くてもいけそう。 ただSTGという性質上、リアルタイム性が重視されるから あまりBGMに処理速度取られるほど技巧に凝った鳴らし方はしないほうがいい予感。
なるほど。 まてよ・・・その文面からすると、サウンドドライバはもう出来てるのか!? その場合、曲は何で書くんだろうか・・MMLだとしたら、どんなフォーマットなんだろう・・・。
ドライバとコンバータ等の作成ツールを混同されている様ですが・・・
ドライバなんて大層なもんじゃなく、動画中のメッセージにもあるように、 1フレーム毎にデータを読んでレジスタに書いているだけじゃないのかな。 まあその辺のアルゴリズムが難しかったりするのかも試練が。
>>490 そんな原始的な方式だったのか。 処理速度は速いけど、曲データのサイズがとんでもないことになるという・・。
ドライバは自分用で書いたものがあるからそれが使えれば、とは思ってる。
混同はしてないよ
038010からBGM鳴らすプログラム、03A010から曲データっぽい気がする。 自分用に書いたものがあるなら、試しに書き換えて使ってみてはいかが。
ファミコンの驚くべき発想力 -限界を突破する技術に学べ- なる本が10月の末に発売されるとか。技術評論社ということは あの頃は懐かしかったし、面白かった!という話でなく、CPUを どう扱ってこれを実現するなどの技術面のお話をしてくれると 幸せになるまつね。
今時ファミコンの本とはすごい。読みたいな
29日発売か。目次読んで我慢できなくなったんで予約した。
>>407 亀レス
MMC5でPCMポート使ってるのは役満天国がありますよ。
単にポートにだーっと書き込んでるだけですが…。
500 :
名前は開発中のものです。 :2010/10/30(土) 15:18:10 ID:Hii093KY
ニッチ産業もいいところだな
>>499 Amazonからはすでに発送されてるらしいんだが
台風で遅れてるのかまだ届かん
>>499 入手したんでざっと目を通したが
ファミコンの仕様が全く理解出来ていない層がターゲットで
8ビット機の基本的な仕様やプログラム技術をファミコンに則して書いてあるのが8割
残り2割の副題にある限界突破技術にいたっては
・ドルアーガのマップ生成アルゴリズム(遠藤発言に図解つけた程度)
・スプライト反転やパレット違いによるキャラ数節約
・ラスタスクロール
・ドラクエのカタカナ制限や復活の呪文のパラメーター節約
のみの紹介で
最初期のベースボールやF1レース等、当時のプログラミングの常套手段であり
限界なんてちっとも突破してない
ファミコンの門外漢が調べて書いた感は否めないが
ファミコンプログラムに興味がある人がギコファミに行く前に
読んでおくべき入門書だと思う
>>502 そうか…。残念極まりないな。
入門書として立ち読み程度かなこれは。
帰ってきたら届いてたんでパラパラと読んでる。たしかに初心者向けっぽい。 でもわりと丁寧に書いてあって好感は持てる作りだよ。 これが売れればまたこういう企画の本が出しやすくなるだろうし、 応援したい気持ちになったから買って損したとは思わなかったな。
いくら丁寧でもタイトル詐欺はアカンやろ 編集者が悪いんだろうけど
Amazonはまだ届きません
俺も読んだけど4章のドルアーガの部分は面白かったな 知らない情報だったし ただ、「驚くべき発想」と思えるほどじゃなかったけど その手の情報が好きで調べてた人には新鮮味のある情報はないと思う
konozama炸裂だな PCMを上手く使って音源の限界突破とか、バンク切り替えを使った 多重スクロールとか、最後期のファミコンの限界突破した技術が 紹介されてると良かったのにね。 ラスタースクロールはちゃんとやり方が紹介されてるなら良さそうだけど。
1ページ満たない程度の「0爆弾」概念の説明があるだけ あたかも4方向スクロールにネームテーブル4画面モードが必要かのような記載してるくらいなので マトモにFCでプログラミングしたことない人だよ
0爆弾の説明も透明なスプライトを配置するって書いてるけど、 それだとスプライトヒット検出のビット立たないしなあ
立ち読みしたけど、既にWindowsとかで基本的なゲームプログラム書ける若い人が、ちょっとした昔話を読み物として見る為の本だな。 >松浦健一郎, 司ゆき 著 よく書店で見かけるし、何冊か買ったことあるけど、この著者って、深くもないし広くもない、そのジャンルの入り口レベルの、内容浅めのガイド本を量産するタイプの作家さんだよ。 一から十まで説明されないと分からない人や、すぐパクって使えるサンプルコードを期待する人には、この著者の本は根本的に向かないよ。 つーか、FCの技法って、ガイド本が無いと分からないようなのあるの? 任天堂とコナミのバンクコントローラなら、NesDevWikiの資料だけで十分足りると思うけど。
で、Windowsでプログラムしてる奴には反転やパレットチェンジが驚くべき発想なの?
Amazonのその後の方が気になる
ファミコンを知らない人がタゲなのに、本の締めが「ファミコンに縛られるな」って。 「技術に学べ」っていう主題からも離れてるしw
517 :
名前は開発中のものです。 :2010/11/01(月) 04:40:00 ID:5svKJOru
>ファミコンに縛られるな まさにおまえらのことだな
制限の中で作るっていう遊びじゃねーの
「アセンブラわかる俺カコイイ」をやりたいだけだろ
できない人にはそんなにカッコよく見えるんだw
ちょーかっけよーw
>>515 あーごめん今日届いたよ
ちなみにamazonで予約注文するの初めてなんだけど発売日に届かないって普通なの?
一応26日に注文したんだけどね
俺はセブンイレブンだが、まだ届かんよorz
今日イトー○ーカドーで買ってきたw FC関連メインで書かれてる書籍なんて新鮮だし、内容も結構濃いめでオススメ まぁ…技術的な面ではあまり参考にならなかったんだけども…^^; >PCMを上手く使って音源の限界突破とか、バンク切り替えを使った 多重スクロールとか、最後期のファミコンの限界突破した技術が 紹介されてると良かったのにね。 うん。そうだね(´・ω・) わたくしも期待してたっぽいですよ
質問なんだが、バッテリーバックアップありのカセットで リセットボタンを押しながら電源を切るのはなんで? プログラム的にリセットを押す必要ってあるの?
ハードウェア的に必要があるのよ坊や。 ここだけの話、調べるのにはGoogleってサイトを使うといいらしい。
簡単に説明すると、電源切って電圧がゼロになるまでの間、CPUは暴走する 運が悪いとセーブデータが書かれたRAMをめちゃめちゃに書き換える リセット押してる間はCPUから全てのROM/RAMが切り離される(これはファミコンに限った話ではない これでセーブデータは無事(かもしれない)という寸法さ PC-98でワープロしてても、電源切るときにリセット押してた人もいたけどね ああ、こいつ、ふぁみこんやってるな、などと思った
逆に、リセット押さないで電源を切って下さいってソフトが なかったっけ?多分ナムコのだったと思う。
SFCはリセット押さずに電源切りゃいいんだよな おかげで今でもこんがらがる
>>529 も言ってるがファミコンでも一部リセットを押さずに普通に電源切れってのがあるよ。
ファミコンのバッテリバックアップ対応の一部のソフトだけだと思う>リセット押しながら
オク終了時に3万ぐらいになってる悪寒
ウチに2期生のヤツ、あるぜw
役立ってないなら処分した方がいいんじゃね? お前自身のようにw
俺、HALにいたからファミコンの開発教材持ってるよ
>>534 わざわざ自分から反感を買うような発言するかなあ
同門として恥ずかしいからやめてくれ
ん?なんで持ってるの書いたくらいで叩かれてるんだ? 高値で売ろうとする方が問題なんじゃねーの?
>>538 読んでみたいなって人の目の前で無意味な「俺持ってるアピール」するから
ウザがられるのではないでしょうか。
自分の言動が他人にどう受け取られるか、もう少し意識してみてください。
だからどうしたって感じだけどわざわざ噛み付くことでもない
>>533 そんな価値あるの?
入札すら無いと思うが・・・
持ってるならPDFにして公開しちゃえ。
ひけらかして自尊心満たすような奴が公開する訳ないだろjk
ファミコンのハードウェア解説ならまだしもただの6502の本じゃん。 ちょっとググればそのくらいの情報あるんじゃないのか?
546 :
名前は開発中のものです。 :2010/11/07(日) 09:12:44 ID:HDppbbCs
お前ら見てるといかにも乞食って感じがする 頑張れよ、乞食ども
その本はその程度の価値しかないのだ。
学生時代の思い出の教科書なので、バラしてデータ化は無いです。
しかも、見知らぬ誰かの為に金を出して…なんて、ありえん。
6502の本は別に教科書として購入したし、ファミコンのハードウェアの
解説はそれなりにあったはず。ただ、目的がマッパー0サウンド特殊での
制作用の為、どのみちネットに出回ってる資料と大差ないと思います。
今は実家にあるのと、早々にプログラム関係は諦めてたので、
詳しい事は良く覚えてません。BG関係とかスプライト、
本体の仕様に関する部分はそれなりに書いてあった気がする。
>>534 の書き込みをして興味がありそうなら、こういう事を書こうと
思っただけだったが、書き方が悪かったみたいで正直スマンかった。
それより、何で誰も
>>536 に反応しないかな。
どーでもいいからスルーしてたけど 「 それより 」の一言が思慮の浅さを物語ってるな 高卒とかと仕事としたこと無いから知らんけどこんなバカなのか
開発機材と開発教材を間違えたのか?開発教材ってなんだ?
ID:beoP2MPcは何でそんなに必死なん? HALは今でも専門学校をやってるし、ファミコンを教えてた時期もある。 たまたまHALのテキストを手に入れて持ってるけど、かなり充実してるよ。
>>552 ひとこと多い人のようですね。
反省の念があるならこのスレのために自重していただけませんか。
お願いします。
549と553は言葉尻捕まえて何でそんなに喧嘩腰なんだぜ?
(中)ってことは(上)と(下)もあるのか (中)だけで意味あるのかな? 重要なことは(上)と(下)に書かれていて (中)には大したことは書かれてないとかだったら このスレの住人爆死だろ?
(大)(中)(小)かもしれん 本のサイズが違うとか
(強)(中)(弱)
よ…弱で
出前で不意に松・竹・梅で聞かれると困惑するよね
松竹梅が値段のランクだって事が解ってるなら、 安いの普通の高いので答えれば良いじゃん。 見栄をはるから困惑するんだよw
松竹梅
↓
寿司
↓
回転寿司
↓
>>532 でループ荒らしを狙ってるな?
なんて悪知恵の賢い奴らだこんちくしょう
街灯に?とかPOWとかつけとくのかな。
以前、スーマリを逆アセして解説してたサイトを見た記憶があるんだが URLを忘れてしまった。誰が教えてくれないかな。
infoseek
infoseek終了したね 俺の10年近くあったサイトも自然消滅
570 :
sage :2010/12/05(日) 02:05:26 ID:iJ3bZDCd
ちょっと力試しにマリオブラザーズのプログラムを逆アセして C で書き直そうと思うんですが、似たようなことした/してる人っていますか? RAM の変数配置がわかると早く進むと思うんですが。 とりあえず $0500-$0503 は乱数生成のワークですね。
マリオブラザーズとか無謀だろ・・・
個人で楽しむなら良いとして、公開するなら法的にアウトじゃないの?
573 :
570 :2010/12/05(日) 12:04:25 ID:iJ3bZDCd
まぁ公開はできないと思います。残念ですが。。。 ↓RAM の用途をシェアするのは問題ないですかね? 0009: PPU $2000 に書いた値 000A: PPU $2001 に書いた値 0020: 1 frame 処理完了フラグ これもアウトということであれば以後自重します。
お前はともかく俺はチキンレースがしたいわけじゃないんだ 自重しとけ
解析の力試しじゃなくプログラミングの力試しなら題材間違ってると思う
ん? そうか? 俺はそうは思わないけど。 好きな題材の方が問題の対処能力は上がるだろ。
自分で解析したいほど好きではないんじゃね
ゲームの解析は色々とやったけど、アセンブラからC言語にするのは色々と大変だな。 データの構造体をCで都合の良いように作り直す事が多い。 func()やswitchで対応できないケースもしばしば出てくるので。 スーマリ全部Cにするのはかなり大変そう、ベタで半年仕事じゃないかな。
支離滅裂カシオン 凄いと思われる仕事がしたい・・・ 元々良く出来たPCEのグラディウス弄って何が楽しいんだか そして全く需要もない
逆アセするならFFだろうな 天才プログラマのテクニックを盗み取れ 一生を費やすことになるかもしれんが
インドの方が組んだやつが難解すぎて解けないってのはFFだっけ?
一連のナーシャ作品を見ると、彼のファミコンでのプログラムは 既にAPPLE][で6502自体を使い尽くしていたので PPU周りの活用に重きを置いていたんじゃないかと思う FF1の最後のTHE ENDの文字で疑似ビットマップ処理を実装したりとか ドラクエに対抗して徹底的にグラフィック指向にしたとかいうけど ナーシャの存在に因るところが大きいと思う でも大半は15パズルみたいにナーシャの暴走による勝手な実装だったりしてw
バグ多くね?
584 :
名前は開発中のものです。 :2010/12/10(金) 03:11:56 ID:nzG0PJWG
585 :
名前は開発中のものです。 :2010/12/10(金) 04:41:23 ID:a6ZNbjsA
金銭の提供とか変だと思ったら そこってハックロムやコピー品を販売してるわ。 メーカーの著作権ばかりかここのコミュニティーにも 迷惑を掛ける犯罪行為なのでスルーして下さい。
586 :
名前は開発中のものです。 :2010/12/10(金) 14:40:50 ID:nzG0PJWG
>584 なるほど・・解決しました。
新年初カキコ。 今年も元気にアセンブラに取り組みたいのが抱負だね。
OH!スバラシー x64で動かなかったのでイチイチVPC使ってました
Solsticeとかで発音してる音って普通にFamiTrackerでも作れますかね? サンプリングやDPCMみたいなやつってどう鳴らしたらいいんでしょうか?
solsticeはDPCM使ってなかったと思うけど
データ量の問題で敢えてDPCMは使わずに 1BitサンプリングをPSGで鳴らしてる場合が結構あるしね
>593 ファミコンのゲームでありましたっけ。 それともマーク3などのPSGPCMのこととか。
595 :
名前は開発中のものです。 :2011/02/26(土) 23:32:59.47 ID:+EggAFA+
最初期容量(24kb)でシューティングを作っているのですが、
感想をもらえるとうれしいです。
http://cblk.web.fc2.com/nesfeder.zip 作りかけのままで失礼ですが、これからは
ステージを作っていこうと思っています。
BGパレットがめちゃくちゃですが
そのうち解決したいです。
ちなみに趣味としてちょこちょこ作ってたら、
もう1年も経ってましたw
596 :
名前は開発中のものです。 :2011/02/26(土) 23:34:39.19 ID:+EggAFA+
背景によってはステータスが見えにくいから、白文字に黒い影にした方が良さそう。 更にステータスのスプライトを1フレーム単位で交互に表示しているのを、 ゆっくりにした方が良さそう。 高速点滅させると擬似半透明化して薄く見えてしまうけど、 低速点滅だと表示されてる間ははっきり認識出来る仕組み。
ゲームについては、最初は敵本体と敵の弾の速度を今の1/2くらいにしても良さそう。 。
ショットはBボタンにしてほしい 砲台はこわせるようにしてほしい 定期的にボスを出してほしい ReadMe的なものがないのでどれが未完成でどれがバグなのかよくわからない
601 :
名前は開発中のものです。 :2011/02/27(日) 16:29:22.14 ID:RQRk8aBC
なるほど… いままで、構造が1パターンだったので、 ボスなどを作ってみようと思いました。 それからステータスも見にくいので、 改善しようと思います。 ステータスですが、本当はラスタースクロールで BG表示を試みましたが、うまくいかずスプライト表示。 さらに横並び制限で点滅。 いろいろと指摘してくださり、参考になりました。 ありがとうございます!
>>595 第一印象はゼビウスっぽいと思ったw
二人同時プレイがいいねぇ。攻撃が激しくなるとスプライト的に辛そうだけど。
画像はこれから変わるのかもしれないけど、背景は少し暗めにするか、グラデーションにしてチラつきを減らすと敵の弾が見やすくなるかも。
Bボタンショットで、Aボタンで対地攻撃にするとさらにゼb…ん?スプライトに対地攻撃の照準があるね。実装予定かな?
ショットのパワーアップがあるなら | | を ||| にするみたいに、見てわかるようになるといいなぁ。
GAME OVER等の文字が点滅せず欠けてる。
604 :
名前は開発中のものです。 :2011/03/01(火) 14:33:23.60 ID:wo9m9Mxh
やはりスプライトがキツイので、 敵の数を増やすのではなく、強くしていこうと思います。
605 :
名前は開発中のものです。 :2011/03/02(水) 23:01:10.42 ID:7G0D5KdX
>>604 の者です。
ラスタースクロールを使ったスコア表示に挑戦しています。
0爆弾は成功したのですが、Y座標の更新がうまく反映できません。
X座標はうまくいくのですが、誰か教えてくれるとうれしいです。
2chに頼ってしまってすいません。
>>605 Y座標の画面表示中変更は$2005のスクロールレジスタだけ
では不可能なので、$2006も書かないといけません。
ステータス表示をやるなら、上側でやるより下側でやると
$2006を書くだけで済むので簡単だよ。
(烈火などのようなスコア表示)
>>606 デビルワールドのように上下両方表示で縦スムーズスクロールって可能?
>>607 可能だよー。
とりあえず例だけ。
3分割なので2回スクロール値を変える必要があるけど、
1回目のスクロール値指定でこれをやる。
lda $2002 ; 2度書きレジスタリセット
lda #ページ選択など
sta $2000 ; $2006なら2回書く
lda #X座標
ldx #Y座標
ldy #((Y座標<<2) & $E0)|(X座標
>>3 )
sta $2005
stx $2005
sta $2005
sty $2006
609 :
名前は開発中のものです。 :2011/03/04(金) 17:13:37.16 ID:jPGtTARS
うまくいきました、ありがとうございます! そういえば、Yスクロールして 下にスコア表示があるゲーム多いですね。(マリオ3とかカービィ等)
とても、高い完成度です!うらやましいです。 とくに、玉の座標の移動が、様々な角度に移動しているところが! 数学が得意でない私は、縦横か、X+1,Y+1などの斜め移動しかできないです。 自分もがんばりたいっす。
>>608 ラスタースクロールで散々悩んでいたのが解決しました。ありがとうございます。
ただやり方は分かったものの理屈が気になる。
the skinny on nes scrollingを読むとY座標の値はスキャンライン開始時に
読み込まれないみたいだが、どうしてこういう仕様になったんだろう。
$2006(の2回目)では全部読み込めるのなら毎回全部読んでもよさそうなものだが。
>>611 詳しくは loopy-2005.txt を読んだ方がわかりやすいかも。
初期の頃はこれがわかってなかったから、ディスク版ゼルダ
みたいに縦スクロール時カク付いてたのかなーとか。
613 :
611 :2011/03/07(月) 02:28:05.00 ID:rvld/IIa
>612 loopy-2005.txtってのはthe skinny on nes scrollingと同じ文書みたいですね。 なんで2005→2006と書かなきゃいけないのかはわかったけれど どうしてそんな変な仕組みになっているのかが分からなくて。
614 :
608 :2011/03/07(月) 05:15:29.14 ID:pR0zl8o+
>>613 回路をケチっただけかもしれんし、どうしてかそうしたかは
作った人しかわからんのじゃないかなぁ…。
ソフトウェア的に2度書きのメリットって思い付かないし、多分回路ケチってる気がした。 0x2000〜0x2007 と言う事はつまり、PPU内部には3bitのレジスター用アドレスデコーダーがある。 そして基板回路図見たら確かにPPUからはレジスター用の入力ピン (アドレスバス) が3本だけ出てた。 → もし2度書きレジスターを個別にすると、中途半端に4bitのアドレスデコーダーと4本の入力ピンが必要になる。 大抵ペアで書くと想定されるレジスター同士を2度書きレジスターとしてまとめてでも3bitに収めた方が、コストダウン出来るのかな?
当時だと回路規模とかパッケージの問題も考えられそうね。
元々定価1万円以内で開発してた名残じゃないかな 結局1万円じゃ収まらなかったけど
618 :
611 :2011/03/09(水) 23:56:47.54 ID:BVg4P99x
あ、二度書きの事じゃなくて、1ラインごとにXの値だけでなくYも 2005から読み込んでれば2005→2005→2005→2006なんて面倒な 書き方をせずに済んだんじゃないかなってことを言いたかったんだけど、 自己解決しました。 それだとXスクロールだけしたいときでもラインが進むごとにYの値を 進めてかなきゃいけなくて凄くめんどくさいことになる。
MMC3のIRQ割り込みって、 何か特別な初期化など必要ですか? G-NES、FCEUXなんかだと、動いているように見えるんですが、 Nintendulator、NestopiaだとIRQ割り込みすらしてくれない。
自己解決。 コントロールレジスタの パターンアドレス指定をBGとスプライトで 同じアドレスを指定していただけでした。
おもしろかったよー 悪魔城とかロックマンの分割ぽい縦スクとか たまたまこのスレ覗いてるレベルの俺にはパンチアウトは理解出来んかったw
最後のドラクエ4の船のアイデアが凄いわ
伝説のクソゲーことチーターマン2くらいは作ってみたいものだ
>>621 でFF1のTheEndが取り上げられてないのが残念…
あれはBGとスプライトの使い分け関係ないじゃん
>>621 こういうのって、良いねえ。
手品の種明かしを見てるみたいで。
BGとスプライトの使い分け関係ないけど QIXとプリンスオブペルシャのテクニックはすげぇと思った
BGの下にスプライトが隠れるのは 地道にプログラムしてるのかと思うと泣けてくる
フラグ1つ変更すればBGの後ろに表示される
それをわかった上でそのフラグ管理を個別にキチンとしていることを言ってるのでは?
それだと泣けてくる理由がわからない
設定はBG一律に対してだから、壁とか柱とか常に監視して 重なるBGの種類に合わせて随時切り替えなければならない
スターソルジャーで白い星の上に、BGスクロールの壁、 その上に自機や敵や玉、場合によっては壁の下に潜る自機かなあ スクロールが一定の速度だからまだ管理しやすいのか
スプライト単位で指定できるから 星は常時BGより背面で固定、敵や弾はBGより前面で固定 フラグ管理しているのは自機だけだね
>>635 知ってるって
そんなのアタリ判定で体力ゲージ減らす処理と大差ない
うむ、言われてみればそうだなあ
飛び跳ねるアイテムがBGとか変態だわ… これアイテムの位置ごとに別の背景キャラを用意して 毎フレーム書き換えてるわけ?
スプライト発明後しか知らない人には珍しいのだろうね
あー、スプライトの発明か。その辺の話も知りたいなあ あとスプライトなしでキャラクタベースでキャラクタ書き換えのみってのも見たことない
始めて見たゲームだが、音楽も凝ってるな
なんか勘違いしてるな。PCGの概念も理解してないくせにBGって単語使いたいだけだろ。
いや、勘違いでした。申し訳ないです。
>>646 全画面別キャラ出すのってMMC5でできるのか。
ちょっとこの休みに勉強してみようかな。
>>650 スプライトなし、スクロールもなしか…。
グラフィックって機械ごとに特色あって面白いなあ。
BG書き換えがすごい言われ方してるけど 単に88や98でゲーム作る時の手法でしょw
このスレだとBGとグラフィック面は同じ扱いなの?
わかってないのに知ったかしてる人が居るからな PCGとBGは時代やスペックが違うだけで全く同じものだというのに 普通はビットマップスクリーンがグラフィック面 一部のPCのみテキストプレーン3枚で合成って言うだけで 実質これはビットマップスクリーン
潤沢なメモリが使えない当時のもので ビットマップとか以前の設計でしょ
BGの(テーブルでなくて)パターン書き換えは座標計算負荷が高くなるから その点でP-MANは無茶してるな
メモリの問題はかなり重要だったけど 速度面でも有利だったからね
PC98、88オンリーの知識じゃ話かみ合わんがなw
別に面白いゲームを移植してもらえないマイナー機を使ってたなんて自慢しなくてもいいよ。
646です。あげますでなく、上げますです。 どせいさん見たいな言葉遣いになってしまった。 >651さまへ PPUのレジスタで1フレーム分非表示にしている間に BGを書き換えているのでMMC5以外でもきますよ。
>>659 別に持ってなくても、知ってる人もいるよ。
おめえが勉強不足の情弱なだけに見える。
ノイズの波形の式がわからない。 擬似乱数を、一定カウント毎に更新して、 擬似乱数の最上位ビットを一定数で乗算したのを 波形にしてるんだけど、ノイズというより矩形波に近い 音が出てしまう。
>>663 それはファミコンプログラムと言うよりエミュな話では?
Nesterあたりのソースを見れば早いよ。 Real Time Noise って書いてある所。
おお、エミュレータのオープンソースなのがあるのか。 ありがとう
>>661 なんだ、知ってるだけで実際には使ったことは無いのか。
口汚く罵る事は知っていても、実戦せずに知っているだけの知識を得る作業は勉強ではないと知らないんだね。
可哀相に。
自分以外がすべて敵に思えるらしいw なんて言うんだっけこういうの
ROMカートリッジを作るとかは別のスレになるのかぃ?
リバース落としました。 おもしろいです。
>>668 少なくともここじゃないが該当する板は分からん
ぶっちゃけ他に適切な板があるとも思えんし スレ違い覚悟でここに書くしかない気がする まあ「カートリッジを作るにあたってのマッパーの扱い」 とかに絞ればプログラミングも関わってくるけど あんまり細分化しすぎてもなあ…
最近このスレ見るようになったけど、数名は住人がいるようで嬉しいよ。 俺、ファミコンの色とか音色とか大好きなんだよね。
virtuanesをVS2010でビルドすると、 m_CheatCode.erase( &m_CheatCode[no] ); という行に対して、 error C2664: 'std::_Vector_iterator<_Myvec> std::vector<_Ty>::erase(std::_Vector_const_iterator<_Myvec>)' : 1 番目の引数を 'CHEATCODE *' から 'std::_Vector_const_iterator<_Myvec>' に変換できません。(新しい機能 ; ヘルプを参照) みたいなエラーが出るんだけど、何がダメなのか教えてくだせえ。 そして、この場合どう修正するのが正しいのか。 コメントアウトすれば特に問題無く動くんだけど。
それはファミコンのプログラムじゃなくね?
>>673 サンクス。何かウンコだらけのスレだけど除いてみるよw
>>675 C++の言語仕様の話だけど、じゃあどこで聞けば良いのかと
エミュレータかよ 製作者のBBSにでも質問して笑われてなさい
vectorのiteratorはポインタであると仮定してるから処理系によっては通らないんだろう つかム板池
YY-CHRがあまりにも使いづらくて使い方わかんないし、
作った本人が簡単だとか言ってるのにそれでもわかんないから作ってみた。
http://grgsiberia.web.fc2.com/python/tool/niefp.zip 簡単に言うと、PNGからNES用のスプライトやBGなどを吐き出すPythonスクリプト。
EDGEと連携出来たら楽だろうな、と思って作った。
EDGEで出力したPNGやパレットであれば確実に対応してるんじゃないかと思う。
詳しい使い方などはreadme.htmlで。
あと、Python2.6以降じゃないと動かないけど、Pythonは便利だから入れといて損はないよ。
まあファミコンのアーキテクチャーを根本的に理解できてないから わからないのだろうねw
分かってることとツールが使いやすいかどうかは別 YY-CHRは相当分かりづらいツールだし コピペするにも2つ立ち上げるとか変則な方法が必要
使い慣れたツールを使えるならそれが一番だわな 俺もEdgeとPlatinumを使うためにそれぞれコンバータ作ったわ
yy-chrはパレットの扱い方が理解できるかで使い勝手が変わるな。 コピペは単体でもできるし、Edgeとかの他のソフトともできる。2つ立ち上げる必要はなくね?
>BGパターンテーブルは$0000から、スプライトパターンテーブルは$1000からなのね とか言ってるくらいだから全然理解してないでしょ
>>681 最近、NESASMやり始めたばかりだけど、
それでもあの使いづらさは異常だと思うよ。
お絵かきソフトが普通にできることができないってのは苦痛。
>>684 できればギコ猫のサンプルを普通に表示する方法を教えて欲しいです。
この段階で3時間もかけてどうしてもわからないので諦めました。
687 :
684 :2011/05/10(火) 02:50:38.62 ID:8v8HWfqX
>>686 まずNASMに通すpal(インデックス)と一般的なpalファイル(RGB)は違うのを理解して欲しい。
YY-CHRはpalファイルを自動で読もうとするけど、RGB形式で読み込むので、palからリネームが必要。
だけど、拡張子datにしとけばインデックスとしてのパレットとして読み込むので…
@ギコ猫のサンプルにpalファイルがあったらとりあえず拡張子をdatに直す。
AYY-CHRでbkgかsprファイルを開く。
B画像形式を「2BPP NES」に合わせる。この時点で画像が表示できる。
C必要ならDATパレット(右側中段のパレット)を選択する。これで目的のパレットで画像が表示される。
以上。
bkgやsprをchrやnesにリネームしたらBの手順も飛ばせるので、ファイルを開くだけで読み込みから表示まで完了した状態になる。
YY-CHRのnetのほう使ってるのかね? netのほうはまだ使用に耐えないかもな。 C++のほうが現状では完成度は高い。 それでパレットセットを有効にすればやりたいことができるかもしれない。
>>687 うわぁ……thx……。
こりゃあガチでわからない……。
>>688 普通にC++版のはず。
とりあえず読み込み・書き込みまではできたので普通には使えてる。
yychrはペイントで書いた絵をコピペしてバイナリにするのにしか使ってないなあ あと背景並べてみる機能は便利そう
キーオフの長さとレジスタの値の関係がよくわからんな。 長さがダブってる値もあるし。
692 :
名前は開発中のものです。 :2011/06/02(木) 23:25:50.04 ID:derAo68s
質問すみません。 YYCHRで作成したキャラクタをプログラムで指定する際はどのようにすればよいのでしょうか 具体的にはギコ猫さんの所でgiko005.asmでコンパイルしたら、顔だけの部分を自作で適当な胴体を付けたいということです。
>>692 スプライトの事かな?
8x16のスプライトを使うといいかも
それと、コンパイルじゃなくて、アセンブラだから、アセンブルというよ
sta $2004
>>692 NESファイルの構造を知らない→iNESヘッダ を学び、NESファイルの構造を学ぶ
nesasmの.incbin文を知らない→それを学ぶ
960byte+64byte==1kb==$400byteをネームテーブルに書き込むやり方を 教えてください。
696 :
名前は開発中のものです。 :2011/06/04(土) 16:52:17.95 ID:kkzItymk
たしか、$2000〜がネームテーブル PPUだから、CPUから直接書き込めません。 IOポート$2006,$2007を使って書き込みます。 lda (上位8bit) sta $2006 lda (下位8bit) sta $2006 lda (書き込む数値) sta $2007 こんな感じで
Cから入ったんならそうだろアスペか?
ファミコンのCってどんな感じ? GBのはインテジャーが8ビットで萎えたw
8bit CPUなんだから、よほど特殊な事情がない限り、整数も8bitで扱う癖を付けた方がいいよ。 メモリの無駄。消費クロックの無駄。メモリ1バイトは血の一滴。特にゼロページは無駄にしたら目が潰れる。
C言語で作るのも意欲的だと思うのでいいと思う。 C言語でプログラムを作るのがどのになるのか、おもしろい方向に 発展して欲しいと思う。
ぶっちゃけ、処理の仕方自体はあんまりかわらない。 石ごとにニモニック覚えんで済むという以外で、あんまりメリットないのよね。 制限きついから、どうせ対象となる石に依存しきった記述しなけりゃならないし。 糞真面目にCだけで処理書いてたら、転送速度間に合わなかったりするし。 だもんだから、無駄を許容出来る部分ではCを使うと楽になる部分がないこともない、という程度でしかない。 コンパイラが吐きだしてくるコードを眺めてると、自然と、こう、手直ししたくてたまらない気分になってくる。 C使うならそれなりに使えるメモリにも速度的にも(ついでにレジスタ本数的にも)余裕がある16bit CPUからがいい。
703 :
名前は開発中のものです。 :2011/06/06(月) 16:13:19.03 ID:Oa9bfVz8
>>696 それはギコ猫さんでのgiko017.asmの253行目の
lda #$3
もしくは258行目の
and #8
のどちらかが該当するということでしょうか。
いろいろためしてみます。ありがとうございました。
>>694 iNESヘッダや.incbin文について解説されているサイトをご存知ないでしょうか。
言語は英語でも大丈夫です。
705 :
名前は開発中のものです。 :2011/06/06(月) 22:39:28.65 ID:jjMKLWTE
>>704 ありがとうございます。参考になりますので、勉強させていただきます。
それと申し訳ございませんが
8x16のスプライトの指定の仕方を伺いたいのですが、どのようにすればよいのでしょうか。
>>703 のやり方ではできませんでした。
inesヘッダーの仕様すら自分で見つけられんようじゃなあ…
707 :
名前は開発中のものです。 :2011/06/06(月) 23:34:53.67 ID:jjMKLWTE
>>706 未熟者で大変ご申し訳ございません。
しばらく、nesdevにある仕様書等をすべて読んできます。
8*16のスプライト指定は、 lda #%00*00000などのように、 1バイトの二進数で右から6個めのビット(*のついている部分)を1で指定します。 そして、その値をsta $2000とすればOKです。 ちなみに、6個目以外のビットもPPUの動作などを指定しているビットですから これからゆっくり覚えてゆくとよいのではないでしょうか。
710 :
名前は開発中のものです。 :2011/06/07(火) 19:23:07.65 ID:OiB+Zvrc
各スプライトごとに設定できたら良かったのに
なんだゆとりか
712 :
名前は開発中のものです。 :2011/06/08(水) 22:31:02.95 ID:o9YZ1MtB
ハード的にそうもいかないのかな…
713 :
名前は開発中のものです。 :2011/06/08(水) 22:44:05.82 ID:o9YZ1MtB
シューティングを作ってるのですが、 弾は8x8で自機は16x16だから、8x8モードで作ってます。 だけど、スプライト量オーバーでちらつきが… でも、スプライトダブラーを使いこなせればマシになるかも
妄想中にすまんがファミコンでダブラは実用的じゃないよ 言葉覚えたてで使ってる程度なんだろうけど
STGじゃ速度的にまあ無理だな あまり激しく動かないようなものなら2倍くらいならいけるけど アクション性が高いゲームならチラツキ表示位が限度
716 :
名前は開発中のものです。 :2011/06/09(木) 02:56:30.03 ID:ZNyOPZa+
それ違法だからね 無知は免罪符にならないからもうちょっと勉強したほうがいいよいろいろと
Yah○○知恵ヲクレのノリで 自分で考えないで馴れ合ってれば質問が解決できると思ってる ゆとり野郎へ C言語すらやったことない基礎力の無さで 知ったかぶって、メーカーの一握りのプロフェッショナルにしか使えない高等技術で目の前の問題を解決しようとするなよ 質問の仕方がめちゃくちゃ .incbin分からない時点でこのスレじゃ戦力外 ゆっくりC言語と、資格試験の基本情報技術者の勉強をしてこい ちゃんと基礎力つければ、今のお前の疑問は簡単に自己解決できるようになる その方が遠回りのようで近道だ
719 :
名前は開発中のものです。 :2011/06/09(木) 22:19:24.70 ID:xU0DCCre
>>718 「メーカーの一握りのプロフェッショナルにしか使えない高等技術」ってやつに
非常に興味があるな。
そろそろ、まとめサイトがあればいいのかも。 と思ったりします。言いだしっぺだけど。
722 :
名前は開発中のものです。 :2011/06/10(金) 21:04:39.90 ID:L/dg/kr8
>>718 もしかしたら…
スプライトダブラを持ちかけたのは私ですが、
incbinの質問をした人とは別人です。
紛らわしかったかもしれません。
incbinは、指定したファイルを読み込み、
現在のアドレスから書き込んでくれます。
説明ヘタかもしれませんが、
.incbin "test.bin"
(test.binの内容:00 01 02 03)
と
.db $00,$01,$02,$03
は同じものだと考えれば一応OK
ファミコンスレッドをもっと明るい話題でもってこうぜ
>>721 まとめサイトよろしくぅ
遅ればせながら8*16スプライトモードの補足を忘れてました。
スプライトのタイルのPPUアドレスを$0000、BGのタイルのPPUアドレスを$1000
に設定しないと8*16モードが反映されません。
設定方法はスプライトをモードを指定したsta $2000と同く、
lda #%***ab*** とa,bと、印の付いてるビットを指定操作して、
sta $2000 とします(*の記号は他にPPUを制御するビットを表現)
*aはBGのアドレス設定のビットです。
BGのアドレスを、0で$0000,1で$1000のアドレスに設定します。
*bはスプライトのアドレス設定ビットです。
スプライトアドレスを、0で$0000,1で$1000のアドレスに設定します。
8*16モードのときは aの部分を1 bの部分を0 に設定します。
またyy-chaでキャラクタを作成のとき、スプライトの256個のタイルを先に置き、
次にBG向けのタイルを256個を置きます。
目安はyy-chaの左側にある、タイル一覧です。
一度に表示されるタイル数が256なので、256のタイルを目安にして1ページと
して、右のバーを一番下まで引き落とすと、BG用の2ページ目となります。
>>723 wikiで作れたらいいなという妄想なんです。(´・ω・`)
あったら便利ですものね(`・ω・´)
725 :
名前は開発中のものです。 :2011/06/11(土) 01:37:09.28 ID:mwwXcWkS
即削除。(´・ω・`)
727 :
名前は開発中のものです。 :2011/06/11(土) 09:22:42.74 ID:mwwXcWkS
動画の設定を間違えて投稿したので、すぐ削除しました。 ただいまエンコード中…
728 :
名前は開発中のものです。 :2011/06/11(土) 11:36:00.69 ID:mwwXcWkS
724 >スプライトのタイルのPPUアドレスを$0000、BGのタイルのPPUアドレスを$1000 そんな条件はないずらよ。
730 :
名前は開発中のものです。 :2011/06/11(土) 23:02:22.10 ID:mwwXcWkS
>>729 オレも変だなと思ってたw
ってか説明も下手くそだよな
そうでしたっけ。勘違いでしたね。 後、いやぁ、説明へたですみません。 文章の練習してきます・・・・。
おお、私のちょっとしたつぶやきを具体化してくださったとは。 まとめwikiをつくっていただいたと張りがたいことです。
>>730 おおー乙ですー
いろいろ書きたいことはあるんで暇を見つけて書きたいな
>>730 乙ですー
自作ゲーム置き場もあるんですね。
こういうのって勝手に自作ゲーム置いても良いものなんすかね?
736 :
名前は開発中のものです。 :2011/06/14(火) 21:28:18.75 ID:Wwg17utS
>>736 wikiて編集は自由なんですね。
見るばかりで編集ルールとか気にした事なかったので知りませんでした。
ありがとうございます。
wiki支援て事で自作ゲームをupしてみました。
バグだらけの迷路ゲームですが、一応クリアはできます。
wikiにどんどん自作ゲームが増えると良いですね。
Wikiのリンク集にちょっと書いてみた
実は俺の愛用エミュでも動かなかった。 動くエミュの方が多いから黙ってた。
何年も開発が停まってるVirtuaNESなんかで動作確認だけはやめような それだと実機でまず動かないから 音源の再現性が高いとかいわれてるけど単にデフォルトの音質設定が 高品質で設定されてるだけだし
以前
>>662 の中見た記憶だけど
NMI使わず、$2002のreadでゲームループ作ってて
PPU書き込み作法めちゃくちゃだった
動かなくて当然
確かにそんなに正確ではないけど
VirtuaNESで動かないなら相当ヤバイ
でももし実機で動いたら動く方が正しいんだよな。
実機で2002のリードでVSYNC待ちループ作ると、 2002のリード中にVSYNCが着ても衝突でクリアされてしまい、 毎秒60回抜ける筈が、45回くらいしか抜けなくなるんだよね。
NMIルーチンって、割り込み禁止・許可か、レジスタ退避・復帰で囲むようにしなくても安全かね? なんか、昔、割り込みルーチンを書くときに、自分で割り込み禁止に設定したような記憶があるんだけど。
ハンドラ内で使用するレジスタの退避復帰は当然要るな。 他の割り込みをマスクするかは自由っしょ、 スタックを浅くしたい為に他の割り込みが多重化しないように抑制する場合もある。
そういやポーリングでvsync待ちしてるタイトルってあったのかな
素人がプログラムできる環境じゃねえから
749 :
名前は開発中のものです。 :2011/07/08(金) 18:15:56.41 ID:uG0IBAE+
スレ違いかもしれませんが、失礼いたします。 yychrで作成したキャラクタをアセンブラで指定する際は どのように指定すればよいのでしょうか。
え
ゆとりは100レス前も読めない
>>747 亀だが。
メインループをVsync割り込みルーチンの外に置いて、帰線期間中かどうかのフラグだけVsync割り込みルーチン内で立てて、
そのフラグを見て、メインループ側からグラフィックを描画する、PCで言うところの可変フレームレートみたいな実装のこと?
それなら、マイクロニクスが下請けした作品(例えば、カプンコが販売した1942とか魔界村)は、確かそんな感じの実装だったはず。
だから、ここの開発作品は、フレームレートやスクロールにムラがあるというか、要するにガクガクしてる。
マイクロニクスが下請けして作った奴(カプコンのアーケード移植モノ)とか、確かそういう実装だったハズ。
ポーリングつっても、単にVsyncを検出して、そこで描画するというだけなので、PCの可変フレームレートのゲームみたいに画面が波打ってる。
753 :
752 :2011/07/09(土) 14:49:27.79 ID:srxnGWiC
ごめん、なんか下書きまで一緒に書きこんでしまった。
スレチだと思いますが、ファミコンのソフトって、当時どんな機材で開発されてたんでしょうか? やはり出始めのPC-98あたりですか?
ファミリーベーシックとファミコン
回路図も紙に手書き。 ノートに書かれたコードをガリガリと書いていく。まずはアルゴリズムレベルで破綻していないかどうか精査。 大丈夫そうならリストをハンドアセンブルしていく。キャラクタも方眼紙に手書きして、16進表記へ手書きで変換。 ファミコンでの動作テストに移るためにSレコードフォーマットに変換しながら打ち込む。打ち込んだものはデータレコーダで保存しておく。 MZ-700のプリンタポートに繋がれた、基盤むき出しな手作り臭漂うライタでROM焼き。 わりと酷使される殺菌灯とタイマをくっつけた手作りイレーサ。 半泣きでROMライタとテスト基盤の間を抜き差ししてまわるデバッグ期間。 繰り返しているうちにライタへROM逆差し。こんな事もあろうかと、と取り出した予備のROMも逆差しして士気崩壊。 作業中うっかりこぼしたせいで持ち込み禁止になったUCC缶コーヒーとカップスター。 なんてこたぁない。全部俺の根拠レスな妄想。
>>757 一生懸命想像しながら読んだ俺に謝れよ(´・ω・`)カス
皆さん、アセンブラは何を使用されてます? 今でもNESASMが定番なんでしょうか。
761 :
名前は開発中のものです。 :2011/08/06(土) 16:38:50.63 ID:l3JzaYIg
cc65付属のアセンブラに、NESASMの.bankに対応するものある?
今使ってるPCを25年前の俺に渡したくて仕方がない。
今書き込んでいるのが25年前の俺自身かも。
>>762 苦労したみたいだな、よければ当時の惨状を聞かせてくれないか?
767 :
名前は開発中のものです。 :2011/08/20(土) 22:46:13.36 ID:qwhhZo9X
今使ってるPCを過去の自分に見せたら 未来に自分のやってることがいかに下らないかわかって ゲーム作りたくなくなる 今のFPSとかをファミコンやってるころ見たらもうファミコンなんか出来ない
日本語でおk
FPS ファミコン ベクトル全然違うもん並べてる時点でお察し
>>767 残念
高性能なPCを送ったとしてもその時代に今のゲームはない
つか今やってもファミコンは面白いよ
771 :
名前は開発中のものです。 :2011/08/21(日) 02:38:13.86 ID:JDIcjB+K
>>771 デモっていかにそれっぽく見せるかだから馬鹿正直にテクスチャで回転なんかさせないよ
見た感じではBGをラスターで縦伸縮して両脇の箱の縁はスプライトの移動でってところかな
実物見てきた もっと単純で全パターン用意して切り替えただけのアニメだった それでもファミコンとしてはスゴイ技術なんだけどね
ファミコンにはDPCMがあるやん 市販というか勝手に作ったROMだと実機でも64MBitくらいまでのものもあるから 垂れ流してるだけじゃ
>ワンダースワンのFF4は画面歪ませて立体演出 まあファミコンでもこれは出来るだろうな
ファミコンにAIRのOP移植で鳥の詩PCMで流してたのあったな
>>1 wsのff4は見たことないけどラスターを間引くってこと?
そういうレースゲームがファミコンにもたくさんありますね。
Vサインしてる箱の回転アニメは
アニメパターンはすべて画像としてBATに転送してあってチップのアトリビュートを
転送してアニメしてるんじゃないだろか。
この処理速度で計算してテクスチャを表示するなんてファミコンには不可能。
アニメは全部BATを書き換えてやってるんでしょう。
ファミコンはマッパーによっては画像をVRAM転送するまでもなくロム切り替えで
VRAMから見えるから絵の転送時間はかからない。PCEやメガドラでは出来ない芸当。
>>775 それの絵のバージョンが
>>771 なんでしょう。
音を鳴らすには
・波形データを直にDPCMへ。ざらつく。容量巨大に
・レジスタに直にログデータ。デモでよく使われる手法。容量大きくなる。
・MMLを内部で処理して音楽を流す。プログラム的に難易度が高くなる。容量節約。
市販ゲームからパクったMML処理プログラムとか組み込んで何か作ろうとしたけど
ダメでした。FCはゲームを作るにもデモを作るにも難易度が高すぎる。
>>778 何年か前にAIRデモのソース見たけど
レジスタ直接にログデータでした。
DB $FE,$10,$15.......みたいなのをPSGのレジスタに流し込む
>>779 ネームテーブル見れば一発でわかるっての
アクスレイかよ 一応凸型に湾曲してるように見えるけど、 わざわざ平面に戻そうとするからその時は凹型に見えるな
このFF4って画面上下別々にラスタースクロール処理してんの?
言ってる意味が分かるけど分からないフリをしてやると ライン毎のYスクロール値にVLINE-cosを適用してるだけだぞ
787 :
名前は開発中のものです。 :2011/10/23(日) 19:29:59.24 ID:81xQfjml
まとめwikiいらない?
要る
そろそろ、何か書き込まんとね。wiki
誰かDPCMのフォーマットについて詳しく教えてくれ
自分でリサーチすらもできない程度の奴が理解できるとは思えません
なんじゃフォーマットって。 アドレスと長さと音程を指定するだけだけど。 サンプルデータの1で+2、0で-2電圧が変化する。
794 :
>>791 :2011/12/04(日) 00:35:50.87 ID:2Aubg80L
>>793 フォーマットじゃないな、アルゴリズムか
例えばの話だけどの三角波を出したかったら、
7E 7E 7E 7E 7E 7E 7E 7E 00 00 00 00 00 00 00 00
のデータをループ再生すればいいってこと?
自分でwavファイルから変換するプログラム作って確かめろ 高周波が含まれていると追従できなくなるはず 低めの音だけに限る ところで最近のこのスレのゆとり住人は 市販ゲームをなぜ調べない? 製品にいくらでもヒントが眠っているだろ 自分でプログラム作る気がないなら 他人のDPCM変換ツールをブラックボックスとして使えよ
796 :
>>791 :2011/12/04(日) 03:30:11.97 ID:2Aubg80L
>>795 悪かった
もう一度全ての資料及びゲームのROMデータを調べなおしてみる
>>795 犯罪行為をすすめてんじゃねえよ、ハッカー気取りの糞が。
どこのメーカーも当たり前にやってたけど言葉にして言うもんじゃないよな
法律なんてあったっけ?
ダビングと同じで個人で使用するなら別に問題は無い。 ただし配った地点で犯罪。
リバースエンジニアリングは犯罪(キリッ って言いたいんじゃないの そんな法律はないが
805 :
名前は開発中のものです。 :2011/12/11(日) 17:35:03.96 ID:jaMIVBp3
嘘吐けこの野郎おまえらなんか違法ダウンロードしまくりだろうが私はやってませんみたいな態度とりやがって
807 :
名前は開発中のものです。 :2011/12/11(日) 18:17:41.58 ID:jaMIVBp3
>>806 romカセットを持っている状態で同じデータをどっかからダウンロードしたら違法?
ここは○ジ○ンなんかが出てくるより、5年以上前から自力で吸い出してる人しかいないがな。
この板の他のゆとりスレとは違うんだよ。
ということで
>>794 はキチゆとりということで二度と書き込むなよ。
>>730 需要なし、ゆとり症の典型コピペ。
>>809 判例が無いから何とも言えない筈だけど?
>>810 著作権法に照らし合わせると黒だったはずだが
自前で吸い出したのならともかく
>>811 だから、その根拠を言ってみてくれ。 絵画に例えてもいいぞ。
ここまでコピペ
つまらんから別スレでやれや
お前らはここをどんなスレにしたいんだよ
>>816 ときどき誰かが自作ソフトを投下してくれるのを哀願して待つ乞食供の巣窟
>>815 俺を待つのはいいけど、そんなにがっつきなさんなw
おじさんこまっちゃうよ
とりあえず、複製権読んで落ち着きなさい
ファイナルファンタジーの飛行艇に影が付いてるのがどうして難しかったんでしょうか
820 :
名前は開発中のものです。 :2011/12/17(土) 16:35:16.57 ID:VZSM0cA6
821 :
名前は開発中のものです。 :2011/12/17(土) 16:38:06.01 ID:VZSM0cA6
↑のファイルは転載とかご自由にどうぞ 役立たないだろうけど
>>820 fceuで動作しました
車のようなキャラが上下左右に動きました
報告まで
日記はチラシの裏でやってくれ
824 :
うろ覚えだけど :2011/12/18(日) 19:36:54.57 ID:4dl3E88q
>>820 >> mainLoop:
の下
>> lda $2002
>> bpl mainLoop
は要らない。
スプライトやBGに書き込むときは、$2001でそれぞれの表示をオフにすること。
BGのスクロールをリセット。
VBlankから出る前に表示をオン。
>> jmp NOTHINGdown
こういうやりかただと、この先キーの複数同時押しに対応できない予感。
if-elseの構造をよく考えて分岐命令を組み立てること。
825 :
名前は開発中のものです。 :2011/12/21(水) 18:32:49.55 ID:hZ3qyhWY
>>824 ありがとうございます。
キー入力は「キー入力からスプライトの変更」ではなく、
「スプライトの分岐にキー入力」と組み込むようにしました。
相変わらず、方向キーに従ってスプライトの向きが変わる所で苦戦しています。
流れとしては、
スプライト初期化の時点でリセット後に表示されるべきスプライトの初期化を行う。
NMI割り込み中に、各キー入力に対応したスプライトの表示や座標の設定、
タイルの選択を行う。
割り込み復帰。
という流れで合っていますよね。
>>825 各タイミングは良好。
VRAMやSPRRAMへの転送は出来ていた。
8x16のスプライトを使ってたのね。
move.spr内のタイルについて
#3, #5はいいけど
#7, #9, #11(, #13)の配置が合理的じゃないね。
奇数番号に配置するのは気持ち悪くないかな。
828 :
名前は開発中のものです。 :2011/12/29(木) 17:44:35.60 ID:iN0eE6WX
>>826 ありがとうございます。
タイルは奇数と偶数番号の違いによって起こる弊害がよくわからなかったので、このままにしてあります。
>>820 でいっていたように十字キーに合わせた向きにスプライトが変化させようとしています
苦戦しつつもコードを書いてみたのですが、
実際のところアセンブルしても、何も表示されないというどうしたらいいかさっぱりになってしまいました。
PPU制御レジスタのタイミング等も問題無いはずなのに。
ファイル類をupしますが、原因が分かるかたがいらしたら教えていただければ幸いです。
http://www.dotup.org/uploda/www.dotup.org2443609.zip.html ちなみに上記ファイル内の.nesを実行しても白い画面が出るだけです。
スプライトは8x8の4つつなぎで16x16を表示させようとしています。
また、ほかにもコード上の間違いなどありましたらアドバイスをお願いします。
教えて君で失礼しました。
>>828 うわぁ…めちゃくちゃになってる。
G-NESのデバッガやメモリビューアーなど使ってないな?⇒
>>455-458 jsrでサブルーチン呼ぶ方法と(jsrはスタックに復帰アドレスを積む)、
rtsでサブルーチンから復帰する仕組み(rtsはスタックから復帰アドレスを取り出す)、
jmp命令の置き方、
NESASMのラベルやローカルラベルの意味、
理解してないね。
いくらラベルを書いても、CPUは勝手にジャンプしてくれないよ。
ラベルはアセンブラだけが理解するから。
161-164行目
jsr .sprite2
.sprite2
こういうのが全部おかしい。
move3.asmはかなりの修正が必要なので、
古いソースを使うなどソースコードの規模縮小して、
jsrとrtsの実験して挙動を徹底的に理解してからだ。
830 :
名前は開発中のものです。 :2012/01/02(月) 13:09:32.77 ID:lSsFyPQm
831 :
名前は開発中のものです。 :2012/01/02(月) 17:47:39.54 ID:X3dxf4vn
832 :
名前は開発中のものです。 :2012/01/02(月) 19:09:13.80 ID:n94y3PyC
>>830 だけど、解決したかも
少ししたらソース上げます
日記でやってくれ
834 :
名前は開発中のものです。 :2012/01/03(火) 01:48:08.06 ID:+lUngSpx
>>834 そんなゴミコードいらん
他人の書いたコードを読むよりも自分でコード書いたほうがはるかに学習できる
つーか、ロダのファイルが流れたらそれまでじゃねえか
いいからお前はブログにでもしこしこ成果を書き連ねておきなさい
そのほうが後でトレースできるだろうが
ここはお前だけのスレじゃねえんだよ
透明あぼーんの機能って便利だな 835が見えない
単に自分のエゴを他人の為という大義名分で隠してるだけだよぉ
>>830 >>G-nes >>わからずじまいでした
日本語エミュのデバッガがわからないなら、基礎力ないね。
甘えるなら見限るよ。
ブレークポイント
ステップ実行
デバッガを自分でいじって使い方を体で覚えろよ。
わからなきゃググる。
数日で流れるアップローダもやめるように。
>>834 >>入力する向きによって移動速度が変わってしまうのはなぜでしょうか
そういうのを特定するのにデバッガを使うわけ。
ブレークポイントを張ってプログラムの実行を止める。
ステップ実行を使って1命令ずつ動かしてレジスタとメモリを観察する。
ブレーク張る該当コードがどのアドレスにあるかわかりにくいので、
.fnsファイルを見るか、
メモリビュアからわかりやすいように目印を入れる⇒db "AAAAAAAAAAA"とかnop nop nop nop nopとか。
move1〜5について
jmp mainLoop(←NMIベクタの示す先)っていうのは99.9%ありえない、sta $4014を繰り返してしまっている。
sta $4014はNMI直後に1回やるだけ。
>>www.dotup.org2463818.zip.html
move2〜5はスタックが崩壊(スタックオーバーフロー)している。
メモリビューアーで$100-&1FF見れば一目瞭然。
こんなのうpられても添削以前にゴミコードと呼ばれるオチ。
迷惑がられてることに気が付かんのか、このチビデブハゲは
スレタイ通りなんだから、こんな流れもいいんじゃね
このスレが
>>839 の成長を見守るスレだったのならそれでいいかも知れんが
ここは日記帳じゃないんで、そういうことしたいなら別の場所でやれと
何するスレなんだろう
個人的には応援したいが、
blogやwikiでやってくれた方が、後で同じ事する人の役に立つかもしれんね。
今のようにやってたら、ログは残ってもASMソースは見れなくなるし。
>>839 短期間に何度も「●●を直したからアップロードした。そっちを見てくれ」ってのは、スレの私用と取られてもしかたないよ。
スレには問題で詰まった時、ある程度動くものができた時にでもアップロードするといい。
擁護しているヤツに限って何の知識も持っていないのが笑えるw
私用、私物化ってことか なるほどね
私は、がんがん発言してくれる人がもっと多く出ないかな、と思っている。 むしろ、私物化してしまうくらいのパワーを持った人が出てこないかと。 ひたすらめげない、純粋な彼は凄い。839氏も。 最後に、俺が言えることは・・.equは=で代用できるということと、 Vblankは2回待つ取りこぼしがなくていい感じということ位です。 あんまり冴えないけど。
しまった,839ではなくて838氏であった。
そりゃ単なるエゴだよ
持たざる側が言っても説得力ないっす
ならおれもゴミとおっさんの思い出話をうpして駄レスで埋めていい? 一応モノはあげてるから私物化しても問題ないんでしょ まあ、文字通り中身はただのゴミだけどな
暴れてる奴はただの基地外なんだから黙って透明あぼーんにぶちこめばいい
MMC5のサンプルって、もう無いんでしょうか? 今、作ってるんですけど、どうしてもBank切り替えで止まってしまうんで 参考にしたいんですが
855 :
名前は開発中のものです。 :2012/01/07(土) 23:16:36.56 ID:K3N5UYpY
>>854 nesdevのフォーラムのどっかにあったような気がする
間違えてたらごめん
止まるってそんなに特別なことしてないだろ 根本的な把握不足じゃね?
PRGのバンク切り替えごときで止まるなら 先にMMC1でもやっとけ $E000-$FFFFだっけ?をチェンジしたときにどういう構成で.asmに書いておかなきゃならないか から学習しろ
bank0から3は切り替えられるんだけど 4を切り替えると止まるんです MMC1とMMC3は、もうやりました
>>858 nintendulator
のデバッガを使ってみたら?
どうせ切り替えた先のバンクに割り込みベクタ書いてないとかいう話でないの?
実行中の領域切り替えるとそれ用の書き方していないと大概暴走するけど まさかこんな初歩的なことじゃないよね。 どんなレベルの人かわからないから一応書くけど、理解してたらスマン。
単純すぎるミスでした バンクの数え間違いでした すいません
いい加減このスレの方向性をきめろ アセンブラを知ったばかりの初心者の質問にも答えるようなものなのか、 初心者お断りの硬派プログラマーのためのようなものなのか
初心者から玄人までどうぞ。
メトロイドのソースがあったんだけど これ見たら勉強になるよね?(´・ω・`)
それぞれが節度ある行動をしてくれれば問題ない そもそも決めたところで出てってくれるのか? それならID:Gg6iC/E0がいないスレに1票
ここが
>>864 の言う通りのスレだと思ってたら
なんか
>>794 あたりから荒れだして
一体なにするスレなのかよくわからんってだけ
ちょっとイライラしてたのは謝る
進行遅いんだしなんでもいいんじゃない?
そいつのレベルに合わせて教えるだけ。
最低限試そうともしないで甘えるなら突っぱねる、
それはいつの2ちゃんでも同じ掟だ。
>>794 の場合、NesDevの資料読んでないか理解出来てないし、
>>797 のソース読んでないのが明らかだったから駆除された。
本当に厳しくいうなら「NESエミュのソース読めば?」
6502の命令の挙動が分からないなら、
6502の資料に乗ってるC言語のサンプルを見る、
x86〜i386、CASLUあたりのアセンブラ関連書籍を見る、
本来の最低ラインだぞ。
そこまで努力するのは大変だから、多少は近道ヒントを出すがな。
ファミコンで3Dワイヤーフレーム表示を実現してるのってElite以外にあったのかな GBのXとかX68kのスターウォーズとかPC-88のシルフィードとか 個人的にワイヤーフレーム表示は未来を感じさせるから好きだ
ただの擬似ワイヤーフレームです 好きな割に何もわからないのですね
>>872 擬似だろうと本物のワイヤフレームだろうと、
「ワイヤフレーム表示を行う」ことに意味があるのがわかっていないようだなw
意味も意義も無いからな
プレイヤーには内部処理とか全く関係ないからな・・・
意味以前にデザインの問題ならここで語る必要ないよね
夜遅くなってしまいましたが、nsfのmckアプロダにならって
プログラム用のアプロダを設置してみました・・・。
ぜひ使ってみてください。ここなら、しばらくはサンプルを残せるはずです・・・。
ttp://loda.jp/2a03/
どうなんだろうな このスレにそこまでプログラム等をあげるやつがいるかどうか
作品を出し合うmckスレと違って デバッガすら使えない底辺層が動きませんって持ってくるだけだからなあ キチンと作ってるなら自分で公開するだろうし
どんどん出してゆくきっかけが大事だす。 投稿する勇気とプログラムを作り遂げるやる気があれば怖くない!
ろだ乙ー。
折角だから、昔ちょっと思いついてデモを作ったらNNNesterJでしかまともに動かなくて
仕様調べるのめんどくさくてそのままにほったらかしてた物を上げてみる。
ttp://loda.jp/2a03/?id=3 8×12の文字が出るだけ。ゴミが出るけど気にしない。
やっぱりDLしてる人もUPしてる人も少ないね LODA.JPも終わるみたいだし・・・・
「2a03」じゃ、どっかの音楽サイトみたいじゃん。
よくドラクエを作る時にフォントが足りなかったって聞くけど 後期の作品だとどの作品見てもフォントが足りないようには 見えなかったんだけど、何か解決策が見つかったの?
容量が解決しただけじゃね?
>>887 その辺がよく分からないんだけど
結局グラフィックに割り当てた分、使えなくなるフォントが出るんだから
容量が増えても解決しなくない?
解決なんかしちゃいない。 平仮名は全部使えるが、カタカナは使い回しまくり。
IRQ割り込みをうまく使えば、 なんとかなりそうではあるな。
このスレ的に部外者なら仕方ないが パターンテーブル見てこないゆとりバカうぜえ
類は友を呼ぶから底辺層隔離した方がいいわマジで
まず
>>891 は最高に頭が悪そうだから隔離対象だな
そして誰も居なくなった
このスレってゆとりとおっさんを除いたら 誰もいなくなると思うの
20代後半以前と30代前半以降をオミットするのか?
世代関係なく日記書いたり場をわきまえないカスが叩かれる いまのところそれが若年層に多く見られるってだけ まともな奴だっているだろ?いないの?
>>893 ヒント教えてもらっても、礼をいうどころか、こうやって捨て台詞吐いて勉強をやめるのがゆとり。
>>898 ヒントどころかまるで間違った発言がか?www
こうやって自分が間違っていることにすら気付かないで
偉そうに勘違いしているのがゆとり。
ゆとりって何?2ちゃん用語?
な、自分で調べられないド低脳が居着いてるだろ
インダイレクトY(Xも)を使わないと、てっきり960回ネームテーブルに出力できない と思っていたが、ギコ猫さんのソースを少し改造したやつで lda #$20 sta $2006 lda #$00 sta $2006 lda #$01 ; 1番(レンガ) ; 120*8=960回出力する ldx #120 ; Xレジスタ初期化 ldy #8 ; Yレジスタ初期化 .loadNametable2 sta $2007 ; $2007に書き込む dex bne .loadNametable2 ldx #112 ; Xレジスタ初期化 dey bne .loadNametable2 とやれば出来ることが分かった。 よく考えればC言語で2重ループで掛け算の計算できるから当たり前といえば当たり前だが
九九の掛け算ね。
>>904 お前も相当馬鹿なんだな
少なくとも
>>887 は正解ではない
>>889 が最初の正解
なんでこんなレベルが低いのばかり住み着いちゃったんだか
そりゃ当然、類は友を呼ぶってやつだろうな
なんでみんなそんなにイライラしているの?
CHRRAMは特殊なのを除いて2KしかないからIRQからのバンク切替はできないし 町中とかウインドウ方式だとそもそもライン単位では無理
旧メーカー社員が紛れてるんだろ 腹いせだよ、腹いせ
>>905 解決したとは読み取れないように書いたと思うんだが。
MMC5のデカいフォントのゲームでは
「容量が解決」も間違ってはいない。
>>902 もっと簡単に
sta $2007
をいくつか並べのもアリだよ
ファザナドゥなんかはその会話で使うフォントだけをCHRRAMに転送してるね 一つ一つのメッセージが短く少ないならこういう方法もアリだけど ドラクエほどメッセージ量が多いと逆にレスポンスが悪くなっちゃう 8bit機は制約が大きいからデザインとプログラミングは不可分だよね
913 :
名前は開発中のものです。 :2012/02/11(土) 16:40:46.31 ID:XH8T0Uvm
質問失礼します。 現在シューティングゲームを作ってみているのですが、BGの当たり判定で止まっています。 @ A B C とブロックがあった場合、スプライトの弾がぶつかったら消滅というコードをくんでいるのですが、 スプライトと違い座標を用いた方法以外で、衝突判定を見る方法はないものでしょうか ブロックと弾にカウンタを置いて、弾のカウンタとand演算等で分岐をとも思ったのですが、 ブロックの数によっては汎用性がなさそうなので、なにかあれば教えて下さい
>>913 座標を使う以外にやりようはない。
基本は当たり判定を取りたい座標をブロックのサイズで除算。
除算をまじめにやるとしょぼいCPUでは遅いので、ブロックのサイズを
2^nにしてシフトで出来るようにする。
すり抜け対策とかドット単位当たり判定とかは説明がめんどいので
考えてくださいw
915 :
名前は開発中のものです。 :2012/02/11(土) 23:11:04.33 ID:XH8T0Uvm
>>914 あぁなるほど徐算でしたか、感覚としては因数分解みたいな感じですね
ありがとうございます。
一応確認なんですが、私は当たり判定ではcmpによるネガティブフラグで判定をしていますが、その調子で大丈夫ですよね
実際に作って確かめてみることが一番でしょう 何事も試行錯誤です
ずいぶんマニュアル人間だな ゆとり教育の弊害か
918 :
名前は開発中のものです。 :2012/02/12(日) 00:56:09.91 ID:gUUDEgxL
>>917 インデックスレジスタを用いた擬似的乗徐算を乗徐算と意識していなかったから
と言い訳しておきます
胸張って言い訳する神経が理解できませんが逆ギレみたいなものなのでしょうか?
ちと気になったんだけど除算の除の漢字はわざと間違ってるんかな?
既に知っているやつが居ないかどうか確かめるのはいいことだ。 各人が車輪の再発見をしなきゃいけないなんて無駄もいいとこ。
持ち歌がまたひとつ消えてしまった遠藤
>>912 そういやGBのゼルダがそのやり方っぽいな
というかもしかしてGBはみんなそのやり方なのかな
GBでカタカナに制限があるゲームって見ない気がする
>>923 GBはファミコンでいうCHR-RAMしかないからじゃないかな
カートリッジにCPU側のバスしか出ていない設計だったかと
>>923 キャラクタをROMとして提供したゲーム機はファミコンくらいでしょう。
任天堂ハードにおいても。他ハードは、VRAMに展開する方式だし。
あとはネオジオくらいかな 家庭用って言っていいのかわからんけど
ラスタスクロール割り込みでCHR-ROMバンク切り替えをして256パターン 以上を表示できる仕組み登場したことはおもしろいですわ。ファミコンが 発売された当初は想定されていないことだったでしょうけど。これがあった から、10近くは持ったのでは?と思っとりますよ。
通信アダプタでもその仕組みはあったよね。 アダプタに16KBのCHR-RAMと漢字ROM(第一水準?)を搭載したおかげで、 標準で日本語表示と4色のフルグラフィック表示に対応してた。 (バンク切り替えのタイミング管理の方法は知らないけど、 多分ハードウェア側で任意のラインでIRQ生成する機能があったと予想) ゲームソフトがでなかったのが非常に悔やまれる・・・ ディスクシステムを使える機能(?)も結局使われてないし・・・ これを見たとき、ファミコンとディスクシステムとキーボードと通信アダプタが 合体すれば、どんな楽しみ方ができるだろうと妄想してたよ
ラスターでCHRバンク切り替えるだけだと1ラインごとに256パターンしか 出せない気がするんだが、それでどうやって漢字表示してたんだろう 結局キャラクタ自体も書き換える必要があるのかな
ファミコンの解像度は256x240で、 1パターンは8x8ドットで構成されるのだから、 ファミコンの一つの画面上に出せるパターン数は 32(横に並ぶパターン)x30(縦に並ぶパターン)=960パターンとなる。 ファミコンのPPUが一度に参照できるキャラクタは256個までなので、 画面描画中に3回バンク切り替え等の処理をする必要がある。 (大体32、64、128ライン目描画後のH-BLANK時) 漢字自体は、CPU空間に存在するROM・RAMからデータを読み、 I/Oを通して、PPU空間のRAMに書き込む。
画面全体を重複なく別々のキャラクタで敷き詰めておいて 定義側を書き換えて表示させるってことか
最近プログラマじゃない人種が居ついてるな。
お前の言うプログラマってのがデバッガすら使えないで動きませんって言ってるレベルの奴なら そうなんじゃね?
935 :
名前は開発中のものです。 :2012/02/23(木) 22:29:16.92 ID:9OQqfVZC
任天堂が大嫌いで反社会的な行為としてROM基板含めて自作ファミコンソフト作ってるわ
決死隊ですか
>>929 ラグランジュポイントも8K以上のCHR-RAMを積んでいたのかと考えている あの画像と、日本語フォントは512パターンで生成できなそう。VRC7はMMC5 の如く、Ex-RAMを使って2バイト指定でBGパターンを指定できるみたいなこと はできなそうだし
ラグランジュポイントは普通の8KiBのCHR-RAM仕様だよ。 文字関係(数字、ステータス表示に使う最小限の英字、ひらがなとカタカナを全文字、その他少々)で、都合約2KiB使ってる。 あとの2KiBが、マップとかのBG側のグラフィック用だけど、不足する場合でも、文字を置いてあるバンクは基本的に温存。 そのかわりスプライトのパターンを2KiBしか使わない。 それで浮かせたCHR-RAM領域を、バンク切り替えでBG側に持ってきて間に合わせてるだけ。 ヴィジュアルシーンのグラフィックとかは、デザインや演出上の工夫で、技術的に特に変わったことはやってない。
939 :
938 :2012/02/25(土) 20:03:31.39 ID:Abu3C86F
補足
当然だけど、常に
>>938 みたいにスプライトのパターンをケチって間借してるわけじゃなく、
普通にBGとスプライトで4KiBずつ分けあって、単に画面が暗転した際にパタンテーブルを書き換えるとか、
平凡にやりくりしてる状況の方がむしろ大半なので念のため。
941 :
名前は開発中のものです。 :2012/02/27(月) 17:29:23.40 ID:d2Rr2gFY
必要もなくモジュール内でJSR/RTSを多用してクロック浪費してるプログラム見ると、無性に書き直したくなってくる。
モジュール化
変換じゃなくて壊す側がおかしくないか?
>>941 ・CrashBlock_Routine:でbcs, bccを使ってるのが敗因。 0<= 弾の中心座標 <8 の論理を構築できてない。
bpl, bmiを使った方が大小関係が直感的に分りやすい。
その際、lda <Bullet_Y_Center → cmp Block001y,x のように不等式で挟まれる側を先にレジスタにロードした方がやりやすいはず。
またadc, sbcと違い、cmp系の前にはclcは必要ない。
・ゲームループがまずく、infinityLoop:内のルーチンの実行回数のフレームレートが一定でない、不安定動作のおそれあり。以下のループが無難。
__ここでNMI有効にせよ__
infinityLoop: ;VBlankを待つ間は無限ループ
jmp infinityLoop
mainLoop: ;メインループ
__ここでNMIを無効にせよ__
;BGとスプライトの表示をOFF
lda #%00000110
sta $2001
lda #$3 ;スプライト描画のためのDMA転送
sta $4014
jsr BlockDisappear ;ブロック消滅;$2006-$2007への書き込みはNMI直後に、VBlankが終わる前になるべく早めに
jsr SetScroll ;スクロールセットもVBlankが終わる前になるべく早めに
;BGとスプライトの表示をON
lda #%00011110
sta $2001
jsr PadGet ;パッド入力チェック
jsr NormalBullet ;弾丸発射
jsr PlayerSpriteMove ;機体の移動
jsr CrashBlock ;ブロックと弾丸の当たり判定
jsr BulletPositionConvert ;弾丸の座標をタイル番号に変換
__ここでNMI有効にせよ__
NMIEnd:
rti
946 :
名前は開発中のものです。 :2012/03/22(木) 16:43:43.53 ID:NBlMXw6A
簡単にROM作る方法ない?
947 :
名前は開発中のものです。 :2012/03/22(木) 16:44:38.63 ID:NBlMXw6A
簡単にROM作る方法ない?
それは物理的にかい?
949 :
名前は開発中のものです。 :2012/03/24(土) 23:29:09.53 ID:pi7aftbx
そう言う感じ
950 :
名前は開発中のものです。 :2012/03/25(日) 01:14:37.28 ID:c32Eu5AG
形式判明してるカセット分解して、ROM引っこ抜いて、代わりにソケット取り付けて、ROMライタで焼いた自作ROMを差し込む。 という話じゃなくて?
951 :
名前は開発中のものです。 :2012/03/25(日) 17:19:57.67 ID:W0Y8frQC
誰かいますか?
ttp://ll.la/Rv~l ファミコンプログラミングがやりたくて、
試しにN106で全画面表示をやってみたんですが、
G-NESだとうまく表示できなくて……
VirtuaNES、nestopiaだと期待通り動くんですが……
上のURLにソースコードと、各環境で実行したSSをupしました。
詳しい方、原因とか教えてくれませんか?
G-NESのエミュレ−トが不完全なだけ
953 :
名前は開発中のものです。 :2012/03/25(日) 23:12:13.63 ID:Ih97tOjy
>>947 自作のnesをfdsファイルに変換して、fdsloadrでRAMアダプタに転送したことならある
(市販のnesをfdsファイルに変換するのは無理っぽい)
>>951 です。
>>952 返信ありがとう。
環境によってIRQカウンタの進み方が微妙に違うっぽいです。
初回にとりあえず1フレーム描画して、IRQカウンタの速度を取得しようと思います。
あと、
>>951 にupしたコードだと、VBLANK終了待ちに$2002のbit7を見たりしてますが、
これじゃVBLANKの検出ってできないんですね……。
(x,y)=(0,0)にゼロスプライトを置いて、それを見るように変えています。
なかなかむずかしいですね……。
何がしたいのか知らんが実機の挙動が唯一の正解だろ
スレ違い
ブランチ命令って、ブランチしてもしなくても2(+1)サイクルなの?
(+1)と書いてあるじゃん
いや、(+1)はページ境界またいだときの増分サイクル。 言葉足らずだったごめん。 ページ境界をまたがないとき、 ブランチしてもしなくても2サイクルなの?
分岐なしで素通りしたら、2サイクル(オペコードと続く相対アドレスの読み込みにかかる時間) ページ境界跨がない分岐をしたら、3サイクル(↑に加えて、下位8ビット分のアドレス計算で1サイクル追加) ページ境界を跨いで分岐をしたら、4サイクル(↑に加えて、上位8ビット分のアドレス計算でさらに1サイクル追加) だったはず。
うおおお詳細な説明ありがとう 何故、一部の命令でページ境界またぐと 1サイクル増えるのかも知らなかったんで、勉強になった そういう仕組みだったのね
963 :
名前は開発中のものです。 :2012/04/23(月) 15:19:07.79 ID:/vOkL049
質問なんですが、マッパー0にて PRGROM領域を32KBにして $C000以降にもプログラムを書きたい場合には、ヘッダを inesprg 2 にする以外には どうすればいいでしょうか
プログラム領域を8KB単位に区切って.bankを指定してやればいい。 .bank 0 .org $8000 <ここにコード書く> .bank 1 .org $a000 <ここにコード書く> .bank 2 .org $c000 <ここにコード書く> .bank 3 .org $e000 <ここにコード書く>
>>964 ありがとうございますッ
勉強になりましたッ
みんな生きてる?
いや死んでる
生きてるよ。
2ヵ月ぶりか。
じゃあ、お言葉に甘えてスルーさせていただく
このスレで発表したら自分の捨てブログみたいなのを一緒に貼ってもらって コメントはそっちで付けるという風にしたら? またキチガイ君が暴れだしちゃうから
>>970 右から2列目のブロックがアタリ判定が無くて消せない
何も無いところでボールが跳ね返る
>>973 プレイありがとうございます。
>>右から2列目のブロックがアタリ判定が無くて消せない
何故、ブロックを固定式(左上から5行、32列)
にしたかというと、1つの8x8ピクセルのブロックから当たり判定を行うにあたり、
全然バラバラに配置したブロックだと座標を取得しずらかったからです。
なのでメモリの$300と$400に160個ずつ座標が取得してあるはずです。
その値の代入の際に不手際があったのだと思われます。
たとえば0から+8ずつ32回代入すると一番右端のブロックは256になってしまいますね。
>>何も無いところでボールが跳ね返る
これは、仕様です。今のところ開発では半分ほどゲームオーバーの処理を終えてますが、
アップロードするかは未定です。
な、言うだけムダだろ?
何が な なんだ 誰に同意を求めてるんだこのキチガイは
MMC5の ネームテーブル拡張とか 8x8単位のパレット指定とか ハードウェア的にどうなってるのかさっぱりわからん $2000のbit6が関係してるのかな?
おお、サンクス $2000のbit6は関係ないんだね 2C02の14-17ピンにこんな秘密があったなんて・・・ ネームテーブルのインデックス拡張はまあ納得 確信はもてないんだけど、8x8単位のパレット指定は PPU内部のRAMにアクセスする時も アドレスラインから信号が出ていることを利用してるのかな? $3F00から$3F1Fまで全部#$00にしてれば MMC5からデータを出力してもいけそうな気がする どちらにせよMMCはReadEnable信号かアドレス線かその辺を利用して PPUと同期してるとしか考えられないな・・・・ 結構勉強になったわ
ごめんミス 8x8単位のパレット指定は $3F00-$3F1Fとそれほど関係ない
自己解決したか?一応書く…
>>979 パレット拡張のところは勘違いしてるっぽいな。
MMC5カートリッジが$3F00-$3F1Fの値をいじる訳ではないし、その制限の壁は越えられない。
$3F00-$3F1FはPPU内部だけで参照出来る(あなたが言ったような例外もあったはずだけど利用はできないよ?)。
ttp://nesdev.parodius.com/mmc5-e.txt <ExGrafix Mode>
bit PPpppppp
PP: use character palette number
pppppp: use background CHR-PAGE number index=4k
たかだか2bitのパレット指定。
ということで
Memory fetch phase 1 thru 128
-----------------------------
1. Name table byte
2. Attribute table byte
3. Pattern table bitmap #0
4. Pattern table bitmap #1
の2.のタイミングでMMC5カートリッジがAttribute table byteを出力してるだけだと思う。
8x8毎にAttributeを指定できるというだけ。
こっちの方が解かり易い?
ttp://wiki.nesdev.com/w/index.php/PPU_rendering
中本さん見てる?
ありがとう
>>979 を書いてたときなんか勘違いしてた
朝風呂入ってもう一度考えてたら
>>980 ということになった
とりあえずこれで理解できた・・・と思う
そんな英文解説をどうやって理解できるの? すごいわ。
専門用語がわかれば中学英語程度でも理解できる