fma-snes65816
Version:
SNES 65816 assembler backend for FMA
71 lines (48 loc) • 2.25 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);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _fma = require('fma');
var _BufferSizeModifier = require('./BufferSizeModifier');
var _BufferSizeModifier2 = _interopRequireDefault(_BufferSizeModifier);
var _ChecksumCalculator = require('./ChecksumCalculator');
var _ChecksumCalculator2 = _interopRequireDefault(_ChecksumCalculator);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Assembler = function (_PluginAssembler) {
(0, _inherits3.default)(Assembler, _PluginAssembler);
function Assembler() {
(0, _classCallCheck3.default)(this, Assembler);
return (0, _possibleConstructorReturn3.default)(this, (Assembler.__proto__ || Object.getPrototypeOf(Assembler)).apply(this, arguments));
}
(0, _createClass3.default)(Assembler, [{
key: 'getName',
value: function getName() {
return 'SNES 65816';
}
}, {
key: 'postProcess',
value: function postProcess(result) {
var applicationAddress = result.getSymbols().get('.rom_header_location');
var romAddress = result.getRomCalculator().getRomAddress(applicationAddress);
var headerOffset = result.getRomCalculator().getRomOffset(romAddress);
var sizeFixer = new _BufferSizeModifier2.default();
var buffer = sizeFixer.resize(result.getBinary(), headerOffset);
var calculator = new _ChecksumCalculator2.default();
calculator.calculate(buffer, headerOffset);
result = result.clone();
result.binary = buffer;
return result;
}
}]);
return Assembler;
}(_fma.PluginAssembler);
exports.default = Assembler;
//# sourceMappingURL=Assembler.js.map