メガドライブ開発 たぶん2スレ目

このエントリーをはてなブックマークに追加
944名前は開発中のものです。:2010/10/04(月) 01:25:40 ID:e3nIdToe
>>942
互換モードだとFM音源や68000は止まってしまうんじゃなかったかな?
通常モードでZ80から68000に画面制御の仕事を投げるようにプログラムするのは可能。
でも、そんなことするならZ80のコードを68000用に書き直したほうがいいように思う。
945名前は開発中のものです。:2010/10/05(火) 21:01:12 ID:uNzAGWaq
>944
ありがとうございます。互換モードだと動かないのは残念なです。
確かに、手間のかかることをかもしれませんが、マスターシステムに興味もありまして、その技術を使えたら楽なのではない
か、と思った次第なのです。セガハードの未知の部分の探求ってやつです。
946名前は開発中のものです。:2010/10/06(水) 03:20:17 ID:rqkPr7XJ
底の浅いハードだなぁ
947名前は開発中のものです。:2010/10/07(木) 04:51:39 ID:/kKH2nQF
互換モードだと68000に突っ込みを入れる手段が無くなってしまうので、
きっと通常モードで動かす必要があるのだと思います。

最初にマスターシステム版のゲームを作って、
そのZ80ソースコード(アセンブラ)をなるべく書き換えずに、つまりZ80メインで68000をなるべく使わずに
メガドライブに移植するとした場合を考えてみたけど、結構メンドクサイかも。

1. カラー、背景、スプライト、サウンド、パッド入力、バンク切り替えのルーチンを初めから
独立させておく。後にメガドライブ用に書き換える。

2. RAMとROMのアドレスが入れ替わってるから、アドレス定義を書き換える。

3. 固定32K + バンク16K + RAM8K だったメモリー空間が、RAM8K + バンク32KB に変わってる。
32Kで収まらないROM容量の場合は初めからこの違いを考慮する必要がある。
場合によっては 1. 以外のルーチンもこの違いの都合で書き換えないとエケないかも。

4. 割り込みモード1、割り込み要因はVSYNCのみ。

5. Z80はメガドライブのI/Oに一通りアクセス出来るけど、
VDPのコントロールポートとデータポートだけは16bitバスアクセスしかサポートしてないので、
68000に代理アクセスしてもらう必要がある。
例えばZ80はVDPに送りたい内容をZ80のRAMにスタックしておいて、
68000はVSYNC毎にそのスタックの内容をVDPに送るとかすれば68000側のコードだけはクソ短くなる。

6. メガドライブ側の開発環境にZ80を始動させるコードを含んだスタートアップルーチンが
あるので、そこは楽。
948名前は開発中のものです。:2010/10/09(土) 01:56:02 ID:l1hcRzgV
丁寧な解説ありがとうございます。
互換モードというよりは、VDPの画面モードをマスターシステム
にして、かつVDPのアクセスを68000に実行させるということですね。
一応、68000が動いているということは、ゲームのプログラムを動かしつつ
Z80のポート処理は出来るということでしょうね。
949名前は開発中のものです。:2010/10/09(土) 11:16:20 ID:ilQMQqoO
VDPの画面モードはマスターシステム互換(Mode 4)でもメガドライブ(Mode 5)でもOK。
950名前は開発中のものです。:2010/11/16(火) 20:41:38 ID:7epJa25F
何時の日か作った60fps拡大縮小デモ、実機で動く様に修正しました。
エミュだとDMA周りの再現性が怪しい事が分かりました。

http://68000.web.fc2.com/demo.html

非VBLANK中はソフトウェアレンダリング量を削る為に256x224pixelにしてます。
VBLANK中は320x224pixelにする事でDMAの転送速度を上げてます。
(DMAの転送速度がドットクロックに合わせて変わります。)
951名前は開発中のものです。:2010/11/18(木) 00:38:45 ID:ReXKTlGh
修正乙
やっぱ実機確認は必要だね
自作ROM乗せるカセット作るのに五円とか十円で裸カセットを買ってみた
952名前は開発中のものです。:2010/11/18(木) 20:28:51 ID:Zv/ic3Eh

