Skip to content

Developer journal

featherless 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.

📝 Mockups

An improved region editor, with more space for previewing information related to the region:

Am 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.

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.

Clone this wiki locally