Determining the timing of a piece of code

Ask anything your want about Megadrive/Genesis programming.

Moderator: BigEvilCorporation

r57shell
Very interested
Posts: 478
Joined: Sun Dec 23, 2012 1:30 pm
Location: Russia
Contact:

Post by r57shell » Sat Nov 23, 2013 9:23 pm

Stef wrote:Gens is not maintained since a long time now but as far i remember there are methods which allow you to get the "live" odometer
Yes, but it's not working from inside asm loop. I mean for example, from exec hook. Wait, again, I mean, it's working, but it returns incorrect value. :)
Stef wrote:Anyway the base code was even more buggy so and my fix was enough to make games working, i guess it's why i never noticed it :p
That's why I don't even try to fix StarScream, because it's making me SCREAM. :D
Image

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Sat Nov 23, 2013 11:17 pm

r57shell wrote: Yes, but it's not working from inside asm loop. I mean for example, from exec hook. Wait, again, I mean, it's working, but it returns incorrect value. :)
Did you look how i was doing in HV counter or Z80 synchronization ? as i needed it at some point so i probably had a pseudo working solution :p
That's why I don't even try to fix StarScream, because it's making me SCREAM. :D
true... it's why i ended by writing my own core (for the new but incomplete and never released Gens).

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Post by Nemesis » Sat Nov 23, 2013 11:22 pm

r57shell wrote:Hmm Interesting. (about Gens standard debug)
But, you need to make new ROM with such chunk, and calculate yourself.
There is no simple way to break in particular point in Dissasembly.
Sure you can get a breakpoint in Gens :)

Go to 'File->Game Genie". Enter a pro action replay code of the form XXXXXX:60FE where XXXXXX is the location of the breakpoint, and activate it. This'll inject an opcode that'll define an infinite loop on itself. Just run until the program freezes, and open the debugger. Now deactivate the pro action replay code, and step through in the debugger using "T" on the keyboard. I relied on this heavily when debugging my own 68000 core back in the early days of Exodus.

r57shell
Very interested
Posts: 478
Joined: Sun Dec 23, 2012 1:30 pm
Location: Russia
Contact:

Post by r57shell » Sun Nov 24, 2013 4:24 am

Very nice trick! But, this is not obvious :) And not simple.
I want more simple approach.
Image

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Sun Nov 24, 2013 10:49 am

Nemesis wrote:
r57shell wrote:Hmm Interesting. (about Gens standard debug)
But, you need to make new ROM with such chunk, and calculate yourself.
There is no simple way to break in particular point in Dissasembly.
Sure you can get a breakpoint in Gens :)

Go to 'File->Game Genie". Enter a pro action replay code of the form XXXXXX:60FE where XXXXXX is the location of the breakpoint, and activate it. This'll inject an opcode that'll define an infinite loop on itself. Just run until the program freezes, and open the debugger. Now deactivate the pro action replay code, and step through in the debugger using "T" on the keyboard. I relied on this heavily when debugging my own 68000 core back in the early days of Exodus.
Hehe exactly what i do when i want to test some part of my 68000 asm code, just put an infinite loop somewhere then use the Gens debugger.
Still to bypass an instruction you have to use 'N' key (which increase PC address by 2).

r57shell
Very interested
Posts: 478
Joined: Sun Dec 23, 2012 1:30 pm
Location: Russia
Contact:

Post by r57shell » Mon Nov 25, 2013 1:30 pm

But, it is still long way. I want some more powerful method.
Image

MintyTheCat
Very interested
Posts: 484
Joined: Sat Mar 05, 2011 11:11 pm
Location: Berlin, Germany

Post by MintyTheCat » Mon Nov 25, 2013 1:56 pm

r57shell wrote:But, it is still long way. I want some more powerful method.
Try UMDK:

http://www.makestuff.eu/wordpress/categ ... ts/umdkv2/

That will give you many Services such as single-stepping.

Post Reply