karu_gamo

ゲーム作ったりドット絵を描く人です。現行機向けはそろそろ引退ムード。レトロハード向けゲ…

karu_gamo

ゲーム作ったりドット絵を描く人です。現行機向けはそろそろ引退ムード。レトロハード向けゲームがメインになりそうな雰囲気。 https://twitter.com/Karu_gamo

記事一覧

メガドラ開発:SGDKメモ

大したことではないけど、メモとして残しておきたいことがたまってきたのでまとめておきます。 リソーステーブル  ゲームを開発する際には様々なリソースを使用します。…

karu_gamo
18時間前
1

メガドラ開発:スクロールの種類

 メガドライブには様々なスクロール方式があります。それぞれに一長一短があり、理解したうえで工夫すれば効果的な演出が可能です。他のハードでラスタースクロールを行う…

karu_gamo
3日前
19

メガドラ開発:VRAMについて

 メガドライブは今のハードに比べるといろんな面で非力です。開発に際してはCPU・メモリ・VRAM・ロム容量のそれぞれのリソースを上手に使っていく必要があります。この中…

karu_gamo
5日前
5

メガドラ開発:LUAを使う

 私はメガドラゲームの開発ではBizHawk(EmuHawkって書いてあるときもあるんですがどっちなんでしょうね?)を主につかっています。BizHawkではLuaが使えますので、デバッグ…

karu_gamo
3週間前
4

メガドラ開発:MDSDRVについて

 前回、SGDKで使用できるサウンドドライバとしてMDSDRVを紹介しました。今回はMDSDRVをSGDKで使用する流れを書きたいと思います。 ダウンロードする MDSDRVのGitHubか…

karu_gamo
1か月前
7

メガドラ開発:サウンド(SGDK)

 メガドラ向けゲーム開発の壁はやはりサウンド関連でしょう。まず前提として、この世代のゲーム機ではサウンドを制御するプログラム(サウンドドライバ)が標準で提供されて…

karu_gamo
1か月前
5

メガドラ開発:大容量のゲーム開発

 最近はメガドラゲームの開発を趣味と仕事で平行しており、いろいろと知識もたまってきました。SGDKによってメガドラのゲーム開発がC言語で充分な速度が得られるようにな…

karu_gamo
1か月前
11

ファミコン開発:バンク切り替え中にIRQやNMIが発生する可能性

 mmc3のバンク切り替えは$8000にバンク種類(プログラムか、キャラバンク、又そのアドレスを含めた種類)を設定し、その後にバンク番号を指定します。その最中にIRQやNMIが…

karu_gamo
1年前
3

ファミコン開発:スクロールとPPUレジスタ

 ファミコンのスクロール機能とその応用で必要になるPPUレジスタについてまとめたいと思います。ファミコンのスクロール機能はシンプルな使い方をしている限りは簡単です…

karu_gamo
1年前
24

ドラゴンクエストとドラゴンウォーリアー

 先日、海外版のドラクエであるドラゴンウォーリアー1~4をプレイしました。始めるまでは、海外版はデモが追加されていたり、1と2ではバックアップメモリーのおかげで…

karu_gamo
1年前
9

最近書いたファミコンゲーム用スクリプト

ドラクエ3,4およびゼビウスのMesen用スクリプトを最近書いたので残しておきます。Mesenはファミコンエミュレーターでとても機能が豊富なステキなエミュレーターです。 …

karu_gamo
2年前
2

ファミコン開発:OAMの破損問題

