Page 2 of 7
Posted: Thu Jan 06, 2011 12:46 pm
by teaguecl
neilbaldwin wrote:thefox wrote:
I could and might at some point, but it's probably better to e-mail Quietust about it. He's still the sole official developer, I just grabbed the source and hacked away.
Do you know him? If so, a friendly word would be helpful

Sadly, Q disappeared from the forums abruptly after a rather strange interaction. Hopefully he's still lurking here, but I wouldn't expect him to respond to any messages here on Nesdev.
Posted: Thu Jan 06, 2011 3:08 pm
by neilbaldwin

That's a shame.
Well, if he is lurking or anyone is in contact with him I'd love to discuss the possibility of making the changes I mentioned.
PM me through here or email me;
neil@ntrq.net
Posted: Fri Jan 07, 2011 6:47 pm
by ManicGenius
The biggest PITA is that I can't get it to work under any virtual machine I have. Really don't feel like installing windows for real just so I can run this.
Posted: Fri Jan 07, 2011 7:20 pm
by ManicGenius
And nevermind. Found a bug where the window is invisible. The workaround is to right click on the taskbar and select maximize.
Also wanna add thank you so much for this. Feel like I'm coding with sanity again since I can debug at my source code.
Posted: Sat Jan 08, 2011 12:36 am
by thefox
I worked on timer support yesterday. Timers allow you to count and display CPU cycles between two blocks. Currently it's implemented using special registers: $401E/$401F control timer 0 (VirtuaNES compatible) and $402x/$403x control 16 additional timers.
I might change it to use specially named symbols instead. So you'd define a symbol named timer1_start/timer1_end or something. Currently it can't be made to work properly with bank switching though. Also a symbol could be exported to define a name for a timer. Or the names could be read from text file... or entered in the debugger. I'm not sure what would be the best way.
Now if Uz only would implement those damn line infos for .repeat blocks and macros in CC65... I would be one happy camper.
Also note to self: need to fork Nintendulator from SourceForge SVN instead of working on a static copy.
ManicGenius wrote:And nevermind. Found a bug where the window is invisible. The workaround is to right click on the taskbar and select maximize.
Bug in Nintendulator? Can you elaborate? What window?
Also wanna add thank you so much for this. Feel like I'm coding with sanity again since I can debug at my source code.
I know what you mean, when you're used to proper debugging tools there's no going back. Surprisingly many developers (all around, not just NesDev) are very ignorant about this and resort to "printf debugging" instead.
Posted: Sat Jan 08, 2011 10:44 am
by Hangin10
Sometimes when starting Nintendulator the main window will not show up (either it's hidden or the initial position is offscreen somehow). It then takes maximizing it from the task bar to get it visible at all. Selecting a size from the PPU menu will unmaximize it without making it invisible again.
I don't think I've had the problem, however, since I started using the most recent Unicode binary. I'm running 64bit Windows 7. Using the ASCII binary, Windows will switch my desktop theme saying the program doesn't support it.
(For some reason, whenever I download Nintendulator, I tend to download the wrong one. I always get rather confused by the layout of the website, even though it was obviously designed to be simple.)
Two other random things! It stores the palette settings (NTSC slider values) in the registry, which makes it really hard to reset if you don't remember the initial value. I deleted all the registry entries for Nintendulator, but then the palette still didn't look quite right.
Also, kind of a nitpick, but the menu item that shows the "Debug Information" window should probably toggle it rather than do nothing when the window is already displayed.
Posted: Sat Jan 08, 2011 11:13 am
by tepples
Non-Unicode binaries are for Windows 95, Windows 98, and Windows ME. If you're running an NT-based operating system (Windows 2000, Windows XP, Windows Vista, or Windows 7), get the Unicode one.
Posted: Sat Jan 08, 2011 2:33 pm
by ManicGenius
tepples wrote:Non-Unicode binaries are for Windows 95, Windows 98, and Windows ME. If you're running an NT-based operating system (Windows 2000, Windows XP, Windows Vista, or Windows 7), get the Unicode one.
Issue happens regardless of binary type.
Posted: Sat Jan 08, 2011 2:35 pm
by ManicGenius
thefox wrote:I know what you mean, when you're used to proper debugging tools there's no going back. Surprisingly many developers (all around, not just NesDev) are very ignorant about this and resort to "printf debugging" instead.
Printf debugging has it's place, but usually only for hard bugs where throw/catch clauses will work. For soft bugs, printf debugging is a nightmare.
Posted: Sat Jan 08, 2011 9:38 pm
by thefox
Hangin10 wrote:Sometimes when starting Nintendulator the main window will not show up (either it's hidden or the initial position is offscreen somehow). It then takes maximizing it from the task bar to get it visible at all. Selecting a size from the PPU menu will unmaximize it without making it invisible again.
Thanks for elaborating, however I want to stress this is not an official Nintendulator support thread or anything and I'm probably not going to fix any of these general type bugs (unless I really feel like it

).
It sounds like it starts offscreen, have you tried right clicking on it in taskbar and selecting "Move"? (On Win 7 you have to Shift+Right Click). Then you can move the Window with arrow keys and after first key press you can also move with mouse.
ManicGenius wrote:Printf debugging has it's place, but usually only for hard bugs where throw/catch clauses will work. For soft bugs, printf debugging is a nightmare.
Yes, there are times when it's OK, or the only option even.

Posted: Sun Jan 09, 2011 10:00 pm
by thefox
thefox wrote:I might change it to use specially named symbols instead. So you'd define a symbol named timer1_start/timer1_end or something. Currently it can't be made to work properly with bank switching though. Also a symbol could be exported to define a name for a timer. Or the names could be read from text file... or entered in the debugger. I'm not sure what would be the best way.
I worked around the bank switching problem by prefixing the timer title with a signature (like __timer1_title__), ANDing the symbol address with $FFF and checking all 4K banks for the signature. Works well enough, so now I have nice titles for all my timers. Quite useful.

Posted: Mon Jan 10, 2011 10:55 am
by neilbaldwin
thefox wrote:
Yes, there are times when it's OK, or the only option even.

Yeah, tell me about it

Posted: Mon Jan 10, 2011 8:06 pm
by ManicGenius
thefox wrote:thefox wrote:I might change it to use specially named symbols instead. So you'd define a symbol named timer1_start/timer1_end or something. Currently it can't be made to work properly with bank switching though. Also a symbol could be exported to define a name for a timer. Or the names could be read from text file... or entered in the debugger. I'm not sure what would be the best way.
I worked around the bank switching problem by prefixing the timer title with a signature (like __timer1_title__), ANDing the symbol address with $FFF and checking all 4K banks for the signature. Works well enough, so now I have nice titles for all my timers. Quite useful.

Awesome... this debug tool just gets better and better
Posted: Mon Jan 10, 2011 8:39 pm
by Dwedit
What I'd love to see is a way to open listing files (.LST) in a debugger, and get source level debugging from those. Just suggesting listing files because they don't need any reassembly, just identification of addresses to line numbers, and those are already in the file.
Although, embedding ASM6 into an emulator seems like it would be easy as well.
Posted: Fri Jan 14, 2011 1:46 am
by neilbaldwin
Woohoo! Just found out that the latest development build of Nintendulator now supports NES2.0 and 32KB .sav files.
Many thanks to Quietust, if he's reading
Now, all I need is the fox to add these debugging features to the latest unstable build of Nintendulator and maybe I can finally fix these bugs and get PR8 released.
Just sayin' ...
