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 | |
Pages: 1 2 3 4 5 6 7 8 9 10Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Parasyte

Bullet Bill
Level: 35

Posts: 447/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 04-20-05 03:53 AM Link | Quote
Like MVP, MVN is a memory copy instruction. Before executing the instruction, the source and destination addresses are loaded into X and Y respectively, and the length of the copy is loaded into A. The operands to the MVP/MVN instruction specify the source and destination banks.

A snippet from the wonderful 65816info.txt:
MVN Move Negative is used when the source address is greater than the
destination address, or conversely when the destination range is lower than
the source range.

The MVN instruction uses the X and Y registers to denote the bottom
(beginning) address of the two memory segments to be moved. With MVN the
data is moved from the source in X to the destination in Y, then the X and
Y registers are are incremented and the accumulator decremented until the
accumulator underflows to $FFFF.

MVP Move Positive is used with the source address is less than the
destination, or conversely when the destination range is higher in memory
than the source range.

The MVP instruction uses the X and Y registers to denote the top address of
the two blocks of memory. The data is moved from the source in X to the
address in Y and then the XY and accumulator registers are decremented
until the accumulator underflows to $FFFF.



I wonder, is it just me, or do people really hate looking these things up for themselves? Do some research, people!
Chickenlump

Level: 41

Posts: 547/722
EXP: 474192
For next: 5953

Since: 03-15-04
From: Columbia City Indiana

Since last post: 3 hours
Last activity: 4 min.
Posted on 04-20-05 04:21 AM Link | Quote
Just tossed a random question out to legalize the thread bump. I have that document and everything, and I have no problems looking things up for myself. I just suck at bumping threads I suppose. Sorry for troubling you.




(edited by Chickenlump on 04-19-05 11:22 AM)
Geiger

Buster Beetle
Level: 34

Posts: 367/460
EXP: 241080
For next: 12571

Since: 03-15-04
From: Indianapolis, IN, USA

Since last post: 6 hours
Last activity: 6 hours
Posted on 04-20-05 07:36 AM Link | Quote
Mark 9 Release 8

Update:
http://geigercount.net/crypt/snes9x1.43.ep9r8.update.7z


Fixed
- Accessing the valid extension list caused the Open ROM dialog to crash



---T.Geiger
Parasyte

Bullet Bill
Level: 35

Posts: 451/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 04-20-05 09:47 PM Link | Quote
I have created a few "de-annoyifier" patches for ep9r8. The first, ("noask") will remove the annoying nag Message Box asking if it's OK to remove the head/deinterleave the ROM; the changes are made without user intervention! The second patch, ("nosave") also removes the nag, and in addition will NOT edit the ROM *at all. These are mostly the result of, "If you want something done right, do it yourself." They are mostly for novelty purposes, where 'novelty' implies that you hate annoyances enough to hack them out. (*cough*)
I made similar patches for ep9r7 but didn't bother posting, because that build contained a nasty bug, any way.

Download here and enjoy.


* The ROM file will not be modified unless you explicitly save it through some means such as the "Save ROM" button in the hex editor.
Jigglysaint

Red Cheep-cheep
Level: 24

Posts: 169/215
EXP: 76907
For next: 1218

Since: 03-17-04

Since last post: 7 days
Last activity: 3 days
Posted on 04-23-05 10:04 PM Link | Quote
I'm trying to run the problem, and I've placed the .dll's in both the system folder and the folder with the program, but it still gives an error message. When I go to run it, I get an error, as well as a very long path name that leads to a folder that doesn't exist.
Parasyte

Bullet Bill
Level: 35

Posts: 464/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 04-24-05 12:54 AM Link | Quote
You should probably ensure you have the *full release* and not the *update* that Geiger linked to. Like so: http://geigercount.net/crypt/snes9x1.43.ep9r8.7z
DarkPhoenix

Octorok
Level: 9

Posts: 6/31
EXP: 2669
For next: 493

Since: 03-08-05

Since last post: 23 days
Last activity: 16 hours
Posted on 04-26-05 11:41 PM Link | Quote
Possibly found a little bug, or I might just be looking at this the wrong way, but it has to do with the skip instruction. Nothing major, just some confusing output. I'm running Zelda 3, I break execution at $008888, I step in a few times until it starts looping a CMP and a BNE. On the BNE instruction ($008894), if I look at next op, it just lists the BNE again. If I skip the instruction, it again, lists the BNE, and then proceeds to execute the LDA at $008898...that is, it seems to skip the SEP instruction at $008896. It certainly seems to be executing the instruction (as the M flag is now set), but I would've expected that the both the next op and skip commands would list the SEP instruction, rather than repeating the BNE.
Parasyte

Bullet Bill
Level: 35

Posts: 472/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 04-27-05 04:00 AM Link | Quote
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!
Dark Ludwig

Red Paratroopa
Level: 21

Posts: 33/172
EXP: 45740
For next: 4203

Since: 09-17-04
From: Georgia

Since last post: 9 days
Last activity: 2 days
Posted on 04-27-05 05:01 AM Link | Quote
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.
DarkPhoenix

Octorok
Level: 9

Posts: 8/31
EXP: 2669
For next: 493

Since: 03-08-05

Since last post: 23 days
Last activity: 16 hours
Posted on 04-27-05 07:30 AM Link | Quote
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
Parasyte

Bullet Bill
Level: 35

Posts: 473/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 04-28-05 06:21 AM Link | Quote
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

Octorok
Level: 9

Posts: 12/31
EXP: 2669
For next: 493

Since: 03-08-05

Since last post: 23 days
Last activity: 16 hours
Posted on 04-28-05 07:47 AM Link | Quote
hey, I did not notice that...thanks.
Geiger

Buster Beetle
Level: 34

Posts: 372/460
EXP: 241080
For next: 12571

Since: 03-15-04
From: Indianapolis, IN, USA

Since last post: 6 hours
Last activity: 6 hours
Posted on 04-28-05 09:52 PM Link | Quote
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
Parasyte

Bullet Bill
Level: 35

Posts: 480/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 04-29-05 07:21 AM Link | Quote
Ditto. Kirby's Dream Course works fine.
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 1793/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 04-29-05 10:34 PM Link | Quote
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.
Geiger

Buster Beetle
Level: 34

Posts: 373/460
EXP: 241080
For next: 12571

Since: 03-15-04
From: Indianapolis, IN, USA

Since last post: 6 hours
Last activity: 6 hours
Posted on 04-30-05 01:00 AM Link | Quote
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

Math n' Hacks
Level: 67

Posts: 1794/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 04-30-05 04:32 AM Link | Quote
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.
DarkPhoenix

Octorok
Level: 9

Posts: 16/31
EXP: 2669
For next: 493

Since: 03-08-05

Since last post: 23 days
Last activity: 16 hours
Posted on 05-02-05 12:07 AM Link | Quote
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.


(edited by DarkPhoenix on 05-01-05 07:08 AM)
Parasyte

Bullet Bill
Level: 35

Posts: 488/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 05-02-05 05:42 AM Link | Quote
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.
Geiger

Buster Beetle
Level: 34

Posts: 374/460
EXP: 241080
For next: 12571

Since: 03-15-04
From: Indianapolis, IN, USA

Since last post: 6 hours
Last activity: 6 hours
Posted on 05-02-05 11:28 AM Link | Quote
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
Pages: 1 2 3 4 5 6 7 8 9 10Add to favorites | "RSS" Feed | Next newer thread | Next older thread
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.023 seconds.