I also got Silent Hill working tonight and tracking works perfectly fine in that as well, so yeah, definitely a MAME issue.
I was playing around with it a bit earlier and just not having any luck with anything.
I did notice something I thought was a little strange. I started MAME with verbose mode on and spit it out to a log file, and I noticed 2 things.
1. I noticed next to the 320x240 resolution it finds in SwitchRes it shows an asterisk next to it like * and I don't really know why. I'm not sure if that is because I manually added it to the ini file manually when I ran vmmaker because I want my desktop running at the resolution, or some other reason.
2. This was the one I thought was more strange. When it shows Switchres setting MAME settings, it was setting the flag -nounevenstretch and -nokeepaspect. However, my MAME.ini definitely had keepaspect and unevenstretch set to 1, almost like it was completely ignoring my MAME.ini settings. Perhaps there are other settings it is ignoring? But where would it be getting those values from then? I then tried running it from the commandline passing in the -keepaspect and -unevenstretch flags, and this time in the log file I saw that it indeed did show those 2 flags. So from the commandline it used them, but when set in MAME.ini, switchres seemed to not pick it up for some reason.
So yeah, that was the 2 strange things I noticed.
I also came across this post googling and this explanation basically says that MAME is at fault for the way it's handling it:
https://github.com/libretro/flycast/issues/1175#issuecomment-1823196491That sounds a lot like what is going on with my instance as well, but I'm not using gun4ir or anything.
I tried turning off the mouse completely and only have joystick set to 1 in mame.ini, then every control style is set to keyboard except i have lightgun and positional_device set to joystick. I still just saw absolutely no changes at all unfortunately.