Streets of Rage X

In Progress Streets of Rage X Beta 36

No permission to download
The project is currently under development.
@Psychogold Buddy, something certainly looks wrong with your game file. I replicated the same test as yours in a fresh game file and the result was totally different.


And by looking at the high-scores in your video, it has some recorded data. I suggest renaming your current saves folder and starting a fresh one, and check if the issue persists.

View attachment 16109
Hi Kratus, sorry I should have clarified. This only happens when player 3 and 4 are showing whatever Bluetooth LE Xinput Compatible thingy is. As I showed in the video if I set player 3 to keyboard and 4 to Bluetooth LE Xinput Compatible thingy, I'm assuming #2? Then it works and I can play normally.

Could it just not be possible to always allow us to set players control input to none? Since there are only two controllers connected for us I don't understand why 3 and 4 even need to be set up.
 
@Kratus I've been building openbor 7612 from source, using the official github, for an arm based device.
It worked fine for v35 but not for v36. Looks like the script is expecting a new API from the engine.
Is the engine source change available somewhere so I can build from source?
Thanks!
Hi friend. The beta 36 contains some experimental updates in the engine that makes the game compatible only with the binaries that come in the zip file.
At least during the test phase, the code is not publicly available. But I will post here if anything changes.

Hi!
I was playing as the boss Antonio alongside a CPU ally Antonio, and while I was throwing the boomerang, I pressed some key combination that softlocked my character - I couldn't move from the spot. This was on the latest version of the game
Thanks for the feedback, I will check it.
EDIT: Fixed! Thanks for reporting the issue :)

Kratus, sorry, but I can't make the game working on my Anbernic RGCubeXX with latest MUOs. Game doesn't start. Maybe there is something wrong in the script, I don't know...
Are you using the script present in the zip file, plus keeping the same folder name? For me it works fine with the following path order.
EDIT: I suggest transferring files using the muOS SFTP file browser. It already grants some permissions automatically during the upload.

1790631415141.png

1790631503550.png

Hi Kratus, sorry I should have clarified. This only happens when player 3 and 4 are showing whatever Bluetooth LE Xinput Compatible thingy is. As I showed in the video if I set player 3 to keyboard and 4 to Bluetooth LE Xinput Compatible thingy, I'm assuming #2? Then it works and I can play normally.

Could it just not be possible to always allow us to set players control input to none? Since there are only two controllers connected for us I don't understand why 3 and 4 even need to be set up.
I don't know if I understood. You don't need to configure every device button everytime, but you need to change the device order manually. Is this you are talking about?

And about the detection, everything is automatic. Some devices can be detected twice depending on the driver (like DS4 recognizing the touch as a second controller in the Retroarch for example, even if there's only 1 device physically connected).

I suggest disconnecting all devices to see which one is the culprit. But none of this explains the high score screen triggered by a single button press, I insist on the saves folder removal. I can't fix an issue that is not replicable in a fresh game file.
EDIT: If you prefer, you can zip your game file and post the link here, and then I can take a look.
 
Last edited:
Kratus updated Streets of Rage X (Windows / Android) with a new update entry:

Beta 36

### BETA 36.CC2 ###
- Engine: Fixed the ESC key for joysticks. Following the legacy controller code, now it only works on keyboards.
- Engine: Fixed the "setup control" option in the Android, now joystick buttons can be remapped normally.
- Game: Added a new "button type" option for the on-screen labels, now select "off" to disable it.
- Game: Minor fixes in some button label descriptions.
- Game: Enabled cop/partner call during more extra button options (charge attack, back attack, etc).
-...

Read the rest of this update entry...

EDIT: Just uploaded a new beta 36 game file with some fixes based on the last feedback. Thanks everyone for all the suggestions and bug reports.
Please, let me know in case more issues are found.

About the ESC button, instead of removing the debug mode, I followed the legacy engine behaviour which maps this key exclusively to the keyboard, completely avoiding any conflict with joystick buttons.
 
Last edited:
Hello! Found another softlock.
I was playing as Abadede on the SoR1 route, on Hard difficulty with random items (mixed). At the end of the elevator level, I threw the last enemy into the pit - and the game wouldn't let me proceed to the final level.
 
Hello! Found another softlock.
I was playing as Abadede on the SoR1 route, on Hard difficulty with random items (mixed). At the end of the elevator level, I threw the last enemy into the pit - and the game wouldn't let me proceed to the final level.
@Nevinchik Thanks for the feedback.
Did the "Go" arrow appear? Because if yes, you need to walk into the left side entrance, otherwise the level will not end.
At least my last SOR1 playthrough worked fine, but I will check it again.

EDIT: Did you use any cheat in this playthrough?

I replicated the same situation right now, but worked fine.


 
Last edited:
@Nevinchik Thanks for the feedback.
Did the "Go" arrow appear? Because if yes, you need to walk into the left side entrance, otherwise the level will not end.
At least my last SOR1 playthrough worked fine, but I will check it again.

EDIT: Did you use any cheat in this playthrough?

I replicated the same situation right now, but worked fine.


No cheats. Arrow just didn't show up at the end. Restarted the level - passed it fine this time.
 
Hey buddy, here is a longplay of beta 36 with two Shivas :)

