そもそもメガドライブの flash cartrdige は怪しいアジア製品が存在しているので設計する必要がない気がする。
8bit memory x2
//flash memory for D0-D7 flash_low_address[19:0] = cartridge_address[20:1]; flash_low_data[7:0] = cartridge_data[7:0]; flash_low_oe = cartridge_coe & ~cartridge_ldsw; flash_low_cs = cartridge_cce; flash_low_we = cartridge_ldsw; //flash memory for D15-D8 flash_high_address[19:0] = cartridge_address[20:1]; flash_high_data[7:0] = cartridge_data[15:8]; flash_high_oe = cartridge_coe & ~cartridge_udsw; flash_high_cs = cartridge_cce; flash_high_we = cartridge_udsw;
純粋な UDS と LDS がでてないから、正しく write できんな。仮に出来たら、 kazzo の CPU/PPU 並行みたいな形かな?
16bit memory x1
http://www.spansion.com/Products/Pages/ProductDetails.aspx?ProdID=Am29F160D
こいつかな。
flash_address[19:0] = cartridge_address[20:1]; flash_data[15:0] = cartridge_data[15:0]; flash_oe = cartridge_coe; flash_cs = cartridge_cce; flash_we = cartridge_ldsw & cartridge_udsw; flash_wp = 1; flash_byte = 1; //keep 16bit mode flash_reset = cartridge_h_reset;
16bit flash memory のデータシートをはじめて見たけど、 byte/word programming をともにサポートしてる模様。byte/word 切り替え機能付きは必須ではないので word 専用メモリにしたほうがいいかも。
こっちならできそう。メガドライブはバンクを使っているソフトがほとんどないので、これを1つ作ればすべてできるって感じだと思う。あとは、データ量が多いので、 V-USB の USB 1.1 もどきよりかは、AT90USBxx2 の USB 2.0 を使うのが無難なんだろうな。