'Best' Emulator?

edited September 2013 in Development
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.
Post edited by David Jones on

Comments

  • edited September 2013
    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.

    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?
  • edited September 2013
    I recommend Spin or SpecEmu.

    (I won't recommend my own emulator Spud).
    I wanna tell you a story 'bout a woman I know...
  • edited September 2013
    For my development needs I use Spin as the emulator. It has some good debugging facilities (although debugging is still painful because the disassembler window jumps everywhere, but the memory view is useful to see how much free memory i have left to use.)

    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.)
  • edited September 2013
    Heck, I haven't been following the forum much recently, I didn't realise you are the David Jones is the David Jones, author of the Magic Knight series!
    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?
  • edited September 2013
    Heck, I haven't been following the forum much recently, I didn't realise you are the David Jones is the David Jones, author of the Magic Knight series!
    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?
    http://www.worldofspectrum.org/forums/showpost.php?p=721526&postcount=59
    I wanna tell you a story 'bout a woman I know...
  • edited September 2013
    I would say Spin too, although I so so wish it would get updates again.... why did development stop?

    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....
  • edited September 2013
    Korinel wrote: »
    I would say Spin too, although I so so wish it would get updates again.... why did development stop?

    Everybody left leaving Dunny on his own. So Dunny left!
  • edited September 2013
    Context/pasmo/spectaculator works really well for me. I think spectaculator easily justifies the price. Has a debugger with breakpoints / dissasembly / register output.
  • edited September 2013
    Fuse emulates perfectly, dunno about its debugging capabilities though
  • edited September 2013
    slenkar wrote: »
    Fuse emulates perfectly, dunno about its debugging capabilities though

    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.
  • edited September 2013
    aowen wrote: »
    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!
  • edited September 2013
    Gedlion wrote: »
    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.
  • edited September 2013
    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.
    Hi David,

    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!
  • edited September 2013
    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]

    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.
  • edited September 2013
    I don't think there's an easy answer to this. Spin has a nice debugger with some handy tools like a graphic viewer, but I find it's not completely stable on most of the machines I've tried it with and it does have some 'quirks'. The nice thing about it is that it also functions as a real-time assembler, so you can easily patch a bit of code and carry on.

    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.
Sign In or Register to comment.