higan icon indicating copy to clipboard operation
higan copied to clipboard

Gamepad not working on Linux

Open Javantea opened this issue 3 years ago • 3 comments

I'm trying to use higan 9a625c545ca89b094d5c1da40bbfa5d07156a4aa from Gentoo's portage and I cannot get any input to work. I have tried udev, SDL, and Xlib. When I go to the Controller Port 1 option in Famicom, I get a -- Nothing in the box to the right. I previously was able to use higan-106 with no problem.

From lsusb: Bus 003 Device 003: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller

The joystick: crw-rw-r--+ 1 root input 13, 0 Jun 30 19:18 /dev/input/js0 The usb file: crw-rw-rw- 1 root joy 189, 258 Jun 30 19:18 /dev/bus/usb/003/003

I am in the input and joy groups. This device works with many programs (for example Mednafen).

I used gdb to determine that SDL_JoystickOpen does get called.

I would be happy to help debug this issue if any more information or tests would help.

Javantea avatar Jul 01 '21 03:07 Javantea

When I go to the Controller Port 1 option in Famicom, I get a -- Nothing in the box to the right.

Here's what it's supposed to look like:

image

There's a "Nothing" option, which means nothing is connected to the port.

There's a "Gamepad" option, which creates a new set of mappings based on the "Gamepad" template.

There's an "XBox 360 Pad" option, which I created by choosing "Gamepad", then typing a new name, then selecting it in the left-hand panel and mapping my 360 pad to the various Famicom buttons.

In the standard version of higan, the "Gamepad" template is stored in ~/.local/share/higan/Famicom/Controller/Gamepad, and if it's not there, higan won't be able to include it in the list. I suspect one of the following has happened:

  • The Gentoo package forgot to install the templates into your home directory at first startup
  • The Gentoo package forgot to patch the code to look for templates in a system-wide location
  • The Gentoo package forgot to package template files entirely.

I recommend filing an issue against the Gentoo package, trying the nightly build for Ubuntu (which probably works on Gentoo), or just building from source yourself.

Screwtapello avatar Aug 03 '21 05:08 Screwtapello

