trzy / Supermodel

Official repository of the Sega Model 3 arcade emulator.

Home Page:https://supermodel3.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Linux][lostwsga] Aiming problem

WebSiteFurbo opened this issue · comments

Hello to everybody,

I noticed that:

  • when moving the mouse along the X-axis, Player 1's crosshair moves on the horizontal plan;
  • when moving the mouse along the Y-axis, Player 2's crosshair moves on the horizontal plan;

I think it is a bug because the following configuration in the ini file works very well with Ocean Hunter but not for The Lost World, so I do not want to modify it:

; Analog guns (Ocean Hunter, LA Machineguns)
InputAnalogGunLeft = "KEY_LEFT" ; digital, move gun left
InputAnalogGunRight = "KEY_RIGHT" ; digital, move gun right
InputAnalogGunUp = "KEY_UP" ; digital, move gun up
InputAnalogGunDown = "KEY_DOWN" ; digital, move gun down
InputAnalogGunX = "MOUSE_XAXIS,JOY1_XAXIS" ; analog, full X axis
InputAnalogGunY = "MOUSE_YAXIS,JOY1_YAXIS" ; analog, full Y axis
InputAnalogTriggerLeft = "KEY_A,JOY1_BUTTON1,MOUSE_LEFT_BUTTON"
InputAnalogTriggerRight = "KEY_S,JOY1_BUTTON2,MOUSE_RIGHT_BUTTON"

I noticed that during the boot an error message appears as well:

Capture d’écran du 2024-05-31 21-26-32

I tried to find this "Sensor Gun!!" warning on the official manual but I did not find it.
00000482.pdf

Any help is greatly appreciated.

Which build are you using and where did you get it from? I’m pretty certain Lost World works fine. You may need to calibrate things in the service menu and then double check your INI file settings.

Can you paste both your INI file as well as Supermodel.log after running lostwsga?

Hi trzy,

I am using Supermodel 0.3a-WIP, I got it from your Github page running:

git clone https://github.com/trzy/Supermodel.git

My GPU info: 4.6 (Core Profile) Mesa 24.0.5-1ubuntu1 (core profile). The emulator is installed on Ubuntu 24.04 LTS, with gcc 13.2.0 and libglu1-mesa-dev installed. Here are the files you asked. I tried to calibrate the gun in Service Mode but it was moving only on the horizontal plan.

Supermodel.log

Supermodel_INI.txt

I converted the .ini file into a .txt one otherwise Github would not have accepted it.

commented

I think there's a few issues coming together here that makes this problem keep coming around.

If you look at the OPs log file, you'll see lostwsga is requested and loaded, but on the next line down lostwsgp is called in.

[Info] Supermodel Version 0.3a-WIP
[Info] Started as:
[Info] argv[0] = ./supermodel
[Info] argv[1] = lostwsga.zip
[Info] Opened lostwsga.zip.
[Info] lostwsgp:
[Info] banked_crom: stride=8, chunk size=2, byte layout=10325476

A merged ROM set issue?
In Supermodels defence, the -help output does stipulate ROM set must be a valid ZIP file containing a single game.

The next problem is Supermodel is looking for out dated hard coded game names in Model3.cpp.
lostwsgo became lostwsgp ages ago.

https://github.com/trzy/Supermodel/blob/master/Src/Model3/Model3.cpp#L613

if (m_game.name == "lostwsga" || m_game.name == "lostwsgo")
{ // to do, not a string compare
adc[0] = (UINT8)Inputs->analogGunX[0]->value; // order is different for some reason in lost world
adc[1] = 255 - (UINT8)Inputs->analogGunY[0]->value; // why are values inverted? is this the wrong place to fix this
adc[2] = (UINT8)Inputs->analogGunX[1]->value
adc[3] = 255 - (UINT8)Inputs->analogGunY[1]->value;
}

Btw, There is also hard coded name check in Main.cpp
https://github.com/trzy/Supermodel/blob/master/Src/OSD/SDL/Main.cpp#L966

gameHasLightguns |= game.name == "lostwsga";

Plus, when you add in the fact that users can amend their Games.xml to change the gun type, users mileage really will vary when playing lost world games.