トップページgamedev
985コメント311KB

ファミコンのプログラム3

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/06/23(月) 17:38:05ID:z53SrIuZ
前スレ、何もしねぇカスどもの集まりだったよな。
でも900すぎてホンモノが現れたみたいだ。
もう要らねぇと思ってたけど、そいつらの為に立てたよ。
0232名前は開発中のものです。2008/12/29(月) 00:36:04ID:JNAPhPPR
>>231
ココ初めて見た。サンクス
0233名前は開発中のものです。2009/01/10(土) 14:36:02ID:jxmICHnb
良レス
0234名前は開発中のものです。2009/02/08(日) 16:39:01ID:AcDwliJa
仕様変更の度にソースと共にコメントも修正してろ
0235名前は開発中のものです。2009/02/14(土) 19:22:45ID:Q9gv3Vek
YYCHRのβ版がバージョンうpされたようだ
0236名前は開発中のものです。2009/02/16(月) 02:56:03ID:Ua/ZIGn1
そしてシェアウェア化ですねわかります
0237名前は開発中のものです。2009/02/21(土) 22:30:32ID:fhDQi3M3
宣伝乙
0238名前は開発中のものです。2009/03/04(水) 17:36:48ID:mwtRXqun
何で過疎やねん
0239名前は開発中のものです。2009/04/22(水) 04:00:58ID:iH0Q1fJs
>>225
今更ですが乙です!
使わせて頂きます
0240名前は開発中のものです。2009/05/02(土) 19:15:37ID:5W0/4vOE
CPUの「6502」はなんて発音するの?
ろくせんごひゃくに?
ろくごーぜろにー?
0241名前は開発中のものです。2009/05/02(土) 20:45:58ID:nxSoSsQc
ろくごーまるにー
0242名前は開発中のものです。2009/05/02(土) 22:40:44ID:Cqz+iWUx
しっくすてぃふぁいぶずぃろつー
0243名前は開発中のものです。2009/05/05(火) 18:03:37ID:18HM39Dn
ろッごッまるにッ
02442392009/05/10(日) 01:56:29ID:Dv3WGxdX
Pictochr使ってるのですが,
.namファイルに属性テーブルの内容まで
反映されてるんですよね??

元画像として用意したBMPのパレットを設定して,
pic2chrに読み込ませて,.nam吐き出してみたんですけど,
属性テーブルに当たる部分が,0で埋まってるんですけれど(´・ω・`)

僕の使い方が間違っているのかな(´・ω・`)
02452252009/05/11(月) 22:58:59ID:CVfuqL1F
>>244
PicToChrの手抜きで、属性テーブルは設定されません。
ツール作成中に需要なさそうだと気付いて、
パレットセットの識別処理はTODOに入ったまま放置されてます。
なので、色付けはNAMを編集できるKZ-NESSAとかYY-CHRを推奨。
02462252009/05/12(火) 01:00:42ID:7ApaCoOy
せっかくの機会なのでPicToChrを更新しました。
・NAMの属性テーブルが作成されます。
ttp://www.geocities.jp/yy_6502/temp/PicToChr.zip
02472392009/05/12(火) 22:39:13ID:xecIPyO2
>>246
ばっちりです!これは神ツール!
これで,KZ-NESSAで,右クリック連打をしなくて済みます(〃゚ω゚〃)
ありがたく使用させて頂きます.
0248名前は開発中のものです。2009/05/25(月) 08:06:54ID:qbEjqNnA
ナイトガンダム物語とかモンスターの色数多いけど
スプライトを被せたりしてんのか?
0249名前は開発中のものです。2009/05/25(月) 10:11:45ID:1XNeFGCK
nesdev.parodiusの
Palette Test by Loopy
が参考になるかもしれない
0250名前は開発中のものです。2009/05/26(火) 14:12:46ID:MLQQvawn
擬似的に色増やしてんのか
0251名前は開発中のものです。2009/05/30(土) 16:19:51ID:mYny3XQA
ttp://www.nesicide.com/

