├── .gitattributes ├── .gitignore ├── BSMem.abp ├── BSMemWnd.sbp ├── CartridgeRW.sbp ├── HardwareLevel.abp ├── HongKongArduinoClone.abp ├── HongKongArduinoClone.exe ├── HongKongArduinoClone.idx ├── HongKongArduinoClone.pj ├── HongKongArduinoClone.rc ├── HongKongArduinoClone.wnd ├── LicenceList.abp ├── MainWnd.sbp ├── MakeWindow.wbp ├── MemoryMapModel.sbp ├── README.md ├── ReadMe.txt ├── RomHeader.sbp ├── SFM.abp ├── SFMemWnd.sbp ├── SFTurbo.sbp ├── SNES.sbp ├── SubClassWindow.abp ├── finalize_exe.bat ├── firmware ├── ArduinoHexWriterSrc.zip └── HongKongArduinoFast │ └── HongKongArduinoFast.ino ├── icon.ico ├── resource.sbp ├── resource_bin.res ├── se └── SE_OK.dms ├── sfc_doc.txt ├── ss ├── HongKongSA1.CE3 ├── NP.png ├── SA1.png ├── SA1SS.png └── wine.png └── tool ├── bsmem.abp ├── bsmem.exe └── snesum.abp /.gitattributes: -------------------------------------------------------------------------------- 1 | *.?bp linguist-language=vbnet diff=sjis -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ss/ 2 | rom/ 3 | sav/ 4 | tool/ 5 | exprom/ 6 | WinHongKongArduino/ 7 | 8 | *.sfc 9 | *.smc 10 | *.bs 11 | *.bst 12 | *.srm 13 | *.bin 14 | *.rom 15 | *.bak 16 | *.rtc 17 | *.dat 18 | 19 | *.ini 20 | 21 | *.wbp 22 | *_debug.* 23 | *.wrk 24 | 25 | write.bat -------------------------------------------------------------------------------- /BSMem.abp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/BSMem.abp -------------------------------------------------------------------------------- /BSMemWnd.sbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/BSMemWnd.sbp -------------------------------------------------------------------------------- /CartridgeRW.sbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/CartridgeRW.sbp -------------------------------------------------------------------------------- /HardwareLevel.abp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/HardwareLevel.abp -------------------------------------------------------------------------------- /HongKongArduinoClone.abp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/HongKongArduinoClone.abp -------------------------------------------------------------------------------- /HongKongArduinoClone.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/HongKongArduinoClone.exe -------------------------------------------------------------------------------- /HongKongArduinoClone.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/HongKongArduinoClone.idx -------------------------------------------------------------------------------- /HongKongArduinoClone.pj: -------------------------------------------------------------------------------- 1 | ' ActiveBasic Project file. 2 | 3 | #VERSION=9 4 | 5 | #MODULETYPE=0 6 | 7 | #NAME=HongKongArduinoClone 8 | 9 | #PLATFORM=32 10 | 11 | #USEWINDOW=4 12 | 13 | #OPTION=&H00010000 14 | 15 | #OUTPUT_RELEASE=.\HongKongArduinoClone.exe 16 | 17 | #OUTPUT_DEBUG=.\HongKongArduinoClone_debug.exe 18 | 19 | #RESOURCE=HongKongArduinoClone.rc 20 | 21 | #SOURCE 22 | HongKongArduinoClone.abp 23 | HardwareLevel.abp 24 | LicenceList.abp 25 | SFMemWnd.sbp 26 | MainWnd.sbp 27 | SFM.abp 28 | BSMemWnd.sbp 29 | BSMem.abp 30 | sfc_doc.txt 31 | SubClassWindow.abp 32 | RomHeader.sbp 33 | MemoryMapModel.sbp 34 | CartridgeRW.sbp 35 | SFTurbo.sbp 36 | SoundEffect.abp 37 | -------------------------------------------------------------------------------- /HongKongArduinoClone.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON "icon.ico" 2 | -------------------------------------------------------------------------------- /HongKongArduinoClone.wnd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/HongKongArduinoClone.wnd -------------------------------------------------------------------------------- /LicenceList.abp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/LicenceList.abp -------------------------------------------------------------------------------- /MainWnd.sbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/MainWnd.sbp -------------------------------------------------------------------------------- /MakeWindow.wbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/MakeWindow.wbp -------------------------------------------------------------------------------- /MemoryMapModel.sbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/MemoryMapModel.sbp -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HongKongArduinoClone 2 | 「[こーどねーむホンコン with Arduino](http://hongkongarduino.web.fc2.com)」を高速化・高機能化するプロジェクト 3 | SNES Cartridge Dumper with Arduino UNO highspeed firmware + host program 4 | 5 | ![SS](https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/master/ss/SA1SS.png "SS")   6 | 7 | ## 概要 / About 8 | + このプログラムは、たにやま氏の"こーどねーむ「ホンコン」 with Arduino"に手を加え、 9 | 約40倍の高速化・特殊カートリッジ対応しなどの機能を加えたものです。 10 | + Arduino UNOとWindows PCでスーファミのカセットの吸出しができます。 11 | + This project is mods of "Codename Hong Kong with Arduino". 12 | It is SNES cartridge dumper. Original has been developed by Taniyama. 13 | + This project supports high-speed dumping, SRAM read/write, BS-X Memory Pack and other.      14 | 15 | ## リンク / Link 16 | + [こーどねーむ「ホンコン」 with Arduino / Original page](http://hongkongarduino.web.fc2.com) 17 | + [たにやま氏のリポジトリ / Original repository](https://github.com/SusumuTaniyama/HongKongArduino) 18 | + [このプログラムについてのページ / My page](http://rgbacrt.seesaa.net/article/435543541.html) 19 | 20 | ## 対応カートリッジについて / Surpported Carts 21 | 対応状況は以下の通りです。 22 | 23 | | Type | Example Game | ROM Dump | ROM Write | SRAM Dump | SRAM Write | Remarks | 24 | | ------------------ | ----------------- | -------- | --------- | --------- | ---------- | ------- | 25 | | LoROM  | SHVC-MW / SHVC-FO | ○ | - | ○ | ○ | DSPn, SuperFX, SGB BIOS, SFTurbo BIOSなどもLoROMに含まれる | 26 | | HiROM | SHVC-ACTJ | ○ | - | ○ | ○ | | 27 | | ExHiROM | SHVC-ATVJ | ○ | - | ○ | ○ | | 28 | | SA-1 | SHVC-AKFJ | ○ | - | ○ | ○ | クロックモジュール回路が必要 | 29 | | SDD-1 | SHVC-ARFJ | ○ | - | ○ | ○ | | 30 | | SPC7110 | SHVC-AZRJ | ○ | - | ○ | ○ | クロックモジュール回路が必要 | 31 | | CX4 | SHVC-ARXJ | ○ | - | - | - | | 32 | | SpecialLoROM (3MB) | SHVC-ZDBJ | ○ | - | ○ | ○ | | 33 | | BS-X | SHVC-ZBSJ | ○ | - | ○ | ○ | | 34 | | 8Mメモリーパック | BSMC-HM-JPN | ○ | × | - | - | | 35 | | JRA PAT | SHVC-TJCJ | ○ | - | ○ | × | SRAMの代わりにFlash | 36 | | ST010 / ST011 | SHVC-E2 / SHVC-2M | ○ | - | - | - | ST011は動作未確認 | 37 | | ST018 | SHVC-A2MJ | ○ | - | ○ | ○ | BIOS Dumpにも対応 | 38 | | MX15001 | SFメモリカセット | ○ | × | ○ | ○ | | 39 | | XBAND | XBAND | ○ | - | ○ | ○ | | 40 | | SFTurbo BaseCart | SHVC-A9PJ | ○ | - | - | - | | 41 | | SFTurbo MiniCart | SFT-0104 | ○ | - | ○ | ○ | | 42 | 43 | + 凡例 ○:対応 / ?:非対応 / -:無関係 44 | 45 | ## クロックモジュールについて 46 | HongKongArduinoの回路にクロックモジュールの回路を追加することで次のカートリッジに対応します。 47 | * SA-1 ROM Dump, SRAM Read, SRAM Write 48 | * SPC7110 Dump, SRAM Read, SRAM Write 49 | 50 | [SA-1カートリッジの接続方法はこちら](https://github.com/RGBA-CRT/HongKongArduinoClone/wiki/Detect-the-SA-1-Cartridge) 51 | 52 | Dump from SA-1 and SPC7110 needs following Clock Modlue. 53 | [Connection procedure of the SA-1 Cart is here.](https://github.com/RGBA-CRT/HongKongArduinoClone/wiki/Detect-the-SA-1-Cartridge#stable-connection-method-for-sa-1-cart) 54 | 55 | ![回路図](https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/master/ss/SA1.png "回路図") 56 | 57 | ## 動作環境 / System requirements 58 | + Windows Windows 2000 or later 59 | + Windows 95 + IE4 でも動作しますが、一部機能が制限されます。 60 | + Wineはシリアルポートの設定を行えば動作可能です。 61 | + Arduino UNO(ATmega 328P) 62 | + Arduino NANO(ATmega168)は容量不足により動作しません。 63 | + クロックモジュール対応機能の削除などしてプログラムサイズを削減すれば動作可能です。 64 | + CH340シリアルコンバータを搭載するArduino UNO互換のボードを推奨します。 65 | + aitendoの「びんぼうでいいの」など 66 | + 公式のArduinoでもボーレートを下げれば動作可能です。 67 | + Recommend Serial Converter is CH340 68 | 69 | ## ダウンロード / Download 70 | 71 | 72 | --- 73 | 74 | ## ボーレートについて / About baudrate 75 | このソフトウェアは接続時に動的にボーレートを変更します。 76 | ボーレートは設定から変更可能ですが、Arduinoに搭載されているシリアルコンバータや環境により動作可能な値が変わります。 77 | つながらない, 通信エラーが多発する場合はボーレートを下げてください。 78 | 79 | 動作確認済みのボーレート: 80 | 81 | + Official Arduino : 500000bps 82 | + Arduino with CH340 : 1000000bps 83 | + [詳細はこちら](https://github.com/RGBA-CRT/HongKongArduinoClone/wiki/%E9%80%9A%E4%BF%A1%E9%80%9F%E5%BA%A6%E3%83%A1%E3%83%A2) 84 | 85 | ## SFメモリカセットについて / About NP FLASH Cart 86 | + [接続手順](https://github.com/RGBA-CRT/HongKongArduinoClone/wiki/SF-Memory) 87 | 88 | ## 既知の問題 / Known issues 89 | + 問題が起きたときに読んでください 90 | + [here](https://github.com/RGBA-CRT/HongKongArduinoClone/wiki/Known-Issues) 91 | 92 | ## 開発環境 / Dev Environment 93 | + OS : Windows 7 x64 94 | + Arduino : Arduino UNO(ATMega328P 16MHz + CH340)... [びんぼうでいいの](https://www.aitendo.com/product/10793) 95 | + Language:[ActiveBasic4](https://www.activebasic.com/) + [RGBALib](https://github.com/RGBA-CRT/RGBALib) 96 | 97 | ## ライセンス / Licenses 98 | + たにやま氏制作部分(HongKongArduinoFast.ino)にはクリエイティブコモンズby-ncが適用されます。 99 | [![cc](https://licensebuttons.net/l/by-nc/4.0/88x31.png)](https://creativecommons.org/licenses/by-nc/4.0/) 100 | 101 | + 私が制作した部分(Windowsプログラム, HongKongArduinoFast.ino以外のファイル)はCC0が適応されます。 102 | [![cc0](https://licensebuttons.net/p/zero/1.0/80x15.png)](http://creativecommons.org/publicdomain/zero/1.0/) 103 | 104 | ## 参考資料 / Referenced documents 105 | * 106 | * 107 | * 108 | 109 | --- 110 | 111 | ## 履歴 / History 112 | ``` 113 | [2016/03/23]ver 0.0 - 初回リリース 114 | [2016/07/20]ver 0.1 - チェックサム判定機能追加 115 | [2017/02/17]ver 0.3 - 最適化&バグフィックス、ファーム判定機能追加 116 | [2017/09/17]ver 0.4 - S-DD1に対応 117 | [2017/09/19]ver 0.5 - SPC7110に対応 118 | [2017/12/24]ver 0.6 - ダビスタ96(特殊LoROM)に対応, HiROM 256Kbit SRAMに対応 119 | [2018/02/10]ver 0.62- UIを微修正。D&DでROMヘッダを表示するようにした。 120 | [2018/02/26]ver 0.7 - ファームウェアアップデート。動的ボーレート, 速度向上(55 -> 96KB/s) 121 | [2018/02/26]ver 0.8 - SFメモリカセットに対応。チェックサム計算を修正 122 | [2018/07/18]ver 0.9 - SA-1追加回路修正, サテラビューに対応 123 | [2018/08/24]ver 1.0 - SRAMリードライトを改善, UIを改善, 正式版 124 | [2018/08/24]ver 1.0b- SA1の認識率向上 125 | [2021/01/06]ver 2.0 - ST018のBIOSの吸出しに対応, ROM情報強化, CX4対応, JRA PAT対応, XBNAD対応, SufamiTurbo対応, ST01x対応, リファクタリング 126 | ``` 127 | 128 | ---- 129 | Programmed by RGBA_CRT 2016-2021 130 | Project url: https://github.com/RGBA-CRT/HongKongArduinoClone 131 | -------------------------------------------------------------------------------- /ReadMe.txt: -------------------------------------------------------------------------------- 1 | /*------------------------------------------------------------------------------------- 2 | HongKongArduino 高速版 [2021/01/06] 3 | HongKongArduinoClone version 2.0 4 | 5 | オリジナルの作者 : (c) 2014 たにやま [http://hongkongarduino.web.fc2.com/] 6 |  高速版作者者  : 2016-2021 RGBA_CRT [rgba3crt1p@gmail.com] 7 | -------------------------------------------------------------------------------------*/ 8 | 9 | ◇概要 10 | このプログラムはたにやま氏が開発・公開された、"こーどねーむ「ホンコン」 with Arduino"に手を加えて 11 | 高速化・SRAMの吸出しなどの機能を加えたものです。 12 | 13 | [本家]こーどねーむ「ホンコン」 with Arduino 14 | http://hongkongarduino.web.fc2.com/ 15 | 16 | 高速版のページ 17 | http://rgbacrt.seesaa.net/article/435543541.html 18 | 19 | 開発ページ 20 | https://github.com/RGBA-CRT/HongKongArduinoClone 21 | 22 | 23 | ◇注意 24 | 本プログラムを使用していかなる損害・災害が発生したとしても作者は一切責任を取りません。 25 | 特にカートリッジ内部のセーブデータ領域のデータは消えやすいので、そのことを踏まえた上でご使用ください。 26 | すべてのカートリッジにおいて正確なROM・SRAMの吸出しを保証はしません。 27 | 特にSRAMの書き込み機能は不安定なので、消えてほしくないデータがカートリッジにある場合には使用しないでください。 28 | また、吸い出したROMイメージをインターネット上に公開することは犯罪です。 29 | 30 | 31 | ◇セット内容 32 | HongKongArduinoClone.exe -> Windows用吸出しプログラムです。 33 | HongKongArduinoCloneSrc.zip -> 上記ファイルのソースコードです。 34 | 35 | firmware\ArduinoHexWriter.exe -> Arduinoへファームウェアを書き込むためのバッチファイル作成プログラムです。 36 | firmware\HongKongArduinoFast.ino -> Arduinoのスケッチです。 37 | firmware\HongKongArduinoFast.ino.standard.hex -> コンパイル済みArduino用バイナリです。これをArduinoへ書き込んでください。 38 | firmware\HongKongArduinoFast.ino.eightanaloginputs.hex -> ATmega168用バイナリです。 39 | 40 | 41 | ◇特殊カートリッジについて 42 | 対応状況は以下の通りです。 43 | * [OK] LoROM 44 | * [OK] HiROM 45 | * [OK] SFメモリカセット / NP FLASH Cart(SF Memory) 46 | * [OK] 特殊LoROM (ダビスタ96) / Special LoROM(3MB) 47 | * [OK] 8Mメモリパック / satellaview 8M data pack 48 | * [OK] ExHiROM 49 | * [OK] S-DD1 50 | * [OK] SA-1 51 | * [OK] SPC7110 52 | * [NG] CX4 53 | * [NG] ST01x 54 | 55 | SA-1, SPC7110はSA1.pngの回路を追加することで吸出し可能になります。 56 | (無理のある配線をしているのでArduinoのバージョンによっては動作しない可能性があります。) 57 | 58 | 59 | ◇使い方 60 | 先に回路が完成し、公式のクライアント(WinHongKong)での正常な吸出しができることが前提です。 61 | 62 | 1.Arduinoにファームウェアを書き込み 63 | HongkongArduinoFastフォルダに 64 | HongKongArduinoFast.ino.standard.hexというファイルがあるので、Arduinoを接続して書き込んでください。 65 | ※初回のみ行ってください。 66 | 67 | ArduinoHexWriter.exeを使うと比較的簡単に書き込めます。 68 | ArduinoIDEフォルダは、arduino.exeがあるフォルダを指定してください。確認ボタンを押して「正常」と表示されることを確認してください。 69 | ArduinoHexWriterを起動し、一番下のテキストボックスにhexファイルをドロップするとパスが入力されます。 70 | 「書き込み」ボタンを押すとArduinoにHEXファイルを書き込みます。 71 | コマンドプロンプトが表示され、「avrdude.exe done. Thank you.」と表示されたら書き込みに成功しています。 72 | 何かキーを押して終了してください。 73 | 74 | なお、このHEXファイルは最適化オプション-O3(処理速度優先)でコンパイルされています。 75 | デフォルトのArduinoIDEの設定では最適化オプションが-Os(サイズの小ささ優先)になっています。 76 | 77 | 2.クライアントの起動 78 | HongKongArduinoClone.exeを起動してください。 79 | 「Serial Port」にArduinoのポートを指定して[connect]ボタンを押してください。 80 | 右のInfomation欄に「Connection successful!」が表示され、ゲームタイトルが表示されていれば接続成功です。 81 | もし、ファームウェアを変更して通信レートを変更した場合はダイアログ右の[baudrate]を変更してください。 82 | 83 | 3.クライアントの操作 84 | 3-1 カートリッジを接続し、GetCartInfoボタンを押してゲーム情報を取得してください。これをしないとLoROM/HiROMの判定がされません。 85 | 3-2 DumpROMで吸出しを行います。 86 | 3-3 DumpSRAMでSRAMの吸出しを行います。うまく吸い出せなかった場合はMAD-1のチェックを入れて吸出しをしてみてください。 87 | 88 | 4.終了 89 | [Close]ボタンを押すとArduinoとの接続を切断します。 90 | 91 | 92 | ◇開発環境 93 | 動作可能環境の目安にしてください。 94 | OS : Win7 SP1 32bit 95 | CPU : Core i3 330M 96 | Arduino : Aitendo製のArduino UNO互換機(ATMega328P 16MHz 5.0v) 97 | ArduinoIDE : ver1.6.6 98 | HongKongArduinoとの通信速度:54179byte/sec 99 | 開発言語:ActiveBasic ver4 + 自分用ライブラリ 100 | 101 | ◇Q&A 102 | ・吸出し中に[0]Warning! と出るが、これは何か? 103 | 送信されてきたデータのサイズが不正の時に表示されます。 104 | 105 | ・Serial Portの欄にErrと表示される 106 | COMポートのリストアップに必要なメモリが不足している可能性があります。 107 | HongKongArduinoClone.iniの中のQDDSizeの右辺を書き換えると改善する可能性があります。 108 | なお、QDDSizeの値が1023以下の場合デフォルトの値に戻されますので注意してください。 109 | 改善しない場合は手動でポート番号を書いてください。 110 | 111 | ・ゲームタイトルなどが正常に表示されない 112 | ・吸い出したデータのCRCが合わない 113 | カセットの接触が悪い可能性があります。綿棒にサビ取り剤などをつけて端子を掃除してください。 114 | また、いったん接続を切り、USBケーブルを抜いたのち、もう一度再接続すると改善する場合があります。 115 | 116 | ・ゲームが正常に吸い出せない 117 | 非対応のカートリッジの場合があります。 118 | 119 | ・バグがある/スペルが間違っている/要望がある 120 | 作者であるRGBA_CRTへ連絡[rgba3crt1p@gmail.com]してください。ただし、直せるとは限りません。 121 | なお、高速版に関する連絡はオリジナルの作者である たにやま氏には迷惑になるので止めてください。 122 | 123 | ・ソースコードのライセンスは? 124 | Arduino用のファームウェアはたにやま氏の制作物であるので、原版と同じく「クリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンス」が適用されます。 125 | HongKongArduinoCloneはたにやま氏のWinHongKongArduinoのソースコードや資料を参考に作ったものなので同じく 126 | 「クリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンス」を適用します。 127 | 128 | ・HongKongArduinoClone.exeのソースコードについて 129 | ActiveBasic ver4で開発しています。[http://www.activebasic.com/ab4_download.html] 130 | 文法はBASICの皮をかぶったC言語というような感じなのですぐわかると思います。 131 | 132 | 133 | 134 | ◇謝辞 135 | このプログラムを作るにあたって、たにやま氏のWinHongKongArduinoのソースコード、 136 | そして「回路の動作原理とプログラム作成のヒント」やパラレル版のホンコンのソースコードを参考にして作りました。 137 | 回路の部分も非常に勉強になりました。ここに感謝の意を表します。 138 | また、Fullsnes, sanni氏のcartreaderのソースコードも参考にしています。 139 | 140 | 141 | ◇連絡先 142 | E-mail : rgba3crt1p@gmail.com 143 | 144 | 145 | ◇ 履歴 146 | [2016/03/23]ver 0.0 - 初回リリース 147 | [2016/07/20]ver 0.1 - チェックサム判定機能追加 148 | [2017/02/17]ver 0.3 - 最適化&バグフィックス、ファーム判定機能追加 149 | [2017/09/17]ver 0.4 - S-DD1に対応 150 | [2017/09/19]ver 0.5 - SPC7110に対応 151 | [2017/12/24]ver 0.6 - ダビスタ96(特殊LoROM)に対応, HiROM 256Kbit SRAMに対応 152 | [2018/02/10]ver 0.62- UIを微修正。D&DでROMヘッダを表示するようにした。 153 | [2018/02/26]ver 0.7 - ファームウェアアップデート。動的ボーレート, 速度向上(55 -> 96KB/s) 154 | [2018/02/26]ver 0.8 - SFメモリカセットに対応。チェックサム計算を修正 155 | [2018/07/18]ver 0.9 - SA-1追加回路修正, サテラビューに対応 156 | [2018/08/24]ver 1.0 - SRAMリードライトを改善, UIを改善, 正式版 157 | [2018/08/24]ver 1.0b- SA1の認識率向上 158 | [2021/01/06]ver 2.0 - ST018のBIOSの吸出しに対応, ROM情報強化, CX4対応, JRA PAT対応, XBNAD対応, SufamiTurbo対応, ST01x対応, リファクタリング 159 | -------------------------------------------------------------------------------- /RomHeader.sbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/RomHeader.sbp -------------------------------------------------------------------------------- /SFM.abp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/SFM.abp -------------------------------------------------------------------------------- /SFMemWnd.sbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/SFMemWnd.sbp -------------------------------------------------------------------------------- /SFTurbo.sbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/SFTurbo.sbp -------------------------------------------------------------------------------- /SNES.sbp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/SNES.sbp -------------------------------------------------------------------------------- /SubClassWindow.abp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/SubClassWindow.abp -------------------------------------------------------------------------------- /finalize_exe.bat: -------------------------------------------------------------------------------- 1 | del se\SE_OK.adpcm.wav 2 | del se\SE_NG.adpcm.wav 3 | ffmpeg -i se\SE_OK_16bit.wav -f wav -acodec adpcm_ms se\SE_OK.adpcm.wav 4 | ffmpeg -i se\SE_NG_8bit.wav -f wav -acodec adpcm_ms se\SE_NG.adpcm.wav 5 | copy se\SE_OK_16bit.wav se\SE_OK.adpcm.wav 6 | ResourceHacker.exe -open resource_bin.res -save tmp.res -action addoverwrite -res se\SE_OK.adpcm.wav -mask WAVE,SE_OK, 7 | ResourceHacker.exe -open tmp.res -save tmp.res -action addoverwrite -res se\SE_NG.adpcm.wav -mask WAVE,SE_NG, 8 | ResourceHacker.exe -open HongKongArduinoClone.exe -save HongKongArduinoClone.exe -action addoverwrite -res tmp.res 9 | del tmp.res 10 | upx HongKongArduinoClone.exe -------------------------------------------------------------------------------- /firmware/ArduinoHexWriterSrc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/firmware/ArduinoHexWriterSrc.zip -------------------------------------------------------------------------------- /firmware/HongKongArduinoFast/HongKongArduinoFast.ino: -------------------------------------------------------------------------------- 1 | /* こーどねーむ「ホンコン」 with Arduino 高速版ファームウェア 2 | Original : たにやま 2016/2/14 [http://hongkongarduino.web.fc2.com/] 3 | Optimize : RGBA_CRT 2016/3/19 [rgba3crt1p@gmail.com] 4 | Some codes are referenced to [https://github.com/sanni/cartreader/] 5 | Docs : https://github.com/RGBA-CRT/HongKongArduinoClone/wiki/Firmware-docs 6 | */ 7 | 8 | //config 9 | //シリアルコンバータがCH340の場合1000000bpsが限界 10 | #define INITIAL_BAUDRATE 115200 11 | #define SERIAL_CONFIG SERIAL_8N1 12 | #define FIRMWARE_NAME "HKAF" 13 | #define FIRMWARE_VERSION "4" // FWのAPIが変わったらインクリメント 14 | const char* FIRMWARE_ID = (FIRMWARE_NAME FIRMWARE_VERSION); 15 | 16 | //クロック回路有効 17 | #define _ENABLE_CIC 18 | 19 | //----------------- 実験コード ------------------ 20 | #ifdef _ENABLE_CIC 21 | 22 | #include "si5351.h" 23 | #include "Wire.h" 24 | #include 25 | 26 | //I2C通信状態を解除してA4,A5ピンを使用可能に 27 | #define DISABLE_I2C() { TWCR = 0;} 28 | #define ENABLE_I2C() {TWCR = 0x45;} 29 | 30 | //クロックジェネレータ 31 | Si5351 clockgen; 32 | #endif 33 | //-------------------------------------------- 34 | 35 | //データバス[PORTD] 36 | #define DATA0 2 37 | #define DATA1 3 38 | #define DATA2 4 39 | #define DATA3 5 40 | #define DATA4 6 41 | #define DATA5 7 42 | 43 | //[PORTB] 44 | #define DATA6 8 45 | #define DATA7 9 46 | 47 | //74HCシリーズの制御 48 | #define GD 10 49 | #define G0 11 50 | #define G1 12 51 | #define G2 13 52 | 53 | //[PORTC]コントロールピン 54 | #define DIR 14 55 | #define CK 15 56 | #define OE 16 57 | #define CS 17 58 | #define WE 18 59 | #define RST 19 60 | 61 | 62 | //bus buffer direction 63 | #define BB_DIR_OUTPUT() PORTC |= 0x01 // DIR=HIGH 64 | #define BB_DIR_INPUT() PORTC &= 0xfe // DIR=LOW 65 | 66 | //bus buffer OutputControl 67 | #define BB_OUT_DISABLE() PORTB |= 0b00000100 68 | #define BB_OUT_ENABLE() {volatile uint8_t oldSREG = SREG;cli();PORTB &= 0b11111011;SREG = oldSREG;} 69 | 70 | // cart /WE control 71 | #define CART_WRITE_ENABLE() PORTC &= 0b11101111 72 | #define CART_WRITE_DISABLE() PORTC |= 0b00010000 73 | 74 | // cart /OE control 75 | #define CART_OUTPUT_ENABLE() PORTC &= 0b11111011 76 | #define CART_OUTPUT_DISABLE() PORTC |= 0b00000100 77 | 78 | 79 | #define Serial_readWord() ((word)Serial.read() | ((word)Serial.read() << 8)) 80 | 81 | //バッファ 82 | #define BUFFER_LEN 0x100 //ホスト側とサイズを合わせる 83 | #define RX_BUFFER_LEN BUFFER_LEN 84 | byte buf[BUFFER_LEN]; 85 | 86 | //現在のアドレスの状態 87 | byte lastadr[3]; 88 | 89 | //----------------- 90 | // serial comm 91 | //----------------- 92 | 93 | inline void serial_send(byte data) { 94 | while ( !(UCSR0A & _BV(UDRE0)) ); //UDRが空になるのを待つ 95 | UDR0 = data; 96 | } 97 | 98 | // recive to buffer 99 | inline void serial_receive(word length) { 100 | word i = 0; 101 | while (i < length) { 102 | while (Serial.available() < 1); 103 | buf[i] = Serial.read(); 104 | i++; 105 | } 106 | } 107 | 108 | //-------------- 109 | // ic level 110 | //-------------- 111 | 112 | //データピンの方向設定 113 | inline void setDataDir(byte DATADIR) 114 | { 115 | if (DATADIR == INPUT) { 116 | DDRD &= 0b00000011; 117 | DDRB &= 0b11111100; 118 | } else { 119 | DDRD |= 0b11111100; 120 | DDRB |= 0b00000011; 121 | } 122 | } 123 | 124 | //データーバスへ値をセット 125 | inline void setData(byte b) 126 | { 127 | PORTD &= 0b00000011; //CLEAR 128 | PORTD |= b << 2; //ORでセット 129 | PORTB &= 0b11111100; 130 | PORTB |= b >> 6; 131 | } 132 | 133 | //アドレスバスを構成するFlip-Flopへ値をセット 134 | inline void setFF(byte ch, byte b) 135 | { 136 | //digitalWrite(G0 + ch, LOW); // FF番号chをWriteEnableに 137 | PORTB &= ~(0b00001000 << ch); 138 | setData(b); 139 | 140 | // digitalWrite(CK, HIGH); 141 | PORTC |= 0b00000010; 142 | 143 | //digitalWrite(CK, LOW); 144 | PORTC &= 0b11111101; 145 | 146 | //digitalWrite(G0 + ch, HIGH); // WriteDisable 147 | PORTB |= 0b00001000 << ch; 148 | } 149 | 150 | 151 | 152 | //-------------- 153 | // snes level 154 | //-------------- 155 | #define LO_TO_REAL_ADDRESS(bank,address) {bank = (bank << 1) | (address >> 15); address |= 0x8000;} 156 | //アドレスバスを設定 157 | inline void setAddress(byte bank, word address, byte isLoROM) 158 | { 159 | if (isLoROM) { 160 | LO_TO_REAL_ADDRESS(bank, address); 161 | } 162 | 163 | BB_OUT_DISABLE(); 164 | 165 | //変更のないFlipFlopはいじらない 166 | byte spritAdr = address; 167 | if (lastadr[0] != spritAdr) { 168 | setFF(0, spritAdr); 169 | lastadr[0] = spritAdr; 170 | } 171 | 172 | spritAdr = address >> 8; 173 | if (lastadr[1] != spritAdr) { 174 | setFF(1, spritAdr); 175 | lastadr[1] = spritAdr; 176 | } 177 | 178 | if (lastadr[2] != bank) { 179 | setFF(2, bank); 180 | lastadr[2] = bank; 181 | } 182 | } 183 | 184 | 185 | inline void readCart(byte isLoROM) { 186 | while (Serial.available() < 5); 187 | word address = Serial_readWord(); 188 | byte bank = Serial.read(); 189 | 190 | word datasize = Serial_readWord(); 191 | 192 | word goalAdr = address + datasize; 193 | while (1) { 194 | // CART_OUTPUT_ENABLE(); 195 | setAddress(bank, address, isLoROM); 196 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 197 | serial_send(readData()); 198 | // CART_OUTPUT_DISABLE(); 199 | address++; 200 | if (address == goalAdr) break; //00:C000-01:0000 201 | } 202 | 203 | } 204 | 205 | void writeCart(int isLoROM = false) { 206 | //コマンド受信 207 | while (Serial.available() < 5); 208 | word address = Serial_readWord(); 209 | byte bank = Serial.read(); 210 | word datasize = Serial_readWord(); 211 | 212 | CART_WRITE_DISABLE(); 213 | CART_OUTPUT_DISABLE(); 214 | BB_DIR_OUTPUT(); 215 | 216 | word goalAdr = address + datasize; 217 | word bufpos = RX_BUFFER_LEN; //buffer ptr, 最初は必ず受信させる 218 | 219 | while (1) { 220 | //データ受信 221 | if (bufpos >= RX_BUFFER_LEN) { 222 | //Send 'R'equest Signal 223 | serial_send('R'); 224 | serial_receive(RX_BUFFER_LEN); 225 | bufpos = 0; 226 | } 227 | 228 | writebyte_cart(bank, address, buf[bufpos]); 229 | address++; bufpos++; 230 | 231 | if (address == goalAdr) break; 232 | } 233 | 234 | CART_WRITE_DISABLE(); 235 | BB_OUT_DISABLE(); 236 | BB_DIR_INPUT(); 237 | 238 | //Send End Signal 239 | serial_send('E'); 240 | // Serial.println("WRITE_END"); 241 | } 242 | 243 | /* 244 | inline byte hex2ascii(byte hex) { 245 | return (hex < 0xA) ? hex + '0' : hex - 0xA + 'A'; 246 | } 247 | 248 | void send_hexdump(byte hex) { 249 | Serial.write(hex2ascii((hex >> 4) & 0x0f)); 250 | Serial.write(hex2ascii(hex & 0x0f)); 251 | }*/ 252 | 253 | void st018_command(byte cmd) { 254 | //wait for transferReady 255 | st018_transferWait(); 256 | 257 | //cmd 258 | writebyte_cart(0x00, 0x3802, cmd); 259 | 260 | //wait 261 | st018_transferWait(); 262 | 263 | return; 264 | } 265 | 266 | inline byte st018_readData() { 267 | if (st018_readyWait()) 268 | return 'E'; 269 | return st018_readbyte_cart(0x00, 0x3800); 270 | } 271 | 272 | // タイムアウトつけてないけど大丈夫か 273 | inline void st018_transferWait() { 274 | while ((st018_readbyte_cart(0x00, 0x3804) & 0x10)) ; 275 | } 276 | 277 | bool st018_readyWait() { 278 | byte waitCount = 1; 279 | 280 | // STATUSのReadyが1になるか、waitCountで255ループするまで待つ 281 | // ↓ &&ではない(可読性のないコード) 282 | while (((st018_readbyte_cart(0x00, 0x3804) & 0x01) != 0x01) & waitCount) { 283 | waitCount++; 284 | delayMicroseconds(10); 285 | } 286 | return (waitCount == 0); 287 | } 288 | 289 | // err=true 290 | bool st018_reset() { 291 | // reset 292 | writebyte_cart(0x00, 0x3804, 0x00); delayMicroseconds(100); 293 | writebyte_cart(0x00, 0x3804, 0xff); delayMicroseconds(100); 294 | writebyte_cart(0x00, 0x3804, 0x00); 295 | 296 | //STATが0以外になるまで待つ 297 | byte waitCount = 0; 298 | while (st018_readbyte_cart(0x00, 0x3804) == 0x00) { 299 | if (waitCount > 250) 300 | return true; 301 | waitCount++; 302 | delayMicroseconds(8000); 303 | } 304 | 305 | return false; 306 | } 307 | 308 | void st018_memread(byte cmd, byte n_kb) { 309 | st018_command(cmd); 310 | 311 | // 1バイト読み捨て 312 | st018_readData(); 313 | 314 | for (byte j = 0; j < n_kb; j++) { 315 | for (word i = 0; i < 1024; i++) { 316 | //serial_send(st018_readData()); 317 | Serial.write(st018_readData()); 318 | } 319 | 320 | // 1KB毎に指示を待つ 321 | while (Serial.available() < 1); 322 | 323 | // 'e' = Cancel 324 | if (Serial.read() == 'e') 325 | break; 326 | 327 | } 328 | } 329 | 330 | bool st018_biosDump(byte cmd) { 331 | // ROMと違ってI/OポートなのでCSは非アクティブである必要がある 332 | digitalWrite(CS, HIGH); 333 | 334 | // reset 335 | if (st018_reset()) { 336 | Serial.print("RST ERR"); 337 | return true; 338 | } 339 | 340 | Serial.write('S'); 341 | 342 | // dump program ROM (128KB) 343 | st018_memread(0xF3, 128); 344 | 345 | // dump data ROM (32KB) 346 | st018_memread(0xF4, 32); 347 | 348 | // reset 349 | st018_reset(); 350 | 351 | return 0; 352 | } 353 | 354 | inline void setCtrlBus(byte b) { 355 | // digitalWrite(OE , (b & 0b0001) ? HIGH : LOW); 356 | digitalWrite(CS , (b & 0b0010) ? HIGH : LOW); 357 | // digitalWrite(WE , (b & 0b0100) ? HIGH : LOW); 358 | digitalWrite(RST, (b & 0b1000) ? HIGH : LOW); 359 | } 360 | 361 | inline byte readData() 362 | { 363 | CART_OUTPUT_ENABLE(); 364 | setDataDir(INPUT); 365 | BB_OUT_ENABLE(); 366 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 367 | 368 | byte b = (PIND >> 2) | ((PINB << 6)); 369 | 370 | BB_OUT_DISABLE(); 371 | setDataDir(OUTPUT); 372 | CART_OUTPUT_DISABLE(); 373 | 374 | return b; 375 | } 376 | 377 | 378 | 379 | 380 | // /REを制御して読み込む 381 | inline byte readbyte_cart(byte bank, word address) { 382 | setAddress(bank, address, false); 383 | 384 | // /OEのパルスを成立させるためのWait 385 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 386 | //__asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 387 | 388 | CART_OUTPUT_ENABLE(); 389 | 390 | // NOPの数検証済み 4LINE(SA1のSRAM WRITE VERIFY) 391 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 392 | 393 | byte ret = readData(); 394 | 395 | CART_OUTPUT_DISABLE(); 396 | return ret; 397 | } 398 | 399 | 400 | inline byte st018_readbyte_cart(byte bank, word address) { 401 | setAddress(bank, address, false); 402 | 403 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 404 | 405 | CART_OUTPUT_ENABLE(); 406 | 407 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 408 | 409 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 410 | 411 | byte ret = readData(); 412 | 413 | CART_OUTPUT_DISABLE(); 414 | return ret; 415 | } 416 | 417 | // /WRとかをちゃんと制御して書き込む 418 | void writebyte_cart(byte bank, word address, byte data) { 419 | setAddress(bank, address, false); 420 | setData(data); 421 | 422 | BB_DIR_OUTPUT(); 423 | BB_OUT_ENABLE(); 424 | 425 | // /WEパルス成立 & 74HC245 -> SFC へのデータ安定化のWAIT 426 | // 74HC245 -> SFC へのデータ安定化 427 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 428 | 429 | CART_WRITE_ENABLE(); 430 | 431 | // /WEパルスの時間稼ぎ 432 | // SA1のSRAM Writeではこの5行分の長さが必要(TESTED: SA1 SRAM WRITE) 433 | __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t"); 434 | 435 | CART_WRITE_DISABLE(); 436 | 437 | BB_OUT_DISABLE(); 438 | BB_DIR_INPUT(); 439 | } 440 | 441 | #ifndef _ENABLE_CIC 442 | 443 | byte haveClockModule = 0; 444 | #endif 445 | #ifdef _ENABLE_CIC 446 | byte haveClockModule = 0; 447 | //[Nintendo Cart Reader]より 448 | void setupCloclGen(bool clk1_en, bool clk2_en, bool clk3_en, bool clk2_oc) { 449 | // Adafruit Clock Generator 450 | ENABLE_I2C(); 451 | haveClockModule = clockgen.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0); 452 | /* clockgen.pll_reset(SI5351_PLLA); 453 | clockgen.pll_reset(SI5351_PLLB);*/ 454 | if (haveClockModule) { 455 | clockgen.set_pll(SI5351_PLL_FIXED, SI5351_PLLA); 456 | clockgen.set_pll(SI5351_PLL_FIXED, SI5351_PLLB); 457 | clockgen.set_freq(2147727200ULL, SI5351_CLK0); 458 | if (clk2_oc) { 459 | //over clock for SA-1 460 | clockgen.set_freq(659000000ULL, SI5351_CLK1); 461 | } else { 462 | //normal clock 463 | clockgen.set_freq(357954500ULL, SI5351_CLK1); 464 | } 465 | clockgen.set_freq(307200000ULL, SI5351_CLK2); 466 | clockgen.output_enable(SI5351_CLK0, clk1_en); 467 | clockgen.output_enable(SI5351_CLK1, clk2_en); 468 | clockgen.output_enable(SI5351_CLK2, clk3_en); 469 | /* clockgen.set_clock_invert(SI5351_CLK0, 1); 470 | clockgen.set_clock_invert(SI5351_CLK1, 1); 471 | clockgen.set_clock_invert(SI5351_CLK2, 1);*/ 472 | } 473 | DISABLE_I2C(); 474 | } 475 | #endif 476 | 477 | void setup() 478 | { 479 | 480 | 481 | //コントロールピンをすべてOUTPUTに 482 | for (int i = GD; i <= RST; i++) 483 | pinMode(i, OUTPUT); 484 | 485 | digitalWrite(GD, LOW); //GD(PORTB 02) PWM DISABLE 486 | digitalWrite(GD, HIGH); // Disable 487 | digitalWrite(G0, HIGH); // Disable 488 | digitalWrite(G1, HIGH); // Disable 489 | digitalWrite(G2, HIGH); // Disable 490 | 491 | digitalWrite(CK, LOW); 492 | 493 | digitalWrite(DIR, LOW); // 入力 494 | 495 | digitalWrite(OE, HIGH); 496 | digitalWrite(CS, HIGH); 497 | digitalWrite(WE, HIGH); 498 | digitalWrite(RST, LOW); 499 | 500 | 501 | //アクセスランプを消灯&アドレスバス初期化 502 | //setAddressは差分しかセットしないので、手動でFlipFlopを初期化 503 | setDataDir(OUTPUT); 504 | BB_OUT_DISABLE(); 505 | setFF(0, 0x00); lastadr[0] = 0; 506 | setFF(1, 0x00); lastadr[1] = 0; 507 | setFF(2, 0x00); lastadr[2] = 0; 508 | 509 | 510 | #ifdef _ENABLE_CIC 511 | //クロックジェネレータの動作を開始 512 | setupCloclGen(true, false, true, false); 513 | #endif 514 | 515 | digitalWrite(OE, HIGH); 516 | digitalWrite(CS, LOW); 517 | digitalWrite(WE, HIGH); 518 | digitalWrite(RST, HIGH); 519 | 520 | Serial.begin(INITIAL_BAUDRATE, SERIAL_CONFIG); 521 | } 522 | 523 | 524 | //flash config 525 | #define FLASH_COMMAND_LENGTH 3 526 | byte flash_bank; 527 | word flash_address[FLASH_COMMAND_LENGTH]; // = {0xAAAA,0x5555,0xAAAA} 528 | byte flash_cmd[FLASH_COMMAND_LENGTH]; // = {0xAA ,0x55, [cmd] } 529 | // flash_cmdの最後のバイトは適宜コマンドに置き換え 530 | 531 | void loop() { 532 | while (Serial.available() == 0); //wait command 533 | byte cmd = Serial.read(); 534 | 535 | switch (cmd) { 536 | case 'R': 537 | case 'r': 538 | readCart((cmd == 'r')); 539 | break; 540 | 541 | case 'a': 542 | case 'A': 543 | { //Set address 544 | while (Serial.available() < 3) ; 545 | byte isLoROM = (cmd == 'a'); 546 | word address = Serial_readWord(); 547 | byte bank = Serial.read(); 548 | setAddress(bank, address, isLoROM); 549 | } break; 550 | 551 | case 'b': 552 | { //Set boudrate 553 | while (Serial.available() < 4); 554 | 555 | unsigned long new_boudrate = Serial.read() 556 | | (unsigned long)Serial.read() << 8 557 | | (unsigned long)Serial.read() << 16 558 | | (unsigned long)Serial.read() << 24; 559 | 560 | Serial.end(); 561 | Serial.begin(new_boudrate); 562 | //Serial.flush(); 563 | //このあと、ファームチェックで値が正常に帰ってくることを確認してから 564 | //各種コマンドを投げてください 565 | setAddress(0xFF, 0xFFFF, false); 566 | } break; 567 | 568 | case 'c': 569 | { //set control bus(OE WD RST CS) 570 | while (Serial.available() < 1) ; 571 | setCtrlBus(Serial.read()); 572 | } break; 573 | 574 | case 'f': 575 | { // flash command 576 | while (Serial.available() < 1); 577 | flash_cmd[FLASH_COMMAND_LENGTH] = Serial.read(); 578 | for (byte i = 0; i < FLASH_COMMAND_LENGTH; i++) { 579 | writebyte_cart(flash_bank, flash_address[i], flash_cmd[i]); 580 | } 581 | } break; 582 | 583 | case 'F': 584 | { // flash config 585 | // flash_bank + (flash_address,flash_cmd) * FLASH_COMMAND_LENGTH 586 | while (Serial.available() < (1 + FLASH_COMMAND_LENGTH * 3)); 587 | flash_bank = Serial.read(); 588 | for (byte i = 0; i < FLASH_COMMAND_LENGTH; i++) { 589 | flash_address[i] = Serial_readWord(); 590 | flash_cmd[i] = Serial.read(); 591 | } 592 | } break; 593 | 594 | case 'g': 595 | { //CPU ClockGen Start/Stop 596 | while (Serial.available() < 1); 597 | byte mode = Serial.read(); 598 | #ifdef _ENABLE_CIC 599 | if ((mode & 0xf0) == 0x30) { 600 | setupCloclGen(mode & 0x01, mode & 0x02, mode & 0x04, mode & 0x08); 601 | } else { 602 | setupCloclGen(true, false, true, false); 603 | } 604 | #endif 605 | } //続いてステータスの返却へ 606 | 607 | case 'G': { 608 | //return clock module status 609 | Serial.write('0' | haveClockModule); 610 | } break; 611 | 612 | case 'i': 613 | { // print infomation 614 | Serial.write(FIRMWARE_ID); 615 | Serial.write((char)FIRMWARE_VERSION); 616 | #ifdef _ENABLE_CIC 617 | Serial.print("-CIC "); 618 | Serial.print(haveClockModule ? "[con]" : "[dis]"); 619 | #endif 620 | Serial.print("\nABus:"); 621 | Serial.print(lastadr[2], HEX); 622 | Serial.print(lastadr[1], HEX); 623 | Serial.print(lastadr[0], HEX); 624 | Serial.print("\nFash:\n"); 625 | Serial.print(flash_bank, HEX); Serial.print(flash_address[0], HEX); Serial.print(":"); Serial.print(flash_cmd[0], HEX); Serial.print(",\t"); 626 | Serial.print(flash_bank, HEX); Serial.print(flash_address[1], HEX); Serial.print(":"); Serial.print(flash_cmd[1], HEX); Serial.print(",\t"); 627 | Serial.print(flash_bank, HEX); Serial.print(flash_address[2], HEX); Serial.print("\n"); 628 | for (byte i = 0; i < 20; i++) { 629 | Serial.print((char)readbyte_cart(0x00, 0xffc0 + i)); 630 | } Serial.print("\n"); 631 | 632 | } break; 633 | 634 | case 's': 635 | { // set register(1byte write) 636 | Serial.print((char)readbyte_cart(0xc0, 0x0000)); 637 | writebyte_cart(0x00, 0x2220, 04); 638 | Serial.print((char)readbyte_cart(0xc0, 0x0000)); 639 | } break; 640 | 641 | case 'S': 642 | { // setup SF memory 643 | digitalWrite(OE, HIGH); 644 | digitalWrite(CS, LOW); 645 | digitalWrite(WE, HIGH); 646 | digitalWrite(RST, HIGH); 647 | 648 | writebyte_cart(0x00, 0x2400, 0x09); 649 | byte status = readbyte_cart(0x00, 0x2400); 650 | writebyte_cart(0x00, 0x2401, 0x28); 651 | writebyte_cart(0x00, 0x2401, 0x84); 652 | writebyte_cart(0x00, 0x2400, 0x06); 653 | writebyte_cart(0x00, 0x2400, 0x39); 654 | 655 | if ( readbyte_cart(0x00, 0x2400) == 0x2A) 656 | Serial.print("OK"); 657 | else 658 | Serial.print("NG"); 659 | Serial.write(readbyte_cart(0x00, 0x2400)); 660 | } break; 661 | 662 | case 'T': 663 | case 't': 664 | { // set register(1byte write) 665 | while (Serial.available() < 4); 666 | byte bank = Serial.read(); 667 | word address = Serial_readWord(); 668 | byte data = Serial.read(); 669 | 670 | //lorom -> real address 671 | if (cmd == 't') { 672 | //LO_TO_REAL_ADDRESS(bank, address); 673 | } 674 | // digitalWrite(CS, HIGH); 675 | // CART_OUTPUT_DISABLE(); 676 | // CART_WRITE_DISABLE(); 677 | writebyte_cart(bank, address, data); 678 | } break; 679 | 680 | case 'W': 681 | case 'w': 682 | { //bulk write cart 683 | byte isLoROM = (cmd == 'w'); 684 | writeCart(isLoROM); 685 | } break; 686 | 687 | case 'v': 688 | { //Return fimware version 689 | Serial.write(FIRMWARE_ID); 690 | setAddress(0x00, lastadr[1] << 8, false); 691 | } break; 692 | 693 | case 'z': 694 | case 'Z': 695 | { 696 | st018_biosDump(cmd); 697 | } break; 698 | } 699 | } 700 | -------------------------------------------------------------------------------- /icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/icon.ico -------------------------------------------------------------------------------- /resource.sbp: -------------------------------------------------------------------------------- 1 | Const IDI_ICON1=101 2 | -------------------------------------------------------------------------------- /resource_bin.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/resource_bin.res -------------------------------------------------------------------------------- /se/SE_OK.dms: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/se/SE_OK.dms -------------------------------------------------------------------------------- /sfc_doc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/sfc_doc.txt -------------------------------------------------------------------------------- /ss/HongKongSA1.CE3: -------------------------------------------------------------------------------- 1 | +BSCH3_DATA_V.1.0 2 | +SHEETINFO,EL:0,VL:255,W:600,H:400,PROJ:,PAGES:1,PAGE:1,VER:83,INITPOS:0,-SHEETINFO 3 | +JUNCTION,L:0,X:280,Y:300,-JUNCTION 4 | +WIRE,L:0,X1:280,Y1:330,X2:290,Y2:330,-WIRE 5 | +WIRE,L:0,X1:270,Y1:340,X2:290,Y2:340,-WIRE 6 | +WIRE,L:0,X1:270,Y1:290,X2:270,Y2:340,-WIRE 7 | +WIRE,L:0,X1:260,Y1:280,X2:260,Y2:350,-WIRE 8 | +WIRE,L:0,X1:260,Y1:350,X2:290,Y2:350,-WIRE 9 | +WIRE,L:0,X1:350,Y1:330,X2:360,Y2:330,-WIRE 10 | +COMPONENT 11 | +BSCH3_LIB_V.1.0 12 | VER:82 13 | +PTN,N:VCC,X:21,Y:11 14 | +BMP 15 | @@OH@@ 16 | @A@D@@ 17 | @B@B@@ 18 | @D@A@@ 19 | @D@A@@ 20 | COOON@ 21 | @DBA@@ 22 | @DBA@@ 23 | @BBB@@ 24 | @ABD@@ 25 | @@OH@@ 26 | -BMP 27 | +C,W:1,S:0,F:-1,X:5,Y:0,X:15,Y:10,-C 28 | +L,W:1,S:0,CV:0,X:2,Y:5,X:18,Y:5,-L 29 | +L,W:1,S:0,CV:0,X:10,Y:5,X:10,Y:10,-L 30 | -PTN 31 | +COMP,N:VCC 32 | X:2,Y:1,B:1 33 | TYPE:GEN,FB:0 34 | R: 35 | P:VCC 36 | +PIN,N:,DF:FFFFFFFF,L:B1,T:Sm,M:1,-PIN 37 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 38 | -BSCH3_LIB_V.1.0 39 | L:0,X:100,Y:30,LIB:VCC,DIR:0,BLK:0,N:VCC,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 40 | +WIRE,L:0,X1:90,Y1:40,X2:90,Y2:50,-WIRE 41 | +WIRE,L:0,X1:90,Y1:50,X2:110,Y2:50,-WIRE 42 | +WIRE,L:0,X1:90,Y1:60,X2:110,Y2:60,-WIRE 43 | +WIRE,L:0,X1:180,Y1:60,X2:210,Y2:60,-WIRE 44 | +WIRE,L:0,X1:180,Y1:70,X2:200,Y2:70,-WIRE 45 | +WIRE,L:0,X1:210,Y1:60,X2:210,Y2:210,-WIRE 46 | +WIRE,L:0,X1:200,Y1:70,X2:200,Y2:170,-WIRE 47 | +WIRE,L:0,X1:180,Y1:80,X2:190,Y2:80,-WIRE 48 | +WIRE,L:0,X1:190,Y1:80,X2:190,Y2:190,-WIRE 49 | +COMPONENT 50 | +BSCH3_LIB_V.1.0 51 | VER:82 52 | +PTN,N:GND,X:21,Y:11 53 | +BMP 54 | @@B@@G 55 | @@B@@G 56 | @@B@@G 57 | COOONG 58 | COOONG 59 | @DA@DG 60 | @DA@DG 61 | @HB@HG 62 | @HB@HG 63 | A@DA@G 64 | A@DA@G 65 | -BMP 66 | +L,W:1,S:0,CV:0,X:3,Y:10,X:6,Y:3,-L 67 | +L,W:1,S:0,CV:0,X:9,Y:10,X:12,Y:3,-L 68 | +L,W:1,S:0,CV:0,X:15,Y:10,X:18,Y:3,-L 69 | +PG,W:1,S:0,F:1,N:4,X:2,Y:3,X:18,Y:3,X:18,Y:4,X:2,Y:4,-PG 70 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:3,-L 71 | -PTN 72 | +COMP,N:GND 73 | X:2,Y:1,B:1 74 | TYPE:GEN,FB:0 75 | R: 76 | P:GND 77 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 78 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 79 | -BSCH3_LIB_V.1.0 80 | L:0,X:240,Y:80,LIB:GND,DIR:0,BLK:0,N:GND,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 81 | +WIRE,L:0,X1:180,Y1:50,X2:230,Y2:50,-WIRE 82 | +WIRE,L:0,X1:230,Y1:50,X2:230,Y2:70,-WIRE 83 | +COMPONENT 84 | +BSCH3_LIB_V.1.0 85 | VER:82 86 | +PTN,N:GND,X:21,Y:11 87 | +BMP 88 | @@B@@G 89 | @@B@@G 90 | @@B@@G 91 | COOONG 92 | COOONG 93 | @DA@DG 94 | @DA@DG 95 | @HB@HG 96 | @HB@HG 97 | A@DA@G 98 | A@DA@G 99 | -BMP 100 | +L,W:1,S:0,CV:0,X:3,Y:10,X:6,Y:3,-L 101 | +L,W:1,S:0,CV:0,X:9,Y:10,X:12,Y:3,-L 102 | +L,W:1,S:0,CV:0,X:15,Y:10,X:18,Y:3,-L 103 | +PG,W:1,S:0,F:1,N:4,X:2,Y:3,X:18,Y:3,X:18,Y:4,X:2,Y:4,-PG 104 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:3,-L 105 | -PTN 106 | +COMP,N:GND 107 | X:2,Y:1,B:1 108 | TYPE:GEN,FB:0 109 | R: 110 | P:GND 111 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 112 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 113 | -BSCH3_LIB_V.1.0 114 | L:0,X:360,Y:380,LIB:GND,DIR:0,BLK:0,N:GND,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 115 | +TAG,L:0,X:30,Y:170,D:1,T:1,S:p24,-TAG 116 | +TAG,L:0,X:30,Y:190,D:1,T:1,S:p25,-TAG 117 | +TAG,L:0,X:30,Y:210,D:1,T:1,S:p55,-TAG 118 | +TAG,L:0,X:30,Y:230,D:1,T:1,S:p56,-TAG 119 | +TAG,L:0,X:30,Y:250,D:1,T:1,S:p57,-TAG 120 | +WIRE,L:0,X1:70,Y1:210,X2:210,Y2:210,-WIRE 121 | +WIRE,L:0,X1:70,Y1:170,X2:200,Y2:170,-WIRE 122 | +WIRE,L:0,X1:70,Y1:190,X2:190,Y2:190,-WIRE 123 | +TAG,L:0,X:30,Y:150,D:1,T:1,S:p 1,-TAG 124 | +JUNCTION,L:0,X:90,Y:230,-JUNCTION 125 | +WIRE,L:0,X1:140,Y1:330,X2:150,Y2:330,-WIRE 126 | +WIRE,L:0,X1:140,Y1:300,X2:140,Y2:330,-WIRE 127 | +WIRE,L:0,X1:130,Y1:290,X2:130,Y2:340,-WIRE 128 | +WIRE,L:0,X1:130,Y1:340,X2:150,Y2:340,-WIRE 129 | +WIRE,L:0,X1:120,Y1:350,X2:150,Y2:350,-WIRE 130 | +COMPONENT 131 | +BSCH3_LIB_V.1.0 132 | VER:82 133 | +PTN,N:GND,X:21,Y:11 134 | +BMP 135 | @@B@@G 136 | @@B@@G 137 | @@B@@G 138 | COOONG 139 | COOONG 140 | @DA@DG 141 | @DA@DG 142 | @HB@HG 143 | @HB@HG 144 | A@DA@G 145 | A@DA@G 146 | -BMP 147 | +L,W:1,S:0,CV:0,X:3,Y:10,X:6,Y:3,-L 148 | +L,W:1,S:0,CV:0,X:9,Y:10,X:12,Y:3,-L 149 | +L,W:1,S:0,CV:0,X:15,Y:10,X:18,Y:3,-L 150 | +PG,W:1,S:0,F:1,N:4,X:2,Y:3,X:18,Y:3,X:18,Y:4,X:2,Y:4,-PG 151 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:3,-L 152 | -PTN 153 | +COMP,N:GND 154 | X:2,Y:1,B:1 155 | TYPE:GEN,FB:0 156 | R: 157 | P:GND 158 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 159 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 160 | -BSCH3_LIB_V.1.0 161 | L:0,X:160,Y:380,LIB:GND,DIR:0,BLK:0,N:GND,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 162 | +WIRE,L:0,X1:220,Y1:300,X2:220,Y2:330,-WIRE 163 | +WIRE,L:0,X1:210,Y1:330,X2:220,Y2:330,-WIRE 164 | +JUNCTION,L:0,X:220,Y:300,-JUNCTION 165 | +WIRE,L:0,X1:210,Y1:340,X2:230,Y2:340,-WIRE 166 | +WIRE,L:0,X1:230,Y1:230,X2:230,Y2:340,-WIRE 167 | +WIRE,L:0,X1:120,Y1:280,X2:120,Y2:350,-WIRE 168 | +WIRE,L:0,X1:120,Y1:280,X2:260,Y2:280,-WIRE 169 | +WIRE,L:0,X1:130,Y1:290,X2:270,Y2:290,-WIRE 170 | +WIRE,L:0,X1:210,Y1:350,X2:240,Y2:350,-WIRE 171 | +WIRE,L:0,X1:240,Y1:250,X2:240,Y2:350,-WIRE 172 | +WIRE,L:0,X1:70,Y1:250,X2:240,Y2:250,-WIRE 173 | +WIRE,L:0,X1:210,Y1:360,X2:250,Y2:360,-WIRE 174 | +WIRE,L:0,X1:250,Y1:150,X2:250,Y2:360,-WIRE 175 | +WIRE,L:0,X1:70,Y1:150,X2:250,Y2:150,-WIRE 176 | +COMMENT,L:0,X:310,Y:40,D:1,DIR:0,W:-1,S:こーどねーむホンコン%20with%20Arduino,FN:01フロップデザイン,TAG:0,FS:16,FF:,-COMMENT 177 | +LABEL,L:0,X:30,Y:130,D:1,S:SFC%20Cart,-LABEL 178 | +DASH,L:0,X1:20,Y1:290,X2:80,Y2:290,CURV:0,CTX1:0,CTY1:20,CTX2:0,CTY2:20,WDT:1,LS:DASH,SSTL:NORM,ESTL:NORM,EMS:8,-DASH 179 | +DASH,L:0,X1:20,Y1:130,X2:80,Y2:130,CURV:0,CTX1:0,CTY1:0,CTX2:0,CTY2:0,WDT:1,LS:DASH,SSTL:NORM,ESTL:NORM,EMS:8,-DASH 180 | +DASH,L:0,X1:490,Y1:110,X2:490,Y2:250,CURV:0,CTX1:90,CTY1:0,CTX2:90,CTY2:0,WDT:1,LS:DASH,SSTL:NORM,ESTL:NORM,EMS:8,-DASH 181 | +DASH,L:0,X1:490,Y1:250,X2:570,Y2:250,CURV:0,CTX1:90,CTY1:0,CTX2:90,CTY2:0,WDT:1,LS:DASH,SSTL:NORM,ESTL:NORM,EMS:8,-DASH 182 | +DASH,L:0,X1:570,Y1:250,X2:570,Y2:110,CURV:0,CTX1:90,CTY1:0,CTX2:90,CTY2:0,WDT:1,LS:DASH,SSTL:NORM,ESTL:NORM,EMS:8,-DASH 183 | +DASH,L:0,X1:570,Y1:110,X2:490,Y2:110,CURV:0,CTX1:90,CTY1:0,CTX2:90,CTY2:0,WDT:1,LS:DASH,SSTL:NORM,ESTL:NORM,EMS:8,-DASH 184 | +COMPONENT 185 | +BSCH3_LIB_V.1.0 186 | VER:82 187 | +COMP,N:IC8 188 | X:5,Y:5,B:1 189 | TYPE:GEN,FB:0 190 | R:U 191 | +PIN,N:,DF:FFFFFFFF,L:L1,T:,M:1,-PIN 192 | +PIN,N:,DF:FFFFFFFF,L:L2,T:,M:2,-PIN 193 | +PIN,N:,DF:FFFFFFFF,L:L3,T:,M:3,-PIN 194 | +PIN,N:,DF:FFFFFFFF,L:L4,T:,M:4,-PIN 195 | +PIN,N:,DF:FFFFFFFF,L:R4,T:,M:5,-PIN 196 | +PIN,N:,DF:FFFFFFFF,L:R3,T:,M:6,-PIN 197 | +PIN,N:,DF:FFFFFFFF,L:R2,T:,M:7,-PIN 198 | +PIN,N:,DF:FFFFFFFF,L:R1,T:,M:8,-PIN 199 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 200 | -BSCH3_LIB_V.1.0 201 | L:0,X:170,Y:90,LIB:IC8,DIR:0,BLK:0,N:PIC12F629,ND:1,NX:-50,NY:-54,NH:1,R:U,RD:1,RX:2,RY:10,RH:1,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 202 | +LABEL,L:0,X:100,Y:150,D:1,S:21.477MHz,-LABEL 203 | +LABEL,L:0,X:100,Y:230,D:1,S:CIC%20clock,-LABEL 204 | +LABEL,L:0,X:100,Y:210,D:1,S:CIC%20I/O%200,-LABEL 205 | +LABEL,L:0,X:100,Y:250,D:1,S:CPU%20Clock,-LABEL 206 | +COMPONENT 207 | +BSCH3_LIB_V.1.0 208 | VER:82 209 | +COMP,N:IC8 210 | X:4,Y:5,B:1 211 | TYPE:GEN,FB:0 212 | R:U 213 | +PIN,N:,DF:FFFFFFFF,L:L1,T:,M:1,-PIN 214 | +PIN,N:,DF:FFFFFFFF,L:L2,T:,M:2,-PIN 215 | +PIN,N:,DF:FFFFFFFF,L:L3,T:,M:3,-PIN 216 | +PIN,N:,DF:FFFFFFFF,L:L4,T:,M:4,-PIN 217 | +PIN,N:,DF:FFFFFFFF,L:R4,T:,M:5,-PIN 218 | +PIN,N:,DF:FFFFFFFF,L:R3,T:,M:6,-PIN 219 | +PIN,N:,DF:FFFFFFFF,L:R2,T:,M:7,-PIN 220 | +PIN,N:,DF:FFFFFFFF,L:R1,T:,M:8,-PIN 221 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 222 | -BSCH3_LIB_V.1.0 223 | L:0,X:200,Y:370,LIB:IC8,DIR:0,BLK:0,N:AE-Si5351A,ND:1,NX:-41,NY:-53,NH:0,R:U,RD:1,RX:2,RY:10,RH:1,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 224 | +COMPONENT 225 | +BSCH3_LIB_V.1.0 226 | VER:82 227 | +COMP,N:IC8 228 | X:4,Y:5,B:1 229 | TYPE:GEN,FB:0 230 | R:U 231 | +PIN,N:,DF:FFFFFFFF,L:L1,T:,M:1,-PIN 232 | +PIN,N:,DF:FFFFFFFF,L:L2,T:,M:2,-PIN 233 | +PIN,N:,DF:FFFFFFFF,L:L3,T:,M:3,-PIN 234 | +PIN,N:,DF:FFFFFFFF,L:L4,T:,M:4,-PIN 235 | +PIN,N:,DF:FFFFFFFF,L:R4,T:,M:5,-PIN 236 | +PIN,N:,DF:FFFFFFFF,L:R3,T:,M:6,-PIN 237 | +PIN,N:,DF:FFFFFFFF,L:R2,T:,M:7,-PIN 238 | +PIN,N:,DF:FFFFFFFF,L:R1,T:,M:8,-PIN 239 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 240 | -BSCH3_LIB_V.1.0 241 | L:0,X:340,Y:370,LIB:IC8,DIR:0,BLK:0,N:AE-PCA9306,ND:1,NX:-43,NY:-52,NH:0,R:U,RD:1,RX:2,RY:10,RH:1,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 242 | +DASH,L:0,X1:20,Y1:130,X2:20,Y2:290,CURV:0,CTX1:0,CTY1:0,CTX2:0,CTY2:0,WDT:1,LS:DASH,SSTL:NORM,ESTL:NORM,EMS:8,-DASH 243 | +DASH,L:0,X1:80,Y1:130,X2:80,Y2:290,CURV:0,CTX1:0,CTY1:0,CTX2:0,CTY2:0,WDT:1,LS:DASH,SSTL:NORM,ESTL:NORM,EMS:8,-DASH 244 | +COMMENT,L:0,X:370,Y:370,D:1,DIR:0,W:-1,S:I2C%20voltage-level%20translator%20%0D%0A5V%20->%203V,FN:Tahoma,TAG:0,FS:8,FF:,-COMMENT 245 | +TAG,L:0,X:30,Y:270,D:1,T:1,S:p33,-TAG 246 | +COMPONENT 247 | +BSCH3_LIB_V.1.0 248 | VER:82 249 | +PTN,N:GND,X:21,Y:11 250 | +BMP 251 | @@B@@G 252 | @@B@@G 253 | @@B@@G 254 | COOONG 255 | COOONG 256 | @DA@DG 257 | @DA@DG 258 | @HB@HG 259 | @HB@HG 260 | A@DA@G 261 | A@DA@G 262 | -BMP 263 | +L,W:1,S:0,CV:0,X:3,Y:10,X:6,Y:3,-L 264 | +L,W:1,S:0,CV:0,X:9,Y:10,X:12,Y:3,-L 265 | +L,W:1,S:0,CV:0,X:15,Y:10,X:18,Y:3,-L 266 | +PG,W:1,S:0,F:1,N:4,X:2,Y:3,X:18,Y:3,X:18,Y:4,X:2,Y:4,-PG 267 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:3,-L 268 | -PTN 269 | +COMP,N:GND 270 | X:2,Y:1,B:1 271 | TYPE:GEN,FB:0 272 | R: 273 | P:GND 274 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 275 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 276 | -BSCH3_LIB_V.1.0 277 | L:0,X:110,Y:310,LIB:GND,DIR:0,BLK:0,N:GND,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 278 | +WIRE,L:0,X1:70,Y1:270,X2:100,Y2:270,-WIRE 279 | +WIRE,L:0,X1:100,Y1:270,X2:100,Y2:300,-WIRE 280 | +LABEL,L:0,X:100,Y:270,D:1,S:REFRESH,-LABEL 281 | +LABEL,L:0,X:100,Y:190,D:1,S:CIC%20reset,-LABEL 282 | +JUNCTION,L:0,X:90,Y:40,-JUNCTION 283 | +COMPONENT 284 | +BSCH3_LIB_V.1.0 285 | VER:82 286 | +PTN,N:R,X:21,Y:31 287 | +BMP 288 | @@B@@G 289 | @@B@@G 290 | @@B@@G 291 | @@B@@G 292 | @@F@@G 293 | @AH@@G 294 | @F@@@G 295 | @AH@@G 296 | @@F@@G 297 | @@AH@G 298 | @@@F@G 299 | @@AH@G 300 | @@F@@G 301 | @AH@@G 302 | @F@@@G 303 | @AH@@G 304 | @@F@@G 305 | @@AH@G 306 | @@@F@G 307 | @@AH@G 308 | @@F@@G 309 | @AH@@G 310 | @F@@@G 311 | @AH@@G 312 | @@F@@G 313 | @@AH@G 314 | @@@F@G 315 | @@AH@G 316 | @@B@@G 317 | @@B@@G 318 | @@B@@G 319 | -BMP 320 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:4,-L 321 | +L,W:1,S:0,CV:0,X:10,Y:4,X:5,Y:6,-L 322 | +L,W:1,S:0,CV:0,X:5,Y:6,X:14,Y:10,-L 323 | +L,W:1,S:0,CV:0,X:14,Y:10,X:5,Y:14,-L 324 | +L,W:1,S:0,CV:0,X:5,Y:14,X:14,Y:18,-L 325 | +L,W:1,S:0,CV:0,X:14,Y:18,X:5,Y:22,-L 326 | +L,W:1,S:0,CV:0,X:5,Y:22,X:14,Y:26,-L 327 | +L,W:1,S:0,CV:0,X:14,Y:26,X:10,Y:28,-L 328 | +L,W:1,S:0,CV:0,X:10,Y:28,X:10,Y:31,-L 329 | -PTN 330 | +COMP,N:R 331 | X:2,Y:3,B:1 332 | TYPE:GEN,FB:0 333 | R:R 334 | P:R 335 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 336 | +PIN,N:,DF:FFFFFFFF,L:B1,T:Sm,M:2,-PIN 337 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 338 | -BSCH3_LIB_V.1.0 339 | L:0,X:80,Y:90,LIB:R,DIR:1,BLK:0,N:R,ND:1,NX:2,NY:20,NH:1,R:R,RD:1,RX:2,RY:10,RH:1,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 340 | +COMPONENT 341 | +BSCH3_LIB_V.1.0 342 | VER:82 343 | +PTN,N:GND,X:21,Y:11 344 | +BMP 345 | @@B@@G 346 | @@B@@G 347 | @@B@@G 348 | COOONG 349 | COOONG 350 | @DA@DG 351 | @DA@DG 352 | @HB@HG 353 | @HB@HG 354 | A@DA@G 355 | A@DA@G 356 | -BMP 357 | +L,W:1,S:0,CV:0,X:3,Y:10,X:6,Y:3,-L 358 | +L,W:1,S:0,CV:0,X:9,Y:10,X:12,Y:3,-L 359 | +L,W:1,S:0,CV:0,X:15,Y:10,X:18,Y:3,-L 360 | +PG,W:1,S:0,F:1,N:4,X:2,Y:3,X:18,Y:3,X:18,Y:4,X:2,Y:4,-PG 361 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:3,-L 362 | -PTN 363 | +COMP,N:GND 364 | X:2,Y:1,B:1 365 | TYPE:GEN,FB:0 366 | R: 367 | P:GND 368 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 369 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 370 | -BSCH3_LIB_V.1.0 371 | L:0,X:50,Y:100,LIB:GND,DIR:0,BLK:0,N:GND,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 372 | +WIRE,L:0,X1:90,Y1:80,X2:110,Y2:80,-WIRE 373 | +WIRE,L:0,X1:80,Y1:40,X2:90,Y2:40,-WIRE 374 | +WIRE,L:0,X1:90,Y1:60,X2:90,Y2:230,-WIRE 375 | +JUNCTION,L:0,X:80,Y:80,-JUNCTION 376 | +COMPONENT 377 | +BSCH3_LIB_V.1.0 378 | VER:82 379 | +PTN,N:PUSHSW,X:21,Y:21 380 | +BMP 381 | @@G@@@ 382 | @@HH@@ 383 | @I@D@@ 384 | @I@D@@ 385 | @I@D@@ 386 | @HHH@@ 387 | @HG@@@ 388 | GH@@@@ 389 | GH@@@@ 390 | GH@@@@ 391 | GH@@@@ 392 | GH@@@@ 393 | GH@@@@ 394 | GH@@@@ 395 | @HG@@@ 396 | @HHH@@ 397 | @I@D@@ 398 | @I@D@@ 399 | @I@D@@ 400 | @@HH@@ 401 | @@G@@@ 402 | -BMP 403 | +PG,W:1,S:0,F:1,N:4,X:1,Y:7,X:4,Y:7,X:4,Y:13,X:1,Y:13,-PG 404 | +L,W:1,S:0,CV:0,X:4,Y:2,X:4,Y:18,-L 405 | +C,W:1,S:0,F:-1,X:7,Y:0,X:13,Y:6,-C 406 | +C,W:1,S:0,F:-1,X:7,Y:14,X:13,Y:20,-C 407 | -PTN 408 | +COMP,N:PUSHSW 409 | X:2,Y:2,B:1 410 | TYPE:GEN,FB:0 411 | R:SW 412 | P:PUSHSW 413 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 414 | +PIN,N:,DF:FFFFFFFF,L:B1,T:Sm,M:2,-PIN 415 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 416 | -BSCH3_LIB_V.1.0 417 | L:0,X:90,Y:70,LIB:PUSHSW,DIR:0,BLK:0,N:CIC%20RST,ND:1,NX:-65,NY:-5,NH:0,R:SW,RD:1,RX:2,RY:10,RH:1,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 418 | +LABEL,L:0,X:100,Y:170,D:1,S:CIC%20I/O%201,-LABEL 419 | +WIRE,L:0,X1:100,Y1:70,X2:110,Y2:70,-WIRE 420 | +WIRE,L:0,X1:100,Y1:70,X2:100,Y2:130,-WIRE 421 | +LABEL,L:0,X:110,Y:30,D:1,S:PIC12F629,-LABEL 422 | +LABEL,L:0,X:130,Y:40,D:1,S:(SnesCIC),-LABEL 423 | +TAG,L:0,X:510,Y:140,D:1,T:1,S:+5V,-TAG 424 | +TAG,L:0,X:510,Y:220,D:1,T:1,S:GND,-TAG 425 | +WIRE,L:0,X1:500,Y1:220,X2:510,Y2:220,-WIRE 426 | +WIRE,L:0,X1:500,Y1:220,X2:500,Y2:230,-WIRE 427 | +TAG,L:0,X:510,Y:200,D:1,T:1,S:SDA,-TAG 428 | +TAG,L:0,X:510,Y:180,D:1,T:1,S:SCL,-TAG 429 | +WIRE,L:0,X1:460,Y1:180,X2:460,Y2:340,-WIRE 430 | +WIRE,L:0,X1:460,Y1:180,X2:510,Y2:180,-WIRE 431 | +WIRE,L:0,X1:470,Y1:200,X2:510,Y2:200,-WIRE 432 | +WIRE,L:0,X1:470,Y1:200,X2:470,Y2:350,-WIRE 433 | +COMPONENT 434 | +BSCH3_LIB_V.1.0 435 | VER:82 436 | +PTN,N:GND,X:21,Y:11 437 | +BMP 438 | @@B@@G 439 | @@B@@G 440 | @@B@@G 441 | COOONG 442 | COOONG 443 | @DA@DG 444 | @DA@DG 445 | @HB@HG 446 | @HB@HG 447 | A@DA@G 448 | A@DA@G 449 | -BMP 450 | +L,W:1,S:0,CV:0,X:3,Y:10,X:6,Y:3,-L 451 | +L,W:1,S:0,CV:0,X:9,Y:10,X:12,Y:3,-L 452 | +L,W:1,S:0,CV:0,X:15,Y:10,X:18,Y:3,-L 453 | +PG,W:1,S:0,F:1,N:4,X:2,Y:3,X:18,Y:3,X:18,Y:4,X:2,Y:4,-PG 454 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:3,-L 455 | -PTN 456 | +COMP,N:GND 457 | X:2,Y:1,B:1 458 | TYPE:GEN,FB:0 459 | R: 460 | P:GND 461 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 462 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 463 | -BSCH3_LIB_V.1.0 464 | L:0,X:510,Y:240,LIB:GND,DIR:0,BLK:0,N:GND,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 465 | +COMPONENT 466 | +BSCH3_LIB_V.1.0 467 | VER:82 468 | +PTN,N:VCC,X:21,Y:11 469 | +BMP 470 | @@OH@@ 471 | @A@D@@ 472 | @B@B@@ 473 | @D@A@@ 474 | @D@A@@ 475 | COOON@ 476 | @DBA@@ 477 | @DBA@@ 478 | @BBB@@ 479 | @ABD@@ 480 | @@OH@@ 481 | -BMP 482 | +C,W:1,S:0,F:-1,X:5,Y:0,X:15,Y:10,-C 483 | +L,W:1,S:0,CV:0,X:2,Y:5,X:18,Y:5,-L 484 | +L,W:1,S:0,CV:0,X:10,Y:5,X:10,Y:10,-L 485 | -PTN 486 | +COMP,N:VCC 487 | X:2,Y:1,B:1 488 | TYPE:GEN,FB:0 489 | R: 490 | P:VCC 491 | +PIN,N:,DF:FFFFFFFF,L:B1,T:Sm,M:1,-PIN 492 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 493 | -BSCH3_LIB_V.1.0 494 | L:0,X:510,Y:130,LIB:VCC,DIR:0,BLK:0,N:VCC,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 495 | +WIRE,L:0,X1:500,Y1:140,X2:510,Y2:140,-WIRE 496 | +LABEL,L:0,X:500,Y:100,D:1,S:Arduino%20UNO,-LABEL 497 | +TAG,L:0,X:510,Y:160,D:1,T:1,S:+3.3V,-TAG 498 | +WIRE,L:0,X1:280,Y1:300,X2:280,Y2:330,-WIRE 499 | +WIRE,L:0,X1:350,Y1:340,X2:460,Y2:340,-WIRE 500 | +WIRE,L:0,X1:350,Y1:350,X2:470,Y2:350,-WIRE 501 | +WIRE,L:0,X1:450,Y1:160,X2:510,Y2:160,-WIRE 502 | +COMPONENT 503 | +BSCH3_LIB_V.1.0 504 | VER:82 505 | +PTN,N:VCC,X:21,Y:11 506 | +BMP 507 | @@OH@@ 508 | @A@D@@ 509 | @B@B@@ 510 | @D@A@@ 511 | @D@A@@ 512 | COOON@ 513 | @DBA@@ 514 | @DBA@@ 515 | @BBB@@ 516 | @ABD@@ 517 | @@OH@@ 518 | -BMP 519 | +C,W:1,S:0,F:-1,X:5,Y:0,X:15,Y:10,-C 520 | +L,W:1,S:0,CV:0,X:2,Y:5,X:18,Y:5,-L 521 | +L,W:1,S:0,CV:0,X:10,Y:5,X:10,Y:10,-L 522 | -PTN 523 | +COMP,N:VCC 524 | X:2,Y:1,B:1 525 | TYPE:GEN,FB:0 526 | R: 527 | P:VCC 528 | +PIN,N:,DF:FFFFFFFF,L:B1,T:Sm,M:1,-PIN 529 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 530 | -BSCH3_LIB_V.1.0 531 | L:0,X:370,Y:280,LIB:VCC,DIR:0,BLK:0,N:VCC,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 532 | +WIRE,L:0,X1:450,Y1:160,X2:450,Y2:300,-WIRE 533 | +WIRE,L:0,X1:360,Y1:290,X2:360,Y2:330,-WIRE 534 | +COMPONENT 535 | +BSCH3_LIB_V.1.0 536 | VER:82 537 | +PTN,N:R,X:21,Y:31 538 | +BMP 539 | @@B@@G 540 | @@B@@G 541 | @@B@@G 542 | @@B@@G 543 | @@F@@G 544 | @AH@@G 545 | @F@@@G 546 | @AH@@G 547 | @@F@@G 548 | @@AH@G 549 | @@@F@G 550 | @@AH@G 551 | @@F@@G 552 | @AH@@G 553 | @F@@@G 554 | @AH@@G 555 | @@F@@G 556 | @@AH@G 557 | @@@F@G 558 | @@AH@G 559 | @@F@@G 560 | @AH@@G 561 | @F@@@G 562 | @AH@@G 563 | @@F@@G 564 | @@AH@G 565 | @@@F@G 566 | @@AH@G 567 | @@B@@G 568 | @@B@@G 569 | @@B@@G 570 | -BMP 571 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:4,-L 572 | +L,W:1,S:0,CV:0,X:10,Y:4,X:5,Y:6,-L 573 | +L,W:1,S:0,CV:0,X:5,Y:6,X:14,Y:10,-L 574 | +L,W:1,S:0,CV:0,X:14,Y:10,X:5,Y:14,-L 575 | +L,W:1,S:0,CV:0,X:5,Y:14,X:14,Y:18,-L 576 | +L,W:1,S:0,CV:0,X:14,Y:18,X:5,Y:22,-L 577 | +L,W:1,S:0,CV:0,X:5,Y:22,X:14,Y:26,-L 578 | +L,W:1,S:0,CV:0,X:14,Y:26,X:10,Y:28,-L 579 | +L,W:1,S:0,CV:0,X:10,Y:28,X:10,Y:31,-L 580 | -PTN 581 | +COMP,N:R 582 | X:2,Y:3,B:1 583 | TYPE:GEN,FB:0 584 | R:R 585 | P:R 586 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 587 | +PIN,N:,DF:FFFFFFFF,L:B1,T:Sm,M:2,-PIN 588 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 589 | -BSCH3_LIB_V.1.0 590 | L:0,X:290,Y:170,LIB:R,DIR:2,BLK:0,N:R,ND:1,NX:2,NY:20,NH:1,R:R,RD:1,RX:2,RY:10,RH:1,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 591 | +TAG,L:0,X:380,Y:120,D:1,T:2,S:RST(p26),-TAG 592 | +COMPONENT 593 | +BSCH3_LIB_V.1.0 594 | VER:82 595 | +PTN,N:LED,X:31,Y:11 596 | +BMP 597 | @@B@@@@A 598 | @OOOH@LA 599 | @GOOACLA 600 | @CONBIHA 601 | @AOLDJHA 602 | @@OHHD@A 603 | @@GA@@@A 604 | @OOOH@@A 605 | @OOOH@@A 606 | @@B@@@@A 607 | @@B@@@@A 608 | -BMP 609 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:1,-L 610 | +L,W:1,S:0,CV:0,X:10,Y:10,X:10,Y:8,-L 611 | +L,W:1,S:0,CV:0,X:15,Y:6,X:19,Y:2,-L 612 | +L,W:1,S:0,CV:0,X:19,Y:2,X:21,Y:5,-L 613 | +L,W:1,S:0,CV:0,X:21,Y:5,X:24,Y:2,-L 614 | +PG,W:1,S:0,F:1,N:3,X:10,Y:7,X:4,Y:1,X:16,Y:1,-PG 615 | +PG,W:1,S:0,F:1,N:4,X:4,Y:7,X:4,Y:8,X:16,Y:8,X:16,Y:7,-PG 616 | +PG,W:1,S:0,F:1,N:3,X:25,Y:1,X:22,Y:2,X:24,Y:4,-PG 617 | -PTN 618 | +COMP,N:LED 619 | X:3,Y:1,B:1 620 | TYPE:GEN,FB:0 621 | R:D 622 | P:LED 623 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 624 | +PIN,N:,DF:FFFFFFFF,L:B1,T:Sm,M:2,-PIN 625 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 626 | -BSCH3_LIB_V.1.0 627 | L:0,X:300,Y:190,LIB:LED,DIR:0,BLK:0,N:CIC%20STAT,ND:1,NX:0,NY:3,NH:0,R:D,RD:1,RX:2,RY:10,RH:1,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 628 | +WIRE,L:0,X1:280,Y1:170,X2:280,Y2:200,-WIRE 629 | +COMPONENT 630 | +BSCH3_LIB_V.1.0 631 | VER:82 632 | +PTN,N:GND,X:21,Y:11 633 | +BMP 634 | @@B@@G 635 | @@B@@G 636 | @@B@@G 637 | COOONG 638 | COOONG 639 | @DA@DG 640 | @DA@DG 641 | @HB@HG 642 | @HB@HG 643 | A@DA@G 644 | A@DA@G 645 | -BMP 646 | +L,W:1,S:0,CV:0,X:3,Y:10,X:6,Y:3,-L 647 | +L,W:1,S:0,CV:0,X:9,Y:10,X:12,Y:3,-L 648 | +L,W:1,S:0,CV:0,X:15,Y:10,X:18,Y:3,-L 649 | +PG,W:1,S:0,F:1,N:4,X:2,Y:3,X:18,Y:3,X:18,Y:4,X:2,Y:4,-PG 650 | +L,W:1,S:0,CV:0,X:10,Y:0,X:10,Y:3,-L 651 | -PTN 652 | +COMP,N:GND 653 | X:2,Y:1,B:1 654 | TYPE:GEN,FB:0 655 | R: 656 | P:GND 657 | +PIN,N:,DF:FFFFFFFF,L:T1,T:Sm,M:1,-PIN 658 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 659 | -BSCH3_LIB_V.1.0 660 | L:0,X:290,Y:210,LIB:GND,DIR:0,BLK:0,N:GND,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 661 | +COMMENT,L:0,X:400,Y:110,D:1,DIR:0,W:-1,S:元のRSTは切断,FN:Tahoma,TAG:0,FS:8,FF:I,-COMMENT 662 | +COMMENT,L:0,X:450,Y:60,D:1,DIR:0,W:-1,S:%20SA-1用追加回路%20v3.1,FN:01フロップデザイン,TAG:0,FS:13,FF:,-COMMENT 663 | +COMMENT,L:0,X:290,Y:110,D:1,DIR:0,W:-1,S:STANDALONE,FN:Tahoma,TAG:0,FS:8,FF:,-COMMENT 664 | +COMMENT,L:0,X:290,Y:130,D:1,DIR:0,W:-1,S:RST%20by%20CIC,FN:Tahoma,TAG:0,FS:8,FF:,-COMMENT 665 | +COMPONENT 666 | +BSCH3_LIB_V.1.0 667 | VER:82 668 | +PTN,N:SW1-2,X:21,Y:21 669 | +BMP 670 | @@@@@G 671 | @@@@OO 672 | @@@OOG 673 | @@@ONG 674 | @@@OHG 675 | @@GG@G 676 | @AHB@G 677 | @N@@@G 678 | C@@@@G 679 | L@@@@G 680 | @@@@@G 681 | @@@@@G 682 | @@@@@G 683 | @@@@@G 684 | @@@@@G 685 | @@@@@G 686 | @@@@@G 687 | @@@@@G 688 | @@@@@G 689 | @@@@@G 690 | @@@@@G 691 | -BMP 692 | +L,W:1,S:0,CV:0,X:0,Y:9,X:20,Y:1,-L 693 | +PG,W:0,S:0,F:1,N:3,X:20,Y:1,X:12,Y:2,X:14,Y:6,-PG 694 | -PTN 695 | +COMP,N:SW1-2 696 | X:2,Y:2,B:1 697 | TYPE:GEN,FB:0 698 | R:SW 699 | P:SW1-2 700 | +PIN,N:,DF:FFFFFFFF,L:R2,T:Nm,M:3,-PIN 701 | +PIN,N:,DF:FFFFFFFF,L:R0,T:Nm,M:1,-PIN 702 | +PIN,N:,DF:FFFFFFFF,L:L1,T:Nm,M:2,-PIN 703 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 704 | -BSCH3_LIB_V.1.0 705 | L:0,X:370,Y:130,LIB:SW1-2,DIR:4,BLK:0,N:RST%20SW,ND:1,NX:-6,NY:13,NH:0,R:SW,RD:1,RX:-34,RY:10,RH:1,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 706 | +COMPONENT 707 | +BSCH3_LIB_V.1.0 708 | VER:82 709 | +PTN,N:VCC,X:21,Y:11 710 | +BMP 711 | @@OH@@ 712 | @A@D@@ 713 | @B@B@@ 714 | @D@A@@ 715 | @D@A@@ 716 | COOON@ 717 | @DBA@@ 718 | @DBA@@ 719 | @BBB@@ 720 | @ABD@@ 721 | @@OH@@ 722 | -BMP 723 | +C,W:1,S:0,F:-1,X:5,Y:0,X:15,Y:10,-C 724 | +L,W:1,S:0,CV:0,X:2,Y:5,X:18,Y:5,-L 725 | +L,W:1,S:0,CV:0,X:10,Y:5,X:10,Y:10,-L 726 | -PTN 727 | +COMP,N:VCC 728 | X:2,Y:1,B:1 729 | TYPE:GEN,FB:0 730 | R: 731 | P:VCC 732 | +PIN,N:,DF:FFFFFFFF,L:B1,T:Sm,M:1,-PIN 733 | NOTE:,MFR:,MFRPN:,PKG:,-COMP 734 | -BSCH3_LIB_V.1.0 735 | L:0,X:290,Y:100,LIB:VCC,DIR:0,BLK:0,N:VCC,ND:1,NX:2,NY:20,NH:1,R:,RD:1,RX:2,RY:10,RH:0,NOTE:,PKG:,MFR:,MFRPN:,-COMPONENT 736 | +WIRE,L:0,X1:280,Y1:110,X2:340,Y2:110,-WIRE 737 | +COMMENT,L:0,X:380,Y:100,D:1,DIR:0,W:-1,S:SFC%20CartのRST(p26),FN:Tahoma,TAG:0,FS:8,FF:I,-COMMENT 738 | +COMMENT,L:0,X:400,Y:60,D:1,DIR:0,W:-1,S:[ClockModule],FN:Tahoma,TAG:0,FS:8,FF:,-COMMENT 739 | +JUNCTION,L:0,X:280,Y:130,-JUNCTION 740 | +COMMENT,L:0,X:520,Y:390,D:1,DIR:0,W:-1,S:by%20RGBA_CRT%202016-2020,FN:07やさしさアンチック,TAG:0,FS:5,FF:,-COMMENT 741 | +WIRE,L:0,X1:70,Y1:230,X2:90,Y2:230,-WIRE 742 | +WIRE,L:0,X1:90,Y1:230,X2:230,Y2:230,-WIRE 743 | +WIRE,L:0,X1:100,Y1:130,X2:280,Y2:130,-WIRE 744 | +WIRE,L:0,X1:280,Y1:130,X2:340,Y2:130,-WIRE 745 | +WIRE,L:0,X1:280,Y1:300,X2:450,Y2:300,-WIRE 746 | +WIRE,L:0,X1:140,Y1:300,X2:220,Y2:300,-WIRE 747 | +WIRE,L:0,X1:220,Y1:300,X2:280,Y2:300,-WIRE 748 | -BSCH3_DATA_V.1.0 749 | -------------------------------------------------------------------------------- /ss/NP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/ss/NP.png -------------------------------------------------------------------------------- /ss/SA1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/ss/SA1.png -------------------------------------------------------------------------------- /ss/SA1SS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/ss/SA1SS.png -------------------------------------------------------------------------------- /ss/wine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/ss/wine.png -------------------------------------------------------------------------------- /tool/bsmem.abp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/tool/bsmem.abp -------------------------------------------------------------------------------- /tool/bsmem.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/tool/bsmem.exe -------------------------------------------------------------------------------- /tool/snesum.abp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RGBA-CRT/HongKongArduinoClone/82f58964b7a9c5e6e53e1bb060d302bd85c427da/tool/snesum.abp --------------------------------------------------------------------------------