|Re: [hatari-devel] OT: My dream about Hatari|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
Mikro, I'm actually in the same case than you are : I'm working on my new game project intensively and it takes me nearly all the free time I can spend on the Atari.
So, actually, I won't be very active on Hatari (the emulator works great for my purpose). I'll come back to emulation problems and retro engineering later.
But the main difference with you is that I use intensively the internal debugger (it's not that hard to learn and it solves nearly all the problems I can encounter).
Without the possibility to stop the code where I want and analyse what I need without being intrusive into the execution of the program, I would probably not have started such a project neither I would have done Beats of Rage..
It's very easy to detect a memory overwriting (with the "break address != address" command).
It's very easy to detect a problem with a black screen (I've encountered this many times) with the "history" command.
It's very easy to detect the needed optimisations (with the profile on + profile cycles commands)
The recent new feature LABELS added directly from the executed program is a great tool to put breakpoints of look at a specific memory buffer.
The DSP is easy to debug too ;) (lock dspregs + trace dsp_disasm + dc 1 dc 1 dc 1 dc 1 dc 1 ...) to execute the DSP code step by step and have a quick look at the registers values.
All the debugging tools included into Hatari are really more powerful than the native tools we had on the Falcon.
Of course, adding a new GUI to Hatari would be a good cosmetic add, but I don't think all the debugging possibilities that hatari offers would be useable easily.
I don't know as well as Eero all the possibilities of the debugger or profiler, but I learn some more each time I need a specific command, and with 5-10 commands, you can do a good job.
That was just my 5 cents on the subject.
----- Mail original -----
De: "Miro Kropáček" <miro.kropacek@xxxxxxxxx>
À: "hatari-devel" <hatari-devel@xxxxxxxxxxxxxxxxxxx>
Envoyé: Mercredi 17 Juillet 2013 00:22:52
Objet: Re: [hatari-devel] OT: My dream about Hatari
For example, currently Hatari debugger & profiler can automatically
profile CPU & DSP activity for worst frame in a game *while* you play it,
and automatically quit Hatari when you die (so that some extra scripting
can then automatically post-process the profile data).
If you need callstacks for some specific function while
the program is running, enable profiling at the beginning
and setup following kind of breakpoint:
Eero, this is exactly what I'm talking about. Putting aside the scary syntax :) I totally recognize the power of current Hatari debugger/profiler, that's actually why I'm so sad that I can't use it. Your use cases are totally different from mine because right now, if I develop a new code, the typical situation is "whoops, I see black screen, I need to examine what's going on". And while Hatari can certainly help me with identifying the crash spot, the actual act of debugging is pain (for example: stepping through instructions, skipping some code parts, resetting PC to another address, changing A1 register to a value in X, changing some memory, checking the result again ... I'm not saying it's impossible to do in Hatari but it's so complicated and counter intuitive that you better start DSP Debug under emulation and do that there).
But if showing the disassembly & memory & reg contents in pretty boxes and
supporting stepping are the main uses for such a thing, somebody writing it
as Qt code that gets called instead of the current DebugUI() function could
be a reasonable smallish (couple of weeks) amount of effort.
I don't care even if it's done in .NET and needs 200 MB of memory :)
I can help with that, but currently my time is limited mainly to answering
questions on how such functionality could be integrated to Hatari.
Well, that's the problem. As you don't need this, you are not very keen to spend your valuable time on it. And while I need it, I better want to spend my time on coding Atari stuff :)
MiKRO / Mystic Bytes