I can't say it enough: for me, this is the best Streets of Rage fan game. The gameplay is excellent—I’d go so far as to say it’s the best of any game built on the OpenBOR engine—and it boasts a fantastic quality: there’s a great combo system available for you to use, but you aren't forced to use it just because the enemies are damage sponges neither you need to execute a 60 hit combo on the very first punk you find on the street.
It’s perfect, congrats!

A few points (the first one is something to look into; the others are a nitpick and an idea):

- I need to find the exact moments in the video where this happens, but it seems to me that Shiva's (SOR3) hyper move misses quite a bit because the attack box has very little Z-axis coverage. I'll get the exact timestamp later, but there was a moment where this was really obvious because there was an enemy above me and one below me, and my attack missed.

- I noticed that when you perform the hyper move on Zamza, he flinches with every hit. But when he performs the hyper on you, you stay in the same spot for every hit. Maybe you could flinch too?

- And an idea (which would require sprites): maybe Shiva's running attack could be changed to something else to avoid him saying "FINAL CRASH" so often during gameplay—especially since he uses the same move if you run and press the special button.

Guy (Final Fight) has a move that I think would fit his style perfectly:
guy-slidekick1.gif


Edit: Ah, something I forgot to say: when you fight Shiva SOR2 using Shiva SOR2...it gets a bit confuse as they use the exactly same palette.
maybe changing the boss to slightly darker version if he detects another Shiva SOR2?

 
Last edited:
Hey buddy, here is a longplay of beta 36 with two Shivas :)

I can't say it enough: for me, this is the best Streets of Rage fan game. The gameplay is excellent—I’d go so far as to say it’s the best of any game built on the OpenBOR engine—and it boasts a fantastic quality: there’s a great combo system available for you to use, but you aren't forced to use it just because the enemies are damage sponges neither you need to execute a 60 hit combo on the very first punk you find on the street.
It’s perfect, congrats!
Thanks buddy :)

- I need to find the exact moments in the video where this happens, but it seems to me that Shiva's (SOR3) hyper move misses quite a bit because the attack box has very little Z-axis coverage. I'll get the exact timestamp later, but there was a moment where this was really obvious because there was an enemy above me and one below me, and my attack missed.
I checked the Z axis but it has the same default of 12 that I usually apply in most attack boxes.
However, I can increase the size a bit in both X/Y axis to connect better.


- I noticed that when you perform the hyper move on Zamza, he flinches with every hit. But when he performs the hyper on you, you stay in the same spot for every hit. Maybe you could flinch too?
Yeah, Zamza causes this effect because his rage hits are very fast to the point of surpassing the pain animation delay.
I can test a reduced speed on Zamza's rage to show the flinch effect.

- And an idea (which would require sprites): maybe Shiva's running attack could be changed to something else to avoid him saying "FINAL CRASH" so often during gameplay—especially since he uses the same move if you run and press the special button.
I can maybe change the attack voice in one of the Final Crash attacks. Although both look the same, the first one is based on the playable SOR3 Shiva (with slow speed) and the other is based on the boss version, which is faster/stronger anb causes the screen to flash.

Another idea that came to my mind and may fit better. The boss version in the SOR3 has a blitz attack which consists of a fast jumping attack, very similar to the rising attack he already has in the SORX.

I can maybe put it as a new super (1 star) move, reducing the Final Crash voice all the time.
The move I'm talking about is the last one he performs in this video.


Edit: Ah, something I forgot to say: when you fight Shiva SOR2 using Shiva SOR2...it gets a bit confuse as they use the exactly same palette.
maybe changing the boss to slightly darker version if he detects another Shiva SOR2?
Usually when playing as an enemy or boss, I suggest enabling the player arrow to help distinguish both versions (features menu).
However, it's not a bad idea to make a script that checks the current used palettes and apply a new one. I will test it.

Thanks for the feedback and suggestions. I will test and apply them before uploading a new game file soon.
 
