Jump to content

Sharing of cheat used in Raine


ffman1985

Recommended Posts

  • 3 weeks later...

Hello, share a update for the script for street fighter alpha phoenix edition (sfad.zip), which is for super fan only.

In this update I try sth new in which the menu screen is seperated from the title screen which is similar to the ss/ps version. Also, I add a option (test service) in the menu. It is different from pressing the u button, because it is forced to show the engligh text no matter what the region has chosen. When leaving the menu, it will return to menu screen instead of a full restart.

P.S. the script is more complex than my previous scriptes which requires more cpu resource. Also, because of its complexity, it requires more test for bugs.

For normal user, there also a bug fix for the "Enable Bosses" script.

 

Preview:

https://drive.google.com/file/d/17FBX2-8EUxXPklNeq3tqeeYmhS6CHwFW/view?usp=share_link

Download:

https://drive.google.com/file/d/1aax-HGubq401VsKoTezmwOuURHwle8dS/view?usp=share_link

Edited by ffman1985
  • Like 1
Link to comment
Share on other sites

Well testing : I could get to the options menu only on my 1st try (with the 64 bits version). With the 32 bits version when I press 1p it displays press 1p or 2p, then I press 1p again, I see the option menu for a fraction of second and it goes directly to the character selection... !

I didn't know there could be a difference between the 32 bits and 64 bits version, if it's something else then I don't know what it is... And what a long script for sure ! But congratulations for the way it's written, it's still quite clear even if you don't know the internals of the game because of all the comments.

(I made a few attempts trying to press as quickly as possible on the 1p key, it doesn't change anything).

Edited by Tux
Link to comment
Share on other sites

Thank you for trying the script, Tux. Just try to play on the 32bit version but I do not encounter the problem about the option. Do you mean that you see the test service menu for a fraction of second and it goes directly to the character selection? or you see the menu screen (with the name of the modes) a fraction of second?

In fact you don't have to press the button as quickly as possible. In the title screen, the function of the start, coin and test service buttons are disabled (but you can still press start to leave the title screen). When you press the start button in title, it cannot start the game, but will only move away the game logo and the original texts, and then add my own created texts on screen. In the menu screen, you can only use the punch or kick buttons to select and it will trigger the start function. All buttons returns to normal after selecting a mode (leaving the menu screen).

Sorry , can't do anything here...

Link to comment
Share on other sites

Ok, so here is a slightly improved version of the script, basically less tests in each frame by grouping the tests and the result of all that is that for me I have

peek($ff8050) == $40 as soon as I start the 1st script, well almost, on the phoenix screen it's still ff8050 == 0 but after that something puts $40 in it during all the frames.

Since your test to exit your menu is
       #Start game#
       if (peek($FF8050)>$00) #P1 start game#
          poke $FF8058 $01
          poke $FF817B $01
       endif
it exits as soon as it reaches this point (I don't know what this ff8050 address is supposed to contain, I just know it's in ram).

Actually it occurs all the time now with all the versions, 32 or 64 bits, I even wonder how I could have this menu to stay on screen before, now I can't, it's gone as soon as it appears.

edit : and I finally understood how to get your menu to stay : you must start your script before starting the game ! That is, load the game with the option not to auto start it in the background, then enable the 1st script, then start the game. Then the peek stays at 0 all the time. If you start the script even during the phoenix screen, it's too late, the memory address will get $40 all the time.

sfad.txt

Edited by Tux
Link to comment
Share on other sites

I try to start my script late, i.e. in the title screen, and it still works normally.

The ff8050 is actually about the controller 1 punch buttons and kick buttons. If no button is pressed, ff8050 must be equal to zero. For other cases:

=01 means light punch is pressed, =02 means medium punch, =04 means heavy punch, =10 means light kick, =20 means medium kick, =40 means heavy kick.

It is abnormal that you see $40 for ff8050 all the time. This only happen if you hold the heavy kick button for player 1.

Link to comment
Share on other sites

Much better with some documentation !

So that's because I use alt-c as a keyboard shortcut to call the cheats dialog, I think that's the default shortcut, and since C is also the key for heavy kick, it's seen as always down when you return from the cheats dialog !

At least we found a rare bug here. I'll fix it in git... !

Link to comment
Share on other sites

Good to find out the rare bug. Since I assign a key to controller to call the cheat menu, I never trigger the bug you mentioned. By the way, is it possible to add the shortcut of combination of buttons in the controller? For example, pressing ABX+start button to reset the emulator. So that I can have more buttons to use for gameplay.

Also I try the modified script, it shows great improvent on the menu (misc 15% decrases to 11%), is the change only involves grouping of other parts into "if dpeek($FFAE18)==$02E7"? 

However, when i group more title parts script under "if dpeek($FFAE18)==$02E7", it shows no improving.

Edit: I find # (dpeek($FFAE18)==$02E7), on line235, is it redundant?

Edited by ffman1985
Link to comment
Share on other sites

5 minutes ago, ffman1985 said:

Good to find out the rare bug. Since I assign a key to controller to call the cheat menu, I never trigger the bug you mentioned. By the way, is it possible to add the shortcut of combination of buttons in the controller? For example, pressing ABX+start button to reset the emulator. So that I can have more buttons to use for gameplay.

I don't think so, because A is used for normal input, so if you start pressing it then the corresponding control is enabled... !

5 minutes ago, ffman1985 said:

Also I try the modified script, it shows great improvent on the menu (misc 15% decrases to 11%), is the change only involves grouping of other parts into "if dpeek($FFAE18)==$02E7"? 

However, when i group more title parts script under "if dpeek($FFAE18)==$02E7", it shows no improving.

There was also the grouping under
if ((peek($FF8051)==$04)or(peek($FF8055)==$04))
instead of all these if which had this very same test in a and

Well you can't win all the time with this kind of optimization, it came obvious to me when reading the script so I did it while looking for the cause of my problem...

Link to comment
Share on other sites

Actually, I am thinking of a function to allow user to freely set a combination of key (controller key not keyboard) for a shoutcut of a particular purpose, eg: ABX+start = reset, select + x = call cheat menu (the key in this example is the xbox controller), etc. I don't think this combination of buttons affect gameplay in most games. If yes, i hope player can change the key combination.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...