diff --git a/doc/notes.txt b/doc/notes.txt index a61146e0..50a154f0 100644 --- a/doc/notes.txt +++ b/doc/notes.txt @@ -29,8 +29,6 @@ TODO: - update Javatari version? (and others?) - unify versioning - disassembler for uploaded ROMs -- verilog debugging/reloading makes it slow -- remove FPS and play controls when Verilog scope paused - compile stuck when errors unchanged - sound mute? - $error updates source editor @@ -46,19 +44,15 @@ TODO: - links to external tools in ide - error msg when #link doesn't work - figure out folders for projects for real -- why loadState() on verilog kill perf? - click to break on raster position - restructure src/ folders -- quantify verilog "graph iterations" - debug bankswitching for funky formats - spaces in filename don't parse code listing (DASM, maybe more) - 'undefined' for bitmap replacer - astrocade: run to cursor in hello world messes up emulation - requestInterrupt needs to be disabled after breakpoint? -- verilog: when paused scope doesn't work - C/asm formatter - fix WebAudio (https://news.ycombinator.com/item?id=18066474) -- share playable link w/ verilog? - allow download of JSASM output - update bootstrap - $readmemb/h @@ -81,7 +75,6 @@ TODO: - markdown, verilog: can't share - https://www.crowdsupply.com/tinyfpga/tinyfpga-bx - HTTPS warning -- Safari: scope doesn't show while CRT in use - recording video indicator - stego shareable images (http://pico-8.wikia.com/wiki/P8PNGFileFormat) - https://makecode.com/language? @@ -107,7 +100,6 @@ TODO: - map editor - metasprites - throw errors when bad/no refs - - capture so we get mouseUp() out of frame - per-View keyboard shortcuts - parse labels - crt0.s compiled each time? @@ -118,6 +110,18 @@ TODO: - running profiler while replaying? grand unified replay? - click on profiler to step to position - breakpoints stop profiler from running +- https://remotestoragejs.readthedocs.io/en/latest/getting-started/how-to-add.html ? +- Verilog + - larger scope range, better scrolling + - remove FPS and play controls when Verilog scope paused + - when paused scope doesn't work + - Safari: scope doesn't show while CRT in use + - verilog debugging/reloading makes it slow + - why loadState() on verilog kill perf? + - quantify verilog "graph iterations" + - toolbar overlaps scope + - CPU debugging +- disassemble more code around breakpoint WEB WORKER FORMAT diff --git a/package.json b/package.json index 9af4bd6e..5f0306a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "8bitworkshop", - "version": "3.3.1", + "version": "3.4.0", "author": "Steven Hugg", "dependencies": {}, "devDependencies": { diff --git a/presets/nes/music.c b/presets/nes/music.c index 01819b01..5b758ad5 100644 --- a/presets/nes/music.c +++ b/presets/nes/music.c @@ -33,10 +33,10 @@ const int note_table_tri[64] = { #define NOTE_TABLE note_table_49 #define BASS_NOTE 36 + byte music_index = 0; byte cur_duration = 0; - const byte music1[]; // music data -- see end of file const byte* music_ptr = music1; diff --git a/src/pixed/pixeleditor.ts b/src/pixed/pixeleditor.ts index 45a4ddf6..e7f63f00 100644 --- a/src/pixed/pixeleditor.ts +++ b/src/pixed/pixeleditor.ts @@ -926,20 +926,19 @@ class PixEditor extends Viewer { dragcol = this.getPixel(pos.x, pos.y) == this.currgba ? this.palette[0] : this.currgba; this.setPixel(pos.x, pos.y, this.currgba); dragging = true; - // TODO: pixcanvas.setCapture(); + $(document).mouseup( (e) => { + var pos = this.getPositionFromEvent(e); + this.setPixel(pos.x, pos.y, dragcol); + dragging = false; + this.commit(); + $(document).off('mouseup'); + }); }) .mousemove( (e) => { var pos = this.getPositionFromEvent(e); if (dragging) { this.setPixel(pos.x, pos.y, dragcol); } - }) - .mouseup( (e) => { - var pos = this.getPositionFromEvent(e); - this.setPixel(pos.x, pos.y, dragcol); - dragging = false; - this.commit(); - // TODO: pixcanvas.releaseCapture(); }); /* Mousetrap.bind('ctrl+shift+h', this.flipX.bind(this)); diff --git a/src/views.ts b/src/views.ts index 1549cded..2b3f8e12 100644 --- a/src/views.ts +++ b/src/views.ts @@ -325,9 +325,9 @@ export class SourceEditor implements ProjectView { } refreshDebugState(moveCursor:boolean) { + this.clearCurrentLine(); var line = this.getActiveLine(); if (line >= 0) { - this.clearCurrentLine(); this.setCurrentLine(line, moveCursor); // TODO: switch to disasm? } @@ -375,6 +375,8 @@ export class SourceEditor implements ProjectView { /// +const disasmWindow = 512; // disassemble this many bytes around cursor + export class DisassemblerView implements ProjectView { disasmview; @@ -455,7 +457,7 @@ export class DisassemblerView implements ProjectView { } return s; } - var text = disassemble(pc-96, pc) + disassemble(pc, pc+96); + var text = disassemble(pc-disasmWindow, pc) + disassemble(pc, pc+disasmWindow); this.disasmview.setValue(text); if (moveCursor) { this.disasmview.setCursor(selline, 0); @@ -1183,9 +1185,10 @@ export class AssetEditorView implements ProjectView, pixed.EditorContext { let label = fileid; // TODO: label let node : pixed.PixNode = new pixed.TextDataNode(projectWindows, fileid, label, frag.start, frag.end); let first = node; - // rle-compressed? + // rle-compressed? TODO if (frag.fmt.comp == 'rletag') { - node = node.addRight(new pixed.Compressor()); + //node = node.addRight(new pixed.Compressor()); + continue; } // is this a nes nametable? if (frag.fmt.map == 'nesnt') { diff --git a/tss b/tss index 5b5ee67f..61a1691a 160000 --- a/tss +++ b/tss @@ -1 +1 @@ -Subproject commit 5b5ee67fc06956bc7dce51726e98812d2d897eaa +Subproject commit 61a1691a1de05dca3b694bf603db49ffbaf572cf