そういやこないだの日曜日、友達(熟女)のPCがコンデンサー破水して逝きかけてたから、
ハードオフにそれのスペア代わりになりそうなマザーボードが無いか眺めに逝ったついでに、
8bitバスなROMが2個乗ったメガドライブのカートリッジを2本買っておきました。
既にNeo Super MD貰ってしまったから今の所ただのストックだけど。

元ネタ (2〜4Mx8bitのROMで作るカートリッジ)

ttp://ponrevival.blogspot.com/2010/07/m4ifm.html
953名前は開発中のものです。:2010/11/19(金) 22:37:59 ID:wRsHKhPB
安く買えそうなのはスーパーリーグとスーパーマスターズかな
古いマザボで2Mのフラッシュ焼けば楽できるね

それから、上のほうでマスターシステム互換の話が出てたけど
バッテリーバックアップ付きのカセットからROM抜いて、配線をあれこれすれば
8Kのマスターシステム互換カセットが出来上がるのかも
954名前は開発中のものです。:2010/12/01(水) 04:05:48 ID:His2/GuI

なんとなく60fps拡大縮小デモの続きで60fps動作するメガデモみたいなシーンを少し作ってるのだけど、
ふと60fps動作可能な「似非回転BG面」や「似非アルファブレンディング」や「似非カラー半透明」
を実現する為のヒントがVDPの非公開機能 (ポートアドレス 0xC0001C) に潜んでいる事に気づきました。
でもエミュはその非公開の機能が実装されて無いから、
非公開機能を使ったシーンは実機でガチャガチャ動作確認しないとエケなくてめんどい問題。

今の所出来てるのは、ソフトウェアなビットマップレンダリングを一切しない、
HSYNC割り込みとラスタースクロールだけで表現出来る60fpsなメタボールと拡大縮小。
他に立体的にねじれたり変形する柱とかチューブとか、
ソリッド ポリゴン (多分1ライン当たり最大5トライアングルまで)
もHSYNC割り込みとラスタースクロールだけで可能な様です。

とりあえず実機で動くROMが出来たらいっぺん動画かROMを公開してみます。
今の所不真面目なコード書いてるから実機だとシーン切り替えに失敗してフリーズします。
更にエミュだと気まぐれで画面がバグります。
955名前は開発中のものです。:2010/12/01(水) 20:41:42 ID:yW3VCNqV
>VDPの非公開機能
テラドライブの315-5313には倍の128KBのVRAMが付いてて
当時の一部の人達は当たり前のようにそこを使う方法を知ってたんだよなぁ
あの人達はやはり開発関係者だったんだろうか?
V9938の拡張RAMみたいに表示用には使えないのだそうだけど
956名前は開発中のものです。:2010/12/13(月) 04:05:37 ID:U9hvZqdj

同人ゲー、とりあえず最後のボスまで出来た。
あとはバグ捕って、サウンド シーケンサーとエンディングをこさえて、
ゲームバランス調整しないとエケない状態。

