From 89331dbcf2595214c5b8b575ffcda956ba94ca76 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Tue, 14 May 2019 12:01:54 -0400 Subject: [PATCH] use new neslib2.lib w/ seperate object files --- src/platform/nes.ts | 1 + src/ui.ts | 6 +++--- src/views.ts | 2 ++ src/worker/lib/nes/crt0.o | Bin 35690 -> 22127 bytes src/worker/workermain.ts | 11 +++-------- test/cli/testworker.js | 2 +- 6 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/platform/nes.ts b/src/platform/nes.ts index 21c6d48d..9211b496 100644 --- a/src/platform/nes.ts +++ b/src/platform/nes.ts @@ -419,5 +419,6 @@ class NESMAMEPlatform extends BaseMAMEPlatform implements Platform { /// PLATFORMS['nes'] = JSNESPlatform; +PLATFORMS['nes-asm'] = JSNESPlatform; PLATFORMS['nes.mame'] = NESMAMEPlatform; diff --git a/src/ui.ts b/src/ui.ts index cdbf1890..cba39bcd 100644 --- a/src/ui.ts +++ b/src/ui.ts @@ -12,7 +12,7 @@ import { PLATFORMS, EmuHalt, Toolbar } from "./emu"; import * as Views from "./views"; import { createNewPersistentStore } from "./store"; import { getFilenameForPath, getFilenamePrefix, highlightDifferences, invertMap, byteArrayToString, compressLZG, - byteArrayToUTF8, isProbablyBinary, getWithBinary, getBasePlatform } from "./util"; + byteArrayToUTF8, isProbablyBinary, getWithBinary, getBasePlatform, hex } from "./util"; import { StateRecorderImpl } from "./recorder"; import { GHSession, GithubService, getRepos, parseGithubURL } from "./services"; @@ -1084,14 +1084,14 @@ function _breakExpression() { function getDebugExprExamples() : string { var state = platform.saveState && platform.saveState(); - var cpu = platform.getCPUState && platform.getCPUState(); + var cpu = state.c; console.log(cpu, state); var s = ''; if (cpu.PC) s += "c.PC == 0x" + hex(cpu.PC) + "\n"; if (cpu.SP) s += "c.SP < 0x" + hex(cpu.SP) + "\n"; if (platform.readAddress) s += "this.readAddress(0x1234) == 0x0\n"; if (platform.readVRAMAddress) s += "this.readVRAMAddress(0x1234) != 0x80\n"; - if (platform.getRasterPosition) s += "this.getRasterPosition().y > 222\n"; + if (platform['getRasterPosition']) s += "this.getRasterPosition().y > 222\n"; return s; } diff --git a/src/views.ts b/src/views.ts index 2b52d47c..4ac54fd2 100644 --- a/src/views.ts +++ b/src/views.ts @@ -637,6 +637,8 @@ export class MemoryView implements ProjectView { var nextofs = parseInt(_nextofs); // convert from string (stupid JS) var nextsym = addr2sym[nextofs]; if (sym) { + if (sym.endsWith('_SIZE__') || sym.endsWith('_LAST__') || sym.endsWith('STACKSIZE__') || sym.endsWith('FILEOFFS__')) + sym = ''; if (MemoryView.IGNORE_SYMS[sym]) { ofs = nextofs; } else { diff --git a/src/worker/lib/nes/crt0.o b/src/worker/lib/nes/crt0.o index 72b966158b91da79171df2f05c9b0d2be4e0a679..ddadfc1324a8a6e71979a2632b8214c79c338a0b 100644 GIT binary patch literal 22127 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 literal 35690 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 y;hjljjP?Lu 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