UNPKG

fma-snes65816

Version:
61 lines (46 loc) 1.68 kB
'use strict'; 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