mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-11-16 05:05:11 +00:00
212 lines
5.9 KiB
Plaintext
212 lines
5.9 KiB
Plaintext
|
|
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
|
|
- breakpoints
|
|
- debug inspector
|
|
- 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
|
|
- 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
|
|
- 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 (+ memory map)
|
|
- vscode/atom extension?
|
|
- navigator.getGamepads
|
|
- VCS library
|
|
- better VCS single stepping, maybe also listings
|
|
- VCS skips step on lsr/lsr after run to line
|
|
- bring back the profiler!
|
|
- 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)
|
|
- zmac: item_lookup needs better hash function
|
|
- '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
|
|
- batariBasic: proper line numbers, debugging
|
|
- show player controls for each platform, allow touch support
|
|
- 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
|
|
- rename, delete, save as
|
|
- 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
|
|
- memory viewer: ROM/RAM/VRAM/etc
|
|
- resize memory browser when split resize (any 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
|
|
- 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?
|
|
- show .map file in listings? memory map view?
|
|
- open ROM from URL?
|
|
- NES: disassembly not aligned on PC
|
|
- NES: vrambuf.c for Solarian
|
|
|
|
|
|
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:<rom>
|
|
sources:{
|
|
<path>:{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
|
|
|
|
|