Hacking CATSFC released

  • Thread starter Thread starter ShadauxCat
  • Start date Start date
  • Views Views 98,951
  • Replies Replies 235
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
 
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
 
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 ?
 
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
 
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...
 
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.
 
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.
 
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.
 
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.
 
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?
 
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.
 
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