ui tweaks

This commit is contained in:
Steven Hugg 2020-07-08 21:57:55 -05:00
parent 664a5d43d0
commit 6acaa3f81d
5 changed files with 46 additions and 43 deletions

View File

@ -642,10 +642,10 @@ div.asset_toolbar {
content: '\25bc'; content: '\25bc';
} }
.tree-collapsed:hover, .tree-expanded:hover { .tree-collapsed:hover, .tree-expanded:hover {
border-color: rgba(255,255,255,0.7); border-color:#ccc;
} }
.tree-header:hover { .tree-header:hover {
background-color: rgba(255,255,255,0.3); background-color: #666;
} }
.tree-level-0 { display:none;} .tree-level-0 { display:none;}
.tree-level-1 { background-color: #638283;} .tree-level-1 { background-color: #638283;}

View File

@ -13,12 +13,9 @@ TODO:
- asm: support macro expansion - asm: support macro expansion
- multiple breakpoints, expression breakpoints - multiple breakpoints, expression breakpoints
- watchpoints - watchpoints
- debug inspector for variables
- MAME single step (?) - MAME single step (?)
- step over (line, instruction) - step over (line, instruction)
- slowdown beam for all platforms? - slowdown beam for all platforms?
- PC x86 support
- https://bellard.org/tcc/
- show errors in list (maybe window list?) - show errors in list (maybe window list?)
- click to go to error - click to go to error
- what if error in include file you can't edit b/c it never appears? - what if error in include file you can't edit b/c it never appears?
@ -37,11 +34,9 @@ TODO:
- 'undefined' for bitmap replacer - 'undefined' for bitmap replacer
- requestInterrupt needs to be disabled after breakpoint? - requestInterrupt needs to be disabled after breakpoint?
- C/asm source formatter - C/asm source formatter
- fix WebAudio (https://news.ycombinator.com/item?id=18066474)
- allow download of JSASM output - allow download of JSASM output
- update bootstrap to 4.0 - update bootstrap to 4.0
- batariBasic: proper line numbers, debugging - batariBasic: proper line numbers, debugging
- granular control over time scrubbing, show CPU state
- builds: - builds:
- compiler flags for final ROM build - compiler flags for final ROM build
- workermain: split build functions, better msg types - workermain: split build functions, better msg types
@ -57,19 +52,13 @@ TODO:
- debug inline asm - debug inline asm
- live coding URL - live coding URL
- resize memory browser, other windows when vertical div resize - resize memory browser, other windows when vertical div resize
- preroll the Z80 emulator so optimizer does its thing before loading rom
- wasm dynamic linking of emulators (https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md)
- https://github.com/jvilk/BrowserFS
- markdown, verilog: can't share - markdown, verilog: can't share
- https://www.crowdsupply.com/tinyfpga/tinyfpga-bx - https://www.crowdsupply.com/tinyfpga/tinyfpga-bx
- stego shareable images (http://pico-8.wikia.com/wiki/P8PNGFileFormat) - stego shareable images (http://pico-8.wikia.com/wiki/P8PNGFileFormat)
- https://makecode.com/language? - https://makecode.com/language?
- open ROM from URL? - open ROM from URL?
- game starts even if switched away before first load - game starts even if switched away before first load
- it's pretty easy to add a new file named like a library file (bcd.c)
- or have neslib.h in a subdirectory...
- put globals into view/controller objects - put globals into view/controller objects
- upload binary files doesn't do what's expected, changing pulldown and whatnot
- autostart audio - autostart audio
- chrome: https://github.com/processing/p5.js-sound/issues/249 - chrome: https://github.com/processing/p5.js-sound/issues/249
- firefox: https://support.mozilla.org/en-US/kb/block-autoplay - firefox: https://support.mozilla.org/en-US/kb/block-autoplay
@ -78,7 +67,7 @@ TODO:
- ide bug/feature visualizer for sponsors - ide bug/feature visualizer for sponsors
- global undo/redo at checkpoints (when rom changes) - global undo/redo at checkpoints (when rom changes)
- landscape mode for arcade ports - landscape mode for arcade ports
- symmetric load/save state types - symmetric load/save state types (like in Machine)
- pixel editor - pixel editor
- persist palette/tilemap selections - persist palette/tilemap selections
- more tools for editing - more tools for editing
@ -107,7 +96,6 @@ TODO:
- show interrupts, other events - show interrupts, other events
- sometimes interleaves two different PCs? like two profilers running simultaneously? - sometimes interleaves two different PCs? like two profilers running simultaneously?
- ah, symbols persist across builds - ah, symbols persist across builds
- https://remotestoragejs.readthedocs.io/en/latest/getting-started/how-to-add.html ?
- Verilog - Verilog
- larger scope range, better scrolling - larger scope range, better scrolling
- make scope data wrap around range - make scope data wrap around range
@ -127,13 +115,13 @@ TODO:
- break on stack overflow, illegal op, bad access, BRK, etc - break on stack overflow, illegal op, bad access, BRK, etc
- show in scope instead? - show in scope instead?
- nes - nes
- replay doesn't work for nes (force background tile redraw) - replay doesn't work for nes (force background tile redraw, sprites
messed up)
- nes debug view toolbar - nes debug view toolbar
- support NES_HEADER_16K? - support NES_HEADER_16K?
- PPU/TIA register write visualization
- show cur/tmp vram addresses
- NES crt should mark raster pos when debugging - NES crt should mark raster pos when debugging
- OAMDMA in profiler? (haltCycles) - OAMDMA in profiler? (haltCycles)
- typed arrays don't serialize?
- JSNES - JSNES
- doesn't support hiding >8 sprites - doesn't support hiding >8 sprites
- doesn't do sprite zero test right - doesn't do sprite zero test right
@ -168,7 +156,6 @@ TODO:
- allow text/binary change - allow text/binary change
- importing from subtree commits to root anyway - importing from subtree commits to root anyway
- publishing Markdown file loads default file? - publishing Markdown file loads default file?
- astrocade
- keyboard shortcuts - keyboard shortcuts
- ctrl+alt+l on ubuntu locks screen - ctrl+alt+l on ubuntu locks screen
- alt-D doesn't work anymore - alt-D doesn't work anymore
@ -182,7 +169,6 @@ TODO:
- can't step back twice? - can't step back twice?
- compiler bug in chase - compiler bug in chase
- "shared" in URL doesn't work, leave in URL? (also importURL) - "shared" in URL doesn't work, leave in URL? (also importURL)
- segments disappear in memory map when binary unchanged
- 6502 - 6502
- KIL stops debugger - KIL stops debugger
- TypeError: null is not an object (evaluating 'n.destination') - TypeError: null is not an object (evaluating 'n.destination')
@ -206,6 +192,9 @@ TODO:
- copy to gen/ directory (allowJs is weird) - copy to gen/ directory (allowJs is weird)
- can we debug first frame via replay? - can we debug first frame via replay?
- ca65 line numbers are not aligned with source code - ca65 line numbers are not aligned with source code
- Debug Browser
- hex viewer
- show 16/32 typed arrays
WEB WORKER FORMAT WEB WORKER FORMAT

View File

@ -308,7 +308,7 @@ export class CodeProject {
} }
// save and sort segment list // save and sort segment list
var segs = (this.platform.getMemoryMap && this.platform.getMemoryMap()["main"]) || []; var segs = (this.platform.getMemoryMap && this.platform.getMemoryMap()["main"]) || [];
segs = segs.concat(data.segments || []); if (data.segments) { segs = segs.concat(data.segments || []); }
segs.sort((a,b) => {return a.start-b.start}); segs.sort((a,b) => {return a.start-b.start});
this.segments = segs; this.segments = segs;
} }

