Skip to content

Developer journal

Jeff Verkoeyen edited this page Feb 15, 2021 · 8 revisions

This journal will capture thoughts, inspiration, and music that went into the creation of Windfish. Content is in reverse-chronological order.

Feb 14, 2021

Today's headphone tracks 🎧🎵

What was worked on today

  • Replacing the inspector pane's nested tab hierarchy with an NSOutlineView. Goal being two-fold:
    1. Simplify the inspector interface by removing the hierarchical tab navigation pattern.
    2. Afford space for richer editing of the project configuration.

Stream of thoughts

A mockup of an improved region editor, with more space for previewing information related to the region:

Through this mockup, I'm considering adding the ability to comment on regions which will in turn generate comments in the generated source.

The new inspector pane will likely feature two separate sections: Configuration and Insights.

  • Configuration will list all human-provided information for the project.
  • Insights will list everything that Windfish was able to infer automatically as part of disassembly.

Regions are now appearing in the outline list:

I'll need to think of how regions should be organized so that the list isn't obnoxiously long, but also to ensure that it's not a pain to find and edit a region. At this point I'm thinking of simply grouping regions by bank.

Community discussions

Suggestions from kemenaran via the LADX Discord:

The integration of the HTML help is pretty nice. I wonder how the absolute basics of the workflow (run => label => disassemble) could be explained without the need for reading the help though. Maybe, when creating a new project, presenting an introduction popover with a single PNG diagram (like a screenshot of the UI with 3 labeled arrows) could be enough for the basics.

The Help does a great job explaining the project views' - especially the context gutter in the editor. However some of it could be more self-explaining (like the column for the most likely bank, the color-code, etc) ; maybe with tooltips?

Related to this, I found myself in the assembly editor wanting to convert a piece of unknown status (red, displayed as data) to code, to see if it looks like code. A quick context-menu action for this could be great.

In general, navigating in the code editor is nice, but I found myself wanting the following actions:

  • A "previous location" button, to jump back after clicking a .else_01_3422 clickable reference
  • "Find callers" and "Find callees" actions (usually I rely on "Cmd+Shift+F" to search the address in the whole project, but more contextual actions could be nice too)

Is there yet a way to see where a piece of data in ROM is likely to end up – or where a piece of data in RAM comes from?

Can Windfish infer that some ROM data is tile data (because it ends up being copied in VRAM) yet? Or is it a technically difficult thing to infer?

Solid first substantial feedback for Windfish. The navigation issue in particular is one that's been frustrating me for a while, so I'll likely work on that after I've gotten the configuration outline migration finished.