なにこれ
02522392009/05/30(土) 21:10:21ID:aKyCYp6h
>>251
統合開発環境だと思うけど,
もう,ツールとかで事足りてるし・・・・.
まあ,ひとつで全部できるのはいいけど.
0253名前は開発中のものです。2009/05/31(日) 05:20:01ID:eMFx0MES
これアセンブルできるわけ?
0254名前は開発中のものです。2009/05/31(日) 16:53:37ID:3MWn0w3p
普通に書いてあると思うが?
これ1つで自作ROMを作る環境が整うのか、慣れればいいかんじかもね
0255名前は開発中のものです。2009/05/31(日) 18:05:14ID:xO3NKMeU
もう実際にゲームを作る環境がある人には
あんまり関係ないとおもうけど
これからファミコンプログラムを学ぼうとしている人とかには
色々と勉強になっていいかもしれないと感じた
0256名前は開発中のものです。2009/06/03(水) 23:36:35ID:4LABg1SD
昔コーエーのロムやたらでかくて値段もしたけど
あれどういう効果があったんだ?
0257名前は開発中のものです。2009/06/04(木) 02:00:49ID:BSRtqo/R
おそらく漢字ROMと記録用のSRAMのせい。
0258名前は開発中のものです。2009/06/04(木) 16:05:31ID:arMalv0S
SRAMが3個も乗ってる。
VRAM、ワークRAM、セーブRAM。
それプラス、プログラムROMにマッパーICと電池。
0259名前は開発中のものです。2009/06/04(木) 20:04:15ID:BYVCUhRP
いろいろあったんだな よくわからんのもあるが ありがとう
0260名前は開発中のものです。2009/06/06(土) 12:22:57ID:oYreZ+1t
ジャレコのがでかいのはなんでだ?蓋までついてたよね。
0261名前は開発中のものです。2009/06/06(土) 13:00:40ID:TjpS3E1/
>>260
蓋付いてたなw
中身スカスカだった気がする
0262名前は開発中のものです。2009/06/07(日) 08:21:21ID:/sCYDqPf
【ジャレコ】ジャレコ社長加藤タカのブログが祭り状態で2ちゃん管理人から有名人扱いされ記者になった社長は勘違い野郎決定
http://anchorage.2ch.net/test/read.cgi/mnewsplus/1244311374/
0263名前は開発中のものです。2009/06/17(水) 22:55:54ID:40EJvVFD
PPCMacでもNESASMでコンパイルできるがエンディアンの違いを考慮してないせいでROMがおかしくなってしまう
0264名前は開発中のものです。2009/06/18(木) 11:29:14ID:1CmcOJWc
それは初耳。
0265名前は開発中のものです。2009/07/25(土) 16:56:01ID:ud14DMaW
ゼロページなどにDMAスプライトのラベルのアドレスを格納したいのですが、
ラベルのアドレスはどうやって取得できるのでしょうか?
0266名前は開発中のものです。2009/07/25(土) 18:47:17ID:/7anL036
使ってるアセンブラによって書式違うんじゃないの
0267名前は開発中のものです。2009/07/25(土) 23:15:43ID:BI6oV1py
すみません。環境書くの忘れてました。
アセンブラはギコ猫のところで落とせる奴を使ってます。
0268名前は開発中のものです。2009/07/26(日) 03:25:35ID:wf4U4AhA
したらこんな感じになる。
LDA #LOW(LABEL)
STA <$00
LDA #HIGH(LABEL)
STA <$01
0269名前は開発中のものです。2009/07/26(日) 03:30:35ID:aWja0TvG
そもそもDMAスプライトのラベルってなんだよ?
0270名前は開発中のものです。2009/07/26(日) 03:37:34ID:7J5hp3iM
テーブルでも作ってるんじゃないの
0271名前は開発中のものです。2009/07/28(火) 01:00:30ID:6SkBGXqx
>>268
遅れながらありがとうございます。

>>270
アドレスが指す先の値を変更できるかと思ってポインタみたいなことをやろうとしてます。
案の定うまくいきません。


上位ビットと下位ビットを別々にした奴って結合した後、その先にある値をインクリメントってできませんか?
0272名前は開発中のものです。2009/07/28(火) 01:15:06ID:nhVlfm/d
インダイレクト・インデックストY
0273名前は開発中のものです。2009/07/28(火) 13:42:42ID:AQ/Al0Gm
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
0274名前は開発中のものです。2009/07/28(火) 22:13:26ID:6SkBGXqx
>>273
とりあえず動くようになりました。
ありがとうございます。
0275名前は開発中のものです。2009/09/11(金) 21:10:53ID:KvLrAtTZ
求む! 新作公開!
0276名前は開発中のものです。2009/09/11(金) 22:05:39ID:C1hTpYxS
ファミコンの事色々調べていたらこんなスレッドもあるんですね。
研究の参考にさせていただきます。
0277名前は開発中のものです。2009/09/25(金) 17:29:27ID:+A5mRPb0
マッパーの資料ってどっか転がってないかな?
0278名前は開発中のものです。2009/09/25(金) 20:17:17ID:ZId529B1
>>277

