How abouts we have ourselves an all new controller system?!

#1
So I'm currently working on intercepting (spoofing) SOM's device input. I haven't been able to interact with the controllers because of this weird crashing behavior that I can make neither heads nor tails of. However the keyboard is not a prob...

So it dawned on me... SOM's controller system we know is buggy configuration wise in at least three ways and practically unusable without shear perseverance. Fixing the builtin bugs seems problematic at best. And we know that SOM can't reliably even have access to all of the buttons/etc on your joypad.

So what I'm thinking, is we consider not using SOM for controller input at all. And instead we program our own controller interpreter, and translate from that into SOM's keyboard input. Think about it, you can do everything with the keyboard, so all we gotta do is use the controller to drive that. ‎ 

This is not tough at all to do. For now maybe we could alert the player to the alternative way via a readme or something. But eventually I don't think it would be too much trouble to hijack the controller setup menu completely and completely rearrange it for configuring around the new system.

This way we get a lot of interesting things. For example it would probably work fairly well to simulate analog control by sensing a lightly pressed analog stick and interpreting that into hitting the keyboard button like every other frame for a half speed and so on. This would give you finer control. It's also easy to detect when a menu is up (the only time som sends text really) and change up the keys for this so you don't accidentally cancel an unprompted message (like an NPC yelling at you) because you were just hitting one of the cancel buttons for some action. And in general I can't even control the KF1 remake that installs off the disc because the menu navigation buttons aren't available to my preferred controller setup.

If your controller has extra buttons you could even assign sequences to it, like use an item or change weapons to the select/start buttons.
Reply

#2
It's already been done- Joy2Key
https://www.electracode.com/4/joy2key/Jo...ersion.htm
Making a few Joy2Key configuration files for common controller designs would be good though.

I think you might have exe's that don't have the controller fix fully implemented.
I have no problem with SoM's default controller configuration; the only thing I find problematic, is that the 'circle' button always stays 'confirm' in the menu regardless of the configuration setting but Joy2Key fixes that.
Reply

#3
I figured there was something if not many things, but it will be better to have something fully integrated with SOM. I doubt joy2key would have anyway of knowing if you're in a menu or message dialog for example. I think SOM's controller issues are deeper than they seem.

One of the first things I'm planning on working on this week (I think I'm going to take a break from the forums) is keyboard remapping and joystick support which will kick in with SOM (instead of running in the background or anything) ...then I'm going to try my hand at mapping out the menu system and replacing the interface on the controller setup screen, so players can configure their controller from there.

First I'm going to work on setting up the ini handling code. I'm just tired of having to reconfigure my controller whenever I want to play/try a level.

Another thing I'm going to add is a mandatory wait time for messages... before you can make a decision/cancel the message. Because it's really problematic when players don't expect messages/decisions to pop up. It's very easy I find to accidentally miss them/make a wrong decision because it popped up right as you were about to hit a button. I think this is more likely to happen to you if you use a configuration like I do that has you regularly pressing the menu buttons in normal play.

Anyway, after I get all of the input and screen drawing stuff in the bag, I hope you'll help me with what you can in the labor dept... especially finding memory where important data is stored. It should be easy once all the debugging tools are built in to the game, with new hotkeys and pages of memory being overlayed while you test stuff, it should be as easy as possible to see what is what, no dumps required. I don't mind doing the programming, but I will feel a little resentful if I can't getting any helpers to help pull some weight.
Reply

#4
If anyone has patched exe files you think are fixed joypad wise, I'd like to give them a try. You can probably just attach them if you compress first.

If they do work definitively I need to know the proper changes, so I could have my system patch the exe on load so to avoid different version of the exe floating around.
Reply

#5
The controller fix will be integrated into the next SoM translation patch which is currently underway.
Reply

#6
Come'on, post us an exe (som_db.exe if you gotta pick)

^You should do this anyway, because I'm skeptical your fix will work for me -- if so great... if not, we still have bugs to workout before saying the joypads are good to go (which you should know about before claiming too much in your release notes)
Reply

#7
I am a noob about this joy2key thing. ‎  But let me ask a question.

When I use keyboard control, I cannot run while holding the up and left arrows due to to the annoying bug that plagues most standard keyboards ( I assume its a wiring thing but I honestly never did understand why some do it and some do not).

Anyways, I am guessing since joy2key is purely software that it would get around this problem as well (again I am assuming the 3 keys situation is purely hardware related to cheap keyboards).

Does anyone actually know what causes the 3 key problem? ‎  Does anyone else have that problem when they hit up arrow, left arrow and space?
- Todd DuFore (DMPDesign)
Site Founder
Reply

#8
(2009-10-19, 03:06 PM)dmpdesign link Wrote: I am a noob about this joy2key thing.? But let me ask a question.

When I use keyboard control, I cannot run while holding the up and left arrows due to to the annoying bug that plagues most standard keyboards ( I assume its a wiring thing but I honestly never did understand why some do it and some do not).

Anyways, I am guessing since joy2key is purely software that it would get around this problem as well (again I am assuming the 3 keys situation is purely hardware related to cheap keyboards).

Does anyone actually know what causes the 3 key problem?? Does anyone else have that problem when they hit up arrow, left arrow and space?

For the record, I don't have any problems running around like a jackass in any way with the keyboard (just tested it)

If you explained the situation in as much detail or possible I can make sure to do my best to get around it with the key remapping and controller extensions I'm working on right now.
Reply

#9
Many cheap keyboards, especially ones that come with boxed set computers (and unfortunately quite a few laptops) are wired in a way so that only so many keys can be pressed.

I think the default for a high end keyboard is registering 6 different keys before the system beeps.

Now with that said, depending on the type of keyboard you have, some keys are wired on the same what I guess I will call interrupt (probably not the right term, but you'll likely get my point). ‎  Cheaper keyboards have the bottom row of keys all mapped to a single hardwire through the communication line. Mine here at work does not have that problem, however both my PC and laptop keyboards at home do, and im guessing so do others who may use SOM.

On cheap keyboards they can press up to 2 keys on a single wire (this is my understanding anyways). ‎  So I can press up and left just fine, or up and space just fine, but not up, left and space. ‎  Its really quite dumb. ‎  If you google for "cant press 3 keys at once" you will tons of post sites about this universal problem and the only definite fix I have found is buying a better keyboard.
- Todd DuFore (DMPDesign)
Site Founder
Reply

#10
https://www.extremetech.com/article2/0,2...063,00.asp

On one of the pages of this article they explain why it happens...
- Todd DuFore (DMPDesign)
Site Founder
Reply





Users browsing this thread:
3 Guest(s)