TODO: - NaN in cycle count for macros - debugging of scan line overflow - confuse code/data in listing - show memory locations hovering over lines - don't check against ROM signatures - support 6502 test cases - DASM: macro forward refs - asm: support macro expansion - support narrow screens - case sensisitvity looking for mismatch variables - remove pulldown when no preset? - can't step after reset (or when funky frame; TIA frame is out of sync) - break on BRK/illegal opcode? - multiple breakpoints, expression breakpoints - watchpoints - debug inspector for variables - MAME single step (?) - step over (line, instruction) - slowdown beam for all platforms? - PC x86 support - show errors in list (maybe window list?) - can't see 1st line in editor sometimes (when scrolling cursor past bottom of screen) - online help - show self-modifying code insns left of editor - facade/kbd shortcuts for emulators, focus - update Javatari version? (and others?) - unify versioning - disassembler for uploaded ROMs - compile stuck when errors unchanged - sound mute? - $error updates source editor - go to error in include files - online tools for music etc - text log debugging script - NES crt should mark raster pos when debugging - intro/help text for each platform - vscode/atom extension? - VCS asm library - better VCS single stepping, maybe also listings - VCS skips step on lsr/lsr after run to line - links to external tools in ide - error msg when #link doesn't work - figure out folders for projects for real - click to break on raster position - restructure src/ folders - 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? - C/asm formatter - fix WebAudio (https://news.ycombinator.com/item?id=18066474) - allow download of JSASM output - update bootstrap - $readmemb/h - batariBasic: proper line numbers, debugging - granular control over time scrubbing, show CPU state - error showing replay div before rom starts - compiler flags for final ROM build - workermain: split build functions, better msg types - vcs: INPTx needs to be added to control state - sdcc: can't link asm files before c files (e.g. acheader.s must be last) - what if >1 file with same name? (local/nonlocal/directory) - what if .c and .s names collide? - live coding URL - resize memory browser when vertical div resize - preroll the emulator so optimizer does its thing before loading rom - wasm dynamic linking of emulators (https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md) - use alternate confirm/prompt dialogs - https://github.com/jvilk/BrowserFS - what if error in include file you can't edit b/c it never appears? - markdown, verilog: can't share - https://www.crowdsupply.com/tinyfpga/tinyfpga-bx - HTTPS warning - recording video indicator - stego shareable images (http://pico-8.wikia.com/wiki/P8PNGFileFormat) - https://makecode.com/language? - open ROM from URL? - game starts even if switched away before first load - vcs: break on # of lines changed (maybe using getRasterPosition?) - profiler restarts when paused - it's pretty easy to add a new file named like a library file (bcd.c) - put globals into view/controller objects - upload binary files doesn't do what's expected, changing pulldown and whatnot - chrome autostart audio: https://github.com/processing/p5.js-sound/issues/249 - firefox autostart audio: https://support.mozilla.org/en-US/kb/block-autoplay - show player controls for each platform, allow touch support, navigator.getGamepads - better undo/diff for mistakes? - ide bug/feature visualizer for sponsors - optimization flags for sdcc (oldralloc) - global undo/redo at checkpoints (when rom changes) - pulldown shows wrong file if preset not present - landscape mode for arcade ports - pixel editor - persist palette/tilemap selections - more tools for editing - map editor - metasprites - throw errors when bad/no refs - per-View keyboard shortcuts - parse labels - parse .incbin directives? - crt0.s compiled each time? - debug highlight doesn't go away when debugging -> running - show breakpoint of PC or highest address on stack - can we highlight line instead of select? - replay doesn't work for nes (force background tile redraw) - 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 {code,platform,tool,dependencies} {preload} new: {updates,buildsteps} [{filepath,platform,tool}] implicit rules - push/shift build steps - preprocessor, compile, assemble, link - access to intermediate files only build files that have changed build options BUILD PROJECT local/foo.project/*.* build all files in project send update for dependencies at startup (single file version) should be able to change file w/o reloading (Not platform tho) pulldown selects file in project, or goes back to parent gotta preserve editor windows for each one - window list make source/disasm window visible when debugging gutter info/errors in all files UI REFACTOR editor debugger disasm view memory profile errors separate into files window methods: - set - mode - get - changes - cursorActivity (inspect) - gutters (setCompileOutput) - current line / gutter marker (setCurrentLine / clearCurrentLine) - source map - global symbols - pixel editor / find comment (openBitmapEditorAtCursor) - update debug window (200 ms) - inspect variable file store mirrors that on worker worker result: { output: sources:{ :{lines, asmlines, listing} } } add file to errors http://www.playvectrex.com/designit/chrissalo/vectordisplay.htm http://oldies.malban.de/secondvectrex/index.htm PIXEL EDITOR everything is an editor back/forward propogation encoded <-> raw + spec + palette(s) <-> full tilemap <-> selected tile/sprite/metasprite need references panes: source code, metadata tree, graphics panes decoded info: - CHR tiles - palettes - maps/rooms - metasprites - metatiles - sprite data (williams etc) store in intermediate single file or embed in C/ASM? we'd then have to generate C/ASM probably automatically intermediate file could still be edited switch between hex/graphic editor? (palettes should edit via hex) final display types: number, color, sprite, etc CHR editor has palette selector, obj selector individual objects in single file or multiple files? RLE compression Types - byte - RGBA color - structured object - metasprite - metatile - level actor - bitmap - array of stuff, array can have a shape (width,height) like numpy Mappers can refer to multiple objs Slice (window) of array for selections AssetEditorView - scan files for assets - build hierarchical view of assets - expand/collapse - create editor upon expansion - double-click to source file Assets come from: - chr files - bitmap data in files - structured data (palette, sprites, metasprites, levels, etc) - think about new comment format, platform-specific types