>>2
>NES info, programs, and demos
>http://nesdev.parodius.com/
0279名前は開発中のものです。2009/09/30(水) 08:22:27ID:wk39jWmw
THANK YOU!!どうも
0280名前は開発中のものです。2009/10/10(土) 01:22:57ID:9GDsJwhY
ゲームを起動して、いちばん初めに実行される命令はどれなのか判りません
どのゲームも共通の命令なのでしょうか?
0281名前は開発中のものです。2009/10/10(土) 03:12:49ID:Dk0OGcQZ
ギコ猫読めばなんとなくわかるんじゃない?
0282名前は開発中のものです。2009/10/10(土) 06:20:48ID:WKEp6tuZ
質問が意味不明だが割り込みベクタのことだろうかとエスパーしてみる
0283名前は開発中のものです。2009/10/10(土) 07:43:05ID:9GDsJwhY
ギコ猫読んできました。
電源投入時およびリセット時はまず↓の命令が実行され、

;Reset
FFFC : dw $****

$****のアドレスにジャンプして、そこから開始されるという感じでしょうか
0284名前は開発中のものです。2009/10/10(土) 07:48:43ID:Vn2J09v8
ベクターは確か、NMIとRESETとIRQがあったですねぇ。
0285名前は開発中のものです。2009/10/10(土) 10:03:24ID:qlb9kbOk
ttp://www.geocities.jp/team_zero_three/6502/index.html
ここの方がちゃんと書いてある。
0286名前は開発中のものです。2009/10/10(土) 10:39:53ID:Lr3bfIsK
>>280
要はどのメモリアドレスかが分からんのだろ、違うかな?

普通プログラムは数字の若いもの($8000-)から書いていく
0287名前は開発中のものです。2009/10/10(土) 10:59:57ID:9GDsJwhY
いえ>>282さんが回答されていた割り込みベクタというものを知らなかっただけでした

とあるゲームを逆アセンブルして、$8000から眺めてみたものの
どれがプログラムでどれがデータか判別できなかったので

いま調べているゲームはFFFC : dw $C000、となっておりました。ありがとうございました
0288名前は開発中のものです。2009/10/13(火) 10:39:17ID:1ZWurkSg
拡張音源って新規で作ってるROMには導入出来ませんか?

サウンドは一度ROM内を通ってから出力されるんですよね?
0289名前は開発中のものです。2009/10/13(火) 12:45:17ID:1ZWurkSg
>>288追記
VRC5などの特殊チップでも可能なのでしょうか?
0290名前は開発中のものです。2009/10/13(火) 21:42:36ID:0xP/F+Hc
VRC5は難しいんじゃないだろうか
0291名前は開発中のものです。2009/10/14(水) 14:03:22ID:OwKEIqtP
>>288
意味が分からない。 サウンドがROMを通るのはあってる。45,46ピンに。
0292名前は開発中のものです。2009/10/14(水) 21:28:18ID:vGyVljJ7
>>288
mck wikiあたりの情報が有力なんじゃないかな?
VRC6とかNamco113なんかは特殊チップだからプログラムとは別にライブラリ(?)
っぽいのが付属してるのか、なんかは知らないが。

あとはその新規で作ってるROMってのに組み込む方法…だよな。
いずれにしても特殊チップ関連は資料がない…
0293名前は開発中のものです。2009/10/14(水) 21:44:50ID:5IZSB7mk


VRC6やVRC7で作るって意味じゃないのか?
悪伝のROMだけEPROMと差し替えたりするんじゃないのか
でなけりゃTNS-HFC2を入手した方が早いと思うが
0294名前は開発中のものです。2009/10/14(水) 22:56:34ID:vGyVljJ7
あぁ、そういう事なのか?w
俺はてっきり自作NESファイルで拡張音源を流したいという事だと思てたわ
滑稽w

