Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Geiger's Snes9x Debugger Mark 9
  
User name:
Password:
Reply:
 

UserPost
MathOnNapkins
Posts: 1956/2189
Originally posted by HyperHacker
A little, yes, but it seemed appropriate. Also I'm pretty sure breakpoints are disabled after resetting. You might have to un-check them and check them again.


Yep.
HyperLamer
Posts: 4785/8210
A little, yes, but it seemed appropriate. Also I'm pretty sure breakpoints are disabled after resetting. You might have to un-check them and check them again.
BMF98567
Posts: 895/1261
Little bump there, HH?

Well, as long as this thread's back on page 1, I may as well submit a couple of bug reports...

- 65c816 emulation seems to be a bit too slow. I keep encountering serious slowdown in SMO where there is none in ZSNES or the official SNES9X. (H)DMA also seems to be affected, causing occasional Layer 3 flickering (i.e. when deleting save files).

- Frequently, breakpoints just don't want to trigger. They work fine right after opening the program and loading a ROM, but as soon as I reset the game or reload the ROM, they stop working (or work intermittently). I know they should be triggering because I can see the addresses being modified in the hex viewer.
HyperLamer
Posts: 4758/8210
Hmm. Be nice if it didn't crash every second time I tried to disassemble something, or if hitting 0 didn't randomly change the timing with no way to reverse it making the game run too fast...
Imzogelmo
Posts: 37/41
I'm not sure what the cause is since it doesn't happen every time, but sometimes clicking on "Step Over" actually steps Into a function.


EDIT:
Another small thing: Could you make it so that read/write breakpoints break on read/write to/from EITHER byte when in 16-bit mode? For instance, in FFVI I tried to break on a read from 00:00B7 while in battle, but it never hit (although it did break on write). When I changed it to 00:00B6, I found what I needed (but I had to check for 16-bit A).
HyperLamer
Posts: 4345/8210
I'd just use a list control but with tabs instead of columns. Using them with a fixed-width font and padding things with spaces, you can 'fake' the columns.

DP's idea is good too... Only need to add 3 characters. 0D/F102 D9 F9 F9 CMP $F9F9,y [$0D:F9FB=42] A:0062 X:0000 Y:0002
DarkPhoenix
Posts: 19/31
That's true...didn't really think of that...List Control's out, then, but I think the DataGrid control has native clipboard support. I've never used DataGrid myself, though, so I'm not 100% sure, and I don't know how easy it is to implement
Geiger
Posts: 374/460
Actually, I originally designed the interface to use a list control, but I opted to use a textbox for a couple of reasons. The large number of columns needed created quite the cluttered mess.

More importantly, it also made it virtually impossible to output other information in a readable manner. This would have required the usage of two separate controls to output information (textbox and list), and I did not see much of a reason to do it that way.

As for your request, it is something I have considered adding. I will keep it in mind.

---T.Geiger
Parasyte
Posts: 488/514
The only problem I have with list controls is that Windows does not include any native means of copying text from them. It's up to the programmer to include such functionality, and such functionality is imperative to the debugging process.
DarkPhoenix
Posts: 16/31
A small request, just to make things a little easier...
For instructions in absolute, and possibly even indirect addressing modes, you quite conveniently provide the full address in the output, but, if it's not too much trouble, could you also provide the value stored in that address?

for example, with
0D/F102 D9 F9 F9 CMP $F9F9,y [$0D:F9FB] A:0062 X:0000 Y:0002
could you also include the value stored in $0D:F9FB?

I know the debug console's getting a little cluttered with all the information, but it'd save a whole lot of scrolling through RAM, which would make it much easier to figure out exactly what a subroutine is working with, particularly if it's working with data from all ends of memory.

