Hacking CATSFC released

Densetsu

Pubic Ninja
Former Staff
Joined
Feb 2, 2008
Messages
3,434
Trophies
0
Location
Wouldn't YOU like to know?
Website
gbatemp.net
XP
2,707
Country
United States
ShadauxCat said:
The only answer I can give to that is "when it's done." I promise it'll be released as soon as I finish it and not held back even a moment, but it's very hard to predict how long implementing something like this is going to take because it's giving me a lot of unexpected problems. So "when it's done" is the best answer I can give.
If you start to get too many questions like this, let me or any of the other mods know if it starts to bother you. You don't have to put up with impatience
smile.gif
 

Gh0sti

iOS Guru
Member
Joined
Aug 19, 2009
Messages
1,380
Trophies
1
Location
Inside you, all around you
XP
1,604
Country
United States
thanks there SCat ill try to update th complete pack soon with some of these updates wow alot has happened whilst I was away SC threw out alot of update to the EOS and frimware looking good im glae i got this bad boy of a cart to see continual updates
 

Wargla

Well-Known Member
Member
Joined
Mar 15, 2011
Messages
122
Trophies
1
XP
419
Country
France
Thank you Shadauxcat
smile.gif

I installed CATSFC and it is better than BAGSFC for sure !

I have one question : in most of the games (Especially Donkey Kong Country, Megaman X...), the game looks like faster than expected. Why is it like this ? Is it possible to make it better ?
 

Devilkid32177

Well-Known Member
Member
Joined
Dec 23, 2010
Messages
163
Trophies
0
Age
36
Location
hiding in my mind, im lost
Website
Facebook.com
XP
126
Country
United States
hey there, SCat, i grabbed your download to test out super mario RPG, and wanted to say thanks cause that was the main game i liked but couldn't play >__>

as of right now, i noticed its a bit laggy in the beginning of the game but after that, i have no problems with it
 

DanTheManMS

aka Ricochet Otter
Member
Joined
Jun 2, 2007
Messages
4,453
Trophies
1
Age
34
Location
Georgia
XP
751
Country
United States
ShadauxCat, a few words of advice: when implementing the speedhacks, I'd go ahead and try a different game first that's not quite so demanding on the console, assuming you've got some sort of debugger so you can tell when the SNES hits vertical line count #225 (to see if the hack actually makes it skip all the way to that point). With memory addresses being rerouted all over the place in SMRPG between the coprocessor chip and the CPU, debugging that would be a nightmare.

I also again urge you to look into the SNEmulDS source code. It might provide further information on how it auto-implemented speedhacks. The "Cycles" version would be the most similar to most of the hacks you'll find in the static database, and it would be more efficient at it to boot. I've also re-uploaded my local copy (apparently Zumodrive just doesn't like .dat files for some reason) at http://www.zumodrive.com/share/b8ysZWZhOT

EDIT: Of course only now do I try to get to the SNEmulDS source code and find the SVN to be down. Go figure. Hm.... maybe the SnezziDS or Snezziboy source code? Those implement the same hacks and might be more accessible...
 

ShadauxCat

Well-Known Member
OP
Newcomer
Joined
Mar 6, 2011
Messages
45
Trophies
0
Age
36
Location
Austin, Texas
Website
www.bioware.com
XP
81
Country
United States
I've tried several games. The problem I'm having at this point is that every time opcode 42 comes up, the emulation freezes. It renders one frame of op 42 and then stops completely. I'm trying to find out why it does that and what I need to change; it seems like the emulator's waiting for op42 to do something, but I don't know what or why. (This being the first time I've ever worked on an emulator of any kind at all, I'm trying my best to trace through all the code and find the source of this problem, but I'm not entirely certain where to even look, so it's taking a while.)

I've looked at the source code of several emulators that implement speedhacks - SNESAdvance, snes9x_tyl, SNEmulDS, and others - but without knowing where to look to begin with (looking at the actual op42 function didn't help), they're not proving to be very useful.
 

DanTheManMS

aka Ricochet Otter
Member
Joined
Jun 2, 2007
Messages
4,453
Trophies
1
Age
34
Location
Georgia
XP
751
Country
United States
ShadauxCat said:
I've tried several games. The problem I'm having at this point is that every time opcode 42 comes up, the emulation freezes. It renders one frame of op 42 and then stops completely. I'm trying to find out why it does that and what I need to change; it seems like the emulator's waiting for op42 to do something, but I don't know what or why. (This being the first time I've ever worked on an emulator of any kind at all, I'm trying my best to trace through all the code and find the source of this problem, but I'm not entirely certain where to even look, so it's taking a while.)