てかどうなんだ?>>288さんや?
0295名前は開発中のものです。2009/10/16(金) 12:53:36ID:MfIGUeJj
>>291-294
自分で1から作成したプログラムがあるんですが、それでVRC6の音源を鳴らしたいんです。大雑把に言うと、MMC3構造で音源だけをVRC6などにする事が出来るのか否か、という意味です。

293さんのTNSカートリッジとかじゃなくて、エミュレータ上でそれが出来ればいいのですが…。その方法を知りたくて

コナミLSIだけ別にファイルとして用意して必要な時だけ読み込んで動作させるという事を今やってるんですが、マッパー切替え自体不可能でしょうか?w
0296名前は開発中のものです。2009/10/16(金) 14:39:44ID:pw8IfXRn
それはエミュレータ自体に手を入れるしかないな
0297名前は開発中のものです。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
>>298
お、どもありがとです(^ω^)
新規マッパーですか。開発上ではG-NES使ってるのでその辺りを
少し調べてみる事にします。
やっぱりあのデビチルUの音源は魅力的ですよねー、とかw

もう開発始めてから1年近くなるんですけど
ファミコンはまだまだ判らん事だらけで困っちゃう
0300名前は開発中のものです。2009/10/16(金) 20:50:53ID:MfIGUeJj
>>299追伸

いかんいかん
デビチルU→メガテンU

連投申し訳w
0301名前は開発中のものです。2009/10/17(土) 01:29:25ID:5O/kgJwv
MMC3依存部分をVRC6に書き換えてやればいいんでないの?
03022982009/10/17(土) 09:45:01ID:lEV510ii
俺も>>301でFAだと思うがな・・・
メガテンIIってことはマッパー19か
ちょっとした変更で済みそうだぞ
0303名前は開発中のものです。2009/10/17(土) 13:09:19ID:2Z8Ot/UF
たぶん、プログラムROMの容量の問題なんじゃないの?
MMC3は512まで使えるけど、VRC6は256までだから。
03042982009/10/17(土) 14:00:54ID:lEV510ii
俺のせいでVRC6で作る話で固まっちゃってるが
使いたいのはN106だそうだぞ
0305名前は開発中のものです。2009/10/17(土) 18:31:18ID:K5p+RqDt
>>303
Sorry.今はなむこさんの拡張音源を広げたいんです。
こなみさんのもその内とは思ったりもしてますが…

プログラム移植の方法なら確かに容量の問題でつっ掛かりました。
例によってVROMを使ってるものからVRAM形式のマッパーに変えるとなると
プログラムそのものを見直さないと駄目で
素人の私には到底むりぽですので、やはり新たに実装する
方法のほうが良いようです。

情報ありがとうございますo(^-^)o
0306名前は開発中のものです。2009/10/27(火) 12:45:12ID:6yrB7EMH
VRAMとVROMって何ですか?
書換えと読取り?
0307名前は開発中のものです。2009/10/27(火) 13:52:17ID:JvV7xCCj
VROMは読み取り専用の構成ですね。
マリオの空とか固定パターンの場合には便利かと思いチップを設計しました。by作者
0308名前は開発中のものです。2009/10/27(火) 14:13:51ID:9ME3ZxQf
>>306
VRAMは、2kバイトのビデオ用RAMです。どこに何を表示するかのRAM。
これをROMにしたのがVROMかと。だがファミコンじゃ普通ROMにしない。アフターバーナーはROMになってたけど。特殊ですね。
(ただし、外人さんは名前の付け方が変なので、キャラクタジェネレータROMのことをVROMと言ったりするので注意。
キャラクタ用ROMはCROM、これがRAMだったらCRAMと名付けるべきでしょう。) 
0309名前は開発中のものです。2009/10/27(火) 15:19:06ID:6yrB7EMH
>>307->>308
ご丁寧にありがとうございます!なんと作成された方直々にとは…、びっくりしました。
VRAMのほうが実用性高そうですね。パターンテーブル切替えとか
0310名前は開発中のものです。2009/10/27(火) 22:19:12ID:JvV7xCCj
FCのVDPはVRAM空間として4画面分あるのですが、実際に積まれてるVRAMは2画面分しかないので、
それぞれ1画面ずつRAMとROMを選択できるようにしました。
VROMの使用法としてポールポジションの道のアニメーションが目的だったのですが、
試作段階で挫折しましたw 俺・・・
0311名前は開発中のものです。2009/11/05(木) 07:22:57ID:5L5biTqj
cc65を使って、ファミコンゲーム作ってる人いますか?

