fixed ROM loading in mame driver

This commit is contained in:
Steven Hugg 2018-06-20 00:13:19 -04:00
parent 219c59cb5b
commit f784dc743d
4 changed files with 12 additions and 9 deletions

View File

@ -65,6 +65,7 @@ ga('send', 'pageview');
<a tabindex="-1" href="#">Platform</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="?platform=vcs" id="item_platform_vcs">Atari VCS</a></li>
<li><a class="dropdown-item" href="?platform=vcs-mame" id="item_platform_vcs">Atari VCS (MAME)</a></li>
<!--<li><a class="dropdown-item" href="?platform=apple2" id="item_platform_apple2">Apple ][</a></li>-->
<li><a class="dropdown-item" href="?platform=vicdual" id="item_platform_vicdual">VIC Dual</a></li>
<li><a class="dropdown-item" href="?platform=mw8080bw" id="item_platform_mw8080bw">Midway 8080</a></li>

View File

@ -998,7 +998,8 @@ var BaseMAMEPlatform = function() {
FS.writeFile('/roms/' + opts.biosfile, opts.biosdata, {encoding:'binary'});
}
FS.mkdir('/emulator');
if (romfn) FS.writeFile(romfn, new Uint8Array(romdata), {encoding:'binary'});
if (romfn)
FS.writeFile(romfn, romdata, {encoding:'binary'});
//FS.writeFile('/debug.ini', 'debugger none\n', {encoding:'utf8'});
if (opts.preInit) {
opts.preInit(self);
@ -1068,7 +1069,7 @@ var BaseMAMEPlatform = function() {
this.loadROMFile = function(data) {
romdata = data;
if (loaded) {
if (romfn) {
FS.writeFile(romfn, data, {encoding:'binary'});
}
}
@ -1076,11 +1077,11 @@ var BaseMAMEPlatform = function() {
this.loadRegion = function(region, data) {
if (loaded) {
//self.luacall('cart=manager:machine().images["cart"]\nprint(cart:filename())\ncart:load("' + romfn + '")\n');
var s = 'mem = manager:machine():memory().regions["' + region + '"]\n';
//s += 'print(mem.size)\n';
var s = 'rgn = manager:machine():memory().regions["' + region + '"]\n';
//s += 'print(rgn.size)\n';
for (var i=0; i<data.length; i+=4) {
var v = data[i] + (data[i+1]<<8) + (data[i+2]<<16) + (data[i+3]<<24);
s += 'mem:write_u32(' + i + ',' + v + ')\n'; // TODO: endian?
s += 'rgn:write_u32(' + i + ',' + v + ')\n'; // TODO: endian?
}
self.luacall(s);
self.reset();

View File

@ -64,7 +64,7 @@ var NESMAMEPlatform = function(mainElement, lzgRom, romSize) {
height:240*2,
romfn:'/emulator/cart.nes',
romsize:romSize,
romdata:new lzgmini().decode(lzgRom).slice(0, romSize),
romdata:new Uint8Array(new lzgmini().decode(lzgRom).slice(0, romSize)),
preInit:function(_self) {
},
});

View File

@ -596,7 +596,9 @@ function assemblelinkCA65(code, platform) {
FS.writeFile("main.o", objout, {encoding:'binary'});
var libargs = params.libargs;
starttime();
LD65.callMain(['--cfg-path', '/share/cfg', '--lib-path', '/share/lib',
LD65.callMain(['--cfg-path', '/share/cfg',
'--lib-path', '/share/lib',
'--lib-path', '/share/target/apple2/drv',
'-C', params.cfgfile,
//'--dbgfile', 'main.dbg',
'-o', 'main', '-m', 'main.map', 'main.o'].concat(libargs));
@ -610,7 +612,6 @@ function assemblelinkCA65(code, platform) {
} catch (e) {
return {errors:errors};
}
//console.log(mapout);
var listing = parseCA65Listing(lstout, mapout);
//console.log(lstout);
//console.log(mapout);
@ -620,7 +621,7 @@ function assemblelinkCA65(code, platform) {
lines:listing.lines,
srclines:srclines,
errors:listing.errors,
intermediate:{listing:lstout, map:mapout},
intermediate:{listing:lstout+"\n"+mapout, map:mapout}, // TODO
};
}
}