mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-06-11 12:29:29 +00:00
fixed ROM loading in mame driver
This commit is contained in:
parent
219c59cb5b
commit
f784dc743d
|
@ -65,6 +65,7 @@ ga('send', 'pageview');
|
||||||
<a tabindex="-1" href="#">Platform</a>
|
<a tabindex="-1" href="#">Platform</a>
|
||||||
<ul class="dropdown-menu">
|
<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" 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=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=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>
|
<li><a class="dropdown-item" href="?platform=mw8080bw" id="item_platform_mw8080bw">Midway 8080</a></li>
|
||||||
|
|
11
src/emu.js
11
src/emu.js
|
@ -998,7 +998,8 @@ var BaseMAMEPlatform = function() {
|
||||||
FS.writeFile('/roms/' + opts.biosfile, opts.biosdata, {encoding:'binary'});
|
FS.writeFile('/roms/' + opts.biosfile, opts.biosdata, {encoding:'binary'});
|
||||||
}
|
}
|
||||||
FS.mkdir('/emulator');
|
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'});
|
//FS.writeFile('/debug.ini', 'debugger none\n', {encoding:'utf8'});
|
||||||
if (opts.preInit) {
|
if (opts.preInit) {
|
||||||
opts.preInit(self);
|
opts.preInit(self);
|
||||||
|
@ -1068,7 +1069,7 @@ var BaseMAMEPlatform = function() {
|
||||||
|
|
||||||
this.loadROMFile = function(data) {
|
this.loadROMFile = function(data) {
|
||||||
romdata = data;
|
romdata = data;
|
||||||
if (loaded) {
|
if (romfn) {
|
||||||
FS.writeFile(romfn, data, {encoding:'binary'});
|
FS.writeFile(romfn, data, {encoding:'binary'});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1076,11 +1077,11 @@ var BaseMAMEPlatform = function() {
|
||||||
this.loadRegion = function(region, data) {
|
this.loadRegion = function(region, data) {
|
||||||
if (loaded) {
|
if (loaded) {
|
||||||
//self.luacall('cart=manager:machine().images["cart"]\nprint(cart:filename())\ncart:load("' + romfn + '")\n');
|
//self.luacall('cart=manager:machine().images["cart"]\nprint(cart:filename())\ncart:load("' + romfn + '")\n');
|
||||||
var s = 'mem = manager:machine():memory().regions["' + region + '"]\n';
|
var s = 'rgn = manager:machine():memory().regions["' + region + '"]\n';
|
||||||
//s += 'print(mem.size)\n';
|
//s += 'print(rgn.size)\n';
|
||||||
for (var i=0; i<data.length; i+=4) {
|
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);
|
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.luacall(s);
|
||||||
self.reset();
|
self.reset();
|
||||||
|
|
|
@ -64,7 +64,7 @@ var NESMAMEPlatform = function(mainElement, lzgRom, romSize) {
|
||||||
height:240*2,
|
height:240*2,
|
||||||
romfn:'/emulator/cart.nes',
|
romfn:'/emulator/cart.nes',
|
||||||
romsize:romSize,
|
romsize:romSize,
|
||||||
romdata:new lzgmini().decode(lzgRom).slice(0, romSize),
|
romdata:new Uint8Array(new lzgmini().decode(lzgRom).slice(0, romSize)),
|
||||||
preInit:function(_self) {
|
preInit:function(_self) {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -596,7 +596,9 @@ function assemblelinkCA65(code, platform) {
|
||||||
FS.writeFile("main.o", objout, {encoding:'binary'});
|
FS.writeFile("main.o", objout, {encoding:'binary'});
|
||||||
var libargs = params.libargs;
|
var libargs = params.libargs;
|
||||||
starttime();
|
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,
|
'-C', params.cfgfile,
|
||||||
//'--dbgfile', 'main.dbg',
|
//'--dbgfile', 'main.dbg',
|
||||||
'-o', 'main', '-m', 'main.map', 'main.o'].concat(libargs));
|
'-o', 'main', '-m', 'main.map', 'main.o'].concat(libargs));
|
||||||
|
@ -610,7 +612,6 @@ function assemblelinkCA65(code, platform) {
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return {errors:errors};
|
return {errors:errors};
|
||||||
}
|
}
|
||||||
//console.log(mapout);
|
|
||||||
var listing = parseCA65Listing(lstout, mapout);
|
var listing = parseCA65Listing(lstout, mapout);
|
||||||
//console.log(lstout);
|
//console.log(lstout);
|
||||||
//console.log(mapout);
|
//console.log(mapout);
|
||||||
|
@ -620,7 +621,7 @@ function assemblelinkCA65(code, platform) {
|
||||||
lines:listing.lines,
|
lines:listing.lines,
|
||||||
srclines:srclines,
|
srclines:srclines,
|
||||||
errors:listing.errors,
|
errors:listing.errors,
|
||||||
intermediate:{listing:lstout, map:mapout},
|
intermediate:{listing:lstout+"\n"+mapout, map:mapout}, // TODO
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user