今回の内容について、私も正確に理解しているわけではないので、メモ書き程度とみて参考にしてください。 どのような現象かというと、OAM(Object Attribute Memory。要す…

karu_gamo
2年前
4

0爆弾について

0爆弾というのはスーパーマリオを始め、ファミコンで画面を上下に分割してるゲームではよく使われるテクニックです。具体的には、0番スプライトを画面分割したい位置に配…

karu_gamo
2年前
11

Mesenで使えるスクリプト。その他メモ

昨日はいろんなゲームで使えるスクリプトを書いたので、今日は自分で作成しているゲーム用にスクリプトを書いています。気になった点についてメモを残しておきます。 色の…

karu_gamo
2年前
1

Mesenで使えるスクリプト集

前回はドルアーガの搭のライフやマトックの回数を表示するスクリプトを書きました。その後、他のゲーム用のスクリプトも書きましたので、まとめておきます。 【スターラス…

karu_gamo
2年前
3

Mesenのスクリプトを使って、ドルアーガの搭にLIFEゲージを追加してみる

ファミコンエミュレーターのMesenはとても高機能です。ファミコンゲームの開発でも助かる機能が豊富にあります。その一つであるスクリプト機能について説明します。以前よ…

karu_gamo
2年前
8

メガドラ開発:SGDKメモ

大したことではないけど、メモとして残しておきたいことがたまってきたのでまとめておきます。

リソーステーブル

 ゲームを開発する際には様々なリソースを使用します。SGDKではリソースをresフォルダ以下にまとめ、.resファイルにコンバートの仕方を記述していきます。記述方法についてはbin/rescomp.txtを参考にします。ロムのサイズがそれほど大きくない場合は問題ないのですが、大容量ロムと

もっとみる

メガドラ開発:スクロールの種類

 メガドライブには様々なスクロール方式があります。それぞれに一長一短があり、理解したうえで工夫すれば効果的な演出が可能です。他のハードでラスタースクロールを行う場合はHBlankで割り込みを発生させる必要がありますが、メガドライブはハードウェアで実装されているため、データテーブルをセットするだけ実現できます。これは使わない手はありません。今回は動画も交えてスクロール方式の違いやクセを見ていきたいと

もっとみる

メガドラ開発:VRAMについて

 メガドライブは今のハードに比べるといろんな面で非力です。開発に際してはCPU・メモリ・VRAM・ロム容量のそれぞれのリソースを上手に使っていく必要があります。この中では、ロム容量については当時とは事情が異なるため余裕があると言えます。メモリもゲーム内容によっては64KByteで充分でしょう。問題はCPUとVRAMです。というわけで、今回はメガドラ開発でとても重要になるVRAMについてまとめてみた

もっとみる

メガドラ開発:LUAを使う

 私はメガドラゲームの開発ではBizHawk(EmuHawkって書いてあるときもあるんですがどっちなんでしょうね?)を主につかっています。BizHawkではLuaが使えますので、デバッグで利用していくと便利そうです。最近使い始めたので、メモ程度に情報を残しておきます。

使い方はメインメニューからTools/Lua Consoleを選びます。

 基本的にはあらかじめLuaスクリプトを書いておいて

もっとみる

メガドラ開発:MDSDRVについて

 前回、SGDKで使用できるサウンドドライバとしてMDSDRVを紹介しました。今回はMDSDRVをSGDKで使用する流れを書きたいと思います。

ダウンロードする

MDSDRVのGitHubから最新版をダウンロードしてください。

 とりあえず適当に解凍してください。MDSDRV-masterフォルダを開くと、いろいろ入ってますね。
 dataフォルダ以下は自身のゲームで使用したいBGMやSE

もっとみる

メガドラ開発:サウンド(SGDK)

 メガドラ向けゲーム開発の壁はやはりサウンド関連でしょう。まず前提として、この世代のゲーム機ではサウンドを制御するプログラム(サウンドドライバ)が標準で提供されていないため、ゲームごとにサウンドドライバを用意する必要がありました。ゲームプログラムとサウンドプログラムは全く畑が違いますので、さぁゲームを作ろうと思い立った人にとって突然サウンドの専門用語と向き合えと言われても戸惑ってしまいます。ポルタ

もっとみる

メガドラ開発:大容量のゲーム開発

 最近はメガドラゲームの開発を趣味と仕事で平行しており、いろいろと知識もたまってきました。SGDKによってメガドラのゲーム開発がC言語で充分な速度が得られるようになり、もっとも手軽なレトロゲーム機の開発環境となったのではないかと考えています。
 一方で簡単なゲーム開発には十分でも規模が大きくなると理解しなければならない項目が増えるものの、古いハードゆえの情報不足や、エミュレータの機能をフル活用しな

もっとみる

ファミコン開発:バンク切り替え中にIRQやNMIが発生する可能性

 mmc3のバンク切り替えは$8000にバンク種類(プログラムか、キャラバンク、又そのアドレスを含めた種類)を設定し、その後にバンク番号を指定します。その最中にIRQやNMIが発生し、しかも割り込み先で$8000の内容が書き換えられてしまうと…戻ってきたときに意図しないバンクを切り替えてしまうことになります。具体的には以下のようなケースです。

lda #$06 ; prg80sta $8000

もっとみる
ファミコン開発:スクロールとPPUレジスタ

ファミコン開発:スクロールとPPUレジスタ

 ファミコンのスクロール機能とその応用で必要になるPPUレジスタについてまとめたいと思います。ファミコンのスクロール機能はシンプルな使い方をしている限りは簡単ですが、ちょっと工夫すると途端に?がたくさん出てきます。初めのうちはプログラムではよくあるおまじないのように、型として覚えておけば十分なのですが、複雑なことをしようとするとやはり深い理解が必要となるでしょう。つまり、今の私がそんな状態なわけで

もっとみる

ドラゴンクエストとドラゴンウォーリアー

 先日、海外版のドラクエであるドラゴンウォーリアー1~4をプレイしました。始めるまでは、海外版はデモが追加されていたり、1と2ではバックアップメモリーのおかげで復活の呪文がなくなっている、などの良い点のみを知っていたのですが、実際にプレイしながら海外プレイヤーの声を聞いているうちに、ドラクエの国内外での認識の差や、様々な問題を知ることができました。細かいデータなどは不明点も多く、憶測も混ざっていま

もっとみる

最近書いたファミコンゲーム用スクリプト

ドラクエ3,4およびゼビウスのMesen用スクリプトを最近書いたので残しておきます。Mesenはファミコンエミュレーターでとても機能が豊富なステキなエミュレーターです。

■ドラゴンクエスト3ドラクエ3用のスクリプトはオートガードスクリプトです。ご存知の方も多いでしょうが、ファミコン版ドラクエ3は戦闘時にガードを選択するとガードフラグが立ちますが、コマンドをキャンセルしてもこのフラグは立ちっぱなし

もっとみる

ファミコン開発:OAMの破損問題

今回の内容について、私も正確に理解しているわけではないので、メモ書き程度とみて参考にしてください。

どのような現象かというと、OAM(Object Attribute Memory。要するにスプライト情報を格納する専用のメモリです。通常、メインメモリ内に一時的なスプライト情報を持ち、DMAでOAMへデータを転送します)に長時間アクセスがないと(または書き込みがないと?)、データが破損する可能性が

もっとみる

0爆弾について

0爆弾というのはスーパーマリオを始め、ファミコンで画面を上下に分割してるゲームではよく使われるテクニックです。具体的には、0番スプライトを画面分割したい位置に配置して$2002をリードし続けます。リードしたときにbit6が立っていたら0番スプライトを描画した瞬間、というわけです。

上の図は以前Tweetしたワルキューレの0爆弾についての説明です。
https://twitter.com/Karu

もっとみる

Mesenで使えるスクリプト。その他メモ

昨日はいろんなゲームで使えるスクリプトを書いたので、今日は自分で作成しているゲーム用にスクリプトを書いています。気になった点についてメモを残しておきます。

色の指定方法。前回色は0xFFFFFFといった具合で指定しました。この場合は24bit指定で白ですね。32bitで半透明にするときは0x80FFFFFFという感じで頭にアルファ情報を書きます。この時アルファ値はFFだと完全に透明になります。普

もっとみる

Mesenで使えるスクリプト集

前回はドルアーガの搭のライフやマトックの回数を表示するスクリプトを書きました。その後、他のゲーム用のスクリプトも書きましたので、まとめておきます。

【スターラスター:暗黒惑星表示スクリプト】

function starluster() is_battle_mode = emu.read( 0x41, emu.memType.cpu, false ) deathstar_x = em

もっとみる

Mesenのスクリプトを使って、ドルアーガの搭にLIFEゲージを追加してみる

ファミコンエミュレーターのMesenはとても高機能です。ファミコンゲームの開発でも助かる機能が豊富にあります。その一つであるスクリプト機能について説明します。以前よりLuaが使えることは知っていたのですが、面倒だったのでスルーしてたんですよね…。せっかくなので挑戦してみようと思います。

とりあえずタイトル通りに、『ドルアーガの搭』にLIFEゲージを追加してみようと思います(HPの方が短いし、今で

もっとみる