4

私は現在、Javascript で GameBoyColor エミュレーターを開発しています。

64k ROM ファイルをメモリ ユニットにロードするには、現在約 60 秒かかります。これは機能です:

loadROM: function (file) {
    var reader = new FileReader();

    reader.onload = function () {
        var start = new Date();
        console.log("start", start.getTime());

        this.__ROM = new Uint8Array(reader.result.length);

        for (var i = 0; i < reader.result.length; i++) {
            this.__ROM[i] = (reader.result.charCodeAt(i) & 0xFF);
        }

        var end = new Date();
        console.log("end", end.getTime());

        console.log((end.getTime() - start.getTime()) + " for " + i + " iterations");

        this._trigger("onROMLoaded");
    }.context(this);

    reader.readAsBinaryString(file);
}

reader.result文字列としてのROMファイルthis.__romで、配列です。重要なのは、すべての文字を取得してメモリの ROM 配列にプッシュする for ループです。

これには時間がかかります。問題は、これをスピードアップする方法です。文字列を配列に変換するためのより良い方法はありますか?

4

1 に答える 1