'Best' Emulator?
As mentioned in other threads, I'm in the process of disassembling and recreating my Finders Keepers source code so that I can write Finders Keepers+.
I started this some months before joining this site and was mostly doing it just for my own amusement so I was writing a full tool set that was going to include :-
Disassembler [Done, but enhancements to add]
Hex viewer [Done]
Graphics viewer [done]
Assembler [Not started - now no longer required]
Emulator (with debugging - Single step, breakpoints, call stack etc etc) [Partly done]
Having now discovered Zeus, I am no longer going to bother writing an assembler as I have tweaked my disassembler output to work with Zeus and I've managed to rebuild the original binary using my disassembler and Zeus.
So, having saved a lot of time by using Zeus, I've decided to stop writing my own debugging emulator if I can find one that will do what I require.
So what I'm looking for is an emulator that will :-
1) Allow me to easily inspect the memory contents at any time. Ideally with a disassembly available
2) Allow me to easily see register contents at any time
3) Allow me to set break points and singe step code
4) Work with 128K programs
5) Give me other useful debugging information
I'm sure there's something that does all this, so any pointers would be very useful. Thanks.
I started this some months before joining this site and was mostly doing it just for my own amusement so I was writing a full tool set that was going to include :-
Disassembler [Done, but enhancements to add]
Hex viewer [Done]
Graphics viewer [done]
Assembler [Not started - now no longer required]
Emulator (with debugging - Single step, breakpoints, call stack etc etc) [Partly done]
Having now discovered Zeus, I am no longer going to bother writing an assembler as I have tweaked my disassembler output to work with Zeus and I've managed to rebuild the original binary using my disassembler and Zeus.
So, having saved a lot of time by using Zeus, I've decided to stop writing my own debugging emulator if I can find one that will do what I require.
So what I'm looking for is an emulator that will :-
1) Allow me to easily inspect the memory contents at any time. Ideally with a disassembly available
2) Allow me to easily see register contents at any time
3) Allow me to set break points and singe step code
4) Work with 128K programs
5) Give me other useful debugging information
I'm sure there's something that does all this, so any pointers would be very useful. Thanks.
Post edited by David Jones on
Comments
The emulator Simon included with his Zeus Assembler has a lot of the above features.
For anything else, perhaps purchasing the superlative emulator Spectaculator may be in order?
(I won't recommend my own emulator Spud).
Another reason for me to use Spin is because it is not the best emulator (but i haven't use many of them). I use it because I feel it is the lowest common denominator so if it works on Spin, it'd work on many other emulators.
PS. And I use Basin for .TAP file editing. Not sure if you need to edit any .TAP files, but if you do, try it. (It's also an emulator but I don't use it for that.)
Games List 2016 - Games List 2015 - Games List 2014
Welcome to WOS. :)
Am I right you used to use a Tandy TRS - 80 back in the day to write software?
How did you find that as a development environment?
Perhaps the community should get together and build the "one" emulator/debugger.
I'd also love a tracer...
EDIT.
If I wasn't so busy on the Ultimate apps (and err reading the WoS forums :) ) I'd be writing a blog post on all the debuggers....
Everybody left leaving Dunny on his own. So Dunny left!
Extensive, although it helps if you're familiar with GDB syntax. I do all my debugging in Fuse because it's the only emulator that supports all the hardware I require.
And not, somewhat to my frustration, the multiface 1/128!
I think the reason for that is that the Multiface doesn't do anything FUSE can't already do without it.
I think that's probably a good move, as it'd take a huge amount of effort to develop something that came close to the accuracy and support for undocumented behaviour (and emulated hardware) that the current crop of emulators have.
I personally use SpecEmu (on both Windows and linux). It covers all of your requirements, is *extremely* accurate and efficient, and basically looks and works the way I think an emulator should. I've also spent quite a lot of time (many man hours...) using FUSE and ZXSpin to debug stuff over the years and they also are definitely worth a look in case you happen prefer their UIs.
It's not really worth writing an emulator of your own unless you want to do it purely as a learning exercise as it'd be a major undertaking to get anywhere remotely close to the above-mentioned ones in terms of accuracy or emulated hardware support (I speak from experience, having written two Speccy emulators from scratch in different languages, and a ZX81 emulator, over the years).
I hope that helps in some small way. Have been following your posts about FK+ with great interest - all very exciting!
You probably realize that you're reinventing the wheel? ;) All these things already existed.
But as long as you have fun with creating your own tools, there's nothing wrong with it.
I really like Spectaculator's debugger and perhaps you might be the person to nudge Jonathan into releasing a beta of the next version which is supposed to have a better debugger!
As mentioned earlier, FUSE has a gdb style debugger which seems quite flexible but I'm afraid I never used it enough to get to grips with it, if it's what you're used to though it could be perfect.
The one in RealSpectrum seems to be quite good as well, although I haven't really used it in anger so I'm going more on reading the feature set and giving it a quick go.
I think the best advice for anyone would be to try them all and see which one suits best - You might find that you prefer to use more than one, depending on their capabilities and what part of the code you're working on.
Personally I would love to see one like D86 (which is a DOS-based interactive debugger on the PC), as I really loved that when I was coding assembly on the PC.