2009-11-01から1ヶ月間の記事一覧

回路図の公開中断に関して

準備ができていない体制で先行的にみせていましたが、多くの人が来るようになり、対応ができなかったり誤解を生む可能性ができたので中断いたしました。その他情報に関しても同様の理由で削除いたしております。準備ができ次第、公開いたしますので暫くおま…

回路図

(公開中断)

todo

host の調整。dump mode のエラーチェックがついてなかった。 文書書き。これが結構な量なのと、集中力が維持できない。 V-USB のライセンスの問い合わせ。 ライセンスに関しては2点違反しそうな点があったので、許してくれないかと問い合わせ中。英語だから…

いろいろ

基板と部品の発注は終わり。 AVR ライタが届いたが、動かん... コンペアのためのバッファ容量は 0x100 x3 にした。read のスピードは落ちるに落ちたが、8M で 90 秒が 95 秒になった。差を4で割ると1.25秒だし、そもそも read は需要が少ないので許容範囲。 …

ATmega164P に対応する

ATmega164P は ATmega16 より単価が100円安い上に消費電力が少ないので動いてくれないと困る。前回ヒューズを書こうとしたら AVR ライタが死ぬという忌まわしい出来事が起きてから流してたんだが、最後の壁となったので ROM ライタで書き込んで対応する。動…

配線検討

ねじ穴があってなかったり、USBコネクタの場所が悪かったので再調整... こんどはぴったりだ! 発注できる!

配線検討

試作品に送られたパチモノのケースにはまるようにねじ穴とかの検討。プリンタのインクがきれてるから、2度コンビニにいって実寸検討。印刷したら、あらこんな小さかったっけと思ったけど、実寸だった。とりあえずこれで部品関連は一息。MEGA164P を注文する…

部品検討

ソフトウェアの実装は落ち着きつつあるので、ドキュメントとか部品実装。2つのパーツサイトみて値段を比較してみたところ、だいたい digi-key が安いのでここできまりそう。 ダイオードの単価が高いのでパッケージを買えるとか、買うとこを替えるとか検討。 …

続:コンペアの検討

いまがこうなっていて、 uint8_t readbuffer[0x200]; uint8_t *const writebuffer_cpu = &readbuffer[0]; uint8_t *const writebuffer_ppu = &readbuffer[0x100];昨日の提案がこう。 uint8_t readbuffer[0x100]; uint8_t writebuffer_cpu[0x100]; uint8_t wr…

PowerPak のカセットをみた

だけで動いてるところはみてないんだが、flash memory cartridge と比較すると下記ぐらいかなーと思った。PowerPak の利点 ROM image をとっかえひっかえいろいろ動かして遊ぶのに便利 IRQ, SOUND とか使ってないならこっちのが便利 ROM image を前詰め後詰…

flash のコンペアの検討

現状の unagi についてる書き込みは1領域だけで動いているのでいままでの通りのコンペアでよい。開発中の2領域同時書き込みはメモリ管理が面倒だったので現在は条件付きでページ単位でやっているときもある。コンペアの実装が適当なのは同時に動かすにはそれ…

AVR ライタが使えなくなった

参ったね。ATMEGA164P の動作確認したいと思って fuse 書いてたら、それから通信が出来なくなってしまった。ROM ライタでも MEGA16 は書き込めるけど、AVR を外したり付けたりって面倒だし。 ROM ライタ経由で MEGA164 も書き込めるみたいだけど、同様だし、…

文書書きと英語しゃべり

プログラムに関しては落ち着きはじめたので公開用の技術文書とか wiki 用の下書きを書いてる。kazzo プロジェクト自体に割く時間を減らして FPGA の方にとりかかりたいので、その準備といったところ。V-USB のライセンスの関係とか、興味を持つ強力な開発者…

todo

dump mode の処理を flash mode にフィードバックしたり、おもしろ変数名、タグ名を修正。 H/V の自動判別 disk は改善しなかったのであきらめた。理由は分からん。

dump mode

dump length の指定 スクリプトが強力になったのでやりたくてもやれなかったことができた。たとえば MMC5 だと管理できる ROM は 8M(16M??)/8M なんだけど大半のソフトが 2M/2M。全ての管理領域を読み込むのは時間の無駄なので、デフォルトを 2M/2M にしてそ…

時間を有効に使おう

エラーチェックするためにスクリプトを 2pass 方式にした。のはいいんだが、ちゃんと動かなくて問題を見つけるまでに2h消費。script 内部で userpointer にするためにポインタの cast をせなあかん場所があって、そこがポインタのポインタになっていた。cast…

