Guerrilla War and Happ rotary Joystick
Guerrilla War and Happ rotary Joystick
I hooked up my Guerrilla War PCB with an Happ rotary joystick and I randomely get a "joystick error" when I quickly rotate the joystick while playing. I'm using the same joystick with other rotary type games (ikari Warrior, Bermuda Triangle, etc) with no problem. I looked around in MAME and Guerilla War actually has a software protection to "detect" that genuine SNK LS-30 sticks were installed in the cab.
Does anybody know of a way to bypass the protection ? I was thinking to replace the eproms with the bootleg version but it does not actually support rotary at all.
Does anybody know of a way to bypass the protection ? I was thinking to replace the eproms with the bootleg version but it does not actually support rotary at all.
Get some LS30s?
I know it sounds a bit obvious, but.. You can still get proper LS30s brand new.
http://www.arcadeshop.de/Joysticks-Rota ... K_538.html
The detection is probably something to do with the delay between contacts, but that's just a guess - it would probably be quite obvious if you took one of each and dismantled them.
I know it sounds a bit obvious, but.. You can still get proper LS30s brand new.
http://www.arcadeshop.de/Joysticks-Rota ... K_538.html
The detection is probably something to do with the delay between contacts, but that's just a guess - it would probably be quite obvious if you took one of each and dismantled them.
System11's random blog, with things - and stuff!
http://blog.system11.org
http://blog.system11.org
You can also buy brandnew LS-30s from videoconnect.com for $79 each. They also have the LS-30 wrench too which is important for removing the handle/cover. They're way more expensive than Happ but if you're lucky you might find some on ebay. Not too long ago I won 2x brandnew LS-30 for $50 each, even came complete with 2 harness and the wrench.
I looked at the source code in the Mame driver and apparently the SNK rotary stick is designed in such a way that the stick does not transition from pin 6 to 8 directly; The game expects to read an "invalid" position (the transition between 6 and 8 ) for a short period of time.bloodflowers wrote:Get some LS30s?
I know it sounds a bit obvious, but.. You can still get proper LS30s brand new.
http://www.arcadeshop.de/Joysticks-Rota ... K_538.html
The detection is probably something to do with the delay between contacts, but that's just a guess - it would probably be quite obvious if you took one of each and dismantled them.
this might corespond to the place where the contact touches simultaneously trace 6 & 7 & 8 for a brief period of time during the rotation. (see PCB design here: http://wiki.arcadecontrols.com/wiki/LS- ... ch_Service)
If the stick goes directly from 6 to 8 w/o "noise" more than 8 times in a row then firmware declares the jostick invalid and goes into the "joystick error" tilt. Apparently Guerilla War is the only rotary game with such a protection. Lucky me...

I'l look at the voltage next time I plug it in.Ex-Cyber wrote:I could be misreading things, but it looks like the middle trace effectively makes that transition behave like a break-before-make switch whereas the others are make-before-break.
Is it active-high or active-low (IOW is pin 7 connected to 5V or ground on the board)?
-
GaijinPunch
- Posts: 15850
- Joined: Mon Jan 31, 2005 11:22 pm
- Location: San Fransicso
I've thought about that too. There have been a couple of rotary encoders for Mame, the two main ones are Ulitmarcs and GGG's GP-Wiz40. Each have their own pros and cons, but neither one is 100% perfect. The GP-Wiz40 does have higher compatibility with other rotary type games.GaijinPunch wrote:OT: Anyone ever tried using one of these w/ one of the Ultimarc devices so you can use it in Mame? I've got some extra sticks. Looking to add one to my monster so I can have PCB or Mame love.
I'm thinking about getting the GP-Wiz40 since it doubles as a joystick and rotary interface on a single pcb. Certainly cheaper compared to buying a I-Pac2 and rotary interface by Ultimarc. The one major drawback with the GP-Wiz40 is you have cut off the end of your rotary harness, which won't matter to me since I've got a couple extra connectors.
Just checked; it's ground based.Ex-Cyber wrote:I could be misreading things, but it looks like the middle trace effectively makes that transition behave like a break-before-make switch whereas the others are make-before-break.
Is it active-high or active-low (IOW is pin 7 connected to 5V or ground on the board)?
You can use Happ optical joystick as an alternative but they require about 5.5" of clearance.Dave_K. wrote:I know this was asked before, but is there any alternative to finding loop24 joysticks? I have LS30's but they won't work on Calibur 50.
I also need a Loop-24 stick to play my Cal 50 pcb. There's just no way I can fit a Happ optical in my KBM joystick that has 3.5" clearance.
-
- Posts: 9099
- Joined: Wed Jan 26, 2005 10:32 pm
I clicked on the $ sign on the above listed site and just one brand new official SNK produced LS-30 rotary joystick is priced at $83.61 USD. You do get what you pay for if you want them in new condition. I recall playing some of those SNK, Data East and Romstar rotary joystick based arcade games with either the tradiition octogonal or rounded rotary joystick base setup back in the day. ^_~bloodflowers wrote:Get some LS30s?
I know it sounds a bit obvious, but.. You can still get proper LS30s brand new.
http://www.arcadeshop.de/Joysticks-Rota ... K_538.html
The detection is probably something to do with the delay between contacts, but that's just a guess - it would probably be quite obvious if you took one of each and dismantled them.
PC Engine Fan X! ^_~
Are you prepared to chop up a cable (or build an adapter) and wire up an IC for this, or would that be too much? I don't think there's any electrically safe way to do it without physically disconnecting those signals...yojo! wrote:Just checked; it's ground based.Ex-Cyber wrote:I could be misreading things, but it looks like the middle trace effectively makes that transition behave like a break-before-make switch whereas the others are make-before-break.
Is it active-high or active-low (IOW is pin 7 connected to 5V or ground on the board)?
-
slap_fight
- Posts: 64
- Joined: Thu Sep 21, 2006 5:09 pm
- Location: london
That is rad.Dave_K. wrote:While we're showing off and all...I'm willing to trade this bad ass panel for a pair of green Loop24 sticks.slap_fight wrote: here's my own stash.

RegalSin wrote:Street Fighters. We need to aviod them when we activate time accellerator.
Yep I can do that. I don't want to hack the harness itself; I'll get part to build an adapter between the PCB and the harness. What did you have in mind ?Ex-Cyber wrote:Are you prepared to chop up a cable (or build an adapter) and wire up an IC for this, or would that be too much? I don't think there's any electrically safe way to do it without physically disconnecting those signals...yojo! wrote:Just checked; it's ground based.Ex-Cyber wrote:I could be misreading things, but it looks like the middle trace effectively makes that transition behave like a break-before-make switch whereas the others are make-before-break.
Is it active-high or active-low (IOW is pin 7 connected to 5V or ground on the board)?
The basic idea is to disconnect pins 6 and 8 and run them through a circuit that passes the ground connection when one is grounded but isolates both if both are grounded (this is based on my guess that it's normally make-before-break, with the 6-8 transition acting as a break-before-make on the LS-30). There's not one correct way to build this; the major concern is probably which parts are easiest for you to obtain.
Basically, there's a logic stage and a buffer stage. Both could be served by a single 7401. Otherwise, the logic stage could be served by a 7400 or a 7402, and the buffer stage could be served by two NPN transistors (e.g. 2N3904), a 74125, a 74126, or a 74245. There are others I'm not thinking of here; it's pretty flexible.
Basically, there's a logic stage and a buffer stage. Both could be served by a single 7401. Otherwise, the logic stage could be served by a 7400 or a 7402, and the buffer stage could be served by two NPN transistors (e.g. 2N3904), a 74125, a 74126, or a 74245. There are others I'm not thinking of here; it's pretty flexible.
But, according to the Mame driver 6 & 8 appear grounded for a short period of time during the transition for the LS-30. The firmware detects this "glitch" to determine if the stick is genuine. So your solution would achieve the opposite wouldn't it (i.e. make the data "clean")?Ex-Cyber wrote:The basic idea is to disconnect pins 6 and 8 and run them through a circuit that passes the ground connection when one is grounded but isolates both if both are grounded
The Mame code addresses the issue by making all 12 input grounded.
I did some test with my Happ using the Heavy barrel's test screen; which displays the state of all 12 inputs. I did not see any glich (i.e. 6 & 8 as '1') when I slowly rotate the stick. If anyone that owns Heavy Barrel and a LS-30 could try the same test and see if they both appear as '1' for a short period of time that would be handy.
-
slap_fight
- Posts: 64
- Joined: Thu Sep 21, 2006 5:09 pm
- Location: london
i bought the 1st set from videoconnect about 4 years ago? i think i paid 80 bucks for the pair. then i found 1 set second hand and because they have been "broken in" they felt better so i used those ever since, they were about 40 bucks? then recently i bought another set NOS for 50 pounds, bargain. that was a one off though.
Actually, a comment in the MAME driver says exactly the opposite:yojo! wrote:But, according to the Mame driver 6 & 8 appear grounded for a short period of time during the transition for the LS-30.Ex-Cyber wrote:The basic idea is to disconnect pins 6 and 8 and run them through a circuit that passes the ground connection when one is grounded but isolates both if both are grounded
src/mame/drivers/snk.c wrote:The rotary joystick is a mechanical 12-way positional switch, so what happens is that occasionally while rotating the stick none of the switches will be closed.
MAME returns 0xf, which suggests no inputs grounded (unless hardware on the PCB is inverting the logic). This is also what it returns for the bootleg version when not using a rotary stick. Thanks to the MAME macro mess, though, I'm not sure whether this value represents an actual value read by the CPU or a position number.The Mame code addresses the issue by making all 12 input grounded.
It probably is worth checking somehow to verify the transition behavior. The way to do it would probably be with an analog ohmmeter (so you can watch the needle bounce around in real time; digital meters usually have a considerable delay). I don't think the games can really be trusted to show you the raw values in real time.I did some test with my Happ using the Heavy barrel's test screen; which displays the state of all 12 inputs. I did not see any glich (i.e. 6 & 8 as '1') when I slowly rotate the stick. If anyone that owns Heavy Barrel and a LS-30 could try the same test and see if they both appear as '1' for a short period of time that would be handy.
I think you're right; I was thinking about ' the 0xf' again last night after posting and this makes total sense now. (sorry, I'm kind of slow so forgive meEx-Cyber wrote:MAME returns 0xf, which suggests no inputs grounded (unless hardware on the PCB is inverting the logic). This is also what it returns for the bootleg version when not using a rotary stick. Thanks to the MAME macro mess, though, I'm not sure whether this value represents an actual value read by the CPU or a position number.

To make it work with my Happ I would have to have pin 6 & 8 grounded for a short period during the transiton so we can detect the condition and report no input like you suggested ? It would have to be long enought the firmware to sample it ?
I'll run some test tonight; I only have a digital ohmeter at home; I'll see If I can track down an analogic one if I'm unsucessfull. Thanks for your help !
That's the idea. If there's not a long enough transition it should still be possible to do something, but the logic stage becomes more complicated.yojo! wrote:To make it work with my Happ I would have to have pin 6 & 8 grounded for a short period during the transiton so we can detect the condition and report no input like you suggested ? It would have to be long enought the firmware to sample it ?
It's worth a shot; a digital one might be good enough depending on the stick behavior.yojo! wrote:I'll run some test tonight; I only have a digital ohmeter at home; I'll see If I can track down an analogic one if I'm unsucessfull.
Pin 6 & 8 make contact when I rotate the stick in the intermediate position. I had to use an analogic ohmeter to detect this. What's the easiest way to implement your idea ?Ex-Cyber wrote:It's worth a shot; a digital one might be good enough depending on the stick behavior.yojo! wrote:I'll run some test tonight; I only have a digital ohmeter at home; I'll see If I can track down an analogic one if I'm unsucessfull.
I already started working on the electronic last week with :Ex-Cyber wrote:I think the easiest combo in terms of components that would be easy to find would be
1x 7400 (HC/HCT)
1x 74244 or 74245 (HC/HCT)
1x resistor (anything in the 10K to 100K range should be fine)
1 74HCT00 and 2 pull up resistors. with the following logic:
(' == not)
(. == and)
Xin == pin from rotary stick connected to a pull up resistor
Xout == pin out going to the arcade PCB
6out = (6in' . 8in)'
8out = (8in' . 6in)'
Why would I need the 74244/74245 ?
Looks right.yojo! wrote:6out = (6in' . 8in)'
8out = (8in' . 6in)'
Hooking up a 7400 directly means that the stick inputs have a (relatively) low-impedance path to Vcc, which they probably don't have in normal operation. It's unlikely that this would actually cause a problem, but I felt somewhat obligated to play it safe since it's not my PCB.yojo! wrote:Why would I need the 74244/74245 ?