mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2025-04-13 01:37:54 +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>
|
||||
<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>
|
||||
|
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.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();
|
||||
|
@ -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) {
|
||||
},
|
||||
});
|
||||
|
@ -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
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user