Hello! Now that the version with all CPU allies has been released, do you have any plans to work on that enemy randomizer I suggested a while back?
The one where regular enemies are replaced with other regulars, and bosses are replaced with other bosses (And some bosses could even be main heroes - that would be a lot of fun to see.)
The game would gain a lot of replayability from that - every run would feel different.
 
I suggest enabling the player arrow to help distinguish both versions (features menu).
Ah, I wasn't aware of this. However, since there are moments with a lot of enemies on screen and plenty of action, adding another on-screen indicator might make things look too cluttered; perhaps using a slightly darker palette (or some other visual distinction) would help.

I played your game all last night—it was really fun. I played against various enemies to test them out. I had a few ideas for some of them that I’ll try to edit and show you—I’m not exactly a sprite artist, but I might be able to pull something off. I’ll send the ideas to you privately as soon as I have something to show. :)

I also took the opportunity to test one of my controllers, the 8BitDo SN30 Pro, via Bluetooth. It supports two modes (actually four, but only two matter here): D-Input and X-Input.

In D-Input mode, it’s recognized simply as "Bluetooth Wireless Controller," and the buttons are identified by numbers (as has always been the case in the engine). It’s harder to memorize, but it works well.
Captura de tela 2026-10-02 224908.png

In X-Input mode (its default), it’s identified as X-Input, and the buttons are color-coded, which helps a lot.
However—and I think this is because the controller is based on the SNES layout—the A/B and X/Y buttons are swapped; if you try to set Y as the attack button, the system reads it as X.
1791037842003.pngCaptura de tela 2026-10-02 224927.png
 
Hello! Now that the version with all CPU allies has been released, do you have any plans to work on that enemy randomizer I suggested a while back?
The one where regular enemies are replaced with other regulars, and bosses are replaced with other bosses (And some bosses could even be main heroes - that would be a lot of fun to see.)
The game would gain a lot of replayability from that - every run would feel different.
Hi friend. About the randomizer, I still need to do some tests but I didn't discard the idea.
Indeed it really would increase the replay factor.

Ah, I wasn't aware of this. However, since there are moments with a lot of enemies on screen and plenty of action, adding another on-screen indicator might make things look too cluttered; perhaps using a slightly darker palette (or some other visual distinction) would help.

I played your game all last night—it was really fun. I played against various enemies to test them out. I had a few ideas for some of them that I’ll try to edit and show you—I’m not exactly a sprite artist, but I might be able to pull something off. I’ll send the ideas to you privately as soon as I have something to show. :)

I also took the opportunity to test one of my controllers, the 8BitDo SN30 Pro, via Bluetooth. It supports two modes (actually four, but only two matter here): D-Input and X-Input.

In D-Input mode, it’s recognized simply as "Bluetooth Wireless Controller," and the buttons are identified by numbers (as has always been the case in the engine). It’s harder to memorize, but it works well.
View attachment 16175

In X-Input mode (its default), it’s identified as X-Input, and the buttons are color-coded, which helps a lot.
However—and I think this is because the controller is based on the SNES layout—the A/B and X/Y buttons are swapped; if you try to set Y as the attack button, the system reads it as X.
View attachment 16177View attachment 16176
Thanks a lot for the tests, buddy :)
I'm glad to know that the new controller code is working as intended, in both Xinput/Dinput modes.

However—and I think this is because the controller is based on the SNES layout—the A/B and X/Y buttons are swapped; if you try to set Y as the attack button, the system reads it as X.
Yes, I can confirm that. The new controller code recognizes any Xinput controller using the hardcoded Xbox layout.
But I will think of a way to swap them for the next updates.
 
Hey there, minor question but what's the difference between the main download and the classic version?
Hi friend. The classic version has the same pixel size of the original games, but in widescreen proportion.
Plus allow only 2 players instead of 4.
 
Here’s a preview of one of the moves I’m working on for the playable version of some of the game's enemies I showed Kratus. It still needs some polishing and color adjustments, but this is the concept: a "Special + Forward" move for R. Bear—a quick one-two punch. The idea is for him to execute the second hit only if the first one connects.

The other moves are a surprise ;)
r_BEAR_extra.gif

* I’ve always liked R. Bear because, in a way, he reminds me of Foreman, and people make the same mistake when looking at this character: "Oh, he's old and overweight"... meanwhile, he hit like a runaway Scania truck with bald tires on a rainy day :)
 
There's a term called "Grown man strength" that some people forget is a thing. 😁
#FAFO

And then there's "old man strength". There used to be a guy in my gym who was short and squat, in his early 70's, and always complained about this or that being sore, can't do it like he used to, etc... then put four freakin' plates on the bench for his work weight and pop off 5-6 full sets no problem.

DC
 
Back
Top Bottom