fma-snes65816
Version:
SNES 65816 assembler backend for FMA
61 lines (46 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var BufferSizeModifier = function () {
function BufferSizeModifier() {
(0, _classCallCheck3.default)(this, BufferSizeModifier);
}
(0, _createClass3.default)(BufferSizeModifier, [{
key: 'resize',
value: function resize(buffer, headerLocation) {
var targetBufferSize = this.getTargetBufferSize(buffer.length);
var newSize = BufferSizeModifier.BUFFER_SIZE[targetBufferSize];
var newBuffer = new Uint8Array(newSize);
newBuffer.set(buffer, 0);
newBuffer[headerLocation + 0x27] = targetBufferSize;
return new Buffer(newBuffer);
}
}, {
key: 'getTargetBufferSize',
value: function getTargetBufferSize(size) {
for (var value in BufferSizeModifier.BUFFER_SIZE) {
if (size <= BufferSizeModifier.BUFFER_SIZE[value]) {
return value;
}
}
throw new Error('ROM file is too large');
}
}]);
return BufferSizeModifier;
}();
exports.default = BufferSizeModifier;
BufferSizeModifier.BUFFER_SIZE = {
0x08: 2 * 1024 * 1024 / 8,
0x09: 4 * 1024 * 1024 / 8,
0x0A: 8 * 1024 * 1024 / 8,
0x0B: 16 * 1024 * 1024 / 8,
0x0C: 32 * 1024 * 1024 / 8,
0x0D: 64 * 1024 * 1024 / 8
};
//# sourceMappingURL=BufferSizeModifier.js.map