私は誰かがファイルに対して多くのことを行うことができるプログラムdd
を手伝ってくれることを望んでいます。
まず、このプログラムを使用してNESをカットしますROM 2つのファイル、グラフィックス、およびコード(1024 Kb for code、512 Kb(グラフィック用)。先頭に16バイトのヘッダーがあり、「NESASM」アセンブラーに入れる前に、まずそのヘッダーを削除する必要があります。
これがdd
の出番です。この設定で機能します。
dd if=MMC5 EXAtt MegaMan3.nes of=PRGrom.bin bs=16 skip=1 count=64k
dd if=MMC5 EXAtt MegaMan3.nes of=CHRgfx.bin bs=16 skip=65537 count=32k
最初の16バイトは必要に応じてスキップされます。ただし、完了するには時間がかかります。私はグーグルで何時間も検索しましたが、ここでstackexchangeでたくさんのスレッドを見て、iflag=skip_bytes
...を使用してこれをbytesブロックではありません。しかし、私が持っているdd
のバージョンはそれをサポートしていないようです。
私はここの誰かがdd
のバージョンを持っていることを本当に望んでいます。私がやりたかったことは
私が試した方法の1つは、入力ファイル行の先頭にbs=16 skip=1
を配置し、次に出力ファイル行にbs=512k
を配置することでしたが、これは機能せず、一度に16バイトしか実行できませんでした。 (私はこのようなたくさんの異なる方法を試しました)
私はdd
を このページ から取得しましたが、元々は「バイトのカウント」または「バイトのスキップ」オプションがありません。
Visual Studio 2010をダウンロードしたり、新しいdd
バージョンを入手するために必要なものをダウンロードしたりする必要はありません。どこを見ても、githubや他の場所でダウンロードできるソースコードファイルしかないからです。 GNUツールは必要ありません。dd
だけを使用してください。
Linuxや他のタイプのOSではなく、Windows XPを使用している場合は問題ありません。これが間違ったフォーラムである場合はお詫び申し上げます。 dd
について私が見たほとんどのスレッドは、特にこのスレッドにありました。
代わりにGNU coreutils head
を使用できます:
{
head -c 16 > /dev/null
head -c 1m > PRGrom.bin
head -c 512k > CHRgfx.bin
} < 'MMC5 EXAtt MegaMan3.nes'
(これはUnixシェルの構文です。Microsoftのコマンドラインインタープリターを使用している場合は、変更が必要になる場合があります)。
Windowsの古いgnuwin32
の代わりにcygwin
を検討すると、適切な最新のGNUのような環境(Linuxは[〜#〜] os [〜#〜]ではありませんが、いくつかのUnix風のカーネルだけですおよび非UnixライクなOS)。
skip_bytes
は、2012年にGNU dd
に追加されました(coreutils 8.16)。そのgnuwin32の最新バージョンは2005からです(Windows XPの最新バージョンだと思いますが) )GNU coreutils include dd
in Cygwin and Git for Windows でコンパイルされたバージョンを見つけることができます少なくとも、どちらにもPOSIXシェルインタープリターが付属しています。CygwinはWindowsのサポートを中止しましたXP circa 2016 ですが、その頃からバージョンをダウンロードできるはずです。 from there たとえば、Git for WindowsはWindowsのサポートを終了しましたXPバージョン2.10.0以降ですが、 まだオンラインで利用可能 、およびその両方です。 coretutils 8.16リリースの日付を延ばしてください。