Also, just a suggestion, but to clean up the debug console, you might want to consider using a list view control to display the output...harder to implement, but it'd save you some trouble with formatting at least, and then we could just shrink and expand things as we need them. It'd make the app a lot more friendly with lower resolutions, and get rid of problems like that one with the "skip" output printing offscreen.
MathOnNapkins
Posts: 1794/2189
Oh, whoops forgot about that. Well just as a reminder you should change it on your site as well. The most recent update is release 7.
Geiger
Posts: 373/460
I am trying to use Mark 9 release 7 (finally) but it isn't detecting any roms except the one rom that happens to be in My Documents.

There was a serious bug in the Open ROM dialog in R7. Get R8.

---T.Geiger
MathOnNapkins
Posts: 1793/2189
Geiger: I am trying to use Mark 9 release 7 (finally) but it isn't detecting any roms except the one rom that happens to be in My Documents. I checked back with release 6 and it was functional. Were you midway through implementing your overhaul of the open rom dialogue or something? The debugger is functional with roms that are on my recent list, however.
Parasyte
Posts: 480/514
Ditto. Kirby's Dream Course works fine.
Geiger
Posts: 372/460
Whenever I try to open Kirby's Dream Course (U).smc with the debugger, it waits a second, then crashes and closes.

I am not able to recreate this problem on my end.

---T.Geiger
DarkPhoenix
Posts: 12/31
hey, I did not notice that...thanks.
Parasyte
Posts: 473/514
Hello! Thanks for the clarification. Now that I can see what's happening, my explanation is not very relevant to the situation. When you push the "Skip" button, this is what it prints:

$00/8894 D0 FB BNE $FB [$8891] A:BBAA X:00E0 Y:0000 P:eNvmxdIzC$00/8896 E2 20 SEP #$20 A:BBAA X:00E0 Y:0000 P:eNvmxdIzC
Note that it's displaying two instructions on a single line. This is probably what is happening; you're not seeing the SEP instruction because it's printed off-screen, and you must scroll the edit box to the right to see it. This turns out to be a genuine bug. But a simple work-around is expanding your debugger window so you can see these 'badly printed' instructions.
DarkPhoenix
Posts: 8/31
Thanks Parasyte, for the clarification, though I'd figured out that much, if I'm reading your right. I figured it stops it before the instruction, as if the address that the break is at were a label, sort of like how the GNU debugger stops at a label - before the instruction on that line is executed...but I still don't think that accounts for the problem I noticed...I'll reiterate the problem, hopefully a little more clearly

1) on the BNE statement, it thinks both the current and future instructions are the BNE, and
2) when I step over the BNE, it doesn't update what it displays as the current instruction to be the SEP statement, so it still tells you that it's on the BNE, even though it's actually properly moved execution forward to the SEP statement

or maybe this is easier to understand
1)I break at 8894 (BNE)
2)I display current intsruction and next instruction, they both display as BNE (I believe it should be BNE and SEP, respectively)
3)I skip over 8894 to 8896 (SEP)
4)I display current next instruction, they display as BNE and LDA, respectively (it should be, I believe SEP and LDA, respectively)
5)I step to 8898 (LDA) - note that it does properly execute the SEP
It just doesn't display it
6)I display current instruction, it properly displays as LDA
Dark Ludwig
Posts: 33/172
I have a problem. Whenever I try to open Kirby's Dream Course (U).smc with the debugger, it waits a second, then crashes and closes. I really want to be able to see data for that game so that's why I wanted to tell you about it. Oh, and it's 1MB for extra info.
Parasyte
Posts: 472/514
The "Next Instruction" button actually displays the *current* instruction. But really the whole idea of discussing this button and it's use can get messy.
You see, the emulator stops execution after one instruction has finished executing, and before the next instruction will execute. Effectively, this makes the "next" instruction that of the "current" instruction, due to being stopped in between two instructions. Therefore, "next", in this context does not mean "the instruction following the current instruction" but "the next instruction which will be executed"... Which also happens to be the current instruction!

Now if THAT doesn't confuse you, I don't know what will!
This is a long thread. Click here to view it.
Acmlm's Board - I2 Archive - Rom Hacking - Geiger's Snes9x Debugger Mark 9


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.002 seconds.