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.
-
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.
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.
-
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.