dump mode 実装できた

ものの4時間ぐらいで書いたコードでまともに動いてしまった。細かいエラーチェック入れたら終わりじゃん。いまだから書くけど去年の時点で lua とか squirrel を知らなかったんだよね。それをしっていたらどれくらい時間を節約できたかとか、スクリプトの可…

動作確認ついで

flash memory の動作確認ばっかやってるんだけど、書き込むデータはなんでもよい。その中でついつい遊んでしまうのがロックマンシリーズ。いろんなハード(UNROM, SGROM, TLROM, TGROM) にあるし、どれを遊んでもそこそこおもしろい。筆者は3が一番お気に入り…

時間計測をしてはいけない

経過時間が気になって気になって、ルーチンの最適化に心を奪われる。ルーチンの最適化なんてものはソースが読みづらくなるだけで、他の生産行為を妨げるからである。だから、えーと、ちょっと無駄な処理を発見したので似たような処理を追加して昨日の条件で…

書き込み時間

AM29F040B で 0x20000 byte のデータ書き込み。erase 時間も含む。 単体: 共に21秒 2つ同時: 29秒 さすがに2倍とはいかなかったが 1.4 倍のスピードアップは結構でかい。ただ AM29F040B は他のデバイスと比べて、write の待ち時間が長い(データを送る余裕が…

progress バーもどきをつけた

実行中は数字と #(1つ5%) が増えていく感じ。エスケープシーケンスを使ったんで、 rxvt とか cygwin のシェル経由だと動く。 cmd.exe はだめなのでどうしたものか、nethack のソースを軽く見てみた。なんとかなると思うけど、config で設定を変えないとだめ…

flash うんぬん

erase request が利かない件 デバッグクライアントが erase の古い仕様だった。消えるわけない。直したら成功率 100% になった。 コマンドアドレス付近で書き込みが停まる件 flash write するときの波形を見直したら、バス衝突してた。直したら成功率 100% …

UOROM に迫れた

UOROM が届いたので、実験した UNROM 通りに HC161 の制御信号をつないだところから。 LD = PHI2 | R/W read ok program ok 立ち上がらねえええええ! 実験のやり直しから。なんで動くんだ、実験した HC32 がおもしろなのか。別のHC32 つないだら動かないので…

AM29F040B で書き込みが安定しない件

flash memory が erase command を受け付けない。erase を行う手段は 2 つあって、kazzo で erase command を発行する方法と、デバッグクライアントから 1write ずつ計6回送って erase command を発行する。通常は前者で、試しに使ってみたカセットで動かな…

やること

anago, flash 書き込み専用ソフト 書き込み状態をステータスバーっぽいやつにする あとはやることないような disk anago を作ってる過程でバス制御周りでバグがなんこかあったので、seek が停まるのがなおってるといいな それでもだめならあきらめるかなぁ k…

UNROM にも迫る

UNROM へ flash 書き込みができないのは、バンク切り替えが暴発してしまうわけなので対策を考えてみた。UNROM についてる 74xx32 (HC or LS. どっちでもよい) の OR ゲートが1個余ってるので下記の変更を行う。 変更前 /LOAD = CPU R/W 変更後 /LOAD = CPU R…

MMC6 に迫る

HKROM/MMC6 採用ソフトの Star Tropics を TKROM/MMC3 にいれてみたら、タイトル画面は立ち上がったものの、曲もならないしそのうち停まった。次回、HKROM に TKROM ソフトをいれてみたらどうなるか!? をやりたいが、MMC6 って Star Tropics シリーズだけだ…

C# に移行できなかった

squirrel を C# から動かすには dll でコンパイルかけて、それのラッパを作る必要がわかった。それだけで工数かかるってのに、libusb 関連もあるので面倒すぎて C# は却下。正直なところ継承は欲しいんだ。そうすると C++ なんだが、アドレス保護は C とかわ…

product id, device id

flash memory というか、ROM にも id を得る方法があるので、現行は手動設定しているものを自動で設定できないか試してみた。 id 取得手順が似ているがばらばら 取得アドレスがアドレスバス全部のやつがある 実際に動かしてみたら安定しなかった というわけ…

squirrel を導入した

API がわりと細かいので、ラッピング関数を作る必要が出てきてソースが増えた。あとは、文書を読んでごりごりとコーディング。ここまではよい。コルーチンの実装の wakeup 直後に unknown error で squirrel の vm が落ちる。スタックの制御が悪いのかとか悩…