Releases: IsoFrieze/DiztinGUIsh
v2.3.2.3
Navigation Improvements
- Navigate -> "Go To Next Unreached Branch Point" is way better, now catches unmarked instructions directly after jumps/conditional branches
- ^^ protip: THIS IS THE FUTURE OF DIZ. Use Tracelog capture, then start at the top, keep pressing F3 for "GoTo Next Unreached Branch Point", step through with "S", and use Alt+Left to navigate back to where you were. Rinse+repeat. This is a very reliable way to quickly do tons of hand disassembly without hitting a ton of landmines
Label import
- Now allow importing labels with
.
,+
, and-
characters - Diz does no special validation for these weird labels (but they do work), so users must ensure whatever they are doing is OK with Asar. Diz will currently still let you shoot yourself in the foot, you've been warned :) But it's too useful to disallow anymore, so, have fun.
New Project Workflow ("first 15 minutes" quality of life)
- Improved a lot of UI and defaults from first importing a ROM to first save export. Fixed some bugginess there
- Auto-generate a default name for new projects based on the ROM name
- Enforce saving the project file at least once before exporting, ensuring relative paths for the
export/
directory work correctly.
Tracelog
- Experimental: Kinda works. Allow tracelog capture to add or remove comments so you can see exactly what new stuff you're capturing, or trace down specific paths
UI and Text Updates
- Improved text descriptions in assembly export settings UI, and lots of other places
- Save project with unsaved changes is cleared with Yes/No/Cancel ( thanks @patrickmollohan )
- Improve "overshooting" in more places, and use with Navigation history. (Makes it so when navigating around, it always keeps a little space on top and bottom. Makes things less confusing when jumping around all over the place)
Performance Optimization
- Upgraded to .NET 8, improve dependency injection support (thanks for the assist @YoshiRulz)
- Replaced slow
RemoveAt()
calls during load/save operations with smarter LINQ, reducing project load time by ~3 seconds. - Improve performance during high-volume tracelog import
- Switched to a concurrent dictionary for performance improvements in tracelog comment handling
Bug Fixes
- Fixed recursive
GetHashCode()
in Labels exposed by XML serialization - Clicking Tools -> Label List now always pops the list dialog up (instead of doing nothing when it was already open)
- Bunch of other dumb stuff
Full Changelog: v2.3.1.2...v2.3.2.1
v2.3.2.2
build: fix publish dirs - and jetbrains dir
v2.3.1.2
update logwriter submodule: fix DoesIndirectAddressPointToOpcode() - if IA is not a ROM address, it would pass -1 to GetFlag(offset) which is invalid - special thanks and credit to McMarkis for helping hunt this one down
v2.3.1.1
New save format: save with ".dizdir" extension, and the output will be broken up into many small files
- useful to make git merging much easier
Sort XML output of Labels and Comments (makes merging easier)
v2.3.0.2
Bugfix release for 2.3.0.x series
- see other release notes for other good stuff in https://github.com/IsoFrieze/DiztinGUIsh/releases/tag/v2.3.0.0
- export .sym files useful for importing back into BSNES debugger
- add support for exporting Direct page math expressions so ASAR can use more of your variable/label names
- fix a lot of Text string output handling (escaped chars an issue)
v2.3.0.1
Merge remote-tracking branch 'origin/master'
v2.3.0.0
What's Changed
Bunch of nice GUI improvements by @patrickmollohan:
- Add checkbox for "Output Extra Whitespace" setting in export settings #94
- Add menu button/keyboard shortcut to open export directory #97
- Nicer GUI popup on first export by #96
- Add additional output settings for exported assembly #95
- Main form enum code tidying up #91
Look how good this looks with those changes :)
Add Tools -> Project settings GUI: (easy to add new stuff here)
Git merging / Save file format: Update .diz/.dizraw save format from v101 to v102
- Changes are done for the sake of making things easier to merge with git, while not compromising on filesize
- Added 'comments' in the ROMBytes section inside the .diz/.dizraw files. Now every 2K bytes, we'll add a marker
- This marker is 100% ignored by importing, but, gives text-based merge tools (like git) a more defined anchor point to grab onto. Should make dealing with large merges a lot less painful:
- Expose a few advanced options for controlling compression/mergability settings in Project Settings
- Better warnings on project open
BSNES tracelog import:
- Rewrite to make it a little more bulletproof
- Add project setting to allow overwriting existing markers/instructions/MX flags (useful option if you have a lot of desync'd assembly marked)
Export: fix error# in errors.txt going up twice (minor)
Full Changelog: v2.2.1.13...v2.3.0.0
v2.2.1.13
Bugfixes
- Fix "open last project automatically" failing to remember what the last project was :)
New: "Go to Next Unreached In Point"
- Tracelog-generated disassembly is great, but you can only uncover what the game actually plays through. When there are lots of rare branches in the game code, there will be small pockets of unmarked opcodes that need to be stepped over by hand in order to fill in the gaps.
- So, pressing F3 will jump you to the next unmarked byte in the file that is a known branch point from a marked operand (like JMP/BRA/JSR and friends). Super-useful for cleaning up those last tiny bits of unmarked code to get a project to completion.
Other
- UI: Most step/goto instructions will by default keep your currently selected cell near screen center. (Before, Step and other operations would keep you at the bottom of the screen). This is a handy UX improvement in order to just more easily see what's coming up next (so you don't step headfirst into a bunch of data, or wreck some other part of the file)
- Help menu goes to a useful HELP.md on github, where it's easy to edit.
- Updated HELP.md, removed a lot of old stuff and touched on some of the new stuff.
Full Changelog: v2.2.1.12...v2.2.1.13
v2.2.1.12
NavigationForm: fix crash on re-opening - maybe there's better ways but to fix we intercept Close() events, cancel, and Hide() instead - fixes #92
v2.2.1.11
New Stuff:
- When exporting disassembly, all-labels.csv will be created with a list of all labels in the project
Merged pull request #89 from patrickmollohan:
- Added keyboard shortcuts for "Enter" and "Delete" keys, where "Enter" begins editing the currently highlighted cell and "Delete" clears its value.
- Added a keyboard shortcut for "Export Disassembly (Edit Settings First)", set to Control+Shift+E, to facilitate quick changes to the export directory for diffing between two exports.
Merged pull request #88 from hsm:
- Modified the CDL import process to skip overwriting the flag if it's marked.
Merged pull request #87 from YoshiRulz:
- adding build instructions and a contribution guide.
Internals:
- Backported a bunch of stuff from Diz3 branch
- Trying to get Diz2 and Diz3 branches closer to each other so it's possible to someday, somehow, get them merged