View File

@ -1421,29 +1421,40 @@ class TreeNode {
} }
// get object keys // get object keys
let names = obj instanceof Array ? Array.from(obj.keys()) : Object.getOwnPropertyNames(obj); let names = obj instanceof Array ? Array.from(obj.keys()) : Object.getOwnPropertyNames(obj);
if (names.length <= MAX_CHILDREN) { // max # of child objects if (names.length > MAX_CHILDREN) { // max # of child objects
let orphans = new Set(this.children.keys()); let newobj = {};
// visit all children let oldobj = obj;
names.forEach((name) => { var slicelen = 100;
let childnode = this.children.get(name); while (names.length / slicelen > 100) slicelen *= 2;
if (childnode == null) { for (let ofs=0; ofs<names.length; ofs+=slicelen) {
childnode = new TreeNode(this, name); var newdict = {};
this.children.set(name, childnode); for (var i=ofs; i<ofs+slicelen; i++)
} newdict[names[i]] = oldobj[names[i]];
childnode.update(obj[name]); newobj["["+ofs+"...]"] = newdict;
orphans.delete(name); }
}); obj = newobj;
// remove orphans names = Object.getOwnPropertyNames(obj);
orphans.forEach((delname) => {
let childnode = this.children.get(delname);
childnode.remove();
this.children.delete(delname);
});
this._header.classList.add("tree-expanded");
this._header.classList.remove("tree-collapsed");
} else {
text = names.length + " items"; // too many children
} }
// track deletions
let orphans = new Set(this.children.keys());
// visit all children
names.forEach((name) => {
let childnode = this.children.get(name);
if (childnode == null) {
childnode = new TreeNode(this, name);
this.children.set(name, childnode);
}
childnode.update(obj[name]);
orphans.delete(name);
});
// remove orphans
orphans.forEach((delname) => {
let childnode = this.children.get(delname);
childnode.remove();
this.children.delete(delname);
});
this._header.classList.add("tree-expanded");
this._header.classList.remove("tree-collapsed");
} else { } else {
this._header.classList.add("tree-collapsed"); this._header.classList.add("tree-collapsed");
this._header.classList.remove("tree-expanded"); this._header.classList.remove("tree-expanded");

View File

@ -515,6 +515,7 @@ class VectrexAnalog {
constructor(vectrex) { constructor(vectrex) {
this.vectrex = vectrex; this.vectrex = vectrex;
} }
videoEnabled = true;
//static unsigned rsh; /* zero ref sample and hold */ //static unsigned rsh; /* zero ref sample and hold */
rsh = 0; rsh = 0;
//static unsigned xsh; /* x sample and hold */ //static unsigned xsh; /* x sample and hold */
@ -743,6 +744,7 @@ class VectrexAnalog {
} }
addline(x0, y0, x1, y1, color) { addline(x0, y0, x1, y1, color) {
if (!this.videoEnabled) return;
// TODO // TODO
//console.log(x0, y0, x1, y1, color); //console.log(x0, y0, x1, y1, color);
x0 = (x0 - Globals.BOUNDS_MIN_X) / (Globals.BOUNDS_MAX_X - Globals.BOUNDS_MIN_X) * Globals.SCREEN_X_DEFAULT; x0 = (x0 - Globals.BOUNDS_MIN_X) / (Globals.BOUNDS_MAX_X - Globals.BOUNDS_MIN_X) * Globals.SCREEN_X_DEFAULT;
@ -841,6 +843,7 @@ class VectrexPlatform extends Base6809Platform {
advance(novideo:boolean) : number { advance(novideo:boolean) : number {
if (!novideo) this.video.clear(); if (!novideo) this.video.clear();
this.alg.videoEnabled = !novideo;
this.updateControls(); this.updateControls();
this.probe.logNewFrame(); this.probe.logNewFrame();
var frameCycles = 1500000 / 60; var frameCycles = 1500000 / 60;