分からない所があるんですが、
BGの書き込みの際にBASICのLocateみたいに、
x座標とy座標を指定できる方法は、ありますか?
0312名前は開発中のものです。2009/11/05(木) 13:08:00ID:l85UMOLm
>>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以下なら書き込めるが…
他に方法あるのか
0313名前は開発中のものです。2009/11/05(木) 19:56:59ID:6WbXrm2H
こんな感じでいけたような気がする。
extern 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
http://ppup.dip.jp/uploader/download/1257595273.zip
ブロック崩しもどき作ってみた。
下に3回落ちたらゲームオーバーのはずなんだけど、
文字(BG)がうまく表示されない。
0315名前は開発中のものです。2009/11/07(土) 21:29:27ID:UmD87ywj
パスが掛かってるよ
03163142009/11/07(土) 22:56:01ID:Mf3/pBlM
passはbbです。
BGで表示できないので、代わりにスプライトを使いました。
http://ppup.dip.jp/uploader/download/1257602099.zip
同じくpassはbbです。
0317名前は開発中のものです。2009/11/14(土) 14:14:41ID:2jXyTTJy
がんばって作った過去の遺物
http://ppup.dip.jp/uploader/download/1258175338.nes
pass:1944
0318名前は開発中のものです。2009/11/15(日) 15:40:05ID:yZ0q6H6M
>>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が指定の位置に描画されたが、確証は無い。
0319名前は開発中のものです。2009/11/15(日) 18:16:36ID:2XQwAgah
固定画面ならそんな感じでよさそうだが
スクロールレジスタも考慮するとあんまり一般的な方法ってのはないんじゃね
0320名前は開発中のものです。2009/11/15(日) 23:05:33ID:zpJnzLrg
縦はともかく横は$1fでANDを取ればいいだけだから
スクロールを考慮する必要ナッシング

>>317
頑張ったな
でも流行ってるときに公開すればよかったんじゃね?
0321名前は開発中のものです。2009/11/17(火) 11:58:25ID:9Pkn5HWa
メインループの中でBG書き込みをすると、画面が壊れるんだが、どうして?
0322名前は開発中のものです。2009/11/17(火) 12:59:06ID:O/lLyVUy
表示期間中にPPUいじると画面が崩れるハードの仕様
0323名前は開発中のものです。2009/11/17(火) 22:11:35ID:7i3K3Gjo
>>321
実機?エミュ?
0324名前は開発中のものです。2009/11/18(水) 13:19:33ID:GwpJUAOP
>>323
エミュ
0325名前は開発中のものです。2009/11/18(水) 22:51:06ID:FMqMiJwJ
>>324
そうでしたか。 そんなとこまで再現するとはすごい。 
ちなみに、BGとSPR表示をオフにすれば、表示期間でも書き込みできるはず。
0326名前は開発中のものです。2009/11/24(火) 18:08:45ID:nZ7IaeBO
NESASMでジョイパッドのチャタリングを防ぐにはどうすればいいの?
0327名前は開発中のものです。2009/11/24(火) 18:47:46ID:nZ7IaeBO
いや、前回のと比較するのは知ってるんだけど具体的にどうするのか知りたい
0328名前は開発中のものです。2009/11/24(火) 19:24:15ID:HeI+t05Q
入力受付間隔を調整すればいいだけでは
0329名前は開発中のものです。2009/11/25(水) 20:21:24ID:Y/xKjGNz
LDA 入力読込
PHA
STA 押しっぱのボタンの判定
EOR 1つ前のフレームでの入力
AND 押しっぱのボタンの判定
STA ボタン押した瞬間の判定
PLA
STA 1つ前のフレームでの入力
0330名前は開発中のものです。2009/12/06(日) 03:05:59ID:pC5E5jqQ
CC65で15パズルを作った方が、このスレッドで
公開していたかと思いますが、参考になるのでは。
0331名前は開発中のものです。2009/12/15(火) 15:19:45ID:a558s9Dh
NESASMとcc65ってNES研究室のサンプルみた限りだと記述方式が違うみたいですが
これってなんででしょうか?
■ このスレッドは過去ログ倉庫に格納されています