What's new

DrewDos

Beginner
Joined
Aug 12, 2016
Messages
13
Reaction score
7
Location
California
Hello,

I'm trying to run some modifications to 3rd strike through the SuperBIOS and Custom SH2, but I am hitting a roadblock.

I created some software to modify the rom data for 3rd strike, based on the original CD data. Mods work fine in emulator. I attempted the same thing using the roms tailored for the custom sh2 / SuperBIOS but I am getting freezing where I know injected code is ran. I know that there are significant differences between the custom SH2 and standard SH2 roms of 3rd strike so I'm thinking I need to take additional steps. My question is, is there anything specific for the custom sh2 that I need to be cognizant of, as far as the code goes? Or anything else may be involved?

Or would I need to get a standard SH2?

Thanks
 
in most of hacks/mods freeze(s) happens because of wrong or bad code, typically unaligned data access or cache coherency (which usually not emulated, so it works fine on MAME or other emulators).
 
Thanks.. in this case I may need to endure the daunting task of testing different things through constant rewrites
 
You need to provide more info. Which processor are you using custom or regular? which version of mame did you use and which game did you load with your "hack". Also, what does it mean "It doesn't work"? Black screen? Screen garblaged? It gets stuck somewhere in the menu? Without detailed info is very difficult to troubleshoot it.
 
My CPS3 setup uses custom SH2 processor and Darksoft BIOS for custom SH2
This was tested in MAME-RR 0.139, ElSemi's CPS3Emulator and on FightCade ( uses FB Alpha v0.2.96.74 ). The mod allows normal colors and console colors (while holding start) and works okay in these emulators.
Normally, I use the original 990512 Rom. I tried this on hardware using the 990512 roms, using the custom SH2 Darksoft ISOs as a base. On these roms, the code is injected in the addresses exactly as if it were on the original roms.

It freezes exactly where my new code is injected which is the start up of the character select screen. It freezes when circles that surround each portrait of the user select screen "completes". This is where the game starts to accept input for button presses on character select. It acts as if its jumping to a bad destination.

My idea is that there are changes in the rom for the Darksoft Bios / Custom SH2 that I need to be aware of and to apply it to my code. I'm overwriting the code that has been tailored for custom SH2 and Darksoft bios. I do apologize if I am not making sense. Thank you for taking the time to look into this.
 
now that looks much better. How did you made your code? I'm . Asm and then compiled? Manually entering the instructions?

How does your code look like ? Post an extract so we can know.
 
Yes this was made in assembly, compiled using a program called "superas". I made stand alone software to compile and inject as needed automatically.

The code is out of the scope of a single post, so I posted it in a pastebin: https://pastebin.com/E7XvRQYa . Files are separated by ;$$ in the pastebin

It's assembly is straight forward for the superas compiler but the code is a bit different because of the stand alone program. s a note: It uses tags to know where to inject and what locations of pointers are to update and reflect where it's injected to ( for the stand alone software ). If a file is not directly injected to a location, it is placed in free space in the program rom ( its address is a multiple of 2 ) and references are updated accordingly. In the end, it's standard SH2 code being injected.
 
a lot of code, so hard to say that can be wrong here. at first sight I can't see there obvious unaligned mem access.
there is another cause which may lead to hang on real HW but not on emulators - access to "unhandled" address space area(s). this can be easy checked using MAME debugger - open error log window and looks for "unmapped memory read/write" messages.
 
If the previous thing doesnt help I would also try to narrow down the error on the real thing. You know what I mean? Try to insert a jmp to reset on that button detection routine of yours until you find the exact address that makes it fail.
 
Just wanted to say thanks for your input guys. I did a bit more testing per the above to no avail.

Also wanted to mention that it runs perfectly on Standard SH2 repro cart that I received today. Still kind of curious on how to get it working on Custom SH2 but for now I'm good.
 
hmmm you do know that in order to make it run on custom sh2 you need to encrypt the instructions but not data, right?
 
So, you were able to add the secondary colors? will you be releasing this code?
Yes it is added and I can release if there is enough interest. I have to fix stuff like the portraits, color saturation and decide what to sacrifice. I removed some of Gill's sprite data for the test.

I did not know that = ( is it through it's normal encryption key? And, I'm assuming it's encrypted based on it's data position like how mame does it ( except for masking everything )?
 
it follows the same encryption and same key as 2nd impact.

Also in mame there are two specific sets that support my multi. They are cps3boot and cps3boota. One of them works with custom sh2 processors and is the one you should be using for your tests/encryption.

Let us know how it goes.
 
Back
Top