Ok, seems you are quite confused here. Forgive me, not trying to call you a noob or anything, I’m just gonna be very thorough for the sake of the explanation.
Retroarch works like a console (actually a virtual console) where you run games (in this case cores). As any other console it has it’s own gamepad (virtual), it’s called the RetroPad. If it was real it would look like this:

BTW, there is no actual RGUI button in the RetroPad.
Now, this gamepad as I mentioned is virtual, actually it’s an abstraction, and it was designed to cover most use cases of retrogaming. Since it’s virtual you have to map a real controller to that pad, and that’s what you are doing when configuring via RGUI or via the cfg file.
Every button / axis of that virtual gamepad can be mapped to a key, a button or an axis of a real input controller.
Then there is the core, cores are “hardwired” to the retropad. In SNES’s case, the directional buttons are wired to RetroPad’s hat, YXABLR are wired to YXABLR and the same for SELECT/START. Analogs aren’t wired at all.
But what if you want to move the character with the Left Stick? Well that’s what analog_dpad_emulation is for. It emulates a dpad using an stick without having to remap your buttons. It doesn’t disconnect the hat, so both should work when it’s enabled. Without analog_dpad_emulation you would have to remap RetroPad’s hat to your controllers Left-stick axes to achieve the same.
With PSX things are a lot more complicated.
PSX had three notable gamepads, the basic PS1 pad (no analogs), the Dual Shock and it’s predecesor, the Dual Analog. Some games support them all, some games only support some. For instance MMX4 won’t work with a Dual Shock unless you disable the analogs (on the real console). The Dual Shock and Dual Analog had a button to toggle analogs on/off. While off these pads would behave like a PS1 Pad, when on the pad would tell the console HEY I’M A DUALSHOCK and initiated a different communication protocol.
So, in the mednafen core you have the possibility of using PS1 pad or DualShock, DualAnalog or flightstick, but you are subject to the same compatibility problems the real thing might have had with any of these controllers.
Generally speaking, DualShock with analogs off should be the most compatible. But your mileage may vary.
You select your controller on the input settings menu. When you have a PS1 pad + DPAD emulation you don’t have ANY analog control. You are just simulating the DPAD on the stick and there is no granularity in movement range at all.
In this mode pushing a bit or pushing a lot of an stick will just tell the core that the button is pushed, the game might have some logic to make it appear like analog control was used but the input is pure digital.
If you change to DualShock and enabled the sticks (either by disabling the Toggle button core option which will force analogs to be on or by using START+SELECT+L1+L2+R1+R2) on a game that supports DualShock you’ll get REAL full analog control.
Now, I don’t know what happens if you have dpad emulation enabled and DualShock at the same time. My guess is DualShock overrides this but I may be mistaken. I’ll have to that. Also bear in mind a game with DS support could have different actions for the stick and the hat.
Now to your questions.
I’m sorry I don’t know where you want to get at.
You either do this:
input_player1_left_axis = “-0” (use the joystick, digital or analog if supported)
or this:
input_player1_left_btn = “h0left” (Use d-pad, digital -or analog?-)
what you mean is something like this?:
input_player1_left_axis = “h0left”
If you do this: input_player1_left_axis = “-0”, that’s correct and it works on all scenarios. If you do
input_player1_left_btn = “h0left”
, then that’s correct too, it makes the hat left work as hat left. This is wrong:
input_player1_left_axis = “h0left”
it will result on the analog stick to work like a digital button.
What dpad emulation does is accept whatever you have mapped to the left stick as it was the hat without changing ANYTHING in the config.
“Without doing anything”. I didn’t need to change device type back and forth between ps1 and DualShock to play on both types of games, 1 config plays both, as I said on analog too, Crash walks and runs if pushed further.
As I said, your mileage may vary. As far as I know Crash Bandicoot does NOT support the dualshock, it will work with DualShock with the sticks off I guess. Either that or it has some logic to make if appear as if there was analog controls or you’re playing Crash Bandicoot Warped that does support it. I haven’t played much Crash games so I don’t really know.
You should always use Dual Shock with analogs on and dpad emulation off on games that support it, and in the games that don’t support it you could use PS1 pad with Analog emulation or DualShock with sticks of and Analog emulation. End result is the same.
You should use the latest beetle core that one tells you at startup if analogs are on/off and it’s the only supported core at the moment