I've looked at the source code of several emulators that implement speedhacks - SNESAdvance, snes9x_tyl, SNEmulDS, and others - but without knowing where to look to begin with (looking at the actual op42 function didn't help), they're not proving to be very useful.

Well like I said, 42 and DB aren't actually used by any games, so Snes9x by default won't have any code that handles it. I think it has a place for them alongside all the other opcodes but no actual code. The emulators for the GBA and DS made new interpretations of those opcodes, but it's all in ARM7 assembly since that's what the emulators were largely coded in, for speed purposes. Translating that ARM assembly might be just a tiny bit difficult. I know that the basic outline is that they cannibalize the branch instruction that says "go back a few bytes" and redirect it into "go forward to the end of this frame" but that "end of frame" value is somehow dependent on the values of the branch instruction itself.

It's not going to be an easy task, and that's the reason I can't really help too much beyond these basic concepts. SNES9x_TYL for the PSP would probably be the best implementation of the code in C (assuming it's coded in C, which may not be true). There was also a similar release for the GP2X (which I think I mentioned before) but I can't find any source code for that. For the record, I don't have the slightest clue where to look either, hehe.
 

ShadauxCat

Well-Known Member
OP
Newcomer
Joined
Mar 6, 2011
Messages
45
Trophies
0
Age
36
Location
Austin, Texas
Website
www.bioware.com
XP
81
Country
United States
It's not the opcode itself that's a problem, though. I tried even copying and pasting the code that snes9x_tyl had for op42(), but it didn't help anything. There's something somewhere else, outside of the op42() function, that isn't being done, but I'm not sure where. All I know is, like what you're saying, something needs to tell it to go on to the end of the frame.

The code for NDSSFC actually uses snes9x as a base, so it's in C++.

I'm just trying to find the function I need to change. Once I find WHERE I need to change, I'm sure I can figure out WHAT I need to change.
 

DanTheManMS

aka Ricochet Otter
Member
Joined
Jun 2, 2007
Messages
4,453
Trophies
1
Age
34
Location
Georgia
XP
751
Country
United States
And for that, I honestly have no idea what to tell ya, sorry man. For what it's worth, the code for op42{} in "cpuops.cpp" of the SNES9x_tyl source does look very similar to what you're trying to accomplish. The switch statement at the end aligns almost exactly with the list of "hackable branch instructions" listed at http://snesadvance.org/tutorials/speedguide.html and the behavior of CPUShutdown at the end is exactly what we want to happen.

How to get that to happen with this specific port however, as you're discovering, is the challenge.
 

Kitanode

Well-Known Member
Newcomer
Joined
Nov 30, 2009
Messages
55
Trophies
0
Age
48
Location
Irvine, Scotland
Website
Visit site
XP
220
Country
Hi,
I want ask about Kirby's Superstars.

When i played it on CATSFC i noticed it was definetly running a little better than the other older snes emu's for the SCDS2 but it is still unplayable due to the low framerate, i would say it's less than 10/fps.

Has this game always been hard to emulate? Is there a chance in the future that someone can look into it and get it running a bit faster?

Also is there any chance of adding a 'show fps' option to this emulator?
 

Recorderdude

Musician, Animator, Buffoon.
Member
Joined
Jun 19, 2010
Messages
1,392
Trophies
0
Age
28
Website
Visit site
XP
272
Country
United States
Kitanode said:
Hi,
I want ask about Kirby's Superstars.

When i played it on CATSFC i noticed it was definetly running a little better than the other older snes emu's for the SCDS2 but it is still unplayable due to the low framerate, i would say it's less than 10/fps.

Has this game always been hard to emulate? Is there a chance in the future that someone can look into it and get it running a bit faster?

Also is there any chance of adding a 'show fps' option to this emulator?

Kirby Superstar (as well as Kirby Dreamland 3) both use the SA-1 enhancement chip, making them harder to emulate. A "show fps" option would indeed be possible, it's just up to whoever codes it next, be it bag, cat or a fresh face, to decide to add it.
 

keine

Well-Known Member
Member
Joined
Aug 29, 2010
Messages
431
Trophies
1
Website
Visit site
XP
1,434
Country
United States
A Gay Little Catboy said:
ShadauxCat said:
The only answer I can give to that is "when it's done." I promise it'll be released as soon as I finish it and not held back even a moment, but it's very hard to predict how long implementing something like this is going to take because it's giving me a lot of unexpected problems. So "when it's done" is the best answer I can give.
Take your time
happy.gif
For now the Temp is grateful for your hard work
yaynds.gif

Also The Catboy say Thanks! I am so happy to see Mario RPG playable!

+1
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Sonic Angel Knight @ Sonic Angel Knight: :ninja: