Releases: vladikcomper/md-modules
MD Debugger and Error Handler v.2.6
- AXM68K, Psylink and GAS support, better assertions, compact error handler offsets and tons of QoL improvements!
MD Debugger 2.6 is finally out, including ~1.5 years worth of work, with tons of stability and QoL improvements! This release focuses on extending supported assemblers and improving the existing features: better asserts, compact offsets and displacements on error screens, KDebug integration is no longer experimental.
Feature highlights
- Official AXM68K and GAS support (allows SGDK integration), support for ASM68K projects using Psy-Q Linker;
- Error handler now uses compact offsets and symbol displacements: offsets are rendered as 24-bit instead of 32-bit and displacements don't have leading zeros (
+000X
is now+X
); - Better assertions: you can now assign custom debuggers to failed assertions, assertion failed exception is improved and displays the received value;
- KDebug integration is no longer experimental; you can use
KDebug.Write[Line]
in console programs; Console.WriteLine
,Console.Write
,KDebug.WriteLine
,KDebug.Write
are now much faster when formatted string doesn't include any printable arguments;- Added
_Console.*
,_KDebug.*
,_assert
macros for advanced users ("shadow macros"): they behave like the original ones, but don't save/restore CCR as an optimization; - ASM68K version: Support projects that use "." for local labels, support projects with
/o ae+
compile flag; - AS version: Support
xxx.w
,(xxx).w
,xxx.l
and(xxx).l
syntax in formatted string arguments; - Many optimizations, bugfixes and stability improvements.
Special thanks to @OrionNavattan for contributing a few optimizations and bugfixes for this release.
See MD Debugger's version history for the detailed changelog.
Version 2.5 to 2.6 migration guide
If you were already using version 2.5, migration is as simple as upgrading your Debugger.asm
and ErrorHandler.asm
files from the bundle for your assembler and upgrading ConvSym utility. As usual, versions are 100% backwards-compatible.
- Download
errorhandler-2.6.zip
below; - Inside this archive, find the directory that matches your assembler (e.g.
asm68k
for ASM68K,as
for the AS Macro Assembler); - Replace
Debugger.asm
andErrorHandler.asm
files in your projects with ones from that directory; - Download
consym-2.12.1.zip
, find executable for your platform (64-bit Windows or Linux) and replace one in your project;
Installation guides, documentation and help
MD Debugger comes with exhaustive documentation, installation guides and usage examples. See the following links for details:
MD Shell v.2.6
- This is MD Shell release, for MD Debugger and Error Handler, see other releases
MD Shell is an easy-to-use wrapper for writing console-like Sega Mega-Drive ROMs that can output text using printf-like syntax (powered by "high-level" Console.Write
macros). It's based on console mode of MD Debugger.
Although it's v.2.6 and MD Shell has been developed alongside the same MD Debugger versions, it's the first proper public release. I've mainly been using MD Shell for writing small test and demo ROMs for myself, but I believe it may be useful for other people as well.
Feature highlights
- Learn M68K assembly or experiment with printf-like logging like in high-level languages (
Console.WriteLine
); - Benchmark your code using
KDebug.StartTimer
/KDebug.EndTimer
(supported in Blastem-nightly); - Colored text, automatic line breaks and basic console flow control (
Console.SetXY
,Console.Sleep
,Console.Pause
and others); - Includes all the MD Debugger features: assertions (
assert
), custom exceptions (RaiseError
), KDebug intergration and a power error handler; - Supports both AS and ASM68K assemblers;
Getting started
- Download
md-shell-2.6-demo.zip
for a quick hello world to get started (targets ASM68K assembler); - Alternatively, see
md-shell-2.6.zip
for headers for all supported assemblers.
Documentation and help
MD Debugger and Error Handler v.2.5
- Stable AS support, Backtrace, KDebug integration and much more!
It's sure been a while: over 5 years since version 2.0 release in 2018, but development was slowly but surely going~
Version 2.5 brings some new incredible features, major QoL and stability improvements! It's also 100% backwards-compatible with v.2.0, meaning it's almost a drop-in replacement for the old users!
Feature highlights
- Stable AS support
- Better integration with AS projects, stable debug symbol extraction.
- Backtrace, address registers analysis and custom built-in debuggers
- On any exception screen, press B to display backtrace, A for address registers, Start to return;
- You can map A/B/C buttons to your custom debuggers;
- Log in-game events, benchmark code, breakpoint with KDebug integration
- Blastem-nightly and Gens KMod allow you to log debug messages in emulator's console/window;
- No side-effects on unsupported emulators and the real hardware.
- Debugger now supports assertions.
- ConvSym, the debug symbol extraction utility, is now fully cross-platform.
- Slightly improved exception display, many QoL and stability improvements.
See MD Debugger's version history for the detailed changelog.
Version 2.0 to 2.5 migration guide
If you were already using version 2.0, migration is really simple as the new version is 100% backwards compatible.
- Download the correct version for your project (
errorhandler-as.7z
orerrorhandler-asm68k.7z
). - Replace the old files; remove
ErrorHandler.bin
from the old installation because it's now inlined intoErrorHandler.asm
. - Download and replace
convsym
utility for your platform (see below for Windows, Linux, BSD and MacOS versions). - Everything should work already, but to support features like assertions and KDebug integration you need to modify your build system to generate DEBUG builds. Just find an installation guide for your disassembly and follow the "Install ConvSym to generate debug symbols" step.
Installation guides, documentation and help
MD Debugger comes with exhaustive documentation, installation guides and usage examples. See the following links for details:
MD Debugger and Error Handler v.2.0
- Now with AS support and much more!
So, it's been almost 1.5 years since version 1.0 was originally released.
But during these years, people were still asking me about some new features, to add more customization and extensibility. So I took all the feedback and requests into consideration and completely reworked debugger's internals to make some insane new features possible and yet preserve a bit of back-compatibility and the same appearances.
While the key feature in version 1.0 was decoding raw offsets into actual labels/symbols in the source code, the key concept behind version 2.0 and the focus of further additions is creating your own debuggers and error handlers with ease!
This becomes possible with debugger's new high-level features, available natively for ASM68K and AS with a set of new macros.
- The debugger is now built around an extensible modular architecture
- You can write your own console programs and custom error handlers using additional commands to control console and format its output
- Includes new and improved symbol storage format: DEB v.2.0 (or simply, DEB2)
- Includes the updated symbol extraction utility (ConvSym.exe) with tons of new features
- And finally, all the new features fit into a tiny 3 KB blob!
Please refer to the following post for more information on the release: http://sonicresearch.org/community/index.php?threads/advanced-error-handler-for-your-hacks-and-homebrew.4442/#post-78456
This release includes bundles for the following assemblers:
- ASM68K
- The AS Macroassembler (version 1.42 Bld 55 and above)