オリジナルは 「無料ダウンロードじゃなかったの?」 と言うレベルのミニゲームで、
そのゲームをわざわざ工場で金型でプラ固めて、ROM焼いて、アセンブルして、
メガドライブのカートリッジにするのはもったいなく思ったから、
好き勝手に敵の種類を増やして、1ステージから4ステージに増やして、
ゲームシステム自体変えて、だいぶボリュームアップしてみたけど、
手間掛かった割りにそんなに面白くない問題。( ´^ω^`)

そしてこないだのデモはスクリーンショット上げてみた。
http://68000.web.fc2.com/animals.html
957名前は開発中のものです。:2010/12/13(月) 06:07:46 ID:C3wB4RFF
見てきた
メガデモでは珍しい処理じゃないけど、メガドラってとこがポイントなのかな
958名前は開発中のものです。:2010/12/13(月) 21:44:25 ID:W1pDB+bA
乙です
ところでZ80でPCM再生の頁のリンクが死んでるのは仕様ですか?
959名前は開発中のものです。:2010/12/13(月) 23:26:15 ID:U9hvZqdj
リンク先が404なのはきっとヴォケです。直してみた。

そういやそのPCM2音再生ドライバー、バグがあって一部のエミュでも実機でも音が出ないです。
まだ直してないです。
960名前は開発中のものです。:2010/12/14(火) 01:00:14 ID:LOWezY5/
乙です
勉強させてもらいまっす
961名前は開発中のものです。:2010/12/20(月) 21:43:03 ID:zJM0T0/V
スーパーマリオブラザーズをメガドライブに移植してる人が居たから、
やたら久しぶりに遊んでみた。
20年以上前に遊んでたゲームだけど、ワープ土管の位置とか、
ジャンプするタイミングとか無意識に分かってるのが面白いですね。

ttp://devster.proboards.com/index.cgi?board=dev&action=display&thread=613

ものまね移植じゃなくて、6502コードを68000コードにコンバーションして、
ファミコンの機能をエミュレートしてる所がポイント。
962名前は開発中のものです。:2010/12/21(火) 21:48:12 ID:LsBqxq1D
実機確認用カセット製作中
ライタもこれから、というか古マザーで適合するやつを…
ttp://grafx.main.jp/p&m/src/1292934647671.jpg
963名前は開発中のものです。:2010/12/21(火) 22:15:58 ID:1cP0Iy+o
おや。期待アゲ。
964名前は開発中のものです。:2010/12/21(火) 23:32:18 ID:IURG4E23
>>961
NEOMythでも引っ張り出そうか
>>962
なんか凄い
965名前は開発中のものです。:2010/12/22(水) 19:23:11 ID:vEEpFWuA
>>964
NEO Mythで動かなくてそのスレ読んでみたら、実機では動かないと言う話。
実機で動くバージョンが出来たらウレシイ。
966名前は開発中のものです。:2010/12/26(日) 22:33:57 ID:uXMy4Rvd
>>965
そうでしたか。レスどうもです
967名前は開発中のものです。:2010/12/27(月) 14:04:48 ID:GcPKVtvk
実機本体からBIOS読み出すのどうしたらいいの?
メガCDとかは出来るみたいだけど・・・
968名前は開発中のものです。:2010/12/27(月) 19:04:18 ID:VIxPEjVN
NEO Myth Flash Cart使えるなら、本体BIOSの内容をSRAM領域に単純にコピーするプログラム書いて、それ実行して結果をPCから吸いだすのが一番簡単では。
ケーブル作る手間を惜しまないなら、どっかの外人が作ってた、メガCDからブートして、MDのパッド端子とPCのパラレルポートを繋いだケーブル経由でデータ吸いだすソフト使えばよい。
あれは、MCDのBIOSだけじゃなくて、本体側のBIOSやROMカートリッジの内容も読み出せた筈なので。

そういう手段が無かったころは、
・本体のBIOS-ROMを剥がして、リーダにセットするなり適当に配線するなりして、チップから直にデータを読み出す。
・適当なSRAM付きのカートリッジに一旦BIOSのデータを吸いだして、さらに適当な吸出し機経由でPCで読む。
とかやってたのではなかろうか。
969名前は開発中のものです。:2010/12/27(月) 19:22:35 ID:oWvdX81q
MDにBIOSなんてあったんだ
970名前は開発中のものです。:2010/12/27(月) 23:05:21 ID:f599OSi7
BIOSというかリージョンチェックプログラムがVA6以降(だっけ?
単品のROMじゃなくてカスタムLSIの中ですが
971名前は開発中のものです。:2010/12/28(火) 02:47:43 ID:9fc066jt
そういやBIOS見るのってどうするんだっけと思って見てみた。

アドレス 0xA14101 に 0x00 をセットすると、BIOS ROM が有効になる。
アドレス 0xA14101 に 0x01 をセットすると、カートリッジ ROM が有効になる。

つまり2種類のROMを切り替える方式の様なので、
NEO MythみたいなバックアップSRAM機能付きFlashカートリッジを使う場合、
カートリッジ ROM上のコードをRAMにロードして、
ロードしたコードにジャンプすればOKの様です。
972名前は開発中のものです。:2010/12/28(火) 02:48:31 ID:9fc066jt
ウチの予想が合っているなら多分こんな感じ。

int ram[1024];
void transfer(){
 register char *bios;
 register char *sram;
 register int size;

 *(char *)0xA14101 = 0x00;
 bios = (char *)0x000000;
 /* 16MBitカートリッジのケツにバックアップSRAM 2KBytes がある場合 */
 sram = (char *)0x200000;
 /* for文が相対ブランチ命令になってないとRAMから実行できない */
 for(size = 0; size < 2048; size++){
  *sram++ = *bios++;
  sram++;
 }
 /* SGCCバグ対応無限ループ */
 while(1) asm("nop");
}
973名前は開発中のものです。:2010/12/28(火) 02:49:38 ID:9fc066jt
void main(){
 register char *read;
 register char *write;
 register int size;
 void (*function) ();

 read = (char *)&transfer;
 write = &ram[0];
 for(size = 0; size < 1024; size++){
  *write++ = *read++;
 }
 /* 関数ポインタの扱い方忘れた。変数ramにロードしたtransfer関数を実行出来れば良い。 */
 function = (void (*) ())ram;
 (*function) ();
}
974名前は開発中のものです。:2010/12/28(火) 03:07:36 ID:9fc066jt
と言うかそのうちNEO MythにBIOSを保存する機能が付きそうな予感。

ついでにBIOS眺めてみたけど、2KBしか無いROMカートリッジと言う感じだった。
ROMカートリッジとしてのヘッダーが付いてました。
コードらしき領域は少ししか無い (後半のビットパターンはきっとフォントデータ) から、
単純にライセンスとリージョンチェックくらいしかしてないっぽい。
BIOS ROM搭載機種かどうかは、単に起動時にセガのライセンス表示が出るかどうかで判別出来ると思います。
まんま、"produced by or under license from sega enterprises ltd" と言うデータがあった。
975名前は開発中のものです。:2010/12/28(火) 22:14:23 ID:W7Fx4hRO
ちょこっと変えるだけでHello worldになる教科書ソフト的何か?

そういえばメガアダプタにもROM(のような物)が乗っかって
カートリッジとマイカードの切り分けをやった後で自分は見えなくなるようになってる
976名前は開発中のものです。:2011/01/07(金) 04:34:21 ID:DYgQtvaY
      ???     ?
     ?    ?  ?? ??
    ?     ? ?     ?
     ?    ? ?    ?
    ?      ? ?     ?
     ?     ?■     ?
   ??         ??
  ??             ??
  ?              ?
 ?   ●       ●    ?
  ?              ?
  ??      ?       ??
   ?????   ??????
 ??    ?????     ??
????           ????
????            ????
  ???          ???
     ?■?????■??
     ????▲?????
                !
               |    丶 _    .,!     ヽ
               >     ``‐.`ヽ、  .|、     |
             ゙'.     ,ト `i、  `i、    .、″
                |    .,.:/""  ゙‐,. `    /
             `  .,-''ヽ"`    ヽ,,,、   !
                、,、‐'゙l‐、      .丿 : ':、
               、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''`  .,"-、
              ,r"ツぃ丶  ``````   ../  `i、
          ,.イ:、ヽ/ー`-、-ヽヽヽ、−´    .l゙`-、
         _,,l゙-:ヽ,;、、             、、丶  ゙i、
977名前は開発中のものです。:2011/01/11(火) 10:21:32 ID:oO1DkhF2
メガドライブ版腐れ林檎を作ってみた。

http://68000.web.fc2.com/bad_apple.html
978名前は開発中のものです。:2011/01/11(火) 14:51:45 ID:dvkfaB2I
>>977
要するに、メガドライブ版のメガデモみたいなものかな?
979798:2011/01/12(水) 02:25:07 ID:U+R11Gux
モーションブラー版かっこいいねえ
音付きに期待
980名前は開発中のものです。:2011/01/12(水) 22:08:53 ID:RjMiVVuu
音付けてみた。
音で660KBくらい消費してます。
絵は890KBくらい。
981名前は開発中のものです。:2011/01/13(木) 12:33:09 ID:5WgGNpy2
自分でスレ立てられる環境に居る事に気付いたので、次スレを用意してみた。

http://hibari.2ch.net/test/read.cgi/gamedev/1294889245/l50
982名前は開発中のものです。:2011/01/13(木) 18:58:46 ID:2mLMe+jG
Megasisじゃ正常に動かなかったのでRegen導入してみた
起動さえしないよファッキン
なんで…?
983名前は開発中のものです。:2011/01/13(木) 19:40:18 ID:y3pARr1O
Megasis <<<<<< Kega Fusion < Regen

メガシス、CPUクロック間違ってるから音程がおかしいです...。
なのでRegenが起動出来なかったら、Fusion試してみると良いかも。
ウチはFusion 3.63 とRegen 0.97D 実機で動かしております。
984名前は開発中のものです。:2011/01/13(木) 20:56:05 ID:2mLMe+jG
Fusionで動いた!
スゲー、耳から脳汁が漏れます
985名前は開発中のものです。:2011/01/13(木) 21:02:37 ID:VtHrt8Wm
技術的な事が全くわからない通りすがりだけど
メガドライブでここまでできる事に驚いた
986名前は開発中のものです。:2011/01/13(木) 22:41:22 ID:fCx8l/cY
>>980
最初の 0.00 だと何だか分からなかったけど、
0.02 になったら何だか分かるどころかすごく格好良い!
987名前は開発中のものです。:2011/01/13(木) 23:12:53 ID:hjlZr2jJ
>>980
NOMAD実機 + NEO MYTH CARTで動かしてみた。 スバラシイ!!(・∀・)
988名前は開発中のものです。:2011/01/14(金) 01:18:39 ID:CcVGEld9
日課の様に今日(昨日)も更新してみた。
再生ルーチン側の補完処理で擬似的に解像度を上げたけど、
見栄え的には前回のバージョンの方がスッキリしてて良かったかも。
ハーフトーンがザラザラしてていやらしいです。
989名前は開発中のものです。:2011/01/14(金) 09:07:04 ID:CcVGEld9
今日は風引いたから、寝ながらウチもNOMAD + NEO MYTH CARTで動かしてみた。
NOMADのスピーカーと液晶だと、結構ノイズ目立たなくて都合いい感じね。
990名前は開発中のものです。:2011/01/14(金) 22:12:04 ID:iXt7L1Iq
オリジナルをつべで見た
つか、どれが元かよくわからんけど
ああ、そういう内容だったのか…

>風邪
おだいじに…
991名前は開発中のものです。:2011/01/15(土) 19:42:02 ID:8gbIxY4Z
OK。話の経緯のまとめ。

1. PC98用の同人ソフト「東方幻想郷 〜 Lotus Land Story.」のBGM (FM音源) が元祖。
 http://www.nicovideo.jp/watch/sm3921327
2. その曲を他の音楽同人が歌詞付きアレンジした「Bad Apple!! feat. nomico」が登場。
 ttp://www.alst.net/
3. そのアレンジされた曲にPVを付けるべく手書き絵コンテがニコニコ動画で登場。
 http://www.nicovideo.jp/watch/nm3601701
4. その絵コンテを元に影絵アニメ化した動画が登場。
 http://www.nicovideo.jp/watch/sm8628149
5. その影絵アニメをファミコンで再生してみる人が登場。
 http://www.nicovideo.jp/watch/sm9085688
6. 釣られてウチも 4. の動画をメガドライブで再生してみてる最中。
 http://68000.web.fc2.com/bad_apple.html
992名前は開発中のものです。:2011/01/15(土) 19:55:06 ID:5SH2TcaZ
MZか何かの拡張16MB使ってやってる人もいなかったっけ
993名前は開発中のものです。
>>991
なるほどー、何人も神がいたわけか…

>4. その絵コンテを元に影絵アニメ化した動画が登場。
動画としての元はここなんだろうけど、動きが凄くなめらか
実際に人が動いた影絵を加工してるのだろうか?