Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
05468 DIP/Input Minor Always Feb 23, 2014, 03:25 Feb 26, 2014, 06:53
Tester pcolson View Status Public Platform MAME (Official Binary)
Assigned To Resolution Fixed OS Windows Vista/7/8 (64-bit)
Status [?] Resolved Driver
Version 0.152 Fixed in Version 0.153 Build Normal
Fixed in Git Commit Github Pull Request #
Summary 05468: sharrier: Min/Max settings for analog input are incorrect
Description According to the manual, both the X and Y axes should have min below 25H, and max above DBH. The current settings are:
  739 PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
  742 PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x60,0xa0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
with these settings, I was unable to get the characters head up to the score area, and was unable to drop to the ground to run with the original controller. I was also unable to navigate the test menu since it needs the extents of the y axis to move through the menu

I changed the y axis min/max to match the x axis since that setting meets the description in the manual:
 739 PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
  742 PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
With these settings, I am able to move in the y direction as expected. I am also able to move up and down in the test menu
Steps To Reproduce When using an original controller, it is impossible to get to the top and bottom of the screen (which makes it impossible to run in this game). Not sure how to reproduce if not using the original controller, or if the calibration settings have been altered.
Additional Information The settings in the driver seem to be taken from what was observed in an actual machine. I asked an owner on BYOAC to report what he was seeing in the test screen on his Space Harrier and this is what he saw:
Control Lever R.L. Far Right: 21H Far Left: DEH
Control Lever U.D. Top: 61H Bottom:9EH

I can't verify what these values are in MAME. I need a test switch to select the test in the menu, but there is no test switch. I saw this line in the driver:
 292 static const char *const sysports[] = { "SERVICE", "UNKNOWN", "COINAGE", "DSW" };

Maybe that UNKNOWN is the test button?

I am attaching the scan of the relevant manual page. The owner of the manual is going to scan the entire manual when he has time, but I don't know when that will be.

I own the controller I am testing with, so I can do additional tests as needed. I should also be able to get the helpful BYOAC guy to test on his original machine if needed.
Github Commit
Flags
Regression Version
Affected Sets / Systems sharrier
Attached Files
jpg file icon spaceharrieranalogsetting.jpg (79,582 bytes) Feb 23, 2014, 03:25 Uploaded by pcolson
Manual page describing analog setting
pcolson
Relationships
There are no relationship linked to this issue.
Notes
5
User avatar
No.10325
Osso
Moderator
Feb 23, 2014, 07:13
edited on: Feb 23, 2014, 08:14
F2 is the test switch.

EDIT: Ok, I've adjusted the values to match the ones you reported. Please test with the real lever.
User avatar
No.10326
pcolson
Tester
Feb 23, 2014, 20:06
Thought I tried F2, but apparently not. Now that I got into the menu, here are the min/max using my space harrier controller in my modified binary:

20H to DFH on X axis
36H to BCH on Y axis

At center, both X and Y are within the range specified in the manual

Thanks,
Paul
User avatar
No.10328
pcolson
Tester
Feb 24, 2014, 05:32
edited on: Feb 24, 2014, 07:08
Sorry, my report was a bit unclear. According to the manual, both the x and y axes should be min < 25H and max > DBH. The values in the current driver for the x axis meet the definition stated in the manual, so I think those values can be used for both the x and y axis.

I reread the post that I thought gave the values from an actual machine (the numbers you added in the driver). It looks like he is using a controller in MAME as well. His controller worked fine because his min y was above the 60H in the driver. Now that I know that he was in MAME, I have no idea if his controller was calibrated or settings were changed to make his controller work within the specified range. Since my min y value is significantly lower than his, I am making the assumption that he either changed the sensitivity settings, or his controller is not adjusted according to the manual.

I can confirm that my controller works with the default sensitivity settings when the min/max for both x and y are set to PORT_MINMAX(0x20,0xe0). These settings also meet the definition in the manual. My values are:
20H to DFH on X axis
36H to BCH on Y axis

With a 8H adjustment range (7CH-84H at center), the <20H minimum certainly makes sense compared to the numbers I am seeing.

The values you have in the driver now will not work for my controller since my min of 36H is quite a bit less than the 61H in the driver.

We can get closer to the exact definition in the manual by using MINMAX(0x24,0xDC), but I am not sure if there is an advantage to doing that.
User avatar
No.10332
pcolson
Tester
Feb 26, 2014, 06:51
Just compiled and tested the current fix (second attempt). The controller works correctly. Thanks for making the changes.
User avatar
No.10333
Osso
Moderator
Feb 26, 2014, 06:53
Thanks you for the reporting the issue!