Yes, this is indeed the problem (and also the source of many other problems with Gentoo's build of Higan, e.g. not being able to find the ipl.rom or boards.bml files for the emulated systems). The current Gentoo ebuild puts all of these files under /usr/share/higan-$VERSION:

$ tree /usr/share/higan-116_pre20210404/
/usr/share/higan-116_pre20210404/
├── Database
│   └── Database
│       ├── BS Memory.bml
│       ├── Sufami Turbo.bml
│       └── Super Famicom.bml
├── extras
│   ├── paths.bml
│   ├── README.md
│   └── Shaders
│       ├── 2xBR-2pass.shader
│       │   ├── 2xbr-lv1-c-pass0.fs
│       │   ├── 2xbr-lv1-c-pass0.vs
│       │   ├── 2xbr-lv1-pass1.fs
│       │   ├── 2xbr-lv1-pass1.vs
│       │   └── manifest.bml
│       ├── 2xBR-Halation-Scanlines.shader
│       │   ├── 2xbr-lv1-c-pass0.fs
│       │   ├── 2xbr-lv1-c-pass0.vs
│       │   ├── 2xbr-lv1-pass1.fs
│       │   ├── 2xbr-lv1-pass1.vs
│       │   ├── combine.fs
│       │   ├── gaussian-horiz.fs
│       │   ├── gaussian-vert.fs
│       │   ├── manifest.bml
│       │   └── scanline.fs
│       ├── AANN.shader
│       │   ├── AANN.fs
│       │   └── manifest.bml
│       ├── Advanced-AA.shader
│       │   ├── advanced-aa.fs
│       │   ├── advanced-aa.vs
│       │   └── manifest.bml
│       ├── Beam4.shader
│       │   ├── beam4-p0.fs
│       │   ├── beam4-p1.fs
│       │   ├── beam4-p2.fs
│       │   ├── curvature.fs
│       │   └── manifest.bml
│       ├── Bicubic.shader
│       │   ├── bicubic.fs
│       │   └── manifest.bml
│       ├── Bicubic-sharp.shader
│       │   ├── bicubic-sharp.fs
│       │   └── manifest.bml
│       ├── Cocktail.shader
│       │   ├── cocktail.fs
│       │   ├── cocktail.vs
│       │   └── manifest.bml
│       ├── CRT-Aperture.shader
│       │   ├── aperture.fs
│       │   └── manifest.bml
│       ├── CRT-Caligari.shader
│       │   ├── crt-caligari.fs
│       │   └── manifest.bml
│       ├── CRT-Geom-Halation.shader
│       │   ├── combine.fs
│       │   ├── crt-geom.fs
│       │   ├── crt-geom.vs
│       │   ├── gaussian-horiz.fs
│       │   ├── gaussian-vert.fs
│       │   └── manifest.bml
│       ├── CRT-Geom.shader
│       │   ├── crt-geom.fs
│       │   ├── crt-geom.vs
│       │   ├── curvature.fs
│       │   └── manifest.bml
│       ├── CRT-Glow.shader
│       │   ├── blur_horiz.fs
│       │   ├── blur_horiz.vs
│       │   ├── blur_vert.fs
│       │   ├── blur_vert.vs
│       │   ├── gauss_horiz.fs
│       │   ├── gauss_horiz.vs
│       │   ├── gauss_vert.fs
│       │   ├── gauss_vert.vs
│       │   ├── lanczos_horiz.fs
│       │   ├── lanczos_horiz.vs
│       │   ├── linearize.fs
│       │   ├── linearize.vs
│       │   ├── manifest.bml
│       │   ├── resolve.fs
│       │   ├── resolve.vs
│       │   ├── threshold.fs
│       │   └── threshold.vs
│       ├── CRT-Lottes2.shader
│       │   ├── lottes.fs
│       │   ├── lottes.vs
│       │   └── manifest.bml
│       ├── CRT-Lottes-Multipass.shader
│       │   ├── bloompass.fs
│       │   ├── bloompass.vs
│       │   ├── manifest.bml
│       │   ├── scanpass.fs
│       │   └── scanpass.vs
│       ├── CRT-Lottes.shader
│       │   ├── manifest.bml
│       │   └── shadertoy.fs
│       ├── CRT-Royale-Kurozumi.shader
│       │   ├── bloom-approx.fs
│       │   ├── bloom-approx.vs
│       │   ├── bloom-horizontal-reconstitute.fs
│       │   ├── bloom-horizontal-reconstitute.vs
│       │   ├── bloom-vertical.fs
│       │   ├── bloom-vertical.vs
│       │   ├── blur9fast-horizontal.fs
│       │   ├── blur9fast-horizontal.vs
│       │   ├── blur9fast-vertical.fs
│       │   ├── blur9fast-vertical.vs
│       │   ├── brightpass.fs
│       │   ├── brightpass.vs
│       │   ├── first-pass-linearize-crt-gamma-bob-fields.fs
│       │   ├── first-pass-linearize-crt-gamma-bob-fields.vs
│       │   ├── geometry-aa-last-pass.fs
│       │   ├── geometry-aa-last-pass.vs
│       │   ├── manifest.bml
│       │   ├── mask-resize-horizontal.fs
│       │   ├── mask-resize-horizontal.vs
│       │   ├── mask-resize-vertical.fs
│       │   ├── mask-resize-vertical.vs
│       │   ├── scanlines-horizontal-apply-mask.fs
│       │   ├── scanlines-horizontal-apply-mask.vs
│       │   ├── scanlines-vertical-interlacing.fs
│       │   ├── scanlines-vertical-interlacing.vs
│       │   └── textures
│       │       ├── TileableLinearApertureGrille15Wide8And5d5Spacing.png
│       │       ├── TileableLinearApertureGrille15Wide8And5d5SpacingResizeTo64.png
│       │       ├── TileableLinearShadowMaskEDP.png
│       │       ├── TileableLinearShadowMaskEDPResizeTo64.png
│       │       ├── TileableLinearShadowMask.png
│       │       ├── TileableLinearShadowMaskResizeTo64.png
│       │       ├── TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing.png
│       │       └── TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacingResizeTo64.png
│       ├── CRT-Royale.shader
│       │   ├── bloom-approx.fs
│       │   ├── bloom-approx.vs
│       │   ├── bloom-horizontal-reconstitute.fs
│       │   ├── bloom-horizontal-reconstitute.vs
│       │   ├── bloom-vertical.fs
│       │   ├── bloom-vertical.vs
│       │   ├── blur9fast-horizontal.fs
│       │   ├── blur9fast-horizontal.vs
│       │   ├── blur9fast-vertical.fs
│       │   ├── blur9fast-vertical.vs
│       │   ├── brightpass.fs
│       │   ├── brightpass.vs
│       │   ├── first-pass-linearize-crt-gamma-bob-fields.fs
│       │   ├── first-pass-linearize-crt-gamma-bob-fields.vs
│       │   ├── geometry-aa-last-pass.fs
│       │   ├── geometry-aa-last-pass.vs
│       │   ├── manifest.bml
│       │   ├── mask-resize-horizontal.fs
│       │   ├── mask-resize-horizontal.vs
│       │   ├── mask-resize-vertical.fs
│       │   ├── mask-resize-vertical.vs
│       │   ├── scanlines-horizontal-apply-mask.fs
│       │   ├── scanlines-horizontal-apply-mask.vs
│       │   ├── scanlines-vertical-interlacing.fs
│       │   ├── scanlines-vertical-interlacing.vs
│       │   └── textures
│       │       ├── TileableLinearApertureGrille15Wide8And5d5Spacing.png
│       │       ├── TileableLinearApertureGrille15Wide8And5d5SpacingResizeTo64.png
│       │       ├── TileableLinearShadowMaskEDP.png
│       │       ├── TileableLinearShadowMaskEDPResizeTo64.png
│       │       ├── TileableLinearShadowMask.png
│       │       ├── TileableLinearShadowMaskResizeTo64.png
│       │       ├── TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing.png
│       │       └── TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacingResizeTo64.png
│       ├── CRT-Simple.shader
│       │   ├── crt-simple.fs
│       │   ├── crt-simple.vs
│       │   └── manifest.bml
│       ├── Display Emulation
│       │   ├── fallbacks
│       │   │   ├── famicom.shader
│       │   │   │   ├── famicom.fs
│       │   │   │   └── manifest.bml
│       │   │   ├── game boy advance.shader
│       │   │   │   ├── game-boy-advance.fs
│       │   │   │   └── manifest.bml
│       │   │   ├── game boy.shader
│       │   │   │   ├── game-boy.fs
│       │   │   │   └── manifest.bml
│       │   │   └── super famicom.shader
│       │   │       ├── manifest.bml
│       │   │       └── super-famicom.fs
│       │   ├── famicom_cgwg.shader
│       │   │   ├── 3line-comb-decode.fs
│       │   │   ├── adaptive-comb-decode.fs
│       │   │   ├── basic-decode.fs
│       │   │   ├── composite-encode.fs
│       │   │   ├── crt-geom.fs
│       │   │   ├── crt-geom.vs
│       │   │   ├── lowpass-chroma.fs
│       │   │   ├── lowpass-decode.fs
│       │   │   ├── lowpass-notch-decode.fs
│       │   │   ├── lowpass-notch-decode-yiq.fs
│       │   │   └── manifest.bml
│       │   ├── famicom.shader
│       │   │   ├── combFilter.fs
│       │   │   ├── combFilter.vs
│       │   │   ├── DAC.fs
│       │   │   ├── DAC.vs
│       │   │   ├── lowPass.fs
│       │   │   ├── manifest.bml
│       │   │   ├── NesTable.png
│       │   │   ├── scaleX.fs
│       │   │   ├── scaleX.vs
│       │   │   ├── scaleY.fs
│       │   │   └── scaleY.vs
│       │   ├── game boy advance.shader
│       │   │   ├── game-boy-advance.fs
│       │   │   └── manifest.bml
│       │   ├── game boy color.shader
│       │   │   ├── lcd-grid.fs
│       │   │   ├── manifest.bml
│       │   │   └── motion-blur.fs
│       │   ├── game-boy-color.shader
│       │   │   ├── game-boy-color.fs
│       │   │   └── manifest.bml
│       │   ├── game boy.shader
│       │   │   ├── manifest.bml
│       │   │   ├── pass1.fs
│       │   │   ├── pass2.fs
│       │   │   ├── pass2.vs
│       │   │   ├── pass3.fs
│       │   │   └── pass3.vs
│       │   └── super famicom.shader
│       │       ├── GTU-pass1.fs
│       │       ├── GTU-pass2.fs
│       │       ├── GTU-pass2.vs
│       │       ├── GTU-pass3.fs
│       │       ├── GTU-pass3.vs
│       │       ├── GTU-pass4.fs
│       │       ├── GTU-pass4.vs
│       │       └── manifest.bml
│       ├── Dot.shader
│       │   ├── dots.fs
│       │   ├── dots.vs
│       │   └── manifest.bml
│       ├── Gameboy.shader
│       │   ├── manifest.bml
│       │   ├── pass1.fs
│       │   ├── pass2.fs
│       │   ├── pass2.vs
│       │   ├── pass3.fs
│       │   └── pass3.vs
│       ├── Gaussian Scanlines.shader
│       │   ├── gaussian-scanlines.fs
│       │   └── manifest.bml
│       ├── GritsScanlines.shader
│       │   ├── Fake-Self-Illumination.png
│       │   ├── GritsScanlines.fs
│       │   ├── manifest.bml
│       │   ├── Scanline-LUT-4px.png
│       │   └── Trinitron D50 Absolute Colorimetric - LUT.png
│       ├── GTU.shader
│       │   ├── GTU-pass1.fs
│       │   ├── GTU-pass2.fs
│       │   ├── GTU-pass2.vs
│       │   ├── GTU-pass3.fs
│       │   ├── GTU-pass4.fs
│       │   ├── GTU-pass4.vs
│       │   └── manifest.bml
│       ├── Interlacing.shader
│       │   ├── interlace.fs
│       │   └── manifest.bml
│       ├── lanczos16.shader
│       │   ├── lanczos16.fs
│       │   ├── lanczos16.vs
│       │   └── manifest.bml
│       ├── LCD-cgwg.shader
│       │   ├── lcd-grid.fs
│       │   ├── manifest.bml
│       │   └── motion-blur.fs
│       ├── LICENSE
│       ├── mdapt-4p.shader
│       │   ├── manifest.bml
│       │   ├── mdapt-pass1.fs
│       │   ├── mdapt-pass2.fs
│       │   ├── mdapt-pass3.fs
│       │   └── mdapt-pass4.fs
│       ├── NTSC-MAME.shader
│       │   ├── mame-ntsc.fs
│       │   ├── mame-ntsc.vs
│       │   ├── mame-postproc.fs
│       │   ├── mame-postproc.vs
│       │   └── manifest.bml
│       ├── NTSC.shader
│       │   ├── gaussian-scanlines.fs
│       │   ├── manifest.bml
│       │   ├── ntsc-pass1.fs
│       │   └── ntsc-pass2.fs
│       ├── old-obsolete
│       │   ├── Border.shader
│       │   │   ├── border.png
│       │   │   ├── integer-scale.vs
│       │   │   ├── manifest.bml
│       │   │   └── mix.fs
│       │   ├── cgwg-CRT-deconstructed.shader
│       │   │   ├── cgwg-scanlines-interlaced.fs
│       │   │   ├── corner.fs
│       │   │   ├── curvature.fs
│       │   │   ├── dot-mask.fs
│       │   │   └── manifest.bml
│       │   ├── CMYK-Halftone.shader
│       │   │   ├── cmyk-dot.fs
│       │   │   ├── gamma.fs
│       │   │   └── manifest.bml
│       │   ├── GameBoy_ghosting.shader
│       │   │   ├── background.png
│       │   │   ├── gb-pass-0.fs
│       │   │   ├── gb-pass-0.vs
│       │   │   ├── gb-pass-1.fs
│       │   │   ├── gb-pass-1.vs
│       │   │   ├── gb-pass-2.fs
│       │   │   ├── gb-pass-2.vs
│       │   │   ├── gb-pass-3.fs
│       │   │   ├── gb-pass-3.vs
│       │   │   ├── gb-pass-4.fs
│       │   │   ├── manifest.bml
│       │   │   └── palette.png
│       │   ├── GameBoy.shader
│       │   │   ├── background.png
│       │   │   ├── gb-pass-0.fs
│       │   │   ├── gb-pass-0.vs
│       │   │   ├── gb-pass-1.fs
│       │   │   ├── gb-pass-1.vs
│       │   │   ├── gb-pass-2.fs
│       │   │   ├── gb-pass-2.vs
│       │   │   ├── gb-pass-3.fs
│       │   │   ├── gb-pass-3.vs
│       │   │   ├── gb-pass-4.fs
│       │   │   ├── manifest.bml
│       │   │   └── palette.png
│       │   ├── Hires-blend.shader
│       │   │   ├── hires-blend.fs
│       │   │   └── manifest.bml
│       │   ├── Image Adjustment.shader
│       │   │   ├── gamma.fs
│       │   │   └── manifest.bml
│       │   ├── Integer Scale.shader
│       │   │   ├── integer-scale.vs
│       │   │   └── manifest.bml
│       │   ├── Integrated-Television.shader
│       │   │   ├── black-and-white.fs
│       │   │   ├── cgwg-scanlines.fs
│       │   │   ├── cgwg-scanlines-interlaced.fs
│       │   │   ├── corner.fs
│       │   │   ├── curvature.fs
│       │   │   ├── dot-mask.fs
│       │   │   ├── gaussian-scanlines.fs
│       │   │   ├── manifest.bml
│       │   │   ├── ntsc-pass1.fs
│       │   │   └── ntsc-pass2.fs
│       │   ├── Motion Blur Exponential Decay.shader
│       │   │   ├── manifest.bml
│       │   │   └── motion-blur-exponential-decay.fs
│       │   ├── RGB-Triad.shader
│       │   │   ├── caligari.fs
│       │   │   └── manifest.bml
│       │   ├── xbr.mdapt.hiresBlend.shader
│       │   │   ├── manifest.bml
│       │   │   ├── mdapt-pass1.fs
│       │   │   ├── mdapt-pass2.fs
│       │   │   ├── mdapt-pass3.fs
│       │   │   ├── mdapt-pass4.fs
│       │   │   ├── xbr-mlv4-pass1.fs
│       │   │   ├── xbr-mlv4-pass2.fs
│       │   │   ├── xbr-mlv4-pass3.fs
│       │   │   └── xbr-mlv4-pass4.fs
│       │   ├── xbr.mdapt.hiresSplit.shader
│       │   │   ├── blend.fs
│       │   │   ├── extract1.vs
│       │   │   ├── extract2.fs
│       │   │   ├── extract2.vs
│       │   │   ├── manifest.bml
│       │   │   ├── mdapt-pass1.fs
│       │   │   ├── mdapt-pass2.fs
│       │   │   ├── mdapt-pass3.fs
│       │   │   ├── mdapt-pass4.fs
│       │   │   ├── xbr-mlv4-pass1.fs
│       │   │   ├── xbr-mlv4-pass2.fs
│       │   │   ├── xbr-mlv4-pass3.fs
│       │   │   └── xbr-mlv4-pass4.fs
│       │   ├── xBR-mlv4-Multipass.shader
│       │   │   ├── manifest.bml
│       │   │   ├── xbr-mlv4-multipass-0.fs
│       │   │   ├── xbr-mlv4-multipass-0.vs
│       │   │   ├── xbr-mlv4-multipass-1.fs
│       │   │   ├── xbr-mlv4-multipass-1.vs
│       │   │   ├── xbr-mlv4-multipass-2.fs
│       │   │   ├── xbr-mlv4-multipass-2.vs
│       │   │   ├── xbr-mlv4-multipass-3.fs
│       │   │   └── xbr-mlv4-multipass-3.vs
│       │   └── xbr-mlv4.shader
│       │       ├── manifest.bml
│       │       ├── xbr-mlv4-pass1.fs
│       │       ├── xbr-mlv4-pass2.fs
│       │       ├── xbr-mlv4-pass3.fs
│       │       └── xbr-mlv4-pass4.fs
│       ├── PAL-r57shell.shader
│       │   ├── manifest.bml
│       │   └── pal-r57shell.fs
│       ├── Phosphor-21x.shader
│       │   ├── manifest.bml
│       │   └── phosphor-21x.fs
│       ├── Phosphorish.shader
│       │   ├── manifest.bml
│       │   └── phosphorish.fs
│       ├── PhosphorLUT-v2.2.shader
│       │   ├── gamma.fs
│       │   ├── gaussian-horiz.fs
│       │   ├── manifest.bml
│       │   ├── miniLUT.png
│       │   └── shadow-mask.fs
│       ├── Pixellate.shader
│       │   ├── manifest.bml
│       │   └── pixellate.fs
│       ├── Quilez.shader
│       │   ├── manifest.bml
│       │   └── quilez.fs
│       ├── README.md
│       ├── Retro.shader
│       │   ├── gamma.fs
│       │   ├── manifest.bml
│       │   └── retro.fs
│       ├── ScaleFX.shader
│       │   ├── manifest.bml
│       │   ├── scalefx-pass0.fs
│       │   ├── scalefx-pass0.vs
│       │   ├── scalefx-pass1.fs
│       │   ├── scalefx-pass1.vs
│       │   ├── scalefx-pass2.fs
│       │   ├── scalefx-pass2.vs
│       │   ├── scalefx-pass3.fs
│       │   ├── scalefx-pass3.vs
│       │   ├── scalefx-pass4.fs
│       │   └── scalefx-pass4.vs
│       ├── ScaleFX-Smooth.shader
│       │   ├── manifest.bml
│       │   ├── scalefx-pass0.fs
│       │   ├── scalefx-pass0.vs
│       │   ├── scalefx-pass1.fs
│       │   ├── scalefx-pass1.vs
│       │   ├── scalefx-pass2.fs
│       │   ├── scalefx-pass2.vs
│       │   ├── scalefx-pass3.fs
│       │   └── scalefx-pass3.vs
│       ├── Sharp-Bilinear.shader
│       │   ├── manifest.bml
│       │   └── sharp-bilinear.fs
│       ├── Stock.shader
│       │   ├── manifest.bml
│       │   ├── stock.fs
│       │   └── stock.vs
│       ├── Super-2xBR-3D.shader
│       │   ├── custom-jinc2-sharper.fs
│       │   ├── manifest.bml
│       │   ├── super-2xbr-3d-pass0.fs
│       │   ├── super-2xbr-3d-pass1.fs
│       │   ├── super-2xbr-3d-pass2.fs
│       │   └── super-2xbr-3d-pass2.vs
│       ├── Super-4xBR-3D.shader
│       │   ├── custom-jinc2-sharper.fs
│       │   ├── manifest.bml
│       │   ├── super-4xbr-3d-pass0.fs
│       │   ├── super-4xbr-3d-pass1f.fs
│       │   ├── super-4xbr-3d-pass1.fs
│       │   ├── super-4xbr-3d-pass1f.vs
│       │   ├── super-4xbr-3d-pass2.fs
│       │   ├── super-4xbr-3d-pass3f.fs
│       │   ├── super-4xbr-3d-pass3.fs
│       │   └── super-4xbr-3d-pass3f.vs
│       ├── Super-8xBR-3D-6p.shader
│       │   ├── manifest.bml
│       │   ├── super-8xbr-3d-pass0.fs
│       │   ├── super-8xbr-3d-pass1.fs
│       │   ├── super-8xbr-3d-pass2.fs
│       │   ├── super-8xbr-3d-pass3.fs
│       │   ├── super-8xbr-3d-pass4.fs
│       │   └── super-8xbr-3d-pass5.fs
│       ├── Super-multires-xBR-3D.shader
│       │   ├── custom-jinc2-sharper.fs
│       │   ├── manifest.bml
│       │   ├── super-multi-xbr-3d-pass0.fs
│       │   ├── super-multi-xbr-3d-pass0.vs
│       │   ├── super-multi-xbr-3d-pass1.fs
│       │   ├── super-multi-xbr-3d-pass1.vs
│       │   ├── super-multi-xbr-3d-pass2.fs
│       │   ├── super-multi-xbr-3d-pass2.vs
│       │   ├── super-multi-xbr-3d-pass3.fs
│       │   └── super-multi-xbr-3d-pass3.vs
│       ├── testing
│       │   └── PhosphorLUT.shader
│       │       ├── combine.fs
│       │       ├── gaussian-horiz.fs
│       │       ├── gaussian-vert.fs
│       │       ├── manifest.bml
│       │       ├── scanline.fs
│       │       ├── shadow-mask.fs
│       │       ├── shadow-mask.vs
│       │       └── vert-test.png
│       ├── xBRZ-Freescale.shader
│       │   ├── manifest.bml
│       │   ├── xBRZ-Freescale-p0.fs
│       │   └── xBRZ-Freescale-p1.fs
│       └── Yee64.shader
│           ├── manifest.bml
│           └── yee64.fs
├── Firmware
│   └── Firmware
│       ├── cx4.data.rom
│       ├── sgb1.boot.rom
│       └── sgb2.boot.rom
└── System
    ├── ColecoVision
    │   └── Controller
    │       └── Gamepad
    ├── Famicom
    │   └── Controller
    │       └── Gamepad
    ├── Game Boy
    │   ├── boot.dmg-0.rom
    │   ├── boot.dmg-1.rom
    │   └── boot.mgb.rom
    ├── Game Boy Advance
    ├── Game Boy Color
    │   ├── boot.cgb-0.rom
    │   └── boot.cgb-1.rom
    ├── Game Boy Player
    ├── Game Gear
    ├── Master System
    │   └── Controller
    │       └── Gamepad
    ├── Mega Drive
    │   ├── Controller
    │   │   ├── Control Pad
    │   │   └── Fighting Pad
    │   └── tmss.rom
    ├── MSX
    │   ├── bios.rom
    │   ├── Controller
    │   │   └── Gamepad
    │   └── Keyboard
    │       └── Japanese
    │           └── layout.bml
    ├── MSX2
    │   ├── bios.rom
    │   ├── Controller
    │   │   └── Gamepad
    │   ├── Keyboard
    │   │   └── Japanese
    │   │       └── layout.bml
    │   └── sub.rom
    ├── Neo Geo Pocket
    ├── Neo Geo Pocket Color
    ├── Nintendo 64
    │   ├── Controller
    │   │   └── Gamepad
    │   ├── pif.ntsc.rom
    │   ├── pif.pal.rom
    │   └── pif.rom
    ├── PC Engine
    │   └── Controller
    │       ├── Avenue Pad 6
    │       └── Gamepad
    ├── PC Engine Duo
    │   └── Controller
    │       ├── Avenue Pad 6
    │       └── Gamepad
    ├── PlayStation
    │   └── Controller
    │       └── Gamepad
    ├── Pocket Challenge V2
    │   └── boot.rom
    ├── SC-3000
    │   └── Controller
    │       └── Gamepad
    ├── SG-1000
    │   └── Controller
    │       └── Gamepad
    ├── Super Famicom
    │   ├── boards.bml
    │   ├── Controller
    │   │   ├── Gamepad
    │   │   ├── Justifier
    │   │   ├── Justifiers
    │   │   ├── Mouse
    │   │   ├── NTT Data Keypad
    │   │   ├── Super Multitap
    │   │   ├── Super Scope
    │   │   └── Twin Tap
    │   ├── Expansion
    │   │   ├── 21fx
    │   │   └── Satellaview
    │   └── ipl.rom
    ├── SuperGrafx
    │   └── Controller
    │       └── Gamepad
    ├── SwanCrystal
    │   └── boot.rom
    ├── WonderSwan
    │   └── boot.rom
    └── WonderSwan Color
        └── boot.rom

157 directories, 448 files

I will start taking a look at the ebuild to see if we can easily change the installation location from /usr/share/higan-$VERSION to ~./local/share/higan/.

Is that the best solution or would @Screwtapello 's second bullet point ("patching the code to look for templates in a system-wide location") be the better approach?

Cheers, Nathan Zachary

nathanzachary avatar Dec 03 '21 18:12 nathanzachary

Gentoo bug: https://bugs.gentoo.org/828108

Patch and modified ebuild provided there. Please feel free to review and let me know if you think that there's a better approach.

nathanzachary avatar Dec 07 '21 05:12 nathanzachary