Psikyo SH-2 - Language switches

This forum is for posting M.A.M.E. arcade cheats. Requests will be fulfilled here....but please keep the requests to the requests forum.
Post Reply
Malice
Posts: 7
Joined: Mon Dec 24, 2001 1:00 am

Psikyo SH-2 - Language switches

Post by Malice »

daraku:0:06000004:01:000:disable Japanese subtitle
gunbird2:0:06040004:01:000:english language
s1945ii:0:06000004:01:000:english language
sbomberb:0:06000004:01:000:english language
soldivid:0:06000004:01:000:english language
Tourniquet
Posts: 163
Joined: Wed Sep 19, 2001 1:00 am
Location: UK
Contact:

Post by Tourniquet »

D'oh, I found them last week.
I've spent the intervening time working out how it all works.

You've probably spotted that it does a TST #0F against a value read from the EEPROM address to determine whether to clear 6000004/6040004 or not.

i.e the lower 4 (or 3 for soldivid) bits of MSB32 of 5800004.

change line 167 to:

Code: Select all

		return ((EEPROM_read_bit() << 28) | (readinputport(4) << 24));
and add a dip like

Code: Select all

	PORT_START /* fake region */
	PORT_DIPNAME( 0x01, 0x01, "Region" )
	PORT_DIPSETTING(    0x00, "Japan" )
	PORT_DIPSETTING(    0x01, "World" )
or for gunbird2:

Code: Select all

	PORT_START /* fake region */
	PORT_DIPNAME( 0x03, 0x01, "Region" )
	PORT_DIPSETTING(    0x00, "Japan" )
	PORT_DIPSETTING(    0x01, "International Ver A." )
	PORT_DIPSETTING(    0x02, "International Ver B." )
You wouldn't believe how long I spent tracing R13 (or whichever) on and off the stack to only realise that it's never initialised and probably a compiler optimisation ;(
Malice
Posts: 7
Joined: Mon Dec 24, 2001 1:00 am

Post by Malice »

I actually didn't dig much into the eeprom routines i've never traced through SH-2 code before so some things were foreign to me. Besides you piped up before i got too deep into it. :-?

Its kind of funny i realized later if i had looked through the driver a bit closer i could have saved some tracing time. The DRIVER_INIT had the eeprom read buffer address ?

Anyway i tried the code you listed but the dip switches didn't seem to have any effect.

Oh BTW you list 0x0F000000 as the address that it tests the region against
i take it that's i/o as isn't that outside of the mapped rom or ram space?
Tourniquet
Posts: 163
Joined: Wed Sep 19, 2001 1:00 am
Location: UK
Contact:

Post by Tourniquet »

Malice wrote:Anyway i tried the code you listed but the dip switches didn't seem to have any effect.
Did you place the dip AFTER the other dips ;) It needs to be the 5th port (i.e readinputport(4) ).

Malice wrote:Oh BTW you list 0x0F000000 as the address that it tests the region against
i take it that's i/o as isn't that outside of the mapped rom or ram space?
Sorry, that's not an address. I meant the absolute value i.e
X1XXXXXXh - XFXXXXXXh return true (English), X0XXXXXXh are false (i.e. Jap)
Post Reply