libretro / blastem

Upstream tracking repo of BlastEm, the fast and accurate Genesis emulator, with libretro specific changes
https://www.retrodev.com/blastem/
GNU General Public License v3.0
54 stars 25 forks source link

Give a saner default button layout #22

Closed Kekun closed 3 years ago

Kekun commented 3 years ago

This gives a saner default layout for 99% of games as nobody wants to jump with the R button. This is also better for the vast majority of 6-buttons games like Streets of Rage 3 or Ranger X, with the notable exception of Super Street Fighter II, but who emulates it on the Genesis anyways‽

hizzlekizzle commented 3 years ago

Does this bring it in-line with genplusgx and picodrive? IIRC, some people actually preferred the blastem layout because it's easier to map to the 6-button remake pads from 8bitdo et al.

Kekun commented 3 years ago

No idea what PicoDrive and genplusgx do, I don't care about them because I want only FLOSS cores. :x

It seems there are two use cases:

For the first group that I expect to be the vast majority, the current mapping is just unusable, and for the second group I don't get why they would care as they remap anyway.

Kekun commented 3 years ago

To be more clear, here is the new layout:

X     Z
   Y
  A C
   B

The previous was:

Z     C
   Y
  X B
   A
hizzlekizzle commented 3 years ago

looks like they are indeed the same with your proposed layout: https://github.com/libretro/Genesis-Plus-GX/blob/master/libretro/libretro.c#L2344

keithbowes commented 3 years ago

I want only FLOSS cores

I can certainly understand that, but I have to remind myself of two things:

  1. These cores are only non-free because they have a non-commercial license; if you're not intending to profit from other people's work, it shouldn't be a practical problem.
  2. The majority of the games are non-free; those that are free are written in a proprietary assembly language and thus very difficult to hack anyway. Thus, you're most likely using non-free software (in the form of games) anyway.

The bigger issue is with Ludo, which ships with some non-free cores (like Genesis Plus GX and Snes9x) and others that have an incompatible free-software license (like Gambatte), violating its GPL 3 license.

Mednafen uses an old version of Genesis Plus GX, back when it was GPL, but looking through the Git logs, the libretro port didn't come along until after the change to a non-commercial license. Picodrive, it seems, is only under a non-commercial license because it uses Genesis Plus GX's CD-ROM code (which I assume isn't used in the libretro core anyway). It's kind of weird that a libretro port of Mednafen's Genesis module was never done; sure, practically speaking, it's superfluous since the Genesis Plus GX core is available, but that didn't stop them from porting Beetle bSNES (though more up-to-date bsnes ports are available).

IMHO, the big problem with BlastEm is the lack of portability. The other two can be used basically anywhere, but BlastEm is just 32- and 64-bit x86 on Linux and Windows. I really can't imagine why; usually things are platform-specific due to the use of assembly language to speed things up, but BlastEm is noticeably slower than Genesis Plus GX and Picodrive.

inactive123 commented 3 years ago

Hi there, I finally merged this.